
質問:
私は i3-wm を使用しており、Mod3 をホットキーとして動作させています。次の内容があります./config/i3/config
:
#This command works
bindsym Mod3+f exec "firefox"
#This doesn't work nor do my other scripts
bindsym Mod3+w exec "openBrowser"
これらのコマンドは両方とも bash から実行すると正常に動作しますが、ホットキーで実行されるのは 'firefox' コマンドのみです。独自のスクリプトを実行しても動作しません。
さらなる詳細:
/opt/bin/
openBrowser は私のパス内にあるスクリプトです。また、次のことも試しました:
#This command works
bindsym Mod3+f exec /opt/bin/openBrowser
他のスクリプトも試しましたが、いずれも i3 で呼び出されると機能しません。したがって、スクリプトの問題ではないと判断しました。
また、bash で Mod3+w を実行するとカーソルが点滅しますが、Mod3+[未設定のキー] を実行するとキーの値が画面に書き込まれることにも気付きました。つまり、i3 は少なくとも関数を実行しようとしているようです。
答え1
ご説明いただいた問題を再現しようとしました。 2 つの i3 構成ファイルが同時に存在していたことがわかりました~/.config/i3/config
。~/.i3/config
私の場合、編集が優先さ~/.config/i3/config
れたため、編集は効果がありませんでした~/.i3/config
。
可能性は低いですが、複数の設定ファイルがあり、間違ったファイルを編集している可能性があります。
答え2
コマンドexec
は、指定したコマンドをシェルに渡すことでアプリケーションを起動します。これは、プログラムが で検索されることを意味します$PATH
。デフォルトでは$PATH
、 は通常含まれません/opt/bin
。たとえば、 my は次のようになります。
andreatsh@debian:~ 11:28 > echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
/opt/bin
パスに以下を追加してみてください~/.bashrc
:
export PATH=$PATH:/opt
いくつかテストをしてみたところ、問題は解決しました。今:
bindsym Mod3+w exec somescript
bindsym Mod3+w exec /opt/bin/somescript
同じ動作があり、スクリプトは機能します。