Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

xmodmap, AltGr und <|> bzw Windows-Taste

7 views
Skip to first unread message

Nico Hoffmann

unread,
Nov 19, 2023, 7:56:56 AM11/19/23
to
Hallo,

das neue Notebook[1] ist klein. So klein, dass die Erbauer die Taste
für <, > und | einfach weggelassen haben. Eine Windows-Taste ist
dran, die braucht man unter Linux eher nicht so arg.
Mein Linux ist übrigens ein gentoo mit OpenRC und Xorg.

Unter Linux braucht <, |, > man dringend, deshalb soll die
Windows-Taste entsprechend umbelegt werden.
Für die Konsole habe ich eine Lösung: ich habe die Keymap de-latin1
nach de-latin1-gpd kopiert und verändert. Es reichte, eine Zeile
einzufügen:

"keycode 125 = less greater bar"

und als de-latin1-gpd.map.gz abzulegen
(/usr/share/keymaps/i386/qwertz/ in meinem System)

Den keycode kriegt man mit showkey gezeigt.

In /etc/conf.d/keymaps steht jetzt

keymap="de-latin1-gpd"

...und auf der Konsole ist alles wunderbar. Ich kriege mit der
Windows-Taste <, |, >.




Xorg ist ein zweites paar Stiefel. Offenbar werden dort andere
keycodes verwendet, und es scheint auch anders zu funktionieren.

Mit AltGr (diese Taste ist lediglich mit "Alt" beschriftet) bekomme
ich @ (q + AltGr) , € (e + AltGr), etc, d.h. diese Taste hat offenbar
die nötige Funktion um auf Sonderzeichen umzuschalten.


xmodmap -e "keycode 133 = less greater bar bar bar bar bar"

sollte nach meinem Verständnis bei < + AltGr ein | liefern, tut es
aber nicht :-(

Ich bekomme damit zwar < und > (mit < + shift), aber nicht | mit < +
AltGr.

Mir ist aber schleierhaft, warum diese Umschaltung offenbar nur für
die voreingestellten Zeichen und nicht für meine Umbelegung
funktioniert.


xmodmap -e "keycode 133 = less bar greater" liefert zwar | für < +
shift, aber dann fehlt natürlich >. Das ist auch keine Lösung...

< + Alt (nicht AltGr!) liefert übrigens ¼.

Hat jemand einen Tipp?

N.

[1] GPD Win Max 2
--
Diese Signatur ist *nicht* die Signatur, die neulich dran war.

Gerald E¡scher

unread,
Nov 19, 2023, 9:19:15 AM11/19/23
to
Nico Hoffmann schrieb am 19/11/2023 13:56:

> das neue Notebook[1]

URL?

> ist klein. So klein, dass die Erbauer die Taste
> für <, > und | einfach weggelassen haben.

Nicht ganz, US-Tastaturen haben eine Taste weniger und stattdessen eine
größere linke Shift-Taste. Sie haben keine Taste für internationale
Tastaturen hinzugefügt :-)

Eine solche Tastatur habe ich ebenfalls (faltbare Blauzahn-Tastatur),
bei der sind <, > und | als Drittbelegung von Y, X und C über die
fn-Taste erreichbar.

--
Gerald

Lutz Falke

unread,
Nov 19, 2023, 9:38:57 AM11/19/23
to
Nico Hoffmann schrieb:
> Hallo,
>
> das neue Notebook[1] ist klein. So klein, dass die Erbauer die Taste
> für <, > und | einfach weggelassen haben. Eine Windows-Taste ist
> dran, die braucht man unter Linux eher nicht so arg.
> Mein Linux ist übrigens ein gentoo mit OpenRC und Xorg.

Auf dem Bild in deinem anderen Post
(<https://lewonze.de/bilder/2023/gpd-E558.jpg>)
sieht man, dass die einfach eine US-Tastatur (einzeilige Entertaste)
genommen haben und Deutsche Besriftung draufgedruckt haben. Dort gibe
es siese Taste nicht. Das wäre jetzt die gelegenheit, sich gleich an
ein vernünftiges Layout zu gewöhnen. *duck*
Dort kann man <, > und | viel leichter tippen. ;)

[Einstellungen Linux-Console]

> Xorg ist ein zweites paar Stiefel. Offenbar werden dort andere
> keycodes verwendet, und es scheint auch anders zu funktionieren.

Ja, die Keycodes unter X sind anders.

> Mit AltGr (diese Taste ist lediglich mit "Alt" beschriftet) bekomme
> ich @ (q + AltGr) , € (e + AltGr), etc, d.h. diese Taste hat offenbar
> die nötige Funktion um auf Sonderzeichen umzuschalten.
>
>
> xmodmap -e "keycode 133 = less greater bar bar bar bar bar"
>
> sollte nach meinem Verständnis bei < + AltGr ein | liefern, tut es
> aber nicht :-(

Nicht ganz. Die linke "Windows-Taste" (in deinem Tastaturmapping
wahrscheinlich "Super_L") ist noch an einen Modifier gebunden. Sieht
dann etwa so aus:

$ xmodmap
| [...]
| mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
| ^^^^^^^^^^^^^^
| [...]

Das musst du noch lösen, sonst kommt das "Mode_switch", was auf der
der "AltGr" liegt, nicht richtig an.

Also so:
$ xmodmap -e "remove mod4 = Super_L"
$ xmodmap -e "keycode 133 = less greater bar"

HTH Lutz

Nico Hoffmann

unread,
Nov 19, 2023, 4:56:20 PM11/19/23
to
Lutz Falke schreibt:

> Nico Hoffmann schrieb:
>> Hallo,
>>
>> das neue Notebook[1] ist klein. So klein, dass die Erbauer die Taste
>> für <, > und | einfach weggelassen haben. Eine Windows-Taste ist
>> dran, die braucht man unter Linux eher nicht so arg.
>> Mein Linux ist übrigens ein gentoo mit OpenRC und Xorg.
>
> Auf dem Bild in deinem anderen Post
> (<https://lewonze.de/bilder/2023/gpd-E558.jpg>)
> sieht man, dass die einfach eine US-Tastatur (einzeilige Entertaste)
> genommen haben und Deutsche Besriftung draufgedruckt haben.

Ich halte die einzeilige Entertaste für einen geschickten Schachzug.
Sonst müßte ich auf die #-Taste auch noch verzichten.


>> Xorg ist ein zweites paar Stiefel. Offenbar werden dort andere
>> keycodes verwendet, und es scheint auch anders zu funktionieren.
>
> Ja, die Keycodes unter X sind anders.
>
>> Mit AltGr (diese Taste ist lediglich mit "Alt" beschriftet) bekomme
>> ich @ (q + AltGr) , € (e + AltGr), etc, d.h. diese Taste hat offenbar
>> die nötige Funktion um auf Sonderzeichen umzuschalten.
>>
>>
>> xmodmap -e "keycode 133 = less greater bar bar bar bar bar"
>>
>> sollte nach meinem Verständnis bei < + AltGr ein | liefern, tut es
>> aber nicht :-(
>
> Nicht ganz. Die linke "Windows-Taste" (in deinem Tastaturmapping
> wahrscheinlich "Super_L") ist noch an einen Modifier gebunden. Sieht
> dann etwa so aus:
>
> $ xmodmap
>| [...]
>| mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
>| ^^^^^^^^^^^^^^
>| [...]


Ja, hier ist es auch so:

| mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)


> Das musst du noch lösen, sonst kommt das "Mode_switch", was auf der
> der "AltGr" liegt, nicht richtig an.
>
> Also so:
> $ xmodmap -e "remove mod4 = Super_L"
> $ xmodmap -e "keycode 133 = less greater bar"

Hilft immer noch nicht.

| $ xmodmap -e "remove mod4 = Super_L"

bringt

| mod4 Super_R (0x86), Hyper_L (0xcf)

und

| $ xmodmap -e "keycode 133 = less greater bar"

ändert nix. < und >, aber kein |

Für die fe_lende Taste (94?) ist der keycode "less greater less
greater bar dead_belowmacron bar dead_belowmacron less greater bar
dead_belowmacron", aber wenn ich das 1:1 übernehme wird es auch nicht
anders:

| $ xmodmap -e "keycode 133 = less greater less greater bar dead_belowmacron bar dead_belowmacron less greater bar dead_belowmacron"

-> < und >, aber kein |...

N.
--
Diese Sig ist Unfug.

Lutz Falke

unread,
Nov 20, 2023, 6:31:27 PM11/20/23
to
Nico Hoffmann schrieb:
> Lutz Falke schreibt:

>> Also so:
>> $ xmodmap -e "remove mod4 = Super_L"
>> $ xmodmap -e "keycode 133 = less greater bar"
>
> Hilft immer noch nicht.

Hätte ich mal besser genauer nachgesehen. Bei mir hatte das
funktioniert, aber auch eher zufällig, wie ich eben gelernt habe.
Ich hatte einen anderen Startpunkt als du und auch noch die rechte
ALT-Tate auf "Mode_switch" gesetzt. Das klappt aber so bei dir nicht
ohne unerwünschte Nebenwirkungen.

>
>| $ xmodmap -e "remove mod4 = Super_L"
>
> bringt
>
>| mod4 Super_R (0x86), Hyper_L (0xcf)
>
> und
>
>| $ xmodmap -e "keycode 133 = less greater bar"
>
> ändert nix. < und >, aber kein |
>
> Für die fe_lende Taste (94?) ist der keycode "less greater less
> greater bar dead_belowmacron bar dead_belowmacron less greater bar
> dead_belowmacron", aber wenn ich das 1:1 übernehme wird es auch nicht
> anders:
>
>| $ xmodmap -e "keycode 133 = less greater less greater bar dead_belowmacron bar dead_belowmacron less greater bar dead_belowmacron"
>
> -> < und >, aber kein |...

Das sind aber viele Symbole. Hast du da etwa mehrere Layouts
konfiguriert? Zeig mal bitte die Ausgabe von:

setxkbmap -query

Da kommt raus, welche Layouts und Optionen konfiguriert sind.

Das hilft aber eigentlich auch nicht direkt weiter; das ist alles viel
komplizierter als ich befürchtet hatte.

Direkt mit xmodmap lässt sich das ausgehend vom deutschen Layout nicht
erreichen. Informationen dazu sind dünn gesäht. Im Arch-Wiki gibt es
einen ausführlichen Text dazu:
<https://wiki.archlinux.org/title/X_keyboard_extension>

Kurz gesagt: Es kann prinzipiell für jede Taste ein Typ festgelegt
werden. Und der Typ bestimmt, wieviele Shift-Ebenen die Taste hat. Für
die linkte Windows-Taste ist nur eine oder zwei Ebenen im Layout
definiert. Das kann man mit xmodmap werder sehen noch ändern. Deshalb
funktioniert das oben nicht. Da kannst du noch so viele Symbole an die
Taste binden, da kommst du dann einfach nicht hin.

Irgendeine Option dazu habe ich nicht gesehen, da muss man dann
wirklich das Layout selbst ändern. Eine richtig schöne Lösung dafür
habe ich auch nicht.

Prinzipiell kann man das Layout mit xkbcomp von X-Server holen,
editieren und wieder laden:

Das Beispiel unten ist ausgehend von

$ setxkbmap -query
|rules: evdev
|model: pc105
|layout: de
|options: compose:caps

erstellt.

$ xkbcomp "$DISPLAY" layout.xkb

Die Datei layout.xkb editieren:
- Im Abschnitt xkb_symbols "..." den Inhalt von key <LSGT> nach
key <LWIN> übertragen

key <LWIN> {
type= "FOUR_LEVEL",
symbols[Group1]= [ less, greater, bar, dead_belowmacron ]
};

- Im Abschnitt xkb_symbols "..." die Zeile

modifier_map Mod4 { <LWIN> };

löschen.

$ xkbcomp layout.xkb "$DISPLAY"

Oder du suchst dir einfach eine andere Taste aus:

AltGr+, für <
AltGr+. für > und
AltGr+- für |

sieht jetzt auch nicht so schlecht aus. Dazu vielleicht noch
"ISO_Level3_Shift" auf die linke Windows-Taste legen. Das ginge dann
auch wieder mit xmodmap.

Lutz

Marcel Mueller

unread,
Nov 22, 2023, 3:14:30 PM11/22/23
to
Am 19.11.23 um 13:56 schrieb Nico Hoffmann:
> Hallo,
>
> das neue Notebook[1] ist klein. So klein, dass die Erbauer die Taste
> für <, > und | einfach weggelassen haben.

Das nennt man US-Tastatur. Die hat eine Taste weniger, und zwar diese.


> Unter Linux braucht <, |, > man dringend, deshalb soll die
> Windows-Taste entsprechend umbelegt werden.

Hmm, ob man eine Metataste zu einer normalen machen kann?
Anders herum geht jedenfalls nicht.


Marcel

Nico Hoffmann

unread,
Dec 3, 2023, 2:55:55 PM12/3/23
to
Lutz Falke half mir bei einem verzwickten Problem weiter:
Ist bei meinem GPD genauso, nur die 'options' fehlen.


> erstellt.
>
> $ xkbcomp "$DISPLAY" layout.xkb
>
> Die Datei layout.xkb editieren:
> - Im Abschnitt xkb_symbols "..." den Inhalt von key <LSGT> nach
> key <LWIN> übertragen
>
> key <LWIN> {
> type= "FOUR_LEVEL",
> symbols[Group1]= [ less, greater, bar, dead_belowmacron ]
> };
>
> - Im Abschnitt xkb_symbols "..." die Zeile
>
> modifier_map Mod4 { <LWIN> };
>
> löschen.
>
> $ xkbcomp layout.xkb "$DISPLAY"

Vielen herzlichen Dank! Ich habe erst jetzt Zeit gefunden, mir deinen
Vorschlag genauer anzusehen, und so klappt es auf Anhieb. Die
Win-Taste macht jetzt, was ich will :-)


Die Hinweismeldungen

| No symbols defined for <AB11> (keycode 97)
| No symbols defined for <JPCM> (keycode 103)
| No symbols defined for <I120> (keycode 120)
| No symbols defined for <AE13> (keycode 132)
| No symbols defined for <I149> (keycode 149)
| No symbols defined for <I154> (keycode 154)
| No symbols defined for <I168> (keycode 168)
| No symbols defined for <I178> (keycode 178)
| No symbols defined for <I183> (keycode 183)
| No symbols defined for <I184> (keycode 184)
| No symbols defined for <FK19> (keycode 197)
| No symbols defined for <FK24> (keycode 202)
| No symbols defined for <I217> (keycode 217)
| No symbols defined for <I219> (keycode 219)
| No symbols defined for <I222> (keycode 222)
| No symbols defined for <I230> (keycode 230)
| No symbols defined for <I248> (keycode 248)

kann man offenbar gefahrlos ignorieren.

Auf der GPD-Tastatur kriege ich nun <>| über die Win-Taste, und mit
einer Standard-de-Tastatur hat man die <>|-Symbole zusätzlich auf der
Win-Taste, was überhaupt nicht weh tut.

Also nochmals Danke! Ohne deine kundigen und präzisen Hinweise hätte
es mich Monate gekostet, den Hintergrund zu verstehen und eine Lösung
zu finden.


N., dann kann ich jetzt mit den ca. 17 anderen Problemen mit diem GPT
weitermachen... ;-)
--
Den Sozialismus - so sagt man bei uns immer - in seinem Lauf halten
weder Ochs noch Esel auf.
Erich Honecker (1912 - 1994) im August 1989
0 new messages