パーティーに遅刻したが、これは私にも夢中になった。そして、私と同じように頑固ですが、あきらめることは選択肢ではありませんでした。
基本的にこれは私が試したものです(私のユーザー、または必要に応じてrootとして)
- 〜/ .Xmodmapのみ
- 〜/ .xsession、〜/ .xsessionrc
- 〜/ .gnomerc
- 〜/ .xprofile
- 〜/ .xinitrc
- /etc/X11/Xsession.d/myscript
- /usr/share/X11/xorg.conf.d/(設定ファイル、触れていない)
(実際には、xmodmap
コマンドをworkingに追加し~/.bashrc
ますが、ログイン後に毎回ターミナルを起動する必要があります)
数年前(?)は、xkb
キーのマッピングと構成(Xとのインターフェイス)を扱うために選択されましたxmodmap
がxkb
、Xセッションの初期化中にその作業を行った後、Xにキー関連の変更を要求することもあります。
問題は、これらのxmodmap設定がいつ発生するかです。そうです、これらの上記のファイルが早すぎるプロセスで処理され、いずれかのXは、変更をxmodmapを受け入れる準備ができていなかった、またはXKBはそれらを上書きします。注:これらのファイルに実際に実行されていることを確認するために、これらのファイルにいくつかの「追跡」を追加しました!
動作しているように見えるソリューション
.desktop
最初はファイルを追加したくありませんでした(単純な1行のスクリプトで十分でした)が、それでうまくいきます。
ソリューションは、Linuxで特別なキーボードキーを再マップまたは交換する方法から来ています。「解決策1」
基本的に~/.config/autostart/my-xmodmap.desktop
ファイルを作成し、それを入れます:
[Desktop Entry]
Name=MyXmodmap
Exec=/usr/bin/xmodmap /home/me/.Xmodmap
Terminal=false
Type=Application
X-GNOME-Autostart-enabled=true
me
あなたのユーザー名に置き換えてください(私は気にしなかった~/
か$HOME
、またはの代わりに同じように機能する/home/me
可能性があり、xmodmapのフルパスはおそらく必要ないことに注意してください...)、execビットを追加します
chmod +x ~/.config/autostart/my-xmodmap.desktop
~/.Xmodmap
この場合、xmodmapコマンドはファイル内になければなりません(または-e
オプションを使用するか、別のファイル名を選択してください!)。ログアウトして再度ログインします。
「起動アプリケーション」から起動プログラムを作成する場合があることに注意してください。
別の解決策は、xmodmapを忘れて設定方法を学ぶことxkb
です!
編集(もう一度)
時には、おそらくログオンの25%で、xmodmap
まだ動作していないように見えます-コマンドが実際に実行されている間(トラッカーがそれを証明します)。現時点で私が思いつく唯一の結論は、xkb
プロセスはログオンプロセスの後半で実行され、実行後に終了する可能性があるということxmodmap
です。競合状態のように見えます...それで、最後に、自動起動デスクトップファイルのexec
行を
Exec=$HOME/bin/mystart &
(注&
)
mystart
は、作成した新しいディレクトリbin
にあるスクリプトで、
#!/bin/bash
sleep 5
/usr/bin/xmodmap /home/me/.Xmodmap &
date >> /tmp/xmodmap-has-run
そして
chmod u+x ~/bin/mystart
スクリプトは、xmodmapを実行する5秒前にスリープし、実行された時刻(ファイル内/tmp/xmodmap-has-run
)を追跡します。
うまくいけばそれですべてです!