Skip to content
/ rkeep Public

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.

License

Notifications You must be signed in to change notification settings

leaty/rkeep

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published