我正在寻找以下内容:$mod+n
-> 在浮动客户端中打开 cli(ikhal
特别是)-> $mod+n
-> 在浮动客户端中关闭 cli。
我可以使用以下脚本为 nmtui 执行此操作:
#!/bin/bash
if pkill -0 nmtui; then
pkill nmtui
else
swaymsg exec 'foot -a floating_shell --window-size-pixel=1200x900 nmtui'
fi
ikhal
现在我想对任何基本上任何事情做同样的事情。我的想法是,分配一个特定的app_id,即swaymsg 'exec footclient -a ikhal ikhal'。在按键时,我的脚本检查是否存在任何 app_id="ikhal" 窗口。如果是这样,那就杀了他们。否则它会开始一个新的。但是,条件的唯一触发器似乎是 for_window 和 allocate,这在这种情况下没有帮助吗?
无论如何,有什么办法可以做到这一点吗?还有其他方法可以实现这种行为吗?
你能帮助我吗?
对于我尝试做的具体事情,解决方案如下:
说明:
swaymsg
本身可以取条件。然而,我们需要转义括号。这样我们就可以在 sway 中的特定容器上运行命令。然而,当我想用它来切换日历(或其他应用程序)时,我找到了一个更好的解决方案:摇摆便签本。所以我最终使用了以下脚本:
如果您调用这个非常简单的脚本,
sh toggle.sh ikhal
它会尝试从暂存器获取 app_id“ikahl”的窗口,如果失败,它会尝试将此窗口移动到暂存器,如果两者都失败,它会尝试打开应用程序“ikhal”在新的足部会话中并分配 app_id“ikhal”。我将它与我的任何 tuis 一起使用,例如
neomutt
、ikhal
或nmtui
。