2 unstable releases
0.4.1 | Nov 28, 2021 |
---|---|
0.2.0 | Apr 27, 2021 |
#535 in Authentication
15KB
314 lines
rkeep
Persistent KeePass backend with display hooks for most STDIN capable programs, written in Rust. Use dmenu, rofi or similar interfaces to quickly copy your passwords to clipboard.
Editing KeePass is definitely in scope of this project, but it's a todo. PR's are welcome.
Configuration
The configuration may contain multiple sessions, in case you have multiple keepass databases. Default location is ~/.config/rkeep/config.toml
, see rkeepd --help
and rkeep --help
. Copy the sample config for reference when configuring.
Example config
socket = "/tmp/rkeep.sock"
[[session]]
name = "mykeys" # Name of session
database = "/path/to/my.kdbx"
alive = 1800 # Keep database unlocked for (seconds)
clipboard = 10 # Clear clipboard after (seconds)
[session.command]
pass = ["rofi", "-dmenu", "-password", "-p", "Password", "-theme-str", 'entry { placeholder: ""; }']
list = ["rofi", "-dmenu", "-columns", "1", "-no-auto-select", "-i", "-p", "{session.name}"]
[[session]]
name = "myotherkeys"
database = "/path/to/my.other.kdbx"
keyfile = "/path/to/keyfile"
alive = 1800
clipboard = 10
[session.command]
pass = ["rofi", "-dmenu", "-password", "-p", "Password", "-theme-str", 'entry { placeholder: ""; }']
list = ["rofi", "-dmenu", "-columns", "1", "-no-auto-select", "-i", "-p", "{session.name}"]
How to use
Run install.sh or install manually.
Server
Either run rkeepd
manually, at startup, or as a user service. Note however that the service may need to be modified to start after your display manager, otherwise programs that require a display server like e.g. rofi may not show up.
Personally I have no valid After=
target for the service because I don't use a display manager, so I just add systemctl --user start rkeepd
in .xinitrc
and omit enabling the service.
Client
Set up a keybind or a shortcut to run e.g. rkeep -s mykeys
, or simply run it manually.
Example
With keys
as session name.
Dependencies
~7MB
~126K SLoC