Skip to main content

Dmenu frontend for Keepass databases

Project description

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 or dotoolc (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.
  • Run once mode to copy or print password to stdout

License

  • GPLv3

Usage

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

  • 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.
  • GitHub Action will upload to TestPyPi on each push to main. To create a GitHub and PyPi release, create a new tag (formatting below) and push tags.

      <tag name on first line>
    
      * Release note 1
      * Release note 2
      * ...
    

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-1.5.0.tar.gz (40.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

keepmenu-1.5.0-py2.py3-none-any.whl (72.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file keepmenu-1.5.0.tar.gz.

File metadata

  • Download URL: keepmenu-1.5.0.tar.gz
  • Upload date:
  • Size: 40.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for keepmenu-1.5.0.tar.gz
Algorithm Hash digest
SHA256 6358ec82c8b20f1f852d736c07f91f2bcec5e342e440ac1ae9165f9b36565b5e
MD5 7b3ab70260681dd3c07beba3132d16bc
BLAKE2b-256 601e90eca534c49a26e795757e841be1dcab9a93a75d0b09e67ffdeaf70e4a18

See more details on using hashes here.

Provenance

The following attestation bundles were made for keepmenu-1.5.0.tar.gz:

Publisher: main.yml on firecat53/keepmenu

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file keepmenu-1.5.0-py2.py3-none-any.whl.

File metadata

  • Download URL: keepmenu-1.5.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 72.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for keepmenu-1.5.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 689e7fff4d91a27709f96cd43cad5884bd435947b879e9704b27674f0e33ff9a
MD5 255351ec285a766999d6e8bc2e4806d9
BLAKE2b-256 206b81b911eb6d1f0f44a109c0247ee015bd3050f2766dc34de0ba68bcbcc010

See more details on using hashes here.

Provenance

The following attestation bundles were made for keepmenu-1.5.0-py2.py3-none-any.whl:

Publisher: main.yml on firecat53/keepmenu

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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