Skip to main content

Dmenu interface for Keepass

Project description

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!

Features

  • Prompts for and saves initial database and keyfile locations if config file isn’t setup before first run.

  • Set multiple databases in the config file, including key files.

  • Auto-type username and/or password on selection. No clipboard copy/paste involved.

  • Alternatively, select any single field and have it type into the active window. Notes fields can be viewed line-by-line from within dmenu and the selected line will be typed.

  • 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

License

  • MIT

Requirements

  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.

Installation

  • Installation

    • In a virtualenv with pip. Link to the executable in <path/to/virtualenv/bin/keepmenu>

      mkvirtualenv keepmenu
      pip install keepmenu
    • From git. Just clone, install requirements and run

    • Available in Archlinux AUR.

  • If you start keepmenu for the first time without a config file, it will prompt you for database and keyfile locations and save them.

  • Copy config.ini.example to ~/.config/keepmenu/config.ini, or use it as a reference for additional options.

    • 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.

Usage

  • Run script or bind to keystroke combination

  • Hit Enter immediately after dmenu opens (”View/Type individual entries”) to switch modes to view and/or type the individual fields for the entry.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

keepmenu-0.3.0.tar.gz (8.7 kB view hashes)

Uploaded Source

Built Distribution

keepmenu-0.3.0-py2.py3-none-any.whl (13.3 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page