MacPass icon indicating copy to clipboard operation
MacPass copied to clipboard

[Beta] Menubar Plugin

Open georgesnow opened this issue 6 years ago • 19 comments

https://github.com/georgesnow/MacPassRevealer/ if anyone is interested it is beta. User feedback is welcome it is considered "beta". So far in my testing it works well.

georgesnow avatar Jun 05 '19 19:06 georgesnow

@mstarke just an update on the plugin. i have 2 branches. master - this most general/simple functionality, but I started a second branch that implements a popover view (UI/UX is not my strong area, but functionality is all there).

I was starting to look at implementing the other functionally i had laid out previously. bundle "aware" - returns entries based on the current bundle, hide the dock icon, lock current database, and possibly query an unlocked database. However, i think i am hitting the limit of what i can do within the APIs tat are available to the plug-ins.

Curious your thoughts on the direction? I would like to take it further and there is some desire on my part because I want the functionality. Would you and do you want to open the plug-in API further to allow for me to try and build the next set of functionality or is it something you would want to pull back into the core app at this point?

georgesnow avatar Jun 13 '19 19:06 georgesnow

I'm open for changes to the API since it's a working set so go ahead on what you might need.

mstarke avatar Jun 14 '19 13:06 mstarke

Ok cool. I will look more closely what is already available. The areas I am focusing on now is search/querying a database and locking a database. The one thing I am pretty sure I didn’t see was the ability to lock a database through the api.

georgesnow avatar Jun 14 '19 13:06 georgesnow

@mstarke would it be possible for you to add the ability to lock the current (and or all) open databases into the API?

also possibly the ability to specify focus (I want to provide the option for the focus to be the search field of an unlocked database when bringing MacPass forward)?

georgesnow avatar Jul 08 '19 19:07 georgesnow

As the plugin sees everything MacPass has, you can directly call lockDatabase on MPDocument. But I want to move all this API into a seperate one to decouple plugins from the MacPass source and move to a dedicated PluginAPI (via MPPluginHost and the lot)

mstarke avatar Jul 09 '19 07:07 mstarke

I still think you plugin is something work folding into MacPass as core functionality and hence no API changes to the PluginAPI should be needed but I will take your proposals into consideration.

mstarke avatar Jul 09 '19 07:07 mstarke

ah cool. didn't realize that, but now looking at MPHTTP I see you import the other headers. I will give this go. thanks!

i still agree as you said before. that moving it into the core code makes sense. I am still working and figuring out how to set up the user preferences aspect. I have also been looking at moving away from using Carbon for HotKeys to Cocoa NSEvents. since technically Carbon is deprecated as of 10.8 and Apple keeps removing more it with each passing year. I have tested this out using the Cocoa NSEvents, which works. however, there are some caveats I noticed.

Just a side note: I am not sure I should be the one to merge my code into the core code. I have updated the copyright and licensing (MIT).

georgesnow avatar Jul 10 '19 13:07 georgesnow

@mstarke - well, I got the locking database working. so thats awesome! And I got preliminary Cocoa HotKeys working as well. I am going work on figuring out the Plugin Settings GUI part. as you saw I had tried with ATUrl plugin. I am going to revisit this with both plugins.

georgesnow avatar Jul 10 '19 16:07 georgesnow

@mstarke if you don't mind checking out the plugin and provide any feedback. I added some features and incorporated the preference settings for the plugin. I will work getting preferences setup for the ATUrl plugin.

https://github.com/georgesnow/MacPassRevealer/

georgesnow avatar Jul 12 '19 19:07 georgesnow

compiled beta version on the above GitHub site.

georgesnow avatar Jul 15 '19 19:07 georgesnow

@mstarke added user customized hotkey - the plugin is now actually useful and customizable. would you consider hosting as signed plugin? Before it gets moved into the core code. I wanted some user feedback ie other menu options that make sense etc...


just side notes/things i couldn't get working - improvements -

how to land focus/cursor in the search box when activating the app

add a menu option to open preferences window and hide/show MacPass

Hide MacPass dock icon

georgesnow avatar Jul 17 '19 17:07 georgesnow

Hey @georgesnow have you figured out how to auto-focus the search box? This (and what you've already done - a global hotkey to open MacPass) are the killer features (for me) that MacPass is missing that Keepass on Windows has.

Thanks for all your work so far on this!

madmatt avatar Jul 30 '19 04:07 madmatt

@madmatt not yet. However, I got an idea how to do it. Curious do you usually have more than one database open? I will keep you posted here either way

georgesnow avatar Jul 30 '19 11:07 georgesnow

Hey @georgesnow, that's great news! I only ever use one database. My workflow on Windows is:

  • Press Ctrl-Shift-K to open Keepass
  • Keepass focuses on the password field, I enter the master password and hit Enter (the key file is already populated and remembered)
  • When Keepass unlocks the database, the search field is focused, I type in what I'm searching for and hit enter
  • If at least one entry is found, the focus moves to the search results list so I can use arrow keys to highlight the entry I want and hit the Auto-type key (mine is custom, I think it's Command-T on Mac).
  • Putting Keepass into the background (during autotype) automatically locks the database and minimises back to the tray again

It's quite a specific workflow and I'm not expecting to get all of that on MacPass by any stretch, but something similar to it would be awesome. I'm trying hard to avoid using the mouse for common tasks to minimise the possibility of getting RSI etc.

MacPass is by far the closest thing I've found on Mac that mimics Keepass on Windows, IMO the main thing it's missing is the auto-focus on search field when unlocking the database, and auto-focusing on the search results after a successful search. The global hotkey to launch the app is nice, but OSX already has nice options for that (Spotlight, Alfred) that are way better than Windows.

madmatt avatar Jul 30 '19 11:07 madmatt

@madmatt ok I got it working. I am doing some little further testing before posting an updated plugin. and your workflow is actually very similar to mine.

One other question would the search context of previous app be helpful? so if you have iTerm or Remote Desktop as the front most app before you trigger the keyboard shortcut to show macpass it is provided as the search initial results (basically app aware), but still lands the focus in the search box? so you could just start typing and get new results.

I would probably make it a user preference if I fully implement the "app aware" and also it might need some user specific ones to match. just getting an idea of peoples workflow/expectations

georgesnow avatar Jul 31 '19 19:07 georgesnow

Oh I just noticed do you leave your databas locked al the time? I am not sure I can make the plugin move focus to the search field after you unlock the database. I will need to dig deeper to see if I can figure that out

georgesnow avatar Jul 31 '19 20:07 georgesnow

@madmatt check out the release page. lands focus in the search field(also signed version). if you run into issue please open a ticket on the MacPassRevealer page. Let me know how it works for you

https://github.com/georgesnow/MacPassRevealer/releases

georgesnow avatar Aug 05 '19 12:08 georgesnow

@georgesnow This is fantastic, amazing work! This fixes my biggest gripe with MacPass, and would make an awesome addition to the core app.

I've raised one small bug on the GitHub repo around needing to select 'Force loading of incompatible plugins', but once I figured that out it works perfectly!

madmatt avatar Aug 10 '19 10:08 madmatt

@mstarke just an update on the plugin. i have 2 branches. master - this most general/simple functionality, but I started a second branch that implements a popover view (UI/UX is not my strong area, but functionality is all there).

I was starting to look at implementing the other functionally i had laid out previously. bundle "aware" - returns entries based on the current bundle, hide the dock icon, lock current database, and possibly query an unlocked database. However, i think i am hitting the limit of what i can do within the APIs tat are available to the plug-ins.

Curious your thoughts on the direction? I would like to take it further and there is some desire on my part because I want the functionality. Would you and do you want to open the plug-in API further to allow for me to try and build the next set of functionality or is it something you would want to pull back into the core app at this point?

@georgesnow if you need any UI/UX suggestion I'd be happy to help

MEPoss avatar Jun 08 '21 08:06 MEPoss