Jest taka rzecz w laptopach z Linuksem, która często nie działa zaraz po instalacji. Przynajmniej nie na środowiskach korzystających z Openbox, np. LXDE. Chodzi o sterowanie jasnością ekranu oraz głośnością dźwięku, czyli klawisze multimedialne.
Nie pamiętam, czy coś się ostatnio zmieniło, czy zawsze tak było, tylko miałem skonfigurowane, ale ostatnio konfigurowałem laptopa z LXDE i jak wszystko działało, tak sterowanie głośnością i jasnością ekranu – nie. Wydaje mi się, że kiedyś obsługa tzw. klawiszy multimedialnych była robiona przez ACPI i skrypty (zob. linki na końcu wpisu), ale teraz można prościej.
W obu przypadkach wykorzystywany będzie plik ~/.config/openbox/lxde-rc.xml.
Jasność
Na początek kontrola jasności. W przypadku karty intela, bo taką miałem, kontrola jasności odbywa się z wykorzystaniem programu xbacklight, który musiałem doinstalować. Rozwiązanie powinno działać także dla innych kart. Dodatkowo musiałem utworzyć plik /etc/X11/xorg.conf.d/20-intel.conf o następującej zawartości:
Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "Backlight" "intel_backlight"
EndSection
W pliku XML zaś dodałem:
<keybind key="XF86MonBrightnessDown">
<action name="Execute">
<command>xbacklight -5</command>
<startupnotify>
<enabled>yes</enabled>
<name>Decrease screen brightness</name>
</startupnotify>
</action>
</keybind>
<keybind key="XF86MonBrightnessUp">
<action name="Execute">
<command>xbacklight +5</command>
<startupnotify>
<enabled>yes</enabled>
<name>Increase screen brightness</name>
</startupnotify>
</action>
</keybind>
Głośność
Trzeba oczywiście mieć zainstalowane programy, które będziemy wykorzystywać – w przypadku instalacji pełnego środowiska LXDE i Debiana 10 wszystko już było zainstalowane. Natomiast w pliku konfiguracyjnym XML wystarczy dodać:
<keybind key="XF86AudioRaiseVolume">
<action name="Execute">
<execute>pactl set-sink-volume 0 +10%</execute>
</action>
</keybind>
<keybind key="XF86AudioLowerVolume">
<action name="Execute">
<execute>pactl set-sink-volume 0 -10%</execute>
</action>
</keybind>
<keybind key="XF86AudioMute">
<action name="Execute">
<execute>pactl set-sink-mute 0 toggle</execute>
</action>
</keybind>
Istnieją warianty wykorzystujące inne polecania pamixer czy amixer (zob. linki).
Oczywiście w ten sposób można zmieniać zachowanie dowolnych skrótów i wykorzystywać dowolne klawisze, nie tylko te wymienione. Pełna lista w źródłach (zob. linki)
Linki:
- https://wiki.archlinux.org/index.php/Backlight
- https://wiki.archlinux.org/index.php/Acpid
- https://adangel.org/2016/01/24/lxde-audio-brightness-keybindings/
- https://www.linuxquestions.org/questions/slackware-14/getting-keyboard-volume-buttons-to-work-in-lxde-4175623496/
- https://cgit.freedesktop.org/xorg/proto/x11proto/tree/XF86keysym.h
UPDATE: Skoro już konfigurujemy klawisze multimedialne, warto też pod Print Screen dodać robienie screenshotów. Podobno jest domyślnie, nie potwierdzam, ale może „zasługa” unstable.
<keybind key="Print">
<action name="Execute">
<command>gnome-screenshot -i</command>
</action>
</keybind>