dexterleng / vimac Goto Github PK
View Code? Open in Web Editor NEWProductive macOS keyboard-driven navigation
Home Page: https://vimacapp.com
License: GNU General Public License v3.0
Productive macOS keyboard-driven navigation
Home Page: https://vimacapp.com
License: GNU General Public License v3.0
The minimal supported OS of Vimac is macOS 10.14, but I'm using macOS 10.13 as a develop machine. So is there any way to run Vimac on macOS 10.13? Can I build Vimac on macOS 10.13 myself?
Thanks for bringing such fantastic Application to us!
I was wondering if it was possible to add a simple vim-like text edit mode with insert and normal mode for system-wide text fields. So that you could basically use vim movements in any text field. I am already using an edit in vim automator action to edit long text but for simple text input fields (e.g. iMessage) having the basic movement and edit keys would be very nice.
Something akin to the vimode.py script for the weechat IRC client would suffice imo, it simulates most basic editing commands you'd use in a single line which really isn't as complicated as it sounds (or a whole VIM emulation would be).
So the question goes to you having the experience with the MacOS accessibility options - do you think this would be possible/feasible? If you have some pointers but no time to look at an implementation - I have some limited experience with MacOS / Swift development so I could take a stab.
Thanks for such an awesome piece of software (do you have a donation page anywhere? I'd love to donate to the project to keep it going!).
On the latest upgrade of Vimac I've noticed a huge slowdown in when the links show up. I am really not sure what's causing it. :( Since the links take 5+ seconds to show up, it's now almost always faster to just use a mouse to click on things. Any way we can speed up the link hints or are there things I can do on my end to speed them up? It's not the hardware, I've got a pretty great Macbook Pro.
Is there a cache I need to flush or anything else I can do to speed this up again?
Any idea why I am getting the following error message when I attempt to run the application:
"Vimac" can't be opened because Apple cannot check it for malicious software.
This software needs to be updated. Contact the developer for more information."
Hey Dexter!
First of all, phenomenal job on vimac - it's a true pleasure to use. I was wondering if options in preferences could be implemented to customise both the page scrolling speed with J/K keys after scroll mode is set and step size. It feels a bit slow and dizzying relative to the chrome vimium extension. If that's not possible, how does one customise his own vimac to incorporate this functionality?
I am keen to contribute if you are open (would appreciate if you could point me to the implementation point in the code).
Super noticeable on my 1080p monitor.
I noticed that for ToothFairy
menubar item for example, has bound actions to both left and right click. On the left click it connects to the device and on right click it's shows the dialog with status and preferences:
@dexterleng Did you consider maybe of adding a right mouse click emulation as a feature?
I have an issue where say I am in Discord app. I have a binding to centre my mouse to middle of the app. In Discord if I do that and then activate Scroll Mode, I can start scrolling with J and K. The problem is that the mouse moves to the bottom left corner of the screen during the process and after the process stays there.
I do like the fact that the mouse moves out of the way during scroll mode. However I propose to move the mouse back to original position it was in before activating scroll mode once the scroll mode is turned off (hotkey is pressed again or app was switched).
That would be wonderful. The use case is that it's annoying as sometimes in say above Discord app case. I move mouse to middle, scroll mode activate. Then disable. Then if I enable again, I am scrolling the left sidebar, not the middle of the screen as I wanted to.
Thank you.
Thanks for the amazing app.
I have a suggestion to add an option to allow "persistent hint mode". Currently, it goes back to "normal mode" after selecting a hint. But I find more operations I want to do require multiple clicks. E.g. going to the setting page of Chrome requires 2 clicks.
For escape from scroll mode, not sure if it's applicable elsewhere. In vim ctrl+[
also escapes, and is easier to reach than the esc key.
Great project thanks!
Is it possible to download vimac via terminal? I’d love to add it to my dotfiles?
I don’t know how hard it is to distr somethinf via brew so my apologies if its a dumb question..
Thanks for the great app! As a Vimium user this is fantastic, but I noticed that switching the hints to only numbers 0-9 doesn't seem to work. I do this for Vimium as well because I find it easier to press number combinations that change regularly compared to character combinations. In vimac however, number hints show up just fine, but inputting the numeric responses don't do anything. Works fine for letters and symbols though. Maybe there aren't any keyboard listeners setup for numbers?
Thanks again!
Chromium and Firefox and other non-native applications do not enable Accessibility by default for performance reasons. You need a way to tell them to enable accessibility, and preferably not keep it on all the time. Ideally, you would only enable it right before querying for elements.
The AXEnhancedUserInterface
attribute is used by VoiceOver to tell applications that VoiceOver is enabled. Chromium waits for this to be set to true before enabling its Accessibility features. See (https://www.chromium.org/developers/design-documents/accessibility)
Chromium support through AXEnhancedUserInterface
was removed in PR #62 because the AXEnhancedUserInterface
attribute when set to 1 on an AXWindow
breaks window positioning (sluggish too) with window managers like Magnet.
Electron allows you to enable accessibility through the AXManualAccessibility
attribute, which does not have that window side-effect. Vimac currently sets this attribute to true on frontmost windows.
However, if you would like Vimac to work with Chrome, you can enable Accessibility at all times by enabling it at chrome://accessibility/
:
EDIT:
I have filed issues with Apple, Chromium, and Firefox:
https://developer.apple.com/forums/thread/659755
https://bugs.chromium.org/p/chromium/issues/detail?id=1127357
https://bugzilla.mozilla.org/show_bug.cgi?id=1664992
Would like to be able to double click on icons--is this possible already? If not, could an option be added for it?
(Didn't see this when searching issues)
There is a bit too much "redundant" hints right now. Unfortunately we cannot just show hints for elements with "actions" because apps by even Apple themselves have clickable groups/elements that do not have actions 🤷♀.
Suggestions:
Title says it all. I also vimuim in chrome, and it's very useful, but there are certain sites that have their own keyboard shortcuts built-in, so it's very handy to be able to block list them. I'd like to have the same functionality with vimac.
coming in from dexterleng/vimac-releases#43
maybe its possible with this
git clone [email protected]:jacobsalmela/tccutil.git
cd tccutil
sudo ./tccutil.py --list | grep dexter
I see few entries of your app
It would be great to be able to make the hints bigger and maybe have the ability to change their background color too. I have a bad eyesight and it can be hard to see those tiny hints
I am wondering this as it seems like this would cause a lot of CPU time to process everything in screen reader mode. Maybe I am wrong?
Is the effect negligible?
As an example, in this picture vimac highlight's some random spots on the top bar instead of hinting the channel icons which would be actually useful.
Is this because vimac uses some accessibility hints or something for figuring out what to hintify? Vimium etc. can give much more useful hints on web pages like discord's or slacks. I don't know if this is reproducable on vimac side but it would be the desirable behaviour for me as a user.
Hi,
I'm getting the following error after downloading the latest version of vimac from the wesite and trying to open it: “Vimac 2” can’t be opened because Apple cannot check it for malicious software. The software needs to be updated.
Any help would be appreciated! Thanks in advance!
the cursor often overlaps hints making it hard to see the hint text.
The file keeps changing so I ever can't do git add -A
.
How does the scrolling work? Does it detect the scrolling boundaries? How difficult would it be to implement "jump to beginning/end"? This would be handy for apps like Preview.
Makes it easier to tell overlapping hints apart.
Some people use scroll reverser apps to reverse trackpad scroll direction but do not want that to affect HJKL scroll direction.
Currently if you hit the Hint Mode hotkey a new window (OverlayWindow) will pop up and become active. This causes the existing (if any) context menu to close.
We need to look into a flow that allows Hint Mode to work after right-clicking.
eagerConcat
is used to merge observables while preserving their order, unlike RxSwift's merge
. This is so that hint text is consistent when the element tree is unchanged.
however, for each element, you have to sort it's direct children, which means time complexity is O(n * (c log c)) where n is number of elements in the tree and c is no. of direct children of a element. This is assuming each element has the same amount of children.
Is it possible to build the binary with macOS 10.11 (El Capitan) support?
Thank you for such a wonderful donation to the vim loving community.
I've recently started using vimacs. I'll often run into cases where there are so many hints it's difficult to know which one correspond to the desired control. Perhaps there could be an alternate command that only shows hint for the active application? i.e. shift+
Quite possible this is just a new user issue and there is a better way to deal with large numbers of hints in a small area.
I added it to my tap for now, so anyone can install using brew cask install pvinis/pvinis/vimac
.
For a more "official" thing, you can make a repo called homebrew-something
, make a dir called Casks
, and in there make a file called vimac.rb
. In that file put what I have https://github.com/pvinis/homebrew-pvinis/blob/master/Casks/vimac.rb here.
Then anyone can install it using brew cask install dexterleng/something/vimac
.
Replace something
with something more meaningful I guess :p
Hi— thanks for making such a powerful tool.
For the last few months I've been using Vimari https://github.com/televator-apps/vimari (Safari port of Vimium).
I noticed that Vimac creates far more hint options than Vimari, given the same page.
It seems like there is a ton of extra noise in there, which makes it not as easy to use.
Vimari:
Vimac:
Animated:
Hello,
I would appreciate to be able, to select the visibility of the icon on the menu-bar in the preferences. Since every App is showing there and it looks kind of messy.
Nice work by the way!
Currently it keeps changing if you enable/disable hint mode despite the content being unchanged.
It would be great if it the settings were grouped by General, Hint Mode, and Scroll Mode
I want to bind vimac shortcut to more general key, however, it may conflict with some app shortcut.(e.g. iterm2, emacs). It would be much appreciated if vimac supports disable in some app.
It seemed natural to me to just dismiss an alert with Vimac, but then I realised, oops:
@dexterleng Is it possible to map the alerts, since they are persistent on the screen?
Right click (or other clicks) doesn't work sometimes due to the overlay window.
To replicate:
Try right clicking the bookmark link in Chrome with Vimac. You will notice similar behaviour when right clicking the bookmark link when Spotlight Search is active.
Dvorak typist here. It would be nice to be able to customize navigation keys. HJKL isn't exactly friendly on a Dvorak keyboard.
When I try to use vimac on chrome dev tools, I get weird results.
Version: 0.3.10
OS X version: 10.15.5 (19F101)
Desired Behavior: Tabs and other interactive objects have hint associated with them.
Actual behavior: Minimal hints; lots of to tabbing.
See the attached screenshot. I've had it work maybe one time very effectively on chrome tools before, but I can't figure out why it would do it in one case not the other.
Is there any way to filter the hints according to underlying text?
Like enter Hint Mode => type characters => hints filter out only the relevant elements based on query
Currently Vimac rotates hints z-index randomly by:
Ideally we would do it like Vimium:
This way we can minimize the no. of times the user has to press SPACE to rotate.
AFAIK there is no documented method to get the z-index of an NSView
. It appears in the order that you add them to the superview.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.