Skip to content

Latest commit

 

History

History
99 lines (76 loc) · 3.57 KB

README.md

File metadata and controls

99 lines (76 loc) · 3.57 KB

Keepmenu

PyPI - Python Version PyPI GitHub contributors

Fully featured Bemenu/Dmenu/Wmenu/Fuzzel/Rofi/Tofi/Wofi/Yofi 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. Bemenu, Dmenu, Wmenu, Fuzzel, Rofi, Tofi, Wofi, or Yofi
  4. xsel or wl-copy
  5. (optional) Pinentry
  6. (optional) xdotool (for X), ydotool or wtype(for Wayland), dotool (X or Wayland).

Features

  • Supports .kdbx databases, not .kdb.
  • Auto-type username and/or password on selection. Select to clipboard if desired (clears clipboard after 30s on X11 or after 1 paste on Wayland).
  • 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.
  • 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.
  • Add, edit, type and delete custom attributes.

License

  • GPLv3

Usage

keepmenu [-h] [-a AUTOTYPE] [-c CONF_FILE] [-C] [-d DATABASE] [-k KEY_FILE] [-t]

  • 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 keepmenu in a venv: make
  • Build man page from Markdown source: make man
  • Using hatch:
    • hatch shell: provides venv with editable installation.
    • hatch build && hatch publish: build and publish to Pypi.
  • Using nix:
    • nix develop: Provides development shell/venv with all dependencies.
    • make test and hatch build/publish work as usual.