質問:
私は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
たとえば、私のプログラムは次のようになります。
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
同じ動作を持ち、スクリプトが機能します。