I3

i3 為每個工作區以不同的模式執行 dmenu

  • March 5, 2017

假設我將打開一個新工作區,例如在下一個未使用的工作區中執行終端。

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+Ddmenu 應該在預設模式下執行,除非我定義了特定的應用程序列表。

您可以綁定到$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 上的自定義應用程序列表和其他應用程序的預設列表。

引用自:https://unix.stackexchange.com/questions/336472