The problem is you’re using
instance while trying to set the title.
Also you might be relying on setting the terminal title while the shell or ranger is overriding it?
Can confirm doing something like this works
# i3 config
assign [class="ranger“] → $WS7
# open it
st -c ranger -e ranger
# other terminal
termite --clase=ranger --exec=ranger
# same result cause I'm not telling it about the terminal,
# it only cares if it has the class 'ranger'
# urxvt doesn't seem to support setting the class even though it uses it
# so we need to use the instance
assign [instance="ranger“] → $WS7
urxvt -name ranger -e ranger
If you wanna stick with urxvt then I suggest opening an instance of it how you intend, checking it’s info with
xprop and go from there.
Also note, ranger itself will change the terminal title if you have it configured to do so
all of this is very hacky to say the least and you can end up with windows moving around on you while using them.
I prefer to avoid window rules all together and just open them where I want them.
The AL configs don’t use any special configuration syntax, just a bit better regex matches and the standard settings from the gaps branch.
assign [class="(?i)(?:thunar)"] → $WS3
is just a non-capturing, case-insensitive, regex match (standard perl style regex). it allows matching anything to WS3 in this case by just adding another match and you don’t need to worry about case or whether it matches the exact title/class/whatever
assign [class="(?i)(?:thunar|gimp|urxvt)"] → $WS3