mirror of
https://github.com/Swarsel/.dotfiles.git
synced 2026-04-14 13:19:09 +02:00
Compare commits
7 commits
91f4393800
...
b1b2fc68a3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b1b2fc68a3 | ||
|
|
05548fdfcb | ||
|
|
a0d3e701a5 | ||
|
|
ec4e302f44 | ||
|
|
2ea5b9c764 | ||
|
|
c1a5cfa20c | ||
|
|
130444f5d7 |
51 changed files with 2562 additions and 1644 deletions
1026
SwarselSystems.org
1026
SwarselSystems.org
File diff suppressed because it is too large
Load diff
|
|
@ -162,16 +162,30 @@ create a new one."
|
||||||
(define-key minibuffer-local-filename-completion-map
|
(define-key minibuffer-local-filename-completion-map
|
||||||
[C-backspace] #'up-directory)
|
[C-backspace] #'up-directory)
|
||||||
|
|
||||||
|
(declare-function consult--read "consult")
|
||||||
|
|
||||||
(defun swarsel/consult-magit-repos ()
|
(defun swarsel/consult-magit-repos ()
|
||||||
(interactive)
|
(interactive)
|
||||||
(require 'magit)
|
(require 'magit)
|
||||||
(let* ((repos (magit-list-repos))
|
(let ((repos (magit-list-repos)))
|
||||||
(repo (consult--read repos
|
(unless repos
|
||||||
|
(user-error "No repositories found in `magit-repository-directories'"))
|
||||||
|
(let ((repo
|
||||||
|
(if (or (fboundp 'consult--read)
|
||||||
|
(require 'consult nil t))
|
||||||
|
(consult--read repos
|
||||||
:prompt "Magit repo: "
|
:prompt "Magit repo: "
|
||||||
:require-match t
|
:require-match t
|
||||||
:history 'my/consult-magit-repos-history
|
:history 'my/consult-magit-repos-history
|
||||||
:sort t)))
|
:sort t)
|
||||||
(magit-status repo)))
|
(completing-read "Magit repo: "
|
||||||
|
repos
|
||||||
|
nil
|
||||||
|
t
|
||||||
|
nil
|
||||||
|
'my/consult-magit-repos-history))))
|
||||||
|
(when (and repo (> (length repo) 0))
|
||||||
|
(magit-status repo)))))
|
||||||
|
|
||||||
(defun swarsel/org-mode-setup ()
|
(defun swarsel/org-mode-setup ()
|
||||||
(variable-pitch-mode 1)
|
(variable-pitch-mode 1)
|
||||||
|
|
|
||||||
1363
flake.lock
generated
1363
flake.lock
generated
File diff suppressed because it is too large
Load diff
10
flake.nix
10
flake.nix
|
|
@ -28,7 +28,9 @@
|
||||||
smallpkgs.url = "github:nixos/nixpkgs/08fcb0dcb59df0344652b38ea6326a2d8271baff?narHash=sha256-HXIQzULIG/MEUW2Q/Ss47oE3QrjxvpUX7gUl4Xp6lnc%3D&shallow=1";
|
smallpkgs.url = "github:nixos/nixpkgs/08fcb0dcb59df0344652b38ea6326a2d8271baff?narHash=sha256-HXIQzULIG/MEUW2Q/Ss47oE3QrjxvpUX7gUl4Xp6lnc%3D&shallow=1";
|
||||||
nixpkgs-dev.url = "github:Swarsel/nixpkgs/main";
|
nixpkgs-dev.url = "github:Swarsel/nixpkgs/main";
|
||||||
nixpkgs-bisect.url = "github:nixos/nixpkgs/master";
|
nixpkgs-bisect.url = "github:nixos/nixpkgs/master";
|
||||||
nixpkgs-kernel.url = "github:NixOS/nixpkgs/063f43f2dbdef86376cc29ad646c45c46e93234c?narHash=sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o%3D"; #specifically pinned for kernel version
|
nixpkgs-update.url = "github:r-ryantm/nixpkgs/auto-update/oauth2-proxy";
|
||||||
|
# nixpkgs-kernel.url = "github:NixOS/nixpkgs/063f43f2dbdef86376cc29ad646c45c46e93234c?narHash=sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o%3D"; #specifically pinned for kernel version
|
||||||
|
nixpkgs-kernel.url = "github:nixos/nixpkgs/dd9b079222d43e1943b6ebd802f04fd959dc8e61?narHash=sha256-I45esRSssFtJ8p/gLHUZ1OUaaTaVLluNkABkk6arQwE%3D"; #specifically pinned for kernel version
|
||||||
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.11";
|
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.11";
|
||||||
nixpkgs-oddlama.url = "github:oddlama/nixpkgs/update/firezone-server";
|
nixpkgs-oddlama.url = "github:oddlama/nixpkgs/update/firezone-server";
|
||||||
nixpkgs-stable24_05.url = "github:NixOS/nixpkgs/nixos-24.05";
|
nixpkgs-stable24_05.url = "github:NixOS/nixpkgs/nixos-24.05";
|
||||||
|
|
@ -70,7 +72,8 @@
|
||||||
systems.url = "github:nix-systems/default";
|
systems.url = "github:nix-systems/default";
|
||||||
nur.url = "github:nix-community/NUR";
|
nur.url = "github:nix-community/NUR";
|
||||||
nixgl.url = "github:guibou/nixGL";
|
nixgl.url = "github:guibou/nixGL";
|
||||||
stylix.url = "github:danth/stylix";
|
# stylix.url = "github:danth/stylix";
|
||||||
|
stylix.url = "github:Swarsel/stylix";
|
||||||
sops.url = "github:Mic92/sops-nix";
|
sops.url = "github:Mic92/sops-nix";
|
||||||
lanzaboote.url = "github:nix-community/lanzaboote";
|
lanzaboote.url = "github:nix-community/lanzaboote";
|
||||||
nix-on-droid.url = "github:nix-community/nix-on-droid/release-24.05";
|
nix-on-droid.url = "github:nix-community/nix-on-droid/release-24.05";
|
||||||
|
|
@ -87,6 +90,7 @@
|
||||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||||
devshell.url = "github:numtide/devshell";
|
devshell.url = "github:numtide/devshell";
|
||||||
spicetify-nix.url = "github:Gerg-l/spicetify-nix";
|
spicetify-nix.url = "github:Gerg-l/spicetify-nix";
|
||||||
|
# spicetify-nix.url = "github:Swarsel/spicetify-nix";
|
||||||
niri-flake.url = "github:sodiboo/niri-flake";
|
niri-flake.url = "github:sodiboo/niri-flake";
|
||||||
nixos-extra-modules.url = "github:oddlama/nixos-extra-modules/main";
|
nixos-extra-modules.url = "github:oddlama/nixos-extra-modules/main";
|
||||||
microvm.url = "github:astro/microvm.nix";
|
microvm.url = "github:astro/microvm.nix";
|
||||||
|
|
@ -95,6 +99,8 @@
|
||||||
simple-nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/master";
|
simple-nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/master";
|
||||||
nixos-nftables-firewall.url = "github:thelegy/nixos-nftables-firewall";
|
nixos-nftables-firewall.url = "github:thelegy/nixos-nftables-firewall";
|
||||||
pia.url = "github:Swarsel/pia.nix/custom";
|
pia.url = "github:Swarsel/pia.nix/custom";
|
||||||
|
niritiling.url = "github:Swarsel/niritiling";
|
||||||
|
noctoggle.url = "git+ssh://git@github.com/Swarsel/noctoggle.git?ref=main";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,8 @@
|
||||||
# '';
|
# '';
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
kernelPackages = lib.mkDefault pkgs.kernel.linuxPackages;
|
# kernelPackages = lib.mkDefault pkgs.kernel.linuxPackages;
|
||||||
|
kernelPackages = lib.mkDefault pkgs.kernel.linuxPackages_latest;
|
||||||
# kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
|
# kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
|
||||||
binfmt.emulatedSystems = [ "aarch64-linux" ];
|
binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||||
initrd = {
|
initrd = {
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ in
|
||||||
|
|
||||||
programs.anki = {
|
programs.anki = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# # package = pkgs.anki;
|
package = pkgs.anki;
|
||||||
hideBottomBar = true;
|
hideBottomBar = true;
|
||||||
hideBottomBarMode = "always";
|
hideBottomBarMode = "always";
|
||||||
hideTopBar = true;
|
hideTopBar = true;
|
||||||
|
|
@ -18,7 +18,7 @@ in
|
||||||
reduceMotion = true;
|
reduceMotion = true;
|
||||||
spacebarRatesCard = true;
|
spacebarRatesCard = true;
|
||||||
# videoDriver = "opengl";
|
# videoDriver = "opengl";
|
||||||
sync = {
|
profiles."User 1".sync = {
|
||||||
autoSync = false; # sync on profile close will delay system shutdown
|
autoSync = false; # sync on profile close will delay system shutdown
|
||||||
syncMedia = true;
|
syncMedia = true;
|
||||||
autoSyncMediaMinutes = 5;
|
autoSyncMediaMinutes = 5;
|
||||||
|
|
|
||||||
14
modules/home/common/khal.nix
Normal file
14
modules/home/common/khal.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
let
|
||||||
|
moduleName = "khal";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings";
|
||||||
|
config = lib.mkIf config.swarselmodules.${moduleName} {
|
||||||
|
programs.${moduleName} = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.khal;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -14,7 +14,6 @@
|
||||||
picard-tools
|
picard-tools
|
||||||
audacity
|
audacity
|
||||||
sox
|
sox
|
||||||
# stable.feishin # does not work with oauth2-proxy
|
|
||||||
calibre
|
calibre
|
||||||
|
|
||||||
# printing
|
# printing
|
||||||
|
|
@ -32,7 +31,7 @@
|
||||||
(aspellWithDicts (dicts: with dicts; [ de en en-computers en-science ]))
|
(aspellWithDicts (dicts: with dicts; [ de en en-computers en-science ]))
|
||||||
|
|
||||||
# browser
|
# browser
|
||||||
stable24_11.vieb
|
vieb
|
||||||
mgba
|
mgba
|
||||||
|
|
||||||
# utilities
|
# utilities
|
||||||
|
|
@ -89,7 +88,7 @@
|
||||||
# element-desktop
|
# element-desktop
|
||||||
|
|
||||||
nicotine-plus
|
nicotine-plus
|
||||||
stable25_05.transmission_3
|
transmission_3
|
||||||
mktorrent
|
mktorrent
|
||||||
hugo
|
hugo
|
||||||
|
|
||||||
|
|
@ -150,13 +149,7 @@
|
||||||
slurp
|
slurp
|
||||||
|
|
||||||
# the following packages are used (in some way) by waybar
|
# the following packages are used (in some way) by waybar
|
||||||
# playerctl
|
|
||||||
pavucontrol
|
pavucontrol
|
||||||
# stable.pamixer
|
|
||||||
# gnome.gnome-clocks
|
|
||||||
# wlogout
|
|
||||||
# jdiskreport
|
|
||||||
# monitor
|
|
||||||
|
|
||||||
#keychain
|
#keychain
|
||||||
qalculate-gtk
|
qalculate-gtk
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,7 @@
|
||||||
pkgs.bat-extras.batdiff
|
pkgs.bat-extras.batdiff
|
||||||
pkgs.bat-extras.batman
|
pkgs.bat-extras.batman
|
||||||
pkgs.bat-extras.batwatch
|
pkgs.bat-extras.batwatch
|
||||||
] ++ [
|
pkgs.bat-extras.batgrep
|
||||||
pkgs.stable.bat-extras.batgrep
|
|
||||||
];
|
];
|
||||||
# extraPackages = with pkgs.bat-extras; [ batdiff batman batgrep batwatch ];
|
# extraPackages = with pkgs.bat-extras; [ batdiff batman batgrep batwatch ];
|
||||||
};
|
};
|
||||||
|
|
@ -88,5 +87,9 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home.sessionVariables = {
|
||||||
|
_ZO_EXCLUDE_DIRS = "$HOME:$HOME/.ansible/*:$HOME/test/*:/persist";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,8 @@ in
|
||||||
nixpkgs = lib.mkIf (!isNixos) {
|
nixpkgs = lib.mkIf (!isNixos) {
|
||||||
overlays = [
|
overlays = [
|
||||||
outputs.overlays.default
|
outputs.overlays.default
|
||||||
|
outputs.overlays.stables
|
||||||
|
outputs.overlays.modifications
|
||||||
(final: prev:
|
(final: prev:
|
||||||
let
|
let
|
||||||
additions = final: _: import "${self}/pkgs/config" {
|
additions = final: _: import "${self}/pkgs/config" {
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
systemd.user.services.swayosd = confLib.overrideTarget "sway-session.target";
|
systemd.user.services.swayosd = confLib.overrideTarget "sway-session.target";
|
||||||
services.swayosd = {
|
services.swayosd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.dev.swayosd;
|
package = pkgs.swayosd;
|
||||||
topMargin = 0.5;
|
topMargin = 0.5;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ in
|
||||||
config = lib.mkIf config.swarselmodules.${moduleName} {
|
config = lib.mkIf config.swarselmodules.${moduleName} {
|
||||||
programs.${moduleName} = {
|
programs.${moduleName} = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.stable.vesktop;
|
package = pkgs.vesktop;
|
||||||
settings = {
|
settings = {
|
||||||
appBadge = false;
|
appBadge = false;
|
||||||
arRPC = false;
|
arRPC = false;
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
package = pkgs.niri-stable; # which package to use for niri validation
|
package = pkgs.niri-stable; # which package to use for niri validation
|
||||||
settings = {
|
settings = {
|
||||||
gestures.hot-corners.enable = false;
|
gestures.hot-corners.enable = false;
|
||||||
|
hotkey-overlay.skip-at-startup = true;
|
||||||
debug = {
|
debug = {
|
||||||
honor-xdg-activation-with-invalid-serial = [ ];
|
honor-xdg-activation-with-invalid-serial = [ ];
|
||||||
};
|
};
|
||||||
|
|
@ -105,17 +106,19 @@
|
||||||
};
|
};
|
||||||
binds = with config.lib.niri.actions; let
|
binds = with config.lib.niri.actions; let
|
||||||
sh = spawn "sh" "-c";
|
sh = spawn "sh" "-c";
|
||||||
resizer = "niri-resize & sleep 0.05";
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
"Mod+Shift+t".action = toggle-window-rule-opacity;
|
"Mod+Shift+t".action = toggle-window-rule-opacity;
|
||||||
"Mod+m".action = focus-workspace-previous;
|
"Mod+m".action = focus-workspace-previous;
|
||||||
"Mod+Shift+Space".action = toggle-window-floating;
|
"Mod+Shift+Space".action = toggle-window-floating;
|
||||||
"Mod+Shift+f".action = fullscreen-window;
|
"Mod+Shift+f".action = fullscreen-window;
|
||||||
"Mod+q".action = sh "${resizer} && niri msg action close-window";
|
# "Mod+q".action = sh "${resizer} && niri msg action close-window";
|
||||||
"Mod+f".action = sh "${resizer} && exec firefox";
|
"Mod+q".action = sh "niri msg action close-window";
|
||||||
|
# "Mod+f".action = sh "${resizer} && exec firefox";
|
||||||
|
"Mod+f".action = sh "exec firefox";
|
||||||
# "Mod+Space".action = spawn "noctalia-shell" "ipc" "call" "launcher" "toggle";
|
# "Mod+Space".action = spawn "noctalia-shell" "ipc" "call" "launcher" "toggle";
|
||||||
"Mod+Space".action = sh "${resizer} && exec noctalia-shell ipc call launcher toggle";
|
# "Mod+Space".action = sh "${resizer} && exec noctalia-shell ipc call launcher toggle";
|
||||||
|
"Mod+Space".action = sh "exec noctalia-shell ipc call launcher toggle";
|
||||||
# "Mod+Space".action = sh "${resizer} & exec fuzzel";
|
# "Mod+Space".action = sh "${resizer} & exec fuzzel";
|
||||||
"Mod+z".action = spawn "noctalia-shell" "ipc" "call" "bar" "toggle";
|
"Mod+z".action = spawn "noctalia-shell" "ipc" "call" "bar" "toggle";
|
||||||
"Mod+Shift+c".action = spawn "qalculate-gtk";
|
"Mod+Shift+c".action = spawn "qalculate-gtk";
|
||||||
|
|
@ -130,11 +133,16 @@
|
||||||
"Mod+Shift+s".action.screenshot-window = { write-to-disk = true; };
|
"Mod+Shift+s".action.screenshot-window = { write-to-disk = true; };
|
||||||
# "Mod+Shift+v".action = spawn "wf-recorder" "-g" "'$(slurp -f %o -or)'" "-f" "~/Videos/screenrecord_$(date +%Y-%m-%d-%H%M%S).mkv";
|
# "Mod+Shift+v".action = spawn "wf-recorder" "-g" "'$(slurp -f %o -or)'" "-f" "~/Videos/screenrecord_$(date +%Y-%m-%d-%H%M%S).mkv";
|
||||||
|
|
||||||
"Mod+e".action = sh "${resizer} && exec emacsclient -nquc -a emacs -e '(dashboard-open)'";
|
# "Mod+e".action = sh "${resizer} && exec emacsclient -nquc -a emacs -e '(dashboard-open)'";
|
||||||
"Mod+c".action = sh "${resizer} && exec emacsclient -ce '(org-capture)'";
|
"Mod+e".action = sh "exec emacsclient -nquc -a emacs -e '(dashboard-open)'";
|
||||||
"Mod+t".action = sh "${resizer} && exec emacsclient -ce '(org-agenda)'";
|
# "Mod+c".action = sh "${resizer} && exec emacsclient -ce '(org-capture)'";
|
||||||
"Mod+Shift+m".action = sh "${resizer} && exec emacsclient -ce '(mu4e)'";
|
"Mod+c".action = sh "exec emacsclient -ce '(org-capture)'";
|
||||||
"Mod+Shift+a".action = sh "${resizer} && exec emacsclient -ce '(swarsel/open-calendar)'";
|
# "Mod+t".action = sh "${resizer} && exec emacsclient -ce '(org-agenda)'";
|
||||||
|
"Mod+t".action = sh "exec emacsclient -ce '(org-agenda)'";
|
||||||
|
# "Mod+Shift+m".action = sh "${resizer} && exec emacsclient -ce '(mu4e)'";
|
||||||
|
"Mod+Shift+m".action = sh "exec emacsclient -ce '(mu4e)'";
|
||||||
|
# "Mod+Shift+a".action = sh "${resizer} && exec emacsclient -ce '(swarsel/open-calendar)'";
|
||||||
|
"Mod+Shift+a".action = sh "exec emacsclient -ce '(swarsel/open-calendar)'";
|
||||||
|
|
||||||
"Mod+a".action = spawn "swarselcheck-niri" "-s";
|
"Mod+a".action = spawn "swarselcheck-niri" "-s";
|
||||||
"Mod+x".action = spawn "swarselcheck-niri" "-k";
|
"Mod+x".action = spawn "swarselcheck-niri" "-k";
|
||||||
|
|
@ -159,7 +167,8 @@
|
||||||
# "Mod+Shift+e".action = "exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'";
|
# "Mod+Shift+e".action = "exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'";
|
||||||
# "Mod+r".action = "mode resize";
|
# "Mod+r".action = "mode resize";
|
||||||
# "Mod+Return".action = "exec kitty";
|
# "Mod+Return".action = "exec kitty";
|
||||||
"Mod+Return".action = sh "${resizer} && exec kitty -o confirm_os_window_close=0";
|
# "Mod+Return".action = sh "${resizer} && exec kitty -o confirm_os_window_close=0";
|
||||||
|
"Mod+Return".action = sh "exec kitty -o confirm_os_window_close=0";
|
||||||
"XF86AudioRaiseVolume".action = spawn "noctalia-shell" "ipc" "call" "volume" "increase";
|
"XF86AudioRaiseVolume".action = spawn "noctalia-shell" "ipc" "call" "volume" "increase";
|
||||||
"XF86AudioLowerVolume".action = spawn "noctalia-shell" "ipc" "call" "volume" "decrease";
|
"XF86AudioLowerVolume".action = spawn "noctalia-shell" "ipc" "call" "volume" "decrease";
|
||||||
"XF86AudioMute".action = spawn "noctalia-shell" "ipc" "call" "volume" "muteOutput";
|
"XF86AudioMute".action = spawn "noctalia-shell" "ipc" "call" "volume" "muteOutput";
|
||||||
|
|
@ -205,7 +214,7 @@
|
||||||
# { command = [ "niri" "msg" "action" "focus-workspace" "2" ]; }
|
# { command = [ "niri" "msg" "action" "focus-workspace" "2" ]; }
|
||||||
# { command = [ "noctalia-shell" ]; }
|
# { command = [ "noctalia-shell" ]; }
|
||||||
# { argv = [ "pkill" "mako" ]; }
|
# { argv = [ "pkill" "mako" ]; }
|
||||||
{ argv = [ "systemctl" "--user" "restart" "noctalia-shell.target" "tray.target" ]; }
|
{ argv = [ "systemctl" "--user" "restart" "noctalia-shell.target" ]; }
|
||||||
];
|
];
|
||||||
# workspaces = {
|
# workspaces = {
|
||||||
# "01-Main" = {
|
# "01-Main" = {
|
||||||
|
|
@ -218,5 +227,33 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
xdgOpenUsePortal = true;
|
||||||
|
config.niri = {
|
||||||
|
default = [
|
||||||
|
"gtk"
|
||||||
|
"gnome"
|
||||||
|
];
|
||||||
|
"org.freedesktop.impl.portal.Access" = [ "gtk" ];
|
||||||
|
"org.freedesktop.impl.portal.Notification" = [ "gtk" ];
|
||||||
|
"org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ];
|
||||||
|
"org.freedesktop.impl.portal.FileChooser" = [ "gtk" ];
|
||||||
|
"org.freedesktop.impl.portal.ScreenCast" = [ "xdg-desktop-portal-gnome" ];
|
||||||
|
"org.freedesktop.impl.portal.Screenshot" = [ "xdg-desktop-portal-gnome" ];
|
||||||
|
};
|
||||||
|
extraPortals = [
|
||||||
|
pkgs.gnome-keyring
|
||||||
|
pkgs.xdg-desktop-portal-gtk
|
||||||
|
pkgs.xdg-desktop-portal-gnome
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
swarselmodules.gnome-keyring = lib.swarselsystems.mkStrong true;
|
||||||
|
|
||||||
|
home.packages = [
|
||||||
|
pkgs.nirius
|
||||||
|
];
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,13 @@
|
||||||
{ self, inputs, config, pkgs, lib, confLib, ... }:
|
{ self, inputs, config, pkgs, lib, confLib, type, ... }:
|
||||||
|
let
|
||||||
|
inherit (confLib.getConfig.repo.secrets.common) caldavTasksEndpoint;
|
||||||
|
inherit (config.swarselsystems) xdgDir;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
inputs.noctalia.homeModules.default
|
inputs.noctalia.homeModules.default
|
||||||
];
|
];
|
||||||
|
options.swarselmodules.optional-noctalia = lib.swarselsystems.mkTrueOption;
|
||||||
config = {
|
config = {
|
||||||
systemd.user = {
|
systemd.user = {
|
||||||
targets = {
|
targets = {
|
||||||
|
|
@ -11,24 +16,35 @@
|
||||||
};
|
};
|
||||||
tray = {
|
tray = {
|
||||||
Unit = {
|
Unit = {
|
||||||
After = [ "noctalia-init.service" ];
|
Wants = [ "noctalia-init.service" ];
|
||||||
PartOf = [ "noctalia-shell.service" ];
|
After = [
|
||||||
|
"noctalia-shell.service"
|
||||||
|
"noctalia-init.service"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
Install.WantedBy = [ "noctalia-shell.target" ];
|
Install.WantedBy = [ "noctalia-shell.target" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
services = {
|
services = {
|
||||||
noctalia-shell = confLib.overrideTarget "noctalia-shell.target";
|
noctalia-shell = {
|
||||||
|
Unit.PartOf = [ "noctalia-shell.target" ];
|
||||||
|
Install.WantedBy = [ "noctalia-shell.target" ];
|
||||||
|
};
|
||||||
noctalia-init = {
|
noctalia-init = {
|
||||||
|
|
||||||
|
Unit = {
|
||||||
|
Requires = [ "noctalia-shell.service" ];
|
||||||
|
After = [ "noctalia-shell.service" ];
|
||||||
|
};
|
||||||
|
|
||||||
Service = {
|
Service = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
ExecStart = "${pkgs.coreutils}/bin/sleep 15";
|
ExecStart = "${pkgs.coreutils}/bin/sleep 3";
|
||||||
RemainAfterExit = true;
|
RemainAfterExit = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
Install = {
|
Install = {
|
||||||
WantedBy = [ "noctalia-shell.target" ];
|
WantedBy = [ "tray.target" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -38,7 +54,7 @@
|
||||||
fastfetch.enable = true;
|
fastfetch.enable = true;
|
||||||
noctalia-shell = {
|
noctalia-shell = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.noctalia-shell.override { calendarSupport = true; };
|
package = pkgs.noctalia-shell;
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
bar = {
|
bar = {
|
||||||
|
|
@ -58,7 +74,7 @@
|
||||||
frameRadius = 12;
|
frameRadius = 12;
|
||||||
outerCorners = false;
|
outerCorners = false;
|
||||||
hideOnOverview = false;
|
hideOnOverview = false;
|
||||||
displayMode = "auto_hide";
|
displayMode = "non_exclusive";
|
||||||
autoHideDelay = 100;
|
autoHideDelay = 100;
|
||||||
autoShowDelay = 300;
|
autoShowDelay = 300;
|
||||||
screenOverrides = [ ];
|
screenOverrides = [ ];
|
||||||
|
|
@ -107,7 +123,7 @@
|
||||||
todos = [ ];
|
todos = [ ];
|
||||||
useCustomColors = false;
|
useCustomColors = false;
|
||||||
};
|
};
|
||||||
id = "plugin:todo";
|
id = "plugin:ba7043:todo";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
center = [
|
center = [
|
||||||
|
|
@ -149,7 +165,7 @@
|
||||||
showUnreadBadge = true;
|
showUnreadBadge = true;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
id = "plugin:ba7043:github-feed";
|
id = "plugin:github-feed";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
id = "plugin:clipper";
|
id = "plugin:clipper";
|
||||||
|
|
@ -175,7 +191,7 @@
|
||||||
showPowerProfiles = true;
|
showPowerProfiles = true;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
colorName = "primary";
|
iconColor = "none";
|
||||||
id = "SessionMenu";
|
id = "SessionMenu";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
|
@ -189,7 +205,7 @@
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
colorizeDistroLogo = false;
|
colorizeDistroLogo = false;
|
||||||
colorizeSystemIcon = "primary";
|
colorizeSystemIcon = "none";
|
||||||
customIconPath = "${self}/files/icons/swarsel.png";
|
customIconPath = "${self}/files/icons/swarsel.png";
|
||||||
enableColorization = true;
|
enableColorization = true;
|
||||||
icon = "noctalia";
|
icon = "noctalia";
|
||||||
|
|
@ -322,9 +338,12 @@
|
||||||
viewMode = "list";
|
viewMode = "list";
|
||||||
showCategories = false;
|
showCategories = false;
|
||||||
iconMode = "native";
|
iconMode = "native";
|
||||||
|
density = "compact";
|
||||||
|
overviewLayer = false;
|
||||||
showIconBackground = false;
|
showIconBackground = false;
|
||||||
enableSettingsSearch = false;
|
enableSettingsSearch = false;
|
||||||
enableWindowsSearch = false;
|
enableWindowsSearch = false;
|
||||||
|
enableSessionSearch = false;
|
||||||
ignoreMouseInput = true;
|
ignoreMouseInput = true;
|
||||||
screenshotAnnotationTool = "";
|
screenshotAnnotationTool = "";
|
||||||
};
|
};
|
||||||
|
|
@ -434,36 +453,49 @@
|
||||||
command = "";
|
command = "";
|
||||||
countdownEnabled = true;
|
countdownEnabled = true;
|
||||||
enabled = true;
|
enabled = true;
|
||||||
|
keybind = "L";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
action = "suspend";
|
action = "suspend";
|
||||||
command = "";
|
command = "";
|
||||||
countdownEnabled = true;
|
countdownEnabled = true;
|
||||||
enabled = true;
|
enabled = true;
|
||||||
|
keybind = "S";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
action = "hibernate";
|
action = "hibernate";
|
||||||
command = "";
|
command = "";
|
||||||
countdownEnabled = true;
|
countdownEnabled = true;
|
||||||
enabled = true;
|
enabled = true;
|
||||||
|
keybind = "H";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
action = "reboot";
|
action = "reboot";
|
||||||
command = "";
|
command = "";
|
||||||
countdownEnabled = true;
|
countdownEnabled = true;
|
||||||
enabled = true;
|
enabled = true;
|
||||||
|
keybind = "R";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
action = "logout";
|
action = "logout";
|
||||||
command = "";
|
command = "";
|
||||||
countdownEnabled = true;
|
countdownEnabled = true;
|
||||||
enabled = true;
|
enabled = true;
|
||||||
|
keybind = "U";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
action = "shutdown";
|
action = "shutdown";
|
||||||
command = "";
|
command = "";
|
||||||
countdownEnabled = true;
|
countdownEnabled = true;
|
||||||
enabled = true;
|
enabled = true;
|
||||||
|
keybind = "P";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "rebootToUefi";
|
||||||
|
command = "";
|
||||||
|
countdownEnabled = true;
|
||||||
|
enabled = true;
|
||||||
|
keybind = "B";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
@ -550,7 +582,7 @@
|
||||||
"unicode-picker"
|
"unicode-picker"
|
||||||
"screen-recorder"
|
"screen-recorder"
|
||||||
]) // {
|
]) // {
|
||||||
github-feed = {
|
todo = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
sourceUrl = "https://github.com/Swarsel/noctalia-plugins";
|
sourceUrl = "https://github.com/Swarsel/noctalia-plugins";
|
||||||
};
|
};
|
||||||
|
|
@ -561,6 +593,28 @@
|
||||||
enableTodoIntegration = false;
|
enableTodoIntegration = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
todo = {
|
||||||
|
|
||||||
|
caldavEnabled = true;
|
||||||
|
caldavUrl = caldavTasksEndpoint;
|
||||||
|
caldavUsername = config.swarselsystems.mainUser;
|
||||||
|
caldavPasswordType = "file";
|
||||||
|
caldavPasswordCmd = "";
|
||||||
|
caldavPasswordFile = confLib.getConfig.sops.secrets.radicale-token.path;
|
||||||
|
caldavSyncInterval = 300;
|
||||||
|
current_page_id = 1;
|
||||||
|
pages = [
|
||||||
|
{
|
||||||
|
id = 0;
|
||||||
|
name = "General";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
id = 1;
|
||||||
|
name = "Work";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
privacy-indicator = {
|
privacy-indicator = {
|
||||||
hideInactive = true;
|
hideInactive = true;
|
||||||
iconSpacing = 4;
|
iconSpacing = 4;
|
||||||
|
|
@ -598,8 +652,8 @@
|
||||||
# my fork:
|
# my fork:
|
||||||
showNotificationBadge = true;
|
showNotificationBadge = true;
|
||||||
colorizationEnabled = true;
|
colorizationEnabled = true;
|
||||||
colorizationIcon = "Primary";
|
colorizationIcon = "None";
|
||||||
colorizationBadge = "Tertiary";
|
colorizationBadge = "Primary";
|
||||||
colorizationBadgeText = "None";
|
colorizationBadgeText = "None";
|
||||||
defaultTab = 1;
|
defaultTab = 1;
|
||||||
enableSystemNotifications = true;
|
enableSystemNotifications = true;
|
||||||
|
|
@ -615,5 +669,9 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
} // lib.optionalAttrs (type != "nixos") {
|
||||||
|
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic && !config.swarselsystems.isNixos) {
|
||||||
|
radicale-token = { path = "${xdgDir}/secrets/radicaleToken"; };
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ in
|
||||||
config = {
|
config = {
|
||||||
home = {
|
home = {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
stable.teams-for-linux
|
teams-for-linux
|
||||||
shellcheck
|
shellcheck
|
||||||
dig
|
dig
|
||||||
docker
|
docker
|
||||||
|
|
@ -21,9 +21,12 @@ in
|
||||||
prometheus.cli
|
prometheus.cli
|
||||||
tigervnc
|
tigervnc
|
||||||
# openstackclient
|
# openstackclient
|
||||||
|
step-cli
|
||||||
|
|
||||||
|
vscode-fhs
|
||||||
|
copilot-cli
|
||||||
|
antigravity
|
||||||
|
|
||||||
vscode
|
|
||||||
dev.antigravity
|
|
||||||
|
|
||||||
rustdesk-vbc
|
rustdesk-vbc
|
||||||
];
|
];
|
||||||
|
|
@ -145,7 +148,7 @@ in
|
||||||
|
|
||||||
programs =
|
programs =
|
||||||
let
|
let
|
||||||
inherit (confLib.getConfig.repo.secrets.local.work) user1 user1Long user2 user2Long user3 user3Long user4 path1 loc1 loc2 site1 site2 site3 site4 site5 site6 site7 lifecycle1 lifecycle2 domain1 domain2 gitMail clouds;
|
inherit (confLib.getConfig.repo.secrets.local.work) user1 user1Long user2 user2Long user3 user3Long user4 path1 loc1 loc2 site1 site2 site3 site4 site5 site6 site7 lifecycle1 lifecycle2 domain1 domain2 clouds;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
openstackclient = {
|
openstackclient = {
|
||||||
|
|
@ -154,7 +157,7 @@ in
|
||||||
};
|
};
|
||||||
awscli = {
|
awscli = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.stable24_05.awscli2;
|
package = pkgs.awscli2;
|
||||||
# settings = {
|
# settings = {
|
||||||
# "default" = { };
|
# "default" = { };
|
||||||
# "profile s3-imagebuilder-prod" = { };
|
# "profile s3-imagebuilder-prod" = { };
|
||||||
|
|
@ -166,7 +169,8 @@ in
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
};
|
};
|
||||||
git.settings.user.email = lib.mkForce gitMail;
|
# this is no longer needed since moving away from bitbucket
|
||||||
|
# git.settings.user.email = lib.mkForce gitMail;
|
||||||
|
|
||||||
zsh = {
|
zsh = {
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
|
|
@ -552,7 +556,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
Service = {
|
Service = {
|
||||||
ExecStart = "${pkgs.stable.teams-for-linux}/bin/teams-for-linux --disableGpu=true --minimized=true --trayIconEnabled=true";
|
ExecStart = "${pkgs.teams-for-linux}/bin/teams-for-linux --disableGpu=true --minimized=true --trayIconEnabled=true";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
virtualisation.podman = {
|
virtualisation.podman = {
|
||||||
enable = true;
|
enable = true;
|
||||||
dockerCompat = true;
|
dockerCompat = true;
|
||||||
package = pkgs.stable.podman;
|
package = pkgs.podman;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
|
|
||||||
bluetooth = lib.mkIf config.swarselsystems.hasBluetooth {
|
bluetooth = lib.mkIf config.swarselsystems.hasBluetooth {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.stable.bluez;
|
package = pkgs.bluez;
|
||||||
powerOnBoot = true;
|
powerOnBoot = true;
|
||||||
settings = {
|
settings = {
|
||||||
General = {
|
General = {
|
||||||
|
|
|
||||||
|
|
@ -82,31 +82,30 @@
|
||||||
pipewire
|
pipewire
|
||||||
pixman
|
pixman
|
||||||
speex
|
speex
|
||||||
# stable.cc.cc
|
steam-fhsenv-without-steam
|
||||||
stable25_05.steam-fhsenv-without-steam
|
|
||||||
systemd
|
systemd
|
||||||
tbb
|
tbb
|
||||||
vulkan-loader
|
vulkan-loader
|
||||||
xorg.libICE
|
libice
|
||||||
xorg.libSM
|
libsm
|
||||||
xorg.libX11
|
libx11
|
||||||
xorg.libXScrnSaver
|
libxscrnsaver
|
||||||
xorg.libXcomposite
|
libxcomposite
|
||||||
xorg.libXcursor
|
libxcursor
|
||||||
xorg.libXdamage
|
libxdamage
|
||||||
xorg.libXext
|
libxext
|
||||||
xorg.libXfixes
|
libxfixes
|
||||||
xorg.libXft
|
libxft
|
||||||
xorg.libXi
|
libxi
|
||||||
xorg.libXinerama
|
libxinerama
|
||||||
xorg.libXmu
|
libxmu
|
||||||
xorg.libXrandr
|
libxrandr
|
||||||
xorg.libXrender
|
libxrender
|
||||||
xorg.libXt
|
libxt
|
||||||
xorg.libXtst
|
libxtst
|
||||||
xorg.libXxf86vm
|
libxxf86vm
|
||||||
xorg.libxcb
|
libxcb
|
||||||
xorg.libxshmfence
|
libxshmfence
|
||||||
zlib
|
zlib
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
pcsc-tools
|
pcsc-tools
|
||||||
pcscliteWithPolkit.out
|
pcscliteWithPolkit.out
|
||||||
|
|
||||||
|
|
||||||
# ledger packages
|
# ledger packages
|
||||||
ledger-live-desktop
|
ledger-live-desktop
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.stable.pipewire;
|
package = pkgs.pipewire;
|
||||||
pulse.enable = true;
|
pulse.enable = true;
|
||||||
jack.enable = true;
|
jack.enable = true;
|
||||||
audio.enable = true;
|
audio.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,8 @@
|
||||||
{
|
{
|
||||||
options.swarselmodules.swayosd = lib.mkEnableOption "swayosd settings";
|
options.swarselmodules.swayosd = lib.mkEnableOption "swayosd settings";
|
||||||
config = lib.mkIf config.swarselmodules.swayosd {
|
config = lib.mkIf config.swarselmodules.swayosd {
|
||||||
environment.systemPackages = [ pkgs.dev.swayosd ];
|
environment.systemPackages = [ pkgs.swayosd ];
|
||||||
services.udev.packages = [ pkgs.dev.swayosd ];
|
services.udev.packages = [ pkgs.swayosd ];
|
||||||
systemd.services.swayosd-libinput-backend = {
|
systemd.services.swayosd-libinput-backend = {
|
||||||
description = "SwayOSD LibInput backend for listening to certain keys like CapsLock, ScrollLock, VolumeUp, etc.";
|
description = "SwayOSD LibInput backend for listening to certain keys like CapsLock, ScrollLock, VolumeUp, etc.";
|
||||||
documentation = [ "https://github.com/ErikReider/SwayOSD" ];
|
documentation = [ "https://github.com/ErikReider/SwayOSD" ];
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "dbus";
|
Type = "dbus";
|
||||||
BusName = "org.erikreider.swayosd";
|
BusName = "org.erikreider.swayosd";
|
||||||
ExecStart = "${pkgs.dev.swayosd}/bin/swayosd-libinput-backend";
|
ExecStart = "${pkgs.swayosd}/bin/swayosd-libinput-backend";
|
||||||
Restart = "on-failure";
|
Restart = "on-failure";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,8 @@ in
|
||||||
github-forge-token = { owner = mainUser; };
|
github-forge-token = { owner = mainUser; };
|
||||||
}) // (lib.optionalAttrs (modules ? optional-work) {
|
}) // (lib.optionalAttrs (modules ? optional-work) {
|
||||||
harica-root-ca = { sopsFile = certsSopsFile; path = "${homeDir}/.aws/certs/harica-root.pem"; owner = mainUser; };
|
harica-root-ca = { sopsFile = certsSopsFile; path = "${homeDir}/.aws/certs/harica-root.pem"; owner = mainUser; };
|
||||||
|
}) // (lib.optionalAttrs (modules ? optional-noctalia) {
|
||||||
|
radicale-token = { owner = mainUser; };
|
||||||
}) // (lib.optionalAttrs modules.anki {
|
}) // (lib.optionalAttrs modules.anki {
|
||||||
anki-user = { owner = mainUser; };
|
anki-user = { owner = mainUser; };
|
||||||
anki-pw = { owner = mainUser; };
|
anki-pw = { owner = mainUser; };
|
||||||
|
|
|
||||||
|
|
@ -122,6 +122,8 @@ in
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
overlays = [
|
overlays = [
|
||||||
outputs.overlays.default
|
outputs.overlays.default
|
||||||
|
outputs.overlays.stables
|
||||||
|
outputs.overlays.modifications
|
||||||
] ++ lib.optionals withHomeManager [
|
] ++ lib.optionals withHomeManager [
|
||||||
(final: prev:
|
(final: prev:
|
||||||
let
|
let
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@
|
||||||
description = "Leon S";
|
description = "Leon S";
|
||||||
password = lib.mkIf (minimal || config.swarselsystems.isPublic) "setup";
|
password = lib.mkIf (minimal || config.swarselsystems.isPublic) "setup";
|
||||||
hashedPasswordFile = lib.mkIf (!minimal && !config.swarselsystems.isPublic) config.sops.secrets.main-user-hashed-pw.path;
|
hashedPasswordFile = lib.mkIf (!minimal && !config.swarselsystems.isPublic) config.sops.secrets.main-user-hashed-pw.path;
|
||||||
extraGroups = [ "wheel" ] ++ lib.optionals (!minimal && !config.swarselsystems.isMicroVM) [ "networkmanager" "syncthing" "docker" "lp" "audio" "video" "vboxusers" "libvirtd" "scanner" ];
|
extraGroups = [ "wheel" ] ++ lib.optionals (!minimal && !config.swarselsystems.isMicroVM) [ "networkmanager" "input" "syncthing" "docker" "lp" "audio" "video" "vboxusers" "libvirtd" "scanner" ];
|
||||||
packages = with pkgs; [ ];
|
packages = with pkgs; [ ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,11 @@ in
|
||||||
nix.settings.experimental-features = "nix-command flakes";
|
nix.settings.experimental-features = "nix-command flakes";
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
hostPlatform = "x86_64-darwin";
|
hostPlatform = "x86_64-darwin";
|
||||||
overlays = [ outputs.overlays.default ];
|
overlays = [
|
||||||
|
outputs.overlays.default
|
||||||
|
outputs.overlays.stables
|
||||||
|
outputs.overlays.modifications
|
||||||
|
];
|
||||||
config = {
|
config = {
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@
|
||||||
xwayland-satellite-unstable
|
xwayland-satellite-unstable
|
||||||
];
|
];
|
||||||
|
|
||||||
|
services.niritiling.enable = true;
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
niri = {
|
niri = {
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,16 @@
|
||||||
services = {
|
services = {
|
||||||
upower.enable = true; # needed for battery percentage
|
upower.enable = true; # needed for battery percentage
|
||||||
gnome.evolution-data-server.enable = true; # needed for calendar integration
|
gnome.evolution-data-server.enable = true; # needed for calendar integration
|
||||||
|
|
||||||
|
noctoggle = {
|
||||||
|
enable = true;
|
||||||
|
# noctaliaPackage = pkgs.noctalia-shell;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
programs = {
|
||||||
|
gpu-screen-recorder.enable = true;
|
||||||
|
evolution.enable = true;
|
||||||
};
|
};
|
||||||
programs.gpu-screen-recorder.enable = true;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
enableKvm = true;
|
enableKvm = true;
|
||||||
addNetworkInterface = lib.mkIf config.virtualisation.virtualbox.host.enableKvm false;
|
addNetworkInterface = lib.mkIf config.virtualisation.virtualbox.host.enableKvm false;
|
||||||
package = pkgs.stable.virtualbox;
|
package = pkgs.virtualbox;
|
||||||
enableExtensionPack = true;
|
enableExtensionPack = true;
|
||||||
};
|
};
|
||||||
# leaving this here for future notice. setting guest.enable = true will make 'restarting sysinit-reactivation.target' take till timeout on nixos-rebuild switch
|
# leaving this here for future notice. setting guest.enable = true will make 'restarting sysinit-reactivation.target' take till timeout on nixos-rebuild switch
|
||||||
|
|
|
||||||
|
|
@ -160,7 +160,7 @@ in
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
remmina
|
remmina
|
||||||
# gp-onsaml-gui
|
# gp-onsaml-gui
|
||||||
stable24_11.python39
|
python39
|
||||||
qemu
|
qemu
|
||||||
packer
|
packer
|
||||||
gnumake
|
gnumake
|
||||||
|
|
|
||||||
|
|
@ -174,19 +174,19 @@ in
|
||||||
|
|
||||||
domain = {
|
domain = {
|
||||||
settings.ERLANG_DISTRIBUTION_PORT = domainPort;
|
settings.ERLANG_DISTRIBUTION_PORT = domainPort;
|
||||||
package = pkgs.dev.firezone-server-domain;
|
package = pkgs.firezone-server-domain;
|
||||||
};
|
};
|
||||||
api = {
|
api = {
|
||||||
externalUrl = "https://${serviceDomain}/api/";
|
externalUrl = "https://${serviceDomain}/api/";
|
||||||
address = "0.0.0.0";
|
address = "0.0.0.0";
|
||||||
port = apiPort;
|
port = apiPort;
|
||||||
package = pkgs.dev.firezone-server-api;
|
package = pkgs.firezone-server-api;
|
||||||
};
|
};
|
||||||
web = {
|
web = {
|
||||||
externalUrl = "https://${serviceDomain}/";
|
externalUrl = "https://${serviceDomain}/";
|
||||||
address = "0.0.0.0";
|
address = "0.0.0.0";
|
||||||
port = webPort;
|
port = webPort;
|
||||||
package = pkgs.dev.firezone-server-web;
|
package = pkgs.firezone-server-web;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -199,7 +199,7 @@ in
|
||||||
publicIpv4 = proxyAddress4;
|
publicIpv4 = proxyAddress4;
|
||||||
publicIpv6 = proxyAddress6;
|
publicIpv6 = proxyAddress6;
|
||||||
openFirewall = lib.mkIf (!isProxied) true;
|
openFirewall = lib.mkIf (!isProxied) true;
|
||||||
package = pkgs.dev.firezone-relay;
|
package = pkgs.firezone-relay;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# systemd.services.firezone-initialize =
|
# systemd.services.firezone-initialize =
|
||||||
|
|
|
||||||
|
|
@ -205,9 +205,10 @@ in
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
${serviceName} = {
|
${serviceName} = {
|
||||||
package = pkgs.kanidmWithSecretProvisioning_1_8;
|
package = pkgs.kanidmWithSecretProvisioning_1_9;
|
||||||
enableServer = true;
|
server = {
|
||||||
serverSettings = {
|
enable = true;
|
||||||
|
settings = {
|
||||||
domain = serviceDomain;
|
domain = serviceDomain;
|
||||||
origin = "https://${serviceDomain}";
|
origin = "https://${serviceDomain}";
|
||||||
# tls_chain = config.sops.secrets.kanidm-self-signed-crt.path;
|
# tls_chain = config.sops.secrets.kanidm-self-signed-crt.path;
|
||||||
|
|
@ -217,12 +218,15 @@ in
|
||||||
bindaddress = "0.0.0.0:${toString servicePort}";
|
bindaddress = "0.0.0.0:${toString servicePort}";
|
||||||
# trust_x_forward_for = true;
|
# trust_x_forward_for = true;
|
||||||
};
|
};
|
||||||
enableClient = true;
|
};
|
||||||
clientSettings = {
|
client = {
|
||||||
uri = config.services.kanidm.serverSettings.origin;
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
uri = config.services.kanidm.server.settings.origin;
|
||||||
verify_ca = true;
|
verify_ca = true;
|
||||||
verify_hostnames = true;
|
verify_hostnames = true;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
provision = {
|
provision = {
|
||||||
enable = true;
|
enable = true;
|
||||||
adminPasswordFile = config.sops.secrets.kanidm-admin-pw.path;
|
adminPasswordFile = config.sops.secrets.kanidm-admin-pw.path;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ self, lib, config, pkgs, globals, dns, confLib, ... }:
|
{ lib, config, globals, dns, confLib, ... }:
|
||||||
let
|
let
|
||||||
inherit (config.swarselsystems) sopsFile;
|
inherit (config.swarselsystems) sopsFile;
|
||||||
|
|
||||||
|
|
@ -8,9 +8,6 @@ in
|
||||||
{
|
{
|
||||||
options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server";
|
options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server";
|
||||||
config = lib.mkIf config.swarselmodules.server.${serviceName} {
|
config = lib.mkIf config.swarselmodules.server.${serviceName} {
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
calibre
|
|
||||||
];
|
|
||||||
|
|
||||||
users = {
|
users = {
|
||||||
persistentIds.kavita = confLib.mkIds 995;
|
persistentIds.kavita = confLib.mkIds 995;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ self, lib, config, globals, dns, confLib, ... }:
|
{ self, lib, config, globals, dns, confLib, ... }:
|
||||||
let
|
let
|
||||||
inherit (config.swarselsystems) sopsFile;
|
inherit (config.swarselsystems) sopsFile;
|
||||||
inherit (confLib.gen { name = "mailserver"; dir = "/var/lib/dovecot"; user = "virtualMail"; group = "virtualMail"; port = 80; }) serviceName serviceDir servicePort serviceUser serviceGroup serviceAddress serviceDomain proxyAddress4 proxyAddress6;
|
inherit (confLib.gen { name = "mailserver"; dir = "/var/lib/dovecot"; user = "virtualMail"; group = "virtualMail"; port = 443; }) serviceName serviceDir servicePort serviceUser serviceGroup serviceAddress serviceDomain proxyAddress4 proxyAddress6;
|
||||||
inherit (confLib.static) isHome webProxy homeWebProxy dnsServer homeServiceAddress nginxAccessRules;
|
inherit (confLib.static) isHome webProxy homeWebProxy dnsServer homeServiceAddress nginxAccessRules;
|
||||||
inherit (config.repo.secrets.local.mailserver) user1 alias1_1 alias1_2 alias1_3 alias1_4 user2 alias2_1 alias2_2 alias2_3 user3;
|
inherit (config.repo.secrets.local.mailserver) user1 alias1_1 alias1_2 alias1_3 alias1_4 user2 alias2_1 alias2_2 alias2_3 user3;
|
||||||
baseDomain = globals.domains.main;
|
baseDomain = globals.domains.main;
|
||||||
|
|
@ -127,7 +127,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
# the rest of the ports are managed by snm
|
# the rest of the ports are managed by snm
|
||||||
networking.firewall.allowedTCPPorts = [ 80 servicePort ];
|
networking.firewall.allowedTCPPorts = [ 80 443 ];
|
||||||
|
|
||||||
services.nginx = {
|
services.nginx = {
|
||||||
virtualHosts = {
|
virtualHosts = {
|
||||||
|
|
@ -158,8 +158,8 @@ in
|
||||||
"${globals.services.${serviceName}.subDomain}" = dns.lib.combinators.host endpointAddress4 endpointAddress6;
|
"${globals.services.${serviceName}.subDomain}" = dns.lib.combinators.host endpointAddress4 endpointAddress6;
|
||||||
"${globals.services.roundcube.subDomain}" = dns.lib.combinators.host proxyAddress4 proxyAddress6;
|
"${globals.services.roundcube.subDomain}" = dns.lib.combinators.host proxyAddress4 proxyAddress6;
|
||||||
};
|
};
|
||||||
${webProxy}.services.nginx = confLib.genNginx { inherit serviceAddress servicePort serviceName extraConfigLoc; serviceDomain = roundcubeDomain; maxBody = 0; };
|
${webProxy}.services.nginx = confLib.genNginx { inherit serviceAddress servicePort serviceName extraConfigLoc; serviceDomain = roundcubeDomain; protocol = "https"; maxBody = 0; };
|
||||||
${homeWebProxy}.services.nginx = lib.mkIf isHome (confLib.genNginx { inherit servicePort serviceName extraConfigLoc; serviceDomain = roundcubeDomain; maxBody = 0; extraConfig = nginxAccessRules; serviceAddress = homeServiceAddress; });
|
${homeWebProxy}.services.nginx = lib.mkIf isHome (confLib.genNginx { inherit servicePort serviceName extraConfigLoc; serviceDomain = roundcubeDomain; protocol = "https"; maxBody = 0; extraConfig = nginxAccessRules; serviceAddress = homeServiceAddress; });
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -124,7 +124,9 @@ in
|
||||||
analytics.reporting_enabled = false;
|
analytics.reporting_enabled = false;
|
||||||
users.allow_sign_up = false;
|
users.allow_sign_up = false;
|
||||||
security = {
|
security = {
|
||||||
admin_password = "$__file{/run/secrets/grafana-admin-pw}";
|
# admin_password = "$__file{/run/secrets/grafana-admin-pw}";
|
||||||
|
disable_initial_admin_creation = true;
|
||||||
|
secret_key = "$__file{${config.sops.secrets.grafana-admin-pw.path}}";
|
||||||
cookie_secure = true;
|
cookie_secure = true;
|
||||||
disable_gravatar = true;
|
disable_gravatar = true;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,6 @@ in
|
||||||
|
|
||||||
services.${serviceName} = {
|
services.${serviceName} = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# openFirewall = true;
|
|
||||||
settings = {
|
settings = {
|
||||||
LogLevel = "debug";
|
LogLevel = "debug";
|
||||||
Address = "0.0.0.0";
|
Address = "0.0.0.0";
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ let
|
||||||
inherit (confLib.gen { name = "nextcloud"; port = 80; }) servicePort serviceName serviceUser serviceGroup serviceDomain serviceAddress proxyAddress4 proxyAddress6;
|
inherit (confLib.gen { name = "nextcloud"; port = 80; }) servicePort serviceName serviceUser serviceGroup serviceDomain serviceAddress proxyAddress4 proxyAddress6;
|
||||||
inherit (confLib.static) isHome dnsServer webProxy homeWebProxy homeServiceAddress nginxAccessRules;
|
inherit (confLib.static) isHome dnsServer webProxy homeWebProxy homeServiceAddress nginxAccessRules;
|
||||||
|
|
||||||
nextcloudVersion = "32";
|
nextcloudVersion = "33";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server";
|
options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server";
|
||||||
|
|
|
||||||
|
|
@ -165,14 +165,14 @@ in
|
||||||
services = {
|
services = {
|
||||||
${serviceName} = {
|
${serviceName} = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.dev.oauth2-proxy;
|
package = pkgs.update.oauth2-proxy;
|
||||||
cookie = {
|
cookie = {
|
||||||
domain = ".${mainDomain}";
|
domain = ".${mainDomain}";
|
||||||
secure = true;
|
secure = true;
|
||||||
expire = "900m";
|
expire = "900m";
|
||||||
secret = null; # set by service EnvironmentFile
|
secretFile = null;
|
||||||
};
|
};
|
||||||
clientSecret = null; # set by service EnvironmentFile
|
clientSecretFile = null;
|
||||||
reverseProxy = true;
|
reverseProxy = true;
|
||||||
httpAddress = "0.0.0.0:${builtins.toString servicePort}";
|
httpAddress = "0.0.0.0:${builtins.toString servicePort}";
|
||||||
redirectURL = "https://${serviceDomain}/oauth2/callback";
|
redirectURL = "https://${serviceDomain}/oauth2/callback";
|
||||||
|
|
|
||||||
|
|
@ -103,11 +103,12 @@ in
|
||||||
|
|
||||||
gotenberg = {
|
gotenberg = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.stable.gotenberg;
|
package = pkgs.gotenberg;
|
||||||
|
libreoffice.package = pkgs.libreoffice;
|
||||||
port = gotenbergPort;
|
port = gotenbergPort;
|
||||||
bindIP = "127.0.0.1";
|
bindIP = "127.0.0.1";
|
||||||
timeout = "600s";
|
timeout = "600s";
|
||||||
chromium.package = pkgs.stable.chromium;
|
chromium.package = pkgs.chromium;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,17 @@
|
||||||
{ self, lib, pkgs, ... }:
|
{ self, pkgs, ... }:
|
||||||
{
|
{
|
||||||
_module.args = {
|
_module.args = {
|
||||||
vars = rec {
|
vars = rec {
|
||||||
waylandSessionVariables = {
|
waylandSessionVariables = {
|
||||||
SDL_VIDEODRIVER = "wayland";
|
|
||||||
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
|
||||||
QT_QPA_PLATFORM = "wayland-egl";
|
|
||||||
ANKI_WAYLAND = "1";
|
ANKI_WAYLAND = "1";
|
||||||
OBSIDIAN_USE_WAYLAND = "1";
|
|
||||||
MOZ_ENABLE_WAYLAND = "1";
|
MOZ_ENABLE_WAYLAND = "1";
|
||||||
|
MOZ_WEBRENDER = "1";
|
||||||
|
NIXOS_OZONE_WL = "1";
|
||||||
|
OBSIDIAN_USE_WAYLAND = "1";
|
||||||
|
QT_QPA_PLATFORM = "wayland-egl";
|
||||||
|
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
||||||
|
SDL_VIDEODRIVER = "wayland";
|
||||||
|
_JAVA_AWT_WM_NONREPARENTING = "1";
|
||||||
};
|
};
|
||||||
|
|
||||||
waylandExports =
|
waylandExports =
|
||||||
|
|
@ -94,28 +97,28 @@
|
||||||
noscript
|
noscript
|
||||||
|
|
||||||
# configure a shortcut 'ctrl+shift+c' with behaviour 'do nothing' in order to disable the dev console shortcut
|
# configure a shortcut 'ctrl+shift+c' with behaviour 'do nothing' in order to disable the dev console shortcut
|
||||||
(buildFirefoxXpiAddon {
|
# (buildFirefoxXpiAddon {
|
||||||
pname = "shortkeys";
|
# pname = "shortkeys";
|
||||||
version = "4.0.2";
|
# version = "4.0.2";
|
||||||
addonId = "Shortkeys@Shortkeys.com";
|
# addonId = "Shortkeys@Shortkeys.com";
|
||||||
url = "https://addons.mozilla.org/firefox/downloads/file/3673761/shortkeys-4.0.2.xpi";
|
# url = "https://addons.mozilla.org/firefox/downloads/file/3673761/shortkeys-4.0.2.xpi";
|
||||||
sha256 = "c6fe12efdd7a871787ac4526eea79ecc1acda8a99724aa2a2a55c88a9acf467c";
|
# sha256 = "c6fe12efdd7a871787ac4526eea79ecc1acda8a99724aa2a2a55c88a9acf467c";
|
||||||
meta = with lib;
|
# meta = with lib;
|
||||||
{
|
# {
|
||||||
description = "Easily customizable custom keyboard shortcuts for Firefox. To configure this addon go to Addons (ctrl+shift+a) ->Shortkeys ->Options. Report issues here (please specify that the issue is found in Firefox): https://github.com/mikecrittenden/shortkeys";
|
# description = "Easily customizable custom keyboard shortcuts for Firefox. To configure this addon go to Addons (ctrl+shift+a) ->Shortkeys ->Options. Report issues here (please specify that the issue is found in Firefox): https://github.com/mikecrittenden/shortkeys";
|
||||||
mozPermissions = [
|
# mozPermissions = [
|
||||||
"tabs"
|
# "tabs"
|
||||||
"downloads"
|
# "downloads"
|
||||||
"clipboardWrite"
|
# "clipboardWrite"
|
||||||
"browsingData"
|
# "browsingData"
|
||||||
"storage"
|
# "storage"
|
||||||
"bookmarks"
|
# "bookmarks"
|
||||||
"sessions"
|
# "sessions"
|
||||||
"<all_urls>"
|
# "<all_urls>"
|
||||||
];
|
# ];
|
||||||
platforms = platforms.all;
|
# platforms = platforms.all;
|
||||||
};
|
# };
|
||||||
})
|
# })
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,8 @@
|
||||||
inputs.swarsel-nix.nixosModules.default
|
inputs.swarsel-nix.nixosModules.default
|
||||||
inputs.nixos-nftables-firewall.nixosModules.default
|
inputs.nixos-nftables-firewall.nixosModules.default
|
||||||
inputs.pia.nixosModules.default
|
inputs.pia.nixosModules.default
|
||||||
|
inputs.niritiling.nixosModules.default
|
||||||
|
inputs.noctoggle.nixosModules.default
|
||||||
(inputs.nixos-extra-modules + "/modules/guests")
|
(inputs.nixos-extra-modules + "/modules/guests")
|
||||||
(inputs.nixos-extra-modules + "/modules/interface-naming.nix")
|
(inputs.nixos-extra-modules + "/modules/interface-naming.nix")
|
||||||
"${self}/hosts/nixos/${arch}/${configName}"
|
"${self}/hosts/nixos/${arch}/${configName}"
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
packages = {
|
packages = {
|
||||||
# nix build --print-out-paths --no-link .#live-iso
|
# nix build --print-out-paths --no-link .#live-iso
|
||||||
live-iso = inputs.nixos-generators.nixosGenerate {
|
live-iso = inputs.nixos-generators.nixosGenerate {
|
||||||
inherit pkgs;
|
inherit pkgs system;
|
||||||
specialArgs = { inherit self; };
|
specialArgs = { inherit self; };
|
||||||
modules = [
|
modules = [
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,11 @@ let
|
||||||
pkgsFor = lib.genAttrs (import systems) (system:
|
pkgsFor = lib.genAttrs (import systems) (system:
|
||||||
import inputs.nixpkgs {
|
import inputs.nixpkgs {
|
||||||
inherit system;
|
inherit system;
|
||||||
overlays = [ self.overlays.default ];
|
overlays = [
|
||||||
|
self.overlays.default
|
||||||
|
self.overlays.stables
|
||||||
|
self.overlays.modifications
|
||||||
|
];
|
||||||
config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
||||||
153
nix/overlays.nix
153
nix/overlays.nix
|
|
@ -6,17 +6,120 @@ in
|
||||||
{
|
{
|
||||||
flake = _:
|
flake = _:
|
||||||
{
|
{
|
||||||
overlays = {
|
overlays =
|
||||||
default = final: prev:
|
let
|
||||||
|
nixpkgs-stable-versions = final: _:
|
||||||
|
let
|
||||||
|
nixpkgsInputs =
|
||||||
|
lib.filterAttrs
|
||||||
|
(name: _v: builtins.match "^nixpkgs-.*" name != null)
|
||||||
|
inputs;
|
||||||
|
|
||||||
|
rename = name: builtins.replaceStrings [ "nixpkgs-" ] [ "" ] name;
|
||||||
|
|
||||||
|
mkPkgs = src:
|
||||||
|
import src {
|
||||||
|
inherit (final.stdenv.hostPlatform) system;
|
||||||
|
config.allowUnfree = true;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
builtins.listToAttrs (map
|
||||||
|
(name: {
|
||||||
|
name = rename name;
|
||||||
|
value = mkPkgs nixpkgsInputs.${name};
|
||||||
|
})
|
||||||
|
(builtins.attrNames nixpkgsInputs));
|
||||||
|
|
||||||
|
in
|
||||||
|
rec {
|
||||||
|
default = additions;
|
||||||
|
additions = final: prev:
|
||||||
let
|
let
|
||||||
additions = final: _: import "${self}/pkgs/flake" { pkgs = final; inherit self lib; }
|
additions = final: _: import "${self}/pkgs/flake" { pkgs = final; inherit self lib; }
|
||||||
// {
|
// {
|
||||||
swarsel-nix = import inputs.swarsel-nix {
|
swarsel-nix = import inputs.swarsel-nix {
|
||||||
pkgs = prev;
|
pkgs = prev;
|
||||||
};
|
};
|
||||||
zjstatus = inputs.zjstatus.packages.${prev.system}.default;
|
zjstatus = inputs.zjstatus.packages.${prev.stdenv.hostPlatform.system}.default;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
(additions final prev)
|
||||||
|
// (nixpkgs-stable-versions final prev)
|
||||||
|
// (inputs.niri-flake.overlays.niri final prev)
|
||||||
|
// (inputs.noctalia.overlays.default final prev)
|
||||||
|
// (inputs.vbc-nix.overlays.default final prev)
|
||||||
|
// (inputs.nur.overlays.default final prev)
|
||||||
|
// (inputs.emacs-overlay.overlay final prev)
|
||||||
|
// (inputs.nix-topology.overlays.default final prev)
|
||||||
|
// (inputs.nix-index-database.overlays.nix-index final prev)
|
||||||
|
// (inputs.nixgl.overlay final prev)
|
||||||
|
// (inputs.nix-minecraft.overlay final prev)
|
||||||
|
// (inputs.nixos-extra-modules.overlays.default final prev);
|
||||||
|
|
||||||
|
|
||||||
|
stables = final: prev:
|
||||||
|
let
|
||||||
|
mkUsePkgsFrom = pkgsFrom: names:
|
||||||
|
builtins.listToAttrs (map
|
||||||
|
(name: {
|
||||||
|
inherit name;
|
||||||
|
value = pkgsFrom.${name};
|
||||||
|
})
|
||||||
|
names);
|
||||||
|
|
||||||
|
from =
|
||||||
|
let
|
||||||
|
stablePackages = nixpkgs-stable-versions final prev;
|
||||||
|
in
|
||||||
|
key:
|
||||||
|
stablePackages.${key} or (throw "Missing nixpkgs input nixpkgs-${key}");
|
||||||
|
|
||||||
|
in
|
||||||
|
(mkUsePkgsFrom (from "dev") [
|
||||||
|
# "swayosd"
|
||||||
|
"firezone-relay"
|
||||||
|
"firezone-server-web"
|
||||||
|
"firezone-server-api"
|
||||||
|
"firezone-server-domain"
|
||||||
|
])
|
||||||
|
// (mkUsePkgsFrom (from "stable24_05") [
|
||||||
|
"awscli2"
|
||||||
|
])
|
||||||
|
// (mkUsePkgsFrom (from "stable24_11") [
|
||||||
|
"python39"
|
||||||
|
"spotify"
|
||||||
|
"vieb"
|
||||||
|
])
|
||||||
|
// (mkUsePkgsFrom (from "stable25_05") [
|
||||||
|
"steam-fhsenv-without-steam"
|
||||||
|
"transmission_3"
|
||||||
|
])
|
||||||
|
// (mkUsePkgsFrom (from "stable") [
|
||||||
|
# "anki"
|
||||||
|
"azure-cli"
|
||||||
|
# "bat-extras.batgrep"
|
||||||
|
# "bluez"
|
||||||
|
"calibre"
|
||||||
|
# "chromium"
|
||||||
|
"dwarfs"
|
||||||
|
"gotenberg"
|
||||||
|
"khal"
|
||||||
|
"libreoffice"
|
||||||
|
"libreoffice-qt"
|
||||||
|
"nerd-fonts-symbols-only"
|
||||||
|
"noto-fonts"
|
||||||
|
"noto-fonts-cjk-sans"
|
||||||
|
"noto-fonts-color-emoji"
|
||||||
|
# "pipewire"
|
||||||
|
"podman"
|
||||||
|
"teams-for-linux"
|
||||||
|
# "vesktop"
|
||||||
|
"virtualbox"
|
||||||
|
]);
|
||||||
|
|
||||||
|
modifications = final: prev:
|
||||||
|
let
|
||||||
modifications = final: prev: {
|
modifications = final: prev: {
|
||||||
# vesktop = prev.vesktop.override {
|
# vesktop = prev.vesktop.override {
|
||||||
# withSystemVencord = true;
|
# withSystemVencord = true;
|
||||||
|
|
@ -41,6 +144,10 @@ in
|
||||||
|
|
||||||
mgba = final.swarsel-mgba;
|
mgba = final.swarsel-mgba;
|
||||||
|
|
||||||
|
noctalia-shell = prev.noctalia-shell.override {
|
||||||
|
calendarSupport = true;
|
||||||
|
};
|
||||||
|
|
||||||
retroarch = prev.retroarch.withCores (cores: with cores; [
|
retroarch = prev.retroarch.withCores (cores: with cores; [
|
||||||
snes9x # snes
|
snes9x # snes
|
||||||
nestopia # nes
|
nestopia # nes
|
||||||
|
|
@ -53,46 +160,8 @@ in
|
||||||
]);
|
]);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
nixpkgs-stable-versions = final: _:
|
|
||||||
let
|
|
||||||
nixpkgsInputs =
|
|
||||||
lib.filterAttrs
|
|
||||||
(name: _v: builtins.match "^nixpkgs-.*" name != null)
|
|
||||||
inputs;
|
|
||||||
|
|
||||||
rename = name: builtins.replaceStrings [ "nixpkgs-" ] [ "" ] name;
|
|
||||||
|
|
||||||
mkPkgs = src:
|
|
||||||
import src {
|
|
||||||
inherit (final) system;
|
|
||||||
config.allowUnfree = true;
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
builtins.listToAttrs (map
|
modifications final prev;
|
||||||
(name: {
|
|
||||||
name = rename name;
|
|
||||||
value = mkPkgs nixpkgsInputs.${name};
|
|
||||||
})
|
|
||||||
(builtins.attrNames nixpkgsInputs));
|
|
||||||
|
|
||||||
in
|
|
||||||
lib.recursiveUpdate
|
|
||||||
(
|
|
||||||
(additions final prev)
|
|
||||||
// (nixpkgs-stable-versions final prev)
|
|
||||||
// (inputs.niri-flake.overlays.niri final prev)
|
|
||||||
// (inputs.noctalia.overlays.default final prev)
|
|
||||||
// (inputs.vbc-nix.overlays.default final prev)
|
|
||||||
// (inputs.nur.overlays.default final prev)
|
|
||||||
// (inputs.emacs-overlay.overlay final prev)
|
|
||||||
// (inputs.nix-topology.overlays.default final prev)
|
|
||||||
// (inputs.nix-index-database.overlays.nix-index final prev)
|
|
||||||
// (inputs.nixgl.overlay final prev)
|
|
||||||
// (inputs.nix-minecraft.overlay final prev)
|
|
||||||
// (inputs.nixos-extra-modules.overlays.default final prev)
|
|
||||||
)
|
|
||||||
(modifications final prev);
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,8 @@
|
||||||
};
|
};
|
||||||
overlays = [
|
overlays = [
|
||||||
self.overlays.default
|
self.overlays.default
|
||||||
|
self.overlays.stables
|
||||||
|
self.overlays.modifications
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,38 @@ writeShellApplication {
|
||||||
inherit name;
|
inherit name;
|
||||||
runtimeInputs = [ fzf ];
|
runtimeInputs = [ fzf ];
|
||||||
text = ''
|
text = ''
|
||||||
|
cdr_had_errexit=0
|
||||||
|
cdr_had_nounset=0
|
||||||
|
cdr_had_pipefail=0
|
||||||
|
|
||||||
|
case $- in
|
||||||
|
*e*) cdr_had_errexit=1 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case $- in
|
||||||
|
*u*) cdr_had_nounset=1 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if set -o 2>/dev/null | grep -q '^pipefail[[:space:]]*on'; then
|
||||||
|
cdr_had_pipefail=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
set +e
|
||||||
|
set +u
|
||||||
|
set +o pipefail 2>/dev/null || true
|
||||||
|
|
||||||
DOCUMENT_DIR_WORK=${homeConfig.systemd.user.sessionVariables.DOCUMENT_DIR_WORK or ""}
|
DOCUMENT_DIR_WORK=${homeConfig.systemd.user.sessionVariables.DOCUMENT_DIR_WORK or ""}
|
||||||
DOCUMENT_DIR_PRIV=${homeConfig.systemd.user.sessionVariables.DOCUMENT_DIR_PRIV}
|
DOCUMENT_DIR_PRIV=${homeConfig.systemd.user.sessionVariables.DOCUMENT_DIR_PRIV}
|
||||||
FLAKE=${homeConfig.home.sessionVariables.FLAKE}
|
FLAKE=${homeConfig.home.sessionVariables.FLAKE}
|
||||||
|
|
||||||
cd "$( (find "$DOCUMENT_DIR_WORK" "$DOCUMENT_DIR_PRIV" -maxdepth 1 && echo "$FLAKE") | fzf )"
|
cdr_target="$( (find "$DOCUMENT_DIR_WORK" "$DOCUMENT_DIR_PRIV" -maxdepth 1 && echo "$FLAKE") | fzf )"
|
||||||
|
|
||||||
|
if [ -n "$cdr_target" ]; then
|
||||||
|
cd "$cdr_target" || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$cdr_had_errexit" -eq 1 ]; then set -e; else set +e; fi
|
||||||
|
if [ "$cdr_had_nounset" -eq 1 ]; then set -u; else set +u; fi
|
||||||
|
if [ "$cdr_had_pipefail" -eq 1 ]; then set -o pipefail; else set +o pipefail 2>/dev/null || true; fi
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,41 +2,15 @@
|
||||||
{
|
{
|
||||||
options.swarselprofiles.hotel = lib.mkEnableOption "is this a hotel host";
|
options.swarselprofiles.hotel = lib.mkEnableOption "is this a hotel host";
|
||||||
config = lib.mkIf config.swarselprofiles.hotel {
|
config = lib.mkIf config.swarselprofiles.hotel {
|
||||||
|
swarselprofiles.personal = true;
|
||||||
swarselmodules = {
|
swarselmodules = {
|
||||||
packages = lib.mkForce true;
|
|
||||||
ownpackages = lib.mkForce true;
|
|
||||||
general = lib.mkForce true;
|
|
||||||
nixgl = lib.mkForce true;
|
|
||||||
sops = lib.mkForce true;
|
|
||||||
yubikey = lib.mkForce false;
|
yubikey = lib.mkForce false;
|
||||||
ssh = lib.mkForce true;
|
ssh = lib.mkForce false;
|
||||||
stylix = lib.mkForce true;
|
|
||||||
desktop = lib.mkForce true;
|
|
||||||
symlink = lib.mkForce true;
|
|
||||||
env = lib.mkForce false;
|
env = lib.mkForce false;
|
||||||
programs = lib.mkForce true;
|
|
||||||
nix-index = lib.mkForce true;
|
|
||||||
direnv = lib.mkForce true;
|
|
||||||
eza = lib.mkForce true;
|
|
||||||
git = lib.mkForce false;
|
git = lib.mkForce false;
|
||||||
fuzzel = lib.mkForce true;
|
|
||||||
starship = lib.mkForce true;
|
|
||||||
kitty = lib.mkForce true;
|
|
||||||
zsh = lib.mkForce true;
|
|
||||||
zellij = lib.mkForce true;
|
|
||||||
tmux = lib.mkForce true;
|
|
||||||
mail = lib.mkForce false;
|
mail = lib.mkForce false;
|
||||||
emacs = lib.mkForce true;
|
emacs = lib.mkForce false;
|
||||||
waybar = lib.mkForce true;
|
obsidian = lib.mkForce false;
|
||||||
firefox = lib.mkForce true;
|
|
||||||
gnome-keyring = lib.mkForce true;
|
|
||||||
kdeconnect = lib.mkForce true;
|
|
||||||
mako = lib.mkForce true;
|
|
||||||
swayosd = lib.mkForce true;
|
|
||||||
yubikeytouch = lib.mkForce true;
|
|
||||||
sway = lib.mkForce true;
|
|
||||||
kanshi = lib.mkForce true;
|
|
||||||
gpgagent = lib.mkForce true;
|
|
||||||
gammastep = lib.mkForce false;
|
gammastep = lib.mkForce false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@
|
||||||
anki-tray = lib.mkDefault true;
|
anki-tray = lib.mkDefault true;
|
||||||
attic-store-push = lib.mkDefault true;
|
attic-store-push = lib.mkDefault true;
|
||||||
atuin = lib.mkDefault true;
|
atuin = lib.mkDefault true;
|
||||||
autotiling = lib.mkDefault true;
|
autotiling = lib.mkDefault false; # niri
|
||||||
batsignal = lib.mkDefault true;
|
batsignal = lib.mkDefault false; # niri
|
||||||
blueman-applet = lib.mkDefault true;
|
blueman-applet = lib.mkDefault true;
|
||||||
desktop = lib.mkDefault true;
|
desktop = lib.mkDefault true;
|
||||||
direnv = lib.mkDefault true;
|
direnv = lib.mkDefault true;
|
||||||
|
|
@ -20,17 +20,18 @@
|
||||||
firefox = lib.mkDefault true;
|
firefox = lib.mkDefault true;
|
||||||
firezone-tray = lib.mkDefault true;
|
firezone-tray = lib.mkDefault true;
|
||||||
fuzzel = lib.mkDefault true;
|
fuzzel = lib.mkDefault true;
|
||||||
gammastep = lib.mkDefault true;
|
gammastep = lib.mkDefault false; # niri
|
||||||
general = lib.mkDefault true;
|
general = lib.mkDefault true;
|
||||||
git = lib.mkDefault true;
|
git = lib.mkDefault true;
|
||||||
gnome-keyring = lib.mkDefault true;
|
gnome-keyring = lib.mkDefault true;
|
||||||
gpgagent = lib.mkDefault true;
|
gpgagent = lib.mkDefault true;
|
||||||
hexchat = lib.mkDefault true;
|
hexchat = lib.mkDefault true;
|
||||||
kanshi = lib.mkDefault true;
|
kanshi = lib.mkDefault false; # niri
|
||||||
kdeconnect = lib.mkDefault true;
|
kdeconnect = lib.mkDefault true;
|
||||||
kitty = lib.mkDefault true;
|
kitty = lib.mkDefault true;
|
||||||
|
khal = lib.mkDefault true;
|
||||||
mail = lib.mkDefault true;
|
mail = lib.mkDefault true;
|
||||||
mako = lib.mkDefault true;
|
mako = lib.mkDefault false; # niri
|
||||||
nix-index = lib.mkDefault true;
|
nix-index = lib.mkDefault true;
|
||||||
nixgl = lib.mkDefault true;
|
nixgl = lib.mkDefault true;
|
||||||
nix-your-shell = lib.mkDefault true;
|
nix-your-shell = lib.mkDefault true;
|
||||||
|
|
@ -49,9 +50,9 @@
|
||||||
ssh = lib.mkDefault true;
|
ssh = lib.mkDefault true;
|
||||||
starship = lib.mkDefault true;
|
starship = lib.mkDefault true;
|
||||||
stylix = lib.mkDefault true;
|
stylix = lib.mkDefault true;
|
||||||
sway = lib.mkDefault true;
|
sway = lib.mkDefault false; # niri
|
||||||
swayidle = lib.mkDefault true;
|
swayidle = lib.mkDefault true;
|
||||||
swaylock = lib.mkDefault true;
|
swaylock = lib.mkDefault false; # niri
|
||||||
swayosd = lib.mkDefault true;
|
swayosd = lib.mkDefault true;
|
||||||
symlink = lib.mkDefault true;
|
symlink = lib.mkDefault true;
|
||||||
tmux = lib.mkDefault true;
|
tmux = lib.mkDefault true;
|
||||||
|
|
|
||||||
|
|
@ -2,48 +2,9 @@
|
||||||
{
|
{
|
||||||
options.swarselprofiles.hotel = lib.mkEnableOption "is this a hotel host";
|
options.swarselprofiles.hotel = lib.mkEnableOption "is this a hotel host";
|
||||||
config = lib.mkIf config.swarselprofiles.hotel {
|
config = lib.mkIf config.swarselprofiles.hotel {
|
||||||
|
swarselprofiles.personal = true;
|
||||||
swarselmodules = {
|
swarselmodules = {
|
||||||
packages = lib.mkForce true;
|
yubikey = false;
|
||||||
general = lib.mkForce true;
|
|
||||||
home-manager = lib.mkForce true;
|
|
||||||
xserver = lib.mkForce true;
|
|
||||||
users = lib.mkForce true;
|
|
||||||
sops = lib.mkForce true;
|
|
||||||
env = lib.mkForce true;
|
|
||||||
security = lib.mkForce true;
|
|
||||||
systemdTimeout = lib.mkForce true;
|
|
||||||
hardware = lib.mkForce true;
|
|
||||||
pulseaudio = lib.mkForce true;
|
|
||||||
pipewire = lib.mkForce true;
|
|
||||||
network = lib.mkForce true;
|
|
||||||
time = lib.mkForce true;
|
|
||||||
stylix = lib.mkForce true;
|
|
||||||
programs = lib.mkForce true;
|
|
||||||
zsh = lib.mkForce true;
|
|
||||||
syncthing = lib.mkForce true;
|
|
||||||
blueman = lib.mkForce true;
|
|
||||||
networkDevices = lib.mkForce true;
|
|
||||||
gvfs = lib.mkForce true;
|
|
||||||
interceptionTools = lib.mkForce true;
|
|
||||||
swayosd = lib.mkForce true;
|
|
||||||
ppd = lib.mkForce true;
|
|
||||||
yubikey = lib.mkForce false;
|
|
||||||
ledger = lib.mkForce true;
|
|
||||||
keyboards = lib.mkForce true;
|
|
||||||
login = lib.mkForce true;
|
|
||||||
nix-ld = lib.mkForce true;
|
|
||||||
impermanence = lib.mkForce true;
|
|
||||||
nvd = lib.mkForce true;
|
|
||||||
gnome-keyring = lib.mkForce true;
|
|
||||||
sway = lib.mkForce true;
|
|
||||||
xdg-portal = lib.mkForce true;
|
|
||||||
distrobox = lib.mkForce true;
|
|
||||||
appimage = lib.mkForce true;
|
|
||||||
lid = lib.mkForce true;
|
|
||||||
lowBattery = lib.mkForce true;
|
|
||||||
lanzaboote = lib.mkForce true;
|
|
||||||
autologin = lib.mkForce true;
|
|
||||||
nftables = lib.mkDefault true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -41,8 +41,8 @@
|
||||||
security = lib.mkDefault true;
|
security = lib.mkDefault true;
|
||||||
sops = lib.mkDefault true;
|
sops = lib.mkDefault true;
|
||||||
stylix = lib.mkDefault true;
|
stylix = lib.mkDefault true;
|
||||||
sway = lib.mkDefault true;
|
sway = lib.mkDefault false; # niri
|
||||||
swayosd = lib.mkDefault true;
|
swayosd = lib.mkDefault false; # niri
|
||||||
syncthing = lib.mkDefault true;
|
syncthing = lib.mkDefault true;
|
||||||
systemdTimeout = lib.mkDefault true;
|
systemdTimeout = lib.mkDefault true;
|
||||||
time = lib.mkDefault true;
|
time = lib.mkDefault true;
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,8 @@ github-nixpkgs-review-token: ENC[AES256_GCM,data:/4ssZAEwEc9fZeR69GCvLMm4eRv4uab
|
||||||
#ENC[AES256_GCM,data:PI5MX6PgK1y0lqyoYA0=,iv:25UAvFaANHFD04GRafGlCzOc5h+15YPtSES2z2tmpXw=,tag:+XLwQ01+AtGWjtsSQhQ1AQ==,type:comment]
|
#ENC[AES256_GCM,data:PI5MX6PgK1y0lqyoYA0=,iv:25UAvFaANHFD04GRafGlCzOc5h+15YPtSES2z2tmpXw=,tag:+XLwQ01+AtGWjtsSQhQ1AQ==,type:comment]
|
||||||
anki-user: ENC[AES256_GCM,data:WoGaNDAHFw==,iv:ZSjHfKMIjlgOuvGl7hVxJc1fE80nfxxXYLgsKangBCs=,tag:UP8ZI7gzOrJJjNDHovIkyg==,type:str]
|
anki-user: ENC[AES256_GCM,data:WoGaNDAHFw==,iv:ZSjHfKMIjlgOuvGl7hVxJc1fE80nfxxXYLgsKangBCs=,tag:UP8ZI7gzOrJJjNDHovIkyg==,type:str]
|
||||||
anki-pw: ENC[AES256_GCM,data:z2SCsSvZIqN2/2VK1EdmcAnl42x5A15PAiK932k3n50Vj1jczGRoSw==,iv:keQCutY4vizVzu5YzPBJLgDLveYDb2VGeEnYmO7CeQw=,tag:KGplFfC5xktNAOTbIlt+Tg==,type:str]
|
anki-pw: ENC[AES256_GCM,data:z2SCsSvZIqN2/2VK1EdmcAnl42x5A15PAiK932k3n50Vj1jczGRoSw==,iv:keQCutY4vizVzu5YzPBJLgDLveYDb2VGeEnYmO7CeQw=,tag:KGplFfC5xktNAOTbIlt+Tg==,type:str]
|
||||||
|
#ENC[AES256_GCM,data:mjwlHRe0Rx9p83eK/LGR,iv:KclQ4xwJMH5HJ9AcmglOCvFIBP6WyEJLyencUdDpzt0=,tag:nRhwhIRPUNmhSZM7ZzUfFA==,type:comment]
|
||||||
|
radicale-token: ENC[AES256_GCM,data:WEL8Z3gOs/7MAQQ=,iv:osgMVisr/03I+IHI+3jLIn8p5dnZwyja3lQUi+wcH5g=,tag:F1yzI0rZS4sON6T9TuuG9A==,type:str]
|
||||||
#ENC[AES256_GCM,data:veUC1sj6BSqHBA==,iv:L36lv9aQ38/WEaIccQDgOw2PB9U9k/t8x00wIw2Y858=,tag:3s2LBCwGzYpUk8WBj70UGQ==,type:comment]
|
#ENC[AES256_GCM,data:veUC1sj6BSqHBA==,iv:L36lv9aQ38/WEaIccQDgOw2PB9U9k/t8x00wIw2Y858=,tag:3s2LBCwGzYpUk8WBj70UGQ==,type:comment]
|
||||||
attic-cache-key: ENC[AES256_GCM,data:2Xw8YX6wiQg2yb2pbZ/UowmzUdhtb2iRTVZZD2ypGaiwhI3mteG3qUgQm1oCz0bp+5jip6+kVzt576qVbUGim/m+dUZYU6mqm64/78bfuTvd/UBlJnmjNtWE2ILjnP+M4EodzbYlBlxwGhFS28wrVOHo77rzbcrPJEwZiqIzSgGIWKdNzzo5AXL2b1lKAngXO6Bi5Jc9W4lkTVFJ/Ixh6aOoHpq9TzsHHx2Aak22969pnxmFFpXKof4eiNGnoGBZDAr8pC7oSwVqDYbZwxH1ulRq863KVQkve+HBR2JJLAQjYHHUJJGhJG9jWYT03WjBNHwIDMTTvC9Fiw9Cr0TG0B8Bxwm3dhgLirjUyLOiST2CbDxxld1M8DJFkBwrih6hMJXmJw8Dlqy/D+3EZXT947BI8ythYjuL3jIHHQhUjfEf+sLdqPSngHolAAKqKE84Xv2FDn2wXGwe8UY3NMmIeaWYZsyDu77KnQR2R+6TuJTOw6vOdDoUJ55YRPdb9UR186b+TiSrP0SZOujoSYGs9dattEvN3XKlm3cQztB9UygmdEk/stDZ/CJIRUNXsu46o1nR5FWPkgoW91Fzxs00QgQMpYlnXM2CWknYMSHL45t0BYA7yuFwq9MYNUK/vrdCr3mtHxA6R28HajDUWoZA6uS+DF/i1nF79sYfam7SdKNCqu2r/1CGLblHQwKT27HmrTCXdjeLqe+Yv7sJzlEbV+sKD+ccW8jI4NZRjCbVJVKydK23YWj94NEt/M2rtxzV30XKw8GClqsdEF+v4nu48oB894RPZCy9qQjaFHnqYpiqSa0oXluiQQmRfA0jtQLRTXN5ri7U/GtfH1za179MFWwMorRMK6qdTt3pi8Fie4UgzGyGq6CugN8HxeMNl70pPVIKjGNO8Npezk6T3YDUpB3/OGY56jhSYxIEadBvW9CqDS7al7zEKgD1wx1gzT2mQh60H2B/InWg9p96qOqVEQxOFDklxlcnygLu3z7Y0mAds/HXOJJnJbagjfxVi+qROOtVrR5y/kySR0pM9Syk8GvqdtRct7qorONAV/yonarEgz+eEFj10kderSsPdz1sgiYe93VLmPp07cdVsUsaDtLW8gXafc3aWOZ8JIkSUhYDbR49pf2bTeoMDoyi9d6pgLr+cJGQbJC/1LmsAIqOQ7WPiTeAZG2lStNf3bwClpUuL0t78UabZyNzJJN5TFDZqGkwXlaJmQ==,iv:6sa44WnyrXW3KQHdGIKuiGWwqp3qtQu4Q9RSXA45PYs=,tag:MbtS4Xx5K8O3mFAlriuuIA==,type:str]
|
attic-cache-key: ENC[AES256_GCM,data:2Xw8YX6wiQg2yb2pbZ/UowmzUdhtb2iRTVZZD2ypGaiwhI3mteG3qUgQm1oCz0bp+5jip6+kVzt576qVbUGim/m+dUZYU6mqm64/78bfuTvd/UBlJnmjNtWE2ILjnP+M4EodzbYlBlxwGhFS28wrVOHo77rzbcrPJEwZiqIzSgGIWKdNzzo5AXL2b1lKAngXO6Bi5Jc9W4lkTVFJ/Ixh6aOoHpq9TzsHHx2Aak22969pnxmFFpXKof4eiNGnoGBZDAr8pC7oSwVqDYbZwxH1ulRq863KVQkve+HBR2JJLAQjYHHUJJGhJG9jWYT03WjBNHwIDMTTvC9Fiw9Cr0TG0B8Bxwm3dhgLirjUyLOiST2CbDxxld1M8DJFkBwrih6hMJXmJw8Dlqy/D+3EZXT947BI8ythYjuL3jIHHQhUjfEf+sLdqPSngHolAAKqKE84Xv2FDn2wXGwe8UY3NMmIeaWYZsyDu77KnQR2R+6TuJTOw6vOdDoUJ55YRPdb9UR186b+TiSrP0SZOujoSYGs9dattEvN3XKlm3cQztB9UygmdEk/stDZ/CJIRUNXsu46o1nR5FWPkgoW91Fzxs00QgQMpYlnXM2CWknYMSHL45t0BYA7yuFwq9MYNUK/vrdCr3mtHxA6R28HajDUWoZA6uS+DF/i1nF79sYfam7SdKNCqu2r/1CGLblHQwKT27HmrTCXdjeLqe+Yv7sJzlEbV+sKD+ccW8jI4NZRjCbVJVKydK23YWj94NEt/M2rtxzV30XKw8GClqsdEF+v4nu48oB894RPZCy9qQjaFHnqYpiqSa0oXluiQQmRfA0jtQLRTXN5ri7U/GtfH1za179MFWwMorRMK6qdTt3pi8Fie4UgzGyGq6CugN8HxeMNl70pPVIKjGNO8Npezk6T3YDUpB3/OGY56jhSYxIEadBvW9CqDS7al7zEKgD1wx1gzT2mQh60H2B/InWg9p96qOqVEQxOFDklxlcnygLu3z7Y0mAds/HXOJJnJbagjfxVi+qROOtVrR5y/kySR0pM9Syk8GvqdtRct7qorONAV/yonarEgz+eEFj10kderSsPdz1sgiYe93VLmPp07cdVsUsaDtLW8gXafc3aWOZ8JIkSUhYDbR49pf2bTeoMDoyi9d6pgLr+cJGQbJC/1LmsAIqOQ7WPiTeAZG2lStNf3bwClpUuL0t78UabZyNzJJN5TFDZqGkwXlaJmQ==,iv:6sa44WnyrXW3KQHdGIKuiGWwqp3qtQu4Q9RSXA45PYs=,tag:MbtS4Xx5K8O3mFAlriuuIA==,type:str]
|
||||||
#ENC[AES256_GCM,data:KCqwghIJ8tlGFxMt94svo6285cA1YRbYoeivx6A=,iv:qlZCGrCn5fU1xPQF9wfOMarU6Z7oa3mLtd1LzVzMbuI=,tag:Qq5lBtUsd3lQMx6ffk+kzQ==,type:comment]
|
#ENC[AES256_GCM,data:KCqwghIJ8tlGFxMt94svo6285cA1YRbYoeivx6A=,iv:qlZCGrCn5fU1xPQF9wfOMarU6Z7oa3mLtd1LzVzMbuI=,tag:Qq5lBtUsd3lQMx6ffk+kzQ==,type:comment]
|
||||||
|
|
@ -353,8 +355,8 @@ sops:
|
||||||
OVRuazF6YzBRckJQdVlJZWZrbThyZGsKxMDtLfQDPiHN934xE98if3cFHLwFpNdm
|
OVRuazF6YzBRckJQdVlJZWZrbThyZGsKxMDtLfQDPiHN934xE98if3cFHLwFpNdm
|
||||||
/RGFLObFn2saTI86D83xmmjgjeosxPX47JvGHyzCHSVeA8Hd+Qp93A==
|
/RGFLObFn2saTI86D83xmmjgjeosxPX47JvGHyzCHSVeA8Hd+Qp93A==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2025-12-23T01:11:36Z"
|
lastmodified: "2026-02-26T10:38:07Z"
|
||||||
mac: ENC[AES256_GCM,data:e0WoFBQSR5q3GOQ+GMJGBd4lNBAMqlnVjtUq3snxrdvcytb9YvKnoYQH+GjbdGIiqrND8pOVnZt34AjkR8YfpWe+VrkP3Vj/3l+1GjF1XIHbzBNKOQHdYPSVsH2NZwftcAdphbStf3GTlb+b+cpTn4a9Y4pTNGVoOaOA1tBr8bM=,iv:sPXktitTNMkBhHr6E/QRZCVKrgyED9/o9hiivbObACI=,tag:tTNr4UEf92UrtI0Jvi5o3g==,type:str]
|
mac: ENC[AES256_GCM,data:pxaR0X3f5oiCwnrr8jjs8mQDWbjuUkNpFoyQxaC61rRnoLvbkEzxSxmI0zDv2VEcua4Eqfoj7Q4H+qcsR5tM3SjPc0KuYE5eFW4RDv+FIr+XA9om3B4uMy+bIleSvSXroBD+1bLhzJsacudjBpVA6r+INrZKvtjO+L16nNylTSc=,iv:CgOc3ht5zwZGEoxJF6d9ZMwiiNQ2fcnLVFxUxJs6pHY=,tag:4JZgLJlyTbqacIHryciPFg==,type:str]
|
||||||
pgp:
|
pgp:
|
||||||
- created_at: "2026-01-12T22:05:05Z"
|
- created_at: "2026-01-12T22:05:05Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
|
|
@ -388,4 +390,4 @@ sops:
|
||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
fp: 4BE7925262289B476DBBC17B76FD3810215AE097
|
fp: 4BE7925262289B476DBBC17B76FD3810215AE097
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.11.0
|
version: 3.12.0
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue