Jak znaleźć * dlaczego * nie mogę powiązać skrótu klawiaturowego (lub która aplikacja go wzięła)?

14

W skrócie: czy istnieje (w ramach Unity) sposób, aby dowiedzieć się, która aplikacja skorzystała z globalnego skrótu? Nie pytam o „standardowe skróty”, ale o jakiś sposób na uzyskanie informacji o faktycznych skrótach (która aplikacja aktualnie zachowuje dany klucz w mojej obecnej konfiguracji)

Dłuższa historia:

Mam powtarzalne problemy z zarządzaniem skrótami klawiaturowymi. W tym momencie:

  • Czasami Synapse (*) nie może powiązać Win-Space, ponieważ jest to skrót aktywacyjny, zgłaszając „Nie udało się zarejestrować skrótu„ aktywuj ”z podpisem„ spacja ”” (co zwykle oznacza, że ​​ten skrót jest już zajęty)

    (*) Po jednym logowaniu działa, po kolejnym logowaniu nie. Podejrzewam wyścig między dwiema aplikacjami…

  • F9 z jakiegoś powodu sprawia, że ​​mój ekran jest nieco ciemniejszy (a F9 nie osiąga skrótów na poziomie aplikacji, więc na przykład moje menu byobu nie działa)

Próbowałem patrzeć na różne miejsca i:

  • Ja nie widzę żadnego z tych skrótów w ustawieniach klawiatury / Skróty

  • Nie mogę ich znaleźć w edytorze gconf (próbowałem wyszukać F9 w szczególności w wartościach, nic nie znaleziono)

  • Nie mogłem ich znaleźć w edytorze dconf (nie ma wyszukiwania, więc kliknąłem najbardziej oczywiste ścieżki)

Więc moje pytanie brzmi: czy jest jakiś sposób, aby zapytać unity / dconf / gconf / d-bus / cokolwiek na temat bieżącej alokacji skrótów klawiszowych (który proces zachowuje który klucz). Lub wymuś rejestrowanie tych przydziałów w pliku dziennika. Lub skądś je pozdrowić. Lub………

Mekk
źródło
Czy możesz wyjaśnić lub zdefiniować (na potrzeby tego pytania), co oznacza skrót globalny ?
Klawisz, który naciskam i który powoduje, że dzieje się coś niezwiązanego z aktualnie aktywnym oknem. Na przykład globalny skrót Win-S otwiera widok expo, globalny skrót Alt-Tab przełącza okna, F12 (w mojej konfiguracji) otwiera rozwijany terminal tilda itp. I, jak powiedziałem, po każdym naciśnięciu F9 ekran przygasa i Nie mam pojęcia, która aplikacja to robi i dlaczego. I coś czasami chwyta Win-space. A w przeszłości zdarzało mi się, że F12 odbierano Tildie (na szczęście ten problem zniknął). Byłbym szczęśliwy, mogąc sprawdzić sposób przydzielania klawiatury.
Mekk,
Myślę, że F9 może aktywować nakładkę widżetów, ale minęło trochę czasu, odkąd jestem w Unity. Może poszukaj tego w CCSM ..?
Rasmus
Spójrz na askubuntu.com/questions/101226/… lub wiki.ubuntu.com/Keybindings lub superuser.com/questions/152367/... - Opisano kilka lokalizacji, np. W dconf lub gconf, w których Unity przechowuje skróty. Może chcesz sprawdzić te strony pod kątem nowych informacji?
Bajt Dowódca

Odpowiedzi:

2

Między 12.10 a 17.04 pulpit Ubuntu jest faktycznie Compiz i sam Unity jest tylko wtyczki Compiz.

Jeśli zamiast tego ustawisz i włączysz wtyczkę „poleceń” Compiz i ustawisz skróty klawiaturowe za pomocą CCSS w przypadku wystąpienia konfliktu, CCSM powinien ostrzec Cię o tym, która wtyczka powoduje konflikt, a także powinien zapewnić opcje wyłączenia konfliktu wtyczki lub powiązania klawiszy powodujących konflikt przed zastosowaniem ustawień.

Osobiście miałem również trudności z ustawieniem skrótów klawiaturowych w wersji 14.04+, ale odkąd postanowiłem zacząć używać wtyczki CCSM zamiast ustawień skrótów klawiaturowych w Unity, nie miałem żadnych problemów, a wszystkie moje skróty działają dobrze, więc zdecydowanie zalecamy przynajmniej sprawdzenie tego jako opcji.

mchid
źródło
1

Teraz rozumiem, czego potrzebujesz ...

sudo apt-get install evtest

Ciesz się opróżnianiem wydarzeń związanych z Ubuntu USB HID!

Ostrzeżenie To nie działa na klawiaturach w stylu PS2 / ... (ale kto już tam używa?) :-)

Fabby
źródło
Nie w pełni rozwiązuję mój problem, ale na pewno się przydaje. Mimo to jestem ciekawy, gdzie znajduje się aktywne powiązanie i czy można go introspekcjonować (zestawy ustawień to miejsca, z których są one odczytywane przez wiele aplikacji, ale nie każda aplikacja musi korzystać z ustawień zestawu).
Mekk
Jeśli podasz mi wynik powyższego polecenia, pomogę ci ... Jeśli chcesz wiedzieć dlaczego , radzę przeczytać: wiki.archlinux.org/index.php/Extra_keyboard_keys i docenisz, że to działa w ogóle!!! ;-)
Fabby
Ten artykuł nie jest do końca tym, o co pytam - nie pytam, w jaki sposób klawisze są tłumaczone z fizycznych naciśnięć klawiszy na symbole (choć jest to również interesujące, a czasem mylące). Pytam prostszą rzecz: który program faktycznie zachowuje i stosuje globalne skróty klawiaturowe oraz czy istnieje jakikolwiek sposób wykorzystania lub API, który pozwoliłby mi introspekcji lub śledzenia tych zadań.
Mekk,
(kiedy uruchamiam jedność, rejestruje Alt-F2, Alt-F4, Win-S itp., kiedy uruchamiam synapsę, rejestruje Win-space, kiedy uruchamiam yakuake, rejestruje F12 itp. - dwa ostatnie zgodnie z moją konfiguracją - ale w jakim miejscu rejestrują te klucze i jak uzyskać do nich dostęp?)
Mekk
Oooh ... Teraz widzę ... Jest coś takiego, evtestale robi to tylko na USB! Z drugiej strony właśnie tego potrzebujesz, jeśli używasz laptopa lub komputera stacjonarnego bez klawiatury w stylu PS / 2!
Fabby,
1

Z jednej z moich starszych odpowiedzi :

Najpierw musisz zainstalować xdotool:

sudo apt-get install xdotool

Stworzyłem serię poleceń, aby pokazać nam pasywne chwytanie za naciśnięcie klawisza. Na przykład, aby zobaczyć, co chwyta kombinację Shift + PrintScreen, możesz użyć poniższego „skryptu”:

xdotool keydown "shift+Print"; xdotool key "XF86LogGrabInfo"; xdotool keyup "Print"; sleep 1; xdotool keyup "shift"; tail /var/log/Xorg.0.log

Spowoduje to wyzwolenie klawisza Shift + PrtSc, a przy domyślnej instalacji Ubuntu pokaże, że demon ustawień gnome chwyta klawiaturę. Przynajmniej działało to na mojej starszej instalacji 12.04, ale wygląda na to, że na 14.04 musiałem użyć tego:

xdotool key "shift+Print"; sleep 1; xdotool key "XF86LogGrabInfo"; xdotool keyup "Print"; sleep 1; xdotool keyup "shift"; tail /var/log/Xorg.0.log

ale

xdotool keydown "F12"; xdotool key "XF86LogGrabInfo"; xdotool keyup "F12"; tail /var/log/Xorg.0.log

wciąż działa, czasem, a nie innym razem. Nie wiem dlaczego.

Musisz tylko zmodyfikować powyższy „skrypt”, zmieniając klucze, które należy zasymulować.

sokolnik
źródło