Dlaczego moje polecenie xmodmap nie uruchamia się podczas uruchamiania / logowania?

13

Chcę uruchomić tę komendę przy każdym logowaniu (lub przy każdym uruchomieniu, jeśli to nie działa): xmodmap -e 'keysym Delete = Menu' -e 'keysym Menu = Delete'

Próbowałem wielu rzeczy. Włożyłem polecenie System > Preferences > Startup Applications. Umieściłem go w .shpliku, oznaczyłem chmod +xi umieściłem w tym pliku System > Preferences > Startup Applications. Włożyłem skrypt /etc/init.d. Wkładam polecenia ~/.profile. Wydaje się, że nic nie działa.

Na koniec umieszczam to w moim ~/.profile:

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

Tworzone są zarówno test1, jak i test2, ale klucze nadal nie są ponownie mapowane. Jeśli po prostu skopiuję / wkleję polecenie i uruchomię je ręcznie, będzie działać dobrze. Ale nie będzie działać po zalogowaniu. Jakieś pomysły?

Mateusz
źródło
nie publikuj tego samego pytania w wielu witrynach Stack Exchange (chyba że pytanie dotyczy obu stron i długo czekałeś i nie masz żadnej dobrej odpowiedzi na pierwszej stronie, ale dołącz link do oryginału pytanie).
Gilles „SO- przestań być zły”
@Gilles: Czy to oficjalna polityka? Wygląda na to, że jeśli jest na temat na obu stronach, obie strony mogą z niego skorzystać. Ale jeśli zostało to już omówione i postanowione, będę ostrożny w przyszłości.
Matthew
Myślałem, że jest oficjalny wpis FAQ na ten temat, ale nie mogę go znaleźć. Ja zapytałem o meta .
Gilles „SO- przestań być zły”,

Odpowiedzi:

5

W zależności od dystrybucji ~/.xsessionplik jest wykonywany (skrypt powłoki) podczas logowania do X. I / lub ~/.Xmodmapplik jest pozyskiwany przez xmodmapproces.

~/.profilePlik jest wykonywany tylko przez powłoki logowania (z lub bez X), więc to nie jest właściwe miejsce

maxschlepzig
źródło
6

Włóż to ~/.Xmodmap. ~/.XmodmapZamiast tego szuka trochę dystrybucji ~/.xmodmaprc. Działa dla mnie na Fedorze 16.

Bank Qian
źródło
To najlepsze rozwiązanie dla Debiana
UnLoCo
1

Włóż ~/.xsessionrci upewnij się, że /etc/X11/Xsession.optionszawiera allow-user-xsession.

Peter Eisentraut
źródło