Configura Caps Lock come AltGr e frecce come in vim


9

1. Come posso mappare Caps Locka livello globale AltGr?

Non ho bisogno di CapsLock e preferirei avere un facile accesso AltGr Key lì

2. Voglio mappare tutti i tasti di movimento su vimposizioni simili

  • AltGr+ F=Backspace
  • AltGr+ H=LeftArr
  • AltGr+ J=DownArr
  • AltGr+ L=RightArr
  • AltGr+ K=UpArr
  • AltGr+ U=PgUp
  • AltGr+ D=PgDown
  • AltGr+ S=Enter
  • AltGr+ 3=Pos1
  • AltGr+ $=End
  • AltGr+ X=Del

Quindi posso facilmente scorrere il mio codice senza spostare la mano dalla posizione a 10 dita (come vimnell'editor)

Ho trovato questa risposta: come rimappare il tasto BLOC MAIUSC sul tasto backspace?
suggerendo di usare

xmodmap -e "keycode [code] = [new key]"

vedi: http://wiki.linuxquestions.org/wiki/List_of_Keysyms_Recognised_by_Xmodmap

Ma non riesco a capire come aggiungere questo ad una combinazione, ad esempio, di AltGr + J

Un altro inizio sarebbe quello di impostare il "Tasto carattere alternativo" in unity-control-center-> Tastiera-> Scorciatoie-> Digitando comeCaps Lock

Aggiornamento: ho trovato alcune soluzioni (vedi sotto) ma tutte non funzionano in tutte le applicazioni, immagino sia un'impostazione globale chiamata "XFree 4" che viene utilizzata da alcune app.

Come posso impostare anche i collegamenti dei tasti per XFree 4?


Non ho una chiave AltGr, ma potresti trovare questa domanda simile che fornisce alcuni indizi.
Elder Geek,

Risposte:


4

1. aggiungi un nuovo file parziale XKB

sudo vi /usr/share/X11/xkb/symbols/altgr_vim

con questo contenuto:

partial keypad_keys
xkb_symbols "altgr-vim" {
  # replace Caps with AltGr
  key <CAPS> { [ ISO_Level3_Shift            ] };
  # Add vim cursor keys to be accessed with AltGr
  key <AB02> { [ x, X, Delete, Delete        ] };
  key <AC02> { [ s, S, KP_Enter, KP_Enter    ] };
  key <AC03> { [ d, D, Next, Next            ] };
  key <AC04> { [ f, F, BackSpace, BackSpace  ] };
  key <AC06> { [ h, H , Left, Left           ] };
  key <AC07> { [ j, J, Down, Down            ] };
  key <AC08> { [ k, K, Up, Up                ] };
  key <AC09> { [ l, L, Right, Right          ] };
  key <AD07> { [ u, U, Prior, Prior          ] };
  key <AE03> { [ 3, section, Home, Home      ] };
  key <AE04> { [ 4, dollar, End, End         ] };
};

2. includi il parziale nel tuo file di lingua

per esempio per il tedesco è /usr/share/X11/xkb/symbols/de(dov'è la /detua lingua) aggiungilo nel primo blocco ( xkb_symbols "basic"):

include "altgr_vim(altgr-vim)"

Nota: questa parte deve essere ripetuta dopo ogni aggiornamento della distribuzione

3. ricaricare la sessione della finestra

Premi ALT + F2, inserisci "r" per ricaricare la sessione di gnome o semplicemente disconnettiti e riconnettiti. Ora saranno disponibili le nuove composizioni chiave

alcuni problemi

Alcune applicazioni non accettano le impostazioni, ad esempio: sublimeche possono essere sostituite da atom.

Alcune applicazioni richiedono impostazioni aggiuntive, ad es. Le yakuakecombinazioni di tasti sono impostate su "XFree 4", se le impostate su "Linux" o "Solaris", le impostazioni XKB funzionano anche lì:


1
consiglio vivamente di usare l'opzione XKB lv3:caps_switchinvece di cambiare la <CAPS>definizione come si mostra. vedi /usr/share/X11/xkb/symbols/level3(dove è definita quell'opzione).
Quixotic

@quixotic: puoi aggiungere una nuova risposta con le configurazioni che sarebbero necessarie? Potrei aver bisogno di una buona risposta completa qui per la taglia;)
rubo77

Ha funzionato perfettamente per me. Solo un avvertimento, però, potrebbe voler cambiare "sezione" in "numerazione" per il turno + 3
mowwwalker,

0

al fine di ottenere AltGr+ h, j, k, lo qualsiasi altro tasto e senza apporto come Autokey a peform è possibile personalizzare il layout di tastiera trova in / usr / share / X11 / xkb / simboli / . Al momento utilizzo il layout tedesco "de". Quindi prima di tutto vorrei:

1- copia il layout standard

cp /usr/share/X11/xkb/symbols/de /usr/share/X11/xkb/symbols/de.bak

2- apri il layout con il tuo editor di testo di preferenza (qui: gedit)

sudo gedit /usr/share/X11/xkb/symbols/de 

lì vedrai qualcosa come:

key <AD03>  { [         e,          E,     EuroSign,     EuroSign ] };
key <AD06>  { [         z,          Z,    leftarrow,          yen ] };
key <AD11>  { [udiaeresis, Udiaeresis, dead_diaeresis, dead_abovering ] };
....
....
key <AD12>  { [      plus,   asterisk,   dead_tilde,  macron ]  };
key <AC02>  { [               s,               S,          ssharp,          U017F ] }; 
key <AC06>  { [               h,               H,            Left,             Left ]   }; 
key <AC07>  { [               j,               J,            Down,             Down ]   }; 
key <AC08>  { [               k,               K,              Up,               Up ]   }; 
key <AC09>  { [               l,               L,           Right,            Right ]   }; 
....
....
key <AB10>  { [     minus, underscore,               endash,     emdash ] };
key <LSGT>  { [     less,     greater,                  bar,     NoSymbol   ] };

Come puoi vedere, AB, AC, AD, AE rappresentano la riga e il numero rappresenta la sua posizione sulla tastiera (ci sono alcuni tasti speciali, come il tasto minore / maggiore, che possono essere rimappati anche ad altri tasti ..

Lì non troverai tutta la tastiera, ma solo quelle che differiscono sul layout su cui si basa la tastiera. Quello tedesco si basa su "latino (tipo4)" come puoi vedere all'inizio del file:

include "latin(type4)"

Quindi devi solo cambiare in base alle tue esigenze. Funziona come:

chiave {[ key, key+ shift, key+ AltGr, key+ Shift+ AltGr ]};

(è anche possibile aggiungere modificatori di 5 ° livello o più)

se si desidera verificare le modifiche senza riavviare; (cambiando "de" per il tuo layout ... ecco un elenco con possibili layout )

 setxkbmap -layout de

Le frecce sono etichettate come "Sinistra, Destra, Giù, Su", come previsto. Ecco un buon elenco di possibili valori.

ecco un esempio del mio layout personalizzato. (ma non in uso al momento)

Quindi, dovresti rimappare Capslock e AltGr, o ha funzionato già seguendo la domanda che hai postato ??

Se vuoi anche mantenere un layout tedesco "normale", puoi apportare le modifiche a un altro layout che non usi normalmente (o cambiare il "tedesco senza chiavi morte" che puoi trovare più in basso nello stesso file "de". ..)

Fonte: link a una spiegazione molto completa di xbk e layout personalizzati.
collegamento a una domanda simile con una buona risposta.


1
in Ubuntu e derivati ​​moderni, è possibile impostare layout e opzioni XKB /etc/default/keyboarduna volta apportate queste modifiche. vedere man 5 keyboardper i dettagli. consiglio di aggiungere nuove varianti e opzioni piuttosto che cambiare quelle esistenti.
donchisciottesco

0

Per rimappare CapsLock su AltGr utilizzare

xmodmap -e "keycode 66 = ISO_Level3_Shift"

(fonte: https://superuser.com/a/138757/160420 )

Per mappare i tasti freccia su AltGr + h, j, kel, utilizzare xmodmap -pkeper trovare le impostazioni giuste:

xmodmap -pke|egrep "f F|j J|k K|h H|l L|o O|u U|d D|dollar|BackSpace"

e cambia il quinto valore con le nuove chiavi e aggiungi tutto in uno script bash:

# xrandr needs the desktop to be fully loaded. add a delay, to be able to add it to Startup Applications:
sleep 15
# change BackSpace into AltGr
xmodmap -e "keycode 66 = ISO_Level3_Shift"
# set BackSpace on AltGr + F
xmodmap -e "keycode 41 = f F f F BackSpace BackSpace dstroke ordfeminine f F dstroke ordfeminine"
# create arrow keys at h,j,k,l
xmodmap -e "keycode  43 = h H h H Left Left"
xmodmap -e "keycode  44 = j J j J Down Down"
xmodmap -e "keycode  45 = k K k K Up Up"
xmodmap -e "keycode  46 = l L l L Right Right"
xmodmap -e "keycode  30 = u U u U Prior Prior"
xmodmap -e "keycode  40 = d D d D Next Next"
xmodmap -e "keycode  12 = 3 section 3 numbersign Home Home"
xmodmap -e "keycode  13 = 4 dollar 4 dollar End End"
xmodmap -e "keycode  53 = x X x X Delete Delete"

(fonte: https://askubuntu.com/a/466315/34298 )

Inserisci quello script bash nelle tue applicazioni di avvio (Scegli Dash> Applicazioni di avvio> Aggiungi e aggiungi il comando.)

Nota: stranamente in gnome-terminalquesto funziona bene, ma yakuakefunziona per BackSpace su AltGr + F ma imposta AltGr + h, j, kel le D, B, A e C a meno che non si imposti il ​​Key Binding su "Linux" anziché "(Predefinito) XFree 4", e in sublime-textesso non funziona affatto


xmodmapè deprecato e scoraggiato. funziona ancora negli ambienti X11 ma non funzionerà in Wayland e altri sostituti X11. l'utilizzo di soluzioni basate su XKB è invece fortemente incoraggiato.
donchisciottesco

Quindi suppongo che devo aggiungere un nuovo layout di tastiera personalizzato allora? askubuntu.com/questions/482678/…
rubo77,

1
l'aggiunta di un layout personalizzato è un modo, anche se probabilmente puoi cavartela semplicemente facendo un'opzione personalizzata . in GNOME o Unity potrebbe essere necessario disabilitare il plug-in della tastiera del daemon settings per far funzionare la personalizzazione xmodmap, ma se si crea un nuovo layout / variante / opzione XKB a livello di sistema, è possibile impostarli /etc/default/keyboard.
donchisciottesco

1
Sembra un bel po 'di lavoro, ma risolverà il problema, che le nuove combinazioni di tasti non funzionano in alcune app?
rubo77
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.