GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann man den Umschalteffekt der Feststelltaste verhindern, ohne ihn neu zuzuordnen oder zu deaktivieren?

Ich habe ein X11-Programm, das die Feststelltaste erfasst und verwendet. Das Problem ist, dass ich das normale Umschalten der Feststelltaste deaktivieren möchte, aber dies scheint die Taste zu deaktivieren.

Was auch immer X11 für einen Feststelltastendruck erhält, muss es dennoch erhalten (kein Deaktivieren der Taste oder Neuzuordnen zu einer anderen Taste), aber ohne irgendetwas, das den Tastendruck in einen Feststelltastenumschalter übersetzt (was auf der Kernelebene sein könnte? ).

Ich habe versucht, den Scancode zu ändern, aber dadurch wurde nur die Taste neu zugeordnet.
Ich habe den Capslock-Eintrag mit xmodmap entfernt auch, aber dies hat auch die Kappen deaktiviert.

Wie kann ich dem Kernel sagen, dass er die Caps-Taste (bezüglich seiner regulären Funktionalität) ignorieren soll, aber trotzdem die Nachricht an X weitergeben soll?

Nur um ein bisschen mehr Details hinzuzufügen:

Das „Programm“, das ich auszuführen versuche, ist humanisiert „enso“.
Wenn kein Schlüssel vorhanden ist, erhalte ich die Fehlermeldung „CRITICAL:root:Couldn’t find quasimode key“. Wenn es keinen Fehler gibt, kann ich enso mit Caps verwenden, habe aber bisher nicht herausgefunden, wie man die Caps-Funktionalität deaktiviert, während enso noch darauf zugreifen kann.

Akzeptierte Antwort:

Ich glaube, ich habe eine Technik, um das Umschalten des Capslock zu deaktivieren Taste, aber nicht die Taste vollständig deaktivieren oder sie einer anderen Taste auf der Tastatur zuweisen.

Wenn Sie den Befehl verwenden:

setxkbmap -option caps:none

Die Tastatur schaltet nicht mehr um. Ich habe dies auf meinem Laptop mit Fedora 14 bestätigt, die LED leuchtet nicht mehr und normales Capslock Funktionalität ist weg.

Die Verwendung von xev zeigt jedoch immer noch, dass die Taste gedrückt wird:

$ xev
...
...
KeyPress event, serial 35, synthetic NO, window 0x6800001,
    root 0xb1, subw 0x0, time 261504852, (167,-15), root:(353,268),
    state 0x10, keycode 66 (keysym 0xffffff, VoidSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 35, synthetic NO, window 0x6800001,
    root 0xb1, subw 0x0, time 261504971, (167,-15), root:(353,268),
    state 0x10, keycode 66 (keysym 0xffffff, VoidSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False
    ...

Die gedrückten Tastenereignisse bleiben also weiterhin intakt, damit andere Anwendungen sie aufnehmen können.

setxkbmap

Die Datei /usr/share/X11/xkb/rules/xorg.lst enthält die vollständige Liste der Optionen, die Sie setxkbmap geben können .

Beim Durchsuchen dieser Datei nach „cap“ ist mir diese Zeile aufgefallen:

caps:none            CapsLock is disabled

Es gibt andere Werte in dieser Datei. Wenn Sie also nicht danach suchen, wäre vielleicht einer dieser alternativen Werte geeignet.

$ grep cap /usr/share/X11/xkb/rules/xorg.lst
  grp:caps_switch      CapsLock (while pressed), Alt+CapsLock does the original capslock action
  grp:caps_toggle      CapsLock
  grp:shift_caps_toggle Shift+CapsLock
  grp:shift_caps_switch CapsLock (to first layout), Shift+CapsLock (to last layout)
  grp:alt_caps_toggle  Alt+CapsLock
  lv3:caps_switch      CapsLock
  lv3:caps_switch_latch CapsLock (chooses 3rd level, latches when pressed together with another 3rd-level-chooser)
  ctrl:nocaps          Make CapsLock an additional Ctrl
  ctrl:swapcaps        Swap Ctrl and CapsLock
  grp_led:caps         CapsLock
  caps                 CapsLock key behavior
  caps:internal        CapsLock uses internal capitalization. Shift "pauses" CapsLock
  caps:internal_nocancel CapsLock uses internal capitalization. Shift doesn't affect CapsLock
  caps:shift           CapsLock acts as Shift with locking. Shift "pauses" CapsLock
  caps:shift_nocancel  CapsLock acts as Shift with locking. Shift doesn't affect CapsLock
  caps:capslock        CapsLock toggles normal capitalization of alphabetic characters
  caps:numlock         Make CapsLock an additional NumLock
  caps:swapescape      Swap ESC and CapsLock
  caps:escape          Make CapsLock an additional ESC
  caps:backspace       Make CapsLock an additional Backspace
  caps:super           Make CapsLock an additional Super
  caps:hyper           Make CapsLock an additional Hyper
  caps:shiftlock       CapsLock toggles Shift so all keys are affected
  caps:none            CapsLock is disabled
  compose:caps         CapsLock
  shift:breaks_caps    Shift cancels CapsLock
  shift:both_capslock  Both Shift-Keys together toggle CapsLock
  shift:both_capslock_cancel Both Shift-Keys together activate CapsLock, one Shift-Key deactivates

Referenzen

  • Feststelltaste deaktivieren und Menü auf Super_R mit xmodmap neu zuordnen funktioniert nicht mehr
  • Feststelltaste in Ubuntu deaktivieren und aktivieren
  • Feststelltaste unter Linux deaktivieren
  • Tastatur – Feststelltaste ändern oder deaktivieren
Verwandte Themen:Entscheiden Sie sich für eine Schriftart und bestimmen Sie die richtige Notation?
Linux
  1. Wie übergebe ich das Passwort an su/sudo/ssh, ohne das TTY zu überschreiben?

  2. Wie erzeuge ich den CPU-Cache-Effekt in C und Java?

  3. Wie kann ich grep zum Abgleichen verwenden, ohne die Übereinstimmungen zu drucken?

  4. Wie verwenden Sie sips am Terminal, um die Größe eines Bildes ohne Hochskalierung zu ändern?

  5. Wie kann ich versehentliches Kopieren/Einfügen im Terminal verhindern oder unterbrechen?

So aktivieren Sie den Blur-Effekt in KDE Plasma 5.13

Wie kann man die Textauswahl umschalten oder deaktivieren, die an die Zwischenablage gesendet wird?

Wie kann man eine bestimmte Linie ziehen, ohne den Cursor in Vim zu bewegen?

Wie kann man verhindern, dass `ls` die Ausgabe sortiert?

Wie kann die versehentliche Ausführung des Befehls Rm -r * verhindert werden?

Numlock ohne Schlüssel umschalten – ohne Sudo-Berechtigungen?