ft: keepassxc as secret-service
ft: keepassxc as secret-service ft: keepassxc as secret-service
This commit is contained in:
@@ -6,6 +6,8 @@
|
|||||||
./feh.nix
|
./feh.nix
|
||||||
./freetube.nix
|
./freetube.nix
|
||||||
./mpv.nix
|
./mpv.nix
|
||||||
|
./yazi.nix
|
||||||
|
./keepassxc.nix
|
||||||
./starship.nix
|
./starship.nix
|
||||||
./tealdeer.nix
|
./tealdeer.nix
|
||||||
./vesktop.nix
|
./vesktop.nix
|
||||||
@@ -33,13 +35,10 @@
|
|||||||
};
|
};
|
||||||
services = {
|
services = {
|
||||||
flameshot.enable = true;
|
flameshot.enable = true;
|
||||||
pass-secret-service.enable = true; # TODO: test if works/howto setup with autodecrypt
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users.djai.packages = with pkgs; [
|
users.users.djai.packages = with pkgs; [
|
||||||
yazi # TODO home manager program
|
|
||||||
|
|
||||||
# chat
|
# chat
|
||||||
signal-desktop
|
signal-desktop
|
||||||
|
|
||||||
|
|||||||
19
modules/apps/keepassxc.nix
Normal file
19
modules/apps/keepassxc.nix
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home-manager.users.djai.programs.keepassxc = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
General.ConfigVersion = 2;
|
||||||
|
FdoSecrets = {
|
||||||
|
Enabled = true;
|
||||||
|
ConfirmAccessItem = false;
|
||||||
|
};
|
||||||
|
GUI = {
|
||||||
|
HideMenuBar = true;
|
||||||
|
HideToolbar = true;
|
||||||
|
ApplicationTheme = "dark";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
70
modules/apps/yazi.nix
Normal file
70
modules/apps/yazi.nix
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
{ lib, pkgs, ... }:
|
||||||
|
|
||||||
|
|
||||||
|
let
|
||||||
|
make_plugin = names: lib.listToAttrs (map (name: {
|
||||||
|
name = name;
|
||||||
|
value = {
|
||||||
|
package = pkgs.yaziPlugins.${name};
|
||||||
|
setup = true;
|
||||||
|
};
|
||||||
|
}) names);
|
||||||
|
in
|
||||||
|
{
|
||||||
|
home-manager.users.djai.programs.yazi = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
plugins = with pkgs.yaziPlugins; {
|
||||||
|
duckdb = duckdb;
|
||||||
|
compress = compress;
|
||||||
|
bookmarks = bookmarks;
|
||||||
|
clipboard = clipboard;
|
||||||
|
ouch = ouch;
|
||||||
|
rich-preview = rich-preview;
|
||||||
|
jump-to-char = jump-to-char;
|
||||||
|
yafg = {
|
||||||
|
package = yafg;
|
||||||
|
setup = true;
|
||||||
|
settings = {
|
||||||
|
toggle-mode-key = "alt-t";
|
||||||
|
editor = "nvim";
|
||||||
|
args = [ "--noplugin" ];
|
||||||
|
file-arg-format = "+{row} {file}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
relative-motions = relative-motions;
|
||||||
|
} // make_plugin ["starship" "close-and-restore-tab" "full-border"] ;
|
||||||
|
|
||||||
|
# FIXME: lots of these are wonky
|
||||||
|
keymap = {
|
||||||
|
mgr.prepend_keymap = [
|
||||||
|
{on = [ "F" "G" ]; description = "use fmf"; run = "plugin yafg";}
|
||||||
|
{on = [ "f" ]; description = "Jump to char"; run = "plugin jump-to-char";}
|
||||||
|
|
||||||
|
{on = [ "y" ]; description = "Yank selected files (copy)"; run = [ "yank" "plugin clipboard -- --action=copy" ];}
|
||||||
|
{on = [ "x" ]; description = "Yank selected files (cut)"; run = [ "yank --cut" "plugin clipboard -- --action=copy" ];}
|
||||||
|
{on = [ "<C-p>" ]; description = "Paste yanked clipboard files"; run = "plugin clipboard -- --action=paste";}
|
||||||
|
|
||||||
|
{on = [ "m" ]; description = "Save current position as bookmark "; run = "plugin bookmarks save";}
|
||||||
|
{on = [ "'" ]; description = "Jump to bookmark "; run = "plugin bookmarks jump";}
|
||||||
|
{on = [ "b" "d" ]; description = "Delete bookmark"; run = "plugin bookmarks delete";}
|
||||||
|
{on = [ "B" "D" ]; description = "Delete all bookmarks"; run = "plugin bookmarks delete_all";}
|
||||||
|
|
||||||
|
{on = [ "c" "a" "a" ]; description = "Archive selected files"; run = "plugin compress";}
|
||||||
|
{on = [ "c" "a" "p" ]; description = "Archive selected files (encrypted)"; run = "plugin compress -p";}
|
||||||
|
|
||||||
|
{on = [ "1" ]; run = "plugin relative-motions 1";}
|
||||||
|
{on = [ "2" ]; run = "plugin relative-motions 2";}
|
||||||
|
{on = [ "3" ]; run = "plugin relative-motions 3";}
|
||||||
|
{on = [ "4" ]; run = "plugin relative-motions 4";}
|
||||||
|
{on = [ "5" ]; run = "plugin relative-motions 5";}
|
||||||
|
{on = [ "6" ]; run = "plugin relative-motions 6";}
|
||||||
|
{on = [ "7" ]; run = "plugin relative-motions 7";}
|
||||||
|
{on = [ "8" ]; run = "plugin relative-motions 8";}
|
||||||
|
{on = [ "9" ]; run = "plugin relative-motions 9";}
|
||||||
|
|
||||||
|
{on = [ "<C-t>" ]; description = "Restore previously closed tab"; run = "plugin close-and-restore-tab restore";}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -78,7 +78,6 @@
|
|||||||
environment.pathsToLink = [ "/share/xdg-desktop-portal" "/share/applications" ];
|
environment.pathsToLink = [ "/share/xdg-desktop-portal" "/share/applications" ];
|
||||||
home-manager.users.djai = {
|
home-manager.users.djai = {
|
||||||
xdg = {
|
xdg = {
|
||||||
autostart.enable = true;
|
|
||||||
mimeApps = {
|
mimeApps = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultApplications = {
|
defaultApplications = {
|
||||||
|
|||||||
@@ -59,6 +59,7 @@
|
|||||||
{ match.class = "krita"; workspace = "7 silent";}
|
{ match.class = "krita"; workspace = "7 silent";}
|
||||||
{ match.class = "com.github.aaronerhardt.Tailor"; workspace = "10 silent";}
|
{ match.class = "com.github.aaronerhardt.Tailor"; workspace = "10 silent";}
|
||||||
{ match.class = "desktop.opencloud.eu."; workspace = "10 silent";}
|
{ match.class = "desktop.opencloud.eu."; workspace = "10 silent";}
|
||||||
|
{ match.class = "org.keepassxc.KeePassXC"; workspace = "10 silent";}
|
||||||
|
|
||||||
# shadowdim
|
# shadowdim
|
||||||
{ match.title = ".*shadowDim.*"; workspace = "999 silent";}
|
{ match.title = ".*shadowDim.*"; workspace = "999 silent";}
|
||||||
|
|||||||
@@ -61,8 +61,9 @@ in
|
|||||||
(hyprLib.on-signal "hyprland.start" [
|
(hyprLib.on-signal "hyprland.start" [
|
||||||
''uwsm app -- env QT_STYLE_OVERRIDE= opencloud''
|
''uwsm app -- env QT_STYLE_OVERRIDE= opencloud''
|
||||||
"uwsm app -- kitty --class scratchme -d /home/djai/Documents/diary"
|
"uwsm app -- kitty --class scratchme -d /home/djai/Documents/diary"
|
||||||
"uwsm app -- nohup flameshot"
|
"uwsm app -s b -- nohup flameshot"
|
||||||
"hyprctl setcursor Catppuccin-Macchiato-Dark-Cursors 24" # really shouldnt be in here but we get veyr large cursors if we dont
|
"uwsm app -- keepassxc --keyfile ${config.sops.secrets."keepass-keyfile".path} $HOME/Documents/databases/secret.kdbx" # TODO: init secret.kdbx if does not exist
|
||||||
|
"hyprctl setcursor Catppuccin-Macchiato-Dark-Cursors 24" # really shouldnt be in here but we get very large cursors if we dont
|
||||||
])
|
])
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
home-manager.users.djai.programs.uv = {
|
home-manager.users.djai.programs.uv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
tool.packages = [ # NOTE: these are pinned now so keep that in mind
|
tool.packages = [ # NOTE: these are pinned now so keep that in mind
|
||||||
"ruff==v0.16" # FIXME: check these work now
|
"ruff==v0.16"
|
||||||
"ipython==v9.17"
|
"ipython==v9.17"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -23,6 +23,10 @@ in
|
|||||||
sopsFile = ./ssh-config.bin;
|
sopsFile = ./ssh-config.bin;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
"keepass-keyfile" = djaiOnly // {
|
||||||
|
sopsFile = ./keepass-keyfile.bin;
|
||||||
|
};
|
||||||
|
|
||||||
# wireguard tunnels
|
# wireguard tunnels
|
||||||
"wg-config-nixbook" = djaiOnly // {
|
"wg-config-nixbook" = djaiOnly // {
|
||||||
sopsFile = ./wg-config-nixbook.bin;
|
sopsFile = ./wg-config-nixbook.bin;
|
||||||
|
|||||||
18
secrets/keepass-keyfile.bin
Normal file
18
secrets/keepass-keyfile.bin
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"data": "ENC[AES256_GCM,data:jnUF2ZKMlkjhIfKV15WH332fe+b8I2jUl+UQzexDfH78cOU7c4w4TL81KE3lwP04Y+FRqrdSfekYcRMF7gX2QU3dEMRwNgI8Y4+DVYVhfw6TkAx5CfmPYZKS7HgEec9OVs7VlOU+Yzhm5eC4e8uQvpWWBQa9MxOR1/31kHGiaJU=,iv:eutrFrfrk97y8X2GJcwqlImIFe9MxMptnKGkCDcgPNw=,tag:VpoEDxus/DhybqrTKAUb4Q==,type:str]",
|
||||||
|
"sops": {
|
||||||
|
"age": [
|
||||||
|
{
|
||||||
|
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvcUNOY2lhS2xuektKT2dS\nNitPUTd1RHJxT0JSVytLeHRSK2RLdGpFMURFCkhDYTUyNmllMktLOG5PbUhhY1Rq\nL1pGdnNscmRvTVI4SWZtOVJQMm9yTVEKLS0tIG1yRDFIanFsK1Y4aHJLMWw1VlpT\nc0psaUJoc0tOZUxLMzUrWXYyM1R2L1UKByYFtkHwKmVUV3VBreKagxXEZMHoiEFp\nT2k2MMofmC8W9H+35qwMCwV8zHevFNzD4xd9toFcARcgoM9Bionb1A==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||||
|
"recipient": "age1x7rkj5gpqe9rgp6wjs24r68u5vlg0628qafvdvwczm2gy27uup0q66vkv5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBZllCRFNFeGdMV1FZM0NU\nbVhndFdkUHpBOVBJZmVDWk92Wm9Ca0NoK0JBCmx6ejdYdmV4N0RTOXlqRDFHWDFl\ncW1hWHV0WDFqb3U3Y3BKU3Nza1pDMW8KLS0tIGpRODBmanF5Z3VGN2pMR1JsZm9u\nMytZdkowbjVhdG5MSnZpbVUvMEZQQXMK33kT0L3IlhL7NjBe2JXyuJEndKHpyt8v\n5ZOGGpruWJhN0Q9Y+YSvfmivUhgN8Y2Bzj64V9FNpMZlRFW6jB37SA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||||
|
"recipient": "age1euc2azezqqashys9ejvqp0hs890sc3nugf9t749zmadkq9r4te2sqzlgtt"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastmodified": "2026-10-09T12:04:48Z",
|
||||||
|
"mac": "ENC[AES256_GCM,data:yhZMiUm4q0Ua/6LFjH9o1PX2vTcMqd7CfSHDVh22cXfUeoinkrOrE3jN807//vGGwN8h/R7UCwpvOa98iSI6CWaDSDOYsQGivU3FY023y2HAfSg8cQkhfa8VJ5auuNaDTizF2ilFvxecDgJmUMarq8K7tcDdx+wdcM+ZEafTCks=,iv:QQ8UFLKm9LqsSmFxYirm+U971CvcCM8B4bqq4FQNs4o=,tag:f3wushDhfU4EK5q/uQHPSQ==,type:str]",
|
||||||
|
"version": "3.13.3"
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user