You are not logged in.
What I am trying to do is to float windows on i3 window manager. I am specifically having problem with python matplotlib figure object. Before python 3.13 update, xprop showed matplotlib object xprop class as 'matplotlib'. But afterthe python 3.13 update, xprop class of matplotlib objects are different every time by changing the class string to python script. So for example, when I plot something with sample.0.py script, the class string would be "sample.0.py" for its xprop class. Why is this happening? Is there a way to somehow use other attributes of xprop than class for i3 window manager for the matplotlib object to be floated?
Thanks.
Offline
you can use every other attribute of xprop other than class, yes. see https://wiki.archlinux.org/title/I3#Cor … ng_dialogs for some other examples.
Offline
Thank you for your reply.
So, from below xprop output, I can use anything that starts with WM_ prefix?
_NET_WM_DESKTOP(CARDINAL) = 0
_NET_WM_STATE(ATOM) = _NET_WM_STATE_MAXIMIZED_VERT
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x0
WM_HINTS(WM_HINTS):
Client accepts input or input focus: True
Initial state is Normal State.
bitmap id # to use for icon: 0x160000b
bitmap id # of mask for icon: 0x1600012
window id # of group leader: 0x1600001
_GTK_THEME_VARIANT(UTF8_STRING) =
XdndAware(ATOM) = BITMAP
_NET_WM_ICON(CARDINAL) = Icon (90 x 90):
_GTK_APPLICATION_OBJECT_PATH(UTF8_STRING) = "/org/matplotlib/Matplotlib3"
_GTK_UNIQUE_BUS_NAME(UTF8_STRING) = ":1.52"
_GTK_APPLICATION_ID(UTF8_STRING) = "org.matplotlib.Matplotlib3"
_NET_WM_OPAQUE_REGION(CARDINAL) = 0, 0, 849, 1415
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 23068681, 23068682
_NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x1600008
WM_CLIENT_LEADER(WINDOW): window id # 0x1600001
_NET_WM_PID(CARDINAL) = 27393
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLIENT_MACHINE(STRING) = "archlinux"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified minimum size: 7 by 42
program specified base size: 0 by 0
window gravity: NorthWest
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_CLASS(STRING) = "histo.py", "Histo.py"
WM_ICON_NAME(STRING) = "Figure 1"
_NET_WM_ICON_NAME(UTF8_STRING) = "Figure 1"
WM_NAME(STRING) = "Figure 1"
_NET_WM_NAME(UTF8_STRING) = "Figure 1"When I try to use WM_NAME(STRING), I get a script error. It seems that my xprop output does not have neither WM_WINDOW_ROLE nor WM_WINDOW_TYPE.
Offline
wm_name should map to title in i3, but it doesn't look like you have much useful here for explicitly singling out matplotlib other than the GTK_APPLICATION_ID which you're unlikely be able to access: For which map to which see: https://i3wm.org/docs/userguide.html#command_criteria
Offline
Is it possible to use widcard (*)? Since all the python scripts would be in *.py, I am wondering if I can use use wildcard to work around this.
Offline