/keepmenu

Dmenu/Rofi frontend for Keepass databases

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Keepmenu

PyPI - Python Version PyPI GitHub contributors

Fully featured Dmenu/Rofi/Bemenu frontend for autotype and managing of Keepass databases.

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

Installation

pip install --user keepmenu

Ensure ~/.local/bin is in your $PATH. Run keepmenu and enter your database path, keyfile path, and password.

For full installation documention see the [installation docs][docs/install.md].

Full Documentation

Installation - Configuration - Usage

Requirements

  1. Python 3.7+
  2. Pykeepass >= 4.0.0 and pynput
  3. Dmenu, Rofi, or Bemenu
  4. (optional) Pinentry
  5. (optional) xdotool or ydotool (for Wayland).

Features

  • Supports .kdbx databases, not .kdb.
  • Auto-type username and/or password on selection. No clipboard copy/paste involved.
  • Background process allows selectable time-out for locking the database.
  • Multiple databases can be unlocked and switched on the fly.
  • Use a custom Keepass 2.x style auto-type sequence.
  • Type, view or edit any field.
  • Open the URL in the default web browser.
  • Non U.S. English keyboard languages and layouts supported via xdotool or ydotool (for Wayland).
  • Edit notes using terminal or gui editor.
  • Add and Delete entries.
  • Add, delete, rename and move groups.
  • Hide selected groups from the default and 'View/Type Individual entries' views.
  • Configure the characters and groups of characters used during password generation.
  • Optional Pinentry support for secure passphrase entry.
  • Keepass field references are supported.
  • Display and manage expired passwords.
  • Add, edit and type TOTP codes.

License

  • GPLv3

Usage

keepmenu [-h] [-a AUTOTYPE] [-d DATABASE] [-k KEY_FILE]

  • Run keepmenu or bind to keystroke combination.
  • Enter database path on first run.
  • Start typing to match entries.
  • Configure config.ini as desired.
  • More detailed usage information.

Tests

To run tests in a venv: make test

Development

  • To install keepmen in a venv: make

  • Build man page from Markdown source: make man