Facts:
– Gute, robuste und günstige Tastatur auch unter Linux
– 6 zusätzliche “G-Tasten” lassen sich ohne Software programmieren
– für Linuxer und Programmierer wichtige <>|-Taste fehlt einfach; dazu 3 der 6 G-Tasten verschwenden???
– CAPSLOCK nervt und ist überflüssig!?!
Wichtig für SysAdmins:
Unter Linux wird das Verhalten auf der Console ttyX unabhängig von der Grafischen Oberfläche (Gnome, KDE, XFCE, Maté, …) gesteuert.
“The Linux system console absolutely has its own set of keyboard mappings, which can be managed using the tools from the
kbd
package, specificallydumpkeys
andshowkey
for discovery andloadkeys
to load in a customized mapping. The SuperUser question How to change console keymap in Linux? has an answer with good information on how to use these tools.”
https://superuser.com/questions/729585/remap-keys-without-xmodmap-or-any-x-tools
weiterer Link (Console und X11): https://linuxwiki.de/TastaturKonfiguration
Teil 1 – tty –
*** nur für echte Console Terminals tty1..ttyN ***
Basis:
https://superuser.com/questions/290115/how-to-change-console-keymap-in-linux
Sichern:
$ dumpkeys > ~/backup.kmap
Zurückholen:
$ sudo loadkeys ~/backup.kmap
Tastencodes abfragen:
$ showkey
dann gewünschte Taste drücken, z.B. CAPSLOCK => Code 58
– die fehlende <-Taste hat den Code: 86
Funktioniert so unter Debian 8, das Folgende aber nicht, weil zwar
keycode 58 = CtrlL_Lock
stimmt, aber die Definition für ESC u.a. wesentlich komplexer ist!
Da sieht eine funktionstüchtige Zusatzdatei (modifications.kmap) so aus:
keymaps 0-127
keycode 58 = less
shift keycode 58 = greater
altgr keycode 58 = bar
shift altgr keycode 58 = brokenbar
control keycode 58 = Control_backslash
shift control keycode 58 = greater
altgr control keycode 58 = Control_backslash
shift altgr control keycode 58 = Control_backslash
alt keycode 58 = Meta_less
shift alt keycode 58 = Meta_greater
altgr alt keycode 58 = Meta_bar
shift altgr alt keycode 58 = Meta_bar
control alt keycode 58 = Meta_Control_backslash
shift control alt keycode 58 = Meta_greater
altgr control alt keycode 58 = Meta_Control_backslash
shift altgr control alt keycode 58 = Meta_Control_backslash
shift shiftl keycode 58 = greater
altgr shiftl keycode 58 = bar
shift altgr shiftl keycode 58 = brokenbar
control shiftl keycode 58 = Control_backslash
shift control shiftl keycode 58 = greater
altgr control shiftl keycode 58 = Control_backslash
shift altgr control shiftl keycode 58 = Control_backslash
alt shiftl keycode 58 = Meta_less
shift alt shiftl keycode 58 = Meta_greater
altgr alt shiftl keycode 58 = Meta_bar
shift altgr alt shiftl keycode 58 = Meta_bar
…
shift altgr control alt shiftl shiftr ctrll keycode 58 = Meta_Control_backslash
Anschliessendes
sudo loadkeys ~/modifications.kmap
funktioniert!
Dann: sudo cp ~/modifications.kmap
/etc/X11/
To have this modification load on every reboot, put the following line in your
/etc/rc.local
file:/usr/bin/loadkeys ~/modifications.kmap
Funktioniert unter Debian 8 NICHT: sudo setupcon --save
(löscht die Modifikationen):
Teil 2 – X11 –
https://wiki.archlinux.org/index.php/Keyboard_configuration_in_Xorg
http://rlog.rgtti.com/2014/05/01/how-to-modify-a-keyboard-layout-in-linux/
https://wiki.ubuntuusers.de/Xmodmap/
https://help.ubuntu.com/community/Custom%20keyboard%20layout%20definitions?action=show&redirect=Howto%3A+Custom+keyboard+layout+definitions
$ xmodmap
xmodmap: up to 4 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
Tastencodes abfragen (analog showkey in der echten Console):
$ xev
dann gewünschte Taste drücken, z.B. CAPSLOCK => Code 66
– die fehlende <-Taste hat den Code: 94
Wieso müssen das in der virtuellen Console unbedingt andere Werte sein? 🙁
keycode caps ist 66 (NICHT 58 wie auf der Console!)
keycode less ist 94 (NICHT 86 wie auf der Console!)
also jeweils 8 dazuzählen …
_________________________________________
https://linuxwiki.de/TastaturKonfiguration
Wenn CapsLock nervt…
CapsLock ist sicher eine der sinnloseren Tasten – leider ist sie aber an einer Stelle positioniert, wo man doch öfters mal drauftappt, obwohl man eigentlich Shift oder Tab haben wollte…
Unter X11 kann dem aber leicht abgeholfen werden, man ändere einfach seine ~/.Xmodmap folgendermaßen ab:
remove Lock = Caps_Lock # add mod4 = Caps_Lock
Damit entfernt man erstmal die “Lock”-Funktionalität von der Taste. Wer will, kann mit der zweiten Zeile einen Modifier 4 definieren, der dann ähnlich wie Shift/Ctrl/Alt verwendet werden kann, um Tasten eine weitere Belegung zu geben. OffeneFrage: Wie geht das unter Xorg? Ich habe keine datei ~/.Xmodmap und locate Xmodmap findet auch keine. danke!
=> .Xmodmap wie folgt generieren:
$ xmodmap -pke > ~/.Xmodmap
Quelle: https://wiki.ubuntuusers.de/Xmodmap/
Mit “keysym Caps_Lock = Tab” kann man der Caps-Lock Taste auch gleich die Tabulatorfunktion zuordnen (die Tab Taste behält die Funktion natürlich auch).
Siehe auch man 1 xmodmap oder Infos wie z.B. im Ubuntu-Wiki
Tipps
Caps-Lock Taste
Sofern man immer wieder versehentlich die Caps-Lock Taste berührt und dann DER tEXT SO ERSCHEINT, kann man in der ~/.Xmodmap folgende Zeilen eintragen [2]:
! Kommentar: change Caps-Lock -> Shift remove Lock = Caps_Lock keysym Caps_Lock = Shift_L add Shift = Shift_L
Nach Aktivierung durch ausführen von
xmodmap ~/.Xmodmap
funktioniert die Caps-Lock-Taste genau wie Shift und die lästigen Überraschungen sind Vergangenheit.
So habe ich es gemacht:
$ xmodmap -pke > ~/.Xmodmap
Dann über mc (midnight commander) bearbeitet:
keycode 94 = less greater less greater bar brokenbar bar brokenbar less greater bar brokenbar
keycode 66 = less greater less greater bar brokenbar bar brokenbar less greater bar brokenbar
nach anpassen von keycode 66 noch eine neue erste Zeile:
clear Lock
Ansonsten funktioniert die Neubelegeung von CAPSLOCK nicht!
Dann die Datei speichern.
Nach Ausführen von
xmodmap ~/.Xmodmap
(dauert kurz; PC scheinbar eingefroren)
funktionieren zumindest < und > über CAPSLOCK bzw. SHFT-CAPSLOCK;
nur ALTGR-CAPSLOCK klappt nicht: bringt statt dem gewünschten | ebenfalls ein <
Habe deshalb mit autokey-gtk via SHFT-STRG- die 3 Tasten ,.- belegt.
CAPSLOCK als auch ALTGR ließen sich nicht verwenden.