Before I open an issue, I’d like to know if anybody has encountered and solved this issue:

I want certain applications to open in a particular workspaces so naturally I have lines such as these in my ~/.config/i3/config file:

assign [title="^.*LibreWolf.*$"] $ws1
assign [class="org.remmina.Remmina"] $ws2                         
assign [title="^.*Thunderbird.*$"] $ws4
assign [class="Signal"] $ws4
assign [title="^.*ssh tunnels.*$"] $ws5

This works fine for windowed applications, but it doesn’t work for fullscreen ones. For example, if I have those two lines:

assign [title="Xephyr"] $ws3                                                     
assign [title="feh"] $ws3                                                        

and I start Xephyr or feh fullscreen with Xephyr :1 -fullscreen or feh -F, they will start fullscreen in whichever workspace I happen to be and won’t be moved to workspace 3.

I did find a workaround by creating a .desktop file in which the command explicitely switches to the workspace I want to use the corresponding application in before invoking the command. For example for Xephyr, I made this .local/share/applications/Xephyr.desktop file:

Name=Xephyr
Exec=bash -c "i3-msg workspace 3; Xephyr :1 -fullscreen -reset -terminate -query localhost"
Comment=
Terminal=false
Icon=xorg.png
Type=Application

It works but it’s really dirty and it’s not great.

Does anybody know if there’s a way to convince i3 to start a fullscreen app in the correct workspace cleanly without resorting to hacks like that?