#!/usr/bin/perl use warnings; use strict; use Net::DBus; use Net::DBus::Reactor; use Data::Dumper; my $bus = Net::DBus->session(); my $service; loop: eval { $service = $bus->get_service("org.freedesktop.PowerManagement"); }; if($@) { # print Dumper ($@); sleep 1; goto loop; } my $backlight = $service->get_object("/org/freedesktop/PowerManagement/Backlight","org.freedesktop.PowerManagement.Backlight"); $backlight->connect_to_signal("BrightnessChanged", sub { my $intensity = shift; $intensity = 100 if $intensity > 100; $intensity = 15 if $intensity < 15; system("/usr/bin/smartdimmer -s $intensity"); }); my $reactor = Net::DBus::Reactor->main(); $reactor->run(); exit(0);