[x] Bug [ ] Feature Request [ ] Documentation Request [ ] Other (Please describe in detail)
No new workspace is being created after i send the command to i3-msg and a new terminal opens in the current workspace
I am trying to open a new terminal in a different workspace then comeback to my current work space and not switch to that new workspace
I am expecting while i am in the dev1 workspace and by sending this message below to i3-msg a new workspace will be created with a terminal in it. i dont want to switch to that workspace immediately. I want it to happen in the back ground and not become the new focused workspace
i3-msg "workspace dev2; exec terminator -b; workspace dev1;"
## Reproduction Instructions
## Environment
Output of `i3 --moreversion 2>&-`:
i3 version: i3 --moreversion 2>&- || i3 --version Binary i3 version: 4.17.1-2-g225ebb0d (2019-08-30, branch "master") © 2009 Michael Stapelberg and contributors Running i3 version: 4.17.1-2-g225ebb0d (2019-08-30, branch "master") (pid 10228) Loaded i3 config: /home/ymo/.config/i3cmd/conf/config.dev (Last modified: Sun 13 Oct 2019 10:14:27 AM EDT, 609 seconds ago) The i3 binary you just called: /opt/i3/i3-master-225ebb0d/bin/i3 The i3 binary you are running: i3
Logfile URL: https://logs.i3wm.org/logs/5632254176919552.bz2
- Linux Distribution & Version: $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.3 LTS Release: 18.04 Codename: bionic - Are you using a compositor (e.g., xcompmgr or compton): No compositor. The system is the default ubuntu system execept for the fact that i recompiled i3 from the latest master
As I already commented on the other issue:
It also only works if the application actually supports the startup notification protocol. Otherwise you need to use for_window assignments
exec
is used to start a process, but if a process ever opens a window, at which point it does so or how many it opens is a completely separate topic. So switching to a workspace, starting a process and switching back doesn't do anything because the window opens at a later point in time. The startup notification protocol is what we use to associate a process with the windows it opens, but it requires support from the application.
Your other options here are to either use for_window
assignments (see also these: https://www.reddit.com/r/i3wm/wiki/faq/bind_emulator and https://www.reddit.com/r/i3wm/wiki/faq/assign_emulator) or layout savingg & restoring (https://i3wm.org/docs/layout-saving.html), depending on your use-case.
Given that this is one of the most common problems people encounter I think we can provide some script that works like a one-off for_window
rule.
Another way would be to allow creating match rules at runtime and also with a "validity counter" (or something similar). I feel like we had an issue for this before, but it might be closed.
Thank you folks for your help. Much appreciated !
Most helpful comment
As I already commented on the other issue:
exec
is used to start a process, but if a process ever opens a window, at which point it does so or how many it opens is a completely separate topic. So switching to a workspace, starting a process and switching back doesn't do anything because the window opens at a later point in time. The startup notification protocol is what we use to associate a process with the windows it opens, but it requires support from the application.Your other options here are to either use
for_window
assignments (see also these: https://www.reddit.com/r/i3wm/wiki/faq/bind_emulator and https://www.reddit.com/r/i3wm/wiki/faq/assign_emulator) or layout savingg & restoring (https://i3wm.org/docs/layout-saving.html), depending on your use-case.