Come posso impostare un determinato codice di accesso a un tasto e associarlo all’azione giusta?

Ho un laptop con layout di tastiera svedese, tutto funziona bene con la tastiera. A causa di infortuni sto usando una tastiera esterna ergonomica USB, questo è dove sto vivendo delle difficoltà.

La tastiera esterna non ha una chiave per Control_R o ALT-GR (immagino che sia ALT_R ) che causa problemi perché digitando @ , $ , e {} o [] tutti usano ALT-GR nel layout di tastiera svedese.

AGGIORNAMENTO :: Questo non è vero. La tastiera viene fornita con entrambi i tasti di controllo, ma è stata incasinata a causa della rimapping personalizzata, leggi come gestirla qui . Dopo un reset completo mi risulta che la tastiera esterna ha anche Alt-GR (mostrato come ISO_Level3_Shift di xev) (anche se i backtick erano difficili da trovare). :: AGGIORNA AGGIORNAMENTO

La tastiera ha una funzione di remapping incorporata e funzioni macro, ma non c’è modo di rimappare i tasti dalla tastiera integrata alla tastiera esterna (per quanto ne so)

Vorrei impostare uno dei miei tasti sulla tastiera esterna per avere un nuovo keycode (come Control_R o ALT_R e quindi rimappare quello per agire come ALT-GR – è ansible? Il motivo per cui non voglio il codice di accesso Control_L è , se lo rimappo, anche l’altro tasto di controllo verrà rimappato.

Con xev ho controllato quale keycode viene triggersto facendo clic sulla chiave di ALT-GR sulla mia tastiera di bordo e questo è il keycode 108 (keysym 0xfe03, ISO_Level3_Shift) . Dopo alcune ricerche ho notato che questo non è previsto per il tasto ALT-GR , ma questa chiave funziona come mi aspetto.

Con xev controllo anche l’output per il tasto sulla tastiera esterna che desidero utilizzare come ALT-GR : keycode 105 (keysym 0xffe3, Control_L) .

Ho un altro tasto sulla tastiera esterna che emette la stessa identica cosa, quella chiave che uso per Control_L , facendo Control_L che quello che vorrei fosse ALT_GR ridondante.

Ho gettato un pasticcio con xmodmap per vedere se riesco a ottenere ciò di cui ho bisogno, ma purtroppo senza successo. Ecco alcuni scenari.

xmodmap -e "keycode 105 = Alt_R" # => Disabilita entrambe le chiavi di controllo e non funziona come ALT-GR , praticamente la chiave non fa nulla.

xmodmap -e "keycode 105 = ISO_Level3_Shift" # => Come sopra

C’è un modo per affrontare questi problemi?


Impostare:

  • Ubuntu 13.10
  • Tastiera USB esterna ( Kinesis Advantage Pro )

Passare a una console virtuale ( CTRL + ALT + F1 ) ed eseguire

 showkey -s 

Questo stamperà gli scancodi dei tasti, quindi basta premere i tasti CTRL sinistro e destro e vedere se hanno gli stessi scancodes. Dopo aver verificato ciò, attendere 10 secondi e non premere alcun tasto , in modo che il programma showkey possa tornare. Quindi torna a X ( ALT + F7 ).

Se gli scancodes erano diversi, allora c’è speranza che quelle chiavi possano essere rimappate in modo diverso (perché il kernel le vede diverse), se gli scancodes sono uguali, allora non c’è modo di rimappare diversi.

Se hai due chiavi con lo stesso scancode, rimappando quelle chiavi in ​​un’altra azione rimappare entrambe le chiavi con quello scancode. Non c’è modo (per quanto ne so) di differenziare due chiavi diverse se hanno lo stesso scancode.

Come suggerisce @falconer, puoi vedere se le tue due chiavi in ​​realtà sono diverse o uguali controllando con showkey -s nella console virtuale. Ricorda come tornare a X ( ALT + F7 ) in modo da non rimanere bloccati nella console virtuale.

Se premi i tuoi due tasti che desideri mappare in modo diverso, e quei due tasti ti danno lo stesso risultato qui, allora devi cercare un’altra soluzione.

La tastiera esterna di cui si sta parlando ha infatti delle chiavi con gli scancodes che mappano le azioni che si suggerisce manchino ( Control_L e Control_R ) – Ti consiglierei di reimpostare la tastiera sulle sue impostazioni predefinite e controllare l’output delle tue chiavi con xev ancora.

Assicurati di iniziare con le corrette impostazioni del sistema operativo, sulla tastiera che sono:

= + + w per Windows.

= + + p per PC (non Windows).

= + + m per Mac.

Impostarlo prima di iniziare la rimapping ti farà iniziare bene con tutti gli scancodi di cui hai bisogno.

Per quanto riguarda il problema Alt-GR , ISO_Level3_Shift dovrebbe essere l’azione corretta per questa chiave (per quanto ne so). Le chiavi con quell’azione triggersno correttamente il comportamento di Alt-GR .

Inoltre, quando si maneggiano gli scancodes e le azioni, potrebbe essere utile avere un software come KeyMon che ti indicherà quale combinazione di tasti o tasti stai premendo.