Skip to content

Rules using class, instance, AND name of windows don't seem to apply correctly #1538

Description

@promitheas17j

I managed to get the Eve Online client window to be full screen and on the 'below' layer so that new windows in its desktop dont force it out of fullscreen, but it seems the launcher also inherited that behaviour.

As such, I tried to make a separate rule for each, based on their differing names, but the launcher doesn't seem to be getting the rule.

Here is the xprop output for each window:

$ xprop | grep -E 'CLASS|NAME'
# Click on launcher
_NET_WM_NAME(UTF8_STRING) = "EVE Launcher" WM_ICON_NAME(STRING) = "EVE Launcher" WM_NAME(STRING) = "EVE Launcher" WM_LOCALE_NAME(STRING) = "en_US.UTF-8" WM_CLASS(STRING) = "steam_app_8500", "steam_app_8500"

$ xprop | grep -E 'CLASS|NAME'
# Click on client before selecting character
_NET_WM_NAME(UTF8_STRING) = "EVE" WM_ICON_NAME(STRING) = "EVE" WM_NAME(STRING) = "EVE" WM_LOCALE_NAME(STRING) = "en_US.UTF-8" WM_CLASS(STRING) = "steam_app_8500", "steam_app_8500"

$ xprop | grep -E 'CLASS|NAME'
# Click on client after selecting character
_NET_WM_NAME(UTF8_STRING) = "EVE - my_character_name"
WM_ICON_NAME(STRING) = "EVE - my_character_name"
WM_NAME(STRING) = "EVE - my_character_name"
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLASS(STRING) = "steam_app_8500", "steam_app_8500"

Based on this I tried using the following 2 rules:

bspc rule -a "steam_app_8500:steam_app_8500:EVE Launcher" state=tiled layer=normal
bspc rule -a "steam_app_8500:steam_app_8500:EVE -*" state=fullscreen layer=below

However while the client seems to have the right behaviour (i.e. if a new window is opened on the same desktop it doesnt force the client out of fullscreen), the launcher also gets the same behaviour. This means when I launch the launcher from steam, it actually gets put in full screen behind the steam client and I need to move the steam client to another desktop to be able to use the eve launcher.

I'd be happy to provide any further info if needed.

Activity

  1. gh0stzk commented on Nov 11, 2025

    @gh0stzk

    That are one shot rules, you need the external rules option/script for fine grained rules.

  2. promitheas17j commented on Nov 26, 2025

    @promitheas17j
    Author

    That are one shot rules, you need the external rules option/script for fine grained rules.

    My issue has been fixed but I wasn't aware of the concept of external rules. They seem interesting so I'll look into them.

    Here are the relevant lines of my bspwmrc for reference:

    # Exception for the Eve Online launcher so its not affected by the rule below
    bspc rule -a "steam_app_8500:steam_app_8500:EVE Launcher" state=tiled layer=normal
    
    # Rule to keep Eve Online clients fullscreen and on the 'below' layer
    bspc rule -a "steam_app_8500:steam_app_8500:EVE -*" state=fullscreen layer=below
    
    # Rule to keep RIFT intel tool floating
    bspc rule -a "dev-nohus-rift-MainKt" state=floating layer=above
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions