Wie binde ich Strg + Pfeile an die Home- und End-Taste? xmodmap funktioniert nicht

15

Unter Windows habe ich immer Ctrl+ Leftan Homeund Ctrl+ rechts an Endvia ahk gebunden.

Jetzt kämpfe ich darum, dieses Verhalten in Ubuntu zu erreichen. Ich habe versucht zu bearbeiten /etc/inputrc:

"\e[1;5C": end-of-line
"\e[1;5D": beginning-of-line

Es funktioniert aber nur im Terminalfenster. Ich habe auch xmodmap ausprobiert:

xmodmap -e "keycode 113=Left NoSymbol Home"

aber es funktioniert nicht.
Das Seltsame hier ist, dass es funktioniert , wenn ich mich in xmodmap an Shift+ binde Left:

xmodmap -e "keycode 113=Left Home"

Ich vermute, dass das Standardverhalten von Ctrl+ Left(Wörter überspringen) irgendwie Vorrang vor xmodmap-Bindungen hat.

Wo finde ich die Standardbindungen und wie kann ich sie entfernen? Oder könnte ich dort das benötigte Verhalten einfach binden?

Ich bin auf Ubuntu 12.04

acid009
quelle
Erhalten Sie eine xevAusgabe für die Tasten, die Sie ändern möchten?
Seth
Ich mache. Ich habe den Schlüsselcode 113 = Links von der xev-Ausgabe.
acid009
Können Sie xevbitte die gesamte Ausgabe hinzufügen ?
Seth
Zustand 0x0, Keycode 113 (Keysym 0xff51, links)
acid009
und zustand 0x4, keycode 113 (keysym 0xff51, left) bei gedrückter strg-taste - der zustand wird wie erwartet auf 0x4 geändert
acid009

Antworten:

11

AutoKey kann solche Bindungen ausführen , erfordert jedoch die Ausführung eines Dienstes im Hintergrund (wie ahk, aber anders als xmodmap).

Konfigurieren Sie eine "Phrase", in der sich der Text <home>, die Einfügemethode Keyboardund der Hotkey befinden <ctrl>-<left>:

AutoKey GUI

cscarney
quelle
Nett. Dies könnte auch als Antwort hier gut passen askubuntu.com/questions/254424/…
Kevin Bowen
1
Eine erweiterte, allgemeinere Version: askubuntu.com/a/304834/194 Macht das diese Frage zu einem Duplikat?
cscarney
Wahrscheinlich schon, aber du solltest trotzdem das Kopfgeld bekommen. ;-)
Kevin Bowen
Diese Methode funktioniert nicht.
acid009
1
@ JeffDror es ist <page_up> und <page_down> ( code.google.com/p/autokey/wiki/SpecialKeys )
cscarney
1

Ich verwende eine Apple Aluminium-Tastatur auf einer Ubuntu-Workstation und die folgenden xmodmap-Befehle haben dies für mich erledigt:

# remap Ctrl_L to ModeSwitch, then use it to map arrow keys so that
# they act like on the MacBook keyboard with Fn key pressed 
xmodmap -e "keycode 37=Mode_switch"
xmodmap -e "keycode 113 = Left NoSymbol Home"
xmodmap -e "keycode 114 = Right NoSymbol End"
xmodmap -e "keycode 111 = Up NoSymbol Prior"
xmodmap -e "keycode 116 = Down NoSymbol Next"

Dies funktioniert perfekt, da meine Caps LockTaste mithilfe der Ubuntu-Tastatureinstellungen der Control-Funktion neu zugeordnet wird, sodass die linke Control-Taste nicht benötigt wird. Da sich die Fn-Taste auf der MacBook-Tastatur befindet, wirkt sich das Umschalten zwischen Desktop- und MacBook-Tastatur nicht auf das Muskelgedächtnis aus.

Peter Kvitek
quelle
0

Autokey hat für mich gearbeitet. Das standardmäßige Autokey-Verhalten wäre: right ctrl+ arrowund left ctrl+ zuordnen arrow. Und ich wollte nur right ctrl, weil ich früher left ctrlin Wörtern navigiert habe.

Hier ist das Skript, das ich in Autokey verwendet habe:

output = system.exec_command('xinput query-state "AT Translated Set 2 keyboard" | grep down', getOutput=True)
# 105 is right ctrl
if 'key[105]=down' in output:
    keyboard.send_keys('<end>')
else:
    keyboard.send_keys('<ctrl>+<right>')

Hinweis: Möglicherweise haben Sie einen anderen Tastaturnamen. Probieren Sie alle aus. Ich hatte 3 Geräte, aber nur eines hat funktioniert

xinput list --name-only | grep -i keyb
Virtual core keyboard
Virtual core XTEST keyboard
AT Translated Set 2 keyboard

PS Ich habe Autokey von GitHub installiert, weil das Paket in Ubuntu Software kaputt ist.

wibotwi
quelle