[HN Gopher] Show HN: Vimac - Productive macOS keyboard-driven na... ___________________________________________________________________ Show HN: Vimac - Productive macOS keyboard-driven navigation Author : dexterleng Score : 244 points Date : 2020-08-30 15:07 UTC (7 hours ago) (HTM) web link (vimacapp.com) (TXT) w3m dump (vimacapp.com) | ivan888 wrote: | Really want a way to have vi-mode input in all text inputs | throughout the OS, hopefully that is a future possibility | wavesplash wrote: | You may know this already but emacs keys are supported in all | text input areas on Mac. Carl-a (start of text), Carl-e (end of | text) Carl-k (cut Text to end of line) Carl-y (yank/paste cut | text) and many more. | mkskm wrote: | It's possible to customize these as well, see e.g. | https://www.hcs.harvard.edu/%7Ejrus/Site/cocoa-text.html, | http://www.deepsky.com/~misaka/MacOSX/DefaultKeyBinding.dict. | narwally wrote: | And the Mac kill ring is separate from the clipboard so that | means you can have two things copied at once and insert them | with separate keybindings. Unfortunately the kill ring only | contains a single element, so has no history. | | some other useful ones are C-h/C-d (backwords/forwards | delete), C-o (insert line), and the main Emacs movement keys | C-n, C-p, C-b, C-f. Remapping Capslock to be a second Control | makes using these regularly much more natural. Karabiner is a | good app for easily remapping keys on macOS. | mkskm wrote: | This is the most promising project I've come across: | https://github.com/glacambre/firenvim, although it only applies | to the browser. The last time I tried it out it had some | performance issues though. | asjldkfin wrote: | Love this app. Absolutely check it out if you are serious about | keyboard navigation. | | The only suggestion I'd make is to have the cursor return to its | old position after an action. But it's a minor nitpick. | dexterleng wrote: | I'm glad you like it! | | > cursor return to its old position after an action | | Will do! | justnotworthit wrote: | I've been using Shortcat for this and Amethyst for tiling. Glad | to see another project. Anyone know Windows OS equivalents? | rado wrote: | Two letters appeared on a Safari tab, I typed them and nothing | happened. Why? | submeta wrote: | Wow, seems phantastic. Love vimium in Firefox and all automation | / keyboard remapping tools on the Mac (Keyboard Maestro, Alfred | App, Karabiner Elements). Will definitely check this out. | dexterleng wrote: | Hello all! I am a student from Singapore who was introduced to | Vimium by a friend two years ago. Vimac is my attempt to | implement Vimium on an OS level. | | I have shared this app on Reddit about a year ago. Since then, | the notable changes would be a major performance buff in | webkit/electron, force keyboard layout, and reducing the | overwhelming no. of hints to what is just "clickable". | | It is open source at https://github.com/dexterleng/vimac/. | | Do let me know if you have any questions! | atsaloli wrote: | Thank you!! Can't wait to try this out. | pazimzadeh wrote: | I don't know vim. If I get used to this, will I be halfway to | knowing vim? | jagged-chisel wrote: | Nope. This is really just making your GUI work better with | the keyboard. Editing text is fundamentally different than | manipulating a graphical interface, so this doesn't mimic any | vim functionality (with one exception: when this app is in | scroll mode, you can use HJKL keys to scroll windows | contents.) | dexterleng wrote: | It's very much like Vimium, which is nothing like Vim, so no. | I see Vimium being referred to as "vim bindings" for chrome | which I never got. Maybe someone could enlighten me on this. | nchudleigh wrote: | well i mean vimium implements a lot of similar bindings | from com. | | navigation visual selection find scroll | johne20 wrote: | Great work! I am just trying it out, but realized it doesn't | highlight links/buttons in Firefox. Is that outside the scope | of this tool? If so, do you just suggest using Vimac in | combination with Vimium? | dexterleng wrote: | It actually technically could support Firefox/chrome, but I | have disabled it because enabling accessibility on chrome | breaks window managers. | | Also vimium will always be faster than vimac due to how slow | the accessibility API is. | | I would recommend using both for now. | mkskm wrote: | One missing piece worth noting is Vimium doesn't seem to | support navigating preferences, bookmarks, etc. in Firefox | or anything in the toolbar. Not sure if that is possible | solely with the WebExtensions API. | nikivi wrote: | One issue I had with running this aside from it taking quite a | lot of CPU is that when opening Discord, I'd always get a | warning that I am using a screen reader. | | Was it solved in new versions? | dexterleng wrote: | > it taking quite a lot of CPU | | Yes that is fixed. | | The reason for slow performance + high cpu usage on | electron/webkit apps was just the sheer amount of mach ipc | calls (from the many many <div> layers) needed to be made to | fetch the entire UI element tree. | | This has been fixed two days ago Heres the solution for those | interested: https://github.com/dexterleng/vimac/pull/190 | | I was also using a bunch of async queues instead of just a | single NSThread which likely contributed to high cpu usage, | and that has also been fixed. | | > warning that I am using a screen reader. | | Nope, you should get this warning, although it was a one time | prompt for me. This is because Accessibility is opt-in for | electron apps for performance reasons, and I have to ask for | it through setting the AXManualAccessibility attribute (see h | ttps://electronjs.org/docs/tutorial/accessibility#assistive.. | .), which I guess triggers the prompt. | fny wrote: | Why did you choose to use electron for something so | specific to MacOS? | | Awesome project by the way. This will save my wrists from a | lot of pain. | hibiscus4156 wrote: | > Why did you choose to use electron for something so | specific to MacOS? | | I think you're mistaken. OP is referring to Discord as | the webkit/electron app. | messe wrote: | I don't think they did. They're just talking about the | high cpu usage when trying to navigate an electron app | while using vimac. | dexterleng wrote: | The app is written in Swift, not Electron. | | Vimac had major performance issues previously when | traversing the UI Element tree of Electron/Webkit apps. | victoriasun wrote: | I love this! As a colemak-dh user, is there a way to easily re- | kebind hjkl? | dexterleng wrote: | Yes, you can do so! | nchudleigh wrote: | yes yes yes yes yes. can't wait to try this out. heavy vimium | user | mkskm wrote: | This is great, thank you! Although, the name seems like a bit of | a misnomer since there's not much in common with vim aside from | the HJKL keys. It's more like EasyMotion or avy-mode. | wakkaflokka wrote: | I have been looking for something like this for a LONG time. | Impressive! My ideal state is to be able to navigate anything and | everything with VIM keybindings. Including the physical world :) | steffan wrote: | I'm sure there's a way to hack this into a Tesla | RMPR wrote: | I remember when you posted this on Reddit[0] very happy you | continued to work on it. At one point I might even switch to | macOS :) | | 0: | https://reddit.com/r/vim/comments/dc95by/vimac_vimium_for_ma... | [deleted] | [deleted] | toptal wrote: | Can someone please create this for Cubase, Logic, etc. | stefanfisk wrote: | I've been thinking about implementing something like this for | years - it's great to see that someone actually went ahead and | did it! | | The accessibility API is one thing that I really miss since | mostly leaving macOS for Linux. Most apps support it in at least | a rudimentary way, and it allows for a bunch of neat tricks. | tkainrad wrote: | Great job! Always amazing when a single person sees a problem and | engineers the hell out of it. | | For everyone interested in efficient keyboard usage: You might | enjoy KeyCombiner - a web app to organize, learn, and practice | keyboard shortcuts. | | https://keycombiner.com/ | ndand wrote: | Very handy! | | My right wrist used to pain a lot because of excessive mouse | usage. I had tried out various keyboard-driven apps but I didn't | find any app practical enough for my needs, so I made one. | | I'd like to share here my "generic" keyboard-driven navigation | app for Windows: | | https://github.com/ndandoulakis/SlickCursor | siproprio wrote: | I really want a version of this for Windows as well! | dmortin wrote: | I wonder why people are downvoting you for asking for a windows | version. Is everyone a mac user here? | ziftface wrote: | Would also love a gnome/linux version. | dexterleng wrote: | I have yet to try it out: | | https://github.com/zsims/hunt-and-peck | tcoff91 wrote: | This is incredible! wow! | xenonite wrote: | macOS 10.14 or later required. (Still on 10.11 here) | Fang_ wrote: | 10.12 reporting in. Wondering how hard it would be to backport | this... I'm not too familiar with ~macdev. | vivab0rg wrote: | macOS 10.13 is the last macOS supported on my one and only | Macbook Air 13" Mid-2011 :( ___________________________________________________________________ (page generated 2020-08-30 23:00 UTC)