Blog jak widać już nie jest aktualizowany. I raczej nie będzie. Wisi sobie ot tak, ze względów historycznych :)

KDE4 i usypianie laptopa z klawiatury

Krzysztof Rygielski | 2010-05-06 00:04 | Kategorie: Linux, KDE4

Opcja usypiania laptopa to calkiem użyteczna funkcja. Nie trzeba czekać aż cały system wstanie, logować się, czekać aż załaduje się środowisko. W moim przypadku jeszcze muszę ustawiać działanie 2 monitorów. Wybudzając komputer z uśpienia mam od razu działające środowisko w takiej postaci, w jakiej ostatnio zakończyłem pracę i to w trybie natychmiastowym.

W kde4 applet zarządzania energią w łatwy sposób pozwala usypiać maszynę. Chciałem jednak robić to przy pomocy klawiatury mojego laptopa. Domyślnie (przynajmniej w moim przypadku, w PLD linux) przycisk uśpienia zupełnie nic nie robi. Postanowiłem to zmienić.

Na początek musiałem dowiedzieć się w jaki sposób mogę wywołać polecenie uśpienia z linii komend. Drogą prób i błędów doszedłem do następującej komendy:

$ qdbus org.freedesktop.PowerManagement /org/freedesktop/PowerManagement org.freedesktop.PowerManagement.Suspend

To już połowa sukcesu. Teraz chciałbym przywiązać tą komendę do konkretnego przycisku na klawiaturze. Do tego celu używam xbindkeys. Na początek wywołujemy następujące polecenie:

$ xbindkeys -k

Otwiera ono niewielkie okienko i oczekuje na zdarzenie z klawiatury. Po wciśnięciu klawisza (lub kombinacji klawiszy) w linii poleceń otrzymujemy kod danego zdarzenia, np:

$ xbindkeys -k
Press combination of keys or/and click under the window.
You can use one of the two lines after "NoCommand"
in $HOME/.xbindkeysrc to bind a key.
"(Scheme function)"
    m:0x0 + c:150
    XF86Sleep

Powyższy wynik powstał po wciśnięciu klawisza uśpienia (w moim przypadku kombinacji Fn+F5). Kod klawisza może się różnić, w zależności od układu klawiatury, konfiguracji, etc. Z tego wyniku interesuje mnie ta linijka:

m:0x0 + c:150

Kolejnym krokiem jest stworzenie pliku .xbindkeysrc i dodanie do niego następującej treści:

"qdbus org.freedesktop.PowerManagement /org/freedesktop/PowerManagement org.freedesktop.PowerManagement.Suspend"
m:0x0 + c:150

Plik zapisujemy. Uruchamiamy xbindkeys:

$ xbindkeys

I wciskamy klawisz, do którego chcieliśmy przywiązać zdarzenie uśpienia. Powinno zadziałać :-)

Dla ułatwienia sobie życia dodajemy link symboliczny do xbindkeys do katalogu ~/.kde/Autostart. Najpierw sprawdzamy, jaka jest pełna ścieżka do naszego polecenia w następujący sposób:

$ which xbindkeys
/usr/bin/xbindkeys    # ścieżka może się różnić w zależności od dystrybucji

Znając ścieżkę tworzymy link symboliczny poleceniem:

$ ln -s /usr/bin/xbindkeys ~/.kde/Autostart/xbindkeys

Od tej chwili xbindkeys będzie uruchamiane przy każdym logowaniu się do kde4, tym samym polecenie będzie przywiązane od razu do pożądanego klawisza.