[HN Gopher] Vim Foot Pedal
       ___________________________________________________________________
        
       Vim Foot Pedal
        
       Author : tomerbd
       Score  : 82 points
       Date   : 2022-12-17 08:25 UTC (1 days ago)
        
 (HTM) web link (hackaday.com)
 (TXT) w3m dump (hackaday.com)
        
       | _def wrote:
       | I love it. Some months ago I had a Bluetooth pedal with several
       | footswitches. It could be used as a keyboard. I thought about
       | mapping it to a step debugger :D
        
       | baumschubser wrote:
       | I love the creativity in the comments to address this ,,problem"
       | if you want to call it that. A couple of years ago I made a
       | software-only thing to trigger two alternating key sequences
       | (e.g. Esc and i) by pressing down one of those cheap USB pedals.
       | A little bit hacky but it works.
       | https://github.com/baumschubser/footswitcher
        
       | easygenes wrote:
       | FTA: "Plus, there's some ergonomic benefits to not having to
       | strain one's hand over to reach the ESC key."
       | 
       | Honest question: Is it that uncommon knowledge that Ctrl+[ is
       | equivalent to ESC in vim default keybinds?
        
         | bornfreddy wrote:
         | This person here didn't know. Thank you, need to try it out.
        
         | keybored wrote:
         | There is no reason to assume that people don't know of it
         | simply because they don't use it.
         | 
         | For me: annoying to use a modifier for a common key + doesn't
         | work on my keyboard.
        
       | systemvoltage wrote:
       | I wanna see a double-eye-blink detection for ESC key in vim.
       | Super easy (try it!) and very natural. Probably straight forward
       | to detect 2 rapid eye blinks using a cheap webcam + CV.
        
       | lawn wrote:
       | It's a fun idea, but I'd imagine it's far too slow to press down
       | your foot compared to tapping your fingers.
       | 
       | I personally use a home-row combo as escape, by pressing down the
       | left index and ring finger at the same time.
        
         | [deleted]
        
       | keybored wrote:
       | > Plus, there's some ergonomic benefits to not having to strain
       | one's hand over to reach the ESC key.
       | 
       | Doubt. I simply move my hand. There is no strain.
       | 
       | Gross movement is not unergonomic.
        
       | lcuff wrote:
       | Sexy idea, but as someone who started using vi in 1987, a
       | software solution seems way better. I map the seldom-otherwise-
       | used key sequence jk to <ESC>. If I were doing it over, kj would
       | be slightly better, for times when I am Just Kidding. I do this
       | in both .vimrc and .inputrc (using different syntax, sigh). My
       | fingers generate the escape without thought. (As is true for tons
       | of vim normal mode actions I use regularly.)
        
         | Lio wrote:
         | Nah, that's not the way. If you go that route it'll only work
         | in Vim itself and not other programs with a vi-like interface.
         | 
         | Better to map caps to ctrl and build up the muscle memory to
         | use ctr-[
         | 
         | If you do that you also get easy access to all those other
         | Insert mode ctrl shortcuts.
        
         | toxik wrote:
         | Both jk and kj appear in normal writing for me :(
         | 
         | I briefly considered a foot pedal but it seems to me that foot
         | dexterity is far lower than finger, meaning typing ihello<esc>
         | is FAR faster than <pedal down>hello<let go>, not to mention
         | that pedal travel is way longer.
         | 
         | Of course you map esc to caps.
        
           | [deleted]
        
       | blumomo wrote:
       | Ready made for use: https://kinesis-ergo.com/foot-pedals/
        
       | danschumann wrote:
       | I remapped pressing jk kj kk jj to escape. As a regular vim user,
       | only sometimes do I actually press i to insert, usually it's cw,
       | a, s, etc.
        
       | cristoperb wrote:
       | I wrote a post a while ago about getting an inexpensive three-
       | button foot pedal to work under Linux.[1] I have the different
       | buttons mapped to different keys in Xorg (which can then be
       | mapped to any commands in .vimrc), but I'm not sure how to map
       | the keydown and keyup events to different keys so that the
       | "clutch" behavior can be implemented in software only.
       | 
       | 1:
       | https://catswhisker.xyz/log/2018/8/27/use_vecinfinity_usb_fo...
        
         | zwayhowder wrote:
         | Until I switched to a kneeling chair I had a 3 button foot
         | pedal under my desk. I programmed it with
         | https://github.com/rgerganov/footswitch and it worked an
         | absolute treat. As an i3 devotee it was even more special.
         | 
         | It didn't support up/down events but that was ok for me.
         | 
         | For me the mapping was: button 1 i3 workspace back_and_forth.
         | button 2 exec a floating urxvt terminal. button 3 i3-lock.
        
       | TheLocehiliosan wrote:
       | I swear sometimes I feel like I'm the only person in the world
       | that thinks hitting the ESC key is easy and no big deal.
       | 
       | Maybe it's decades of doing it, and I don't consider myself
       | especially dexterous, but I never have any problem with it.
        
         | the_third_wave wrote:
         | You're not alone, it is one of the easiest keys to hit since it
         | lies all by its own in a corner with no danger of hitting any
         | other keys when whacking it with whatever finger - or
         | combination thereof - is at hand. To be honest I had to guffaw
         | a bit at the rationalisation for using a foot pedal:
         | 
         |  _The basic concept was to use a pedal to enable switching
         | between normal and insert modes. In Vim's predecessor, vi,
         | switching modes was easy, with the ESC key located neatly by
         | the Q on the keyboard of the ADM-3A terminal. On modern
         | keyboards, though, it's a pain, and so a foot pedal is a
         | desirable solution._
         | 
         | So let me get this straight... it is easier to blindly grope
         | for a foot pedal somewhere under a desk than it is to hit that
         | very visible, very close-at-hand key on the keyboard with
         | whatever appendage happens to be closest? Of course it isn't,
         | this is just rationalisation for making that foot pedal - as if
         | any reason is needed to indulge in such projects other than
         | 'because I (want to find out if I) can'.
        
         | agrippanux wrote:
         | It wasn't that easy on the ill fated Touch Bar, which prompted
         | my move to Caps.
        
         | gwn7 wrote:
         | Agreed. Most vim users swap esc with caps lock anyway, making
         | it even easier to reach.
         | 
         | I don't think pedals bring any significant ergonomic benefit,
         | but pedal setups look cool nonetheless.
         | 
         | Swapping keys isn't interesting and you can't write a blog post
         | about it.
        
           | Beltalowda wrote:
           | > Most vim users swap esc with caps lock anyway
           | 
           | "Some", sure, but "most"? Not so sure about that.
           | 
           | Besides, everyone knows what Ctrl is the _One True Key(tm)_
           | in place of the Caps Lock and that only degenerate infidels
           | map it to anything else.
        
             | cbm-vic-20 wrote:
             | That, and "inoremap jk <Esc>".
        
             | galangalalgol wrote:
             | My personal heresy is: ino jj <esc>
             | 
             | I like it because my fingers never leave the home row.
        
             | gwn7 wrote:
             | > Besides, everyone knows what Ctrl is the One True Key(tm)
             | in place of the Caps Lock and that only degenerate infidels
             | map it to anything else.
             | 
             | Haha yeah I've heard about that and I like the joke =) But
             | I was never interested in adopting it. Because I configure
             | my alt keys to act as ctrl keys which imo results in a much
             | more ergonomic setup.
             | 
             | Ctrl is the most pressed control key for people like me who
             | live in the terminal. But the default placement of the ctrl
             | keys in modern layouts is so wrong. I have never understood
             | it. I guess there has to be a historical reason but I've
             | yet to find out. (Help me, greybeards)
             | 
             | I should't have to move my hand and strain my pinky to
             | reach out the most pressed control keys. With alt it's so
             | much easier. I don't have to move my hands nor use my
             | pinkies. My thumbs already rest on the spacebar and I just
             | have to make a little thumb movement.
             | 
             | Swapping ctrl with caps lock is an ok remedy but alt keys
             | are in a much better place.
             | 
             | So ctrl goes where alt is by default.
             | 
             | But do I swap ctrl with alt? No!! Alt is a frequently used
             | key as well so the default ctrl keys aren't a good fit for
             | alt either. Instead I set the keys immediately adjacent to
             | the default alt keys to act as alt. It's the Super key
             | (sometimes referred as the "Windows" key) on the left side
             | and the context menu key on the right.
             | 
             | Lastly, I set the default left ctrl key to act as Super and
             | the right ctrl key to act as context. Because I virtually
             | never use those.
             | 
             | (I think Apple got this mostly right. cmd is the most used
             | control key for the average Apple user, and opt is next.
             | Their placements are perfect. Though it's still problematic
             | for developers as ctrl is again at the worst place
             | possible. Because of that, what I do in Macs is swapping
             | ctrl with cmd while leaving opt where they are.)
             | 
             | If I'm an infidel for doing this so be it. But with this
             | setup, I'm extremely efficient one. I type and code and
             | enter & exit from repls and jump between interfaces like a
             | damn machine, impressing mostly everybody who watch me use
             | my computer.
             | 
             | Ergonomics FTW
        
               | NikolaNovak wrote:
               | I always wondered why people are finding it so hard to
               | hit control. And then realized I've been using ThinkPad
               | for 25years which has control closer. Maybe it's not as
               | insane choice / change as I always thought!
        
               | polyamid23 wrote:
               | > Ctrl is the most pressed control key for people like me
               | who live in the terminal. But the default placement of
               | the ctrl keys in modern layouts is so wrong. I have never
               | understood it. I guess there has to be a historical
               | reason but I've yet to find out. (Help me, greybeards)
               | 
               | I've seen this talk here and the speaker mentioned the
               | ADM-3A (that is also mentioned in the article itself)
               | terminals at about the 17/18 minute mark. Mind the
               | keyboard layout :)
               | 
               | https://jackrusher.com/strange-loop-2022/
               | https://en.m.wikipedia.org/wiki/ADM-3A
        
               | Beltalowda wrote:
               | I actually don't really care, although trying the
               | "regular" Ctrl on my laptop feels odd, but I'm also not
               | used to using it.
               | 
               | It's just what I'm used to. I grew up on the MSX which,
               | like many keyboards of its day, had Ctrl where we now
               | have Caps Lock. When we upgraded (well, "upgraded") to
               | Windows 95 I found some hack to make CapsLock behave like
               | Ctrl because I was so used to it. Later I started using
               | Linux and BSD and of course carried over the mapping with
               | xmodmap. I've never really known anything else than Caps
               | Lock being Ctrl.
               | 
               | Another oddity from my MSX days that took me years to get
               | rid of was that a line would only be saved if you pressed
               | "enter" at the end of it. That is, if you were editing
               | some file, went up a line, edited it, and then just went
               | down a line (without pressing enter) it wouldn't actually
               | get saved. It took me quite a long time to get rid of the
               | habit of "End + Enter" to make sure the line got saved
               | (which wasn't needed on any other system I've used).
        
             | kfajdsl wrote:
             | Emacs pinky isn't really a problem if you don't use Emacs
             | keybindings ;)
        
         | atrettel wrote:
         | I tend to use escape in most circumstances, but I am
         | increasingly partial to Ctrl-[ when using certain keyboards
         | where the escape key is a bit too far for me. It's another
         | option that's always available by default.
        
           | cristoperb wrote:
           | Ctrl-[ is so ingrained in my muscle memory that even when I
           | finally mapped capslock to esc I still never use it.
        
         | LAC-Tech wrote:
         | I think a lot of keyboard ergonomics comes down to the facts
         | that some people do anything to avoid moving their hands, and
         | others don't.
         | 
         | If you don't move your hand, you'll have to stretch your
         | fingers, and might be better suited to a minimalist keyboard
         | with function layers.
        
         | pengaru wrote:
         | For ages I lived with X40 and X60 form-factor ThinkPads, which
         | have perfectly sized keyboards for my hands. The ESC key is
         | easily accessed on these for me without leaving home row
         | placement, palms comfortably planted.
         | 
         | Every ThinkPad I've had since then has been a regression in
         | this department, beginning with the X201s and now I'm on an
         | X230 and my typing is awful compared to the 4:3 X-series glory
         | days. Reaching for the ESC key is noticably annoying compared
         | to what I know so well to be the ideal. Why Lenovo kept
         | stretching the keyboard to accommodate their widescreen
         | transition instead of relocating better speakers to the
         | keyboard flanks is beyond me.
         | 
         | But having suffered through this mess I fully understand why
         | vi(m) users remap ESC to CAPS or pursue other mitigations. ESC
         | key access is highly sensitive to keyboard-size:hand-size, and
         | I suspect for many it's just inconveniently distant like my
         | X230 is for me.
        
       | rendall wrote:
       | `Ctrl-[` works like escape in vanilla Vim. I prefer it because I
       | don't have to lift my hand from the keyboard, unlike hitting
       | escape
        
       | pkkm wrote:
       | My preferred solution is to map Caps Lock to Control, then map
       | Control-Space to exiting insert mode in Vim. That way, I get
       | improved convenience both in Vim and in other programs, such as
       | the shell and web browsers.
        
       | wardedVibe wrote:
       | I actually bought one a while back for the emacs metakeys issue
       | which had 4 buttons (it was originally designed for turning pages
       | on a pad while playing music). It worked pretty well while it
       | lasted, but broke after like a year.
       | 
       | Having a qmk split keyboard (the iris specifically
       | https://keeb.io/collections/iris-split-ergonomic-keyboard) was a
       | more lasting solution that also solved some other ergonomic
       | issues. Now my thumbs do more than just thonk the space bar.
       | Control, shift, space, meta, backspace/delete, enter alt and esc
       | are now done by thumbs instead of pinkies.
        
         | photochemsyn wrote:
         | I think resourcing foot pedals from the music world (guitars
         | and bass mostly) would be the way to go, they're designed for
         | heavy use and would likely be much more durable.
        
       | Galicarnax wrote:
       | I have remapped caps lock on my keyboard to Esc, so it works
       | everywhere, not only for Vim. Very convenient, symmetric to
       | Enter. I hardly ever need caps lock as such.
        
         | Galicarnax wrote:
         | The only downside is that it's a pain to work with a regular
         | keyboard due to muscle memory. Though that doesn't occur often
         | in my case.
        
       | teeray wrote:
       | I resolved this pain by making the Caps Lock key work as it
       | should: tap for "Esc" and hold for "Control". Then I took the
       | Escape key and made it Caps Lock--it's occasionally useful, but
       | not nearly enough to warrant a home row position.
       | 
       | You can do this with Karaniner Elements on macOS. There's a way
       | to do it on Windows too, but how escapes me at the moment.
        
         | johannes_ne wrote:
         | Kmonad for Linux
        
         | agrippanux wrote:
         | Switching ESC to Caps Lock took significantly less time to
         | retrain muscle memory than I expected.
        
         | Sirened wrote:
         | On macOS you can do this using just the stock OS. It's under
         | keyboard settings. You can also do this on iOS, it's awesome if
         | you have a physical keyboard and like to use vim on your iPad
        
           | jack_the_dev wrote:
           | I don't know what's cooler. This setting in MacOS / iOS or
           | having a dedicated foot pedal to press "i" or "esc"
        
         | keybored wrote:
         | Tried that some years back. Or the simpler version where it is
         | just Control. Didn't work I found out because I was using my
         | pinky to activate a very common modifier key. It was
         | uncomfortable. I ended up remapping caps lock to Ctrl-C.
         | 
         | I just use the good old control keys now. Either by using my
         | palm or (more commonly for the left one) the last knuckle of my
         | pinky finger.
        
         | xigoi wrote:
         | I think AutoHotkey would be the program to use on Windows?
        
           | pletnes wrote:
           | I'd recommend Power Toys for that. AHK is cool but better for
           | scripts and automations. Power Toys has lots of other neat
           | functions and support by MS.
        
         | [deleted]
        
         | woleium wrote:
         | Karabiner elements*
        
         | seri4l wrote:
         | https://gitlab.com/interception/linux/plugins/caps2esc
         | 
         | Works great in Windows and Linux.
        
         | cramjabsyn wrote:
         | Or switch to a sun keyboard where this was the native layout
        
       | nsb1 wrote:
       | Someone long ago, probably here, suggested binding the sequence
       | 'K-J' to 'ESC'. Now I don't even have to take my fingers off the
       | home row.
        
         | xigoi wrote:
         | If you're going to do this, I recommend mapping both jk and kj,
         | so you can just mash the keys simultaneously.
        
       | RileyJames wrote:
       | I recently took on pedal steel guitar. Which has both foot pedals
       | and knee levers. Along with both hands (plucking and barring
       | chords).
       | 
       | It's really changed the way I think about input methods. Pedals
       | have always been a thing, but primarily for effects, not part of
       | inputting notes. Those lazy knees weren't doing anything!!
        
       | samus wrote:
       | Using Emacs on contemporary keyboards causes similar problems
       | because the Ctrl key used to be in a much more convenient
       | location. I have had good experiences switching the left side Alt
       | and Ctrl keys to remedy the problem. But the foot pedal is almost
       | more elegant.
        
       | chrisprice wrote:
       | Just for a little bit of context lost in the HAD summary, this
       | was not a serious build!
       | 
       | > ... what better way to show my appreciation to an infrequent
       | Vim user, than to add another rarely useful peripheral to their
       | bag!
       | 
       | > ... As much as I built the pedal for a joke, I can't deny that
       | there is something very satisfying about using it.
        
       | 0x008 wrote:
       | When reading all these recommendations, I wonder why nobody is
       | using ctrl-c to exit insert mode..?
        
         | xigoi wrote:
         | It behaves differently than Esc.
        
           | logical_proof wrote:
           | I am also curious as to how. I have been using CTRL-c for
           | quite some time and even remapped sublime vintage mode to use
           | it on Windows when I am. It using Vim.
        
             | xigoi wrote:
             | See my reply to the other comment.
        
           | 0x008 wrote:
           | How?
        
             | xigoi wrote:
             | 2ix<esc> inserts "xx"
             | 
             | 2ix<c-c> inserts "x"
             | 
             | Also, <c-c> does not trigger InsertLeave.
        
         | freedomben wrote:
         | Dang that's a great idea. C-c C-c for me triggers vim slime,
         | but the semantic of using it to exit insert mode might warrant
         | a change
        
       | tipsytoad wrote:
       | Map holding caps lock to control and esc on tap, you never use it
       | anyway :)
        
         | hxugufjfjf wrote:
         | Correct answer. This is one of the few defaults that makes
         | sense to change as it can be done at the OS level, which will
         | then be inherited to the tens of different systems i use vi on
         | a day.
        
         | ironmagma wrote:
         | For me, caps lock is no better than ctrl. There's only one,
         | meaning key combos on your left require stretching your 4th
         | (pinky) finger out. I caused permanent damage to my 4th finger
         | that way. Do not recommend.
        
         | samus wrote:
         | OS offer emulating Caps Lock by pressing both Shift keys, no?
         | This would be a solution for people who HAVE TO WRITE UPPERCASE
         | A LOT for some reason.
        
       | djha-skin wrote:
       | I would love to use something like this to get back on emacs, but
       | it doesn't travel well. I'm on the bus, I'm at a friend's house
       | or my mother-in-law's house or my brother's house all the time
       | with my computer open. I don't want to be tied down to a specific
       | device or get out a foot pedal on the bus every time I want to
       | program.
        
       ___________________________________________________________________
       (page generated 2022-12-18 23:00 UTC)