Linux Mint 13を実行しているノートブックにopenboxを設定しています。 Caps Lockキーが追加の制御キーとして機能するようにしたいと思います。必要な設定をファイルに入れ、以下を~/.Xmodmap
実行して確認しました。
xmodmap ~/.Xmodmap
うまくいきます。
ただし、Openbox セッションに再度ログインすると、これらの重要な変更はありません。上記のxmodmap
コマンドを実行すると再び機能しますが、起動時に自動的に発生するようにしたいと思います。
興味深いのは、私のファイルにzenity
次のテストコマンドを追加したことです。~/.config/openbox/autostart
zenity --info --text=Hello
これにより、小さなダイアログウィンドウが作成され、ダイアログが閉じた後にのみ終了します。
Openboxセッションに再度ログインすると、Caps LockはCtrlキーとして機能します。~までzenityダイアログボックスが閉じます。ダイアログボックスが閉じると、Caps Lockキーがデフォルトの動作に戻ります。
Google でこれに関する情報が見つからなかったため、こちらにお問い合わせください。何が間違っているのかというアイデアはありますか?
修正する:
私はこの問題を解決しようとしており、実験からファイルをコピーして次の/usr/bin/xmodmap
bashスクリプトに/usr/bin/xmodmap_
置き換えました。/usr/bin/xmodmap
#!/bin/bash
{
echo '-------'
date
echo xmodmap "$@"
} >> ~/xmodmap-calls
exec /usr/bin/xmodmap_ "$@"
だから私のシステムで任意のクソスクリプトを実行するたびに、xmodmap
私はそれについて知っています。
その後、再度ログインして、私の~/xmodmap-calls
ファイルで~/.Xmodmap
期待していたmyを実行している1つのエントリしか見つかりませんでした。したがって、xmodmap
私の変更を上書きしないようです。
次に、私はグーグルを介してこのsetxkbmap
コマンドについて知りましたが、明らかに同じことをしているようです。また、上記のxmodmapに似た実行可能ファイルを置き換えました。犯人から命令を受けました!
setxkbmap -option terminate:ctrl_alt_bksp
私はそれが何をしているのかわかりませんが、それを実行した後xmodmap ~/.Xmodmap
(設定が正しく適用された状態で)上記のコマンドを実行すると、変更がリセットされます!編集する:本当に面白いですね。setxkbmap
パラメータなしでコマンドを実行するだけですxmodmap ~/.Xmodmap
。コマンドで変更を上書きするだけです。
今調べるべき2つのことがあります。これはどこsetxkbmap
で実行されているのか、そしてなぜ解決するのかです。まだ調査中ですが、真剣に助けが必要な場合があります。 :)
アップデート2
それで地獄へxmodmap
。setxkbmap
どこで呼び出すべきかわかりませんが、setxkbmap
コマンドを使用してCaps LockがCtrlのように機能する方法を見つけました。
setxkbmap -option ctrl:nocaps
オープンボックスを始める直前。よかったです。 Caps LockキーはまだCtrlキーとして機能します。xmodmap
決して実行されません。
このような内容をご存知の方が少しでも洞察力をいただけるように、質問をここに残します。また、私の後にこの問題に直面している人のために:)
アップデート3
これは.config/openbox/autostart
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 &
私が知る限り、これはキーボードとは関係ありません。また、これは私のセッションを開始するスクリプトです。 (lightdm で実行)
#!/bin/bash
setxkbmap -option ctrl:nocaps
exec openbox-session
答え1
同様の問題が発生しました。 ibusによることがわかりました。そのサービスが不要なので、ちょうど削除しました。
setxkbmapをスクリプトに置き換えるトリックを使って犯人を見つけましたが、ps -AF --forest
setxkbmapの呼び出し元を識別する機能も追加しました。
答え2
自動起動スクリプトがわからない場合は、正しい構文を使用せず、アンパサンド(&
)を使用してバックグラウンドでコマンドを実行しないでください。
.config/openbox/autostart
次のようにファイルを編集してみてください。
# Run the system-wide support stuff
#. $GLOBALAUTOSTART
# Programs to launch at startup
# Programs that will run after Openbox has started
(sleep 1 && xmodmap ~/.Xmodmap ) &
疑わしい場合は、openbox wikiをチェックし、&
各項目の後にあるすべての例が何であるかを確認してください。