All Projects → firecat53 → Keepmenu

firecat53 / Keepmenu

Licence: gpl-3.0
Dmenu/Rofi frontend for Keepass databases

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Keepmenu

kpmenu
Dmenu/rofi interface for KeePass
Stars: ✭ 21 (-80%)
Mutual labels:  rofi, keepass
Polybar Kdeconnect
KDEConnect module for Polybar
Stars: ✭ 94 (-10.48%)
Mutual labels:  rofi
Keeanywhere
A cloud storage provider plugin for KeePass Password Safe
Stars: ✭ 496 (+372.38%)
Mutual labels:  keepass
Dotfiles
My dotfiles, managed with GNU stow
Stars: ✭ 56 (-46.67%)
Mutual labels:  rofi
Dotfiles
🐲 My Arch Linux config [i3-gaps + i3blocks + Zsh + Spacemacs + Rofi + Alacritty + Neofetch]
Stars: ✭ 725 (+590.48%)
Mutual labels:  rofi
I3 Quickterm
A small drop-down terminal for i3 and sway
Stars: ✭ 76 (-27.62%)
Mutual labels:  rofi
Tusk
🐘 🔒 KeePass-compatible browser extension for filling passwords.
Stars: ✭ 452 (+330.48%)
Mutual labels:  keepass
Dots
A Repository For Config Files / Dotfiles / Themes / Color Schemes / Etc...
Stars: ✭ 100 (-4.76%)
Mutual labels:  rofi
Passafari.safariextension
Extensions to allow Safari to auto form-fill passwords via KeePassHTTP
Stars: ✭ 86 (-18.1%)
Mutual labels:  keepass
Ntfd
A lightweight notification daemon for fancy desktop integrations
Stars: ✭ 44 (-58.1%)
Mutual labels:  rofi
Nmcli Rofi
A simple manager for network connections using rofi and nmcli
Stars: ✭ 39 (-62.86%)
Mutual labels:  rofi
Dotfiles
🌸 Aesthetic OpenboxWM Environment (Completed Setup)
Stars: ✭ 873 (+731.43%)
Mutual labels:  rofi
Dotfiles
🐧 Configuration files
Stars: ✭ 81 (-22.86%)
Mutual labels:  rofi
Authpass
AuthPass - Password Manager based on Flutter for all platforms. Keepass 2.x (kdbx 3.x) compatible.
Stars: ✭ 591 (+462.86%)
Mutual labels:  keepass
Libkeepass
Python module to read KeePass 1.x/KeePassX (v3) and KeePass 2.x (v4) files
Stars: ✭ 94 (-10.48%)
Mutual labels:  keepass
Rofi Themes
Themes for Rofi
Stars: ✭ 488 (+364.76%)
Mutual labels:  rofi
Dotfiles
Get ready for dotfiles. Contains i3, i3blocks, rofi, dunst, picom, vim, tmux, and zsh.
Stars: ✭ 985 (+838.1%)
Mutual labels:  rofi
Winhellounlock
KeePass 2 plugin to automatically unlock databases with Windows Hello
Stars: ✭ 61 (-41.9%)
Mutual labels:  keepass
Awesome Keepass
Curated list of KeePass-related projects
Stars: ✭ 99 (-5.71%)
Mutual labels:  keepass
Dotfiles
My dotfiles managed by GNU Stow - Arch, i3-gaps, bspwm, ncmpcpp, (neo)vim, zsh etc.
Stars: ✭ 99 (-5.71%)
Mutual labels:  rofi

Keepmenu

.. Warning:: Keepmenu now depends on pykeepass>=4.0.0. It will break if you are using a current distribution-packaged pykeepass. The easiest way to update pykeepass is:

        pip install --user -U pykeepass

Fully featured Dmenu/Rofi frontend for managing Keepass databases.

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

  • NOTE Only support .kdbx databases, not .kdb
  • Auto-type username and/or password on selection. No clipboard copy/paste involved.
  • Use a custom Keepass 2.x style auto-type sequence if you have one defined (except for character repetition and the 'special commands'). Set it per entry or set a default in the config file for all entries. Disable autotype for an entry, if desired.
  • Select any single field and have it typed into the active window. Notes fields can be viewed line-by-line from within dmenu and the selected line will be typed when selected.
  • Open the URL in the default web browser from the View/Type menu.
  • Alternate keyboard languages and layouts supported via xdotool or ydotool (for Wayland)
  • Edit entry title, username, URL and password (manually typed or auto-generate)
  • Edit notes using terminal or gui editor (set in config.ini, or uses $EDITOR)
  • Add and Delete entries
  • Rename, move, delete and add groups
  • Prompts for and saves initial database and keyfile locations if config file isn't setup before first run.
  • Set multiple databases and keyfiles in the config file. Switch databases on the fly.
  • Hide selected groups from the default and 'View/Type Individual entries' views.
  • Keepmenu runs in the background after initial startup and will retain the entered passphrase for pw_cache_period_min minutes after the last activity.
  • Configure the characters and groups of characters used during password generation in the config file (see config.ini.example for instructions). Multiple character sets can be selected on the fly when using Rofi.
  • Optional Pinentry support for secure passphrase entry.
  • Keepass field references_ are supported.

License

  • GPLv3

Requirements

  1. Python 3.4+. Note Python 3.6+ uses the secrets module for password generation to improve security.
  2. Pykeepass_ >= 4.0.0 and pynput_. 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.
  5. (optional) xdotool or ydotool (for Wayland). If you have a lot of Unicode characters or use a non-U.S. English keyboard layout, xdotool is necessary to handle typing those characters.

Installation

  • Installation

    • pip install --user keepmenu. Add ~/.local/bin to $PATH

    • 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_. NOTE: as of 2021/03/08, the python-pykeepass package is still at 3.2.1. You will need to pip install --user -U pykeepass after installing keepmenu.

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

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

    • To use a command (e.g. gpg) to lookup db password, set password_cmd_<n> in config.ini.

    • Adjust pw_cache_period_min if desired. Default is 6 hours (360 min).

    • Set the dmenu_command to rofi if you are using that instead

    • Adjust the autotype_default, if desired. Allowed codes are the Keepass 2.x codes_ except for repetitions and most command codes. {DELAY x} (in milliseconds) is supported. Individual autotype sequences can be edited or disabled inside Keepmenu.

    • Set type_library = xdotool or type_library = ydotool (Wayland) if you need support for non-U.S. English keyboard layouts and/or characters.

      • When using xdotool, call setxkbmap to set your keyboard type somewhere in your window manager or desktop environment initialization. For example: exec setxkbmap de in ~/.config/i3/config.
  • 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.

  • Number of lines needs to be configured in the config.ini and not in .Xresources or the Rofi config file. Keepmenu will override any number of lines settings set elsewhere.

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

  • New sets of characters can be set in config.ini in the [password_chars] section. A new preset for each custom set will be listed in addition to the default presets. If you redefine one of the default sets (upper, lower, digits, punctuation), it will replace the default values.

  • New preset groups of character sets can be defined in config.ini in the [password_char_presets] section. You can set any combination of default and custom character sets. A minimum of one character from each distinct set will be used when generating a new password. If any custom presets are defined, the default presets will not be displayed unless they are uncommented.

.. Warning:: 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.

Usage

  • Run script or bind to keystroke combination
  • Enter database and keyfile if not entered into config.ini already.
  • Start typing to match entries.
  • Hit Enter immediately after dmenu opens ("View/Type individual entries") to switch modes to view and/or type the individual fields for the entry. If selected, the URL will open in the default browser instead of being typed.
  • To view a password without typing it, use the 'Edit Entries' option, then select the entry, select 'Password' then select 'Manually enter password'. Type 'ESC' to exit without making changes.

Tests

  • To run tests: python tests/tests.py

.. _Rofi: https://davedavenport.github.io/rofi/ .. _Passhole: https://github.com/purduelug/passhole .. _Keepass field references: https://keepass.info/help/base/fieldrefs.html .. _Pykeepass: https://github.com/pschmitt/pykeepass .. _pynput: https://github.com/moses-palmer/pynput .. _Archlinux AUR: https://aur.archlinux.org/packages/python-keepmenu-git .. _Keepass 2.x codes: https://keepass.info/help/base/autotype.html#autoseq

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].