Testing Site Testing Site

skip to navigation
skip to content

keepmenu 0.2.1

Dmenu interface for Keepass

Select entries from Keepass databases using dmenu or Rofi and type username and/or password into the active window.

Inspired in part by Passhole, but I wanted something more dmenu and less command line focused.

I’m very aware of pass and passmenu, but I’ve found that the Keepass options for other platforms are much easier to use, especially for the non-technically oriented. Thus…synchronized passwords and everyone is happy!


  • Set multiple databases in the config file, including key files.
  • Auto-type username and/or password on selection. No clipboard copy/paste involved.
  • Enter database passphrase and optionally gpg encrypt and cache it using an existing gpg-agent key.
  • Set cache expiration time for saving the database passphrase
  • Optional Pinentry support for secure passphrase entry.
  • Possible future features: + Add/edit/delete entries + View/copy password notes


  • MIT


  1. Python 2.7+ or 3.2+
  2. Pykeepass, PyUserInput, and pygpgme. Install via pip or your distribution’s package manager, if available.
  3. Dmenu. Basic support is included for Rofi, but most Rofi configuration/theming should be done via Xresources.
  4. (optional) Pinentry. Make sure to set which flavor of pinentry command to use in the config file.


  • Copy config.ini.example to ~/.config/keepmenu/config.ini
    • Add your database(s) and keyfile(s)
    • Add gpg_key if you want the database passphrase cached
    • Set the dmenu_command to rofi if you are using that instead
  • If using Rofi, you can try some of the command line options in config.ini or set them using the dmenu_command setting, but I haven’t tested most of them so I’d suggest configuring via .Xresources where possible.
  • If using dmenu for passphrase entry (pinentry not set), dmenu options in the [dmenu_passphrase] section of config.ini will override those in [dmenu] so you can, for example, set the normal foreground and background colors to be the same to obscure the passphrase.


If you choose to store your database password into config.ini, make sure to chmod 600 config.ini. This is not secure and I only added it as a convenience for testing.


  • Run script or bind to keystroke combination
File Type Py Version Uploaded on Size
keepmenu-0.2.1-py2.py3-none-any.whl (md5, pgp) Python Wheel py2.py3 2018-02-13 10KB
keepmenu-0.2.1.tar.gz (md5, pgp) Source 2018-02-13 6KB