Come riattivare il tasto BLOC MAIUSC?


12

Attualmente sto configurando il mio layout di tastiera predefinito come questo:

setxkbmap -layout us -variant dvorak -option ctrl:nocaps,[...]

Disabilita il tasto BLOC MAIUSC e lo rende un tasto Ctrl aggiuntivo, insieme a uno sciame di altre opzioni.

Vorrei fare quanto segue per cambiare il layout della tastiera:

setxkbmap -layout us -variant dvorak-l -option ctrl:swapcaps

Tuttavia, non riattiva il tasto BLOC MAIUSC; sia il tasto di controllo sinistro che il blocco maiuscole rimangono i tasti di controllo per quanto posso vedere.

So di poter cancellare l'intero elenco di opzioni, ma nell'interesse della manutenibilità, preferirei non copiare le opzioni disponibili. Come riattivare il blocco maiuscole?

Aggiornamento: guardando i tasti premuti con xev (1), appare ctrl: nocaps dà a Control_Lper entrambi i tasti, e ctrl: swapcaps "ripristina" il tasto BLOC MAIUSC (premendo il tasto dà Caps_Lock). Tuttavia, il LED di blocco maiuscole non si accende e non funziona.

Guardare il xkeyboard-config/symbols/ctrlfile nelle fonti di X.org suggerisce il problema:

xkb_symbols "nocaps" {
    replace key <CAPS>  {  [ Control_L, Control_L ] };
    modifier_map  Control { <CAPS>, <LCTL> };
};
xkb_symbols "swapcaps" {
    replace key <CAPS>  {  [ Control_L ] };
    replace key <LCTL>  {  [ Caps_Lock ] };
};

Quest'ultima opzione manca di una linea modifier_map, qualunque cosa accada


Immagino che tutti coloro che hanno cercato di aiutarmi mi
avessero

4
X è così vecchio e complesso ora che non molte persone comprendono veramente i vari meccanismi interni. Ci sono anche sezioni nella pagina man che dicono (e cito): " Nessuno vuole dire come funziona. Forse nessuno lo sa ... ". Sono interessato a vedere una risposta anche a questa domanda, ma può darsi che nessuno lo sappia ...
jw013,

Risposte:


14

I seguenti comandi dovrebbero funzionare:

xmodmap -e 'keycode 0x42 = Caps_Lock'

o

setxkbmap -option

I comandi sopra funzionano bene per ripristinare il comportamento predefinito, che per fortuna non ho quasi mai bisogno.

Normalmente rimappo il capslock su Control (per fortuna VI / VIM supporta CTRL-C invece di ESC) con il seguente comando:

setxkbmap -option ctrl:nocaps -layout gb

Il "setxkbmap -option" per cancellare le impostazioni è esattamente quello che stavo cercando. Continuavo a provare a cambiare il mio comportamento, ma continuava ad aggiungere elementi in conflitto all'elenco delle opzioni.
m0j0,

2

Provare setxkbmap -option -layout us -variant dvorak-l -option ctrl:swapcaps

Dalla manpage:

[...] If you want to
replace all previously specified options, use the -option  flag
with an empty argument first.

L'ironia è che qui -option ctrl:swapcapsha la precedenza -option ctrl:nocaps- credo che il comportamento sia cambiato.

Modifica: come affermato dall'OP, vuole evitare di cancellare le opzioni (come fatto nel modo sopra).

/usr/share/X11/xkb/rules/xorg.lstmostra l'opzione ctrl:aa_ctrl(controllo in basso a sinistra), che sembra reimpostare il blocco maiuscole dopo nocapsqui.

Immagino che valga la pena provare, e puoi anche guardare l'elenco ( grep ctrl\:) e vedere se c'è qualcos'altro che potrebbe funzionare, nel caso in cui questo non lo faccia.

Se non vi è alcuna opzione per questo, suppongo che la soluzione sia hackerare l'attuale keymap, associando nuovamente il tasto BLOC MAIUSC al tasto BLOC MAIUSC (ma non ne ho esperienza, a parte il credere che ci sia uno strumento che ti consente di fare quello con un liner).


Questo effettivamente cancella l'elenco delle opzioni, ma desidero mantenere le opzioni non relative al maiuscolo (come ho affermato nella domanda) come le chiavi di composizione.
hhaamu,

Oh, scusa, ho letto male la domanda. Non posso essere sicuro che funzionerà (come ho detto, in swapcapsrealtà riattiva il blocco maiuscole qui), ma da /usr/share/X11/xkb/rules/xorg.lst, vedo che c'è l'opzione ctrl:aa_ctrl(controllo in basso a sinistra), che sembra ripristinare il blocco maiuscole dopo nocapsqui.
njsg,

Penso che il programma di magia sia, xmodmapma non sono sicuro di come usarlo
hhaamu,

0

c'è un'opzione "caps: capslock" (che si associa all'aggiunta di "+ capslock (capslock)" a xkb_symbols) che abilita il capslock.

Tuttavia, quell'opzione (forse tutte maiuscole: xxxxx?) Viene aggiunta prima delle ctrl esistenti: xxxxx; come ctrl: gli swap ridefiniscono il tasto maiuscolo, quell'opzione non ha alcun effetto.

Quindi, devi assolutamente rimuovere tutte le opzioni e effettivamente mettere quelle che desideri; il modo in cui esistono le opzioni non dovrebbero annullare l'azione di una precedente e avendo opzioni contrastanti (ad esempio due (o più) che nascondono una stessa chiave) non è possibile definire il loro ordine.

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.