Você poderia tentar isso. Lembre-se de substituir username
por seu nome de usuário real no Linux a seguir. Por algum motivo, usar ~
em vez de home/username
não funcionou para mim.
Use essas linhas na configuração do i3:
# Play/pause, prev, next
bindcode 172 exec /home/username/.i3/play.sh play-pause
bindcode 173 exec /home/username/.i3/play.sh previous
bindcode 171 exec /home/username/.i3/play.sh next
Cole o seguinte em um arquivo chamado /home/username/.i3/play.sh
cmd="$1"
id=$(xprop -root | awk '/_NET_ACTIVE_WINDOW\(WINDOW\)/{print $NF}')
curr_title=$(xprop -id $id | awk '/_NET_WM_NAME/{$1=$2="";print}' | cut -d'"' -f2)
if [[ "$curr_title" != "SMPlayer"* ]]; then
/opt/playerctl/bin/playerctl "$cmd"
fi
Você pode ter que ajustar a parte "SMPlayer" * dependendo do título exato da janela - não tenho experiência com esse programa. Você pode adicionar uma cláusula else
para executar outro programa quando o SMPlayer estiver em execução, se desejar.
Espero que isso ajude.