
問題:
我正在使用 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
具有相同的行為且腳本有效。