Come posso rendere il tasto BLOC MAIUSC un terzo tasto MAIUSC?


19

Come faccio a far funzionare il tasto BLOC MAIUSC proprio come un altro tasto MAIUSC?

Ci sono molte domande qui sulla riassegnazione o sulla sua esecuzione di un comando personalizzato. Voglio solo che funzioni come un altro tasto Maiusc. Non voglio che nessun altro tasto cambi ciò che fanno, solo quello.

Il comportamento dei tasti Layout tastiera / Blocco maiuscole non lo farà, non capisco come rimapparlo in CCSM.

Ora sto usando una tastiera del Regno Unito, ma ho imparato a digitare su una tastiera americana, il tasto Maiusc sinistro più piccolo è DRIVING ME NUTS.



1
@ David-tuo amico OP ha detto specificamente xmodmapche non funziona.
TheWanderer,

1
In xkb questo sembra avere qualcosa a che fare con le mappe di compatibilità che traducono determinate combinazioni di tasti in azioni, piuttosto che in simboli. Questo richiederà più tempo di ricerca e test di quanti ne abbia a disposizione al momento. Se ne avrò la possibilità, approfondirò ulteriormente questo aspetto, altrimenti forse questa briciola di pane condurrà qualcun altro nella giusta direzione.
Elder Geek,

Risposte:


14

Espandendo sulla risposta @ Zacharee1:

fare un backup con cp /usr/share/X11/xkb/symbols/pc ~/pckeybak

quindi modifica con gksu gedit /usr/share/X11/xkb/symbols/pco il tuo editor preferito.

Trova la linea (22) che dice:

key <CAPS> { [ Caps_Lock ] };

e cambiarlo in

key <CAPS> { [ Shift_L ] };

e la linea (36) che dice:

modifier_map Lock { Caps_Lock };

e cambiarlo in

//modifier_map Lock { Caps_Lock }; (che dovrebbe commentarlo in effetti disabilitando il blocco)

Il test indica che Num Lockfunziona ancora come previsto. Ulteriori test indicano che le spie della tastiera sembrano essere un po 'dislessiche nel 16.04 anche su un sistema non modificato. Indicatore di blocco scorrimento attivo all'accesso, ma blocco scorrimento disattivato e blocco numerico spento, ma blocco numerico attivo. Toccando il Ctrltasto sinistro sembra risolvere questo comportamento e non sono sicuro che sia correlato al mio uso di uno switch KVM (che è possibile)

Nota: ulteriori test mostrano che l' indicatore luminoso NumLock è traballante anche senza un interruttore KVM e deve essere toccato due volte per tornare in sincronia con NumLock Se lo lasci sempre acceso puoi ignorare la luce o se ti dà fastidio puoi toccarla due volte per ripristinarlo. Perché ciò si verifica è probabilmente una base per una nuova domanda ...

Un'altra semplice soluzione al tuo problema originale sarebbe semplicemente ottenere una tastiera americana economica e utilizzare la mappatura della tastiera americana.

Fonti: @ Zacharee1 risposta ed analisi e test di /usr/share/X11/xkb/symbols/pcprova ed errore


Quindi hai dovuto disabilitare quella linea 36? Bastava cambiare per Shift_Ldisabilitare completamente il capslock per me.
TheWanderer,

@ Zacharee1 Ho pensato che potrebbe essere la causa dell'impatto su Numlock che Tom Brossman ha menzionato in un commento sul tuo post e lo ha eliminato solo per quel motivo.
Elder Geek,

Hmm. Potrebbe essere. Sto vedendo se riesco a far testare Zanna con una VM, dal momento che ha una board nel Regno Unito.
TheWanderer,

@ Zacharee1 Sarebbe bello perché non ho quell'hardware disponibile per i test e spesso mi affido alla logica nei casi in cui il test completo non è possibile.
Elder Geek,

Alla fine lo ha fatto, testato e funzionante (almeno per ora). È strano che la spia Bloc Num sulla mia tastiera sia spenta, ma i tasti numerici aggiuntivi sono abilitati per impostazione predefinita quando eseguo l'accesso ed è quello che stavo cercando. Grazie!
Tom Brossman,

10

Puoi arrivarci adattando Come cambiare la chiave CapsLock per produrre "a"? (per esempio).

Rimuovere il modificatore Lock(= Caps Lock) dalla Caps Lockchiave e dichiarare che questa chiave invia il Shift_Lkeyym.

remove Lock = Caps_Lock
keysym Caps_Lock = Shift_L

In alternativa, è possibile rimuovere il Lockmodificatore e aggiungere il Shiftmodificatore.

remove Lock = Caps_Lock
add Shift = Caps_Lock

Ad ogni modo, queste righe vanno nel file ~/.Xmodmap. Test caricandolo con xmodmap ~/.Xmodmap; il file viene letto automaticamente quando accedi sotto l'ambiente predefinito (o almeno lo era ai giorni di Gnome).


2
Perfetto, ha funzionato. Ho creato un nuovo documento vuoto nella mia directory home chiamato '.Xmodmap' e ho incollato il tuo primo esempio in esso. Quindi ho digitato "xmodmap ~ / .Xmodmap" nel terminale per renderlo immediatamente operativo. Questi sono entrambi spiegati nella risposta collegata. Grazie.
Tom Brossman,

Il secondo set di comandi non funziona per me, ma il primo funziona alla grande. Premendo BLOC MAIUSC non si accende nemmeno la luce della tastiera, quindi non si attiva nemmeno il mio disturbo ossessivo compulsivo latente.
Waldir Leoncio,

Buona risposta, Gilles! Solo per aggiungere alla tua risposta, questo può essere fatto anche come un singolo comando: xmodmap -e "clear Lock" -e "keysym Caps_Lock = Shift_L" e annullato con setxkbmap -option , che non scrive su ~/.Xmodmapfile, ma può essere utilizzato quando necessario e aggiunto alle applicazioni di avvio. Ottima risposta!
Sergiy Kolodyazhnyy,

7

Ignorando i miei precedenti tentativi di risposta falliti, ho trovato qualcosa che trasforma completamente il maiuscolo in turno sinistro. Non commutare, penso che sia persistente ed è piuttosto semplice.

Innanzitutto, consiglierei di fare un backup, prima di introdurre come modificarlo.

Correre sudo cp /usr/share/X11/xkb/symbols/pc ~/pckeybak

Ora che c'è un backup, passiamo alla modifica.

Usa il tuo editor di testo preferito per modificare questo file come root:

/usr/share/X11/xkb/symbols/pc

Trova il segmento che assomiglia a questo (è vicino alla cima, linea 22 per me):

key  <TAB> {    [ Tab,  ISO_Left_Tab    ]   };
key <RTRN> {    [ Return                ]   };

key <CAPS> {    [ Caps_lock             ]   };
key <NMLK> {    [ Num_Lock              ]   };

modificare

key <CAPS>  {   [ Caps_lock             ]   };

essere

key <CAPS> {    [ Shift_L, Caps_Lock    ]   };

anziché. (Il Caps_Lockdopo Shift_L,potrebbe non essere necessario.)

Riavvia il tuo display manager (di solito sudo service lightdm restart) e ora il capslock verrà spostato a sinistra. ( Nota: la mia macchina di prova utilizza GNOME, quindi ho dovuto riavviare gdm. Tuttavia, ciò ha causato uno strano sfarfallio nel TTY di fallback e gdmnon è mai stato riavviato. Ho dovuto riavviare completamente.)

Questo sono stato effettivamente in grado di testare e posso confermare che funziona.

Adattato da xmodmap permanente in Ubuntu 13.04


Grazie, ma questo interferisce con Num Lock che lascio permanentemente attivo. Nella mia prima risoluzione dei problemi, la modifica di Caps_lock> Shift_L in ha /usr/share/X11/xkb/symbols/capslockanche interferito con Bloc Num. C'è qualcosa di diverso in 16.04, ad esempio la spia Bloc Num era rimasta accesa all'avvio ma ora si spegne al login LightDM. Quando collaudo la tua soluzione, il tasto Bloc Maiusc cambia in Maiusc, ma la prima volta che premo Bloc Maiusc, il Blocco numerico si disattiva e devo premere BLOC NUM due volte per riaverlo (solo la prima volta). Bizzarro. Però apprezzo molto l'aiuto finora.
Tom Brossman,

Forse ho bisogno di porre una nuova domanda "Come prevenire l'interferenza di rimappare Caps Lock con Num Lock il 16.04?" ma mi piacerebbe trovare la causa principale qui. O quello o è il momento di aprire la tastiera e apportare alcune modifiche fisiche ad esso ...
Tom Brossman

Quello è strano. Il numlock funziona di nuovo se si esegue xkbset nullify lock?
TheWanderer

@TomBrossman Non so se questo cambia qualcosa per te, ma funziona per me. Invece di limitarti a Shift_Linserire Shift_L, Caps_Lock. Assicurarsi che le parentesi siano allineate.
TheWanderer

1
@TomBrossman Mi piace usare sudo se non è pericoloso, per essere sicuro: p. Quando ho modificato il file, la L per maiusc era maiuscola, così come quella per il maiuscolo. Strano. Anche la cosa di NumLock è strana, dal momento che funziona bene per me. Tutta questa cosa è strana: p
TheWanderer,

3

Per 14.04

Una fodera:

xmodmap -e 'keycode 66=Shift_L'

MA , nel caso imprevisto 66non è il codice chiave corretto, eseguire prima xevin console e premere CapsLock. Quindi vedrai qualcosa di simile:

KeyPress event, serial 27, synthetic NO, window 0x1200001,
    root 0x101, subw 0x0, time 6417361, (340,373), root:(342,393),
    state 0x0, keycode XX (keysym 0x0207, Caps_Lock), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

Il codice chiave corretto è quello indicato in XX.


1
Guardate il messaggio di taglie: Xmodmap trick no longer works and xkb handles this now..
TheWanderer

Oh mio! è a causa del 16.04? Funziona sul mio 14.04. Il commento di Bounty sembra non specificare.

Non ho fatto la taglia quindi non lo so davvero.
TheWanderer,

Siamo spiacenti, questo è per una nuova installazione 16.04. Il tasto Maiusc sinistro o destro andrebbe bene, ho scelto sinistra per la domanda perché è adiacente e xevli vede come tasti diversi.
Tom Brossman,
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.