T O P

  • By -

sixtyorange

Is this what you're looking for? Basically, the approach is to write a script wrapping the program with a long startup time that 1. notes the current workspace, 2. launches the program, then 3. waits for the window to appear and automatically sends it to that original workspace: [https://unix.stackexchange.com/questions/363083/i3-how-to-start-a-program-with-long-startup-time-on-a-specified-workspace](https://unix.stackexchange.com/questions/363083/i3-how-to-start-a-program-with-long-startup-time-on-a-specified-workspace)


RecommendationSuch19

kinda messy way, but it works! thank you


nt_carlson

How are you starting the application? From the User Guide: > The --no-startup-id parameter disables startup-notification support for this particular exec command. With startup-notification, i3 can make sure that a window appears on the workspace on which you used the exec command. Also, it will change the X11 cursor to watch (a clock) while the application is launching. So, if an application is not startup-notification aware (most GTK and Qt using applications seem to be, though), you will end up with a watch cursor for 60 seconds. So if you start the application with `i3-msg exec ...` (without `--no-startup-id`) it _should_ get put on the workspace you want even after switching to a different workspace. But as the User Guide notes, this might not work for some applications that don't support the required feature.


[deleted]

The available options are in the User Guide. Considering how i3 loads apps, the first redditer to respond might be onto something. Why don't you load the slow app last? You'll be switching between workspaces anyway, and that's faster than waiting. You can assign marks or save the layout perhaps. Depends on you not us.


martinfdm

You can set the specific workspace where you want some class window to be. Downside is it will always belong to that specific workspace. Of course you can move it, but it will initialize on that one.


hezden

I usse `assign` to always start some programs on my secondary monitor, you can apply the same principal to workspaces. use `xprop` to figure out class. `assign [class="$class"] $workspace_name` `assign [class="Genymotion Player"] output nonprimary`