summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoradikro <adikro@disroot.org>2026-03-17 23:25:22 +0100
committeradikro <adikro@disroot.org>2026-03-17 23:25:22 +0100
commite7549665587b1e4a11225bce0c70ff74fe171e5f (patch)
treef502cebd865ca728ede83c8fb30e30bbb44f67ea
parent2e7f564763826013eeff22ecfce99c462829e2ec (diff)
some age key shenanigans
-rw-r--r--.sops.yaml2
-rw-r--r--flake.lock90
-rw-r--r--hm/dotfiles/fastfetch/config.jsonc0
-rw-r--r--hm/dotfiles/fsel/config.toml0
-rw-r--r--hm/dotfiles/mako/config0
-rw-r--r--hm/dotfiles/otter/config.toml0
-rw-r--r--hm/dotfiles/waybar/config.jsonc0
-rw-r--r--hm/dotfiles/waybar/style.css0
-rw-r--r--hm/env/fsel.nix2
-rw-r--r--hm/env/mako.nix6
-rw-r--r--hm/env/otter.nix175
-rw-r--r--hm/env/waybar.nix12
-rw-r--r--hm/shell/cli.nix4
-rw-r--r--hm/soft/librewolf/browser.nix (renamed from hm/soft/browser.nix)5
-rw-r--r--hm/soft/librewolf/extensions/keepass-tusk.nix20
-rw-r--r--hm/soft/librewolf/extensions/popup-blocker.nix20
-rw-r--r--hm/soft/librewolf/extensions/user-agent-switcher.nix20
-rw-r--r--hm/soft/soft.nix2
-rw-r--r--os/core/security.nix2
-rw-r--r--os/core/ssh.nix8
-rw-r--r--os/srv/gaming.nix2
-rw-r--r--os/srv/kdeconnect.nix8
-rw-r--r--os/srv/sops.nix1
-rw-r--r--secrets.yaml79
24 files changed, 187 insertions, 271 deletions
diff --git a/.sops.yaml b/.sops.yaml
index 498f70e..c797ba1 100644
--- a/.sops.yaml
+++ b/.sops.yaml
@@ -1,5 +1,6 @@
keys:
- &admin_gpg EF69F2FB25C8B5A66918EA91A38ACEAB9656CD94
+ - &admin_age age1g9xlgzxxvgfgq6a05jxy2e7zf8t4qgw6wjpjmvyhvzlnu8fmye6s8qx702
- &host_szpont age1s39d4mdrjhkf8cy8eea02p836r7s875fj8f7w3z4ld2stmaac49qd075ww
- &host_thinkpad age12htxy05mlkaqx7q6m5wufkqnnvhmhe4nfsr5ljlwkdk0u59f7ujq7537fw
- &host_pendrive age1sx8ut0arwlrp7n7qvlaele8mq93pyvzc0ddetlk47cnyx935gcusdceq9q
@@ -9,6 +10,7 @@ creation_rules:
- path_regex: ^secrets\.yaml$
key_groups:
- age:
+ - *admin_age
- *host_szpont
- *host_thinkpad
- *host_pendrive
diff --git a/flake.lock b/flake.lock
index 3f29369..e254be2 100644
--- a/flake.lock
+++ b/flake.lock
@@ -275,11 +275,11 @@
]
},
"locked": {
- "lastModified": 1773608492,
- "narHash": "sha256-QZteyExJYSQzgxqdsesDPbQgjctGG7iKV/6ooyQPITk=",
+ "lastModified": 1773681856,
+ "narHash": "sha256-+bRqxoFCJFO9ZTFhcCkzNXbDT3b8AEk88fyjB7Is6eo=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "9a40ec3b78fc688d0908485887d355caa5666d18",
+ "rev": "57d5560ee92a424fb71fde800acd6ed2c725dfce",
"type": "github"
},
"original": {
@@ -375,11 +375,11 @@
]
},
"locked": {
- "lastModified": 1773619513,
- "narHash": "sha256-2xCVm8ajE9pNngv489dPKOUa5P0tlmJRwgVPjhy7c8w=",
+ "lastModified": 1773705884,
+ "narHash": "sha256-2atzXVl7CB+46HcuFRe3cUleEJdn2KoUdVOPQHyZBpg=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
- "rev": "07227cc79efb9c1744ec99d51f98c7a3584a62d2",
+ "rev": "3c143994a616ebc45c69dfa0487e171b7b5c0da6",
"type": "github"
},
"original": {
@@ -391,11 +391,11 @@
"neovim-src": {
"flake": false,
"locked": {
- "lastModified": 1773615769,
- "narHash": "sha256-qU71k2BTckpJDHpjxaU4aQwl14+iApnAycq+IJDTmO0=",
+ "lastModified": 1773702732,
+ "narHash": "sha256-1Oi7ygsg3ExZGMF4/VBVTDJMz27uM14kSwx7EUkte6Q=",
"owner": "neovim",
"repo": "neovim",
- "rev": "16f7440cc7b59b7e5c79f593fedc117d2d16d7dd",
+ "rev": "6edae880528b7a1494a7610b07e4415d68c463ff",
"type": "github"
},
"original": {
@@ -416,11 +416,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
- "lastModified": 1773637356,
- "narHash": "sha256-E9PxnKdAkszK0Xhc3bBNnMeE8QMQcHwQEOkVHGGnrKM=",
+ "lastModified": 1773725889,
+ "narHash": "sha256-htkVJrtaWJS7wQSXg8d26RR6jF3Iab2bYTNfvTgv05Q=",
"owner": "sodiboo",
"repo": "niri-flake",
- "rev": "41bdfa1d3f9da80098b410fa34bc7230a6efeb99",
+ "rev": "9987baf8f935a1b3b2aa89a44c13b3239ecc640e",
"type": "github"
},
"original": {
@@ -472,11 +472,11 @@
"nixpkgs-nixcord": "nixpkgs-nixcord"
},
"locked": {
- "lastModified": 1773597570,
- "narHash": "sha256-A6KsirR9kxR1wVFTr8aagk5vUT3rvKTf79Qht6YkxUA=",
+ "lastModified": 1773765198,
+ "narHash": "sha256-mcfmUMRCkp6lhF+GLyjguGFwE/S0S2aEzyr2COyOMKc=",
"owner": "KaylorBen",
"repo": "nixcord",
- "rev": "1cc0ddb766e459b7187e6aeb8b2e046d37361dc4",
+ "rev": "5aa208b51960bb3bbec3ff1fed8bbd8a8de28995",
"type": "github"
},
"original": {
@@ -565,11 +565,11 @@
},
"nixpkgs-stable": {
"locked": {
- "lastModified": 1773524153,
- "narHash": "sha256-Jms57zzlFf64ayKzzBWSE2SGvJmK+NGt8Gli71d9kmY=",
+ "lastModified": 1773705440,
+ "narHash": "sha256-xB30bbAp0e7ogSEYyc126mAJMt4FRFh8wtm6ADE1xuM=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "e9f278faa1d0c2fc835bd331d4666b59b505a410",
+ "rev": "48652e9d5aea46e555b3df87354280d4f29cd3a3",
"type": "github"
},
"original": {
@@ -581,11 +581,11 @@
},
"nixpkgs_2": {
"locked": {
- "lastModified": 1773520392,
- "narHash": "sha256-Ra3l8zI7AYwaCxXcU4An8jAC1hhz/TEleXboJhWaBwY=",
+ "lastModified": 1773646010,
+ "narHash": "sha256-iYrs97hS7p5u4lQzuNWzuALGIOdkPXvjz7bviiBjUu8=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "f59e980846fe86cd831899cd032fdbd1d6054086",
+ "rev": "5b2c2d84341b2afb5647081c1386a80d7a8d8605",
"type": "github"
},
"original": {
@@ -597,11 +597,11 @@
},
"nixpkgs_3": {
"locked": {
- "lastModified": 1773579282,
- "narHash": "sha256-LWvZj9Bvm1EuoO6zbX4yjZebwnZNfeTbmCJGS7RGQ3Y=",
+ "lastModified": 1773646010,
+ "narHash": "sha256-iYrs97hS7p5u4lQzuNWzuALGIOdkPXvjz7bviiBjUu8=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "5a88de74db0e948139be4b46f9a94d64aa11391c",
+ "rev": "5b2c2d84341b2afb5647081c1386a80d7a8d8605",
"type": "github"
},
"original": {
@@ -655,11 +655,11 @@
"nixpkgs": "nixpkgs_3"
},
"locked": {
- "lastModified": 1773657337,
- "narHash": "sha256-cDwlYs5dKNCZ7W/w4qmCJOQz9VJr95n4bTA2Qhivq48=",
+ "lastModified": 1773781775,
+ "narHash": "sha256-LxeZ+ew3WWRhrHpSIjfkQtGX1aFLEVL6DmGJxfpVyzQ=",
"owner": "nix-community",
"repo": "NUR",
- "rev": "4f42bc73dd7d7d99802efd15fb4acabc195674b7",
+ "rev": "7cdce0850493f5c01cfe2443c1b5965a75e33941",
"type": "github"
},
"original": {
@@ -680,11 +680,11 @@
"systems": "systems_3"
},
"locked": {
- "lastModified": 1773579076,
- "narHash": "sha256-GRuK5zh0Z68YXIoTpHQW2CFdpZRhGJRxpYh4vPOqjt4=",
+ "lastModified": 1773777664,
+ "narHash": "sha256-HOqYvG6kyLyBhh6wpGz2z0+JID/mkGgjNa9c1nPJ4k8=",
"owner": "NotAShelf",
"repo": "nvf",
- "rev": "baf207654ca613173e9d4b5255dba52f8c0c5577",
+ "rev": "ef0e10f591402cb9fad3e4f0faa8f66162655c04",
"type": "github"
},
"original": {
@@ -703,11 +703,11 @@
"systems": "systems_4"
},
"locked": {
- "lastModified": 1773640372,
- "narHash": "sha256-nGFsFIT7nBEWuSbzL9jIxsF1DUUQ/D3/FwlZq8F2pHM=",
+ "lastModified": 1773647611,
+ "narHash": "sha256-Dkb6ft4LNHiYpmzJ9O90Qg3Jv2VThtzlC88bIAgVTWM=",
"owner": "kuokuo123",
"repo": "otter-launcher",
- "rev": "872714f3f27a83ef723b2748bdfda4f80d97eaff",
+ "rev": "5aea41193a8da76c4720ec11059d56eb2fd86de1",
"type": "github"
},
"original": {
@@ -801,11 +801,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
- "lastModified": 1773640901,
- "narHash": "sha256-lggJVTCrd/zyj4VDRs28GWYujfPlPby4QDKfXsIfeGQ=",
+ "lastModified": 1773664537,
+ "narHash": "sha256-w2gLQV8jKZVX7yXqOhMJaKJ2kujYfrL99rNhjKST7ac=",
"owner": "gabm",
"repo": "Satty",
- "rev": "855f013c0f48e88f90887f17aaef97e950165e1a",
+ "rev": "e2d8880745df2491010ce1b897d4a5dbdf59bbba",
"type": "github"
},
"original": {
@@ -821,11 +821,11 @@
]
},
"locked": {
- "lastModified": 1773550941,
- "narHash": "sha256-wa/++bL2QeMUreNFBZEWluQfOYB0MnQIeGNMuaX9sfs=",
+ "lastModified": 1773698643,
+ "narHash": "sha256-VCiDjE8kNs8uCAK73Ezk1r3fFuc4JepvW07YFqaN968=",
"owner": "Mic92",
"repo": "sops-nix",
- "rev": "c469b6885f0dcd5c7c56bd935a0f08dbcd9e79e1",
+ "rev": "8237de83e8200d16fe0c4467b02a1c608ff28044",
"type": "github"
},
"original": {
@@ -953,11 +953,11 @@
]
},
"locked": {
- "lastModified": 1773004900,
- "narHash": "sha256-LuDrFLdszUdnSlDdwQjRwLQiQZUPkiBuI+Y2UlRmjfg=",
+ "lastModified": 1773698763,
+ "narHash": "sha256-vSnYwbTuhCmI1TP+bs1uGRPm6fB7LNcDMxBDaCS6vQc=",
"owner": "Alexays",
"repo": "Waybar",
- "rev": "100349a5c7f45a032712c1ec85696164d44e5430",
+ "rev": "1019c9d2fe9432e7151cb336ab6b3d523d8cf123",
"type": "github"
},
"original": {
@@ -1008,11 +1008,11 @@
"rust-overlay": "rust-overlay_2"
},
"locked": {
- "lastModified": 1773638943,
- "narHash": "sha256-TgGuoRB28Q7IeHupfLZ/NFeztWgXS8H0HkPMy5Neb4c=",
+ "lastModified": 1773711706,
+ "narHash": "sha256-hUrayDJA+uUY4zAPWTUGMep5Qaf59dfRWovwaGqXy40=",
"owner": "sxyazi",
"repo": "yazi",
- "rev": "de01a56ac5a566ecb4804659a5ecb413a9e3734f",
+ "rev": "da96795303f608a1e7610362043ae951d1c2cc06",
"type": "github"
},
"original": {
diff --git a/hm/dotfiles/fastfetch/config.jsonc b/hm/dotfiles/fastfetch/config.jsonc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/hm/dotfiles/fastfetch/config.jsonc
diff --git a/hm/dotfiles/fsel/config.toml b/hm/dotfiles/fsel/config.toml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/hm/dotfiles/fsel/config.toml
diff --git a/hm/dotfiles/mako/config b/hm/dotfiles/mako/config
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/hm/dotfiles/mako/config
diff --git a/hm/dotfiles/otter/config.toml b/hm/dotfiles/otter/config.toml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/hm/dotfiles/otter/config.toml
diff --git a/hm/dotfiles/waybar/config.jsonc b/hm/dotfiles/waybar/config.jsonc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/hm/dotfiles/waybar/config.jsonc
diff --git a/hm/dotfiles/waybar/style.css b/hm/dotfiles/waybar/style.css
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/hm/dotfiles/waybar/style.css
diff --git a/hm/env/fsel.nix b/hm/env/fsel.nix
index faa7f24..636cb3c 100644
--- a/hm/env/fsel.nix
+++ b/hm/env/fsel.nix
@@ -12,5 +12,7 @@ in
options.hm.env.fsel.enable = lib.mkEnableOption "enables fsel";
config = lib.mkIf cfg.enable {
home.packages = [ inputs.fsel.packages.${pkgs.stdenv.hostPlatform.system}.default ];
+ xdg.configFile."fsel/config.toml".source =
+ config.lib.file.mkOutOfStoreSymlink "../dotfiles/fsel/config.toml";
};
}
diff --git a/hm/env/mako.nix b/hm/env/mako.nix
index 3f9e3ef..3adc5d7 100644
--- a/hm/env/mako.nix
+++ b/hm/env/mako.nix
@@ -7,9 +7,9 @@ in
config = lib.mkIf cfg.enable {
services.mako = {
enable = true;
- settings = {
-
- };
};
+ xdg.configFile."mako/config".source = lib.mkForce (
+ config.lib.file.mkOutOfStoreSymlink "../dotfiles/mako/config"
+ );
};
}
diff --git a/hm/env/otter.nix b/hm/env/otter.nix
index b7324e0..966bbb7 100644
--- a/hm/env/otter.nix
+++ b/hm/env/otter.nix
@@ -14,178 +14,9 @@ in
config = lib.mkIf cfg.enable {
programs.otter-launcher = {
enable = true;
- # settings = {
- # interface = {
- # suggestion_mode = "list";
- # };
- # };
- settingsExtra = ''
- [general]
- default_module = "gg" # module to run when no prefix is matched
- empty_module = "app" # run with an empty prompt
- exec_cmd = "sh -c" # exec command of your shell
- # for example: "bach -c" for bash; "zsh -c" for zsh; also accept wm commands like "hyprctl dispatch exec"
- vi_mode = false # set true to use vi keybinds, false emacs keybinds
- esc_to_abort = true # useful for vi users
- cheatsheet_entry = "?" # when prompted, will show a list of configured modules
- cheatsheet_viewer = "less -R; clear" # command to show cheatsheet; through piping stdout
- clear_screen_after_execution = false
- loop_mode = false # don't quit after executing a module, useful with scratchpads; stderr is hidden in loop mode
- external_editor = "vi" # if set, press ctrl+x ctrl+ee (or v in vi normal mode) to edit prompt in the specified program
- delay_startup = 0 # sometimes the otter runs too fast even before the terminal window is ready; this slows it down by milliseconds; useful when chafa image is skewed
- #callback = "" # if set, will run after module execution; for example, calling swaymsg to adjust window size
-
-
- # ANSI color codes are allowed. However, \x1b should be replaced with \u001B, because the rust toml crate cannot read \x as an escaped character
- [interface]
- # use three quotes to write longer codes
- header = """
- \u001B[34;1m$USER@$(printf $HOSTNAME)\u001B[0m \u001B[31m\u001B[0m $(mpstat | awk 'FNR ==4 {print $4}')
- """
- header_cmd = "" # run a command and print stdout above the header
- header_cmd_trimmed_lines = 0 # remove trailing lines from header_cmd output, in case of some programs appending excessive empty lines
- place_holder = "otterly awesome" # at the input field
- suggestion_mode = "list" # available options: list, hint
- separator = " \u001B[90mmodules ────────────────" # add a line between intput field and suggestion list; only effective in list mode
- footer = "" # add a line after suggestion list
- suggestion_lines = 3 # 0 to disable suggestions and tab completion
- list_prefix = " "
- selection_prefix = "\u001B[31;1m▌ "
- prefix_padding = 3 # format prefixes to have a uniformed width
- default_module_message = " \u001B[33msearch\u001B[0m the internet" # shown when the default module is in use
- empty_module_message = "" # shown when the empty module is in use
- customized_list_order = false # false to list modules alphabetically; true to list as per the configured order in the below [[modules]] section
- indicator_with_arg_module = "" # the sign showing whether a module should run with an argument
- indicator_no_arg_module = ""
- # below color options affect all modules; per-module coloring can be configured using ansi codes individually
- prefix_color = "\u001B[33m"
- description_color = "\u001B[39m"
- place_holder_color = "\u001B[30m"
- hint_color = "\u001B[30m" # suggestion color in hint mode
- # move the interface rightward or downward
- move_interface_right = 16
- move_interface_down = 1
-
-
- # overlay is a floating layer that can be printed with stdout and moved around; useful for integrating chafa images
- [overlay]
- overlay_cmd = """
- """
- overlay_height = 0
-
-
- # modules are defined as followed
- [[modules]]
- description = "google search"
- prefix = "gg"
- cmd = "xdg-open https://www.google.com/search?q='{}'"
- with_argument = true # if true, {} in cmd will be replaced with user input. if not explicitly set, taken as false.
- url_encode = true # should be true when calling webpages; this ensures special characters in url being readable to browsers; taken as false if not explicitly set
- unbind_proc = true # run cmd in a forked shell as opposed to as a child process (simply by prepending setsid -f to the configured cmd); useful for launching gui programs; taken as false if not explicitly set; try wm's exec command for unbinding if this option goes wrong (like swaymsg exec)
-
- # fzf is needed to run below functions
- [[modules]]
- description = "desktop programs"
- prefix = "app"
- cmd = """
- desktop_file() {
- find /usr/share/applications -name "*.desktop" 2>/dev/null
- find /usr/local/share/applications -name "*.desktop" 2>/dev/null
- find "$HOME/.local/share/applications" -name "*.desktop" 2>/dev/null
- find /var/lib/flatpak/exports/share/applications -name "*.desktop" 2>/dev/null
- find "$HOME/.local/share/flatpak/exports/share/applications" -name "*.desktop" 2>/dev/null
- }
- selected="$(desktop_file | awk -F/ '{name=$NF; sub(/\\.desktop$/, "", name); print name}' | sort -k1,1 | cut -f2- | fzf --reverse --padding 1,3 --info-command 'echo -e " desktop apps ($FZF_POS/$FZF_TOTAL_COUNT)"' --cycle --gutter " " --pointer " ▌" --color "bg+:-1,pointer:1,info:8,separator:8,scrollbar:0" --prompt ' ' -m -d / --with-nth -1 )"
- [ -z "$selected" ] && exit
- echo "$selected" | while read -r line ; do setsid -f gtk-launch "$(basename $line)"; done
- """
-
- [[modules]]
- description = "power menu (fzf)"
- prefix = "po"
- cmd = """
- function power {
- if [[ -n $1 ]]; then
- case $1 in
- "logout") session=`loginctl session-status | head -n 1 | awk '{print $1}'`; loginctl terminate-session $session ;;
- "suspend") systemctl suspend ;;
- "hibernate") systemctl hibernate ;;
- "reboot") systemctl reboot ;;
- "shutdown") systemctl poweroff ;;
- esac fi }
- power $(echo -e 'reboot\nshutdown\nlogout\nsuspend\nhibernate' | fzf --reverse --padding 1,2 --info-command 'printf " power menu ($FZF_POS/$FZF_TOTAL_COUNT)"' --cycle --gutter " " --pointer " ▌" --color "bg+:-1,pointer:1,info:8,separator:8,scrollbar:0" --prompt ' ' | tail -1)
- """
-
- [[modules]]
- description = "run commands"
- prefix = "sh"
- cmd = """
- $(printf $TERM | sed 's/xterm-//g') -e sh -c "{}"
- """
- with_argument = true
- unbind_proc = true
-
- [[modules]]
- description = "search archwiki"
- prefix = "aw"
- cmd = "xdg-open https://wiki.archlinux.org/index.php?search='{}'"
- with_argument = true
- url_encode = true
- unbind_proc = true
-
- [[modules]]
- description = "search packages"
- prefix = "pac"
- cmd = "xdg-open https://archlinux.org/packages/?q='{}'"
- with_argument = true
- url_encode = true
- unbind_proc = true
-
- [[modules]]
- description = "search the AUR"
- prefix = "aur"
- cmd = "xdg-open https://aur.archlinux.org/packages?K='{}'"
- with_argument = true
- url_encode = true
- unbind_proc = true
-
- [[modules]]
- description = "cambridge dict"
- prefix = "dc"
- cmd = "xdg-open 'https://dictionary.cambridge.org/dictionary/english/{}'"
- with_argument = true
- url_encode = true
- unbind_proc = true
-
- [[modules]]
- description = "open files (fzf)"
- prefix = "fo"
- cmd = """
- find $HOME -type f -not -path '*/.cache/*' 2>/dev/null | fzf --reverse --padding 1,3 --info-command 'printf " files ($FZF_POS/$FZF_TOTAL_COUNT)"' --cycle --gutter ' ' --pointer ' ▌' --color 'bg+:-1,pointer:1,info:8,separator:8,scrollbar:0' --prompt ' ' | setsid -f xargs -r -I [] xdg-open '[]'
- """
-
- [[modules]]
- description = "open dirs (yazi)"
- prefix = "yz"
- cmd = """
- find $HOME -type d -not -path '*/.cache/*' 2>/dev/null | fzf --reverse --padding 1,3 --info-command 'printf " directories ($FZF_POS/$FZF_TOTAL_COUNT)"' --cycle --gutter ' ' --pointer ' ▌' --color 'bg+:-1,pointer:1,info:8,separator:8,scrollbar:0' --prompt ' ' | xargs -r -I [] setsid -f "$(echo $TERM | sed 's/xterm-//g')" -e yazi '[]'
- """
-
- [[modules]]
- description = "ChatGPT prompt"
- prefix = "gpt"
- with_argument = true
- unbind_proc = true
- cmd = """
- function chat {
- encoded="$(jq -sRr @uri)"
- exec xdg-open "https://chat.openai.com/?prompt=$encoded"
- }
- chat <<'EOF'
- {}
- EOF
- """
- '';
};
+ xdg.configFile."otter-launcher/config.toml".source = lib.mkForce (
+ config.lib.file.mkOutOfStoreSymlink "../dotfiles/otter/config.toml"
+ );
};
}
diff --git a/hm/env/waybar.nix b/hm/env/waybar.nix
index b75cc91..5b6762e 100644
--- a/hm/env/waybar.nix
+++ b/hm/env/waybar.nix
@@ -2,9 +2,11 @@
config,
lib,
...
-}: let
+}:
+let
cfg = config.hm.env.waybar;
-in {
+in
+{
options.hm.env.waybar.enable = lib.mkEnableOption "enables waybar";
config = lib.mkIf cfg.enable {
programs.waybar = {
@@ -14,5 +16,11 @@ in {
target = "graphical-session.target";
};
};
+ xdg.configFile."waybar/config.jsonc".source = lib.mkForce (
+ config.lib.file.mkOutOfStoreSymlink "../dotfiles/waybar/config.jsonc"
+ );
+ xdg.configFile."waybar/style.css".source = lib.mkForce (
+ config.lib.file.mkOutOfStoreSymlink "../dotfiles/waybar/style.css"
+ );
};
}
diff --git a/hm/shell/cli.nix b/hm/shell/cli.nix
index 7011d4d..73db375 100644
--- a/hm/shell/cli.nix
+++ b/hm/shell/cli.nix
@@ -99,9 +99,10 @@ in
"disk"
"localip"
"break"
- "colors"
+ # "colors"
];
};
+ # xdg.configFile."fastfetch/config.jsonc".source = config.lib.file.mkOutOfStoreSymlink "../dotfiles/fastfetch/config.jsonc";
};
programs.direnv = {
enable = true;
@@ -189,6 +190,7 @@ in
};
home.packages = with pkgs; [
+ entr
sd
choose
doggo
diff --git a/hm/soft/browser.nix b/hm/soft/librewolf/browser.nix
index 25d1f07..b67d71f 100644
--- a/hm/soft/browser.nix
+++ b/hm/soft/librewolf/browser.nix
@@ -53,8 +53,9 @@ in
extensions = {
force = true;
packages = with pkgs.nur.repos.rycee.firefox-addons; [
- ublock-origin
- ff2mpv
+ (pkgs.callPackage ./extensions/keepass-tusk.nix { })
+ (pkgs.callPackage ./extensions/popup-blocker.nix { })
+ (pkgs.callPackage ./extensions/user-agent-switcher.nix { })
link-cleaner
privacy-badger
to-deepl
diff --git a/hm/soft/librewolf/extensions/keepass-tusk.nix b/hm/soft/librewolf/extensions/keepass-tusk.nix
new file mode 100644
index 0000000..e197cb9
--- /dev/null
+++ b/hm/soft/librewolf/extensions/keepass-tusk.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "KeePass Tusk - Password Access and Autofill";
+ version = "2024.8.20";
+
+ src = fetchurl {
+ url = "https://addons.mozilla.org/firefox/downloads/file/4340608/keepass_tusk-${version}.xpi";
+ sha256 = "sha256-RaViUTzo+JOmgnUB1cr4cCb1AEI2QDiR0frxYCpi8oE=";
+ };
+
+ dontUnpack = true;
+
+ addonId = "brandon@subdavis.com";
+
+ installPhase = ''
+ mkdir -p $out
+ cp $src $out/${addonId}.xpi
+ '';
+}
diff --git a/hm/soft/librewolf/extensions/popup-blocker.nix b/hm/soft/librewolf/extensions/popup-blocker.nix
new file mode 100644
index 0000000..f1fe451
--- /dev/null
+++ b/hm/soft/librewolf/extensions/popup-blocker.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "Popup Blocker (strict)";
+ version = "0.9.1";
+
+ src = fetchurl {
+ url = "https://addons.mozilla.org/firefox/downloads/file/4674849/popup_blocker-${version}.xpi";
+ sha256 = "sha256-Zw9jUeP8r+FhMuK23Xwelb9NOXawqYs4pZx0oVbVLOs=";
+ };
+
+ dontUnpack = true;
+
+ addonId = "{de22fd49-c9ab-4359-b722-b3febdc3a0b0}";
+
+ installPhase = ''
+ mkdir -p $out
+ cp $src $out/${addonId}.xpi
+ '';
+}
diff --git a/hm/soft/librewolf/extensions/user-agent-switcher.nix b/hm/soft/librewolf/extensions/user-agent-switcher.nix
new file mode 100644
index 0000000..5168ead
--- /dev/null
+++ b/hm/soft/librewolf/extensions/user-agent-switcher.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "User-Agent Switcher and Manager";
+ version = "0.6.6";
+
+ src = fetchurl {
+ url = "https://addons.mozilla.org/firefox/downloads/file/4593736/user_agent_string_switcher-${version}.xpi";
+ sha256 = "sha256-nB/uKb2JpyH3r412qZeqytAn1PKxQc2wQ+6QJ7iWdZk=";
+ };
+
+ dontUnpack = true;
+
+ addonId = "{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}";
+
+ installPhase = ''
+ mkdir -p $out
+ cp $src $out/${addonId}.xpi
+ '';
+}
diff --git a/hm/soft/soft.nix b/hm/soft/soft.nix
index f6a9a69..80a0c04 100644
--- a/hm/soft/soft.nix
+++ b/hm/soft/soft.nix
@@ -1,7 +1,7 @@
{ ... }:
{
imports = [
- ./browser.nix
+ ./librewolf/browser.nix
./email.nix
./kdenlive.nix
./mangohud.nix
diff --git a/os/core/security.nix b/os/core/security.nix
index f0eadab..00bb48a 100644
--- a/os/core/security.nix
+++ b/os/core/security.nix
@@ -39,7 +39,7 @@ in
environment.systemPackages = with pkgs; [
doas-sudo-shim
veracrypt
- bitwarden-desktop
+ # bitwarden-desktop
keepassxc
git-credential-keepassxc
];
diff --git a/os/core/ssh.nix b/os/core/ssh.nix
index 3d1bedb..4f9b551 100644
--- a/os/core/ssh.nix
+++ b/os/core/ssh.nix
@@ -20,16 +20,18 @@ in
};
};
+ programs.ssh.startAgent = true;
+ services.gnome.gcr-ssh-agent.enable = false;
+
programs.gnupg.agent = {
enable = true;
- enableSSHSupport = true;
- # settings.default-key = "1DCCDC4E78380113E9BBBE413C7DEF329223B701";
+ enableSSHSupport = false;
pinentryPackage = pkgs.pinentry-curses;
};
users.users = {
${username}.openssh.authorizedKeys.keys = [
- "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID5/Mr4PLMDflZ+SoaYP9N3kRbkkh1qL5NLSgW6C7sAu adikro@disroot.org"
+ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC610CJfgc3yII7MpLVqzEzQGa8Tsm+dih+CTXHXTnv4 adikro@disroot.org"
];
};
};
diff --git a/os/srv/gaming.nix b/os/srv/gaming.nix
index acfd754..e95cb93 100644
--- a/os/srv/gaming.nix
+++ b/os/srv/gaming.nix
@@ -47,7 +47,7 @@ in
# --- EXTERNAL LAUNCHERS ---
(lib.mkIf cfg.launchers.enable {
environment.systemPackages = with pkgs; [
- heroic
+ # heroic
(prismlauncher.override {
additionalLibs = with pkgs; [ ocl-icd ];
jdks = with pkgs; [ javaPackages.compiler.temurin-bin.jdk-25 ];
diff --git a/os/srv/kdeconnect.nix b/os/srv/kdeconnect.nix
index 01a0e4d..0b54f98 100644
--- a/os/srv/kdeconnect.nix
+++ b/os/srv/kdeconnect.nix
@@ -1,7 +1,6 @@
{
config,
lib,
- username,
pkgs,
...
}:
@@ -11,8 +10,9 @@ in
{
options.os.srv.kdeconnect.enable = lib.mkEnableOption "enables kde connect";
config = lib.mkIf cfg.enable {
- environment.systemPackages = [ pkgs.kdePackages.dolphin ];
- programs.kdeconnect.enable = true;
- home-manager.users.${username}.services.kdeconnect.enable = true;
+ programs.kdeconnect = {
+ enable = true;
+ package = pkgs.valent;
+ };
};
}
diff --git a/os/srv/sops.nix b/os/srv/sops.nix
index 36ab9ef..6fac789 100644
--- a/os/srv/sops.nix
+++ b/os/srv/sops.nix
@@ -37,7 +37,6 @@ in
sops
age
ssh-to-age
- gnupg
];
};
}
diff --git a/secrets.yaml b/secrets.yaml
index d4aae53..f75b028 100644
--- a/secrets.yaml
+++ b/secrets.yaml
@@ -11,63 +11,72 @@ syncthing:
keepass: ENC[AES256_GCM,data:OLU0tYB9TTKZ5V1Mzj5FDE9YdCpj0ajJaoxzqd7HtTmaBqETjs7CjYriq7kCOgSEVBtwzek/NA1vetwuMQhI8Q==,iv:P9aBZCIbj23aOvuMBtAjAZ2L+0lUT5Xjk7XRikbc9u0=,tag:xnWUxctkKVTUOV0AtpnTug==,type:str]
sops:
age:
+ - recipient: age1g9xlgzxxvgfgq6a05jxy2e7zf8t4qgw6wjpjmvyhvzlnu8fmye6s8qx702
+ enc: |
+ -----BEGIN AGE ENCRYPTED FILE-----
+ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrMXIvNzNpNVpzNHRCa2RZ
+ ejJuN1NqeWVJR0pYZHhlKy9IbVN3VnlReHc0CmxvME9jWHQ0U2FMaEtxSUhmSXBO
+ anV0UVlCUGpFU2Z0UHZORWd2V3lkaHcKLS0tIFN1dHVXSWpXU1FwWkVBSHpVR0xX
+ RDBCM0laREFMSEQwUnZBSG9WSXJnR1EKTX2Z37TvWke5GbMd/gg7xiJguqpEhQ//
+ KnOYXE+G187+MnmrvRHs0S/3ZemCpi+1EXesjRhrDnwDw4zuerp2gw==
+ -----END AGE ENCRYPTED FILE-----
- recipient: age1s39d4mdrjhkf8cy8eea02p836r7s875fj8f7w3z4ld2stmaac49qd075ww
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
- YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIQ3BTak5UQ1hRVWJocStR
- bThIMnVJeEVVUHRxV0x5TzJUL0puNFBpdFJZCmh0Uy9SNUxYQXZOS1FLRnVzWXNB
- QXRnaUxKQlRRU1hoeWxMUXQxdFhTbkEKLS0tICtIMWlBbHI0U0VZVXJreUwzdHd6
- d3A4R1BpdFc2ckVDZWx6VjJHWUhoMEUKu2HgeHBQHTpdTlnL5VcYJqolVZ4CCjA1
- sBpBkR6wSzMVDeMdpW3sDP5MKNRedHzl/kQ+2YJcVUDgrLshV13CDg==
+ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtQjJlYlRmOXFPbW40SE5E
+ bGZYRU5jZUtlaktwMlNFNFlFeGxsdGREV2d3CmFOOHJ6OXpCR0tGc2d5NFBPc0E4
+ UUxQa0F2d1VkZUE4WlZFNkRTb1R0Rm8KLS0tIGpLZmtVcEtXSUFqR083K0tBdVpW
+ WHVtaWNFZmE1WDNCeWJCRG5DazEyd2cKgNf3Bfi9fGlEg3Lm+3DrKfbqQZFQ/tF3
+ p/mRaW/e8bs0DNLZ5aXOkqyvDj3ZcSc2HVO3/2IV36xCwKvE4dt0fA==
-----END AGE ENCRYPTED FILE-----
- recipient: age12htxy05mlkaqx7q6m5wufkqnnvhmhe4nfsr5ljlwkdk0u59f7ujq7537fw
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
- YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyOThFdGZTd0tZODBQVFRX
- UUpjM1BPYis1SjczdDNEaFJTa0p6VUVBeFFNCmlEc1JXWTZpYythUm40YW03VmZp
- VjhseFFxWlRuaG43YkgvWldRMWljVjAKLS0tIFN5OC91OUFpRWxUbHgxSzRHaEpu
- VTd2MTNCQytycStYNVdSdUJHTlFvTWcKMDA7zD6lx/FzStRE74hAYTpt8B3BmCip
- lin+lkJtquIF/1Je/dl16q+dV6OegLl84ODOm1txdvk9sf90vzGgzA==
+ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzcm1iL0RqSzVreGVjM1Jn
+ cVBaNzMzNW1QbUQxS1RBekNGcUFwNFhua1FFCm92dlAxOENZQWxJSm5CY3pVVlds
+ MDczaWhtMFVYTy8rb0lTaTVvQUVUTE0KLS0tIE5OQXJVbUhrYk1vZnhFanJlMWJp
+ WmhsNW5yOUhJUzhWcTZaR1dpNWZPNzQKmqtetzxPXD1yQgYeTx9+2AC1vUcybQAY
+ 5wvHj3+3KKsmcbZNU2cjqNwGawBtNR6DGB1CzG3WrxQcw87mEeF4Lw==
-----END AGE ENCRYPTED FILE-----
- recipient: age1sx8ut0arwlrp7n7qvlaele8mq93pyvzc0ddetlk47cnyx935gcusdceq9q
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
- YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5ekV2dHRhU3lrTjJSTVNO
- eXE0bDRaKzVFbjNtNkFVQW5TclJqcjUzTFJrClJXS0I4emZpV1V5ZzRrV3BWQURB
- Ly8vK2tNWE5HbDVPRzVzN1dHdDNRUWsKLS0tIElFMldQZER4bmE2SllrbEhlR21k
- MHlyaVhEanlWcjJDdTduS0M4ODF1TWsKV1ECI5a0sAWckrJ/96+wxHwcRHDaAz80
- jJNliK+BYiRyuI6EDG4fiKjFZkS/akI5Fqr8Fur15BvsXWUVw0Ifeg==
+ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnRzRYYVhzRWdoOVFsUlNS
+ WlpvWFQ0blpvT3pQWGxmS3o4VTFaZzZHclg0CkZ5TTYyRlh2SUYvR0lFS0Y5akVP
+ RCtVazFrbnJJMTlkQ0JHaUFGaW1FancKLS0tIHNFQjVGdVJ5T05MZ003aVFYYzBx
+ M0Q3aHkyQVl1U1pTelZvd3lsZ05aS0kKJPISkMgt80GfT3Hq7SYXO04gNAVdgd5x
+ XM4LZi9iQygvDoJc92f0XGartTKvyQ34dRSVz4DbPHGo3r9af1RZOA==
-----END AGE ENCRYPTED FILE-----
- recipient: age1m4u7n6mt5d3jv39lf4aedr9gqu3khl4sahuqx5n5h7v48gkyc9zqkp9qs8
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
- YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxeExUZCtqcTZkMy9taUlk
- OUIrOHZwaUpCd2xYTnlvUmlyUWZRSjVuZEJFCkJlUmU4WHp6d09DYkxyM0xBWmxu
- M0prbUxKRkJlZmtiMjZ2SmpDQXNCNVEKLS0tIGdtZVptSjRNZ0ovUW9NMkpLSjZi
- MW5ubSs3SFVTZHU0VnUrQTBaa0paL0kKGCV/0Kr3pCc/2v09yevtId7jBzexHOr1
- 1cEjtGw3IwUsrugbBtqR+KCTIt6bcShpdQLlpvPHymVU05j0PmFiBg==
+ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIRXlWZFUrT1F6TkRLaUVJ
+ ODRUSWNNVHpERlF6K1E4OVhjcm9aemlZem13CnpmdDRJWktmR01VWDloQlZHdHZP
+ YmorUXJRUFVjblFqcDZyL2QrcE8vTWcKLS0tIEswK3BsbVpEYmtHeUovUG9QQWNr
+ UERYN1p6OTNuaVFyQXZ3ellWK2ZoKzAKFFUxlkWZm+O+X0JkV4Gi2N/vDMNXnmM5
+ zgQTFmPjAMe5hKNHXk7smhKdEhRocb8IsQtTWIKlx0zJOfjllvquMw==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2026-03-06T22:04:13Z"
mac: ENC[AES256_GCM,data:LuJ93avw8+YwfEMo4jYaWuPR+FJHkJIuBNfXLm39aO/7z5YHzZt7Dg4V08IM1zhVdSBtIl/cw4PYBnp8/rKMpdx5XsmOGJ2l8i1JrQk1XckouQIWXodG4SoLBHxoCQ0vlnythlVptBlNK9yCDqynQs6xtZwO1nmOFSGPagsCDcw=,iv:V9RYOAVqgXA1zHTInFQKwixW0sO0CEGUo63SlCyoxeE=,tag:4BC8hAyVVKkSwpWdtfqJ0A==,type:str]
pgp:
- - created_at: "2026-03-10T19:47:54Z"
+ - created_at: "2026-03-17T21:13:34Z"
enc: |-
-----BEGIN PGP MESSAGE-----
- hQIMA/mKtLqB941HAQ//RHeWedUuCTwBQjXk23XQllbhMp5Ak3lzzzCePQDwXNhW
- OKQ7+IJ8E+rv+PhkGsNbYXbfGe9TNsEy+qG9kCAMeGenjf6zvbVnNTrLcn9LlDhn
- lROTF0uuLvEDXR/FYGHRSOoSa4IiPzHit14Pmvvl7dhUIsL1g7VZ45FLyrVykYvo
- WyFgcW83H+Ebz9c4c5t0sA26IzaN4DXgJZ5zT/39DofIox8+5uJP64EcVa5w5JLq
- Lvz0RaPXuZfwc68Qk8s+rbVqb+sjmlCy437iSPCyk4gg9Ui570+tD3cWPu5fb0r0
- v0R44HgLVzQvheSigXlEH/iopQqI0WT1RpqyTE+93niWZrdQrM+J6UrbYq6WEhSu
- KD9gVMoozMLrAXzcgsSyu2W2b1WAzecl3BZd4dCPH4ETCmaz7Zw6k8tquqe5Djb1
- M7Pck6buYunHijDrBW+zFhhCBrZdXs2goOy0DipQaLLaWuDYpPBWBTBJtzigp1TI
- Na115kevY8I1oBHc3Zyhqk31pmNvk684VUfJV+GA3xPrY5lEMsT6tqC+DoGvcXwC
- BaFzwFzQel9mFXgvMWe8U8LU031+Vlau1kL/mcCJCyXT1Up4LlbVvts4hsRECB/5
- yrTaEZlz7owX68/hBEfu/XxgpVv7FvsfCli24Jz9PicyOXhF2B2XaDBsk51Ro4jS
- XgE/tjMTjTU4u0TSXexFUaNv5AhuEruAZ7J6GvC3I7CvoZQyYR8ryQMkbnQ6713A
- cEFA8TkfBpqx4pXcXxqyHFX+cQ3v3X8vXL+CA2OB8S8zcmXWpnbLynNrmPVCkzU=
- =gece
+ hQIMA/mKtLqB941HAQ/+PRnBkhlEdhI6PsmuPTyiKfkfo/yypmx2+sYsqsaMMRgx
+ ko2jaaD96MOE0SBD+TtwyTaq+oJzWhOvogH3GKbT2AxAc7PXIOEOc8XjABE0Fsly
+ fGwVynBKQjAzrmA+Y1mqSQEERmvTqwOOMr+tVotzHAd61x6UpavjKqj/c0DgjLqt
+ RBftYPbMZ1834v8xz2uMY8/jAcfR292MJfL/YyJsxoVnVp5lQVWXLV2KXo9ToSNG
+ ku5cqWonTbZaMWDlgxL4a5chbtqwUaeuRa//zdlv1QXRKPfAsG/jGaZ8Khgw3uBK
+ Es6K7jAhvbQ7dSlZLiYXDqyjlu6oeD7s5kOViGZluHJA6WYzE+fu2iBH2U4h7TlW
+ vyg53OeoiF/ZVNaFYY6cZ2dhRG+U/01Xpcr6Q64QESrdZiaJWUHGuPKnI48YYHbV
+ J9mt6ngfrUJeHEqYiX/S/ugMzm/hgmdy8kjE18b8KEwixu2ed0J1jZ1Hg1546Bto
+ ErqXxXSizFDtpS89f8J/vkfubfSJL0PKn1gkX+I5RvFctOVdkfrIkZOnDpLakAIz
+ KTM4R2XRMXr0wnYrZZmZFN3i1Qjqi1VWCKGl3D0iZ4kbHk/wycu6JPuw2k5Icc9Z
+ euJeBV9bgw619pB7cf+tF6KVJDNkSW25KF+180kxvY1qf6/u7wqhdUsA7aAwmO3S
+ XgGZZ74zJc7Pg0A+qiCy1CXRqpi3Eox8j8fAqVWMq136ZDErmmGjc1hM42SvVJyI
+ M/RBT7hwQZgSMMtwOTbPVjsMkZVK2Ltli1n9apaPaGJfCdJxz7o8fEn/1oZq4J4=
+ =TG0y
-----END PGP MESSAGE-----
fp: EF69F2FB25C8B5A66918EA91A38ACEAB9656CD94
unencrypted_suffix: _unencrypted