Jak wyłączyć przełączanie konsol wirtualnych za pomocą Alt-Arrow?


36

Następujące dzieje się na różnych Linuces:

Kiedy jestem w wirtualnej konsoli, przytrzymaj Alti naciśnij lub , wirtualny cykl ttys. To jest naprawdę denerwujące, ponieważ używam powłoki rybnej, która również używa tej kombinacji klawiszy. Mógłbym zmienić mapę skrótów ryb, ale nie chcę. Zamiast tego chcę wyłączyć funkcję linux lub ponownie ją przypisać.

Jak mogę wyłączyć lub zmienić kombinację klawiszy tty-cycling-key?


2
Odpowiedź, która może ci pomóc: superuser.com/questions/290115/…
Didi Kohen

Odpowiedzi:


14

Możesz użyć tego loadkeyspolecenia do zmiany mapowania klawiszy na konsoli Linux. Poniższe linie definiują przypisania klawiszy do przełączania konsol (na klawiaturze komputera):

alt keycode 105 = Decr_Console
alt keycode 106 = Incr_Console

Załaduj własny plik mapy klawiszy, który zastępuje te powiązania za pomocą sekwencji ucieczki rozpoznawanej przez rybę. Aby klucz wysyłał sekwencję zmiany znaczenia, musisz powiązać go z nazwą klucza formularza i zdefiniować sekwencję znaków dla .FNUMBERFNUMBER

alt keycode 105 = F105
alt keycode 106 = F106
string F105 = "\033\033[D"
string F105 = "\033\033[C"

Różne dystrybucje (a czasem różne pakiety do obsługi konsoli) przechowują mapę klawiszy uruchamiania systemu w różnych lokalizacjach /etc. Poszukaj pliku o nazwie *.kmaplub *.kmap.gzlub *.maplub *.map.gzpod /etclub skonsultować podręcznik swojej dystrybucji. Niektóre dystrybucje przechowują /etczamiast tego nazwę mapy klawiszy i umieszczają ją w innym miejscu; poszukaj ustawienia związanego z mapą klawiszy w /etc/sysconfigkatalogu lub innym katalogu konfiguracyjnym.

Możesz albo napisać własną mapę klawiszy i użyć jej, include "/path/to/foo.map"aby odwoływać się do mapy klawiszy systemu, lub zorganizować ładowanie własnej mapy klawiszy zawierającej tylko ustawienia, które chcesz zmienić podczas procesu uruchamiania.


Czy jesteś pewien .kmaprozszerzenia? Nie mogłem znaleźć żadnych plików na Fedorze 20, ale z drugiej strony znalazłem /lib/kbd/keymaps/legacy/i386/qwerty/us.map.gz.
Cristian Ciupitu

@CristianCiupitu Mój zły, powinienem był wspomnieć o innych sposobach na to. Myślę, że w Fedorze jest gdzieś ustawienie /etc/sysconfigokreślające nazwę pliku mapy klawiszy, który ma zostać załadowany podczas uruchamiania.
Gilles „SO- przestań być zły”

Czy powinienem pobrać moją konfigurację dumpkeys, zapisać ją, zmienić i zmienić /etc/sysconfig? Czy to sprawi, że będzie trwały?
Max Ried

@Gilles, być może strony podręcznika systemd-vconsole-setup.service i [vconsole.conf] ( freedesktop.org/software/systemd/man/vconsole.conf.html ) mogą rzucić na to trochę światła.
Cristian Ciupitu

@MaxRied Zalecam trzymanie tych dwóch osobno, łatwiej będzie je utrzymać. Zmień odwołanie w /etc/sysconfigpliku zawierającym includedyrektywę na standardową mapę klawiszy.
Gilles „SO- przestań być zły”

44

Oto jednorazowa poprawka:

sudo sh -c 'dumpkeys |grep -v cr_Console |loadkeys'

Sugerowałbym dodanie tego jako polecenia w „aplikacjach startowych”.
Samy Bencherif

20

Ponownie sformułowałem odpowiedź Tobu, aby zmienić tylko absolutnie konieczne:

sudo sh -c 'dumpkeys -k|grep -v Incr_Console|grep -v Decr_Console|grep -v Last_Console|loadkeys'

Uwaga: Jak powiedziano, jest to jednorazowa poprawka i prawdopodobnie zniknie po ponownym uruchomieniu.


1
Dwie poprawki: 1. Zrzuć tylko powiązania klawiszy, aby uniknąć błędu składni w klawiszach load; 2. Pozbądź się także Last_Console (Alt + Tab): sudo sh -c 'dumpkeys | grep -v Incr_Console | grep -v Decr_Console | loadkeys' Bardzo dziękuję za to!
Reuben Thomas,

W nawiązaniu do mojego poprzedniego komentarza odkryłem, że lampka Caps Lock wciąż się świeci i gaśnie (mimo że Caps Lock nadal był mapowany na Control w moim systemie). Aby to naprawić, odfiltrowywanie wiersza zawierającego Caps_Lock nie działa, ponieważ jest to jedyne mapowanie odpowiedniego kodu klucza, więc nie jest nadpisywane, gdy przefiltrowana lista mapowań jest ponownie ładowana. Ostatecznie najprostszym rozwiązaniem było zrzucenie „znanej dobrej” mapy klawiszy, a następnie jawne jej załadowanie.
Reuben Thomas

14

Czasami miałem problem z Ubuntu 18.04:

sudo kbd_mode -s

Wykonał robotę. (przynajmniej tymczasowo)

Długi raport o błędach można znaleźć tutaj na starterze .


Jak to działa? Waham się eksperymentować, ponieważ strona podręcznika mówi: „Ostrzeżenie: zmiana trybu klawiatury, inna niż między ASCII a Unicode, prawdopodobnie uniemożliwi korzystanie z klawiatury”.
nshiff

1
Cześć, dodałem link.
Cewka

Dzięki! To zadziałało. Próbowałem kliknąć „Tak, dotyczy mnie” na stronie bugs.launchpad.net/ubuntu/+source/console-setup/+bug/520546, ale wciąż pojawia się błąd przekroczenia limitu czasu. Masz pomysł, jak to naprawić?
6005

Przypuszczam, że powinno to być tymczasowe, w przeciwnym razie musisz wypełnić raport o błędzie dla samego systemu zgłaszania błędów! : p
Cewka
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.