67 lines
2 KiB
Nix
67 lines
2 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
options,
|
|
pkgs,
|
|
...
|
|
}:
|
|
{
|
|
options.mods.keepassxc = {
|
|
enable = lib.mkOption {
|
|
default = true;
|
|
example = false;
|
|
type = lib.types.bool;
|
|
description = "Enables the piper program and its daemon";
|
|
};
|
|
use_cache_config = lib.mkOption {
|
|
default = true;
|
|
example = false;
|
|
type = lib.types.bool;
|
|
description = "Whether to overwrite the cache config of keepassxc. Note, this means that changes can't be applied via the program anymore!";
|
|
};
|
|
cache_config = lib.mkOption {
|
|
default = ''
|
|
[General]
|
|
LastDatabases=/home/dashie/Music/Passwords.kdbx
|
|
LastActiveDatabase=/home/dashie/Music/Passwords.kdbx
|
|
LastOpenedDatabases=/home/dashie/Music/Passwords.kdbx
|
|
LastKeyFiles=@Variant(\0\0\0\x1c\0\0\0\x1\0\0\0\x42\0/\0h\0o\0m\0\x65\0/\0\x64\0\x61\0s\0h\0i\0\x65\0/\0M\0u\0s\0i\0\x63\0/\0P\0\x61\0s\0s\0w\0o\0r\0\x64\0s\0.\0k\0\x64\0\x62\0x\0\0\0\n\0\0\0\x42\0/\0h\0o\0m\0\x65\0/\0\x64\0\x61\0s\0h\0i\0\x65\0/\0M\0u\0s\0i\0\x63\0/\0l\0o\0g\0i\0n\0_\0k\0\x65\0y\0.\0k\0\x65\0y\0x)
|
|
'';
|
|
example = "";
|
|
type = lib.types.lines;
|
|
description = "Cache config to be used.";
|
|
};
|
|
};
|
|
config = lib.mkIf config.mods.keepassxc.enable (
|
|
lib.optionalAttrs (options ? home.file) {
|
|
home.packages = [ pkgs.keepassxc ];
|
|
xdg.configFile."keepassxc/keepassxc.ini" = {
|
|
text = ''
|
|
[General]
|
|
ConfigVersion=2
|
|
|
|
[Browser]
|
|
Enabled=true
|
|
|
|
[GUI]
|
|
ApplicationTheme=classic
|
|
HidePasswords=true
|
|
MinimizeOnClose=true
|
|
MinimizeToTray=true
|
|
ShowTrayIcon=true
|
|
TrayIconAppearance=monochrome-light
|
|
|
|
[PasswordGenerator]
|
|
Length=30
|
|
|
|
[Security]
|
|
EnableCopyOnDoubleClick=true
|
|
'';
|
|
};
|
|
|
|
home.file.".cache/keepassxc/keepassxc.ini" = lib.mkIf config.mods.keepassxc.use_cache_config {
|
|
text = config.mods.keepassxc.cache_config;
|
|
};
|
|
}
|
|
);
|
|
}
|