i3 構成でスクリプトを実行する

i3 構成でスクリプトを実行する

質問:

私は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

同じ動作を持ち、スクリプトが機能します。

関連情報