Openbox は xmodmap 構成をオーバーライドします。

Openbox は xmodmap 構成をオーバーライドします。

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/xmodmapbashスクリプトに/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

それで地獄へxmodmapsetxkbmapどこで呼び出すべきかわかりませんが、setxkbmapコマンドを使用してCaps LockがCtrlのように機能する方法を見つけました。

setxkbmap -option ctrl:nocaps

オープンボックスを始める直前。よかったです。 Caps LockキーはまだCtrlキーとして機能します。xmodmap決して実行されません。

このような内容をご存知の方が少しでも洞察力をいただけるように、質問をここに残します。また、私の後にこの問題に直面している人のために:)

アップデート3

これは.config/openbox/autostartpedrosaurioが要求した私のコンテンツです。

#!/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 --forestsetxkbmapの呼び出し元を識別する機能も追加しました。

答え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をチェックし、&各項目の後にあるすべての例が何であるかを確認してください。

http://openbox.org/wiki/Help:自動起動

関連情報