I3
i3 為每個工作區以不同的模式執行 dmenu
假設我將打開一個新工作區,例如在下一個未使用的工作區中執行終端。
i3-msg workspace $(($(i3-msg -t get_workspaces | tr , '\n' | grep '"num":' | cut -d : -f 2 | sort -rn | head -1) + 1)) && /usr/bin/x-terminal-emulator
此外,我還想為此工作區指定,如果我中風
$mod+D
,程序dmenu
將使用自定義應用程序列表執行,例如dmenu -i "app1\napp2\napp3"
.如果我切換到其他工作區並且中風
$mod+D
dmenu 應該在預設模式下執行,除非我定義了特定的應用程序列表。
您可以綁定到
$mod+D
將檢測目前工作區並dmenu
使用不同參數啟動的腳本。例如:~/.config/i3/config:
... bindsym $mod+d exec /tmp/dm.sh ...
/tmp/dm.sh
#!/usr/bin/env sh ws="$(i3-msg -t get_workspaces | jq -r '.[] | select(.focused==true).name')" if [ "$ws" -eq "3" ]; then echo "app1\napp2\napp3" | dmenu else dmenu_run fi
在這裡,您將獲得工作區 #3 上的自定義應用程序列表和其他應用程序的預設列表。