Come associare Ctrl + frecce ai tasti Home e Fine? xmodmap non funziona


15

Su Windows, ero solito associare Ctrl+ Lefta Homee Ctrl+ Diritto a Endvia ahk.

Ora sto lottando per raggiungere questo comportamento in Ubuntu. Ho provato a modificare /etc/inputrc:

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

Funziona ma solo nella finestra del terminale. Ho anche provato xmodmap:

xmodmap -e "keycode 113=Left NoSymbol Home"

ma non funziona.
La cosa strana qui è che se mi associo a Shift+ Leftin xmodmap funziona:

xmodmap -e "keycode 113=Left Home"

La mia ipotesi qui è che il comportamento predefinito di Ctrl+ Left(salta le parole) in qualche modo abbia la priorità sui bind xmodmap.

Dove posso trovare dove si trovano i binding predefiniti e come rimuoverli? O forse potrei semplicemente legare il comportamento necessario lì?

Sono su Ubuntu 12.04


Ricevi xevoutput per i tasti che vuoi cambiare?
Seth,

Lo voglio. Ho il codice chiave 113 = lasciato dall'output xev.
acid009,

Puoi aggiungere l'intero xevoutput per favore?
Seth

stato 0x0, codice chiave 113 (keysym 0xff51, sinistra)
acid009

e indicare 0x4, codice tasto 113 (keysym 0xff51, sinistra) se premuto con Ctrl - lo stato viene modificato in 0x4 come previsto
acid009

Risposte:


11

AutoKey può eseguire collegamenti come questo, ma richiede l'esecuzione di un servizio in background (come ahk, ma a differenza di xmodmap).

Configurare una "frase" in cui si trova il testo <home>, il metodo incolla Keyboarde il tasto di scelta rapida è <ctrl>-<left>:

GUI di AutoKey


Bello. Questa potrebbe anche essere una buona risposta come risposta anche a askubuntu.com/questions/254424/…
Kevin Bowen,

1
Una versione espansa, più generica: askubuntu.com/a/304834/194 Questo fa di questa domanda un duplicato?
cscarney,

Probabilmente lo fa, ma dovresti comunque ottenere la taglia. ;-)
Kevin Bowen il

questo metodo non funziona.
acid009,

1
@JeffDror è <page_up> e <page_down> ( code.google.com/p/autokey/wiki/SpecialKeys )
cscarney,

1

Sto usando la tastiera in alluminio Apple sulla workstation Ubuntu e i seguenti comandi xmodmap lo hanno fatto per me:

# 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"

Funziona perfettamente perché il mio Caps Locktasto viene rimappato alla funzione Controllo usando le preferenze della tastiera Ubuntu, quindi il tasto Control sinistro non è necessario. Dal momento che si trova dove si trova il tasto Fn sulla tastiera del MacBook, il passaggio tra le tastiere desktop e MacBook non influisce sulla memoria muscolare.


0

Autokey ha funzionato per me. Il comportamento Autokey predefinito sarebbe: mappare sia right ctrl+ arrowche left ctrl+ arrow. E volevo solo right ctrl, perché left ctrlnavigavo tra le parole.

Ecco lo script che ho usato in Autokey:

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>')

Nota: potresti avere un nome di tastiera diverso. Provali tutti. Avevo 3 dispositivi, ma solo uno funzionava

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

PS Ho installato Autokey da GitHub, perché il pacchetto nel software Ubuntu è rotto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.