Version 19 of wm overrideredirect

Updated 2009-09-09 11:41:22 by HoMi
wm overrideredirect window ?boolean?

If boolean is specified, it must have a proper boolean form and the override-redirect flag for window is set to that value. If boolean is not specified then 1 or 0 is returned to indicate whether or not the override-redirect flag is currently set for window. Setting the override-redirect flag for a window causes it to be ignored by the window manager; among other things, this means that the window will not be reparented from the root window into a decorative frame and the user will not be able to manipulate the window using the normal window manager mechanisms; you, the Tk programmer, have total control over the window.


DKF: The name comes from the way that the X protocol manages window creation. When a (toplevel) window is normally created, the Xserver generates an event (CreateNotify) on the root window, and the window manager (which receives the event because it selects the SubstructureNotifyMask on the root) gets that event and reparents the window into its decorative border. However, the client software that creates the window (not the WM) can specify a flag when the window is created (the overrideRedirect flag) which tells the WM to not do this stuff; i.e. it overrides the redirection of the window into a decorated frame. (I don't remember if it inhibits the passing of the event to the WM, or if the WM is just supposed to notice the flag early and give up on decoration.) There's more to writing a WM than that, of course (especially in relation to fake event handling) but this explains the genesis of the command name.


LES 2009-09-07: I've been trying to make a digital clock on my desktop area (Linux). It looks a lot better with [wm overrideredirect $::topwindow 1], i.e. no title bar. Especially since it has the same background color as the desktop area, so it blends in perfectly. But then it stays on top of all other windows. It looks very ugly with the title bar. :-(

hae 2009-09-08: Maybe this is helpful to you:

LES Very interesting as a concept, should keep me awake at night, but that clock also stays on top of all other windows. I don't want that. And it is quite ugly...

HoMi-(2009-09-09) - I think I know what you want. You want a so-called panel which shows the current time without any decoration made by a window manager (like title bar, minimize/maximize/close button). Right? The usage of

  wm overrideredirect window 1

is the right way. Normally a so created window is the topmost window during creation time but not during the run time. Any other window (application) should be able to overlay this panel.

Note:

  • this panel will not be managed by the window manager (see description above) and the panel is not visible in the task bar

[Explain idea.]

[Explain uses--balloon help, screensaver, various wm manipulations, much else.]

[Compare window zooming.] [Is that name as bad as CL thinks?]

One use of wm overrideredirect is to create a splash screen.


See also: