Skip to content

[Bug] NET_WM_WINDOW_TILE_INFO assignments are ignored and / or overridden #612

@crashvb

Description

@crashvb
 * muffin version 4.8.1
 * Distribution - Mint 20.1
 * Graphics hardware: NVIDIA Corporation TU106 [GeForce RTX 2060] / nvidia-driver-470
 * 64 bit

Issue Question

I'm trying to tile xclock using xprop but it doesn't appear to be working. The window does not resize or change location after executing the command even though the properties appear to be updated. Is this a bug, or am I attempting to do something that is not supported / is out of alignment with how a window manager is intended to operate?

Steps to reproduce

Command execution (resolution: 5120x1415):

$ xdotool search -name xclock
144703498
$ xprop -id 144703498 -fs /tmp/xprop.formats -set _NET_WM_STATE "_NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_TILED"
$ xprop -id 144703498 -fs /tmp/xprop.formats -set _NET_WM_WINDOW_TILE_INFO "4, 1, 0, 720, 2560, 720, 0, 0"
$ xprop -id 144703498 -fs /tmp/xprop.formats -set _NET_FRAME_EXTENDS "0, 1, 24, 1"
$ xprop -id 144703498 | egrep "_NET_FRAME_EXTENDS|_NET_WM_WINDOW_TILE_INFO|_NET_WM_STATE"
_NET_FRAME_EXTENDS(CARDINAL) = 0, 1, 24, 1
_NET_WM_WINDOW_TILE_INFO(CARDINAL) = 4, 1, 0, 720, 2560, 720, 0, 0
_NET_WM_STATE(ATOM) = _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_TILED

Full xprop after command execution:

$ xprop -id 144703498
_NET_FRAME_EXTENDS(CARDINAL) = 0, 1, 24, 1
_NET_WM_WINDOW_TILE_INFO(CARDINAL) = 4, 1, 0, 720, 2560, 720, 0, 0
XKLAVIER_STATE(INTEGER) = 0, -269574400
_GTK_EDGE_CONSTRAINTS(CARDINAL) = 170
_NET_WM_STATE(ATOM) = _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_TILED
WM_STATE(WM_STATE):
		window state: Normal
		icon window: 0x0
_NET_FRAME_EXTENTS(CARDINAL) = 0, 0, 24, 0
_NET_WM_DESKTOP(CARDINAL) = 0
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW
_NET_WM_PID(CARDINAL) = 1829267
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW
SM_CLIENT_ID(STRING) = "1066fafc84f83a9828164419975251826000000021570350"
WM_CLIENT_LEADER(WINDOW): window id # 0x8a0000a
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLASS(STRING) = "xclock", "XClock"
WM_HINTS(WM_HINTS):
		Client accepts input or input focus: False
		Initial state is Normal State.
		bitmap id # to use for icon: 0x8a00001
		bitmap id # of mask for icon: 0x8a00003
WM_NORMAL_HINTS(WM_SIZE_HINTS):
		program specified size: 164 by 164
		window gravity: NorthWest
WM_CLIENT_MACHINE(STRING) = "s27lxlap"
WM_COMMAND(STRING) = { "xclock" }
WM_ICON_NAME(STRING) = "xclock"
WM_NAME(STRING) = "xclock"

contents of /tmp/xprop.formats:

_NET_FRAME_EXTENDS 16c
_NET_WM_STATE 32a
_NET_WM_WINDOW_TILE_INFO 16c

Expected behaviour

The changes are detected and the window is tiled to the bottom left corner (LLC).

Other information

I did come across an issue with xprop being unable to assign multiple atom values, and have opened a related question to the xprop developers. But I am not sure if that is the underlying issue, as I have also tested with each _NET_WM_STATE atom value individually with the same results. From what I can tell by browsing this repository, _NET_WM_STATE_MAXIMIZED_VERT was added to accommodate some GTK behavior; however, it's my understanding that xclock does not use GTK.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions