Wie kann verhindert werden, dass durch Drücken der Taste XF86RFKill der Flugzeugmodus von Linux aktiviert wird?

Wie kann verhindert werden, dass durch Drücken der Taste XF86RFKill der Flugzeugmodus von Linux aktiviert wird?

Ich verwende Kubuntu 19.10 (KDE + i3wm) auf meinem ASUS FX505DT.

Das Thema

Ich kann den XF86RFKillSchlüssel mit i3wm binden bindsym, aber diese Bindung scheint die in Linux eingebaute Bindung, die umschaltet, nicht aufzuhebenFlugzeug-Modus.

Verhalten des Problems

Dies ist, was xevzurückgegeben wird, wenn ich Fn+ drücke F12, was Folgendes auslösen soll XF86RFKill:

MappingNotify event, serial 48, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

FocusOut event, serial 48, synthetic NO, window 0x7a00001,
    mode NotifyGrab, detail NotifyAncestor

FocusOut event, serial 48, synthetic NO, window 0x7a00001,
    mode NotifyUngrab, detail NotifyPointer

FocusIn event, serial 48, synthetic NO, window 0x7a00001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 48, synthetic NO, window 0x0,
    keys:  1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

Beim Ausprobieren verschiedener Dinge habe ich festgestellt, dass mein Laptop über ein separates Eingabegerät für diese Funktionstaste verfügt, wie folgendes zeigt xinput list:

$ xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ELAN1200:00 04F3:30BA Mouse               id=12   [slave  pointer  (2)]
⎜   ↳ ELAN1200:00 04F3:30BA Touchpad            id=13   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Asus Wireless Radio Control               id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ Sleep Button                              id=10   [slave  keyboard (3)]
    ↳ USB2.0 HD UVC WebCam: USB2.0 HD           id=11   [slave  keyboard (3)]
    ↳ Asus WMI hotkeys                          id=14   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=15   [slave  keyboard (3)]

Ich habe dies zusätzlich bestätigt, indem ich während des Befehls Fn+ gedrückt habe , was ordnungsgemäß registriert wurde:F12xinput test 7

$ xinput test 7
key press   255 
key release 255 
key press   255 
key release 255 

Was ich möchte

FnIch möchte die Tastenkombination + F12oder XF86RFKillvon Linux auf ändern i3wm. Ich habe das Skript zum Umschalten des Flugzeugmodus und habe es folgendermaßen verknüpft:

bindsym XF86RFKill exec --no-startup-id toggle-airplane

Die i3-Bindung funktioniert, aber das Problem besteht darin, dass **sowohl Linux als auch der i3wmFlugzeugmodus beim Drücken der Taste umgeschaltet werden, was aufgrund des zweimaligen aufeinanderfolgenden Umschaltens dazu führt, dass nichts passiert.

Die jetzigeFlugzeug-Modus, implementiert von KDE, ist tatsächlich fehlerhaft, da es sich nicht daran erinnert, welche Geräte vor dem Einschalten ausgeschaltet wurdenFlugzeug-Modus, und daher werden alle Funkgeräte eingeschaltet, auch wenn sie zunächst ausgeschaltet waren, nach der DeaktivierungFlugzeug-Modus. Um mein Ziel zu erreichen, habe ich ein Bash-Skript geschrieben und daher die Motivation, diesen Schlüssel manuell zu binden.

Aktualisierung 1:

Nach einigen Recherchen und Erkundungen habe ich festgestellt, dassasus_wirelessDas Kernelmodul ist für dieses Verhalten verantwortlich. Das Modul einfach auf die schwarze Liste zu setzen, funktioniert, aber mein Laptop erkennt den Tastendruck nicht mehr. Ist es möglich, den Tastendruck irgendwie beizubehalten, indem der Hotkey deaktiviert wird?

Antwort1

Ich bin kein Experte auf diesem Gebiet, aber bei mir hat es funktioniert. Vielleicht hilft es Ihnen auch. Um die Eingabe zu deaktivieren, die den Flugzeugmodus aktiviert, führen Sie im Terminal Folgendes aus:

xmodmap -e 'keycode 255='

Quelle:Wie deaktiviere ich eine Tastaturtaste in Linux (Ubuntu)?

Darüber hinaus zeigt der Befehl xmodmap -pkeeine Liste aller Tastenbelegungen an

verwandte Informationen