Perché il mio comando xmodmap non verrà eseguito all'avvio / accesso?


10

Voglio eseguire questo comando ogni volta che eseguo l'accesso (o ogni volta che avvio, se non funziona): xmodmap -e 'keysym Delete = Menu' -e 'keysym Menu = Delete'

Ho provato molte cose. Ho inserito il comando System > Preferences > Startup Applications. L'ho inserito in un .shfile, l'ho contrassegnato chmod +xe l' ho inserito System > Preferences > Startup Applications. Ho inserito la sceneggiatura /etc/init.d. Ho inserito i comandi ~/.profile. Niente sembra funzionare.

Infine, ho inserito questo nel mio ~/.profile:

touch test1
xmodmap -e 'keysym Delete = Menu' -e 'keysym Menu = Delete'
touch test2

Sia test1 che test2 vengono creati, ma le chiavi non vengono ancora rimappate. Se ho appena copiato / incollato il comando ed eseguito manualmente, funziona benissimo. Ma non verrà eseguito al login. Qualche idea?

Risposte:


11

~/.profileviene eseguito all'inizio della sequenza di accesso. Se l'ambiente desktop configura un layout di tastiera, può sovrascrivere le impostazioni appena caricate.

Inserisci le tue impostazioni in un file chiamato ~/.Xmodmap:

keysym Delete = Menu
keysym Menu = Delete

Nell'ambiente Gnome predefinito in Ubuntu 10.04, la prossima volta che accedi, ti verrà chiesto se caricare ~/.Xmodmap. Caricalo e spunta "non chiedermelo più". Quindi il tuo .Xmodmapverrà applicato dopo le impostazioni predefinite.


Grazie, ha funzionato perfettamente. Per curiosità, come potrei tornare alla finestra di dialogo che ho selezionato "Non chiedermelo più" se volessi passare un po 'di tempo in futuro?
Matteo,

1
@Matthew: Non testato: avvia gconf-editor, cerca /desktop/gnome/peripherals/keyboard/generale modifica la known_file_listvoce da rimuovere .Xmodmap.
Gilles 'SO- smetti di essere malvagio' il

Questo ha funzionato per me sulla versione beta di Ubuntu 10.10 quando hai risposto per la prima volta a questa domanda. Ieri ho fatto una nuova installazione di Ubuntu 10.10 e ho inserito un file .Xmodmap identico nella mia cartella home. Quando ho effettuato nuovamente l'accesso, ho visualizzato la finestra di dialogo, caricato .Xmodmap e spuntato la casella proprio come prima. Ma non sembra rimappare le chiavi. Ho controllato gconf e .Xmodmap è sicuramente nella lista_file_moto. Qualche idea?
Matteo,

Anche questo non funziona per me su Gnome 3.10.1 / Archlinux. Mi chiedo se qualcosa non sia stato modificato nell'ordine in cui Gnome carica i layout della tastiera.
Caleb,

Per Gnome 3.10 che non carica più ~ / .xmodmap, ho trovato una soluzione che funzionava su bbs.archlinux.org/viewtopic.php?pid=1194968#p1194968 : disabilitare il plugin per tastiera di Gnome. $ gsettings set org.gnome.settings-daemon.plugins.keyboard active false
plnx,

2

Ho scoperto che nel posto in Gconf-Editor menzionato sopra, il nome del layout della tastiera modificato dovrebbe apparire due volte, una volta in "elenco_file_di_sistenti" e una volta in "update_handlers". Quanto al motivo per cui Ubuntu a volte inserisce quest'ultima voce, a volte non ... beh, ti tiene in guardia, vero?

Per inciso, dopo molte ricerche ho usato la modifica di cui sopra per riassegnare il tasto Sinistra di Windows. Ho inserito la seguente dichiarazione nel mio layout di tastiera per duplicare il tasto freccia sinistra: -

codice chiave 133 = 0xFF51

(Controlla che quelli siano i codici giusti per te andando in xev e premendo prima un tasto poi l'altro.)

È solo un piccolo punto, ma mentre sono su Internet mi dà un comodo tasto "Indietro": Alt + Win con la mano sinistra. Posso farlo senza guardare.


1
Alan ha scritto: "Ho scoperto che nel posto in Gconf-Editor menzionato sopra il nome del layout di tastiera modificato dovrebbe apparire due volte, una volta in" known_file_list "e una volta in" update_handlers "." Posso confermare che Alan ha ragione. In Ubuntu 10.10, affinché il tuo file ~ / .Xmodmap abbia effetto, ".Xmodmap" deve apparire sia nella lista "known_file_list" che nella lista "update_handlers" sotto / desktop / gnome / periferiche / tastiera / generale in gconf -editor. Grazie Alan.

1

Alcuni sistemi cercano un file chiamato ~/.Xmodmaped eseguono i comandi presenti lì. Prova a inserire queste righe in quel file:

keysym Delete = Menu
keysym Menu = Delete
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.