cz. 5 | Siła konsoli w systemach Uniksowych
Ze względu na brak możliwości dodania więcej niż czterech obrazków kawałek czwartej części przenoszę do piątej a raczej tworzę z niego piątą część.
[color=#007aff]Przykładowe zastosowanie dwunaste - zautomatyzowane "wciskanie" klawiszy
Zapewne nie macie pojęcia jak to może wyglądać, czy jakiś robot stuka Nam w klawiaturę na zawołanie czy też poprzez samo patrzenie w klawiaturę wciskają się klawisze - macie do tego prawo ;‑)
To co opiszę jest bardzo proste, naprawdę. Czasami zdarza się, że urządzenie ma niestandardowe przyciski których nie można znaleźć w standardowym układzie klawiatury.
Jako, że nie wiedziałem jak się zabrać za ręczne edytowanie układu klawiatury postanowiłem znaleźć wolny przycisk na klawiaturze i przypisać go temu "nieznanemu" z fizycznej klawiatury.
No więc w skrócie: Jak naciskam klawisz fizyczny to system uznaje jak bym nacisnął inny klawisz KlawiszY. Jako "KlawiszY" wybrałem taki który niedostępny jest na mojej klawiaturze fizycznej - czyli jest wolny.
- Tutaj edytowano dnia 01.12.2010 Wybaczcie, że nie wytłumaczyłem dokładniej gdzie tu ma zastosowanie konsola, wiem spaprałem te fragment dlatego postaram się naprawić póki jest jeszczcze na głównej :)
To polecenie ustawia Mi pewien niezidentyfikowany przycisk jako ALT.
/usr/bin/setkeycodes e076 56
To jest użycie konsoli do zbindowania klawiszy, to jest prosty przykład, a teraz podam złożony.
Ustawiam, że po wciśnięciu niezidentyfikowanego przycisku U1 (pisze na urządzeniu) system uznaje go za przycisk z kodem 250 którego nie posiadam na klawiaturze ale jest zapisany w aktualnej mapie klawiszy dlatego jest działający i rozpoznawalny przez programy:
/usr/bin/setkeycodes e058 250
Teraz poprzez xbindkeys -k sprawdzam kod tego przycisku, wyświetli Mi coś w tym stylu:
m:0x0 + c:250
Otwieram .xbindkeysrc i dopisuję:
"/usr/bin/gmrun" m:0x0 + c:250
Restartuję demon xbindkeys działajcy w przestrzeni użytkownika poprzez:
killall xbindkeys xbindkeys
Teraz po wciśnięciu przycisku U1 uruchamia Mi się program /usr/bin/gmrun. Bez setkeycodes przycisk nie był rozpoznawalny przez program xbindkeys ani xev, jednak teraz ten przycisk jest w pełni funkcjonalny.
Dodatkowo podzielę się z Wami moim skryptem bashowym do zmniejszania oraz zwiększania głośności: http://wklej.org/id/429134/
Użycie: sound 1+ aby zwiększyć głośność, sound 1- aby zmniejszyć głośność
Teraz ciekawsze zastosowanie, czyli to co Was powinno zainteresować.
Sterowanie głosem
Brzmi skomplikowanie, a jednak to nic trudnego, wystarczy dobry program do rozpoznawania mowy i w zasadzie to wszystko.
Dzięki narzędziu xdotool możemy wirtualnie nacisnąć dany klawisz na klawiaturze np.
Wciśnięcie prawego przycisku myszy:
/usr/bin/xdotool click 3
Wciśnięcie kombinacji ALT+F4:
/usr/bin/xdotool key alt+F4
Proste prawda?
Teraz możemy w programie do rozpoznawania mowy podać takie polecenia, i np. po wypowiedzeniu słowa "zamknij okno" wywołane zostanie polecenie wciskające klawisze ALT+F4.
Sterowanie gestami myszy/ekranu dotykowego
Program easystroke pozwala na definiowanie i rozpoznawanie gestów. Wystarczy przyporządkować kombinację klawiszy która rozpoczyna rysowanie gestu na ekranie, narysować przykładowe gesty, nadać Im funkcję np. przewijanie strony czy wywołanie polecenia.
Moim zdaniem program easystroke doskonalne rozpoznaje narysowane gesty, konfiguracja jest bardzo prosta, sam program nie obciąża zbytnio procesora ani pamięci RAM i jest nieco rozbudowany.
Osobiście ustawiłem Sobie wiele z gestów które mogę wam pokazać: