新しいワークスペースを開くとし、次に使用されていないワークスペースで端末を実行するとします。
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をデフォルトモードで実行する必要があります。
答え1
$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のカスタムアプリケーションのリストと他のワークスペースのデフォルトのアプリケーションのリストを取得します。