Dla Ubuntu 18.04.
Walczyłem z tym problemem przez dwa dni. Wypróbowałem wszystkie wymienione tutaj metody wcześniej. I wygląda na to, że wpadłem na rozwiązanie. Ale jest bardzo niestabilny i ma błędy.
Podstawowa idea jest taka: w ustawieniach systemu można określić polecenie uruchamiane kombinacją klawiszy Ctrl+ Shift+ U.
Uwaga: jeśli określisz false
jako polecenie, kombinacja w ogóle nie będzie działać.
Możemy jednak podać ścieżkę do skryptu jako polecenie, w którym będziemy symulować naciśnięcie tej samej kombinacji klawiszy.
Aby zasymulować naciśnięcia klawiszy, wypróbowałem xdotool
( apt install xdotool
) i xte
( apt install xautomation
). Obie opcje były niestabilne. Jednak xte
okazało się być bardziej elastyczne dla mnie.
Przykład z xte
- Utwórz plik
/home/username/shortcut.sh
- Dodaj uprawnienie do wykonania:
chmod u+x /home/username/shortcut.sh
- Podaj ścieżkę do skryptu jako polecenie kombinacji klawiszy Ctrl+ Shift+ Uw ustawieniach klawiatury
Oto przykładowy skrypt:
#!/bin/sh
# Make a small delay in order to have time to release the keys.
sleep 0.2
# Simulate the release of just pressed keys, if they are still pressed.
xte 'keyup u' 'keyup Shift_L' 'keyup Control_L'
# Hack: Caps_Lock is used so that the system does not intercept this combination.
# You can try to remove it if it hinders you.
xte 'key Caps_Lock'
# Simulate pressing a key combination
xte 'keydown Shift_L' 'keydown Control_L' 'key u'
# Simulate releasing a key combination
xte 'keyup Shift_L' 'keyup Control_L'
# Restore Caps_Lock to the previous state.
xte 'key Caps_Lock'
Testowałem to w PhpStorm 2018.2 EAP Build # PS-182.3458.35 i mogę powiedzieć, że działa, ale z pewnymi zastrzeżeniami:
- to działa powoli (na moim raczej starym komputerze)
- podczas wykonywania skryptu lepiej nie naciskać żadnych klawiszy
- czasami może nie działać
- czasami może wejść w nieskończoną pętlę. Dlatego lepiej jest dodać do skryptu sprawdzenie, czy skrypt już działa.
Ogólnie rzecz biorąc, jeśli często nie używasz tej kombinacji, to rozwiązanie może ci odpowiadać.
Ale prawdopodobnie ktoś wymyśli lepsze i bardziej stabilne rozwiązanie.
Mam nadzieję, że ten pomysł komuś pomoże.