GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come rimappare la chiave Numlock da eliminare?

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 riga keycode 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 tasto key <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 che replace 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.


Ubuntu
  1. Rimappatura della chiave di accensione da eliminare?

  2. Come scambiare / rimappare il tasto Caps Lock con il tasto Tab?

  3. 16.04 Elimina chiave non funzionante?

  4. Come consolidare più chiavi Mok o eliminare quelle non necessarie?

  5. Come eliminare il pannello di Gnome?

Come eliminare un repository e una chiave GPG in Ubuntu

Come eliminare una directory in Ubuntu 20.04

Come eliminare un file in Ubuntu

Come eliminare un dominio in SolidCP?

Come eliminare un dominio in WebsitePanel 2.1?

Come installare Ansible su Ubuntu 18.04