godbout / kindaVim.docs

Ultimate Vim Mode for macOS
https://kindavim.app
625 stars 4 forks source link

The Wizard doesn't properly handle Neovide.app when launched from `neovide` CLI #203

Closed hakamadare closed 1 year ago

hakamadare commented 1 year ago

i use Neovide (https://neovide.dev/) 0.11.2 as my vim GUI, currently running on MacOS Ventura 13.6 on Intel. I'd like to configure this app in the Off group 😀 but unfortunately my attempts to do so haven't been successful so far.

i'm currently running kindaVim 58.

Neovide is installed on my system via Homebrew cask, at /Applications/Neovide.app. i can drag that app into The Wizard: Screenshot 2023-09-28 at 11 50 58 AM

and then click "Add to Off": Screenshot 2023-09-28 at 11 52 35 AM

however, when Neovide is foregrounded, pressing Escape still triggers kindaVim; the menu bar icon changes and the opaque overlay appears over the rest of the screen, and kindaVim is clearly intercepting my keystrokes.

i am suspicious that this has something to do with how the neovide CLI tool is implemented; i need to launch Neovide by running neovide from a shell, since my Vim config depends on shell environment variables, and double-clicking on /Applications/Neovide.app doesn't successfully launch the app. when i've launched Neovide from the CLI tool, Activity Monitor tells me that its parent process is launchd: Screenshot 2023-09-28 at 12 05 34 PM

if you're inspecting the process table and using that to identify the running application, then i think i can see how this would produce the behavior i'm seeing? anyway, i realize that my use case is kind of weird; if you have any idea of how i could work around this issue i'd appreciate it (should i add launchd to the Off group?)

godbout commented 1 year ago

ok, can you please check those two issues first and see if it helps:

if it doesn't help then i'll have a deeper look. thanks.

hakamadare commented 1 year ago

omg the discussion in #119 is pure joy <3 whether or not my issue gets resolved, reading that issue made my day, thank you.

so: i am already using the cask version of Neovide. based on the troubleshooting in #119, i explicitly launched /Applications/Neovide.app/Contents/MacOS/neovide from the shell, and got a running Neovide app, and kindaVim properly ignores it, yay!

however, when i quit that Neovide process and run /usr/local/bin/neovide to launch Neovide, i once again see the behavior from before, in which kindaVim fails to ignore the running process.

plot twist though:

$ ls -l /usr/local/bin/neovide
lrwxr-xr-x@ 1 me  wheel  48 Sep 11 11:59 /usr/local/bin/neovide -> /Applications/Neovide.app/Contents/MacOS/neovide

so in each case it's the same binary being executed, but in one case kindaVim works as expected and in the other it doesn't.

i can work around it by alias neovide=/Applications/Neovide.app/Contents/MacOS/neovide in my shell, so this issue is no longer blocking me, but i'm really surprised by this behavior.

godbout commented 1 year ago

sorry for the late. had to sleep ☹️

what i'm gonna say next may be horseshit, but my guess is bundle IDs are linked to, well, bundles. not cli tools. so when you run neovide from /usr/local/bin, even if it's a symlink, macOS doesn't feel (yeah it's all about feelings nowadays sorry) that you're launching a, or from a, bundle app and therefore there's nothing to identify what's running. the problem is not the binary itself, the problem is from where/how it's launched.

but if i understand you correctly, you could just launch Neovide.app from the terminal. with open -a Neovide. if you do that all your shell environment should be available to Neovide. i do that for example with TablePlus that needs SSH key files to connect to my servers. i don't have SSH files, coz my SSH keys are actually GPG keys. if i open TablePlus by double clicking (LOOOOOOOL. i never do that. but ok opening from Alfred is similar) then i'm screwed because TablePlus is indeed gonna look for SSH keys and/or ask me for them. but if i launch with open -a TablePlus, all my zsh environment is handled, so when TablePlus needs SSH keys, zsh forward to GPG, then GPG prompts me for my GPG Key password, and then it's party time.

hakamadare commented 1 year ago

you could just launch Neovide.app from the terminal. with open -a Neovide

yup, works perfectly 💥 thank you again!

godbout commented 1 year ago

my pleasure. enjoy.