Zdaję sobie sprawę z wielu sposobów mapowania kombinacji klawiszy w Ubuntu na poziomie globalnym (np. Globalne mapowanie Ctrl + S, aby wysłać Ctrl + D lub coś takiego), takie jak aplikacja xbindkeys . Potrzebuję jednak sposobu, aby to zrobić tylko dla konkretnej aplikacji . Na przykład coś w rodzaju „Remap Ctrl + S, aby wysłać Ctrl + D, ale tylko w Chrome ”. Czy jest jakiś sposób na osiągnięcie tego?
shortcut-keys
x11
Derek Thurn
źródło
źródło
Odpowiedzi:
Twój pomysł użycia xbindkeys brzmi dobrze:
w Twoim
.xbindkeysrc
dodaniu nowego skrótu klawiszowego:To się wykona
"app_specific_keys.sh"
po naciśnięciuctrl+s
.Teraz musisz zdefiniować skrypt. Powinien uzyskać aktywne okno, a następnie nazwę aplikacji, która jest aktualnie aktywna:
To by załatwiło sprawę: pyta xdotool o aktywne okno, następnie pyta xprop o wszystkie właściwości okna o podanym identyfikatorze, a następnie redukuje bardzo szczegółowe dane wyjściowe do nazwy aplikacji (właściwie jej klasy). Jeśli uruchomisz to w terminalu gnomów, dostaniesz
Teraz musisz zdefiniować działania dla swoich aplikacji:
Razem skrypt
"app_specific_keys.sh"
może wyglądać następująco:To powinno zadziałać, ale podobnie jak w tym pytaniu muszę przyznać, że tak nie jest. Prawdopodobnie dlatego, że jedno z Compiz, Unity, Global Menu nie działa dobrze z
--clearmodifiers
opcją xdotool. Rozwiązaniem byłoby dodać sen przed skryptu w Odrze, aby móc zwolnić klawisze sobie pytanie: W swojej.xbindkeysrc
zmiany tego kombinacja klawiszy:Na marginesie: to nie zadziała, jeśli chcesz zmienić klucze dla programów działających w terminalu (np. Vi lub emacs w trybie konsoli). Zwrócona klasa aplikacji nadal będzie „Gnome-terminal”.
Mam nadzieję, że to pomaga.
źródło
xvkbd -xsendevent -text "\Cs"
. Wydaje się, że to nie dotyczy problemów z Xdotool.f
połączeniexdotool key f
. Wciąż szukam sposobu, aby to zrobić.xdotool type --window $(xdotool getwindowfocus) [keys]
użycie opcji --window i wysłanie do aktualnie aktywnego okna NIE doprowadzi do zachowania rekurencyjnego.autokey jest jak AutoHotkey dla Ubuntu. Możesz pisać skrypty w pythonie i uruchamiać je za pomocą skrótu klawiaturowego i filtra systemu Windows (co czyni go specyficznym dla pseudo aplikacji). Twój skrypt może kontrolować zdarzenia na klawiaturze i myszy, a nawet przesuwać okna jako dodatkowy dotyk.
źródło
autokey
jest DROGA szybszy niżxbindkeys
, nawet przy włączonym trybie wykrywania okna - natychmiast podejmowane są działania. Wada: przypisania przycisków myszy wydają się nie działać (myślę, że to błąd)