[x] 错误 [ ] 功能要求 [ ] 文件请求 [ ] 其他(请详细描述)
在我将命令发送到 i3-msg 并在当前工作区中打开一个新终端后,没有创建新的工作区
我正在尝试在不同的工作区中打开一个新终端,然后返回到我当前的工作区而不是切换到那个新的工作区
当我在 dev1 工作区时,我期待通过将下面的这条消息发送到 i3-msg 一个新的工作区将被创建,其中有一个终端。 我不想立即切换到该工作区。 我希望它发生在后台而不是成为新的重点工作区
i3-msg "workspace dev2; exec terminator -b; workspace dev1;"
## 复制说明## 环境`i3 --moreversion 2>&-` 的输出:i3版本: i3 --moreversion 2>&- || i3 --version 二进制 i3 版本:4.17.1-2-g225ebb0d(2019-08-30,分支“master”)© 2009 Michael Stapelberg 和贡献者 运行 i3 版本:4.17.1-2-g225ebb0d(2019-08-30,分支“master”)(pid 10228) 加载的 i3 配置:/home/ymo/.config/i3cmd/conf/config.dev(最后修改时间:Sun 13 Oct 2019 10:14:27 AM EDT,609 秒前) 您刚刚调用的 i3 二进制文件:/opt/i3/i3-master-225ebb0d/bin/i3 您正在运行的 i3 二进制文件:i3
日志文件网址: https://logs.i3wm.org/logs/5632254176919552.bz2
- Linux 发行版和版本: $ lsb_release -a 没有可用的 LSB 模块。 分销商 ID: Ubuntu 描述:Ubuntu 18.04.3 LTS 发布: 18.04 代号:仿生 - 您是否使用合成器(例如,xcompmgr 或 compton): 没有合成器。 该系统是默认的 ubuntu 系统,因为我从最新的 master 重新编译了 i3
正如我已经评论过另一个问题:
它也仅在应用程序实际支持启动通知协议时才有效。 否则你需要使用 for_window 赋值
exec
用于启动一个进程,但是如果一个进程曾经打开过一个窗口,那么它会打开一个窗口还是打开多少个窗口是一个完全独立的主题。 因此,切换到工作区、启动进程并切换回不会执行任何操作,因为窗口会在稍后的时间点打开。 启动通知协议是我们用来将进程与其打开的窗口相关联的协议,但它需要应用程序的支持。
您在此处的其他选择是使用for_window
分配(另请参阅这些:https://www.reddit.com/r/i3wm/wiki/faq/bind_emulator 和 https://www.reddit.com/ r/i3wm/wiki/faq/assign_emulator) 或布局保存和恢复 (https://i3wm.org/docs/layout-saving.html),具体取决于您的用例。
鉴于这是人们遇到的最常见问题之一,我认为我们可以提供一些像一次性for_window
规则一样工作的脚本。
另一种方法是允许在运行时创建匹配规则并使用“有效性计数器”(或类似的东西)。 我觉得我们之前遇到过这个问题,但它可能会被关闭。
谢谢大家的帮助。 非常感激 !
最有用的评论
正如我已经评论过另一个问题:
exec
用于启动一个进程,但是如果一个进程曾经打开过一个窗口,那么它会打开一个窗口还是打开多少个窗口是一个完全独立的主题。 因此,切换到工作区、启动进程并切换回不会执行任何操作,因为窗口会在稍后的时间点打开。 启动通知协议是我们用来将进程与其打开的窗口相关联的协议,但它需要应用程序的支持。您在此处的其他选择是使用
for_window
分配(另请参阅这些:https://www.reddit.com/r/i3wm/wiki/faq/bind_emulator 和 https://www.reddit.com/ r/i3wm/wiki/faq/assign_emulator) 或布局保存和恢复 (https://i3wm.org/docs/layout-saving.html),具体取决于您的用例。