Compare commits

..

No commits in common. "7abc476d513a3554e441704d1bb5185a364d79c7" and "6ea3851e72e3790112438bc2f063e98c6fcda72b" have entirely different histories.

61 changed files with 983 additions and 1832 deletions

File diff suppressed because it is too large Load diff

View file

@ -1579,7 +1579,6 @@ create a new one."
'((:maildir "/leon/Inbox" :key ?1) '((:maildir "/leon/Inbox" :key ?1)
(:maildir "/nautilus/Inbox" :key ?2) (:maildir "/nautilus/Inbox" :key ?2)
(:maildir "/mrswarsel/Inbox" :key ?3) (:maildir "/mrswarsel/Inbox" :key ?3)
(:maildir "/work/Inbox" :key ?4)
(:maildir "/Sent Mail" :key ?s) (:maildir "/Sent Mail" :key ?s)
(:maildir "/Trash" :key ?t) (:maildir "/Trash" :key ?t)
(:maildir "/Drafts" :key ?d) (:maildir "/Drafts" :key ?d)

View file

@ -6,7 +6,7 @@ command_not_found_handle() {
fi fi
echo -n "searching nix-index..." echo -n "searching nix-index..."
ATTRS=$(@nix-locate@ --minimal --no-group --type x --type s --whole-name --at-root "/bin/$1") ATTRS=$(@nix-locate@ --minimal --no-group --type x --type s --top-level --whole-name --at-root "/bin/$1")
case $(echo -n "$ATTRS" | grep -c "^") in case $(echo -n "$ATTRS" | grep -c "^") in
0) 0)

View file

@ -0,0 +1,23 @@
headless="false"
while [[ $# -gt 0 ]]; do
case "$1" in
-h)
headless="true"
;;
*)
echo "Invalid option detected."
;;
esac
shift
done
SHARESCREEN="$(nix eval --raw ~/.dotfiles#nixosConfigurations."$(hostname)".config.home-manager.users."$(whoami)".swarselsystems.sharescreen)"
if [[ $headless == "true" ]]; then
wl-mirror "$SHARESCREEN"
else
wl-mirror "$SHARESCREEN" &
sleep 0.1
swaymsg '[app_id=at.yrlf.wl_mirror] move to workspace 14:T'
swaymsg '[app_id=at.yrlf.wl_mirror] fullscreen'
fi

View file

@ -1,36 +0,0 @@
while :; do
case ${1:-} in
-k | --kitty)
cmd=(sh -c 'kitty --app-id kittyterm -o confirm_os_window_close=0 zellij attach --create kittyterm' '&')
searchapp="kittyterm"
;;
-e | --element)
cmd=(element-desktop)
searchapp="Element"
;;
-d | --vesktop)
cmd=(vesktop)
searchapp="vesktop"
;;
-s | --spotifyplayer)
cmd=(sh -c 'kitty --add-id spotifytui -o confirm_os_window_close=0 spotify_player' '&')
searchapp="spotifytui"
;;
*) break ;;
esac
shift
done
WIN_INFO=$(niri msg -j windows | jq --arg search "$searchapp" '.[] | select (.app_id | test($search)) | { id, is_focused, workspace_id }')
ID=$(echo "$WIN_INFO" | jq -r '.id // empty')
IS_FOCUSED=$(echo "$WIN_INFO" | jq -r '.is_focused // empty')
TARGET_MONITOR=$(niri msg -j workspaces | jq --arg search "" '.[] | select (.name != null and (.name | test($search))) | { output }' | jq -r '.output // empty')
CURRENT_WORKSPACE=$(niri msg -j workspaces | jq -r '.[] | select (.is_active == true) | .output // empty')
if [ -z "$ID" ]; then
niri msg action spawn -- "${cmd[@]}"
elif [ "$IS_FOCUSED" ]; then
niri msg action move-window-to-workspace "" --window-id "$ID" --focus false
else
niri msg action focus-monitor "$TARGET_MONITOR" && niri msg action move-window-to-workspace "$CURRENT_WORKSPACE" --window-id "$ID" && niri msg action focus-floating
fi

View file

@ -1,39 +1,21 @@
# scheme: "better-contrast" # scheme: "better-contrast"
author: "Swarsel" author: "Swarsel"
author: "Swarsel" base00: "1D252C" # #1d252c passt
base00: "1d252c" #1d252c" base01: "171D23" # #171d23
base01: "171d23" #171d23" base02: "5EC4FF" # #5EC4FF
base02: "206a86" #206a86" base03: "566C7D" # #566C7D passt
base03: "003a66" #003a66" base04: "5EC4FF" # #5EC4FF passt
base04: "5ec4ff" #5ec4ff" base05: "A0B3C5" # #A0B3C5 passt
base05: "a0b3c5" #a0b3c5" base06: "C06ECE" # #C06ECE passt
base06: "7ed4ff" #7ed4ff" base07: "A0B3C5" # #A0B3C5 passt
base07: "8ef4ff" #8ef4ff" base08: "D95468" # #D95468 passt
base08: "d95468" #d95468" base09: "FFA880" # #ffA880 passt
base09: "ffa880" #ffa880" base0A: "5EC4FF" # #5EC4FF
base0A: "6ed4ff" #6ed4ff" base0B: "8BD49C" # #8BD49C
base0B: "8bd49c" #8bd49c" base0C: "008B94" # #008B94 passt
base0C: "008b94" #008b94" base0D: "5EC4FF" # #5EC4FF passt
base0D: "5ec4ff" #5ec4ff" base0E: "C06ECE" # #C06ECE passt
base0E: "c06ece" #c06ece" base0F: "5EC4FF" # #5EC4FF passt
base0F: "3c0044" #3c0044"
# base00: "1D252C" # #1d252c passt
# base01: "171D23" # #171d23
# base02: "5EC4FF" # #5EC4FF
# base03: "566C7D" # #566C7D passt
# base04: "5EC4FF" # #5EC4FF passt
# base05: "A0B3C5" # #A0B3C5 passt
# base06: "C06ECE" # #C06ECE passt
# base07: "A0B3C5" # #A0B3C5 passt
# base08: "D95468" # #D95468 passt
# base09: "FFA880" # #ffA880 passt
# base0A: "5EC4FF" # #5EC4FF
# base0B: "8BD49C" # #8BD49C
# base0C: "008B94" # #008B94 passt
# base0D: "5EC4FF" # #5EC4FF passt
# base0E: "C06ECE" # #C06ECE passt
# base0F: "5EC4FF" # #5EC4FF passt
# base00 - Default Background # base00 - Default Background
# base01 - Lighter Background (Used for status bars) # base01 - Lighter Background (Used for status bars)

136
flake.lock generated
View file

@ -510,7 +510,7 @@
"swarsel", "swarsel",
"nixpkgs" "nixpkgs"
], ],
"nixpkgs-stable": "nixpkgs-stable_4" "nixpkgs-stable": "nixpkgs-stable_3"
}, },
"locked": { "locked": {
"lastModified": 1751908357, "lastModified": 1751908357,
@ -533,7 +533,7 @@
"swarsel", "swarsel",
"nixpkgs" "nixpkgs"
], ],
"nixpkgs-stable": "nixpkgs-stable_6" "nixpkgs-stable": "nixpkgs-stable_5"
}, },
"locked": { "locked": {
"lastModified": 1751908357, "lastModified": 1751908357,
@ -1887,64 +1887,6 @@
"type": "github" "type": "github"
} }
}, },
"niri-flake": {
"inputs": {
"niri-stable": "niri-stable",
"niri-unstable": "niri-unstable",
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable_2",
"xwayland-satellite-stable": "xwayland-satellite-stable",
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
"lastModified": 1754797984,
"narHash": "sha256-t2WFkdB2qUyZt5rdqmJ340kqhvQWWOCJBJIc1nQ/Hg4=",
"owner": "sodiboo",
"repo": "niri-flake",
"rev": "647a310f1eaa59abec8aa215ff69d8979195425e",
"type": "github"
},
"original": {
"owner": "sodiboo",
"repo": "niri-flake",
"type": "github"
}
},
"niri-stable": {
"flake": false,
"locked": {
"lastModified": 1748151941,
"narHash": "sha256-z4viQZLgC2bIJ3VrzQnR+q2F3gAOEQpU1H5xHtX/2fs=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "8ba57fcf25d2fc9565131684a839d58703f1dae7",
"type": "github"
},
"original": {
"owner": "YaLTeR",
"ref": "v25.05.1",
"repo": "niri",
"type": "github"
}
},
"niri-unstable": {
"flake": false,
"locked": {
"lastModified": 1754742008,
"narHash": "sha256-Tp0FG7VpLudVEC622d91z2hbdfPLCXxw0Nv43iNN4O0=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "67361f88fd01974ebee4cf80f0e29c87d805cc39",
"type": "github"
},
"original": {
"owner": "YaLTeR",
"repo": "niri",
"type": "github"
}
},
"nix-darwin": { "nix-darwin": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -2521,11 +2463,11 @@
}, },
"nixpkgs-dev": { "nixpkgs-dev": {
"locked": { "locked": {
"lastModified": 1755895490, "lastModified": 1754384443,
"narHash": "sha256-BIqIaeWsmrSxIs/oUg5hjo0/ZU0d5pf5RkPvcQGRilc=", "narHash": "sha256-sjSFVbQhMJ6c3x/DUWmactuR2sw1FtLzBMXMyicOQSU=",
"owner": "Swarsel", "owner": "Swarsel",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "526b9d738fc2af2eb010b996b9b5918b46e7cf92", "rev": "d078a753aa08f98a2aa11922f87ae2b11bf67ca9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -2939,22 +2881,6 @@
} }
}, },
"nixpkgs-stable_3": { "nixpkgs-stable_3": {
"locked": {
"lastModified": 1754689972,
"narHash": "sha256-eogqv6FqZXHgqrbZzHnq43GalnRbLTkbBbFtEfm1RSc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fc756aa6f5d3e2e5666efcf865d190701fef150a",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable_4": {
"locked": { "locked": {
"lastModified": 1751274312, "lastModified": 1751274312,
"narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=", "narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=",
@ -2970,7 +2896,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-stable_5": { "nixpkgs-stable_4": {
"locked": { "locked": {
"lastModified": 1751741127, "lastModified": 1751741127,
"narHash": "sha256-t75Shs76NgxjZSgvvZZ9qOmz5zuBE8buUaYD28BMTxg=", "narHash": "sha256-t75Shs76NgxjZSgvvZZ9qOmz5zuBE8buUaYD28BMTxg=",
@ -2986,7 +2912,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-stable_6": { "nixpkgs-stable_5": {
"locked": { "locked": {
"lastModified": 1751274312, "lastModified": 1751274312,
"narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=", "narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=",
@ -3002,7 +2928,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-stable_7": { "nixpkgs-stable_6": {
"locked": { "locked": {
"lastModified": 1751741127, "lastModified": 1751741127,
"narHash": "sha256-t75Shs76NgxjZSgvvZZ9qOmz5zuBE8buUaYD28BMTxg=", "narHash": "sha256-t75Shs76NgxjZSgvvZZ9qOmz5zuBE8buUaYD28BMTxg=",
@ -4059,7 +3985,6 @@
"home-manager": "home-manager", "home-manager": "home-manager",
"impermanence": "impermanence", "impermanence": "impermanence",
"lanzaboote": "lanzaboote", "lanzaboote": "lanzaboote",
"niri-flake": "niri-flake",
"nix-darwin": "nix-darwin", "nix-darwin": "nix-darwin",
"nix-index-database": "nix-index-database", "nix-index-database": "nix-index-database",
"nix-on-droid": "nix-on-droid", "nix-on-droid": "nix-on-droid",
@ -4070,7 +3995,7 @@
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_4",
"nixpkgs-dev": "nixpkgs-dev", "nixpkgs-dev": "nixpkgs-dev",
"nixpkgs-kernel": "nixpkgs-kernel", "nixpkgs-kernel": "nixpkgs-kernel",
"nixpkgs-stable": "nixpkgs-stable_3", "nixpkgs-stable": "nixpkgs-stable_2",
"nixpkgs-stable24_05": "nixpkgs-stable24_05", "nixpkgs-stable24_05": "nixpkgs-stable24_05",
"nixpkgs-stable24_11": "nixpkgs-stable24_11", "nixpkgs-stable24_11": "nixpkgs-stable24_11",
"nswitch-rcm-nix": "nswitch-rcm-nix", "nswitch-rcm-nix": "nswitch-rcm-nix",
@ -4457,7 +4382,7 @@
"nixpkgs": "nixpkgs_12", "nixpkgs": "nixpkgs_12",
"nixpkgs-dev": "nixpkgs-dev_2", "nixpkgs-dev": "nixpkgs-dev_2",
"nixpkgs-kernel": "nixpkgs-kernel_2", "nixpkgs-kernel": "nixpkgs-kernel_2",
"nixpkgs-stable": "nixpkgs-stable_5", "nixpkgs-stable": "nixpkgs-stable_4",
"nixpkgs-stable24_05": "nixpkgs-stable24_05_2", "nixpkgs-stable24_05": "nixpkgs-stable24_05_2",
"nixpkgs-stable24_11": "nixpkgs-stable24_11_2", "nixpkgs-stable24_11": "nixpkgs-stable24_11_2",
"nswitch-rcm-nix": "nswitch-rcm-nix_2", "nswitch-rcm-nix": "nswitch-rcm-nix_2",
@ -4491,11 +4416,11 @@
"systems": "systems_17" "systems": "systems_17"
}, },
"locked": { "locked": {
"lastModified": 1754895103, "lastModified": 1754846369,
"narHash": "sha256-v8t5EjfbDurvTCBVHtFSRL+m5OfCPpTMmgzVC7h93sU=", "narHash": "sha256-yT9Z1VS/i9ZkqdeMYjACd0xPmF/X0ZILt7YTlHfBD8k=",
"owner": "Swarsel", "owner": "Swarsel",
"repo": "swarsel-modules", "repo": "swarsel-modules",
"rev": "4e779044540278b93171d846c71d2bd7823fd806", "rev": "60a2c35486f458e9ae95883801d8509840096d21",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -4525,7 +4450,7 @@
"nixpkgs": "nixpkgs_20", "nixpkgs": "nixpkgs_20",
"nixpkgs-dev": "nixpkgs-dev_3", "nixpkgs-dev": "nixpkgs-dev_3",
"nixpkgs-kernel": "nixpkgs-kernel_3", "nixpkgs-kernel": "nixpkgs-kernel_3",
"nixpkgs-stable": "nixpkgs-stable_7", "nixpkgs-stable": "nixpkgs-stable_6",
"nixpkgs-stable24_05": "nixpkgs-stable24_05_3", "nixpkgs-stable24_05": "nixpkgs-stable24_05_3",
"nixpkgs-stable24_11": "nixpkgs-stable24_11_3", "nixpkgs-stable24_11": "nixpkgs-stable24_11_3",
"nswitch-rcm-nix": "nswitch-rcm-nix_3", "nswitch-rcm-nix": "nswitch-rcm-nix_3",
@ -5210,39 +5135,6 @@
"url": "ssh://git@github.com/vbc-it/vbc-nix.git" "url": "ssh://git@github.com/vbc-it/vbc-nix.git"
} }
}, },
"xwayland-satellite-stable": {
"flake": false,
"locked": {
"lastModified": 1748488455,
"narHash": "sha256-IiLr1alzKFIy5tGGpDlabQbe6LV1c9ABvkH6T5WmyRI=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "3ba30b149f9eb2bbf42cf4758d2158ca8cceef73",
"type": "github"
},
"original": {
"owner": "Supreeeme",
"ref": "v0.6",
"repo": "xwayland-satellite",
"type": "github"
}
},
"xwayland-satellite-unstable": {
"flake": false,
"locked": {
"lastModified": 1754533920,
"narHash": "sha256-fCZ68Yud1sUCq6UNXj0SDyiBgVA8gJUE+14ZFGsFJG8=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "e0d1dad25a158551ab58547b2ece4b7d5a19929c",
"type": "github"
},
"original": {
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"type": "github"
}
},
"zjstatus": { "zjstatus": {
"inputs": { "inputs": {
"crane": "crane_4", "crane": "crane_4",

View file

@ -87,11 +87,6 @@
url = "github:Gerg-l/spicetify-nix"; url = "github:Gerg-l/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
niri-flake = {
url = "github:sodiboo/niri-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = outputs =
inputs: inputs:

View file

@ -14,7 +14,6 @@ in
# defaultSopsFile = lib.mkForce "/home/swarsel/.dotfiles/secrets/moonside/secrets.yaml"; # defaultSopsFile = lib.mkForce "/home/swarsel/.dotfiles/secrets/moonside/secrets.yaml";
secrets = { secrets = {
wireguard-private-key = { inherit sopsFile; }; wireguard-private-key = { inherit sopsFile; };
wireguard-home-preshared-key = { inherit sopsFile; };
}; };
}; };
@ -50,23 +49,16 @@ in
interfaces = { interfaces = {
home-vpn = { home-vpn = {
privateKeyFile = config.sops.secrets.wireguard-private-key.path; privateKeyFile = config.sops.secrets.wireguard-private-key.path;
# ips = [ "192.168.3.4/32" ]; ips = [ "192.168.3.4/32" ];
ips = [ "192.168.178.201/24" ];
peers = [ peers = [
{ {
# publicKey = "NNGvakADslOTCmN9HJOW/7qiM+oJ3jAlSZGoShg4ZWw="; publicKey = "NNGvakADslOTCmN9HJOW/7qiM+oJ3jAlSZGoShg4ZWw=";
publicKey = "PmeFInoEJcKx+7Kva4dNnjOEnJ8lbudSf1cbdo/tzgw=";
presharedKeyFile = config.sops.secrets.wireguard-home-preshared-key.path;
name = "moonside"; name = "moonside";
persistentKeepalive = 25; persistentKeepalive = 25;
# endpoint = "${config.repo.secrets.common.ipv4}:51820"; endpoint = "${config.repo.secrets.common.ipv4}:51820";
endpoint = "${config.repo.secrets.common.wireguardEndpoint}";
# allowedIPs = [
# "192.168.3.0/24"
# "192.168.1.0/24"
# ];
allowedIPs = [ allowedIPs = [
"192.168.178.0/24" "192.168.3.0/24"
"192.168.1.0/24"
]; ];
} }
]; ];
@ -135,7 +127,6 @@ in
}; };
swarselsystems = { swarselsystems = {
flakePath = "/root/.dotfiles";
info = "VM.Standard.A1.Flex, 4 OCPUs, 24GB RAM"; info = "VM.Standard.A1.Flex, 4 OCPUs, 24GB RAM";
isImpermanence = true; isImpermanence = true;
isSecureBoot = false; isSecureBoot = false;

View file

@ -56,8 +56,7 @@ in
}; };
monitors = { monitors = {
main = { main = {
# name = "BOE 0x0BC9 Unknown"; name = "BOE 0x0BC9 Unknown";
name = "BOE 0x0BC9";
mode = "2560x1600"; # TEMPLATE mode = "2560x1600"; # TEMPLATE
scale = "1"; scale = "1";
position = "2560,0"; position = "2560,0";

View file

@ -10,8 +10,6 @@
loader.efi.canTouchEfiVariables = true; loader.efi.canTouchEfiVariables = true;
}; };
globals.hosts.${config.node.name}.ipv4 = config.repo.secrets.local.ipv4;
networking = { networking = {
inherit (config.repo.secrets.local) hostId; inherit (config.repo.secrets.local) hostId;
hostName = "winters"; hostName = "winters";

View file

@ -1,5 +1,5 @@
{ {
"data": "ENC[AES256_GCM,data:ehwByZT896X/hKe5CgolapiScCrPj9yhc99mWJ8HCDvK/p5JsZcq/fISfnhNDtXw2mk9DzdCAOkOqaJ2K/ZQTkTogqKbO/992K23hXe6xF/HhjjELJuRf5mnVT8Z9T27Co9w1FyGQnzIMEJcj7NVfnwjZjOSRFJG9u2tjRy09gO6cNnRF4fKZzqy3BRKWo/2CCib+nIFTrUX/tE9gUm0kIkX9lEDFH4lEXdNnVZTPeGM8OTAhiClWzqWInFqW9CrXaXuZrkfa0XyaXG4pWr+J8rYjBGqCHU4h43FqkUU0UKbapTbnY7yxlnwA61dueGYYpXGjRuyY8rVD9GWd7FgPO7SrgbvOb6nSGBOdDsBa2ME3ysG2+9tQwOvKbllpD3BlK0ettpcdpqBtpFUrpf8PUJsmWdzVZTP0ZVM0k3OdqLIPzgB5mLrcN5MvJ6MvWXWo1i/yWKGFVSGNfD8cieI7avIXm9zwSouDz06fmq9cWtZ4oG+z+h0fjsw7Ns5/mmH8r298JIQmJKg8LhShA0PCC4Yptv8RCDJMv6DRVMCqIEc10rpg0jDZWPImeHh4eCY6qyXoDsDRXVIEEYVawQJIN7PJfV3fN8X+wCJJatARIrFapJFLGNRCyFrIG5h5IhACwaBmawZrJf9WQVaKCLVQ+NDyC6PMmsmuV5b6JukrPruTfXYLFdIODEr8qVYfvwaCN1mqa/iVLO3T9zNUEed7bSuLj0KAQdEdoxhrB/hU7EO3q9VfjZXMlnDyDQNAPKwpnsk18kCgVWL3S2BKwQbfFvKi9Aqx0WtBkn6K9UJ0tZyOywz1RdhH/CL+FxOU4PsG8piNgrvWEqMDFPaefaj9BNKIY8Mhb1wDgb5etVbT7vvhIGTZfUVUAOcXmySqqiDdSNwImDZAMJmzAoArzyUswq/dVzNmCfm7Or9/KAZxp5nqM/DrfPw2wLWpOxxyY6R/irzT9KyhHHtv59IROIDtU0wm6gzU3j+oEJ2MgnpRzgqknDM1K8j9Wk/kzPcT9Hqp9N95NfLApQHaKuDtmqFoa09mIQa5pGFacArWA0P8PjEsj5vJLZ1n/+HG0odU3fv5z54Azd1MmHu1lIvIRlbvKDmtvFW53IyLnD1sqRMCkntsuuef8bIobS6An8wy08tP+bKaPX4pMLUD9TpSkYgPOJEx9MVpUyUSGiBnVoN/DJr3ZrDY6cB9d+nOD9euQLv0F+dXteArvuxe2uTvetnmta+fW0+fQhLOoD2tNehOq3jyn1/JJlIzhx4K6go1toNeUKcZX/niYhzYjSw6+q6kQPcz+t+LhqyWdlWnLEDMc2auiJRpImGMjGYYF+pK6tPkBftmR5h0DcG7EYgL2XGEGprKRIIUuZ4a+DGGqb1aL99WenwU+Wtz/kvohuLZd1jsym0lhgqxlenx54GIzMDCu6UF5vYd1dnqfpKH0HjlBFRCZk/WXCp6BFrgtmhbUhfCi4xCUniDsN2zeIzH7rF+uIdqsTtm2bbSLBZh3RqeswqFMSs7ZnQRjmT3CdXS7F45vX2pMyo,iv:AtYXO4kgmOsMys8DFNe7aCq1PJ9sBzsaAmaNGVNMq4A=,tag:2ovss2xLfW3GgcdLfltwcQ==,type:str]", "data": "ENC[AES256_GCM,data:Ow17QtITRfXk4BJGWb4jw1gX8HRIAdpBDpyGtif3Vb42cCqSWpLaIR1KecbU3OPkGesC/vh2tgmfE/xlm6nUR8kvRDZdhFr7UckeKFiD4hlfHBhGckaCXOiRZ3ACHrHfM/a2CbKDl14xLDMFDervdMRfB/4vjvnn9xvhjepZ1e7+Iopd9agL8r658AMFF3j2tRYZp7l5GLArs+7mUsFfXujkui1Xgh5+TRvYPh3zQ18RWyP4QMYP6HPHgHRH7S6uciUb6Qq1yEytOy3pCJTb+gZaa9xI1azzP7r83b7KeXdukupR+9fNWN52swDHXRugThMrh4kOrBdyaafJ1v2w4FTTPwj6JQvkxT+vMV4+WIclhD/FWtEHtUqsHDFnMzTIQfyTMt42HZKNdQDwp2fwuV1BP0qOUqRnheaTPiyZiZL8I27xDfwp5zfSqxA7KEzLL2uRbIPefdqNFlcte/xL9IkbTux+AmHaIjQeLkiPyMf2wc2NTIabWPk/ILC917vnancdAQuujB38SaWPrKeCEqDKsArvgjnmn47ctBND73G4PszieneCnuq4sNT9QrC81mk/AQv5TFG0i0fvPoXfpO4ul7MgaP+iPodb2CThHKDAwL+Gnq/6+tg+vJbTKxrsixHvYViA9p/ke1YaRFg2R8V7NwRDl68NI2yCaqj3qlS6Sa8Mx7IUQR6aCN4nkpcJs2GLVCEhWKFBsNXXhPa01C/81JGJ6+/zfHuGbY6gGtS7k3cZ9+dfizN29nBlp+A1U+Noxjl9arYOX4gjEnQhvo9Tp/gBCmrvXjoE6ja8XXUv78/Bfnvup52gdNunYRYv3Aj91F0u6fH6UqoWPXVTy6eznV727Pj9H1BPzMEfmf3EPc6Qcg7AR7vKORfH3U0PFXxFMY0kGEJdug5jmLuwUoRR9zOyHOqdS4Tk9BcMT02gRyQf6LZ3drDoqC35L5hop/gfbleUXXODn3cE1mEuAuZ08OSavZ24IHo1aMr50gjn32WSBKkjfC0dobBWzWwykxhu0vZZI3xYJx/59qqsodDGAJAhry5N6vrwM/PK/O73L2QBqkaT50eImIQ4+vpahcvFPRIkHLvQkzxlyH0dafuGyyF2gfig5Rq3vw02pT8z06LjmJ/ehvteyy1BE9CdiUvYHjaBXiWg2n5FvAe5e8EQxUx9+SwfwEpnucuocp7g+d3W3cXJOU6m9JxwvK7LX95MbpKOtdPq11yi35LLb1TikFLdFZyu+SeaNFD3AzQMOSem6Lwc7N7WHC5z3Ah7FvqqnL2J51hDfMLW78A7DCI9GNRVoyVjx++gRr+ftEf8UUAYmkJdT/D898wtLWmBXikY/2e36q3QJV0Hy3fGBjxLmN/Tdz62jgCaXrNdJqJTFZ5h+hjd03GT6utmPwp0D2lBSM0LXsZsql+jI54P8cFdu3S4mNIjHZqV1kmsk0MCCVJKnGODeLQLxJhp287N3+0HJEm4KicGWMchef/YeiLLtD7mz7ov/9OI,iv:KvoTnlj+f+eMsFEZP8F1v0r/xZ4aVBUWmO+zsQCvhS4=,tag:U1ziE2832QfNkP0yjIzBeA==,type:str]",
"sops": { "sops": {
"age": [ "age": [
{ {
@ -7,8 +7,8 @@
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyK0w2RjJ5R1l2ay94QXRj\nekJwSlowcFVLc1cvWVFjNEVFUnFocEJHYlNnCnBnUEYvNWdNWE9BTjB5ODRuTlAw\nMUh4QmlTeVVYNHM0S1FwWG5qUG42VDgKLS0tIHh5VlU2dVZmUlRIMDRlVEJmNU55\ncFlXR1BzMkVnMkFWN3BBZWhHalltMlEKibdARxBcFqaXUhYp3KkrrvO9YgaBDacl\n8BEv4ph0f2baDN0dsymJjmdHStwKTjOwDspRtCTs5u75hR35a2xyFQ==\n-----END AGE ENCRYPTED FILE-----\n" "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyK0w2RjJ5R1l2ay94QXRj\nekJwSlowcFVLc1cvWVFjNEVFUnFocEJHYlNnCnBnUEYvNWdNWE9BTjB5ODRuTlAw\nMUh4QmlTeVVYNHM0S1FwWG5qUG42VDgKLS0tIHh5VlU2dVZmUlRIMDRlVEJmNU55\ncFlXR1BzMkVnMkFWN3BBZWhHalltMlEKibdARxBcFqaXUhYp3KkrrvO9YgaBDacl\n8BEv4ph0f2baDN0dsymJjmdHStwKTjOwDspRtCTs5u75hR35a2xyFQ==\n-----END AGE ENCRYPTED FILE-----\n"
} }
], ],
"lastmodified": "2025-08-12T18:21:56Z", "lastmodified": "2025-07-17T20:14:29Z",
"mac": "ENC[AES256_GCM,data:6gxEKYRIefxE0DKWuc40wkOp/oCzKxg4jMz5WVqWHXUjOorz6A9TTLYo8UhYCVB8pwxC46iLCND3rDWudurz+2vl/tTDpuh04utB2f6GFy+g5f6Rs9x/KWWFR8pB/BwaG9tEW4UfF7bud6FYM9dY5fJADU6CPxpanOLdhzt7j8A=,iv:oxMFeIwbLFzvCZsmf/z5L3Wi4Quscx+zzD8dafEc66Y=,tag:hKfqVt2nZieQyqQAKexMiA==,type:str]", "mac": "ENC[AES256_GCM,data:4YP1fp9Mcbx0pvS5l9Xzc5cbhFnBo5GkqyRvcEspNYQ3IW5LIWtPwItwLZH/ymfEkpwIVYOugnB12HJJo9jpudgfUMXtp43ImDUNVHs59qkNhJFmTSoEZMBHQjPtE/jE17OIAZzeA41EAItesrmExV1W8ePy7rTgHQl5BDooWME=,iv:vyZ0BGjMUDeoVMkDw6wLZK3KKIECK5caz/nQB3nXlGs=,tag:GAqKNcSf3Ny/WsB3tYM/og==,type:str]",
"pgp": [ "pgp": [
{ {
"created_at": "2025-06-11T11:42:23Z", "created_at": "2025-06-11T11:42:23Z",

View file

@ -11,7 +11,6 @@
timer timer
e e
swarselcheck swarselcheck
swarselcheck-niri
waybarupdate waybarupdate
opacitytoggle opacitytoggle
fs-diff fs-diff

View file

@ -1,4 +1,4 @@
{ self, lib, config, pkgs, globals, inputs, ... }: { self, lib, config, pkgs, globals, ... }:
let let
inherit (config.swarselsystems) homeDir isPublic isNixos; inherit (config.swarselsystems) homeDir isPublic isNixos;
inherit (config.repo.secrets.common.emacs) radicaleUser; inherit (config.repo.secrets.common.emacs) radicaleUser;
@ -56,19 +56,17 @@ in
packageRequires = [ epkgs.jsonrpc epkgs.eglot ]; packageRequires = [ epkgs.jsonrpc epkgs.eglot ];
}) })
(inputs.nixpkgs-dev.legacyPackages.${pkgs.system}.emacsPackagesFor pkgs.emacs-git-pgtk).calfw (epkgs.trivialBuild rec {
# epkgs.calfw pname = "calfw";
# (epkgs.trivialBuild rec { version = "1.0.0-20231002";
# pname = "calfw"; src = pkgs.fetchFromGitHub {
# version = "1.0.0-20231002"; owner = "haji-ali";
# src = pkgs.fetchFromGitHub { repo = "emacs-calfw";
# owner = "haji-ali"; rev = "bc99afee611690f85f0cd0bd33300f3385ddd3d3";
# repo = "emacs-calfw"; hash = "sha256-0xMII1KJhTBgQ57tXJks0ZFYMXIanrOl9XyqVmu7a7Y=";
# rev = "bc99afee611690f85f0cd0bd33300f3385ddd3d3"; };
# hash = "sha256-0xMII1KJhTBgQ57tXJks0ZFYMXIanrOl9XyqVmu7a7Y="; packageRequires = [ epkgs.howm ];
# }; })
# packageRequires = [ epkgs.howm ];
# })
(epkgs.trivialBuild rec { (epkgs.trivialBuild rec {
pname = "fast-scroll"; pname = "fast-scroll";

View file

@ -7,14 +7,11 @@ in
config = lib.mkIf config.swarselmodules.gpgagent { config = lib.mkIf config.swarselmodules.gpgagent {
services.gpg-agent = { services.gpg-agent = {
enable = true; enable = true;
verbose = true;
enableZshIntegration = true; enableZshIntegration = true;
enableScDaemon = true; enableScDaemon = true;
enableSshSupport = true; enableSshSupport = true;
enableExtraSocket = true; enableExtraSocket = true;
pinentry.package = pkgs.wayprompt; pinentry.package = pkgs.pinentry.gtk2;
pinentry.program = "pinentry-wayprompt";
# pinentry.package = pkgs.pinentry.gtk2;
defaultCacheTtl = 600; defaultCacheTtl = 600;
maxCacheTtl = 7200; maxCacheTtl = 7200;
extraConfig = '' extraConfig = ''

View file

@ -1,16 +1,16 @@
{ self, lib, pkgs, config, ... }: { lib, config, ... }:
{ {
options.swarselmodules.kanshi = lib.mkEnableOption "kanshi settings"; options.swarselmodules.kanshi = lib.mkEnableOption "kanshi settings";
config = lib.mkIf config.swarselmodules.kanshi { config = lib.mkIf config.swarselmodules.kanshi {
swarselsystems = { swarselsystems = {
monitors = { monitors = {
homedesktop = rec { homedesktop = {
name = "Philips Consumer Electronics Company PHL BDM3270 AU11806002320"; name = "Philips Consumer Electronics Company PHL BDM3270 AU11806002320";
mode = "2560x1440"; mode = "2560x1440";
scale = "1"; scale = "1";
position = "0,0"; position = "0,0";
workspace = "11:M"; workspace = "1:";
output = name; output = "DP-11";
}; };
}; };
}; };
@ -36,7 +36,6 @@
{ {
profile = { profile = {
name = "lidopen"; name = "lidopen";
exec = [ "${pkgs.swaybg}/bin/swaybg --output '${config.swarselsystems.sharescreen}' --image ${config.swarselsystems.wallpaper} --mode ${config.stylix.imageScalingMode}" ];
outputs = [ outputs = [
{ {
criteria = "eDP-2"; criteria = "eDP-2";
@ -47,13 +46,8 @@
}; };
} }
{ {
profile = profile = {
let
monitor = "Philips Consumer Electronics Company PHL BDM3270 AU11806002320";
in
{
name = "lidopen"; name = "lidopen";
exec = [ "${pkgs.swaybg}/bin/swaybg --output '${monitor}' --image ${self}/files/wallpaper/standwp.png --mode ${config.stylix.imageScalingMode}" ];
outputs = [ outputs = [
{ {
criteria = config.swarselsystems.sharescreen; criteria = config.swarselsystems.sharescreen;
@ -62,7 +56,7 @@
position = "2560,0"; position = "2560,0";
} }
{ {
criteria = monitor; criteria = "Philips Consumer Electronics Company PHL BDM3270 AU11806002320";
scale = 1.0; scale = 1.0;
mode = "2560x1440"; mode = "2560x1440";
position = "0,0"; position = "0,0";
@ -71,13 +65,8 @@
}; };
} }
{ {
profile = profile = {
let
monitor = "Philips Consumer Electronics Company PHL BDM3270 AU11806002320";
in
{
name = "lidclosed"; name = "lidclosed";
exec = [ "${pkgs.swaybg}/bin/swaybg --output '${monitor}' --image ${self}/files/wallpaper/standwp.png --mode ${config.stylix.imageScalingMode}" ];
outputs = [ outputs = [
{ {
criteria = config.swarselsystems.sharescreen; criteria = config.swarselsystems.sharescreen;
@ -85,7 +74,7 @@
position = "2560,0"; position = "2560,0";
} }
{ {
criteria = monitor; criteria = "Philips Consumer Electronics Company PHL BDM3270 AU11806002320";
scale = 1.0; scale = 1.0;
mode = "2560x1440"; mode = "2560x1440";
position = "0,0"; position = "0,0";

View file

@ -119,7 +119,6 @@ in
account = { account = {
Timeout = 120; Timeout = 120;
PipelineDepth = 1; PipelineDepth = 1;
AuthMechs = "LOGIN";
}; };
}; };
}; };

View file

@ -1,204 +0,0 @@
{ config, pkgs, lib, vars, ... }:
{
options.swarselmodules.niri = lib.mkEnableOption "niri settings";
config = lib.mkIf config.swarselmodules.niri {
programs.niri = {
package = pkgs.niri-unstable; # which package to use for niri validation
settings = {
xwayland-satellite = {
enable = true;
path = "${lib.getExe pkgs.xwayland-satellite-unstable}";
};
prefer-no-csd = true;
layer-rules = [
{ matches = [{ namespace = "^notifications$"; }]; block-out-from = "screencast"; }
{ matches = [{ namespace = "^wallpaper$"; }]; place-within-backdrop = true; }
];
window-rules = [
{
matches = [{ app-id = ".*"; }];
opacity = 0.95;
default-column-width = { proportion = 0.5; };
shadow = {
enable = true;
draw-behind-window = true;
};
geometry-corner-radius = { top-left = 2.0; top-right = 2.0; bottom-left = 2.0; bottom-right = 2.0; };
}
{ matches = [{ app-id = "at.yrlf.wl_mirror"; }]; opacity = 1.0; }
{ matches = [{ app-id = "Gimp"; }]; opacity = 1.0; }
{ matches = [{ app-id = "firefox"; }]; opacity = 0.99; }
{ matches = [{ app-id = "^special.*"; }]; default-column-width = { proportion = 0.9; }; open-on-workspace = "Scratchpad"; }
{ matches = [{ app-id = "chromium-browser"; }]; opacity = 0.99; }
{ matches = [{ app-id = "^qalculate-gtk$"; }]; open-floating = true; }
{ matches = [{ app-id = "^blueman$"; }]; open-floating = true; }
{ matches = [{ app-id = "^pavucontrol$"; }]; open-floating = true; }
{ matches = [{ app-id = "^syncthingtray$"; }]; open-floating = true; }
{ matches = [{ app-id = "^Element$"; }]; open-floating = true; default-column-width = { proportion = 0.5; }; block-out-from = "screencast"; }
# { matches = [{ app-id = "^Element$"; }]; default-column-width = { proportion = 0.9; }; open-on-workspace = "Scratchpad"; block-out-from = "screencast"; }
{ matches = [{ app-id = "^vesktop$"; }]; open-floating = true; default-column-width = { proportion = 0.5; }; block-out-from = "screencast"; }
# { matches = [{ app-id = "^vesktop$"; }]; default-column-width = { proportion = 0.9; }; open-on-workspace = "Scratchpad"; block-out-from = "screencast"; }
{ matches = [{ app-id = "^com.nextcloud.desktopclient.nextcloud$"; }]; open-floating = true; }
{ matches = [{ title = ".*1Password.*"; }]; excludes = [{ app-id = "^firefox$"; } { app-id = "^emacs$"; } { app-id = "^kitty$"; }]; open-floating = true; block-out-from = "screencast"; }
{ matches = [{ title = "(?:Open|Save) (?:File|Folder|As)"; }]; open-floating = true; }
{ matches = [{ title = "^Add$"; }]; open-floating = true; }
{ matches = [{ title = "^Picture-in-Picture$"; }]; open-floating = true; }
{ matches = [{ title = "Syncthing Tray"; }]; open-floating = true; }
{ matches = [{ title = "^Emacs Popup Frame$"; }]; open-floating = true; }
{ matches = [{ title = "^Emacs Popup Anchor$"; }]; open-floating = true; }
{ matches = [{ app-id = "^spotifytui$"; }]; open-floating = true; default-column-width = { proportion = 0.5; }; }
{ matches = [{ app-id = "^kittyterm$"; }]; open-floating = true; default-column-width = { proportion = 0.5; }; }
];
environment = {
DISPLAY = ":0";
} // vars.waylandSessionVariables;
screenshot-path = "~/Pictures/Screenshots/screenshot_%Y-%m-%d-%H%M%S.png";
input = {
mod-key = "Super";
keyboard = {
xkb = {
layout = "us";
variant = "altgr-intl";
};
};
mouse = {
natural-scroll = false;
};
touchpad = {
enable = true;
tap = true;
tap-button-map = "left-right-middle";
natural-scroll = true;
scroll-method = "two-finger";
click-method = "clickfinger";
disabled-on-external-mouse = true;
drag = true;
drag-lock = false;
dwt = true;
dwtp = true;
};
};
cursor = {
hide-after-inactive-ms = 2000;
hide-when-typing = true;
};
layout = {
background-color = "transparent";
border = {
enable = true;
width = 1;
};
focus-ring = {
enable = false;
};
gaps = 5;
};
binds = with config.lib.niri.actions; let
sh = spawn "sh" "-c";
in
{
# "Mod+Super_L" = spawn "killall -SIGUSR1 .waybar-wrapped";
"Mod+z".action = spawn "killall -SIGUSR1 .waybar-wrapped";
"Mod+Shift+t".action = toggle-window-rule-opacity;
# "Mod+Escape".action = "mode $exit";
"Mod+m".action = focus-workspace-previous;
"Mod+Shift+Space".action = toggle-window-floating;
"Mod+Shift+f".action = toggle-windowed-fullscreen;
"Mod+q".action = close-window;
"Mod+f".action = spawn "firefox";
"Mod+Space".action = spawn "fuzzel";
"Mod+Shift+c".action = spawn "qalculate-gtk";
"Mod+Ctrl+p".action = spawn "1password" "--quick-acces";
"Mod+Shift+Escape".action = spawn "kitty" "-o" "confirm_os_window_close=0" "btm";
"Mod+h".action = sh ''hyprpicker | wl-copy'';
# "Mod+s".action = spawn "grim" "-g" "\"$(slurp)\"" "-t" "png" "-" "|" "wl-copy" "-t" "image/png";
"Mod+s".action = screenshot { show-pointer = false; };
# "Mod+Shift+s".action = spawn "slurp" "|" "grim" "-g" "-" "Pictures/Screenshots/$(date +'screenshot_%Y-%m-%d-%H%M%S.png')";
"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+e".action = sh "emacsclient -nquc -a emacs -e '(dashboard-open)'";
"Mod+c".action = sh "emacsclient -ce '(org-capture)'";
"Mod+t".action = sh "emacsclient -ce '(org-agenda)'";
"Mod+Shift+m".action = sh "emacsclient -ce '(mu4e)'";
"Mod+Shift+a".action = sh "emacsclient -ce '(swarsel/open-calendar)'";
"Mod+a".action = spawn "swarselcheck-niri" "-s";
"Mod+x".action = spawn "swarselcheck-niri" "-k";
"Mod+d".action = spawn "swarselcheck-niri" "-d";
"Mod+w".action = spawn "swarselcheck-niri" "-e";
"Mod+p".action = spawn "pass-fuzzel";
"Mod+o".action = spawn "pass-fuzzel" "--otp";
"Mod+Shift+p".action = spawn "pass-fuzzel" "--type";
"Mod+Shift+o".action = spawn "pass-fuzzel" "--otp" "--type";
"Mod+Left".action = focus-column-or-monitor-left;
"Mod+Right".action = focus-column-or-monitor-right;
"Mod+Down".action = focus-window-or-workspace-down;
"Mod+Up".action = focus-window-or-workspace-up;
"Mod+Shift+Left".action = move-column-left;
"Mod+Shift+Right".action = move-column-right;
"Mod+Shift+Down".action = move-window-down-or-to-workspace-down;
"Mod+Shift+Up".action = move-window-up-or-to-workspace-up;
# "Mod+Ctrl+Shift+c".action = "reload";
# "Mod+Ctrl+Shift+r".action = "exec swarsel-displaypower";
# "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+Return".action = "exec kitty";
"Mod+Return".action = spawn "swarselzellij";
"XF86AudioRaiseVolume".action = spawn "swayosd-client" "--output-volume" "raise";
"XF86AudioLowerVolume".action = spawn "swayosd-client" "--output-volume" "lower";
"XF86AudioMute".action = spawn "swayosd-client" "--output-volume" "mute-toggle";
"XF86MonBrightnessUp".action = spawn "swayosd-client" "--brightness raise";
"XF86MonBrightnessDown".action = spawn "swayosd-client" "--brightness lower";
"XF86Display".action = spawn "wl-mirror" "eDP-1";
"Mod+Escape".action = spawn "wlogout";
"Mod+Equal".action = set-column-width "+10%";
"Mod+Minus".action = set-column-width "-10%";
"Mod+1".action = focus-workspace 1;
"Mod+2".action = focus-workspace 2;
"Mod+3".action = focus-workspace 3;
"Mod+4".action = focus-workspace 4;
"Mod+5".action = focus-workspace 5;
"Mod+6".action = focus-workspace 6;
"Mod+7".action = focus-workspace 7;
"Mod+8".action = focus-workspace 8;
"Mod+9".action = focus-workspace 9;
"Mod+0".action = focus-workspace 0;
"Mod+Shift+1".action = move-column-to-index 1;
"Mod+Shift+2".action = move-column-to-index 2;
"Mod+Shift+3".action = move-column-to-index 3;
"Mod+Shift+4".action = move-column-to-index 4;
"Mod+Shift+5".action = move-column-to-index 5;
"Mod+Shift+6".action = move-column-to-index 6;
"Mod+Shift+7".action = move-column-to-index 7;
"Mod+Shift+8".action = move-column-to-index 8;
"Mod+Shift+9".action = move-column-to-index 9;
"Mod+Shift+0".action = move-column-to-index 0;
};
spawn-at-startup = [
{ command = [ "vesktop" "--start-minimized" "--enable-speech-dispatcher" "--ozone-platform-hint=auto" "--enable-features=WaylandWindowDecorations" "--enable-wayland-ime" ]; }
{ command = [ "element-desktop" "--hidden" "--enable-features=UseOzonePlatform" "--ozone-platform=wayland" "--disable-gpu-driver-bug-workarounds" ]; }
{ command = [ "anki" ]; }
{ command = [ "obsidian" ]; }
{ command = [ "nm-applet" ]; }
{ command = [ "niri" "msg" "action" "focus-workspace" "2" ]; }
];
workspaces = {
# "01-Main" = {
# name = "Scratchpad";
# };
"99-Scratchpad" = {
name = "";
};
};
};
};
};
}

View file

@ -70,7 +70,6 @@
restic restic
# "big" programs # "big" programs
obs-studio
gimp gimp
inkscape inkscape
zoom-us zoom-us
@ -81,7 +80,7 @@
# spotify # spotify
vesktop # discord client vesktop # discord client
# nextcloud-client # enables a systemd service that I do not want # nextcloud-client # enables a systemd service that I do not want
stable.spotify-player spotify-player
element-desktop element-desktop
nicotine-plus nicotine-plus
stable.transmission_3 stable.transmission_3
@ -136,8 +135,8 @@
# wayland stuff # wayland stuff
wtype wtype
wl-mirror
wl-clipboard wl-clipboard
stable.wl-mirror
wf-recorder wf-recorder
kanshi kanshi

View file

@ -19,7 +19,7 @@
user = "root"; user = "root";
}; };
"winters" = { "winters" = {
hostname = "192.168.178.24"; hostname = "192.168.1.2";
user = "root"; user = "root";
}; };
"minecraft" = { "minecraft" = {

View file

@ -1,4 +1,4 @@
{ config, lib, vars, ... }: { self, config, lib, vars, ... }:
let let
eachOutput = _: monitor: { eachOutput = _: monitor: {
inherit (monitor) name; inherit (monitor) name;
@ -201,14 +201,22 @@ in
"${modifier}+r" = "mode resize"; "${modifier}+r" = "mode resize";
# "${modifier}+Return" = "exec kitty"; # "${modifier}+Return" = "exec kitty";
"${modifier}+Return" = "exec swarselzellij"; "${modifier}+Return" = "exec swarselzellij";
"${modifier}+Print" = "exec screenshare";
# exec swaymsg move workspace to "$(swaymsg -t get_outputs | jq '[.[] | select(.active == true)] | .[(map(.focused) | index(true) + 1) % length].name')"
# "XF86AudioRaiseVolume" = "exec pa 5%";
# "XF86AudioRaiseVolume" = "exec pamixer -i 5";
"XF86AudioRaiseVolume" = "exec swayosd-client --output-volume raise"; "XF86AudioRaiseVolume" = "exec swayosd-client --output-volume raise";
# "XF86AudioLowerVolume" = "exec pactl set-sink-volume @DEFAULT_SINK@ -5%";
# "XF86AudioLowerVolume" = "exec pamixer -d 5";
"XF86AudioLowerVolume" = "exec swayosd-client --output-volume lower"; "XF86AudioLowerVolume" = "exec swayosd-client --output-volume lower";
# "XF86AudioMute" = "exec pactl set-sink-mute @DEFAULT_SINK@ toggle";
# "XF86AudioMute" = "exec pamixer -t";
"XF86AudioMute" = "exec swayosd-client --output-volume mute-toggle"; "XF86AudioMute" = "exec swayosd-client --output-volume mute-toggle";
# "XF86MonBrightnessUp" = "exec brightnessctl set +5%";
"XF86MonBrightnessUp" = "exec swayosd-client --brightness raise"; "XF86MonBrightnessUp" = "exec swayosd-client --brightness raise";
# "XF86MonBrightnessDown" = "exec brightnessctl set 5%-";
"XF86MonBrightnessDown" = "exec swayosd-client --brightness lower"; "XF86MonBrightnessDown" = "exec swayosd-client --brightness lower";
"XF86Display" = "exec wl-mirror eDP-1"; "XF86Display" = "exec wl-mirror eDP-1";
# "--no-repeat Super_L" = "exec killall -SIGUSR1 .waybar-wrapped";
# "${modifier}+z" = "exec killall -SIGUSR1 .waybar-wrapped";
} }
config.swarselsystems.keybindings; config.swarselsystems.keybindings;
modes = { modes = {
@ -223,14 +231,14 @@ in
}; };
}; };
defaultWorkspace = "workspace 1:"; defaultWorkspace = "workspace 1:";
# output = { output = {
# "${config.swarselsystems.sharescreen}" = { "${config.swarselsystems.sharescreen}" = {
# bg = "${self}/files/wallpaper/lenovowp.png ${config.stylix.imageScalingMode}"; bg = "${self}/files/wallpaper/lenovowp.png ${config.stylix.imageScalingMode}";
# }; };
# "Philips Consumer Electronics Company PHL BDM3270 AU11806002320" = { "Philips Consumer Electronics Company PHL BDM3270 AU11806002320" = {
# bg = "${self}/files/wallpaper/standwp.png ${config.stylix.imageScalingMode}"; bg = "${self}/files/wallpaper/standwp.png ${config.stylix.imageScalingMode}";
# }; };
# }; };
input = config.swarselsystems.standardinputs; input = config.swarselsystems.standardinputs;
workspaceOutputAssign = workspaceOutputAssign =
let let

View file

@ -70,29 +70,20 @@ in
enable = true; enable = true;
systemd = { systemd = {
enable = true; enable = true;
# target = "sway-session.target"; target = "sway-session.target";
inherit (config.wayland.systemd) target;
}; };
settings = { settings = {
mainBar = { mainBar = {
ipc = true; ipc = true;
id = "bar-0"; id = "bar-0";
# mode = "hide";
# mode = "overlay";
# passthrough = false;
# start_hidden = true;
layer = "top"; layer = "top";
position = "top"; position = "top";
modules-left = [ "sway/workspaces" "niri/workspaces" "custom/outer-right-arrow-dark" "niri/window" "sway/window" ]; modules-left = [ "sway/workspaces" "custom/outer-right-arrow-dark" "sway/window" ];
modules-center = [ "sway/mode" "privacy" "custom/github" "custom/configwarn" "custom/nix-updates" ]; modules-center = [ "sway/mode" "privacy" "custom/github" "custom/configwarn" "custom/nix-updates" ];
"sway/mode" = { "sway/mode" = {
format = "<span style=\"italic\" font-weight=\"bold\">{}</span>"; format = "<span style=\"italic\" font-weight=\"bold\">{}</span>";
}; };
"niri/window" = {
format = "<span style=\"italic\" font-weight=\"bold\">{title} ({app_id})</span>";
};
modules-right = config.swarselsystems.waybarModules; modules-right = config.swarselsystems.waybarModules;
"custom/pseudobat" = lib.mkIf (!config.swarselsystems.isLaptop) { "custom/pseudobat" = lib.mkIf (!config.swarselsystems.isLaptop) {

View file

@ -59,8 +59,9 @@ in
}; };
}; };
msmtp = { msmtp = {
enable = true; enable = false;
extraConfig = { extraConfig = {
account = "work";
auth = "xoauth2"; auth = "xoauth2";
host = "outlook.office365.com"; host = "outlook.office365.com";
protocol = "smtp"; protocol = "smtp";
@ -72,11 +73,10 @@ in
passwordeval = "pizauth show work"; passwordeval = "pizauth show work";
}; };
}; };
mu.enable = true; mu.enable = false;
mbsync = { mbsync = {
enable = true; enable = false;
expunge = "both"; expunge = "both";
patterns = [ "INBOX" ];
extraConfig = { extraConfig = {
account = { account = {
AuthMechs = "XOAUTH2"; AuthMechs = "XOAUTH2";
@ -85,19 +85,19 @@ in
}; };
}; };
# wayland.windowManager.sway.config = { wayland.windowManager.sway.config = {
# output = { output = {
# "Applied Creative Technology Transmitter QUATTRO201811" = { "Applied Creative Technology Transmitter QUATTRO201811" = {
# bg = "${self}/files/wallpaper/navidrome.png ${config.stylix.imageScalingMode}"; bg = "${self}/files/wallpaper/navidrome.png ${config.stylix.imageScalingMode}";
# }; };
# "Hewlett Packard HP Z24i CN44250RDT" = { "Hewlett Packard HP Z24i CN44250RDT" = {
# bg = "${self}/files/wallpaper/op6wp.png ${config.stylix.imageScalingMode}"; bg = "${self}/files/wallpaper/op6wp.png ${config.stylix.imageScalingMode}";
# }; };
# "HP Inc. HP 732pk CNC4080YL5" = { "HP Inc. HP 732pk CNC4080YL5" = {
# bg = "${self}/files/wallpaper/botanicswp.png ${config.stylix.imageScalingMode}"; bg = "${self}/files/wallpaper/botanicswp.png ${config.stylix.imageScalingMode}";
# }; };
# }; };
# }; };
stylix = { stylix = {
targets.firefox.profileNames = targets.firefox.profileNames =
@ -278,10 +278,6 @@ in
{ {
profile = { profile = {
name = "lidopen"; name = "lidopen";
exec = [
"${pkgs.swaybg}/bin/swaybg --output 'HP Inc. HP 732pk CNC4080YL5' --image ${self}/files/wallpaper/botanicswp.png --mode ${config.stylix.imageScalingMode}"
"${pkgs.swaybg}/bin/swaybg --output 'Hewlett Packard HP Z24i CN44250RDT' --image ${self}/files/wallpaper/op6wp.png --mode ${config.stylix.imageScalingMode}"
];
outputs = [ outputs = [
{ {
criteria = config.swarselsystems.sharescreen; criteria = config.swarselsystems.sharescreen;
@ -306,16 +302,8 @@ in
}; };
} }
{ {
profile = profile = {
let
monitor = "Applied Creative Technology Transmitter QUATTRO201811";
in
{
name = "lidopen"; name = "lidopen";
exec = [
"${pkgs.swaybg}/bin/swaybg --output '${monitor}' --image ${self}/files/wallpaper/navidrome.png --mode ${config.stylix.imageScalingMode}"
"${pkgs.kanshare}/bin/kanshare ${config.swarselsystems.sharescreen} '${monitor}'"
];
outputs = [ outputs = [
{ {
criteria = config.swarselsystems.sharescreen; criteria = config.swarselsystems.sharescreen;
@ -335,10 +323,6 @@ in
{ {
profile = { profile = {
name = "lidclosed"; name = "lidclosed";
exec = [
"${pkgs.swaybg}/bin/swaybg --output 'HP Inc. HP 732pk CNC4080YL5' --image ${self}/files/wallpaper/botanicswp.png --mode ${config.stylix.imageScalingMode}"
"${pkgs.swaybg}/bin/swaybg --output 'Hewlett Packard HP Z24i CN44250RDT' --image ${self}/files/wallpaper/op6wp.png --mode ${config.stylix.imageScalingMode}"
];
outputs = [ outputs = [
{ {
criteria = config.swarselsystems.sharescreen; criteria = config.swarselsystems.sharescreen;
@ -361,15 +345,8 @@ in
}; };
} }
{ {
profile = profile = {
let
monitor = "Applied Creative Technology Transmitter QUATTRO201811";
in
{
name = "lidclosed"; name = "lidclosed";
exec = [
"${pkgs.swaybg}/bin/swaybg --output '${monitor}' --image ${self}/files/wallpaper/navidrome.png --mode ${config.stylix.imageScalingMode}"
];
outputs = [ outputs = [
{ {
criteria = config.swarselsystems.sharescreen; criteria = config.swarselsystems.sharescreen;
@ -388,20 +365,8 @@ in
}; };
}; };
systemd.user.services.pizauth.Service = {
ExecStartPost = [
"${pkgs.toybox}/bin/sleep 1"
"//bin/sh -c '${lib.getExe pkgs.pizauth} restore < ${homeDir}/.pizauth.state'"
];
};
swarselservices.pizauth = { swarselservices.pizauth = {
enable = true; enable = true;
extraConfig = ''
auth_notify_cmd = "if [[ \"$(notify-send -A \"Open $PIZAUTH_ACCOUNT\" -t 30000 'pizauth authorisation')\" == \"0\" ]]; then open \"$PIZAUTH_URL\"; fi";
error_notify_cmd = "notify-send -t 90000 \"pizauth error for $PIZAUTH_ACCOUNT\" \"$PIZAUTH_MSG\"";
token_event_cmd = "pizauth dump > ${homeDir}/.pizauth.state";
'';
accounts = { accounts = {
work = { work = {
authUri = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize"; authUri = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize";
@ -479,60 +444,70 @@ in
{ command = "1password"; } { command = "1password"; }
]; ];
monitors = { monitors = {
work_back_middle = rec { main = {
name = "BOE 0x0BC9 Unknown";
mode = "2560x1600"; # TEMPLATE
scale = "1";
position = "2560,0";
workspace = "15:L";
output = "eDP-2";
};
homedesktop = {
name = "Philips Consumer Electronics Company PHL BDM3270 AU11806002320";
mode = "2560x1440";
scale = "1";
position = "0,0";
workspace = "1:";
output = "DP-11";
};
work_back_middle = {
name = "LG Electronics LG Ultra HD 0x000305A6"; name = "LG Electronics LG Ultra HD 0x000305A6";
mode = "2560x1440"; mode = "2560x1440";
scale = "1"; scale = "1";
position = "5120,0"; position = "5120,0";
workspace = "1:"; workspace = "1:";
# output = "DP-10"; output = "DP-10";
output = name;
}; };
work_front_left = rec { work_front_left = {
name = "LG Electronics LG Ultra HD 0x0007AB45"; name = "LG Electronics LG Ultra HD 0x0007AB45";
mode = "3840x2160"; mode = "3840x2160";
scale = "1"; scale = "1";
position = "5120,0"; position = "5120,0";
workspace = "1:"; workspace = "1:";
# output = "DP-7"; output = "DP-7";
output = name;
}; };
work_back_right = rec { work_back_right = {
name = "HP Inc. HP Z32 CN41212T55"; name = "HP Inc. HP Z32 CN41212T55";
mode = "3840x2160"; mode = "3840x2160";
scale = "1"; scale = "1";
position = "5120,0"; position = "5120,0";
workspace = "1:"; workspace = "1:";
# output = "DP-3"; output = "DP-3";
output = name;
}; };
work_middle_middle_main = rec { work_middle_middle_main = {
name = "HP Inc. HP 732pk CNC4080YL5"; name = "HP Inc. HP 732pk CNC4080YL5";
mode = "3840x2160"; mode = "3840x2160";
scale = "1"; scale = "1";
position = "-1280,0"; position = "-1280,0";
workspace = "11:M"; workspace = "11:M";
# output = "DP-8"; output = "DP-8";
output = name;
}; };
work_middle_middle_side = rec { work_middle_middle_side = {
name = "Hewlett Packard HP Z24i CN44250RDT"; name = "Hewlett Packard HP Z24i CN44250RDT";
mode = "1920x1200"; mode = "1920x1200";
transform = "270"; transform = "270";
scale = "1"; scale = "1";
position = "-2480,0"; position = "-2480,0";
workspace = "12:S"; workspace = "12:S";
# output = "DP-9"; output = "DP-9";
output = name;
}; };
work_seminary = rec { work_seminary = {
name = "Applied Creative Technology Transmitter QUATTRO201811"; name = "Applied Creative Technology Transmitter QUATTRO201811";
mode = "1280x720"; mode = "1280x720";
scale = "1"; scale = "1";
position = "10000,10000"; # i.e. this screen is inaccessible by moving the mouse position = "10000,10000"; # i.e. this screen is inaccessible by moving the mouse
workspace = "14:T"; workspace = "14:T";
# output = "DP-4"; output = "DP-4";
output = name;
}; };
}; };
inputs = { inputs = {
@ -556,6 +531,9 @@ in
xkb_variant = "altgr-intl"; xkb_variant = "altgr-intl";
}; };
}; };
keybindings = {
"Mod4+Ctrl+Shift+p" = "exec screenshare";
};
}; };
}; };

View file

@ -1,23 +0,0 @@
{ lib, config, ... }:
let
moduleName = "keyd";
in
{
options.swarselmodules.${moduleName} = lib.mkEnableOption "${moduleName} tools config";
config = lib.mkIf config.swarselmodules.${moduleName} {
services.keyd = {
enable = true;
keyboards = {
default = {
ids = [ "*" ];
settings = {
main = {
leftmeta = "overload(meta, macro(rightmeta+z))";
rightmeta = "overload(meta, macro(rightmeta+z))";
};
};
};
};
};
};
}

View file

@ -99,26 +99,25 @@ in
${wlan1} = { ${wlan1} = {
connection = { connection = {
id = wlan1; id = wlan1;
# permissions = ""; permissions = "";
type = "wifi"; type = "wifi";
}; };
ipv4 = { ipv4 = {
# dns-search = ""; dns-search = "";
method = "auto"; method = "auto";
}; };
ipv6 = { ipv6 = {
addr-gen-mode = "stable-privacy"; addr-gen-mode = "stable-privacy";
# dns-search = ""; dns-search = "";
method = "auto"; method = "auto";
}; };
wifi = { wifi = {
# mac-address-blacklist = ""; mac-address-blacklist = "";
mode = "infrastructure"; mode = "infrastructure";
band = "a";
ssid = wlan1; ssid = wlan1;
}; };
wifi-security = { wifi-security = {
# auth-alg = "open"; auth-alg = "open";
key-mgmt = "wpa-psk"; key-mgmt = "wpa-psk";
psk = "$WLAN1_PW"; psk = "$WLAN1_PW";
}; };

View file

@ -1,25 +0,0 @@
{ lib, config, pkgs, ... }:
let
moduleName = "niri";
in
{
options.swarselmodules.${moduleName} = lib.mkEnableOption "${moduleName} settings";
config = lib.mkIf config.swarselmodules.${moduleName} {
environment.systemPackages = with pkgs; [
wl-clipboard
wayland-utils
libsecret
cage
gamescope
xwayland-satellite-unstable
];
niri-flake.cache.enable = true;
programs.niri = {
enable = true;
package = pkgs.niri-unstable; # the actual niri that will be installed and used
};
};
}

View file

@ -23,6 +23,7 @@
dbus dbus
swaylock-effects swaylock-effects
syncthingtray-minimal syncthingtray-minimal
wl-mirror
swayosd swayosd
# secure boot # secure boot
@ -47,6 +48,8 @@
# better make for general tasks # better make for general tasks
just just
screenshare
fullscreen
# keyboards # keyboards
qmk qmk
@ -58,7 +61,6 @@
# kde-connect # kde-connect
xdg-desktop-portal xdg-desktop-portal
xdg-desktop-portal-gtk
xdg-desktop-portal-wlr xdg-desktop-portal-wlr
# bluetooth # bluetooth

View file

@ -13,11 +13,6 @@ in
comment = "Sway compositor managed by UWSM"; comment = "Sway compositor managed by UWSM";
binPath = "/run/current-system/sw/bin/sway"; binPath = "/run/current-system/sw/bin/sway";
}; };
niri = {
prettyName = "Niri";
comment = "Niri compositor managed by UWSM";
binPath = "/run/current-system/sw/bin/niri-session";
};
}; };
}; };
}; };

View file

@ -4,11 +4,11 @@
config = lib.mkIf config.swarselmodules.xdg-portal { config = lib.mkIf config.swarselmodules.xdg-portal {
xdg.portal = { xdg.portal = {
enable = true; enable = true;
# config = { config = {
# common = { common = {
# default = "wlr"; default = "wlr";
# }; };
# }; };
wlr.enable = true; wlr.enable = true;
wlr.settings.screencast = { wlr.settings.screencast = {
output_name = "eDP-1"; output_name = "eDP-1";

View file

@ -39,18 +39,6 @@ in
); );
}; };
hosts = mkOption {
type = types.attrsOf (
types.submodule {
options = {
ipv4 = mkOption {
type = types.str;
};
};
}
);
};
domains = { domains = {
main = mkOption { main = mkOption {
type = types.str; type = types.str;

View file

@ -24,7 +24,7 @@ in
emacs-radicale-pw = { owner = mainUser; }; emacs-radicale-pw = { owner = mainUser; };
}); });
templates = { templates = {
authinfo = lib.mkIf modules.emacs { authinfo = {
path = "${homeDir}/.emacs.d/.authinfo"; path = "${homeDir}/.emacs.d/.authinfo";
content = '' content = ''
machine ${globals.services.radicale.domain} login ${radicaleUser} password ${config.sops.placeholder.emacs-radicale-pw} machine ${globals.services.radicale.domain} login ${radicaleUser} password ${config.sops.placeholder.emacs-radicale-pw}

View file

@ -12,7 +12,7 @@ in
users = { users = {
root = { root = {
inherit (globals.root) hashedPassword; inherit (globals.root) hashedPassword;
# shell = pkgs.zsh; shell = pkgs.zsh;
}; };
"${config.swarselsystems.mainUser}" = { "${config.swarselsystems.mainUser}" = {
isNormalUser = true; isNormalUser = true;

View file

@ -1,9 +1,28 @@
{ self, lib, pkgs, config, configName, ... }: { self, lib, pkgs, config, configName, ... }:
let let
inherit (config.swarselsystems) mainUser homeDir; inherit (config.swarselsystems) mainUser homeDir xdgDir;
iwd = config.networking.networkmanager.wifi.backend == "iwd"; iwd = config.networking.networkmanager.wifi.backend == "iwd";
owner = mainUser; owner = mainUser;
sopsFile = self + /secrets/work/secrets.yaml; sopsFile = self + /secrets/work/secrets.yaml;
swarselService = name: description: execStart: {
"${name}" = {
enable = true;
inherit description;
serviceConfig = {
ExecStart = execStart;
User = mainUser;
Group = "users";
Environment = [
"PATH=/run/current-system/sw/bin:/etc/profiles/per-user/${mainUser}/bin"
"XDG_RUNTIME_DIR=${xdgDir}"
"WAYLAND_DISPLAY=wayland-1"
];
Type = "oneshot";
StandardOutput = "journal";
StandardError = "journal";
};
};
};
in in
{ {
options.swarselmodules.optional.work = lib.mkEnableOption "optional work settings"; options.swarselmodules.optional.work = lib.mkEnableOption "optional work settings";
@ -105,7 +124,6 @@ in
mac-address = "E8:65:38:52:63:FF"; mac-address = "E8:65:38:52:63:FF";
mac-address-randomization = "1"; mac-address-randomization = "1";
mode = "infrastructure"; mode = "infrastructure";
band = "a";
ssid = "VBC"; ssid = "VBC";
}; };
wifi-security = { wifi-security = {
@ -153,6 +171,10 @@ in
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# (python39.withPackages (ps: with ps; [
# cryptography
# ]))
# docker
stable24_11.python39 stable24_11.python39
qemu qemu
packer packer
@ -206,12 +228,19 @@ in
}; };
udev.extraRules = '' udev.extraRules = ''
# share screen when dongle detected
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="343c", ATTRS{idProduct}=="0000", TAG+="systemd", ENV{SYSTEMD_WANTS}="swarsel-screenshare.service"
# lock screen when yubikey removed # lock screen when yubikey removed
ACTION=="remove", ENV{PRODUCT}=="3/1050/407/110", RUN+="${pkgs.systemd}/bin/systemctl suspend" ACTION=="remove", ENV{PRODUCT}=="3/1050/407/110", RUN+="${pkgs.systemd}/bin/systemctl suspend"
''; '';
}; };
systemd.services = lib.mkMerge [
(swarselService "swarsel-screenshare" "Start screensharing after HDMI dongle is detected" "${pkgs.screenshare}/bin/screenshare -h")
];
# cgroups v1 is required for centos7 dockers # cgroups v1 is required for centos7 dockers
# specialisation = { # specialisation = {
# cgroup_v1.configuration = { # cgroup_v1.configuration = {

View file

@ -5,7 +5,6 @@ let
servicePort = 27701; servicePort = 27701;
serviceName = "ankisync"; serviceName = "ankisync";
serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; serviceDomain = config.repo.secrets.common.services.domains.${serviceName};
serviceAddress = globals.hosts.winters.ipv4;
ankiUser = globals.user.name; ankiUser = globals.user.name;
in in
@ -42,7 +41,7 @@ in
upstreams = { upstreams = {
${serviceName} = { ${serviceName} = {
servers = { servers = {
"${serviceAddress}:${builtins.toString servicePort}" = { }; "192.168.1.2:${builtins.toString servicePort}" = { };
}; };
}; };
}; };

View file

@ -1,9 +1,8 @@
{ lib, config, globals, ... }: { lib, config, ... }:
let let
servicePort = 8888; servicePort = 8888;
serviceName = "atuin"; serviceName = "atuin";
serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; serviceDomain = config.repo.secrets.common.services.domains.${serviceName};
serviceAddress = globals.hosts.winters.ipv4;
in in
{ {
options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server";
@ -24,7 +23,7 @@ in
upstreams = { upstreams = {
${serviceName} = { ${serviceName} = {
servers = { servers = {
"${serviceAddress}:${builtins.toString servicePort}" = { }; "192.168.1.2:${builtins.toString servicePort}" = { };
}; };
}; };
}; };

View file

@ -1,11 +1,10 @@
{ self, lib, config, globals, ... }: { self, lib, config, ... }:
let let
servicePort = 80; servicePort = 80;
serviceUser = "firefly-iii"; serviceUser = "firefly-iii";
serviceGroup = serviceUser; serviceGroup = serviceUser;
serviceName = "firefly-iii"; serviceName = "firefly-iii";
serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; serviceDomain = config.repo.secrets.common.services.domains.${serviceName};
serviceAddress = globals.hosts.winters.ipv4;
nginxGroup = "nginx"; nginxGroup = "nginx";
@ -82,7 +81,7 @@ in
upstreams = { upstreams = {
${serviceName} = { ${serviceName} = {
servers = { servers = {
"${serviceAddress}:${builtins.toString servicePort}" = { }; "192.168.1.2:${builtins.toString servicePort}" = { };
}; };
}; };
}; };

View file

@ -7,7 +7,6 @@ let
serviceGroup = serviceUser; serviceGroup = serviceUser;
serviceName = "forgejo"; serviceName = "forgejo";
serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; serviceDomain = config.repo.secrets.common.services.domains.${serviceName};
serviceAddress = globals.hosts.winters.ipv4;
kanidmDomain = globals.services.kanidm.domain; kanidmDomain = globals.services.kanidm.domain;
in in
@ -133,7 +132,7 @@ in
upstreams = { upstreams = {
${serviceName} = { ${serviceName} = {
servers = { servers = {
"${serviceAddress}:${builtins.toString servicePort}" = { }; "192.168.1.2:${builtins.toString servicePort}" = { };
}; };
}; };
}; };

View file

@ -1,11 +1,10 @@
{ self, lib, config, globals, ... }: { self, lib, config, ... }:
let let
servicePort = 80; servicePort = 80;
serviceName = "freshrss"; serviceName = "freshrss";
serviceUser = "freshrss"; serviceUser = "freshrss";
serviceGroup = serviceName; serviceGroup = serviceName;
serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; serviceDomain = config.repo.secrets.common.services.domains.${serviceName};
serviceAddress = globals.hosts.winters.ipv4;
inherit (config.swarselsystems) sopsFile; inherit (config.swarselsystems) sopsFile;
in in
@ -78,7 +77,7 @@ in
upstreams = { upstreams = {
${serviceName} = { ${serviceName} = {
servers = { servers = {
"${serviceAddress}:${builtins.toString servicePort}" = { }; "192.168.1.2:${builtins.toString servicePort}" = { };
}; };
}; };
}; };

View file

@ -4,7 +4,6 @@ let
serviceUser = "immich"; serviceUser = "immich";
serviceName = "immich"; serviceName = "immich";
serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; serviceDomain = config.repo.secrets.common.services.domains.${serviceName};
serviceAddress = globals.hosts.winters.ipv4;
in in
{ {
options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server";
@ -34,7 +33,7 @@ in
upstreams = { upstreams = {
${serviceName} = { ${serviceName} = {
servers = { servers = {
"${serviceAddress}:${builtins.toString servicePort}" = { }; "192.168.1.2:${builtins.toString servicePort}" = { };
}; };
}; };
}; };

View file

@ -1,10 +1,9 @@
{ pkgs, lib, config, globals, ... }: { pkgs, lib, config, ... }:
let let
servicePort = 8096; servicePort = 8096;
serviceName = "jellyfin"; serviceName = "jellyfin";
serviceUser = "jellyfin"; serviceUser = "jellyfin";
serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; serviceDomain = config.repo.secrets.common.services.domains.${serviceName};
serviceAddress = globals.hosts.winters.ipv4;
in in
{ {
options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server";
@ -38,7 +37,7 @@ in
upstreams = { upstreams = {
${serviceName} = { ${serviceName} = {
servers = { servers = {
"${serviceAddress}:${builtins.toString servicePort}" = { }; "192.168.1.2:${builtins.toString servicePort}" = { };
}; };
}; };
}; };

View file

@ -1,9 +1,8 @@
{ pkgs, lib, config, globals, ... }: { pkgs, lib, config, ... }:
let let
servicePort = 8088; servicePort = 8088;
serviceName = "jenkins"; serviceName = "jenkins";
serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; serviceDomain = config.repo.secrets.common.services.domains.${serviceName};
serviceAddress = globals.hosts.winters.ipv4;
in in
{ {
options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server";
@ -22,7 +21,7 @@ in
upstreams = { upstreams = {
${serviceName} = { ${serviceName} = {
servers = { servers = {
"${serviceAddress}:${builtins.toString servicePort}" = { }; "192.168.1.2:${builtins.toString servicePort}" = { };
}; };
}; };
}; };

View file

@ -8,7 +8,6 @@ let
serviceGroup = serviceUser; serviceGroup = serviceUser;
serviceName = "kanidm"; serviceName = "kanidm";
serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; serviceDomain = config.repo.secrets.common.services.domains.${serviceName};
serviceAddress = globals.hosts.winters.ipv4;
oauth2ProxyDomain = globals.services.oauth2Proxy.domain; oauth2ProxyDomain = globals.services.oauth2Proxy.domain;
immichDomain = globals.services.immich.domain; immichDomain = globals.services.immich.domain;
@ -238,7 +237,7 @@ in
upstreams = { upstreams = {
${serviceName} = { ${serviceName} = {
servers = { servers = {
"${serviceAddress}:${builtins.toString servicePort}" = { }; "192.168.1.2:${builtins.toString servicePort}" = { };
}; };
}; };
}; };

View file

@ -1,4 +1,4 @@
{ self, lib, config, pkgs, globals, ... }: { self, lib, config, pkgs, ... }:
let let
inherit (config.swarselsystems) sopsFile; inherit (config.swarselsystems) sopsFile;
@ -6,7 +6,6 @@ let
serviceName = "kavita"; serviceName = "kavita";
serviceUser = "kavita"; serviceUser = "kavita";
serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; serviceDomain = config.repo.secrets.common.services.domains.${serviceName};
serviceAddress = globals.hosts.winters.ipv4;
in in
{ {
options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server";
@ -42,7 +41,7 @@ in
upstreams = { upstreams = {
${serviceName} = { ${serviceName} = {
servers = { servers = {
"${serviceAddress}:${builtins.toString servicePort}" = { }; "192.168.1.2:${builtins.toString servicePort}" = { };
}; };
}; };
}; };

View file

@ -1,4 +1,4 @@
{ self, lib, config, globals, ... }: { self, lib, config, ... }:
let let
serviceUser = "koillection"; serviceUser = "koillection";
serviceDB = "koillection"; serviceDB = "koillection";
@ -6,7 +6,6 @@ let
servicePort = 2282; servicePort = 2282;
serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; serviceDomain = config.repo.secrets.common.services.domains.${serviceName};
serviceDir = "/Vault/data/koillection"; serviceDir = "/Vault/data/koillection";
serviceAddress = globals.hosts.winters.ipv4;
postgresUser = config.systemd.services.postgresql.serviceConfig.User; # postgres postgresUser = config.systemd.services.postgresql.serviceConfig.User; # postgres
postgresPort = config.services.postgresql.settings.port; # 5432 postgresPort = config.services.postgresql.settings.port; # 5432
@ -108,7 +107,7 @@ in
upstreams = { upstreams = {
${serviceName} = { ${serviceName} = {
servers = { servers = {
"${serviceAddress}:${builtins.toString servicePort}" = { }; "192.168.1.2:${builtins.toString servicePort}" = { };
}; };
}; };
}; };

View file

@ -1,4 +1,4 @@
{ lib, config, pkgs, globals, ... }: { lib, config, pkgs, ... }:
let let
inherit (config.swarselsystems) sopsFile; inherit (config.swarselsystems) sopsFile;
@ -6,7 +6,6 @@ let
serviceName = "matrix"; serviceName = "matrix";
serviceDomain = config.repo.secrets.common.services.domains.matrix; serviceDomain = config.repo.secrets.common.services.domains.matrix;
serviceUser = "matrix-synapse"; serviceUser = "matrix-synapse";
serviceAddress = globals.hosts.winters.ipv4;
federationPort = 8448; federationPort = 8448;
whatsappPort = 29318; whatsappPort = 29318;
@ -294,7 +293,7 @@ in
upstreams = { upstreams = {
${serviceName} = { ${serviceName} = {
servers = { servers = {
"${serviceAddress}:${builtins.toString servicePort}" = { }; "192.168.1.2:${builtins.toString servicePort}" = { };
}; };
}; };
}; };

View file

@ -5,7 +5,6 @@ let
serviceGroup = serviceUser; serviceGroup = serviceUser;
serviceName = "grafana"; serviceName = "grafana";
serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; serviceDomain = config.repo.secrets.common.services.domains.${serviceName};
serviceAddress = globals.hosts.winters.ipv4;
prometheusPort = 9090; prometheusPort = 9090;
prometheusUser = "prometheus"; prometheusUser = "prometheus";
@ -210,12 +209,12 @@ in
upstreams = { upstreams = {
"${grafanaUpstream}" = { "${grafanaUpstream}" = {
servers = { servers = {
"${serviceAddress}:${builtins.toString servicePort}" = { }; "192.168.1.2:${builtins.toString servicePort}" = { };
}; };
}; };
"${prometheusUpstream}" = { "${prometheusUpstream}" = {
servers = { servers = {
"${serviceAddress}:${builtins.toString prometheusPort}" = { }; "192.168.1.2:${builtins.toString prometheusPort}" = { };
}; };
}; };
}; };

View file

@ -1,11 +1,10 @@
{ pkgs, config, lib, globals, ... }: { pkgs, config, lib, ... }:
let let
servicePort = 4040; servicePort = 4040;
serviceName = "navidrome"; serviceName = "navidrome";
serviceUser = "navidrome"; serviceUser = "navidrome";
serviceGroup = serviceUser; serviceGroup = serviceUser;
serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; serviceDomain = config.repo.secrets.common.services.domains.${serviceName};
serviceAddress = globals.hosts.winters.ipv4;
in in
{ {
options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server";
@ -85,7 +84,7 @@ in
upstreams = { upstreams = {
${serviceName} = { ${serviceName} = {
servers = { servers = {
"${serviceAddress}:${builtins.toString servicePort}" = { }; "192.168.1.2:${builtins.toString servicePort}" = { };
}; };
}; };
}; };

View file

@ -1,4 +1,4 @@
{ pkgs, lib, config, globals, ... }: { pkgs, lib, config, ... }:
let let
inherit (config.repo.secrets.local.nextcloud) adminuser; inherit (config.repo.secrets.local.nextcloud) adminuser;
inherit (config.swarselsystems) sopsFile; inherit (config.swarselsystems) sopsFile;
@ -8,7 +8,6 @@ let
serviceGroup = serviceUser; serviceGroup = serviceUser;
serviceName = "nextcloud"; serviceName = "nextcloud";
serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; serviceDomain = config.repo.secrets.common.services.domains.${serviceName};
serviceAddress = globals.hosts.winters.ipv4;
in in
{ {
options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server";
@ -52,7 +51,7 @@ in
upstreams = { upstreams = {
${serviceName} = { ${serviceName} = {
servers = { servers = {
"${serviceAddress}:${builtins.toString servicePort}" = { }; "192.168.1.2:${builtins.toString servicePort}" = { };
}; };
}; };
}; };

View file

@ -7,7 +7,6 @@ let
serviceGroup = serviceUser; serviceGroup = serviceUser;
serviceName = "paperless"; serviceName = "paperless";
serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; serviceDomain = config.repo.secrets.common.services.domains.${serviceName};
serviceAddress = globals.hosts.winters.ipv4;
tikaPort = 9998; tikaPort = 9998;
gotenbergPort = 3002; gotenbergPort = 3002;
@ -102,7 +101,7 @@ in
upstreams = { upstreams = {
${serviceName} = { ${serviceName} = {
servers = { servers = {
"${serviceAddress}:${builtins.toString servicePort}" = { }; "192.168.1.2:${builtins.toString servicePort}" = { };
}; };
}; };
}; };

View file

@ -1,4 +1,4 @@
{ self, lib, config, globals, ... }: { self, lib, config, ... }:
let let
sopsFile = self + /secrets/winters/secrets2.yaml; sopsFile = self + /secrets/winters/secrets2.yaml;
@ -7,7 +7,6 @@ let
serviceUser = "radicale"; serviceUser = "radicale";
serviceGroup = serviceUser; serviceGroup = serviceUser;
serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; serviceDomain = config.repo.secrets.common.services.domains.${serviceName};
serviceAddress = globals.hosts.winters.ipv4;
cfg = config.services.${serviceName}; cfg = config.services.${serviceName};
in in
@ -86,7 +85,7 @@ in
upstreams = { upstreams = {
${serviceName} = { ${serviceName} = {
servers = { servers = {
"${serviceAddress}:${builtins.toString servicePort}" = { }; "192.168.1.2:${builtins.toString servicePort}" = { };
}; };
}; };
}; };

View file

@ -1,14 +1,12 @@
{ lib, config, configName, globals, ... }: { lib, config, configName, ... }:
let let
inherit (config.swarselsystems.syncthing) serviceDomain;
inherit (config.swarselsystems.syncthing) serviceIP;
servicePort = 8384; servicePort = 8384;
serviceUser = "syncthing"; serviceUser = "syncthing";
serviceGroup = serviceUser; serviceGroup = serviceUser;
serviceName = "syncthing"; serviceName = "syncthing";
serviceAddress = globals.hosts.winters.ipv4;
specificServiceName = "syncthing-${configName}"; specificServiceName = "syncthing-${configName}";
inherit (config.swarselsystems.syncthing) serviceDomain;
inherit (config.swarselsystems.syncthing) serviceIP;
cfg = config.services.${serviceName}; cfg = config.services.${serviceName};
devices = config.swarselsystems.syncthing.syncDevices; devices = config.swarselsystems.syncthing.syncDevices;
@ -24,7 +22,7 @@ in
}; };
serviceIP = lib.mkOption { serviceIP = lib.mkOption {
type = lib.types.str; type = lib.types.str;
default = "${serviceAddress}"; default = "192.168.1.2";
}; };
syncDevices = lib.mkOption { syncDevices = lib.mkOption {
type = lib.types.listOf lib.types.str; type = lib.types.listOf lib.types.str;

View file

@ -54,7 +54,6 @@
inherit (globalsSystem.config.globals) inherit (globalsSystem.config.globals)
domains domains
services services
hosts
user user
root root
; ;

View file

@ -19,7 +19,6 @@
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
inputs.nswitch-rcm-nix.nixosModules.nswitch-rcm inputs.nswitch-rcm-nix.nixosModules.nswitch-rcm
inputs.swarsel-modules.nixosModules.default inputs.swarsel-modules.nixosModules.default
inputs.niri-flake.nixosModules.niri
"${self}/hosts/nixos/${configName}" "${self}/hosts/nixos/${configName}"
"${self}/profiles/nixos" "${self}/profiles/nixos"
"${self}/modules/nixos" "${self}/modules/nixos"

View file

@ -24,10 +24,6 @@ in
]; ];
}; };
isync = prev.isync.override {
withCyrusSaslXoauth2 = true;
};
mgba = final.swarsel-mgba; mgba = final.swarsel-mgba;
retroarch = prev.retroarch.withCores (cores: with cores; [ retroarch = prev.retroarch.withCores (cores: with cores; [
@ -90,7 +86,6 @@ in
// (nixpkgs-stable24_05 final prev) // (nixpkgs-stable24_05 final prev)
// (nixpkgs-stable24_11 final prev) // (nixpkgs-stable24_11 final prev)
// (zjstatus final prev) // (zjstatus final prev)
// (inputs.niri-flake.overlays.niri final prev)
// (inputs.vbc-nix.overlays.default final prev) // (inputs.vbc-nix.overlays.default final prev)
// (inputs.nur.overlays.default final prev) // (inputs.nur.overlays.default final prev)
// (inputs.emacs-overlay.overlay final prev) // (inputs.emacs-overlay.overlay final prev)

View file

@ -1,9 +0,0 @@
{ name, writeShellApplication, wlr-randr, busybox, wl-mirror, ... }:
writeShellApplication {
inherit name;
runtimeInputs = [ wlr-randr busybox wl-mirror ];
text = ''
wlr-randr | grep "$2" | cut -d" " -f1 | xargs -I{} wl-present mirror "$1" --fullscreen-output {}
'';
}

View file

@ -1,6 +0,0 @@
{ self, name, writeShellApplication, kitty, element-desktop, vesktop, spotify-player, jq }:
writeShellApplication {
inherit name;
runtimeInputs = [ kitty element-desktop vesktop spotify-player jq ];
text = builtins.readFile "${self}/files/scripts/${name}.sh";
}

View file

@ -37,7 +37,6 @@
swayosd = lib.mkDefault true; swayosd = lib.mkDefault true;
yubikeytouch = lib.mkDefault true; yubikeytouch = lib.mkDefault true;
sway = lib.mkDefault true; sway = lib.mkDefault true;
niri = lib.mkDefault true;
kanshi = lib.mkDefault true; kanshi = lib.mkDefault true;
gpgagent = lib.mkDefault true; gpgagent = lib.mkDefault true;
gammastep = lib.mkDefault true; gammastep = lib.mkDefault true;

View file

@ -26,7 +26,6 @@
networkDevices = lib.mkDefault true; networkDevices = lib.mkDefault true;
gvfs = lib.mkDefault true; gvfs = lib.mkDefault true;
interceptionTools = lib.mkDefault true; interceptionTools = lib.mkDefault true;
# keyd = lib.mkDefault true;
swayosd = lib.mkDefault true; swayosd = lib.mkDefault true;
ppd = lib.mkDefault true; ppd = lib.mkDefault true;
yubikey = lib.mkDefault true; yubikey = lib.mkDefault true;
@ -39,7 +38,6 @@
gnome-keyring = lib.mkDefault true; gnome-keyring = lib.mkDefault true;
uwsm = lib.mkDefault true; uwsm = lib.mkDefault true;
sway = lib.mkDefault true; sway = lib.mkDefault true;
niri = lib.mkDefault true;
xdg-portal = lib.mkDefault true; xdg-portal = lib.mkDefault true;
distrobox = lib.mkDefault true; distrobox = lib.mkDefault true;
appimage = lib.mkDefault true; appimage = lib.mkDefault true;

View file

@ -4,8 +4,7 @@ address3-token: ENC[AES256_GCM,data:9rotZe4tdPJpdWZMN8UMjksqlA==,iv:gVzLlM6h/+YX
address4-token: ENC[AES256_GCM,data:q1z9P0zo8/66HZOVYv2sT1bxGsIrKSQKGcM3ouX8DaE=,iv:KJFPnQoGObsiLGH1WZFdhrg6cuasLBgbZ8sQ2jiFzEc=,tag:koqwVXnA+i27IkGSeEawkQ==,type:str] address4-token: ENC[AES256_GCM,data:q1z9P0zo8/66HZOVYv2sT1bxGsIrKSQKGcM3ouX8DaE=,iv:KJFPnQoGObsiLGH1WZFdhrg6cuasLBgbZ8sQ2jiFzEc=,tag:koqwVXnA+i27IkGSeEawkQ==,type:str]
fever-pw: ENC[AES256_GCM,data:62cQ/mUFMTb63OY=,iv:RCqzwKEi7LdIegibpVe/WlTsREECy4xrqPFNini49Z8=,tag:bfmBEFj3zzmzfk4T7CfPAw==,type:str] fever-pw: ENC[AES256_GCM,data:62cQ/mUFMTb63OY=,iv:RCqzwKEi7LdIegibpVe/WlTsREECy4xrqPFNini49Z8=,tag:bfmBEFj3zzmzfk4T7CfPAw==,type:str]
main-user-hashed-pw: ENC[AES256_GCM,data:RbXaVuCd8+MTFwwRGK2aJ07clDOOt5msCsEK+384WLdeJz8fjxKJcwIsIUfqlsjKG1Ands9GINlFiCHXPFBRTjnN1ih20t6InA==,iv:pLas4FuJXz5ORvKqZmXyOp9RzKse/vUFOMbw3S1B+Wk=,tag:gkZ2C/Krf53nQiPBVnZ/rw==,type:str] main-user-hashed-pw: ENC[AES256_GCM,data:RbXaVuCd8+MTFwwRGK2aJ07clDOOt5msCsEK+384WLdeJz8fjxKJcwIsIUfqlsjKG1Ands9GINlFiCHXPFBRTjnN1ih20t6InA==,iv:pLas4FuJXz5ORvKqZmXyOp9RzKse/vUFOMbw3S1B+Wk=,tag:gkZ2C/Krf53nQiPBVnZ/rw==,type:str]
#ENC[AES256_GCM,data:O/ceQ4r5sc3YS86n1yQYH40l,iv:Ak2QK9MCIrrT7TRGpyCTEo9e2VsyaeATWjCITqYI+7g=,tag:kcIDdMujWfs2IZIheA82ZQ==,type:comment] wlan1-pw: ENC[AES256_GCM,data:UMKfdycQBa8=,iv:w1Cx+Tf4D/e0bXDrV55JieuF1P0fxGYyZVaaULaIfN0=,tag:Bf8mHZC0lpt4petFzgDVMg==,type:str]
wlan1-pw: ENC[AES256_GCM,data:j6bzXwqUMrZcHV+4ttQE+oZjlC0H0ZWCwGbyRHKZ/DCxsLdtcdeSpQ==,iv:KX+A9xG/FEZW6vHsUvPolwGFvbD+Lhz+G54sbuCQGcc=,tag:r7Pss5DyOa2D4FIks7oz2w==,type:str]
wlan2-pw: ENC[AES256_GCM,data:jAcBIgg7HjA=,iv:yPYC1rVeGQPEDuYthba93zz3D1+cypmayNqOiTEx7eI=,tag:vPji0mZwR7rfexDwxww8WQ==,type:str] wlan2-pw: ENC[AES256_GCM,data:jAcBIgg7HjA=,iv:yPYC1rVeGQPEDuYthba93zz3D1+cypmayNqOiTEx7eI=,tag:vPji0mZwR7rfexDwxww8WQ==,type:str]
laptop-hotspot-pw: ENC[AES256_GCM,data:cxWByDxQups=,iv:VyM9lZDbxu95ycpZNjjWEgyBtPbEVlESZPEiIg3G/7U=,tag:nQNRdeNmgplUr2SKzXaECA==,type:str] laptop-hotspot-pw: ENC[AES256_GCM,data:cxWByDxQups=,iv:VyM9lZDbxu95ycpZNjjWEgyBtPbEVlESZPEiIg3G/7U=,tag:nQNRdeNmgplUr2SKzXaECA==,type:str]
mobile-hotspot-pw: ENC[AES256_GCM,data:gwIK/rhU/lA=,iv:y9G5haF3w85pdCG8r/jrGGQ3+p6fTS1ugdsF3gVzyog=,tag:3x9LTZzsRsOmxlqnGFyw0g==,type:str] mobile-hotspot-pw: ENC[AES256_GCM,data:gwIK/rhU/lA=,iv:y9G5haF3w85pdCG8r/jrGGQ3+p6fTS1ugdsF3gVzyog=,tag:3x9LTZzsRsOmxlqnGFyw0g==,type:str]
@ -90,8 +89,8 @@ sops:
SjV6L3crUkdLWTlsNFgyRHBla2FFam8KILYsNbLdCirfoC/Vex8yEYpS2G4O0EQP SjV6L3crUkdLWTlsNFgyRHBla2FFam8KILYsNbLdCirfoC/Vex8yEYpS2G4O0EQP
wa1xzPk3Ue0/g67dv5UZFhUn0ZB2XGFC3kEPWpptTj0VL+9Z/r0zKA== wa1xzPk3Ue0/g67dv5UZFhUn0ZB2XGFC3kEPWpptTj0VL+9Z/r0zKA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-08-13T07:33:50Z" lastmodified: "2025-08-05T09:33:50Z"
mac: ENC[AES256_GCM,data:7RjYDh/n+j9lU6Sz3NRDi5tWX/7QL+HK43hOImCQkiHbBaO4n/Gms6hAAzkWfHpfbW9cm02mcPsmQLE85xlzD0DaJz2x4CVQ1wT26D5Sth6RP/rWGiVeoN4shncxuR0Ro0gTFFkTLYftJT2v/4LocPxIeEuOyQrX/J45UXUnhh4=,iv:309gb4TVc/uf6DOfPmSuqWTDt2Newi5rrFmBM2O0e+0=,tag:aVU9bVNTiSdeo4DkvUeJpA==,type:str] mac: ENC[AES256_GCM,data:rMtrDQtYsDyNqqVYKY9vg7fDGJjO2zQ+boN3j0dmYKyr5zzbbJAeCxAs3H/rNkgc3ril7sCfyAvP8n9KtYO6xmQuvu3Qgj2oqBiyvolfmYCArT0l7n+ImnNUGnFOfeugYPEIxvhDcEDK6dKiBMlEuyhtJ0hbVfvE4POQZi/jvMM=,iv:imWVUiFAbgzhPN/RNecx2LzCC5MJFg5nAIvGDCN2k0I=,tag:z0P180ZKj5p/g/E38CUjAQ==,type:str]
pgp: pgp:
- created_at: "2025-07-10T23:51:26Z" - created_at: "2025-07-10T23:51:26Z"
enc: |- enc: |-

View file

@ -1,8 +1,7 @@
#ENC[AES256_GCM,data:HCHFN2Q=,iv:Z3tD7Hn5eudPR9DuX6etamkpNnYB/NRYGppWdyuUDuM=,tag:tbuWEFDmh4HAyksOZOihLw==,type:comment] #ENC[AES256_GCM,data:HCHFN2Q=,iv:Z3tD7Hn5eudPR9DuX6etamkpNnYB/NRYGppWdyuUDuM=,tag:tbuWEFDmh4HAyksOZOihLw==,type:comment]
acme-dns-token: ENC[AES256_GCM,data:lW/XJCHwApvIofSZHL5h7AUPISjARfmDnpSnprDBHQYzj0u5ZlZS5A==,iv:/y3gjgC9AEU3r+l8Uq6P7DAU2C8i+qTQ9DP4t0g8ZhE=,tag:v24WRudw8NB84b3XBFupHQ==,type:str] acme-dns-token: ENC[AES256_GCM,data:lW/XJCHwApvIofSZHL5h7AUPISjARfmDnpSnprDBHQYzj0u5ZlZS5A==,iv:/y3gjgC9AEU3r+l8Uq6P7DAU2C8i+qTQ9DP4t0g8ZhE=,tag:v24WRudw8NB84b3XBFupHQ==,type:str]
#ENC[AES256_GCM,data:XdLlonkGBN0b,iv:wimLW/7+a4MJCVg4zazY0ogakxXjdyPNZmZt0CzpXao=,tag:rg7FEi1qaYMkCXX+dwjFLA==,type:comment] #ENC[AES256_GCM,data:XdLlonkGBN0b,iv:wimLW/7+a4MJCVg4zazY0ogakxXjdyPNZmZt0CzpXao=,tag:rg7FEi1qaYMkCXX+dwjFLA==,type:comment]
wireguard-private-key: ENC[AES256_GCM,data:aBQSwDyASfVPhU+5/yT9P99DCEfgt4SvhVq/aLe+AUcXwSqMiI2DkM5THO4=,iv:iAW/OUihMXHoQpX8pX+f/mz2nclj+n/ygwYxx7PVxnQ=,tag:zhlxjoIkfa237RoFNblszw==,type:str] wireguard-private-key: ENC[AES256_GCM,data:GCi+otqW06yoBKnG0WCIN4Wu9VKDsOUv8WRm240cHBnSAoW/ycd2WgDWsYY=,iv:TYj38C00fMIhg8LEGz6HPWxg11xUdwGgnxOmy+1SG9k=,tag:CQr9phCmU5it2EYjzqhAlA==,type:str]
wireguard-home-preshared-key: ENC[AES256_GCM,data:yr4vO9Bn+3PJheJHbeNRHu0ozCkgxCGuKBJnb/3zzHVQAsI7GonXXQxFjBM=,iv:1r9QgfdLkXCtrRS+/2+f251FjHiAm9nf/Zfzu+CYuws=,tag:kWiXCTfj4Rrzhx+SpSp/dg==,type:str]
#ENC[AES256_GCM,data:u/O2rHXqOoTNpOSm,iv:hqhZC9R76P3sPkpQMximrvcTC15IM99QaRZErC9AIc4=,tag:wc2w7iwtfazlwWpnQJV63w==,type:comment] #ENC[AES256_GCM,data:u/O2rHXqOoTNpOSm,iv:hqhZC9R76P3sPkpQMximrvcTC15IM99QaRZErC9AIc4=,tag:wc2w7iwtfazlwWpnQJV63w==,type:comment]
oauth2-cookie-secret: ENC[AES256_GCM,data:cbNVAkBAWJCN4fLmkYUFhy8v9iE5fB30hFI3nTpZuVIFCnmXPBtlftI58Zg=,iv:q9xjUDOH9M4pW+9YB9dEYSqEu9gpsezbxcGbpORNljU=,tag:KoGNcssD608huewmHeJOxw==,type:str] oauth2-cookie-secret: ENC[AES256_GCM,data:cbNVAkBAWJCN4fLmkYUFhy8v9iE5fB30hFI3nTpZuVIFCnmXPBtlftI58Zg=,iv:q9xjUDOH9M4pW+9YB9dEYSqEu9gpsezbxcGbpORNljU=,tag:KoGNcssD608huewmHeJOxw==,type:str]
kanidm-oauth2-proxy-client: ENC[AES256_GCM,data:wUTfb0r9d7nRb1wmQEOjXwDTM8V56DmOGw==,iv:OMXiObgt4AbKmovT62+P99r0UzGELj37FX+lqW38F0g=,tag:lksIWm0cSLydTZvlxliXgA==,type:str] kanidm-oauth2-proxy-client: ENC[AES256_GCM,data:wUTfb0r9d7nRb1wmQEOjXwDTM8V56DmOGw==,iv:OMXiObgt4AbKmovT62+P99r0UzGELj37FX+lqW38F0g=,tag:lksIWm0cSLydTZvlxliXgA==,type:str]
@ -25,8 +24,8 @@ sops:
bURRem1aY203VW0ya0tZWUY3WTJLQ3MKonflaevgNP91G1cVgzoE6/K800kyG6BK bURRem1aY203VW0ya0tZWUY3WTJLQ3MKonflaevgNP91G1cVgzoE6/K800kyG6BK
Goe81HCYFfm86pzv5wV3/38j7fTZNeZnKwPFkMgEUueF1kA8J9V5CA== Goe81HCYFfm86pzv5wV3/38j7fTZNeZnKwPFkMgEUueF1kA8J9V5CA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-08-12T09:24:55Z" lastmodified: "2025-07-09T13:40:12Z"
mac: ENC[AES256_GCM,data:qeBiuiK/On/NeMpjiCKeIvbQCRH0JcPFldJaTD+nHLtwNU+qpHX4y+dL/jTQrdSWxHV9+E3KmxnakEP91qZnycrSXhwSIIavNtXUP1veuv/JmHOxW6UxpJBJVDeMNe9k2AFQ3gwYEnXrisjvLDkYyqa+E+GsE7b82i3iyerpskY=,iv:jbw0OIJM3vr9SXkdAObc6JS6v4r11s6MPkg33x1sCvU=,tag:/BAMuCJgh78UgOXkTVkN7Q==,type:str] mac: ENC[AES256_GCM,data:B1pkubTJuLU1pCprTHtANC58sfgbvjgnDtztF4g7M4cIgj4pasrPGjOXLw5hrRwpYKffuciOogDOJx1/DekpFG0rydc5+R46saCtzGYVBEXWpH+SuaiHGBokTq0zIwnNEDpMpQ2xKTDiv3yKJBNUXOPugEYgDuvmg1wRyZ9iWBY=,iv:ZUij0KY74PEYo2IcCQoFiHFB/uOF6CxyHIpL4yJyFlg=,tag:srWW114VV3oCMjSLG9lVwA==,type:str]
pgp: pgp:
- created_at: "2025-06-13T21:18:31Z" - created_at: "2025-06-13T21:18:31Z"
enc: |- enc: |-

View file

@ -1,5 +1,5 @@
{ {
"data": "ENC[AES256_GCM,data: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,iv:BSs/FJQlMeQMcZjWmwAB8gSLAXp4iCvLcm1m5lm0L+o=,tag:0FuDBrYNlpA+55lccvkdsA==,type:str]", "data": "ENC[AES256_GCM,data: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,iv:sTMh997U5saMDn6pvEmSjEv9czye1NhMPJOwrcb/JHs=,tag:56yLcBmZ0bu89cBTYHEFuw==,type:str]",
"sops": { "sops": {
"age": [ "age": [
{ {
@ -27,8 +27,8 @@
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtU240VjVRZmJ5TGsrclJF\nRXRLbTRCZURtR0Z3d2E2eDNNeGRDODlXVEY4CllTeVFYbDJQWlRSS1RFLzAxSnlM\nZi9NU1c3cWo3YWRLcUJ2U2ZFWFBBVEEKLS0tIGtmZU9qSWdBT3RDeStaaFFDSWtk\ndkUzZXJwZUl4LzVxYXdidmxXRnNnclUKyAMZqCKSY/RQvTR4bbjLaPnGKwdBcHXc\nvtiVSrLdIdzMa6id/J07TJH5UesUmcp0wjU41MDa4aMBLy+cXhuBHA==\n-----END AGE ENCRYPTED FILE-----\n" "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtU240VjVRZmJ5TGsrclJF\nRXRLbTRCZURtR0Z3d2E2eDNNeGRDODlXVEY4CllTeVFYbDJQWlRSS1RFLzAxSnlM\nZi9NU1c3cWo3YWRLcUJ2U2ZFWFBBVEEKLS0tIGtmZU9qSWdBT3RDeStaaFFDSWtk\ndkUzZXJwZUl4LzVxYXdidmxXRnNnclUKyAMZqCKSY/RQvTR4bbjLaPnGKwdBcHXc\nvtiVSrLdIdzMa6id/J07TJH5UesUmcp0wjU41MDa4aMBLy+cXhuBHA==\n-----END AGE ENCRYPTED FILE-----\n"
} }
], ],
"lastmodified": "2025-08-12T08:32:44Z", "lastmodified": "2025-07-22T05:18:26Z",
"mac": "ENC[AES256_GCM,data:dSoqNCOKIhI8EdM6p+fCqNvmJorGQBmHDqXq04oHAg4q2pxoD2+C/HoNdp0+Bqo9jAqpb2oZ9ipjMIGzLbmJByaocYICsA5VnG4HjLoFbH9J1eNMjdId2411zmzTWH/afibhMIugZSsd4iEG+l2iq9r4yVgu27DOoT3haa0p7wg=,iv:Kte/K25/oVGOnT0a/0PZzrDwekgeItalyDJQvirez7g=,tag:z6PH9NaQ5PaxW5tD1f4wGw==,type:str]", "mac": "ENC[AES256_GCM,data:lxQFZ8hWrBepjVzeaBrHS4SpkwQzXyEvJu6fclWAvEby1w+eG7kMR3quHzD/F6zPoT3jLdFM3fSIhjVOSslSnut0pTtselvco23YtbYzEz1JK/mTGW6IytGQvZVH1HGM3lwHJ9G7jLPRUq5CBQr4zULtqZBO4rK+f9YnFChhPyY=,iv:DsgxvDPHWv8qHqYB3RXiVmZcZfdxI6iUFABHj2iE0Bg=,tag:KK0RYpLgyzVSQPYIr4DLTQ==,type:str]",
"pgp": [ "pgp": [
{ {
"created_at": "2025-06-13T20:13:06Z", "created_at": "2025-06-13T20:13:06Z",