i3는 각 작업 공간에 대해 서로 다른 모드로 dmenu를 실행합니다.

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가 기본 모드에서 실행되어야 합니다.

답변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의 사용자 정의 응용 프로그램 목록과 다른 작업 공간의 기본 응용 프로그램 목록을 가져옵니다.

관련 정보