Voglio rimappare il blocco maiuscole per uscire in X11 (ovvero premendo il pulsante di blocco maiuscole fisico verrà interpretato come esc dalle applicazioni e il comportamento di esc non cambierà). La soluzione deve sopravvivere un riavvio X . xmodmap e setxkbmap sono soluzioni accettabili (così come programmi simili). Non voglio avere a che fare con una GUI, perché voglio che la soluzione sia portatile e che faccia parte dei miei dotfile. Se mi manca una soluzione migliore / più semplice / più ovvia, per favore dimmelo, ma nota che non sto usando un DE (provando i3wm).
Finora ho provato a usare xmodmap e setxkbmap con scarso successo.
Ecco il mio tentativo di utilizzare xmodmap:
# ~/.xinitrc
xmodmap ~/.xmodmap
e
# ~/.xmodmap
remove Lock = Caps_Lock
keysym Caps_Lock = Escape
In esecuzione $ xmodmap ~/.xmodmap
dalla riga di comando funziona e fa quello che voglio. Il problema è che questo viene ripristinato ogni volta che x si riavvia. È lì che mi aspetto che entri xinitrc - non dovrebbe caricarsi ogni volta che x si avvia ed eseguire il comando xmodmap? Se il comando funziona, perché non fa nulla quando viene letto da un file?
Ho provato un paio di cose con setxkbmap, nessuna delle quali ha funzionato. I due tentativi seguenti sono stati nel file in momenti separati.
# ~/.xinitrc
setxkbmap -option caps:esc # attempt 1
setxkbmap -option esc:nocaps # attempt 2
Nessuno dei due comandi ha fatto nulla di percepibile dalla riga di comando, quindi presumo di aver sbagliato il comando. Mi piace l'idea di questa soluzione perché è un one-liner e non richiede nulla in qualche altro file. Se solo avesse funzionato.
.Xinitrc è il file sbagliato da utilizzare? So che startx si sta caricando da ~ / .xinitrc.
Chiedo che le possibili soluzioni contengano l'intero file, non solo una riga (se nel file ne è richiesta più di una), quindi non confondo alcuni passaggi intermedi. Ad esempio, se ho bisogno di qualcosa in .xinitrc e qualcosa in .xcapsrebind, ti preghiamo di mostrare sia i file che tutti i contenuti richiesti (posso anche gestire la richiesta di aggiungere qualcosa alla fine, ma se può essere richiesto un & o simile, dimmelo, ti prego).
xmodmap
in .xinitrc
dovrebbe funzionare. È quello che faccio. Forse mappare qualcosa di insolito, per assicurarsi che sia effettivamente in esecuzione quando si avvia x? Inoltre, quale gestore di finestre / ambiente desktop usi? KDE "corregge" periodicamente la mia mappatura della tastiera senza che me lo dica. Magari controlla le impostazioni del tuo desktop per assicurarti che non ci sia nulla xmodmap
dietro la schiena.
~/.xinitrc
non si stia scappando . Sto usando i3wm e nessun DE in questo momento, anche se la stessa cosa stava succedendo in Pantheon quando ho provato. Per quanto ne so, i3 non scherza con xinitrc né carica il suo (ma io sono un noob, quindi cosa ne so?).
Option "XkbOptions" "caps:escape"
in un X
file di configurazione della tastiera, ad esempio/etc/X11/xorg.conf.d/10-keyboard.conf
.xinitrc
:setxkbmap -option caps:escape