mirror of
https://github.com/Swarsel/.dotfiles.git
synced 2025-12-06 09:07:21 +01:00
Compare commits
3 commits
6ea3851e72
...
7abc476d51
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7abc476d51 | ||
|
|
9eb02e84ad | ||
|
|
1a23cd7aaf |
61 changed files with 1814 additions and 965 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -1579,6 +1579,7 @@ 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)
|
||||||
|
|
|
||||||
|
|
@ -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 --top-level --whole-name --at-root "/bin/$1")
|
ATTRS=$(@nix-locate@ --minimal --no-group --type x --type s --whole-name --at-root "/bin/$1")
|
||||||
|
|
||||||
case $(echo -n "$ATTRS" | grep -c "^") in
|
case $(echo -n "$ATTRS" | grep -c "^") in
|
||||||
0)
|
0)
|
||||||
|
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
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
|
|
||||||
36
files/scripts/swarselcheck-niri.sh
Normal file
36
files/scripts/swarselcheck-niri.sh
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
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
|
||||||
|
|
@ -1,21 +1,39 @@
|
||||||
# scheme: "better-contrast"
|
# scheme: "better-contrast"
|
||||||
author: "Swarsel"
|
author: "Swarsel"
|
||||||
base00: "1D252C" # #1d252c passt
|
author: "Swarsel"
|
||||||
base01: "171D23" # #171d23
|
base00: "1d252c" #1d252c"
|
||||||
base02: "5EC4FF" # #5EC4FF
|
base01: "171d23" #171d23"
|
||||||
base03: "566C7D" # #566C7D passt
|
base02: "206a86" #206a86"
|
||||||
base04: "5EC4FF" # #5EC4FF passt
|
base03: "003a66" #003a66"
|
||||||
base05: "A0B3C5" # #A0B3C5 passt
|
base04: "5ec4ff" #5ec4ff"
|
||||||
base06: "C06ECE" # #C06ECE passt
|
base05: "a0b3c5" #a0b3c5"
|
||||||
base07: "A0B3C5" # #A0B3C5 passt
|
base06: "7ed4ff" #7ed4ff"
|
||||||
base08: "D95468" # #D95468 passt
|
base07: "8ef4ff" #8ef4ff"
|
||||||
base09: "FFA880" # #ffA880 passt
|
base08: "d95468" #d95468"
|
||||||
base0A: "5EC4FF" # #5EC4FF
|
base09: "ffa880" #ffa880"
|
||||||
base0B: "8BD49C" # #8BD49C
|
base0A: "6ed4ff" #6ed4ff"
|
||||||
base0C: "008B94" # #008B94 passt
|
base0B: "8bd49c" #8bd49c"
|
||||||
base0D: "5EC4FF" # #5EC4FF passt
|
base0C: "008b94" #008b94"
|
||||||
base0E: "C06ECE" # #C06ECE passt
|
base0D: "5ec4ff" #5ec4ff"
|
||||||
base0F: "5EC4FF" # #5EC4FF passt
|
base0E: "c06ece" #c06ece"
|
||||||
|
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
136
flake.lock
generated
|
|
@ -510,7 +510,7 @@
|
||||||
"swarsel",
|
"swarsel",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nixpkgs-stable": "nixpkgs-stable_3"
|
"nixpkgs-stable": "nixpkgs-stable_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751908357,
|
"lastModified": 1751908357,
|
||||||
|
|
@ -533,7 +533,7 @@
|
||||||
"swarsel",
|
"swarsel",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nixpkgs-stable": "nixpkgs-stable_5"
|
"nixpkgs-stable": "nixpkgs-stable_6"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751908357,
|
"lastModified": 1751908357,
|
||||||
|
|
@ -1887,6 +1887,64 @@
|
||||||
"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": [
|
||||||
|
|
@ -2463,11 +2521,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-dev": {
|
"nixpkgs-dev": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754384443,
|
"lastModified": 1755895490,
|
||||||
"narHash": "sha256-sjSFVbQhMJ6c3x/DUWmactuR2sw1FtLzBMXMyicOQSU=",
|
"narHash": "sha256-BIqIaeWsmrSxIs/oUg5hjo0/ZU0d5pf5RkPvcQGRilc=",
|
||||||
"owner": "Swarsel",
|
"owner": "Swarsel",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d078a753aa08f98a2aa11922f87ae2b11bf67ca9",
|
"rev": "526b9d738fc2af2eb010b996b9b5918b46e7cf92",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -2881,6 +2939,22 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"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=",
|
||||||
|
|
@ -2896,7 +2970,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable_4": {
|
"nixpkgs-stable_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751741127,
|
"lastModified": 1751741127,
|
||||||
"narHash": "sha256-t75Shs76NgxjZSgvvZZ9qOmz5zuBE8buUaYD28BMTxg=",
|
"narHash": "sha256-t75Shs76NgxjZSgvvZZ9qOmz5zuBE8buUaYD28BMTxg=",
|
||||||
|
|
@ -2912,7 +2986,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable_5": {
|
"nixpkgs-stable_6": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751274312,
|
"lastModified": 1751274312,
|
||||||
"narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=",
|
"narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=",
|
||||||
|
|
@ -2928,7 +3002,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable_6": {
|
"nixpkgs-stable_7": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751741127,
|
"lastModified": 1751741127,
|
||||||
"narHash": "sha256-t75Shs76NgxjZSgvvZZ9qOmz5zuBE8buUaYD28BMTxg=",
|
"narHash": "sha256-t75Shs76NgxjZSgvvZZ9qOmz5zuBE8buUaYD28BMTxg=",
|
||||||
|
|
@ -3985,6 +4059,7 @@
|
||||||
"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",
|
||||||
|
|
@ -3995,7 +4070,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_2",
|
"nixpkgs-stable": "nixpkgs-stable_3",
|
||||||
"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",
|
||||||
|
|
@ -4382,7 +4457,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_4",
|
"nixpkgs-stable": "nixpkgs-stable_5",
|
||||||
"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",
|
||||||
|
|
@ -4416,11 +4491,11 @@
|
||||||
"systems": "systems_17"
|
"systems": "systems_17"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754846369,
|
"lastModified": 1754895103,
|
||||||
"narHash": "sha256-yT9Z1VS/i9ZkqdeMYjACd0xPmF/X0ZILt7YTlHfBD8k=",
|
"narHash": "sha256-v8t5EjfbDurvTCBVHtFSRL+m5OfCPpTMmgzVC7h93sU=",
|
||||||
"owner": "Swarsel",
|
"owner": "Swarsel",
|
||||||
"repo": "swarsel-modules",
|
"repo": "swarsel-modules",
|
||||||
"rev": "60a2c35486f458e9ae95883801d8509840096d21",
|
"rev": "4e779044540278b93171d846c71d2bd7823fd806",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -4450,7 +4525,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_6",
|
"nixpkgs-stable": "nixpkgs-stable_7",
|
||||||
"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",
|
||||||
|
|
@ -5135,6 +5210,39 @@
|
||||||
"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",
|
||||||
|
|
|
||||||
|
|
@ -87,6 +87,11 @@
|
||||||
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:
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ 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; };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -49,16 +50,23 @@ 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.3.0/24"
|
"192.168.178.0/24"
|
||||||
"192.168.1.0/24"
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
@ -127,6 +135,7 @@ 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;
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,8 @@ 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";
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,8 @@
|
||||||
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";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"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]",
|
"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]",
|
||||||
"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-07-17T20:14:29Z",
|
"lastmodified": "2025-08-12T18:21:56Z",
|
||||||
"mac": "ENC[AES256_GCM,data:4YP1fp9Mcbx0pvS5l9Xzc5cbhFnBo5GkqyRvcEspNYQ3IW5LIWtPwItwLZH/ymfEkpwIVYOugnB12HJJo9jpudgfUMXtp43ImDUNVHs59qkNhJFmTSoEZMBHQjPtE/jE17OIAZzeA41EAItesrmExV1W8ePy7rTgHQl5BDooWME=,iv:vyZ0BGjMUDeoVMkDw6wLZK3KKIECK5caz/nQB3nXlGs=,tag:GAqKNcSf3Ny/WsB3tYM/og==,type:str]",
|
"mac": "ENC[AES256_GCM,data:6gxEKYRIefxE0DKWuc40wkOp/oCzKxg4jMz5WVqWHXUjOorz6A9TTLYo8UhYCVB8pwxC46iLCND3rDWudurz+2vl/tTDpuh04utB2f6GFy+g5f6Rs9x/KWWFR8pB/BwaG9tEW4UfF7bud6FYM9dY5fJADU6CPxpanOLdhzt7j8A=,iv:oxMFeIwbLFzvCZsmf/z5L3Wi4Quscx+zzD8dafEc66Y=,tag:hKfqVt2nZieQyqQAKexMiA==,type:str]",
|
||||||
"pgp": [
|
"pgp": [
|
||||||
{
|
{
|
||||||
"created_at": "2025-06-11T11:42:23Z",
|
"created_at": "2025-06-11T11:42:23Z",
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
timer
|
timer
|
||||||
e
|
e
|
||||||
swarselcheck
|
swarselcheck
|
||||||
|
swarselcheck-niri
|
||||||
waybarupdate
|
waybarupdate
|
||||||
opacitytoggle
|
opacitytoggle
|
||||||
fs-diff
|
fs-diff
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ self, lib, config, pkgs, globals, ... }:
|
{ self, lib, config, pkgs, globals, inputs, ... }:
|
||||||
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,17 +56,19 @@ in
|
||||||
|
|
||||||
packageRequires = [ epkgs.jsonrpc epkgs.eglot ];
|
packageRequires = [ epkgs.jsonrpc epkgs.eglot ];
|
||||||
})
|
})
|
||||||
(epkgs.trivialBuild rec {
|
(inputs.nixpkgs-dev.legacyPackages.${pkgs.system}.emacsPackagesFor pkgs.emacs-git-pgtk).calfw
|
||||||
pname = "calfw";
|
# epkgs.calfw
|
||||||
version = "1.0.0-20231002";
|
# (epkgs.trivialBuild rec {
|
||||||
src = pkgs.fetchFromGitHub {
|
# pname = "calfw";
|
||||||
owner = "haji-ali";
|
# version = "1.0.0-20231002";
|
||||||
repo = "emacs-calfw";
|
# src = pkgs.fetchFromGitHub {
|
||||||
rev = "bc99afee611690f85f0cd0bd33300f3385ddd3d3";
|
# owner = "haji-ali";
|
||||||
hash = "sha256-0xMII1KJhTBgQ57tXJks0ZFYMXIanrOl9XyqVmu7a7Y=";
|
# repo = "emacs-calfw";
|
||||||
};
|
# rev = "bc99afee611690f85f0cd0bd33300f3385ddd3d3";
|
||||||
packageRequires = [ epkgs.howm ];
|
# hash = "sha256-0xMII1KJhTBgQ57tXJks0ZFYMXIanrOl9XyqVmu7a7Y=";
|
||||||
})
|
# };
|
||||||
|
# packageRequires = [ epkgs.howm ];
|
||||||
|
# })
|
||||||
|
|
||||||
(epkgs.trivialBuild rec {
|
(epkgs.trivialBuild rec {
|
||||||
pname = "fast-scroll";
|
pname = "fast-scroll";
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,14 @@ 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.pinentry.gtk2;
|
pinentry.package = pkgs.wayprompt;
|
||||||
|
pinentry.program = "pinentry-wayprompt";
|
||||||
|
# pinentry.package = pkgs.pinentry.gtk2;
|
||||||
defaultCacheTtl = 600;
|
defaultCacheTtl = 600;
|
||||||
maxCacheTtl = 7200;
|
maxCacheTtl = 7200;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,16 @@
|
||||||
{ lib, config, ... }:
|
{ self, lib, pkgs, 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 = {
|
homedesktop = rec {
|
||||||
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 = "1:一";
|
workspace = "11:M";
|
||||||
output = "DP-11";
|
output = name;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -36,6 +36,7 @@
|
||||||
{
|
{
|
||||||
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";
|
||||||
|
|
@ -46,8 +47,13 @@
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
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;
|
||||||
|
|
@ -56,7 +62,7 @@
|
||||||
position = "2560,0";
|
position = "2560,0";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
criteria = "Philips Consumer Electronics Company PHL BDM3270 AU11806002320";
|
criteria = monitor;
|
||||||
scale = 1.0;
|
scale = 1.0;
|
||||||
mode = "2560x1440";
|
mode = "2560x1440";
|
||||||
position = "0,0";
|
position = "0,0";
|
||||||
|
|
@ -65,8 +71,13 @@
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
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;
|
||||||
|
|
@ -74,7 +85,7 @@
|
||||||
position = "2560,0";
|
position = "2560,0";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
criteria = "Philips Consumer Electronics Company PHL BDM3270 AU11806002320";
|
criteria = monitor;
|
||||||
scale = 1.0;
|
scale = 1.0;
|
||||||
mode = "2560x1440";
|
mode = "2560x1440";
|
||||||
position = "0,0";
|
position = "0,0";
|
||||||
|
|
|
||||||
|
|
@ -119,6 +119,7 @@ in
|
||||||
account = {
|
account = {
|
||||||
Timeout = 120;
|
Timeout = 120;
|
||||||
PipelineDepth = 1;
|
PipelineDepth = 1;
|
||||||
|
AuthMechs = "LOGIN";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
204
modules/home/common/niri.nix
Normal file
204
modules/home/common/niri.nix
Normal file
|
|
@ -0,0 +1,204 @@
|
||||||
|
{ 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 = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -70,6 +70,7 @@
|
||||||
restic
|
restic
|
||||||
|
|
||||||
# "big" programs
|
# "big" programs
|
||||||
|
obs-studio
|
||||||
gimp
|
gimp
|
||||||
inkscape
|
inkscape
|
||||||
zoom-us
|
zoom-us
|
||||||
|
|
@ -80,7 +81,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
|
||||||
spotify-player
|
stable.spotify-player
|
||||||
element-desktop
|
element-desktop
|
||||||
nicotine-plus
|
nicotine-plus
|
||||||
stable.transmission_3
|
stable.transmission_3
|
||||||
|
|
@ -135,8 +136,8 @@
|
||||||
|
|
||||||
# wayland stuff
|
# wayland stuff
|
||||||
wtype
|
wtype
|
||||||
|
wl-mirror
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
stable.wl-mirror
|
|
||||||
wf-recorder
|
wf-recorder
|
||||||
kanshi
|
kanshi
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
user = "root";
|
user = "root";
|
||||||
};
|
};
|
||||||
"winters" = {
|
"winters" = {
|
||||||
hostname = "192.168.1.2";
|
hostname = "192.168.178.24";
|
||||||
user = "root";
|
user = "root";
|
||||||
};
|
};
|
||||||
"minecraft" = {
|
"minecraft" = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ self, config, lib, vars, ... }:
|
{ config, lib, vars, ... }:
|
||||||
let
|
let
|
||||||
eachOutput = _: monitor: {
|
eachOutput = _: monitor: {
|
||||||
inherit (monitor) name;
|
inherit (monitor) name;
|
||||||
|
|
@ -201,22 +201,14 @@ 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 = {
|
||||||
|
|
@ -231,14 +223,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
|
||||||
|
|
|
||||||
|
|
@ -70,20 +70,29 @@ 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" "custom/outer-right-arrow-dark" "sway/window" ];
|
modules-left = [ "sway/workspaces" "niri/workspaces" "custom/outer-right-arrow-dark" "niri/window" "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) {
|
||||||
|
|
|
||||||
|
|
@ -59,9 +59,8 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
msmtp = {
|
msmtp = {
|
||||||
enable = false;
|
enable = true;
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
account = "work";
|
|
||||||
auth = "xoauth2";
|
auth = "xoauth2";
|
||||||
host = "outlook.office365.com";
|
host = "outlook.office365.com";
|
||||||
protocol = "smtp";
|
protocol = "smtp";
|
||||||
|
|
@ -73,10 +72,11 @@ in
|
||||||
passwordeval = "pizauth show work";
|
passwordeval = "pizauth show work";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
mu.enable = false;
|
mu.enable = true;
|
||||||
mbsync = {
|
mbsync = {
|
||||||
enable = false;
|
enable = true;
|
||||||
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,6 +278,10 @@ 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;
|
||||||
|
|
@ -302,8 +306,16 @@ 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;
|
||||||
|
|
@ -323,6 +335,10 @@ 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;
|
||||||
|
|
@ -345,8 +361,15 @@ 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;
|
||||||
|
|
@ -365,8 +388,20 @@ 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";
|
||||||
|
|
@ -444,70 +479,60 @@ in
|
||||||
{ command = "1password"; }
|
{ command = "1password"; }
|
||||||
];
|
];
|
||||||
monitors = {
|
monitors = {
|
||||||
main = {
|
work_back_middle = rec {
|
||||||
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 = {
|
work_front_left = rec {
|
||||||
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 = {
|
work_back_right = rec {
|
||||||
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 = {
|
work_middle_middle_main = rec {
|
||||||
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 = {
|
work_middle_middle_side = rec {
|
||||||
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 = {
|
work_seminary = rec {
|
||||||
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 = {
|
||||||
|
|
@ -531,9 +556,6 @@ in
|
||||||
xkb_variant = "altgr-intl";
|
xkb_variant = "altgr-intl";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
keybindings = {
|
|
||||||
"Mod4+Ctrl+Shift+p" = "exec screenshare";
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
23
modules/nixos/client/keyd.nix
Normal file
23
modules/nixos/client/keyd.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
{ 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))";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -99,25 +99,26 @@ 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";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
25
modules/nixos/client/niri.nix
Normal file
25
modules/nixos/client/niri.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
{ 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
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -23,7 +23,6 @@
|
||||||
dbus
|
dbus
|
||||||
swaylock-effects
|
swaylock-effects
|
||||||
syncthingtray-minimal
|
syncthingtray-minimal
|
||||||
wl-mirror
|
|
||||||
swayosd
|
swayosd
|
||||||
|
|
||||||
# secure boot
|
# secure boot
|
||||||
|
|
@ -48,8 +47,6 @@
|
||||||
# better make for general tasks
|
# better make for general tasks
|
||||||
just
|
just
|
||||||
|
|
||||||
screenshare
|
|
||||||
fullscreen
|
|
||||||
|
|
||||||
# keyboards
|
# keyboards
|
||||||
qmk
|
qmk
|
||||||
|
|
@ -61,6 +58,7 @@
|
||||||
|
|
||||||
# kde-connect
|
# kde-connect
|
||||||
xdg-desktop-portal
|
xdg-desktop-portal
|
||||||
|
xdg-desktop-portal-gtk
|
||||||
xdg-desktop-portal-wlr
|
xdg-desktop-portal-wlr
|
||||||
|
|
||||||
# bluetooth
|
# bluetooth
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,11 @@ 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";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,18 @@ 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;
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ in
|
||||||
emacs-radicale-pw = { owner = mainUser; };
|
emacs-radicale-pw = { owner = mainUser; };
|
||||||
});
|
});
|
||||||
templates = {
|
templates = {
|
||||||
authinfo = {
|
authinfo = lib.mkIf modules.emacs {
|
||||||
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}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -1,28 +1,9 @@
|
||||||
{ self, lib, pkgs, config, configName, ... }:
|
{ self, lib, pkgs, config, configName, ... }:
|
||||||
let
|
let
|
||||||
inherit (config.swarselsystems) mainUser homeDir xdgDir;
|
inherit (config.swarselsystems) mainUser homeDir;
|
||||||
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";
|
||||||
|
|
@ -124,6 +105,7 @@ 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 = {
|
||||||
|
|
@ -171,10 +153,6 @@ 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
|
||||||
|
|
@ -228,19 +206,12 @@ 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 = {
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ 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
|
||||||
|
|
@ -41,7 +42,7 @@ in
|
||||||
upstreams = {
|
upstreams = {
|
||||||
${serviceName} = {
|
${serviceName} = {
|
||||||
servers = {
|
servers = {
|
||||||
"192.168.1.2:${builtins.toString servicePort}" = { };
|
"${serviceAddress}:${builtins.toString servicePort}" = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
{ lib, config, ... }:
|
{ lib, config, globals, ... }:
|
||||||
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";
|
||||||
|
|
@ -23,7 +24,7 @@ in
|
||||||
upstreams = {
|
upstreams = {
|
||||||
${serviceName} = {
|
${serviceName} = {
|
||||||
servers = {
|
servers = {
|
||||||
"192.168.1.2:${builtins.toString servicePort}" = { };
|
"${serviceAddress}:${builtins.toString servicePort}" = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
{ self, lib, config, ... }:
|
{ self, lib, config, globals, ... }:
|
||||||
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";
|
||||||
|
|
||||||
|
|
@ -81,7 +82,7 @@ in
|
||||||
upstreams = {
|
upstreams = {
|
||||||
${serviceName} = {
|
${serviceName} = {
|
||||||
servers = {
|
servers = {
|
||||||
"192.168.1.2:${builtins.toString servicePort}" = { };
|
"${serviceAddress}:${builtins.toString servicePort}" = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ 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
|
||||||
|
|
@ -132,7 +133,7 @@ in
|
||||||
upstreams = {
|
upstreams = {
|
||||||
${serviceName} = {
|
${serviceName} = {
|
||||||
servers = {
|
servers = {
|
||||||
"192.168.1.2:${builtins.toString servicePort}" = { };
|
"${serviceAddress}:${builtins.toString servicePort}" = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
{ self, lib, config, ... }:
|
{ self, lib, config, globals, ... }:
|
||||||
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
|
||||||
|
|
@ -77,7 +78,7 @@ in
|
||||||
upstreams = {
|
upstreams = {
|
||||||
${serviceName} = {
|
${serviceName} = {
|
||||||
servers = {
|
servers = {
|
||||||
"192.168.1.2:${builtins.toString servicePort}" = { };
|
"${serviceAddress}:${builtins.toString servicePort}" = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ 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";
|
||||||
|
|
@ -33,7 +34,7 @@ in
|
||||||
upstreams = {
|
upstreams = {
|
||||||
${serviceName} = {
|
${serviceName} = {
|
||||||
servers = {
|
servers = {
|
||||||
"192.168.1.2:${builtins.toString servicePort}" = { };
|
"${serviceAddress}:${builtins.toString servicePort}" = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ pkgs, lib, config, globals, ... }:
|
||||||
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";
|
||||||
|
|
@ -37,7 +38,7 @@ in
|
||||||
upstreams = {
|
upstreams = {
|
||||||
${serviceName} = {
|
${serviceName} = {
|
||||||
servers = {
|
servers = {
|
||||||
"192.168.1.2:${builtins.toString servicePort}" = { };
|
"${serviceAddress}:${builtins.toString servicePort}" = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ pkgs, lib, config, globals, ... }:
|
||||||
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";
|
||||||
|
|
@ -21,7 +22,7 @@ in
|
||||||
upstreams = {
|
upstreams = {
|
||||||
${serviceName} = {
|
${serviceName} = {
|
||||||
servers = {
|
servers = {
|
||||||
"192.168.1.2:${builtins.toString servicePort}" = { };
|
"${serviceAddress}:${builtins.toString servicePort}" = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ 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;
|
||||||
|
|
@ -237,7 +238,7 @@ in
|
||||||
upstreams = {
|
upstreams = {
|
||||||
${serviceName} = {
|
${serviceName} = {
|
||||||
servers = {
|
servers = {
|
||||||
"192.168.1.2:${builtins.toString servicePort}" = { };
|
"${serviceAddress}:${builtins.toString servicePort}" = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ self, lib, config, pkgs, ... }:
|
{ self, lib, config, pkgs, globals, ... }:
|
||||||
let
|
let
|
||||||
inherit (config.swarselsystems) sopsFile;
|
inherit (config.swarselsystems) sopsFile;
|
||||||
|
|
||||||
|
|
@ -6,6 +6,7 @@ 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";
|
||||||
|
|
@ -41,7 +42,7 @@ in
|
||||||
upstreams = {
|
upstreams = {
|
||||||
${serviceName} = {
|
${serviceName} = {
|
||||||
servers = {
|
servers = {
|
||||||
"192.168.1.2:${builtins.toString servicePort}" = { };
|
"${serviceAddress}:${builtins.toString servicePort}" = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ self, lib, config, ... }:
|
{ self, lib, config, globals, ... }:
|
||||||
let
|
let
|
||||||
serviceUser = "koillection";
|
serviceUser = "koillection";
|
||||||
serviceDB = "koillection";
|
serviceDB = "koillection";
|
||||||
|
|
@ -6,6 +6,7 @@ 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
|
||||||
|
|
@ -107,7 +108,7 @@ in
|
||||||
upstreams = {
|
upstreams = {
|
||||||
${serviceName} = {
|
${serviceName} = {
|
||||||
servers = {
|
servers = {
|
||||||
"192.168.1.2:${builtins.toString servicePort}" = { };
|
"${serviceAddress}:${builtins.toString servicePort}" = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, globals, ... }:
|
||||||
let
|
let
|
||||||
inherit (config.swarselsystems) sopsFile;
|
inherit (config.swarselsystems) sopsFile;
|
||||||
|
|
||||||
|
|
@ -6,6 +6,7 @@ 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;
|
||||||
|
|
@ -293,7 +294,7 @@ in
|
||||||
upstreams = {
|
upstreams = {
|
||||||
${serviceName} = {
|
${serviceName} = {
|
||||||
servers = {
|
servers = {
|
||||||
"192.168.1.2:${builtins.toString servicePort}" = { };
|
"${serviceAddress}:${builtins.toString servicePort}" = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ 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";
|
||||||
|
|
@ -209,12 +210,12 @@ in
|
||||||
upstreams = {
|
upstreams = {
|
||||||
"${grafanaUpstream}" = {
|
"${grafanaUpstream}" = {
|
||||||
servers = {
|
servers = {
|
||||||
"192.168.1.2:${builtins.toString servicePort}" = { };
|
"${serviceAddress}:${builtins.toString servicePort}" = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"${prometheusUpstream}" = {
|
"${prometheusUpstream}" = {
|
||||||
servers = {
|
servers = {
|
||||||
"192.168.1.2:${builtins.toString prometheusPort}" = { };
|
"${serviceAddress}:${builtins.toString prometheusPort}" = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
{ pkgs, config, lib, ... }:
|
{ pkgs, config, lib, globals, ... }:
|
||||||
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";
|
||||||
|
|
@ -84,7 +85,7 @@ in
|
||||||
upstreams = {
|
upstreams = {
|
||||||
${serviceName} = {
|
${serviceName} = {
|
||||||
servers = {
|
servers = {
|
||||||
"192.168.1.2:${builtins.toString servicePort}" = { };
|
"${serviceAddress}:${builtins.toString servicePort}" = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ pkgs, lib, config, globals, ... }:
|
||||||
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,6 +8,7 @@ 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";
|
||||||
|
|
@ -51,7 +52,7 @@ in
|
||||||
upstreams = {
|
upstreams = {
|
||||||
${serviceName} = {
|
${serviceName} = {
|
||||||
servers = {
|
servers = {
|
||||||
"192.168.1.2:${builtins.toString servicePort}" = { };
|
"${serviceAddress}:${builtins.toString servicePort}" = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ 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;
|
||||||
|
|
@ -101,7 +102,7 @@ in
|
||||||
upstreams = {
|
upstreams = {
|
||||||
${serviceName} = {
|
${serviceName} = {
|
||||||
servers = {
|
servers = {
|
||||||
"192.168.1.2:${builtins.toString servicePort}" = { };
|
"${serviceAddress}:${builtins.toString servicePort}" = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ self, lib, config, ... }:
|
{ self, lib, config, globals, ... }:
|
||||||
let
|
let
|
||||||
sopsFile = self + /secrets/winters/secrets2.yaml;
|
sopsFile = self + /secrets/winters/secrets2.yaml;
|
||||||
|
|
||||||
|
|
@ -7,6 +7,7 @@ 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
|
||||||
|
|
@ -85,7 +86,7 @@ in
|
||||||
upstreams = {
|
upstreams = {
|
||||||
${serviceName} = {
|
${serviceName} = {
|
||||||
servers = {
|
servers = {
|
||||||
"192.168.1.2:${builtins.toString servicePort}" = { };
|
"${serviceAddress}:${builtins.toString servicePort}" = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,14 @@
|
||||||
{ lib, config, configName, ... }:
|
{ lib, config, configName, globals, ... }:
|
||||||
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;
|
||||||
|
|
@ -22,7 +24,7 @@ in
|
||||||
};
|
};
|
||||||
serviceIP = lib.mkOption {
|
serviceIP = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
default = "192.168.1.2";
|
default = "${serviceAddress}";
|
||||||
};
|
};
|
||||||
syncDevices = lib.mkOption {
|
syncDevices = lib.mkOption {
|
||||||
type = lib.types.listOf lib.types.str;
|
type = lib.types.listOf lib.types.str;
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,7 @@
|
||||||
inherit (globalsSystem.config.globals)
|
inherit (globalsSystem.config.globals)
|
||||||
domains
|
domains
|
||||||
services
|
services
|
||||||
|
hosts
|
||||||
user
|
user
|
||||||
root
|
root
|
||||||
;
|
;
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@
|
||||||
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"
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,10 @@ 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; [
|
||||||
|
|
@ -86,6 +90,7 @@ 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)
|
||||||
|
|
|
||||||
9
pkgs/kanshare/default.nix
Normal file
9
pkgs/kanshare/default.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
{ 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 {}
|
||||||
|
'';
|
||||||
|
}
|
||||||
6
pkgs/swarselcheck-niri/default.nix
Normal file
6
pkgs/swarselcheck-niri/default.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
{ 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";
|
||||||
|
}
|
||||||
|
|
@ -37,6 +37,7 @@
|
||||||
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;
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@
|
||||||
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;
|
||||||
|
|
@ -38,6 +39,7 @@
|
||||||
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;
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,8 @@ 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]
|
||||||
wlan1-pw: ENC[AES256_GCM,data:UMKfdycQBa8=,iv:w1Cx+Tf4D/e0bXDrV55JieuF1P0fxGYyZVaaULaIfN0=,tag:Bf8mHZC0lpt4petFzgDVMg==,type:str]
|
#ENC[AES256_GCM,data:O/ceQ4r5sc3YS86n1yQYH40l,iv:Ak2QK9MCIrrT7TRGpyCTEo9e2VsyaeATWjCITqYI+7g=,tag:kcIDdMujWfs2IZIheA82ZQ==,type:comment]
|
||||||
|
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]
|
||||||
|
|
@ -89,8 +90,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-05T09:33:50Z"
|
lastmodified: "2025-08-13T07:33:50Z"
|
||||||
mac: ENC[AES256_GCM,data:rMtrDQtYsDyNqqVYKY9vg7fDGJjO2zQ+boN3j0dmYKyr5zzbbJAeCxAs3H/rNkgc3ril7sCfyAvP8n9KtYO6xmQuvu3Qgj2oqBiyvolfmYCArT0l7n+ImnNUGnFOfeugYPEIxvhDcEDK6dKiBMlEuyhtJ0hbVfvE4POQZi/jvMM=,iv:imWVUiFAbgzhPN/RNecx2LzCC5MJFg5nAIvGDCN2k0I=,tag:z0P180ZKj5p/g/E38CUjAQ==,type:str]
|
mac: ENC[AES256_GCM,data:7RjYDh/n+j9lU6Sz3NRDi5tWX/7QL+HK43hOImCQkiHbBaO4n/Gms6hAAzkWfHpfbW9cm02mcPsmQLE85xlzD0DaJz2x4CVQ1wT26D5Sth6RP/rWGiVeoN4shncxuR0Ro0gTFFkTLYftJT2v/4LocPxIeEuOyQrX/J45UXUnhh4=,iv:309gb4TVc/uf6DOfPmSuqWTDt2Newi5rrFmBM2O0e+0=,tag:aVU9bVNTiSdeo4DkvUeJpA==,type:str]
|
||||||
pgp:
|
pgp:
|
||||||
- created_at: "2025-07-10T23:51:26Z"
|
- created_at: "2025-07-10T23:51:26Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
#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:GCi+otqW06yoBKnG0WCIN4Wu9VKDsOUv8WRm240cHBnSAoW/ycd2WgDWsYY=,iv:TYj38C00fMIhg8LEGz6HPWxg11xUdwGgnxOmy+1SG9k=,tag:CQr9phCmU5it2EYjzqhAlA==,type:str]
|
wireguard-private-key: ENC[AES256_GCM,data:aBQSwDyASfVPhU+5/yT9P99DCEfgt4SvhVq/aLe+AUcXwSqMiI2DkM5THO4=,iv:iAW/OUihMXHoQpX8pX+f/mz2nclj+n/ygwYxx7PVxnQ=,tag:zhlxjoIkfa237RoFNblszw==,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]
|
||||||
|
|
@ -24,8 +25,8 @@ sops:
|
||||||
bURRem1aY203VW0ya0tZWUY3WTJLQ3MKonflaevgNP91G1cVgzoE6/K800kyG6BK
|
bURRem1aY203VW0ya0tZWUY3WTJLQ3MKonflaevgNP91G1cVgzoE6/K800kyG6BK
|
||||||
Goe81HCYFfm86pzv5wV3/38j7fTZNeZnKwPFkMgEUueF1kA8J9V5CA==
|
Goe81HCYFfm86pzv5wV3/38j7fTZNeZnKwPFkMgEUueF1kA8J9V5CA==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2025-07-09T13:40:12Z"
|
lastmodified: "2025-08-12T09:24:55Z"
|
||||||
mac: ENC[AES256_GCM,data:B1pkubTJuLU1pCprTHtANC58sfgbvjgnDtztF4g7M4cIgj4pasrPGjOXLw5hrRwpYKffuciOogDOJx1/DekpFG0rydc5+R46saCtzGYVBEXWpH+SuaiHGBokTq0zIwnNEDpMpQ2xKTDiv3yKJBNUXOPugEYgDuvmg1wRyZ9iWBY=,iv:ZUij0KY74PEYo2IcCQoFiHFB/uOF6CxyHIpL4yJyFlg=,tag:srWW114VV3oCMjSLG9lVwA==,type:str]
|
mac: ENC[AES256_GCM,data:qeBiuiK/On/NeMpjiCKeIvbQCRH0JcPFldJaTD+nHLtwNU+qpHX4y+dL/jTQrdSWxHV9+E3KmxnakEP91qZnycrSXhwSIIavNtXUP1veuv/JmHOxW6UxpJBJVDeMNe9k2AFQ3gwYEnXrisjvLDkYyqa+E+GsE7b82i3iyerpskY=,iv:jbw0OIJM3vr9SXkdAObc6JS6v4r11s6MPkg33x1sCvU=,tag:/BAMuCJgh78UgOXkTVkN7Q==,type:str]
|
||||||
pgp:
|
pgp:
|
||||||
- created_at: "2025-06-13T21:18:31Z"
|
- created_at: "2025-06-13T21:18:31Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"data": "ENC[AES256_GCM,data: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,iv:sTMh997U5saMDn6pvEmSjEv9czye1NhMPJOwrcb/JHs=,tag:56yLcBmZ0bu89cBTYHEFuw==,type:str]",
|
"data": "ENC[AES256_GCM,data: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,iv:BSs/FJQlMeQMcZjWmwAB8gSLAXp4iCvLcm1m5lm0L+o=,tag:0FuDBrYNlpA+55lccvkdsA==,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-07-22T05:18:26Z",
|
"lastmodified": "2025-08-12T08:32:44Z",
|
||||||
"mac": "ENC[AES256_GCM,data:lxQFZ8hWrBepjVzeaBrHS4SpkwQzXyEvJu6fclWAvEby1w+eG7kMR3quHzD/F6zPoT3jLdFM3fSIhjVOSslSnut0pTtselvco23YtbYzEz1JK/mTGW6IytGQvZVH1HGM3lwHJ9G7jLPRUq5CBQr4zULtqZBO4rK+f9YnFChhPyY=,iv:DsgxvDPHWv8qHqYB3RXiVmZcZfdxI6iUFABHj2iE0Bg=,tag:KK0RYpLgyzVSQPYIr4DLTQ==,type:str]",
|
"mac": "ENC[AES256_GCM,data:dSoqNCOKIhI8EdM6p+fCqNvmJorGQBmHDqXq04oHAg4q2pxoD2+C/HoNdp0+Bqo9jAqpb2oZ9ipjMIGzLbmJByaocYICsA5VnG4HjLoFbH9J1eNMjdId2411zmzTWH/afibhMIugZSsd4iEG+l2iq9r4yVgu27DOoT3haa0p7wg=,iv:Kte/K25/oVGOnT0a/0PZzrDwekgeItalyDJQvirez7g=,tag:z6PH9NaQ5PaxW5tD1f4wGw==,type:str]",
|
||||||
"pgp": [
|
"pgp": [
|
||||||
{
|
{
|
||||||
"created_at": "2025-06-13T20:13:06Z",
|
"created_at": "2025-06-13T20:13:06Z",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue