從 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

我試圖重複您所描述的問題。我發現我同時存在兩個 i3 設定檔。~/.config/i3/config~/.i3/config

就我而言,編輯~/.config/i3/config沒有效果,因為它似乎~/.i3/config勝過它。

這是一個不太可能的情況,但看看您是否有多個配置文件,並且可能您正在編輯錯誤的配置文件。

答案2

exec命令透過將您指定的命令傳遞給 shell 來啟動應用程式。這意味著您的程式將在您的$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

具有相同的行為且腳本有效。

相關內容