キーボードレイアウトが私に合わないので、ログイン時にxmodmap
を実行します。スクリプトの名前は.profile
であり、正常に実行されますが、Unityインターフェースが破損します。
ログイン時に実行され、何も壊れないように、xmodmap
行を配置する場所を知りたい。
すでに.bash_login
および.bash_profile
ファイルに入れようとしましたが、成功していません(xmodmap
はキーボードを設定しません)。
私のオプションは何ですか?
xmodmap ~/.Xmodmap
を置く正しい場所は(起動時に変更が読み取られるように)~/.xinitrc
にあります(以下の説明を参照)が、代わりにxmodmap
コマンドをスタートアップ項目(/usr/bin/xmodmap /home/user/.Xmodmap
)として置くこともできます。 12.04(およびおそらく12.10)では、これらの2つの選択肢は間違いなく機能します。どちらの方法でも読み取れますafterlightdm
でログインします。 (Return)をRight Shiftに変更し、パスワードを入力してログインした後にのみ変更が有効になりました)。
注意: Xfceを使用している場合、 公式Xfce FAQ に、~/.xinitrc
を使用する代わりにスタートアップアイテムを作成する必要があり、 xmodmap
の変更がsetxkbmap
によって上書きされないように実行を遅らせる。スタートアップエントリでこれを実現するために遅延を使用できます。
/bin/bash -c "sleep 20; /usr/bin/xmodmap /home/$USER/.Xmodmap"
(スタートアップエントリには、絶対パスを指定する必要があります)
キーボードレイアウトを変更するためにsetxkbmap
を実行するたびに、ターミナルでxmodmap ~/.Xmodmap
を再度実行する必要があります。
~/.xinitrc
の作成
.xinitrc
という名前のホームフォルダーにファイルを作成します。
touch .xinitrc
そしてその中に配置します。
xmodmap ~/.Xmodmap
Xmodmap
ファイルには、一時的に値を設定するために端末で使用されるxmodmap -e " "
スタイルのエントリがnotである必要があります。次の形式のエントリが必要です。
keycode 65 = Tab
keycode 23 = Space
多くの場合、さまざまなX
ファイル(.xprofile
、.xinitrc
など)のどれが起動時に読み取られるかわかりませんが、.xinitrc
は12.04でまだ読み取られているようですが、.Xmodmap
または.xinputrc
は自動的には読み取られません。
ElementaryOS(GNOMEベースのウィンドウマネージャー)を使用しており、xdg
自動起動スクリプトを使用して解決策を見つけました。多くのウィンドウマネージャーはxdgを使用しているため、このアプローチは他の環境でも機能すると想定しています。少なくともGNOMEで動作するはずです。
xdgは、Xセッションでのログイン時に~/.config/autostart
でスクリプトを実行します。ログイン時にxmodmap構成をロードするには、次のスクリプトを~/.config/autostart/xmodmap.desktop
に追加します。
[Desktop Entry]
Name[en_US]=Xmodmap
Comment[en_US]=xmodmap ~/.Xmodmap
Exec=/usr/bin/xmodmap .Xmodmap
Icon=application-default-icon
X-GNOME-Autostart-enabled=true
Type=Application
その後、ログアウトして再度ログインすると、Xmodmap構成がロードされているはずです。
動作しない場合は、ターミナルでxmodmapを実行して、問題のあるxmodmapかどうかを確認します。
$ xmodmap ~/.Xmodmap
エラーが発生しない場合は、次のコマンドを実行してデバッグします。
$ Sudo cat /var/log/syslog | grep -B 5 -A 5 xmodmap
今は目の前に統一インターフェースがありませんが、ランチャーの[アプリケーション]ボタンをクリックしてから、startupと入力してみてください。 Startup Applications(またはそのようなもの)と呼ばれるアプリが必要です。それをクリックして、xmodmapコマンド(例:xmodmap /home/thiago/.Xmodmap
)を追加します。
Mint 17/18では、1秒の遅延でスクリプトをスタートアップアプリケーションに入れることができました。
Mint 18はUbuntu 1604から派生しているので、同じことを行うことができると思います。または、ない場合は、最初にスタートアップアプリケーション管理パネルをインストールします。
それが役に立てば幸い。
上記の提案のいずれにもあまり満足していませんでした(すべての新しいターミナルでxmodmapを実行するため、.bashrcオプションは実際には実行可能ではありませんでした)
ホームフォルダーのxmodstartup.sh
というスクリプトに触れました
#!/bin/bash
sleep 1;
echo "running xmodmap"
xmodmap ~/.Xmodmap
保存したら、Sudo chmod +x xmodstartup.sh
を実行しました
次に、実行可能ファイルをgnomeの「スタートアップアプリケーション設定」ウィンドウに追加しました。 bish bosh、英語レイアウトy altgr
のスペイン語:)