Ponowne wiązanie / wyłączanie CTRL + ALT + F # Przełączanie terminala wirtualnego / konsoli

21

Mam aplikację, która wiąże CTRL+ ALT+ F7, ale moja maszyna z systemem Linux wydaje się chwytać naciśnięcie klawisza.

Czy istnieje sposób na ponowne powiązanie / wyłączenie tego klucza? Ponowna kompilacja jądra jest akceptowalną odpowiedzią.

Omawiane dystrybucje to Fedora 16 i Ubuntu 11.10.

Jes
źródło
Nie mam żadnej konkretnej porady, ale myślę, że ponieważ CTRL + ALT + Fn jest związany tylko w systemie X-Windows, jądro nie będzie z nim w żaden sposób powiązane i prawdopodobnie będziesz miał więcej szczęścia próba dostrojenia konfiguracji X11.
njsg
@njsg Możesz użyć tych samych klawiszy, aby przełączyć się z X11 na vt i przełączyć z powrotem (także między vt) - więc muszą być powiązane tak samo na vt.
Volker Siegel,

Odpowiedzi:

10

Umieść to w swoim /etc/X11/xorg.confpliku, aby wyłączyć przełączanie VT za pomocą Ctrl+ Alt+ Fn:

Section "ServerFlags"
    Option "DontVTSwitch" "on"
EndSection

Potrzebne będą również następujące elementy, aby zdarzenia były przekazywane do klientów podłączonych do wyświetlacza:

Section "InputClass"
    Identifier "keyboard defaults"
    MatchIsKeyboard "on"
    Option "XKbOptions" "srvrkeys:none"
EndSection

(Ten ostatni bit nie został przetestowany, sprawdź jego źródło .)

Sam Morris
źródło
To nie przesyła kombinacji do okna, X nadal ją łapie.
Jes
2
Po kilku miesiącach od uruchomienia systemu Windows w końcu przetestowałem to na Lubuntu 12.04, gdzie okno IntelliJ IDEA nadal nie łapie klawisza.
Jes
2
Korzystanie z dwóch ustawień było dla mnie wymagane i działało dla mnie. (w centach). ctrl-alt-f7 pokazuje teraz wbudowane użycie w intellij :).
Rob Dawson,
3
Jeśli używasz Intellij i chcesz używać CTL+ALT+F7do „Pokaż użycie”, w Lubuntu 15.04 domyślnym skrótem jest skrót CTL+ALT+7. Musisz zmienić to z powrotem na, CTL+ALT+F7jeśli chcesz zachować spójność z innymi systemami operacyjnymi.
Xiao Peng - ZenUML.com
1
Żeby potwierdzić, że działa to również na FreeBSD 11.
gsl
15

Następujące wywołanie setxkbmappolecenia X11 wyłącza przełączanie konsoli / terminala wirtualnego Ctrl-Alt-Fn:

setxkbmap -option srvrkeys:none

Aby powrócić do poprzedniego zachowania klawiszy ctrl-alt-Fn, a także usunąć wszystkie inne opcje, takie jak caps:ctrl_modifier:

setxkbmap -option ''

Aby wydrukować bieżące ustawienia, wywołaj setxkbmap -print.

Aby wywołać użytkownika, umieść polecenie w pliku ~ / .xinitrc.

Aby wywołać przy uruchomieniu Xsession, utwórz plik w

/etc/X11/Xsession.d

Jak na przykład

/etc/X11/Xsession.d/65srvrkeys-none

zawierający powyższe setxkbmappolecenie i uczyń go wykonywalnym za pomocą sudo chmod +x /etc/X11/Xsession.d/65srvrkeys-none.

Aby uzyskać więcej informacji, wpisz man setxkbmappolecenie powłoki lub zobacz stronę podręcznika systemowego Xorg setxkbmap .

Testowałem to z KDE na Ubuntu 14.04 LTS (Trusty). Te ustawienia są również dostępne w Ustawieniach systemu> Urządzenia wejściowe> Klawiatura> Zaawansowane. Jeśli zmienisz srvrkeysw ustawieniach GUI, pojawi się on natychmiast setxkbmapi odwrotnie.

Wolę modyfikować system X Window za pomocą interfejsów wiersza poleceń X11. Jeśli to nie działa, próbuję środowiska pulpitu. W ostateczności zmodyfikowałbym pliki konfiguracji systemu. Implementacje i formaty plików zmieniają się, ale interfejsy wiersza poleceń działają prawie na zawsze w tradycji Unix / Linux.

RobertL
źródło
Dzięki, @RobertL. Moje nadzieje były duże, ale nie, to nie wydaje się mieć żadnego wpływu na moje instalacje Debiana jessie i Ubuntu 14.04. Ctrl-Alt-F7 i Ctrl-Alt-F8 nadal przełączają się do iz wirtualnego terminala. Nie mam też tej pozycji menu Ustawienia systemowe> Urządzenia wejściowe> ... Może to jest kwestia KDE? Używam GNOME lub cokolwiek domyślnego Ubuntu.
glts
Wypróbowałem kilka sposobów, a ten był jedyny, który działa w Lubuntu 16.04, działa, gdy jestem zalogowany. Czy wiesz, jak go uruchomić na ekranie powitania w lxdm? (w Ubuntu z lightdm działa).
J.Serra
1
Działa na Linux Mint 18. Dziękujemy.
Hoang Tran
1
Działa dla mnie na Debian 8 (Jessie). UWAGA: Testowałem tylko wiersz poleceń setxkbmap -option srvrkeys:none. Wstawiam wpis do pliku /etc/X11/Xsession.d/65srvrkeys-none. I chociaż jeszcze się nie wylogowałem i nie zalogowałem, zakładam, że będzie dobrze.
MikeyE
1
Działa dobrze dla mnie w Debian Buster; jak @MikeyE Nie wylogowałem się jeszcze (i prawdopodobnie nie zrobię tego za kilka tygodni / miesięcy ;-), ale setxkbmappodejście to załatwiło. Bardzo mile widziane!
Per Lundberg
1

Możesz to wyłączyć, przechodząc do Ustawienia systemowe -> układ klawiatury -> opcja. w różnych opcjach kompatybilności zaznacz „klucze specjalne Ctrl+ Alt+ <key>obsługiwane na serwerze”.

Sprawdziłem to, a Ubuntu nie łapie żadnej kombinacji Ctrl+ Alt+ ... ale wciąż pomysł nie łapie Ctrl+ Alt+, F7a problem nadal się kończy !!!

rezamda
źródło
Masz rację, Ubuntu go nie łapie, ale podejrzewam, że serwer X tak.
Jes
3
Tak! Okazało się, że domyślnie w Ubuntu IDEA obsługuje Ctrl + Alt + 7 zamiast F7 !
o_nix
0

W Ubuntu 18.04 musisz utworzyć następujący plik:

/usr/share/X11/xorg.conf.d/65-setxkbmap

z tą zawartością:

Section "ServerFlags"
    Option "DontVTSwitch" "on"
EndSection

Section "InputClass"
    Identifier "keyboard defaults"
    MatchIsKeyboard "on"
    Option "XKbOptions" "srvrkeys:none"
EndSection

następnie uruchom ponownie system.

vort2020
źródło
Z wyjątkiem nazwy pliku jest to sugerowane w zaakceptowanej odpowiedzi.
RalfFriedl