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".
Glad to see more people making tools around the Accessibility API. I've been working on a similar app called Shortcat (https://shortcatapp.com) almost 8 years ago (wow) but haven't had the time to properly work on it. It sounds like you're encountering a lot of the same problems I've had when I was starting out (figuring what's actionable, forcing keyboard layout etc). Let me know if you want to chat about the various problems in that space
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.
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?
It's the best trackpad out there, and all trackpads are clunky and non-ergonomic. A mouse, keyboard, touchscreen, or almost anything else is better. Due to the location of a trackpad you are guaranteed to have your wrist bent which limits how long you can work before discomfort.
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:
I had similar problems years ago and switched to a trackball. No problems since. I use a Logitech with thumb moving the ball. I keep it and keyboard at waist level with monitor at eye level.
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 :)
I made this! It's not perfect but it's most of the way there in terms of Vim motions and operators, and works in any text field. It uses the Accessibility API when available, and then falls back to raw keypresses (like alt + right arrow to simulate `w`, etc).
In the fallback mode, not all motions are available, because we can't read cursor position or text field value without accessibility support.
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.
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.
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.
The idea is great, but I don't think it'll be faster for me to navigate in Mac using vimac than using trackpad or mouse currently.
I think the thing which is not wonderful now is: in vim, you enter a mode, in that mode, you can do a series of navigation to get to the final destination. While in vimac, you enter a mode to do just one navigation and you're out of the mode, you have to press the key enter the mode again to do another navigation. This makes me feel not productive at all.
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.
awesome indeed. Any plans to support more Vim navigations, something like 'gg' and 'G' would be useful IMO. As well as the ability to use a custom 'ESC' mapping to leave the scroll mode.
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|5 years ago|reply
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!
[+] [-] _chendo_|5 years ago|reply
Glad to see more people making tools around the Accessibility API. I've been working on a similar app called Shortcat (https://shortcatapp.com) almost 8 years ago (wow) but haven't had the time to properly work on it. It sounds like you're encountering a lot of the same problems I've had when I was starting out (figuring what's actionable, forcing keyboard layout etc). Let me know if you want to chat about the various problems in that space
[+] [-] ajavascriptdude|5 years ago|reply
[+] [-] nikivi|5 years ago|reply
Was it solved in new versions?
[+] [-] johne20|5 years ago|reply
[+] [-] anoviceuser|5 years ago|reply
[+] [-] pazimzadeh|5 years ago|reply
[+] [-] victoriasun|5 years ago|reply
[+] [-] atsaloli|5 years ago|reply
[+] [-] asjldkfin|5 years ago|reply
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|5 years ago|reply
> cursor return to its old position after an action
Will do!
[+] [-] refresher|5 years ago|reply
[+] [-] seventhtiger|5 years ago|reply
[+] [-] klysm|5 years ago|reply
[+] [-] dexterleng|5 years ago|reply
[+] [-] ndand|5 years ago|reply
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
[+] [-] mjcohen|5 years ago|reply
[+] [-] wakkaflokka|5 years ago|reply
[+] [-] steffan|5 years ago|reply
[+] [-] ivan888|5 years ago|reply
[+] [-] dbalatero|5 years ago|reply
In the fallback mode, not all motions are available, because we can't read cursor position or text field value without accessibility support.
https://github.com/dbalatero/VimMode.spoon
[+] [-] wavesplash|5 years ago|reply
[+] [-] mkskm|5 years ago|reply
[+] [-] mkskm|5 years ago|reply
[+] [-] js2sj|5 years ago|reply
I think the thing which is not wonderful now is: in vim, you enter a mode, in that mode, you can do a series of navigation to get to the final destination. While in vimac, you enter a mode to do just one navigation and you're out of the mode, you have to press the key enter the mode again to do another navigation. This makes me feel not productive at all.
[+] [-] stefanfisk|5 years ago|reply
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.
[+] [-] siproprio|5 years ago|reply
[+] [-] ziftface|5 years ago|reply
[+] [-] dexterleng|5 years ago|reply
https://github.com/zsims/hunt-and-peck
[+] [-] dmortin|5 years ago|reply
[+] [-] RMPR|5 years ago|reply
0: https://reddit.com/r/vim/comments/dc95by/vimac_vimium_for_ma...
[+] [-] tkainrad|5 years ago|reply
For everyone interested in efficient keyboard usage: You might enjoy KeyCombiner - a web app to organize, learn, and practice keyboard shortcuts.
https://keycombiner.com/
[+] [-] hackerm0nkey|5 years ago|reply
[+] [-] rado|5 years ago|reply
[+] [-] submeta|5 years ago|reply
[+] [-] justnotworthit|5 years ago|reply
[+] [-] elrostelperien|5 years ago|reply
[+] [-] rasen58|5 years ago|reply
[+] [-] unknown|5 years ago|reply
[deleted]
[+] [-] tcoff91|5 years ago|reply
[+] [-] lvturner|5 years ago|reply