Estou procurando o seguinte: $mod+n
-> abrir cli no cliente flutuante ( ikhal
em particular) -> $mod+n
-> fechar cli no cliente flutuante.
Consegui fazer isso para nmtui com o seguinte script:
#!/bin/bash
if pkill -0 nmtui; then
pkill nmtui
else
swaymsg exec 'foot -a floating_shell --window-size-pixel=1200x900 nmtui'
fi
Agora quero fazer o mesmo ikhal
ou basicamente qualquer coisa. Minha ideia é atribuir um app_id específico, ou seja, swaymsg 'exec footclient -a ikhal ikhal'. E ao pressionar a tecla, meus scripts verificam se existe alguma janela app_id = "ikhal". Se assim for, isso os mata. Caso contrário, ele inicia um novo. No entanto, os únicos gatilhos para critérios parecem ser for_window e atribuir, o que não ajudará neste cenário?
Existe alguma maneira de fazer isso de qualquer maneira? Existe alguma outra maneira de conseguir esse comportamento?
Pode me ajudar?
Para a coisa específica que tentei fazer o seguinte é a solução:
Explicação:
swaymsg
ela mesma pode levar critérios. No entanto, precisamos escapar dos colchetes. Com isso, podemos executar comandos em contêineres específicos.No entanto, como eu queria usar isso para alternar um calendário (ou outros aplicativos), encontrei uma solução ainda melhor: o scratchpad oscilante. Então acabei usando o seguinte script:
Se você chamar este script muito simples,
sh toggle.sh ikhal
ele tenta obter a janela com app_id "ikahl" do scratchpad, se falhar, ele tenta mover esta janela para o scratchpad, se ambos falharem, ele tenta abrir o aplicativo "ikhal" em uma nova sessão de pé e atribui o app_id "ikhal".Eu uso isso com qualquer um dos meus tuis, como
neomutt
,ikhal
ounmtui
.