Openbox sovrascrive la configurazione di xmodmap


9

Sto installando openbox sul mio laptop con Linux Mint 13. Voglio che il mio tasto BLOC MAIUSC funga da tasto di controllo aggiuntivo. Ho inserito le impostazioni richieste nel mio ~/.Xmodmapfile e l'ho verificato eseguendo

xmodmap ~/.Xmodmap

Funziona correttamente

Tuttavia, quando accedo nuovamente alla mia sessione di openbox, questi cambiamenti chiave non sono presenti. L'esecuzione del xmodmapcomando sopra lo fa funzionare di nuovo, ma voglio che accada automaticamente all'avvio.

La cosa interessante è che ho aggiunto un zenitycomando di prova come segue al mio ~/.config/openbox/autostartfile

zenity --info --text=Hello

Ciò produce una piccola finestra di dialogo ed esce solo dopo la chiusura della finestra di dialogo.

Ora, quando accedo nuovamente alla mia sessione di openbox, il tasto BLOC MAIUSC funge da tasto Ctrl, fino a quando la finestra di dialogo zenity non viene chiusa. Una volta chiusa la finestra di dialogo, il BLOC MAIUSC torna al suo comportamento predefinito.

Non ho trovato nulla su questo con Google, quindi sto chiedendo aiuto qui. Ragazzi avete qualche idea su cosa potrebbe andare storto?

Aggiornare:

Ho cercato di capirlo e nei miei esperimenti ho copiato il mio /usr/bin/xmodmapfile /usr/bin/xmodmap_e sostituito il /usr/bin/xmodmapfile con il seguente script bash

#!/bin/bash

{
    echo '-------'
    date
    echo xmodmap "$@"
} >> ~/xmodmap-calls

exec /usr/bin/xmodmap_ "$@"

Quindi, ogni volta che viene eseguito uno script dannato sul sistema xmodmap, lo conosco.

Con questo, ricollego e trovo solo una voce nel mio ~/xmodmap-callsfile, che è quella che esegue my ~/.Xmodmap, che è prevista. Quindi, ho pensato che non è un xmodmapche sta sovrascrivendo i miei cambiamenti.

Successivamente, un po 'di googling mi ha fatto conoscere il setxkbmapcomando, che apparentemente può anche fare la stessa cosa. Ho sostituito anche quel file eseguibile, simile a xmodmap sopra. E ho ricevuto il comando del colpevole!

setxkbmap -option terminate:ctrl_alt_bksp

Non ho assolutamente idea di quello che fa, ma dopo l'esecuzione xmodmap ~/.Xmodmap(che ha applicato correttamente le mie impostazioni), se eseguo il comando sopra, le mie modifiche vengono ripristinate! Modifica : questo si sta rivelando davvero divertente. Solo un setxkbmapcomando senza argomenti, sovrascrive felicemente le mie modifiche con il xmodmap ~/.Xmodmapcomando.

Ora ho due cose da capire, da dove viene setxkbmapeseguito questo e perché e come risolverlo. Sto ancora indagando ma potrei seriamente usare un po 'di aiuto :)

Aggiornamento 2

Al diavolo xmodmap. Non riesco a capire da dove setxkbmapviene chiamato, ma ho immaginato un modo per usare il setxkbmapcomando per far sì che il mio Blocco maiuscole si comporti come Ctrl.

setxkbmap -option ctrl:nocaps

Poco prima di iniziare openbox. Funziona alla grande. Il tasto BLOC MAIUSC rimane funzionante come tasto Ctrl. xmodmapnon è mai eseguito.

Terrò aperta questa domanda in modo che qualcuno che conosce queste cose possa fornire alcune informazioni. Inoltre, per le persone che affrontano questo dopo di me :)

Aggiornamento 3

Ecco il mio contenuto .config/openbox/autostart, come richiesto da Pedrosaurio.

#!/bin/bash

# Set the wallpaper.
feh --bg-scale /wall.png

# Set default brightness.
xbacklight -time 1 '=40'

# Compositing.
xcompmgr &

# The panel.
tint2 &

# Start a terminal too.
roxterm &

Questo non ha nulla a che fare con la tastiera, per quanto ne so. Inoltre, ecco lo script che avvia la mia sessione: (Run by lightdm)

#!/bin/bash

setxkbmap -option ctrl:nocaps

exec openbox-session

probabilmente stai usando una sorta di configurazione della tastiera, ad esempio scegli il layout della tastiera o qualcosa di simile che ripristini le modifiche applicate
Ulrich Dangel,

L'unico altro posto in cui ho armeggiato con la configurazione della tastiera è la finestra delle preferenze del layout della tastiera della GUI, dove ho cambiato il tasto BLOC MAIUSC per comportarmi come un ctrl aggiuntivo. Funziona benissimo, nella cannella DE, il mio blocco maiuscole funge da ctrl anche dopo un nuovo accesso. Penso che la configurazione fosse solo cannella, ma non ne sono sicuro.
Shrikant Sharat,

come stai aggiungendo il comando nello script di avvio automatico?
pedrosaurio,

Puoi pubblicare il tuo autostartfile?
pedrosaurio,

Risposte:


1

Stavo riscontrando un problema simile. Si è scoperto che è stato causato da ibus. L'ho semplicemente disinstallato perché non ho bisogno dei suoi servizi.

Ho trovato il colpevole usando il tuo trucco per sostituire setxkbmap con uno script, tuttavia ho anche aggiunto ps -AF --forestper identificare il chiamante di setxkbmap.


0

Senza conoscere il tuo script di avvio automatico la mia scommessa è che non stai usando la sintassi corretta lasciando che i tuoi comandi vengano eseguiti in background usando la e commerciale ( &).

Prova a modificare il tuo .config/openbox/autostartfile in questo modo:

# Run the system-wide support stuff
#. $GLOBALAUTOSTART
# Programs to launch at startup
# Programs that will run after Openbox has started
(sleep 1 && xmodmap ~/.Xmodmap ) &

In caso di dubbi, dai un'occhiata al wiki di openbox e vedi come hanno tutti gli esempi &dopo ogni voce.

http://openbox.org/wiki/Help:Autostart


Il mio file di avvio automatico è vuoto. Ad un certo punto avevo xmodmap ~/.Xmodmapquel file (senza un &, non mi sembrava necessario). Ho chiamato xmodmap(e ora setxkbmap) nello script che avvia la mia sessione di openbox. Appena prima di correre exec openbox-session, eseguo il setxkbmapcomando.
Shrikant Sharat,

Inoltre, aggiungere un sleep 1ritardo in modo da xmodmapapplicare le modifiche dopo che tutto il resto viene caricato, mentre funziona la maggior parte del tempo, non mi fa sentire troppo sicuro della soluzione. Preferirei non farlo, se avessi delle alternative.
Shrikant Sharat,

Ovviamente puoi evitare tutti i commenti e il sleepcomando, tuttavia &è necessario dopo ogni voce, altrimenti tutti i programmi dopo la prima voce non verranno eseguiti affatto.
pedrosaurio,

Sì, se si tratta di un'app / processo di lunga durata, non l'aggiunta di a &lo bloccherà. Ho usato questo comportamento con il zenitycomando per scoprire che le mie xmodmapmodifiche vengono sovrascritte al autostart termine. Il mio avvio automatico ora sta aumentando di dimensioni e lo incollerò nella domanda in un momento. Tuttavia, non ha nulla a che fare con la tastiera.
Shrikant Sharat,

E, senza il comando sleep, le modifiche apportate xmodmapvengono sovrascritte non appena termina il file di avvio automatico.
Shrikant Sharat,
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.