~mil/sxmo-tickets#574: 
KISS multi-button-presses goodbye

#Motivation

multi-button presses is often one of the first pain-points for new users. When I first started using sxmo, I would frequently long-press one of the buttons when I meant to just tap it (which, for three_button_touchscreen, is the difference between opening the keyboard and killing the current application).

Some discrepancies between timing, performance, and behavior between DWM and Sway led to the development of bonsai, which allows you to configure "complex keybinds". (and due to hare's lack of broad architecture support, SXMO never fully transitioned to bonsai).

Complex is the opposite of simple, the moniker of this project. We should have simple defaults (and those who want complex keybinds can add bonsai or whatever).

I currently have some bugs with my setup where my screen randomly locks when I'm in a menu, so I think the current code is already broken.

#Challenges

What to do with the old commands?

We should provide alternatives for any important functionality we're removing.

  • powerbutton_two: This is already the same as doing powerbutton twice.
  • powerbutton_three:
    • we need to come up with a better way of managing proximity_lock (already needing a command to kill it means it gets started out of control (on devices without prox sensors))
    • opening the terminal can be done with super+enter on the keyboard. Maybe a gesture should be created to do this. (when no apps are in the current workspace?)
  • volup_two: jumping from appmenu to sysmenu is pretty easy already
  • volup_three: we should add a gesture to access sxmo_wmmenu.sh (and maybe add a keyboard shortcut for it too?)
  • voldown_two: layout can be toggled using the keyboard (super+e), or via sxmo_wmmenu.sh (which we should add a gesture for)
  • voldown_three: windows can be killed with a keyboard shortcut (super+q), or a gesture

#What about one_button_e_reader???

  • powerbutton_two: keyboard can be opened with a gesture
  • powerbutton_three: windows can be killed with keyboard shortcut or a gesture.
Status
REPORTED
Submitter
~earboxer
Assigned to
No-one
Submitted
1 year, 4 months ago
Updated
1 year, 1 month ago
Labels
No labels applied.

~phartman 1 year, 4 months ago

Great idea. Some comments:

powerbutton_three (prox lock): we shouldn't need a button to kill it in an ideal world. Since this is a "debug thing" we can remove it. User can ssh in if things go to shit.

powerbutton_three (terminal): it's pretty easy to open a new terminal via menu -> apps -> st, so this can o

voldown_two: in dwm the layout toggle is still on the statusbar. Maybe put it there for sway too? or just stuff this within a menu item.

voldown_three seems kind of necessary --- I can't think of a gesture I'd want to kill my app.

So really only one I'd want to keep is voldown_three -> some safe (and quick) way to kill current client...

~earboxer 1 year, 4 months ago

I've been running this daily for a few days, and I really like the snappy-ness of the instant feedback for opening the menu and toggling the keyboard. I think a lot of my frustration has come from my device's power button having some "chatter"/noise when I press it (it sometimes presses itself a second time when I'm releasing the button). (so by keeping it "simple", I was able to discover this hardware fault more easily).

voldown_two: in the ticket, I said it could be mimicked with super+e, which is somewhat incorrect (it toggles from horizontal to vertical split). super+w goes into "tabbed" mode in sway. Personally I'm fine doing it with the keyboard, since it's not too frequent that I'm running more than four apps.

voldown_three: we've long since had the two fingers down and three fingers down to close/kill a program. My comment above for the shortcut was wrong, its super+shift+q to kill the running app.

An alternative proposal would be to keep the instant 'tap' commands, but allow 'longhold-release' to also execute something. So pressing volumedown would toggle the keyboard, but if you held it, then releasing would kill the current app.

pressing volume up could open the menu, but if you held it, then releasing would close that menu and open the wmmenu.

(nothing would be added to the powerbutton, because the dpms commands already take up to half a second).

Of course, this point of this ticket is "Simplicity", which this second proposal doesn't serve, so I'll pretend I never thought of it.

~phartman 1 year, 3 months ago

Another thought I just had (if our goal is to eliminate physical presses): we could rewrite the "butt wakeup" code so that it takes one power button followed by a swipe up to fully unlock the phone.

~nqd 1 year, 1 month ago

Could someone writeup a way to implement these changes? Just to test? I am really tired of pulling out my phone only to see its almost dead/already dead because the phone lock screen didnt turn off the screen or it just accidentally turned on the screen.

Peter Thomason 1 year, 1 month ago ยท edit

Might have a look into it, don't count on me but! haha.

I do like Peter's idea of a second action independent from the power button to fully unlock the phone. Maybe could make feh/imv display an image on wake with a arrow and words such as swipe up to unlock.

For simplicity could me move some of the commands we are trying to simplify to a menu and swipe actions, i find if the touch screen fails to start (which happens more than i would like) the hardware buttons still work allowing me to fix with a logout + login.

~earboxer 1 year, 1 month ago

You can find my non-multikey patch at https://paste.sr.ht/~earboxer/7e92f3084752bfb29258a3255bbf5e59252ee4d7 , (might be a good starting place?)

(I like it enough, but miss voldown_two and volup_three)

(we'll, of course also need a documentation patch after we stick with some approach).

Register here or Log in to comment, or comment via email.