Ya know how most VWMs let you ram your mouse against the edge of the screen to switch desktops? Well that always drove me nuts, and it'd take significant effort to add that to RabidVWM (not really worth it for one small feature anyway, IMO), so I've always pushed it off onto scripters.
OTOH, I've had a few people ask about it, and I'd like to have an example to include in the documentation. So if you've got one, GIMME! :D
It just needs to do !VWMRight on the right edge, !VWMUp on the top edge, etc. shouldn't be too difficult, but I'm too lazy to learn the syntax for hotspots when I don't intend to use them. Bonus points if you can make it work, unaltered, on my difficult-to-code-for multimonitor system. :)
Here ya go, been using this snippet of code for as long as I remember. This switches Right and Left in the lower corners respectively. I never liked switching by hitting the whole edge of the screen it can get annoying, so the 1 pixel hotspot in each corner has always been the best solution for me.
I love watching people use my computer and hit those spots by accident, they usually can't figure out were their windows went. :)
*ckHotspot -1 -1 1 1 !VWMRight !none
*ckHotspot 0 -1 1 1 !VWMLeft !none
Curious how this would work on a dual monitor. ;)
heh, I remember when I first stumbled across a theme that used a vwm with this feature. That sure was an annoying feature when I didn't understand a bit of step.rc :)
I currently use Simplicity on my dual monitor system and this theme uses the hotspots like above. I've found that, with the primary monitor on the left and the secondary monitor on the right, I can't only change to the left desktop. The right hotspot doesn't work.
I'm hoping to make a more compatiable dual monitor theme but I'm not sure how successful I will be.
Finally got around to trying this, and I'm having a hard time getting ckHotspots to use the right coordinates :P
I love the configuration options tho: "IHaveAlotOfResourcesAndIReallyWantSomeVeryQuickStyle"
Apparently it uses the broken CONVERT_COORDINATE_X and CONVERT_COORDINATE_Y macros... :6
The problem with this not being hardcoded is that you lose the ability to drag windows to an edge to effectively move windows to different desktops.
Well, this is the case last I tried, years ago with hotspots. I think once you hit the hotspot with a window being dragged, you lose 'hold' or focus of the window you are dragging. Either that or once you switch desktops, the window is at the same place when it hits the edge.
The dragging of windows using VWMs that have this built-in do get moved, in such a manner that the reality of the VWM is heightened (ever so slightly). For example, if you have virtual desktops in a horizontal row, you can drag a window to the right edge, and it will appear in the next desktop, though now at the left edge, still at your control (you still are in the process of moving of the window until you release the mouse button). I think with ckVWM, this even holds true for when you wrap desktops. I do not remember if I tried to recreate this correct behavior in my script, but anyway, the ability to drag windows amongst desks is largely the only reason I think anyone would use this feature at discussion.
I once suggested that this feature of switching desktops on edges should only work when the user was dragging a window. If you could detect if the user was in the process of moving a window and you hit a screen edge, then and only then switch desks. I still think this is cool, though I hear from programmers that you cannot detect if a window is currently being dragged. I wish to believe that all you have to do is check when there is a mouse click down on a titlebar (to initiate the dragging/moving of a window), and then temporarily enable this edge-switching behavior, disabling it once you release the mouse button.
Are you simply trying to do this in such a way that we don't have to load ckHotspots? I just set up ckHotspots and bangVWM to switch around. Very simple and efficient. I didn't want to create a new box just to get the rabidVWM to size correctly...