xbindkeys ..
sudo apt-get install xbindkeys
Xbindkeys to bardzo wszechstronny program, który pozwala bardzo łatwo mapować klucze. Używa pliku konfiguracyjnego, domyślnie znajdującego się w twoim katalogu domowym, do zmiany przypisania klawiszy na określone polecenia.
Aby utworzyć domyślny plik konfiguracyjny, użyj polecenia:
xbindkeys --defaults
Który drukuje domyślny plik konfiguracyjny. Więc jeśli chcesz utworzyć plik zawierający wartości domyślne, którego byś użył:
xbindkeys --defaults > $HOME/.xbindkeysrc
Który drukuje wartości domyślne w ukrytym pliku o nazwie .xbindkeysrc
zlokalizowanym w home ( ~
).
Teraz, aby faktycznie zmienić powiązania klawiszy, najpierw musimy wiedzieć, jak brzmi nazwa lub skrót kluczy. xbindkeys
pozwala nam użyć -k
uchwytu do znalezienia nazwy klucza lub kombinacji klawiszy. Biegać:
xbindkeys -k
I naciśnij klawisz lub kombinację klawiszy. Jego wynik będzie wyglądać coś podobnego do tego (po naciśnięciu space):
"NoCommand"
m:0x10 + c:65
Mod2 + space
"No Command"
informuje nas, że obecnie żadne polecenie nie jest powiązane z Spacekluczem.
m:0x10 + c:65
Mod2 + space
To nazwa klucza / kombinacji klawiszy.
plik konfiguracyjny ..
Pozwala otworzyć wcześniej utworzony plik konfiguracyjny:
gedit .xbindkeysrc
Oto fragment domyślnego pliku konfiguracyjnego:
#
# A list of keys is in /usr/include/X11/keysym.h and in
# /usr/include/X11/keysymdef.h
# The XK_ is not needed.
#
# List of modifier:
# Release, Control, Shift, Mod1 (Alt), Mod2 (NumLock),
# Mod3 (CapsLock), Mod4, Mod5 (Scroll).
#
# The release modifier is not a standard X modifier, but you can
# use it if you want to catch release events instead of press events
# By defaults, xbindkeys does not pay attention with the modifiers
# NumLock, CapsLock and ScrollLock.
# Uncomment the lines above if you want to pay attention to them.
#keystate_numlock = enable
#keystate_capslock = enable
#keystate_scrolllock= enable
# Examples of commands:
"xbindkeys_show"
control+shift + q
Każda linia rozpoczynająca się od #
jest komentarzem i nie będzie czytana ani uruchamiana przez xbindkeys
.
Jak dotąd jedyny wiersz, który nie został skomentowany, to:
"xbindkeys_show"
control+shift + q
Ten fragment pokazuje podstawową składnię xbindkeys
poleceń:
"Command to run (in quotes)"
key to associate with command (no quotes)
Jak widać:
"xbindkeys_show"
control+shift + q
Uruchamia polecenie xbindkeys_show
po naciśnięciu Ctrl+ Shift+ q.
powiąż klawisze z poleceniami ..
Teraz spróbujmy powiązać kilka kluczy. Zalecam wyczyszczenie całego pliku domyślnego, aby był pusty. Zawiera predefiniowane powiązania klawiszy, których prawdopodobnie nie chcesz.
Powiedzmy teraz, że chcesz użyć Ctrl+, baby otworzyć przeglądarkę. Po pierwsze trzeba wiedzieć, jaka jest nazwa lub keysym z Ctrl+ bjest. Jak wspomniano wcześniej, możesz użyć xbindkeys -k
nazwy klucza lub kluczy, ale istnieje łatwiejszy sposób. W przypadku prostych kombinacji, takich jak Ctrl+ b, możesz po prostu użyć:
Control+b
O wiele łatwiej, prawda!
Teraz znajdź polecenie swojej ulubionej przeglądarki:
Pamiętasz wcześniejszą składnię? xbindkeys
Polecenie, aby uruchomić Firefoksa (lub inną ulubioną przeglądarkę) po naciśnięciu Ctrl+ bjest:
"firefox"
Control+b
Teraz umieść to w pliku konfiguracyjnym i zapisz. Teraz możesz zauważyć, że twoje polecenie jeszcze nie działa, ponieważ xbindkeys
nie działa. Aby go uruchomić, po prostu uruchom go xbindkeys
z terminala. Twój Ctrl+ bpowinien teraz uruchomić przeglądarkę!
powiąż klucze z innymi kluczami ..
Jeśli chcesz, aby klawisz na klawiaturze wywoływał inny klawisz na klawiaturze, będziesz potrzebować dodatkowego oprogramowania, ponieważ xbindkeys
nie obsługuje tego samodzielnie. Znam dwa programy, których możemy użyć, xdotool
i xte
. Wolę, xte
więc zamierzam z tego skorzystać.
Zainstaluj to:
sudo apt-get install xautomation
Składnia xte
jest następująca:
xte 'command key/mousebutton/xyCoordinates'
Przykłady:
Aby połączyć się z jednym klawiszem, naciśnij: xte 'key keyName'
Aby wywołać kombinację klawiszy: xte 'keydown keyName' 'keydown secondKeyName' 'keyup keyName' 'keyup secondKeyName
Aby wywołać przycisk myszy: xte 'mouseclick buttonNumber'
(Omówimy nieco późniejsze wyszukiwanie numerów przycisków)
Aby przesunąć mysz: xte 'mousemove xCoordinate yCoordinate'
I więcej! Czytaćman xte
Teraz, gdy znasz polecenie symulacji naciśnięć klawiszy, możesz je wywołać ze xbindkeys
skryptu, w następujący sposób:
"xte 'key b'"
Control+b
Jak można się domyślać, wywołuje to xte 'key b'
po naciśnięciu klawisza Ctrl+ b, co wprowadza bdowolny dokument, nad którym aktualnie pracujesz.
I rzeczą, aby pamiętać, że to jednak xbindkeys
i xte
nie zawsze działa bardzo dobrze. Czasami musisz nacisnąć klawisze dokładnie w tym samym czasie, aby uzyskać wyjście, innym razem działa to dobrze. Może to, ale nie musi mieć związku z konfiguracją systemu i / lub sprzętem. Nie jestem pewien. Zobacz odpowiedź maggotbrain na bardziej niezawodny sposób wiązania kluczy z innymi kluczami.
powiąż przyciski myszy z poleceniami ..
Możesz także użyć xbindkeys
do powiązania przycisków myszy z poleceniami (i stąd skróty klawiaturowe, patrz wyżej). Podstawowy format przycisków myszy powinien być Ci teraz znany:
" [command to run] "
b:n
Gdzie [command to run]
jest polecenie, które chcesz uruchomić, i n
numer przycisku myszy, którego chcesz użyć dla tego polecenia.
Jeśli nie znasz numeru przycisku myszy, możesz xev
dowiedzieć się, co to jest:
xev | grep button
Wynik będzie mniej więcej taki:
user@host:~$ xev | grep button
state 0x10, button 1, same_screen YES
state 0x110, button 1, same_screen YES
state 0x10, button 2, same_screen YES
state 0x210, button 2, same_screen YES
state 0x10, button 3, same_screen YES
state 0x410, button 3, same_screen YES
Kiedy naciskam każdy z moich przycisków myszy.
Na przykład:
" firefox "
b:2
Uruchamia Firefoksa po naciśnięciu środkowego przycisku myszy.