rkeep

Crates.iorkeep
lib.rsrkeep
version0.4.1
sourcesrc
created_at2021-04-27 22:38:27.967395
updated_at2021-11-28 16:47:29.416748
descriptionPersistent KeePass backend with display hooks
homepage
repositoryhttps://github.com/leaty/rkeep
max_upload_size
id390367
size34,021
(leaty)

documentation

README

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.

2021-04-03-1617473165_screenshot_2560x1440

2021-04-03-1617473299_screenshot_2560x1440

Commit count: 33

cargo fmt