DimseBoms / XFCE-Dynamic-Workspace

Script to handle dynamic workspaces in XFCE. Should work for other desktop environemnts after modifying the window blacklist.
GNU General Public License v3.0
8 stars 6 forks source link

When tilix in quake mode (-q) is opened, endless workspaces are created. #2

Closed erenfro closed 1 year ago

erenfro commented 1 year ago

I use tilix pretty much exlusively because of it's quake mode drop-down visor. When using this script with it, however, I watched the Workspace switcher applet constantly create new workspaces endlessly until I closed the tilix visor (doesn't close program, but does hide it), and then those workspaces it created get deleted until the last empty one remains.

erenfro commented 1 year ago

Relevant xprop information of Tilix's quake window:

_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_STICK
_NET_WM_DESKTOP(CARDINAL) = 4294967295
_NET_WM_STATE(ATOM) = _NET_WM_STATE_STICKY, _NET_WM_STATE_SKIP_PAGER, _NET_WM_STATE_SKIP_TASKBAR, _NET_WM_STATE_ABOVE
_NET_WM_ICON_GEOMETRY(CARDINAL) = 1284, 2096, 59, 64
GDK_TIMESTAMP_PROP(GDK_TIMESTAMP_PROP) = 0x61
_NET_FRAME_EXTENTS(CARDINAL) = 0, 0, 0, 0
WM_STATE(WM_STATE):
        window state: Normal
        icon window: 0xf19bcf00
WM_HINTS(WM_HINTS):
        Client accepts input or input focus: True
        Initial state is Normal State.
        bitmap id # to use for icon: 0x5a05a04
        bitmap id # of mask for icon: 0x5a05a0a
        window id # of group leader: 0x5a00001
_GTK_THEME_VARIANT(UTF8_STRING) = 
XdndAware(ATOM) = BITMAP
_NET_WM_ICON(CARDINAL) =    Icon (48 x 48):
    (not shown)

_GTK_WINDOW_OBJECT_PATH(UTF8_STRING) = "/com/gexperts/Tilix/window/1"
_GTK_APPLICATION_OBJECT_PATH(UTF8_STRING) = "/com/gexperts/Tilix"
_GTK_UNIQUE_BUS_NAME(UTF8_STRING) = ":1.253"
_GTK_APPLICATION_ID(UTF8_STRING) = "com.gexperts.Tilix"
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x0, 0x0, 0x0, 0x0
WM_WINDOW_ROLE(STRING) = "quake"
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 94371849, 94371850
_NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x5a00008
WM_CLIENT_LEADER(WINDOW): window id # 0x5a00001
_NET_WM_PID(CARDINAL) = 23527
WM_LOCALE_NAME(STRING) = "en_CA.UTF-8"
WM_CLIENT_MACHINE(STRING) = "loki.home.ld"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
        program specified minimum size: 163 by 48
        program specified base size: 0 by 0
        window gravity: Static
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_CLASS(STRING) = "tilix", "Tilix"
WM_ICON_NAME(COMPOUND_TEXT) = "Tilix: loki ❐ default ● 1 zsh"
_NET_WM_ICON_NAME(UTF8_STRING) = "Tilix: loki ❐ default ● 1 zsh"
WM_NAME(COMPOUND_TEXT) = "Tilix: loki ❐ default ● 1 zsh"
_NET_WM_NAME(UTF8_STRING) = "Tilix: loki ❐ default ● 1 zsh"

Noting the Class, and Role, this would be best blacklisted by the combination of the two, since simply window name alone is not something that can be blacklisted.

DimseBoms commented 1 year ago

Closing this as you fixed the bug with your own PR as of: https://github.com/DimseBoms/XFCE-Dynamic-Workspace/pull/3