Cambia maiuscole per controllare nella console virtuale su Ubuntu 17


10

Vorrei cambiare il comportamento di BLOC MAIUSC nei terminali virtuali (ad es. Tty CtrlAltF3) in modo che funga da modificatore di controllo. Idealmente, mi piacerebbe anche che fungesse da Fuga quando premuto da solo, ma ottenere il comportamento di controllo si sta rivelando difficile.

Sto eseguendo Ubuntu 17.04. Ho letto e provato numerosi approcci per apportare questa modifica, ma nessuno sembra applicarsi al mio sistema come descritto. Ho la sensazione che systemd abbia un ruolo in questo, ma i dettagli non sono chiari.

Ho scritto un file caps_control.kmapche mappa i limiti per controllare,

keymaps 0-255
keycode  58 = Control

Se corro loadkeys caps_control.kmapda una console virtuale, funziona. Ora vorrei farlo caricare automaticamente all'avvio / accesso / qualunque cosa ...

Ho trovato i riferimenti all'uso /etc/rc.localdi farlo, ma il mio sistema non ha tale file, anche se ha diverse directory piace /etc/rc0.d/, /etc/rc1.d/...

Sembra che da quando Ubuntu 17 usa Sytemd, dovrei usarlo localectlper gestire questo genere di cose, ma non mi è chiaro come farlo. Per esempio,

$ localectl status
   System Locale: LANG=en_US.UTF-8
       VC Keymap: n/a
      X11 Layout: us
       X11 Model: pc105
$ localectl list-keymaps
Couldn't find any console keymaps.

La pagina man per localectlmenzioni /etc/locale.confe /etc/vconsole.confnessuna delle quali esiste sul mio sistema.

Sono totalmente in perdita. Qualcuno può indicarmi la giusta direzione?


Hai bisogno che questa modifica sia attiva per tutti gli utenti o solo per te?
acer

@acer Ad ogni modo mi farebbe comodo, dato che sono davvero l'unico utente su questa macchina.
Ivan

Mmm ... aggiungi una riga in ~ / .profile loadkeys caps_control.kmapche verrebbe eseguita quando accedi.
acer

@acer Chiamare loadkeysda ~ / .profile sembra essere problematico. Quando eseguo l'accesso, viene visualizzato il messaggio "Impossibile ottenere un descrittore di file che si riferisce alla console".
Ivan

Risposte:


11

Per trasformare Caps Lock in un modificatore Ctrl aggiuntivo, che è efficace anche su console tty, apri /etc/default/keyboardper la modifica e imposta:

XKBOPTIONS=ctrl:nocaps

Se hai già XKBOPTIONSimpostato, aggiungi ctrl:nocapsal suo valore esistente usando una virgola per il separatore, ad esempio:

XKBOPTIONS="terminate:ctrl_alt_bksp,ctrl:nocaps"

Dovrebbe essere efficace dopo il riavvio successivo o dopo aver eseguito il setupconcomando.

L'opzione dovrebbe essere presente durante l'esecuzione localectl status:

$ localectl status | grep caps
     X11 Options: ctrl:nocaps

E nella sessione X, un altro modo per verificare che sia impostato è:

$ gsettings get org.gnome.desktop.input-sources xkb-options
['ctrl:nocaps']

1
un'altra opzione XKB è "ctrl:nocaps". in X la differenza è sottile: con l' ctrlopzione, xeve altri strumenti vedranno un Control_Lsimbolo quando si preme il tasto CapsLock, mentre l' capsopzione mostrerà ancora il Caps_Lockkeyym. non sono sicuro che tale differenza si tradurrà nella mappa dei tasti della console virtuale.
Quixotic

@quixotic: grazie per averlo menzionato ctrl:nocaps. L'ho aggiunto alla mia risposta.
Gunnar Hjalmarsson,

Qualche idea sul perché questo non funzioni per me? In realtà è una delle prime cose che ho provato e mi piace l'approccio. Sfortunatamente, non ha alcun effetto sul mio sistema.
Ivan

1
@ivan: mi sono appena messo alla prova e ho scoperto che il mio primo suggerimento ( caps:ctrl_modifier) non è efficace in tty. Tuttavia, per me (il 17.10) ctrl:nocapsè. Si prega di vedere la mia risposta modificata.
Gunnar Hjalmarsson,

1
@GunnarHjalmarsson non conosco troppo bene il metodo di debian / ubuntu di tradurre le mappe XKB in mappe console (implica ckbcomp, penso?). non ricordavo l' caps:ctrl_modifieropzione che hai menzionato per la prima volta, quindi ho cercato di confrontarlo con quello che di ctrl:nocapssolito uso, e ho pensato che la differenza potesse valere la pena menzionarla qui. felice che sia stato utile.
donchisciottesco
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.