GNU/Linux >> Linux Esercitazione >  >> Linux

Rimappa i tasti della tastiera personalizzati in Linux - Tutorial

I problemi moderni richiedono soluzioni moderne. Di recente mi sono procurato un nuovo laptop di prova Linux, un IdeaPad 3, che ho acquistato (purtroppo, a causa della carenza di mercato) con il layout della tastiera del Regno Unito invece del layout degli Stati Uniti. Ciò significa un posizionamento non ottimale dei tasti fisici, anche se utilizzi una variante di tastiera diversa. Vale a dire, i tasti barra e backspace e simili sono posizionati in modo errato, inoltre il tasto Invio è troppo piccolo.

Inoltre, questo significa anche, memoria muscolare e tutto il resto, che finisci per digitare \ quando vuoi effettivamente saltare a una nuova riga, e questo può essere piuttosto fastidioso. Quindi ho pensato, forse posso rimappare i tasti della tastiera in un piccolo modo? Ma non volevo semplicemente rimappare il tasto backspace (con i simboli tilde e hash del Regno Unito) su un "secondo" Invio, creando così effettivamente un tasto Invio più grande, volevo comunque avere i tasti barra e backspace disponibili. Quindi un esercizio più complesso. Lascia che ti mostri come puoi eseguire questa configurazione un po' contorta ma super carina.

Compito a portata di mano

Quindi, lascia che ti spieghi chiaramente cosa ho in mente:

  • La tastiera fisica IdeaPad 3 mappata nel Regno Unito ha il tasto hash/tilde vicino a Invio. Ha la barra/barra rovesciata vicino allo spostamento sinistro (rendendolo effettivamente più piccolo).
  • Quando usi il layout USA su questa tastiera, ti ritroverai con:barra/barra rovesciata mappata su hash/tilde vicino al tasto Invio e il tasto con il simbolo barra/spazio indietro mappato tra parentesi a sinistra e a destra ( ). Ma quelli sono già soddisfatti dalla funzione Maiusc sul punto e dai tasti virgola nel layout degli Stati Uniti, quindi c'è un'eccedenza di tasti:parentesi o combo barra/backspace.

Pertanto, voglio fare quanto segue:

  • Rimappa la chiave con l'etichetta del simbolo fisico di hash/tilde - usata come barra/barra rovesciata - su un SECONDO Invio. Questo renderà il tasto Invio effettivamente più grande e volevo quel grande Invio a forma di L rovesciata come si farebbe normalmente su una tastiera americana.
  • Rimappa il tasto separato con il simbolo barra/barra rovesciata vicino al Maiusc sinistro - usato come freccia sinistra e destra nel layout USA - su barra/barra rovesciata, perché li sto perdendo rimappando nel primo punto elenco.

Notare il "rotto" Maiusc sinistro e Invio. Solo a causa di un layout fisico inefficiente.

Il mio compito richiede due rimappa:prima Invio, poi la barra/barra rovesciata. Ora, è importante eseguire effettivamente le rimappature in questo modo, altrimenti, se rimappamo prima la barra/barra rovesciata, il tasto accanto a Invio non avrà alcuna mappatura. Ha senso?

Strumenti del mestiere:xev e xmodmap

Abbiamo bisogno di due utilità che fanno parte del bundle X:non ho idea se e come si farebbe su Wayland, ma poi non uso Wayland in generale, perché non ha parità funzionale con X, inoltre Xorg è la sessione predefinita sulla maggior parte delle distribuzioni che utilizzo effettivamente, come ad esempio Ubuntu o Kubuntu.

Rimapparemo con xmodmap, ma dobbiamo "catturare" i simboli chiave effettivi in ​​modo da poter eseguire la rimappatura. A tal fine, esegui xev da una finestra di terminale. Lo strumento aprirà una piccola finestra nell'angolo dello schermo e inizierà a catturare gli input. Se premi un tasto sulla tastiera, vedrai il seguente output nella finestra del terminale - solo un esempio:

Evento KeyRelease, seriale 40, sintetico NO, finestra 0x5a00001,
root 0x6a9, subw 0x0, time 2784437, (1131,438), root:(1131,475),
state 0x0, keycode 94 (keysym 0x3c, meno), same_screen SÌ,
XLookupString restituisce 1 byte:(3c) "<"
XFilterEvent restituisce:False

Fallo per afferrare il keysym per la barra/backspace e i tasti freccia. Non dimenticare di prendere il "secondo" tasto mappato (con Maiusc), in modo da poter mappare entrambi e non solo uno. In caso contrario, avremo solo la barra oi tasti backslash, ma non entrambi disponibili.

Prima di farlo, lascia che ti mostri come rimappare effettivamente le chiavi. Con xev in esecuzione, premi una volta la chiave che vuoi sostituire e la chiave con cui vuoi sostituirla. Quindi esegui xmodmap in questo modo:

xmodmap -e "keysym HEX =NOME"

Rimapperai una chiave con il valore HEX per fare ciò che dovrebbe fare la chiave con il valore NAME. Ad esempio:

xmodmap -e "keysym 0x5c =Ritorno"

Questo comando mappa il simbolo della chiave 0x5c (che corrisponde a barra/barra rovesciata) in modo che sia Invio. Quindi, una volta completato questo comando, nel mio caso, la chiave fisica del Regno Unito contrassegnata dal simbolo hash/tilde, mappata sulla funzione barra/backspace nel layout degli Stati Uniti, ora agirà come un secondo tasto Invio. Ottimo.

Ma ora dobbiamo anche mappare la funzione barra/backspace.

Modificatore

In effetti, per mappare sia la funzionalità standard che la seconda (Shift) per un tasto, avremo bisogno di un modificatore. Puoi controllare con quali modificatori esistenti esistono:

xmodmap -pm
xmodmap:fino a 4 tasti per modificatore, (codici chiave tra parentesi):

shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)

Ora per rimappare una chiave con DUE funzioni, la sintassi è la seguente:

xmodmap -e "keysym HEX MOD =NOME1 NOME2"

Nel nostro esempio:

xmodmap -e "keysym 0x3c Shift_L =barra rovesciata"

Rimappamo un tasto che corrisponde a 0x3c - questo è il tasto contrassegnato da barra/backspace nella tastiera fisica del Regno Unito, mappato alle frecce sinistra e destra nella tastiera degli Stati Uniti - per funzionare effettivamente come barra/backspace. Il modificatore è il tasto Maiusc sinistro. Quindi se premi il tasto da solo, ottieni una barra rovesciata, se lo usi con Maiusc sinistro, ottieni il simbolo della barra (tubo). E ora abbiamo il layout che desideriamo.

Ancora una volta, ricorda che non stiamo perdendo i tasti freccia perché sono già mappati sui tasti virgola e punto vicino al tasto Maiusc destro. In effetti, la combinazione di tastiera fisica del Regno Unito e virtuale degli Stati Uniti ha prodotto due coppie di tasti freccia, quindi ne stiamo eliminando uno e guadagneremo un Invio in più.

Script di avvio automatico

Non preoccuparti se commetti un errore. Riavvia il sistema e tornerai alla normalità. Pertanto, per rendere permanenti le rimappature personalizzate, dovremo creare uno script di avvio automatico, che venga eseguito su ogni accesso utente, e apporti le modifiche di cui abbiamo bisogno.

Ci sono molti modi in cui puoi farlo. Ti mostrerò come creare uno script di avvio automatico per il desktop Plasma, anche se i principi sono gli stessi per quasi tutti i desktop disponibili. Questo è molto simile a quello che ho fatto con il pulsante Mostra desktop in Gnome.

Apri una finestra di Konsole, vai su ~/.config/autostart-scripts. Qui, crea un file di testo con il seguente contenuto:

[Voce desktop]
Nome=Scambio chiave
Exec=key-swap.sh
Terminal=false
Tipo=Applicazione

Puoi usare qualsiasi nome tu voglia e puoi nominare il file come preferisci, ma assicurati che abbia un suffisso desktop. Nel mio esempio, l'ho salvato come key-swap.desktop. Rendi questo file eseguibile:

chmod +x ~/.config/autostart-scripts/key-swap.desktop

Ora, la riga Exec nel file desktop fa riferimento a uno script, che non esiste ancora. Normalmente, se guardi le righe Exec per altri script desktop (puoi controllare Firefox o Chrome o altro), noterai un singolo comando scritto. Poiché abbiamo bisogno di due comandi xmodmap, la soluzione più semplice è inserirli in uno script di shell separato, quindi utilizzare lo script come comando Exec.

Nella directory autostart-scripts, crea un file chiamato key-swap.sh - rendilo anche eseguibile.

#!/bin/bash

xmodmap -e "keysym 0x5c =Return"
xmodmap -e "keysym 0x3c Shift_L =barra rovesciata"

exit 0

Questo è il mio esempio. Potresti avere esigenze completamente diverse e potresti aver bisogno solo di una xmodmap, o forse sette. Solo per riferimento e completezza, se dovessi apportare una singola modifica a xmodmap, potresti saltare lo script della shell e inserirlo semplicemente nel file desktop.

[Voce desktop]
Name=Scambio chiave chiave singola
Exec=xmodmap -e "keysym 0x5c =Return"
Terminal=false
Type=Applicazione

Attraverso l'utility Impostazioni Plasma, puoi effettivamente verificare che tutto sia a posto:

Se cambi idea, puoi disabilitare o rimuovere gli script, utilizzare diverse mappature della tastiera e al prossimo riavvio, le cose torneranno allo stato predefinito o al nuovo stato personalizzato desiderato. In questo modo hai la flessibilità necessaria. Anche se le cose sono permanenti per così dire, puoi sempre cambiarle.

Conclusione

Ecco qua. Questo è il mio piccolo tutorial che mostra come ho migliorato l'ergonomia predefinita della mia tastiera Lenovo IdeaPad, facendo un uso migliore del suo layout fisico e modificando le mappature dei tasti con valori personalizzati. Ciò che rende la guida ancora più interessante è il fatto che stavo usando un layout statunitense, quindi c'è un'altra piccola svolta, ma questo sarà sicuramente utile se usi anche altre lingue. Ricorda, i segni fisici sui tasti e la funzione effettiva non hanno nulla in comune. È solo un riferimento visivo per rendere più facile per le persone trovare i simboli giusti.

Si spera che questo sia stato pratico. Ho notato un miglioramento istantaneo nella mia velocità di battitura, inoltre sto facendo molti meno errori di invio backspace. Le mie mani possono continuare a lavorare velocemente, senza doversi riqualificare per un altro layout fisico, che è così drasticamente diverso dalla maggior parte degli altri laptop e/o tastiere che ho. Con xev e xmodmap, dovresti divertirti un po'. Se avete richieste simili, o forse arcane, fatemi un ping e vedrò cosa posso fare. Buona digitazione.


Linux
  1. La mia distribuzione Kali Linux personalizzata

  2. Come impostare le chiavi SSH per l'accesso SSH "chiave pubblica/privata" su Linux

  3. Come posso ottenere lo stato della tastiera in Linux?

  4. Rimappa i tasti Win, Ctrl e Alt su Linux

  5. Come rimappare i tasti sotto Linux solo per una tastiera specifica

Come installare e utilizzare KompoZer in Linux - Tutorial

Come installare e utilizzare Kerkythea in Linux - Tutorial

Come installare Mono o dotNET45 su Linux - Tutorial

Ottimizzazione di Notepad++ su Linux

Come configurare le chiavi SSH su Debian 11 Linux

Cedilla sotto C (ç) nel layout di tastiera "US internazionale con tasti morti" in Linux