FancyWM / fancywm

FancyWM - Dynamic Tiling Window Manager for Windows
GNU General Public License v2.0
719 stars 27 forks source link

Enable option for consecutive actions following the activation of FancyWM input #143

Closed sim590 closed 6 months ago

sim590 commented 2 years ago

Is your feature request related to a problem? Please describe.

When I try to navigate between multiple stacked windows, it becomes tiring to switch between activated mode and non-activated mode. My fingers are tiring.

Describe the solution you'd like

I would like for an option to make the activation last until I press the exit-mode key (ESC for me). Therefore, I could press the activation key once, move around the windows with HJKL keys (my movement keys) and then exit the input mode with ESC to go back to my work.

Describe alternatives you've considered

Enduring pressing multiple times the activation key. There's really no way to go around this...

Additional context

It is self-explanatory I think.

riotrah commented 1 year ago

I also want to upvote this one. This can be interpreted as a sort of "middle-ground" between "Activation hotkey + single operation" and "Direct hotkey".

The benefit of the activation hotkey - which is surprisingly rare in WMs I notice - is that it frees up my global and other hotkeys. Since Windows increasingly has taken over various hotkey combos (for sometimes reasonable and unreasonable features) without ability to change them, FancyWM's activation system is a breath of fresh air. On my Mac with Amethyst, I have to think triple-hard to ensure some code editor or terminal or application hotkey doesn't interfere with my WM hotkeys, even with a capslock-hyper-modifier app!

Of course the downside is tedious usage when I know exactly what I want to do, if it involves repetitive keypresses.

Where I desire an alternative to @sim590 's suggestion:

sim590 commented 1 year ago

In all honesty, I would rather prefer having a mode of direct keybinded actions instead of having the activation mode shenanigans, but if we can't, well, yeah I would at least appreciate this option greatly as a middle-ground just as @riotrah formulated it.

sim590 commented 1 year ago

Also, the timeout addition would be preferable. I approve @riotrah's suggestion.

riotrah commented 1 year ago

@sim590 just to make sure - have you tried the existing direct global hotkey toggles for your various operations of choice? It removes them (I think) from usage within the "activated" mode, but allows you to mash them as often as you want.

(It's the lightning icon next to each shortcut item in the settings for keybindings)

veselink1 commented 1 year ago

Thanks all for your engagement on this topic. I fully agree that using the keybindings without requiring an activation hotkey is more efficient. Unfortunately, Ctrl, Alt, Shift, and Win keys are used for keyboard shortcuts either by Windows itself or by third-party applications, so there isn't a modifier that is free to be used by FancyWM (without breaking application-specific shortcuts).

FancyWM support "Direct Hotkeys" which is an option that is toggled per-keybinding and which registers that keybinding as a native hotkey, so it can be used without the Activation Hotkey.

@sim590 As @riotrah suggested, try the Direct Hotkeys feature if you haven't already. In versions before 2.10, it is toggled by the lightning icon. In 2.10 and later it is simply a checkbox next to the keybinding. Make sure to configure a keybinding that includes a modifier key (Ctrl, Shift, Alt) and enable it.

image

veselink1 commented 1 year ago

I have been experimenting with an alternative, hopefully, better solution, and I would appreciate any thoughts you might have. The idea is to repurpose the Caps Lock button as a modifier and allow keybinding to be triggered by holding it.

Create Horizontal Panel then becomes Caps + H (instead of Activation, then H).

The Caps Lock can still be used outside of a keybinding, to toggle all caps.

sim590 commented 1 year ago

I have tried the direct hotkey option and there are some issues...

First, LALT+CTRL and RALT keys are mingled as far as FancyWM can tell. It cannot distinguish both keys. So, if I set LALT+CTRL+* keys as direct keys such as LALT+CTRL+9 and that I try to press [ on my keyboard which is RALT+9, then it interprets it as LALT+CTRL+9. So I can't type [ anymore since it moves my focus to the 9th virtual desktop instead. Which is a bug as far as I'm concerned... And it makes the list of hotkeys I can use shorter.

If that could be fixed, may be that feature would suffice for me. I have not played enough with it due to this bug.

sim590 commented 1 year ago

I will add that I tried also WIN+CTRL keys but I quickly ended up stuck since WIN+CTRL+SHIFT+L wouldn't map itself. It just gives WIN+CTRL+SHIFT in the resulting keybind square.

image

It seems like the direct keybind mode has some issues still.

jweickm commented 1 year ago

I have tried the direct hotkey option and there are some issues...

First, LALT+CTRL and RALT keys are mingled as far as FancyWM can tell. It cannot distinguish both keys. So, if I set LALT+CTRL+* keys as direct keys such as LALT+CTRL+9 and that I try to press [ on my keyboard which is RALT+9, then it interprets it as LALT+CTRL+9. So I can't type [ anymore since it moves my focus to the 9th virtual desktop instead. Which is a bug as far as I'm concerned... And it makes the list of hotkeys I can use shorter.

If that could be fixed, may be that feature would suffice for me. I have not played enough with it due to this bug.

This seems to be an issue with an international keymap like the German one, which uses the RALT key to send some exclusive characters. FancyWM did differentiate between left and right modifiers, but that made it impossible to use the left-hand side modifiers in combination with numbers on the right side (like 6-0) and the right-hand side modifiers in combination with numbers on the left side of the keyboard—which is arguably much more comfortable. I'm not sure where a good solution for your issue might be, other than to avoid the combination of just "CTRL+ALT" in direct hotkeys. Or maybe @veselink1 could add a switch to toggle the differentiation between left and right modifiers, although that could also add to the complexity of the software.

riotrah commented 1 year ago

@veselink1

That might be an option for sure!

However unfortunately for myself that wouldn't work as I already use the capslock key as a additional "hyper" modifier via AHK, eg for vim key navigation and a bunch of other stuff. I think that's also a somewhat popular modification that I've seen around GitHub. Still, might work for many others!

But either way, what do you think about my tmux-style suggestion above, where we combine the activation key method with multiple successive key presses?

github-actions[bot] commented 6 months ago

This issue is stale because it has been open for 14 days with no activity.

github-actions[bot] commented 6 months ago

This issue was closed because it has been inactive for 14 days since being marked as stale.