A causa del layout della mia tastiera, voglio avere il numlock premuto in modo permanente e utilizzare il tasto numlock come tasto di eliminazione. Non riesco a farlo funzionare. Qualsiasi idea su come farlo sarebbe apprezzata.
Modifica:sono in esecuzione su Ubuntu 16
Ecco cosa ho provato:
Usa Xmodmap con numlockx
Ispirato da questa domanda. La mia comprensione è che xmodmap è deprecato, quindi probabilmente non è una buona idea.
- Crea un file
~/.Xmodmap
con rigakeycode 77 = Delete NoSymbol
- Esegui
xmodmap ~/.Xmodmap
- Esegui
numlockx on
Ciò consente al numlock di funzionare come eliminazione e abilita il tastierino numerico fino alla prima pressione del tasto numlock. Quindi il tasto numlock disabilita il tastierino numerico.
Usa XKB
- Modifica
/usr/share/X11/xkb/symbols/us
avere il tastokey <NMLK> { [Delete, Num_Lock] };
alla fine della mappa dei tasti di base. - riavvia il computer
provato anche:
- Modifica
/usr/share/X11/xkb/symbols/us
fare in modo chereplace key <NMLK> { [Delete, Num_Lock] };
alla fine della mappa dei tasti di base. - riavvia il computer
Questo soffre di problemi simili all'altro metodo, essendo in grado di eliminare i lavori, ma il tasto numlock disattiva il tastierino numerico. Sembra anche pasticciare con altri tasti come il tasto Windows quando il tastierino numerico è abilitato. Mi piace che ottenga il controllo del numlock usando shift+numlock. Non riesco a trovare alcuna differenza tra l'utilizzo di sostituzione e il non utilizzo.
Risposta accettata:
Ecco un modo per farlo usando solo xkb, che penso sia superiore all'uso di xmodmap. Questa risposta include più dettagli su ciò che volevo ottenere rispetto alla domanda originale. Xmodmap e xkb non funzionano sempre bene insieme, questo approccio consente molta più flessibilità:
Tutto questo proviene da:https://wiki.archlinux.org/index.php/X_keyboard_extension
C'è un elenco di keysym disponibili che sembrano funzionare qui:http://docs.ev3dev.org/projects/grx/en/ev3dev-stretch/c-api/input_keysyms.html
Questa operazione viene eseguita manualmente per consentirti di iniziare con la configurazione già presente sul tuo computer per evitare problemi di compatibilità con tastiere diverse.
Esempi di esecuzioni precedenti di questa operazione sono visibili in config_files/linux/keyboards
Inizia eseguendo xkbcomp $DISPLAY output.xkb
per ottenere le impostazioni correnti della tastiera
.
Quindi aggiungi:
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);
};
alla sezione compatibilità del file generato.
Correlati:installazione di programmi nelle partizioni di root e home in Ubuntu?In fondo alla sezione dei tipi, aggiungi:
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);
};
Cerca interpret Caps_Lock
e cambia il LockMods
a SetMods
in modo che il blocco maiuscole imposti solo il modificatore, non lo blocchi.
Per consentire a capslock + WASD di funzionare come tasti freccia:modificare i tasti <AD02>
, <AC01>
, <AC02>
, <AC03>
per avere digita CUST_CAPSLOCK
e hanno rispettivamente osfUp
, osfLeft
, osfDown
, osfRight
in terza posizione.
Per consentire a capslock + HJKL di funzionare come tasti freccia:modificare i tasti <AC06>
, <AC07>
, <AC08>
, <AC09>
per avere digita CUST_CAPSLOCK
e hanno rispettivamente osfLeft
, osfDown
, osfUp
, osfRight
in terza posizione.
Per consentire il capslock + 0 per la registrazione come home e il capslock + $ per la registrazione come fine:modificare le chiavi <AE04>
e <AE10>
per avere digita CUST_CAPSLOCK
e hanno rispettivamente osfEndLine
e osfBeginLine
in terza posizione.
Per consentire a capslock + barra spaziatrice di registrarsi come escape (utile per vim) modificare la chiave <SPCE>
per avere digita CUST_CAPSLOCK
, avere space
nella seconda posizione e osfEscape
in terza posizione.
Per trasformare la chiave numlock in una chiave di eliminazione e fare capslock + numlock, creare il <NMLK>
avere il tipo CUST_CAPSLOCK
, hanno la posizione uno e due hanno osfDelete
e la posizione tre ha Num_Lock
Ora carica nuovamente il file modificato nel server con:xkbcomp output.xkb $DISPLAY
.
Se tutto funziona, metti il file da qualche parte, ~/.Xkeymap
funziona e crea uno script, ad esempio chiamato ~/start_keyboard.sh
con:
#!/bin/bash
xkbcomp ~/.Xkeymap $DISPLAY
Rendilo eseguibile (chmod u+x ~/start_keyboard.sh
) e aggiungi lo script alle tue applicazioni di avvio.