mooltipass / moolticute

Mooltipass crossplatform daemon/tools
GNU General Public License v3.0
143 stars 67 forks source link

Moolticute not quitting properly on macOS Monterey #1090

Closed iurdev closed 1 year ago

iurdev commented 1 year ago

Expected behavior

When i quit the program (CMD + Q) the process is killed. I can reopen Moolticute on macOS without using the terminal to manually kill the process.

Actual behavior

I quit the program and Moolticute is not completly closed. I cannot reopen the program without firstly going into the terminal, pgrep moolticute and killing the provided PID manually.

Step by step guide to reproduce the problem

  1. Open Moolticute on macOS
  2. Quit Moolticute on macOS
  3. Try to reopen Moolticute on macOS

Moolticute Version

v1.00.0

Operating System

MacOS Monterey 12.6.1

limpkin commented 1 year ago

does right clicking on the tray icon and then selecting "quit" work?

iurdev commented 1 year ago

does right clicking on the tray icon and then selecting "quit" work?

No, unfortunately not. Same result if i try to quit it through the top bar context menu ("Datei" --> "Beenden").

This is not a new issue - i had it with previous versions as well. I can confirm that the bug is also present on a friends MacBook Air M1.

Unrelated question - is providing a Big Sur sized App icon for the Mac version planned?

iurdev commented 1 year ago

I just read the changelog for v1.00.0 - just a quick note.

CMD + Q should minimize Moolticute according to the changelog. CMD+Q is the global command to quit apps on macOS. CMD+M is the usual command to minimize apps on macOS.

ananthb commented 1 year ago

I also have some new found weirdness on macOS. If I close the moolticute window I'm unable to reopen it without executing pkill moolticute first. Also when moolticute doesn't open, plugging in the mooltipass usually throws up a 'Too Many Connections' error or something similar on the device's screen.

limpkin commented 1 year ago

The "too many connections" error means that a bluetooth device is trying to connect to the Mini BLE with outdated/invalid pairing data

ananthb commented 1 year ago

Yep that makes sense. I had reset my device but the mac was still trying to connect.

Another slight weirdness after installing the new moolticute is that I now get three dock icons for moolticute whenever I run it.

Screenshot 2022-12-02 at 09 39 24
limpkin commented 1 year ago

I'm wondering if a new icon doesn't popup every time an update is installed.... @deXol

ananthb commented 1 year ago

I tried removing them after the update but these three keep coming back.

limpkin commented 1 year ago

@deXol do you experience this as well?

ananthb commented 1 year ago

The extra icons are now gone from my dock. Not sure what has changed but it disappeared after a reboot. I reboot very infrequently so maybe something lingered from the previous moolticute update.

Also, I can't re-open the closed moolticute window from the dock icon. But, I can reopen it from the notification tray icon. This is perfectly functional for me.

iurdev commented 1 year ago

@limpkin for me this issue still persist. To actually quit moolticute i have to pkill moolticute.

This should therefore also be connected to this issue #1146

jms1voalte commented 4 months ago

This is happening for me as well. (Moolticute v1.03.0 on macOS 14.4.1 Intel.)

FWIW, I didn't realize there was a background widget involved, I use Bartender to hide many of the menu bar items. I just right-clicked the menu item and chose "Quit", and while it did take about 6-7 seconds to shut down, it did fully shut down, and then I was able to run the app again. So that's something.

Maybe Moolticute should have a setting to shut down the "background part" when the foreground UI is closed? Especially for people like me who don't use Moolticute for anything other than managing credentials on my Mooltipass devices (i.e. I don't use them for FIDO, SSH, or anything - that's what Yubikeys are for).

Also ... regardless of this as-yet-nonexistent setting, if I close the foreground program and then start it again, shouldn't it try to connect to a running background process before trying to start a new one? (Also, shouldn't the foreground process actually terminate rather than stay running with no UI?)