Making utility windows "dock like"

I've been using xmonad with great success with my thinkpad x61 tablet. Although xmonad is so keyboard focused it still works quite well without one— so long as the compromise of a panel desktop switcher is used (I'm using gnome-panel). One issue I haven't solved yet is cellwriter (http://risujin.org/cellwriter/). According to xprop cellwriter is a "utility window", not a dock, and doesn't provide the struts field, even when it is set to dock mode. As a result, when I unhide it using the notification icon it pops up as a float in the middle of my screen. What I'd like to do is treat it as a dock: Accept the size it assumes, force it to bottom of the screen (just above my existing panel), and prevent anything from overlapping it or it from overlapping anything (shrinking the tiled area as a result). I expect that other people might find the same kind of behavior useful for things like calculators, but perhaps not— since it wouldn't be important to have a calculator on all workspaces. :) Can someone point me to some starting points on how I can get it to behave this way?

Gregory Maxwell wrote:
One issue I haven't solved yet is cellwriter (http://risujin.org/cellwriter/). According to xprop cellwriter is a "utility window", not a dock, and doesn't provide the struts field, even when it is set to dock mode. As a result, when I unhide it using the notification icon it pops up as a float in the middle of my screen.
What I'd like to do is treat it as a dock: Accept the size it assumes, force it to bottom of the screen (just above my existing panel), and prevent anything from overlapping it or it from overlapping anything (shrinking the tiled area as a result).
Sounds like a great candidate for the darcs xmonad-contrib extension, Layout.Monitor, if running darcs is an option. Here is link to archive of documentation to help you decide, (hehe, unless you're already running darcs xmonad.) Sounds like also might need to set gaps manually, though, since it doesn't set struts afaik. http://home.comcast.net/~radafizir/xmc-layout-monitor.tar.gz

* wirtwolff
Gregory Maxwell wrote:
One issue I haven't solved yet is cellwriter (http://risujin.org/cellwriter/). According to xprop cellwriter is a "utility window", not a dock, and doesn't provide the struts field, even when it is set to dock mode. As a result, when I unhide it using the notification icon it pops up as a float in the middle of my screen.
What I'd like to do is treat it as a dock: Accept the size it assumes, force it to bottom of the screen (just above my existing panel), and prevent anything from overlapping it or it from overlapping anything (shrinking the tiled area as a result).
Sounds like a great candidate for the darcs xmonad-contrib extension, Layout.Monitor, if running darcs is an option. Here is link to archive of documentation to help you decide, (hehe, unless you're already running darcs xmonad.) Sounds like also might need to set gaps manually, though, since it doesn't set struts afaik.
http://home.comcast.net/~radafizir/xmc-layout-monitor.tar.gz
Layout.Monitor was initially written for monitor-over-windows. If you need no overlapping, you really need just apropriate tiling layout. For instance, try Layout.IM. You can transform it with Mirror and Reflect so your window will be on the bottom of screen. Layout.IM ensures that cellwriter window will always remain at the bottom, even if you shuffle other windows. -- Roman I. Cheplyaka (aka Feuerbach @ IRC) http://ro-che.info/docs/xmonad.hs

Gregory Maxwell wrote:
I've been using xmonad with great success with my thinkpad x61 tablet. Although xmonad is so keyboard focused it still works quite well without one— so long as the compromise of a panel desktop switcher is used (I'm using gnome-panel).
One issue I haven't solved yet is cellwriter (http://risujin.org/cellwriter/). According to xprop cellwriter is a "utility window", not a dock, and doesn't provide the struts field, even when it is set to dock mode. As a result, when I unhide it using the notification icon it pops up as a float in the middle of my screen.
What I'd like to do is treat it as a dock: Accept the size it assumes, force it to bottom of the screen (just above my existing panel), and prevent anything from overlapping it or it from overlapping anything (shrinking the tiled area as a result). I expect that other people might find the same kind of behavior useful for things like calculators, but perhaps not— since it wouldn't be important to have a calculator on all workspaces. :)
Another possibility would be Layout.Gaps in combination with a manage hook: in the manage hook you could determine the size of the window and send it to the bottom of the screen and use sendMessage to signal the gapped layout about the size of the gaps.
participants (4)
-
Daniel Schoepe
-
Gregory Maxwell
-
Roman Cheplyaka
-
wirtwolff