64 lines
1.7 KiB
Nix
64 lines
1.7 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
with lib; let
|
|
cfg = config.custom.programs.rbw;
|
|
in {
|
|
options.custom.programs.rbw = {
|
|
enable = mkOption {default = false;};
|
|
};
|
|
|
|
config = {
|
|
# https://github.com/fdw/rofi-rbw
|
|
environment.systemPackages = [pkgs.rofi-rbw];
|
|
|
|
home-manager.sharedModules = mkIf cfg.enable [
|
|
{
|
|
# https://github.com/doy/rbw
|
|
#!! Register with API secrets before using
|
|
#?? rbw register
|
|
#?? rbw login
|
|
programs.rbw = {
|
|
enable = true;
|
|
|
|
# https://github.com/doy/rbw?tab=readme-ov-file#configuration
|
|
settings = {
|
|
base_url = "https://vault.${config.custom.domain}";
|
|
email = "${config.custom.username}@${config.custom.domain}";
|
|
pinentry = pkgs.pinentry-gnome3;
|
|
};
|
|
};
|
|
|
|
# TODO: Enable input emulation when merged (uinput.enable?)
|
|
# https://github.com/NixOS/nixpkgs/pull/303745
|
|
# https://github.com/fdw/rofi-rbw?tab=readme-ov-file#configuration
|
|
xdg.configFile = {
|
|
"rofi-rbw.rc".text = let
|
|
keybindings = concatStringsSep "," [
|
|
"Ctrl+1:print:username"
|
|
"Ctrl+2:print:password"
|
|
"Ctrl+3:print:totp"
|
|
"Alt+1:type:delay:username"
|
|
"Alt+2:type:delay:password"
|
|
"Alt+3:type:delay:totp"
|
|
"Alt+u:copy:username"
|
|
"Alt+p:copy:password"
|
|
"Alt+t:copy:totp"
|
|
"Alt+s:sync"
|
|
];
|
|
in ''
|
|
action=copy
|
|
keybindings=${keybindings}
|
|
no-help=true
|
|
prompt=
|
|
selector=${config.custom.menu}
|
|
target=menu
|
|
'';
|
|
};
|
|
}
|
|
];
|
|
};
|
|
}
|