Aufgrund des Layouts meiner Tastatur möchte ich Numlock dauerhaft gedrückt halten und die Numlock-Taste als Löschtaste verwenden. Ich kann das anscheinend nicht zum Laufen bringen. Irgendwelche Ideen, wie dies zu tun wäre, wären willkommen.
Bearbeiten:Ich verwende Ubuntu 16
Hier ist, was ich versucht habe:
Xmodmap mit numlockx verwenden
Inspiriert von dieser Frage. Soweit ich weiß, ist xmodmap veraltet, also ist das wahrscheinlich keine gute Idee.
- Erstellen Sie eine Datei
~/.Xmodmap
mit der Zeilekeycode 77 = Delete NoSymbol
- Führen Sie
xmodmap ~/.Xmodmap
aus - Führen Sie
numlockx on
aus
Dadurch kann Numlock als Löschen funktionieren und der Ziffernblock wird aktiviert, bis ich zum ersten Mal die Numlock-Taste drücke. Dann deaktiviert die Numlock-Taste den Nummernblock.
XKB verwenden
- Bearbeiten Sie
/usr/share/X11/xkb/symbols/us
umkey <NMLK> { [Delete, Num_Lock] };
zu haben am Ende der grundlegenden Tastaturbelegung. - Computer neu starten
auch versucht:
- Bearbeiten Sie
/usr/share/X11/xkb/symbols/us
umreplace key <NMLK> { [Delete, Num_Lock] };
am Ende der grundlegenden Tastaturbelegung. - Computer neu starten
Dies leidet unter ähnlichen Problemen wie die andere Methode, das Löschen von Arbeiten ist möglich, aber die Numlock-Taste schaltet den Nummernblock aus. Es scheint auch mit anderen Tasten wie der Windows-Taste zu verwechseln, wenn der Ziffernblock aktiviert ist. Ich mag es, dass ich die Kontrolle über die Num-Taste mit Umschalt + Num-Taste bekomme. Ich kann keinen Unterschied zwischen der Verwendung von replace und der Nichtverwendung feststellen.
Akzeptierte Antwort:
Hier ist eine Möglichkeit, dies nur mit xkb zu tun, was meiner Meinung nach der Verwendung von xmodmap überlegen ist. Diese Antwort enthält mehr Details darüber, was ich erreichen wollte, als die ursprüngliche Frage. Xmodmap und xkb spielen nicht immer gut zusammen, dieser Ansatz ermöglicht viel mehr Flexibilität:
Das kommt alles von:https://wiki.archlinux.org/index.php/X_keyboard_extension
Es gibt eine Liste verfügbarer Keysyms, die hier zu funktionieren scheinen:http://docs.ev3dev.org/projects/grx/en/ev3dev-stretch/c-api/input_keysyms.html
Dies geschieht manuell, damit Sie mit der Konfiguration beginnen können, die bereits auf Ihrem Computer vorhanden ist, um Kompatibilitätsprobleme mit verschiedenen Tastaturen zu vermeiden.
Beispiele für frühere Ausführungen davon finden Sie in config_files/linux/keyboards
Beginnen Sie mit dem Ausführen von xkbcomp $DISPLAY output.xkb
um Ihre aktuellen Tastatureinstellungen
abzurufen.
Fügen Sie dann hinzu:
interpret osfLeft{
repeat= True;
action = RedirectKey(keycode=<LEFT>, clearmodifiers=Lock);
};
interpret osfRight{
repeat= True;
action = RedirectKey(keycode=<RGHT>, clearmodifiers=Lock);
};
interpret osfDown{
repeat= True;
action = RedirectKey(keycode=<DOWN>, clearmodifiers=Lock);
};
interpret osfUp{
repeat= True;
action = RedirectKey(keycode=<UP>, clearmodifiers=Lock);
};
interpret osfEndLine{
repeat= True;
action = RedirectKey(keycode=<END>, clearmodifiers=Lock);
};
interpret osfBeginLine{
repeat= True;
action = RedirectKey(keycode=<HOME>, clearmodifiers=Lock);
};
interpret osfEscape{
repeat=True;
action = RedirectKey(keycode=<ESC>, clearmodifiers=Lock);
};
zum Kompatibilitätsabschnitt der generierten Datei.
Verwandte:Installieren von Programmen in Root- vs. Home-Partitionen in Ubuntu?Fügen Sie am Ende des Typenabschnitts Folgendes hinzu:
type "CUST_CAPSLOCK" {
modifiers= Shift+Lock;
map[Shift] = Level2; // Note that this maps Shift only of {Shift,Lock} to Level2. Alt+Shift will be mapped to Level2
map[Shift+Lock] = Level3; // but Lock+Shift won't map to Level2 even without this line.
map[Lock] = Level3;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "Lock";
};
interpret osfDelete{
repeat=True;
action = RedirectKey(keycode=<DELE>, clearmodifiers=Lock);
};
Suchen Sie nach interpret Caps_Lock
und die LockMods
ändern zu SetMods
so dass die Feststelltaste nur den Modifikator setzt, nicht sperrt.
Damit Feststelltaste + WASD als Pfeiltasten funktionieren:Bearbeiten Sie die Tasten <AD02>
, <AC01>
, <AC02>
, <AC03>
geben Sie CUST_CAPSLOCK
ein und haben jeweils osfUp
, osfLeft
, osfDown
, osfRight
an dritter Stelle.
Damit Feststelltaste + HJKL als Pfeiltasten funktionieren:Bearbeiten Sie die Tasten <AC06>
, <AC07>
, <AC08>
, <AC09>
geben Sie CUST_CAPSLOCK
ein und haben jeweils osfLeft
, osfDown
, osfUp
, osfRight
an dritter Stelle.
Um Feststelltaste + 0 als Home und Feststelltaste + $ als Ende zu registrieren:Bearbeiten Sie die Tasten <AE04>
und <AE10>
geben Sie CUST_CAPSLOCK
ein und haben jeweils osfEndLine
und osfBeginLine
in der dritten Position.
Um zuzulassen, dass Feststelltaste + Leertaste als Escape registriert wird (praktisch für vim), bearbeiten Sie den Schlüssel <SPCE>
geben Sie CUST_CAPSLOCK
ein , haben space
an zweiter Stelle und osfEscape
an dritter Stelle.
Um die Numlock-Taste in eine Löschtaste umzuwandeln und Capslock + Numlock zu machen, machen Sie den <NMLK>
Typ CUST_CAPSLOCK
haben , haben Position eins und zwei haben osfDelete
und Position drei haben Num_Lock
Laden Sie nun die geänderte Datei wieder auf den Server hoch mit:xkbcomp output.xkb $DISPLAY
.
Wenn alles funktioniert, legen Sie die Datei irgendwo ab, ~/.Xkeymap
funktioniert und erstelle ein Skript zum Beispiel mit dem Namen ~/start_keyboard.sh
mit:
#!/bin/bash
xkbcomp ~/.Xkeymap $DISPLAY
Machen Sie es ausführbar (chmod u+x ~/start_keyboard.sh
) und fügen Sie das Skript Ihren Startanwendungen hinzu.