jbensmann / xmouseless

A fast and simple way to control the mouse.
GNU General Public License v3.0
146 stars 25 forks source link

Question / Suggestion: How to use window alt-drag (available on Xfce) #4

Open MilanKladivko opened 4 years ago

MilanKladivko commented 4 years ago

Hello!

I like to move my windows around with holding LAlt and dragging the window. This way, I don't have to aim for the window's top bar to drag, I can grab the window anywhere.

Of course, this doesn't work when xmouseless grabs all input, it gets intercepted and cancelled before it gets through to the OS I presume.

Any ideas how to make this work? Is there any way to let the OS do it or would it mean extending this program's functionality and re-implement the dragging by reading what window I'm pointing at?

It could be an interesting addition to the program. For my current OS setup, the hitbox for dragging the window to enlarge is literally 1px wide so if there was window detection in place, it could be a big help to have an enlarge window modifier key too.

jbensmann commented 4 years ago

Hi, sorry for the late response. Actually this already works, at least with window managers like i3, bspwm and dwm, so it seems like the modifier keys get passed through. I use super + left click to move a window and super + right click to resize a window, so when I have launched xmouseless, I can press super+f, hold it and press some movement key to move the window under the cursor. Or have you already tried that? Perhaps it does not work in Xfce or other desktop environments.

MilanKladivko commented 4 years ago

I'd have to try on other computers, but Xfce seems to not work. After those two weeks I've also noticed that Steam doesn't respond to any input through xmouseless either. That said, Xfce has many input-related problems outside of xmouseless for me so I guess Xfce might be just broken all around... I'm still enjoying using it and I can just keep those minor quirks in mind and use my touchpad, it's not that big a deal tbh.

jbensmann commented 4 years ago

Yeah I've also noticed that some programs don't fully work with xmouseless, e.g. opening some menus, I think this is because they cannot register shortcuts when xmouseless is running. So this is probably not the fault of Xfce, but I don't know yet how to fix this. Concerning moving and resizing windows, you could try adding shell bindings in xmouseless for that, e.g.

    { XK_t,        "xdotool getwindowfocus windowmove --relative 0 20" },

to move the focused window 20 pixels down, although this isn't very comfortable because it doesn't move continiously. It's possible that this does not work in Xfce either. If it does, I might build this functionality into xmouseless as you suggested, otherwise I probably won't get it working in Xfce anyway.

MilanKladivko commented 4 years ago

Uuuu, that's great! The xdotool works nicely on Xfce. Might be worth a try to track cursor deltas for movement and call this every frame -- who knows though, might be unresponsive... Thanks for that suggestion though, I'll look into the tool and try what I can do with it.

(Oh, I actually had xdotool already from some years back when I was trying to do the exact thing your program does... It'l all coming back to me lol)

Only thing I miss now is actually alt tabbing. I'll try to do that with xdotool or some other external command though, the alttab keystroke is awkward anyway. Thank you again!