Ein anderer Ansatz ist zu verwenden xmodmap
. Fügen Sie Folgendes zu Ihrem hinzu ~/.Xmodmap
:
keycode 134 = ISO_Level3_Shift Multi_key
Dies ist case sensitive. Die rechte Alt-Taste ( AltGr) auf meiner Tastatur hat zufällig den Schlüsselcode 134. Wenn dies nicht funktioniert, ist die wahrscheinliche Erklärung, dass Ihre Tastatur eine andere Nummer für diese Taste verwendet. Um dies herauszufinden, xev
drücken Sie auf die gewünschte Taste und suchen Sie nach dem Teil mit der Bezeichnung "Schlüsselcode XXX".
Sie können natürlich einen beliebigen Schlüssel für diesen Zweck verwenden. zum Beispiel,
keycode 38 = a Multi_key
würde dazu führen, dass der aSchlüssel (nur) als Komponententaste dient, wenn er verschoben wird. Die Unfähigkeit, Kapital einzugeben Da dies ein eindeutiger Nachteil wäre, möchten Sie vielleicht etwas anderes tun
Ich benutze Shift + Shift mit einem Trick:
keysym Shift_L = Shift_L Multi_key keysym Shift_R = Shift_R Multi_key
Dies bewirkt, dass die linke Umschalttaste als linke Umschalttaste und die rechte Umschalttaste als rechte Umschalttaste fungiert Compose. Wenn Sie jedoch eine Umschalttaste gedrückt halten, fungiert jede Umschalttaste wie . Einige Szenarien zur Veranschaulichung:
Wenn Sie die linke Umschalttaste drücken, die rechte Umschalttaste drücken, die rechte Umschalttaste loslassen und die linke Umschalttaste loslassen, erhalten Sie den gleichen Effekt, als hätten Sie eine physische ComposeTaste gedrückt (alte Sun-Tastaturen hatten diese, IIRC). Also insbesondere:
- ShiftShift+ :+ )erzeugt einen Smiley, ☺ (zumindest bei mir
~/.XCompose
) - ShiftShift+ a+ aerzeugt das & aring; Zeichen "å".
Wenn Sie die linke Umschalttaste drücken, drücken Sie die rechte Umschalttaste und lassen Sie die beiden Umschalttasten in umgekehrter Reihenfolge los. Sie erhalten den gleichen Effekt wie oben.
Wenn Sie die linke Umschalttaste drücken und wieder loslassen (ohne dazwischen liegende Rechtsverschiebung), erhalten Sie zwei Tastaturereignisse:
- eine
KeyPress
Veranstaltung fürShift_L
- eine
KeyRelease
Veranstaltung fürMulti_key
Dies liegt daran, dass beim Loslassen der linken Umschalttaste eine Umschalttaste gedrückt wird (die linke -_-), so dass die Taste so behandelt wird, als wäre sie Multi_key
alles, was sie jemals getan hat. Das hat mir keine nennenswerten Probleme bereitet, aber vielleicht kann eine alte und fehlerhafte Anwendung die KeyPress
vs.- KeyRelease
Nichtübereinstimmung unterdrücken.
Beachten Sie auch, dass die Interaktion zwischen one-shot - Tasten, Modifikator - Tasten und state-Umschalttasten (zB a, Shiftund Caps Lock) interagieren funnily. Wenn Sie dieselbe Taste sowohl als Feststelltaste als auch (wenn die Umschalttaste gedrückt gehalten wird) als Compose-Taste verwenden möchten, können Sie funky Effekte erzielen. Ich scheine mich zu erinnern, dass Sie alle anwendbaren Effekte erhalten, was wahrscheinlich nicht das ist, was Sie wollen, aber Sie können es gerne ausprobieren.