Słowa kluczowe: skróty klawiaturowe, kontrola okien, słownik, terminal, skrypt, shell, bash, Ubuntu
Artykuł przedstawia sposób rozwiązania problemu wywoływania i ukrywania programu słownika ukrytego pod ikoną na tacce systemowej poprzez skrót klawiaturowy skojarzony z przygotowanym skryptem basha.
Przypisywanie własnych skrótów klawiaturowych do zaplanowanych przez użytkownika akcji (np. uruchomienie określonego programu) w systemie Ubuntu jest możliwe dopiero po zainstalowaniu xbindkeys. Warto również doinstalować wersję okienkową tego programu:
sudo apt-get install xbindkeys xbindkeys-config
Manipulację oknami (zmiana rozmiaru, dekoracji, itd.) z poziomu terminala Ubuntu umożliwia program wmctrl. Aplikacja dostępna jest w repozytoriach:
sudo apt-get install wmctrl
Program wmctrl wywoływany jest bezpośrednio z linii poleceń (przykłady). Sterowanie oknami za pomocą skryptów napisanych w specjalnym języku umożliwia devilspie (również dostępny w wersji okienkowej). Warto zainteresować się aplikacją xmacro, która pozwala nagrywać i odtwarzać zachowanie klawiatury i myszki, co w połączeniu z wyżej przedstawionymi programami pozwala na całościowe sterowanie systemem okienkowym.
Niestety wmctrl nie ma dostępu do okien ukrytych na tacce systemowej (system tray, pasek systemowy). Ukrywanie i przywracanie aplikacji do i z paska systemowego umożliwia konsolowy program xtoggle opublikowany na forum Ubuntu. Program xtoggle nie jest dostępny w repozytoriach, należy go skompilować z dostępnych źródeł. Po rozpakowaniu plików wystarczy wpisać make w terminal w katalogu z plikami. Skompilowany xtoggle należy przenieść do /usr/local/bin poleceniem wykonanym w katalogu z programem:
sudo mv xtoggle /usr/local/bin
Szukając słowników polsko-* dla Ubuntu nie wymagających dostępu do Internetu najlepszą propozycją jest prawdopodobnie Kydpdict. Jest to nakładka na słowniki wydane przez YDP: słownik języka angielskiego Collinsa, niemieckiego Langenscheidt oraz PWN Oxford i SAP. Program należy skompilować z dostępnych źródeł lub posłużyć się przestarzałym pakietem DEB dla dystrybucji Ubuntu Dapper Drake (6.06). Kydpdict do kompilacji wymaga bibliotek Qt w odpowiedniej wersji, proces kompilacji opisano na polskim forum Ubuntu.
Skompilowany program został umieszczony w /usr/local/bin pod nazwą kydpdict.
Uruchomianie program słownika Kydpdict będzie kontrolowane przez skrypt, który z kolei będzie wykonywany po wciśnięciu ustawionej kombinacji klawiszy. W /usr/local/bin należy stworzyć plik o nazwie kydpdict-hotkey o zawartości:
#!/bin/bash # Toggle kydpdict window on hotkey specified in xbindkeys config. WINTITLE="Kydpdict" PROGNAME="/usr/local/bin/kydpdict" if [ `ps -ef | grep -wce $PROGNAME` -gt 1 ] then xtoggle --lookup_class $WINTITLE xtoggle --restore_all wmctrl -a "$WINTITLE" else $PROGNAME # wait 1 xtoggle --lookup_class $WINTITLE fi exit 0
następnie nadać odpowiednie prawa stworzonemu plikowi:
sudo chmod +x /usr/local/bin/kydpdict-hotkey
Ostatnim krokiem jest konfiguracja skrótu klawiaturowego w xbindkeys. W tym celu należy wpisać w terminalu:
xbindkeys-config
Po utworzeniu nowego skrótu kliknięciem na przycisk "New" należy wybrać "Get Key", wprowadzić skrót klawiaturowy, następnie w pole "Action" wpisać /usr/local/bin/./kydpdict-hotkey i zatwierdzić zmiany przyciskiem "Save & Apply & Exit". Plik z ustawieniami skrótu zostanie zachowany pod nazwą .xbindkeysrc w katalogu domowym (wskazywanym przez zmienną środowiskową $HOME). Po wybraniu z menu System/Preferencje/Sesje można ustawić automatyczny start xbindkeys wpisując w pole "Polecenie":
xbindkeys -f $HOME/.xbindkeysrc
Od tego momentu wciśnięcie zdefiniowanego w ustawieniach xbindkeys-config skrótu klawiaturowego pokaże okno słownika, kolejne wciśnięcie kombinacji schowa to okno do ikony na tacce systemowej.
Przedstawione rozwiązanie jest doraźne. Okno słownika można zamknąć również przez ESC lub klawiszem myszy, jednak wtedy nie będzie możliwa dalsza kontrola z poziomu skrótu klawiaturowego.