1. Set the custom keyboard shortcut sh -c 'pgrep -i keepassxc > /dev/null || keepassxc' to Alt+V
  2. Keep KeePassXC's default autotype prompt keybinding, which is Alt+V

One disables the other. I thought that going the grep route might make the program opener conditionally inactive, but apparently that's not doing anything. I would really like to avoid using a separate keybinding if possible. Otherwise, I guess I'd just have to have it open on launch.

all 10 comments

sorted by: hot top controversial new old
[–] 10 points 5 months ago* (last edited 5 months ago) (3 children)

The problem is that your desktop environment's shortcut handler intercepts Alt+V before KeePassXC ever sees it, so the internal keybinding never fires. And when pgrep finds the process running, your command simply does nothing.

The fix is to use KeePassXC's --auto-type CLI flag, which sends the auto-type signal to a running instance:

Command for your custom shortcut (Alt+V):

bash -c 'pgrep -x keepassxc > /dev/null && keepassxc --auto-type || keepassxc'

Not sure how keepass behaves though. Maybe you don't need the condition at all and can just run keepassxc --auto-type from the shortcut and if there is no running instance it will start it.

  • source
  • hideshow 3 child comments
  • [–] [S] 2 points 5 months ago* (last edited 5 months ago) (2 children)

    Wow, it works; you're a genius!!! Thanks so much!!! Hmm, Lemmy doesn't seem to have post flair, but it does allow title-editing, so I'll just update the post title, haha.

    @HelloRoot@lemy.lol, it is actually failing after all. It only pulls up the auto-type window the first time. Then it only summons the main window from thereafter until it closes...

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 5 months ago* (last edited 5 months ago) (1 child)

    Yeah you probably have to play around with the flags to figure out the right approach. I can not look into it right now

  • source
  • parent
  • hideshow 1 child comment
  • [–] 2 points 5 months ago

    If you use Hyperland, you can simply setup the keybind in hypr.config (also makes it easier to change your default file manager, etc)

  • source
  • [–] 0 points 5 months ago (4 children)
  • [–] [S] 1 point 5 months ago (3 children)
  • [–] 1 point 5 months ago (2 children)

    Do you mean the one about hyprland? That's the only other comment I see

  • source
  • parent
  • hideshow 2 child comments
  • [–] 2 points 5 months ago (1 child)

    Interesting... There's a comment here by @HelloRoot@lemy.lol, so perhaps your instance doesn't federate with lemy.lol?

    In their comment they suggested this command:

    bash -c 'pgrep -x keepassxc > /dev/null && keepassxc --auto-type || keepassxc'
    
  • source
  • parent
  • hideshow 1 child comment