Compare commits

..

No commits in common. "5229a4c480f3f85e874d887fc6383542560653b9" and "ae2126f363eb72a7c432934f4fb5c1bd1c577467" have entirely different histories.

16 changed files with 565 additions and 1000 deletions

File diff suppressed because it is too large Load diff

233
flake.lock generated
View file

@ -933,24 +933,6 @@
"type": "github" "type": "github"
} }
}, },
"flake-parts_16": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_7"
},
"locked": {
"lastModified": 1754487366,
"narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": { "flake-parts_2": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
@ -1148,7 +1130,7 @@
}, },
"flake-utils_3": { "flake-utils_3": {
"inputs": { "inputs": {
"systems": "systems_5" "systems": "systems_4"
}, },
"locked": { "locked": {
"lastModified": 1726560853, "lastModified": 1726560853,
@ -1166,7 +1148,7 @@
}, },
"flake-utils_4": { "flake-utils_4": {
"inputs": { "inputs": {
"systems": "systems_6" "systems": "systems_5"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@ -1184,7 +1166,7 @@
}, },
"flake-utils_5": { "flake-utils_5": {
"inputs": { "inputs": {
"systems": "systems_8" "systems": "systems_7"
}, },
"locked": { "locked": {
"lastModified": 1726560853, "lastModified": 1726560853,
@ -1202,7 +1184,7 @@
}, },
"flake-utils_6": { "flake-utils_6": {
"inputs": { "inputs": {
"systems": "systems_9" "systems": "systems_8"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@ -1220,7 +1202,7 @@
}, },
"flake-utils_7": { "flake-utils_7": {
"inputs": { "inputs": {
"systems": "systems_13" "systems": "systems_12"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@ -1238,7 +1220,7 @@
}, },
"flake-utils_8": { "flake-utils_8": {
"inputs": { "inputs": {
"systems": "systems_16" "systems": "systems_15"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@ -1256,7 +1238,7 @@
}, },
"flake-utils_9": { "flake-utils_9": {
"inputs": { "inputs": {
"systems": "systems_20" "systems": "systems_18"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@ -1651,11 +1633,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1754756528, "lastModified": 1754613544,
"narHash": "sha256-W1jYKMetZSOHP5m2Z5Wokdj/ct17swPHs+MiY2WT1HQ=", "narHash": "sha256-ueR1mGX4I4DWfDRRxxMphbKDNisDeMPMusN72VV1+cc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "3ec1cd9a0703fbd55d865b7fd2b07d08374f0355", "rev": "cc2fa2331aebf9661d22bb507d362b39852ac73f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -2737,21 +2719,6 @@
"url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz"
} }
}, },
"nixpkgs-lib_7": {
"locked": {
"lastModified": 1753579242,
"narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1751274312, "lastModified": 1751274312,
@ -3231,22 +3198,6 @@
} }
}, },
"nixpkgs_27": { "nixpkgs_27": {
"locked": {
"lastModified": 1754498491,
"narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "c2ae88e026f9525daf89587f3cbee584b92b6134",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_28": {
"locked": { "locked": {
"lastModified": 1750865895, "lastModified": 1750865895,
"narHash": "sha256-p2dWAQcLVzquy9LxYCZPwyUdugw78Qv3ChvnX755qHA=", "narHash": "sha256-p2dWAQcLVzquy9LxYCZPwyUdugw78Qv3ChvnX755qHA=",
@ -4002,11 +3953,9 @@
"nur": "nur", "nur": "nur",
"pre-commit-hooks": "pre-commit-hooks_2", "pre-commit-hooks": "pre-commit-hooks_2",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"spicetify-nix": "spicetify-nix",
"stylix": "stylix", "stylix": "stylix",
"swarsel": "swarsel", "swarsel": "swarsel",
"swarsel-modules": "swarsel-modules", "systems": "systems_16",
"systems": "systems_18",
"vbc-nix": "vbc-nix_3", "vbc-nix": "vbc-nix_3",
"zjstatus": "zjstatus_3" "zjstatus": "zjstatus_3"
} }
@ -4245,27 +4194,6 @@
"type": "github" "type": "github"
} }
}, },
"spicetify-nix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"systems": "systems_3"
},
"locked": {
"lastModified": 1754196919,
"narHash": "sha256-0zATw65mNql9H8e7HWVBPpijMSbDVeK7JNivRBcUScM=",
"owner": "Gerg-l",
"repo": "spicetify-nix",
"rev": "24fcb94f7792ab755b933e1c9516996530ac1fbd",
"type": "github"
},
"original": {
"owner": "Gerg-l",
"repo": "spicetify-nix",
"type": "github"
}
},
"stylix": { "stylix": {
"inputs": { "inputs": {
"base16": "base16", "base16": "base16",
@ -4277,7 +4205,7 @@
"gnome-shell": "gnome-shell", "gnome-shell": "gnome-shell",
"nixpkgs": "nixpkgs_8", "nixpkgs": "nixpkgs_8",
"nur": "nur_2", "nur": "nur_2",
"systems": "systems_4", "systems": "systems_3",
"tinted-foot": "tinted-foot", "tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty", "tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes", "tinted-schemes": "tinted-schemes",
@ -4309,7 +4237,7 @@
"gnome-shell": "gnome-shell_2", "gnome-shell": "gnome-shell_2",
"nixpkgs": "nixpkgs_16", "nixpkgs": "nixpkgs_16",
"nur": "nur_4", "nur": "nur_4",
"systems": "systems_7", "systems": "systems_6",
"tinted-foot": "tinted-foot_2", "tinted-foot": "tinted-foot_2",
"tinted-kitty": "tinted-kitty_2", "tinted-kitty": "tinted-kitty_2",
"tinted-schemes": "tinted-schemes_2", "tinted-schemes": "tinted-schemes_2",
@ -4341,7 +4269,7 @@
"gnome-shell": "gnome-shell_3", "gnome-shell": "gnome-shell_3",
"nixpkgs": "nixpkgs_24", "nixpkgs": "nixpkgs_24",
"nur": "nur_6", "nur": "nur_6",
"systems": "systems_10", "systems": "systems_9",
"tinted-foot": "tinted-foot_3", "tinted-foot": "tinted-foot_3",
"tinted-kitty": "tinted-kitty_3", "tinted-kitty": "tinted-kitty_3",
"tinted-schemes": "tinted-schemes_3", "tinted-schemes": "tinted-schemes_3",
@ -4391,7 +4319,7 @@
"sops-nix": "sops-nix_2", "sops-nix": "sops-nix_2",
"stylix": "stylix_2", "stylix": "stylix_2",
"swarsel": "swarsel_2", "swarsel": "swarsel_2",
"systems": "systems_14", "systems": "systems_13",
"vbc-nix": "vbc-nix_2", "vbc-nix": "vbc-nix_2",
"zjstatus": "zjstatus_2" "zjstatus": "zjstatus_2"
}, },
@ -4409,27 +4337,6 @@
"type": "github" "type": "github"
} }
}, },
"swarsel-modules": {
"inputs": {
"flake-parts": "flake-parts_16",
"nixpkgs": "nixpkgs_27",
"systems": "systems_17"
},
"locked": {
"lastModified": 1754778610,
"narHash": "sha256-XFv8P39Lps5bbjFdA3GWkY8ibpgdekFd10LsAFUVQhA=",
"owner": "Swarsel",
"repo": "swarsel-modules",
"rev": "7ecf2230e28e64097ca1208aa4bf4f242ec2bc3b",
"type": "github"
},
"original": {
"owner": "Swarsel",
"ref": "main",
"repo": "swarsel-modules",
"type": "github"
}
},
"swarsel_2": { "swarsel_2": {
"inputs": { "inputs": {
"devshell": "devshell_5", "devshell": "devshell_5",
@ -4458,7 +4365,7 @@
"pre-commit-hooks": "pre-commit-hooks_6", "pre-commit-hooks": "pre-commit-hooks_6",
"sops-nix": "sops-nix_3", "sops-nix": "sops-nix_3",
"stylix": "stylix_3", "stylix": "stylix_3",
"systems": "systems_11", "systems": "systems_10",
"vbc-nix": "vbc-nix", "vbc-nix": "vbc-nix",
"zjstatus": "zjstatus" "zjstatus": "zjstatus"
}, },
@ -4507,21 +4414,6 @@
} }
}, },
"systems_11": { "systems_11": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_12": {
"locked": { "locked": {
"lastModified": 1689347949, "lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
@ -4536,6 +4428,21 @@
"type": "github" "type": "github"
} }
}, },
"systems_12": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_13": { "systems_13": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
@ -4552,21 +4459,6 @@
} }
}, },
"systems_14": { "systems_14": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_15": {
"locked": { "locked": {
"lastModified": 1689347949, "lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
@ -4581,6 +4473,21 @@
"type": "github" "type": "github"
} }
}, },
"systems_15": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_16": { "systems_16": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
@ -4598,16 +4505,16 @@
}, },
"systems_17": { "systems_17": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1689347949,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default", "repo": "default-linux",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default", "repo": "default-linux",
"type": "github" "type": "github"
} }
}, },
@ -4626,21 +4533,6 @@
"type": "github" "type": "github"
} }
}, },
"systems_19": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_2": { "systems_2": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
@ -4656,21 +4548,6 @@
"type": "github" "type": "github"
} }
}, },
"systems_20": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_3": { "systems_3": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
@ -5073,7 +4950,7 @@
"swarsel", "swarsel",
"nixpkgs" "nixpkgs"
], ],
"systems": "systems_12" "systems": "systems_11"
}, },
"locked": { "locked": {
"lastModified": 1742477270, "lastModified": 1742477270,
@ -5096,7 +4973,7 @@
"swarsel", "swarsel",
"nixpkgs" "nixpkgs"
], ],
"systems": "systems_15" "systems": "systems_14"
}, },
"locked": { "locked": {
"lastModified": 1742477270, "lastModified": 1742477270,
@ -5118,7 +4995,7 @@
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"systems": "systems_19" "systems": "systems_17"
}, },
"locked": { "locked": {
"lastModified": 1742477270, "lastModified": 1742477270,
@ -5181,7 +5058,7 @@
"inputs": { "inputs": {
"crane": "crane_6", "crane": "crane_6",
"flake-utils": "flake-utils_9", "flake-utils": "flake-utils_9",
"nixpkgs": "nixpkgs_28", "nixpkgs": "nixpkgs_27",
"rust-overlay": "rust-overlay_6" "rust-overlay": "rust-overlay_6"
}, },
"locked": { "locked": {

View file

@ -19,10 +19,8 @@
nixpkgs-stable24_05.url = "github:NixOS/nixpkgs/nixos-24.05"; nixpkgs-stable24_05.url = "github:NixOS/nixpkgs/nixos-24.05";
nixpkgs-stable24_11.url = "github:NixOS/nixpkgs/nixos-24.11"; nixpkgs-stable24_11.url = "github:NixOS/nixpkgs/nixos-24.11";
systems.url = "github:nix-systems/default"; systems.url = "github:nix-systems/default";
swarsel-modules.url = "github:Swarsel/swarsel-modules/main";
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
# url = "github:Swarsel/home-manager/module/pizauth";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
swarsel.url = "github:Swarsel/.dotfiles"; swarsel.url = "github:Swarsel/.dotfiles";
@ -83,10 +81,6 @@
url = "github:numtide/devshell"; url = "github:numtide/devshell";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
spicetify-nix = {
url = "github:Gerg-l/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = outputs =
inputs: inputs:

View file

@ -16,7 +16,6 @@ in
swarselprofiles = { swarselprofiles = {
personal = lib.mkIf (!minimal) true; personal = lib.mkIf (!minimal) true;
work = lib.mkIf (!minimal) true; work = lib.mkIf (!minimal) true;
uni = lib.mkIf (!minimal) true;
framework = lib.mkIf (!minimal) true; framework = lib.mkIf (!minimal) true;
amdcpu = true; amdcpu = true;
amdgpu = true; amdgpu = true;

View file

@ -1,5 +1,5 @@
{ {
"data": "ENC[AES256_GCM,data:p68IT8Bx7PKlHX5ZI5L0pU64WGA+q3byfbT9yOceKKq4BxD2ZX4zwxXrTsb1q6WOcxOfr7aqqJ8uzkSURKbSbjd1sImBrrzTh2BU80PnM7d8n2GuqJdj2TsiJ25MD5BNG2v0Ib3jDErI5cA6DWkQgzZV3gyfc486XpsFP8TZLjdHBqVO+FcDde/yqLMbAzaGfsOL/yvqsKgoCLQIsY9XyKVuVYuzreBRKo/kXUROCIB9wNFKvXvsMquCPGGDeumjVmcOvKqds3Gz4Ij3YjMiuLEcy4fJCl+Oqt9uKTAzETtxh+0G6UxqPc0IpS3ZzBGKVN+waOqbee0EgZys187qDVkg57L2QZ8I5An7EsMpo7T4KQDhxE8ZU4aLvwS/fobHaFW/9pSjqnH1v1O7gVpPS1T+GDTBHUDvlFVA3EtmTaXT2P3JHpFZCGex9AuyqQPOggwC2CVedmeWEc5osbGJhJjWjHvqkfcfLjIJB8bvp5y3FBXodJAEX9lW+Kbhe3121JU5pAlDp9QWG7a9wHdTSLbhC3qJXAtovOrOqrPTUD/LkSVMYDI+MaN+kw1kgCXH/ZXZmE8WCu7e8g7Vh4XEuRwhwAloGN6KyU+0LUP1SaMRTktur6sUtTIGdWdkaIVXn5sHMiLFYmwXy07uSZ3bGQ8nb3D0yInLkxCH/C/czS+bW3GFACo+bx9GcmDCPYXT1ay4HNFicCwcFNseDnbJMhs9SmI/EXQs1f7AaojMTnBmRpZLvAa++s5cW+GGYjoqZXn7CpGS9bPyv16MLv+81Is2zg1yXYTAwZyGjDrqYYBgsC0I1VgY1sDf1MRZtucL46GMaveIgrx8nlNB2vWkN9pky3GeZL9YvQgw6WEd32pnDxH2d7In83wqPjzk2Ce1fUG24nCBS/GLMEeE+DGud0jMaRbOkR4JmYGw9ej3En+52HHn+Nwy7nQy9gpvf0jOpzPyImCDbtIa+SgFm81nj3Di2SEcxhzqzY3oJbWdNmhbJzacxik73qi+PvY+s5eEr5/Xav8yUltWJHof7vCxw6qejBYa6gb01GOuWfyVVwMpmycrt7bbnWJQ1cULXnChwX3RaktMn1gYAO1kXpgOAEzGE0c/nIqnNWYdzQnfPmFUrBUSLj0SyymsGzBsTc8AmCk0ue8K8Z2lGYgSwHVRgvspWX4W3fvyL0AYwCureXh2MyqohNOEilKqolxQjNIM2B1hDNBWqN3dO6NnJKSE4XicfXHfd/6VVmpNVquWMq3SpcWMhiG3ZWMEWsJ8tTARlCg45uWCKq1iONd8baXLV3C+lutzQ86By5jmEGVYerSLvTsDN1t/VENaNqGCeJPNY5uLuhhoC55C/6zRYNQvzppWru7L+dMh/+t4i9cAgEgsVej5nJKnBPFlUFd2ZaaSoMf1Od1JjJSp3XdaQiXmAS2SUPPU3pLjM2xkpSSK0l1W7EKeQN2CA+dX3Whz3zBmRl8=,iv:DftbkwcfZYce8u+4APA0Od/J6gijDN1c35rBobS7kB4=,tag:IpqjdivPHQrjK/7oRx6spw==,type:str]", "data": "ENC[AES256_GCM,data:kkwEMOzab5JK9G+rSfYygcAI6Y+b1tXkUFPdxN8e2Rnz2Uv4bDfITu8bmKqJ1q5kmHxQjQukioZkdQkabqBR8cx/CG3dRJfPAjEwMz4v8UYGSNSf8blJvdb4YKSizeOEALCuawBIm5hmvwuskXlol6UfkK66h9UnP94wwdh0KKemWinANxbIUX+cl6kK4X1eZrWRGr5Ts2HmjcowIbA+SmA8yVAwqoP6L1DuavilLGPfWhBI4Kj7ZTI3LRlvu4DZZ+DCAea3FgrrjbTWiWZfFW0YX2fDgNQkIxpp3N203zDu23HebZcmCrVBkfvFS7awBr5iVnwfsqOJR0LH92lIlUb8YoFShlJU/Day80i9uyYDCTHc4l2NBvjIH8NlpiYaA2A+rCW3VkVX3WzCGxBfi/kIqoNE3RdLJAYrIimsYaHSmk4o6jslR3xIRyQzDcNtWa92kINdCwBuJXc0UYe/HnR8tFlmOrlixMlVINTy45PRNYJoy7cuoJPd+aNIPQ2V31TB/CjUSZhEptVJSnQnKDui1xuV7vqcyPv06xftJGZRk/LL2cl3+HDLflkZYE7NVlLaOWMBOkX99W/WokF3NGBWuVeUp9bLCwpuEmzFafpCjKhGrQSDGkw17jmYWCULN9v3q6OvyylwqVuDDQZNSxGZFsSPr7qOxeENwTDQvRwpydthPRMMHh/wf3t5pyV/jW79SBuxIWvn4JbO8TBsd9TmVgXMgpd97+Zg3CnTqZApVVRzM8NzF25fMYHJv12YvkEmyOm0otFU84COhgNkpBRTJhyJdjKWVOTJFJyQviwy6BTBF6jqHyS+YP7BEZO2UID/9ODKVrSACCatSQlNtLQRrXOiE9h3g43uAJc/TyJ+A0IceUJ3BM+6PEJiqDWUfO5ucP3pLDdb4IDOAi/YeV9HQdyCdEVRf6a0CHmPcnkb+X+fxxcmZQCvuzQjOZQZw8UUwfhdJms6jTWqaN9leb3z4u8RPxOM1T+Qsu5dL5ouady7xVSO4c1Fw+EiiL9yOh42DTa4OyBlcTJiz5iigqmkaiQOwdwn+FlOYNraOd24h8+x7dDVQBbHjnV7xF7I1rmpOfA/lUbfovLU5SrIxLPT64J25ucudJWBTCDiYADUwhv+QmfJJsdt11+NWPkS3ymFbbWPtpZvhCaawrNKb3s/ohOEi8JIAyY9dtfRGuRoTsCcsJ4xjeSLehX4TgR0cl31Jmm+0kO2uuP7veDrqyUg1Swqsq4+BKfimprh/QzwSoB9lOdEPu0bdQza9sk+D5+H2ooXsVXA2YJscBZ/Kv+YYW57LlfwEvfpJDx5XiQtAYYlUeN8SPx72i9QzYugm339gj+eB8gtbX3W8Sl+D9Vs0P+GZ4G7K03JvzEExtA=,iv:Go3U5S9ZxtPawFoVjknH8j8WDg2TJLIU6mp5DQDj9BE=,tag:0QPJYyQsuZ4hz8xZZ2V4xw==,type:str]",
"sops": { "sops": {
"age": [ "age": [
{ {
@ -11,8 +11,8 @@
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0Z2tONmQxTUhZUW12Z2Jm\nUnoxSnpYcnZDNGNzSko1ckl2RDh3NG1VS2dFCmIwUXhmSk1OUk02S0JPVDR5UWJ4\na0gwWlg0V005ZWxYa29PZ0laS2VqM0kKLS0tIHN5SU9pQ090eHljeXJGWm5hRFQ4\nZ001Nzkyb29RYkNUMDNDNlo4YnVQeTQK34bNIBgxId2+DHKQNVV3Iro3KGkE03Sp\niB1+dADT6nRvGvoyPqnLq/NYfw7eQ6XqYt55zkdCta8v6L1UNUkw8g==\n-----END AGE ENCRYPTED FILE-----\n" "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0Z2tONmQxTUhZUW12Z2Jm\nUnoxSnpYcnZDNGNzSko1ckl2RDh3NG1VS2dFCmIwUXhmSk1OUk02S0JPVDR5UWJ4\na0gwWlg0V005ZWxYa29PZ0laS2VqM0kKLS0tIHN5SU9pQ090eHljeXJGWm5hRFQ4\nZ001Nzkyb29RYkNUMDNDNlo4YnVQeTQK34bNIBgxId2+DHKQNVV3Iro3KGkE03Sp\niB1+dADT6nRvGvoyPqnLq/NYfw7eQ6XqYt55zkdCta8v6L1UNUkw8g==\n-----END AGE ENCRYPTED FILE-----\n"
} }
], ],
"lastmodified": "2025-08-09T20:09:09Z", "lastmodified": "2025-08-07T12:21:20Z",
"mac": "ENC[AES256_GCM,data:s+LaqADPYV1UjsYZlxh6LGqaTwGzDYWyfcxPXakVUEmCe0YHfphSyRmhWwlr7WWM3w6BsZESq+PKYKtL7UunoolPh0KVEcobsvp7K/ZEPzDOH14ddOGiXDEpYRNqVYZtprR9pvrydOCPJbXO+klpLl0o3mm6j9VX2tIQdx3HNiA=,iv:rI2MG8OJUM6RNkJ3GsSYedOnRBTa+tbpporHC337unE=,tag:SY4yi5T7sFTIV02I8BbISg==,type:str]", "mac": "ENC[AES256_GCM,data:JxNvTsW6D7IbaczGsdgfTJcACm5VLrOw6Ep+RU9PoXn2LJZeJ9U8KIlnNdODtxMpiIpZ+ZPeJgQk+EXlUVd5n2dJQEr6vqfs4o85givDWE29Pki12Zb7jMhiW8/z9GYQ/TcskkWUfA0Brz9fKVKXLARvQdL1/9Rlw+F1VwWWBOo=,iv:V31hoIpUgq6X47D0B+MtBMsdD0oDpPkh2kvQWRJtS3w=,tag:dsW9SUIdGipX5rKyLAvCvQ==,type:str]",
"pgp": [ "pgp": [
{ {
"created_at": "2025-06-14T22:31:01Z", "created_at": "2025-06-14T22:31:01Z",

View file

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2025-08-10 So 11:35 --> <!-- 2025-08-09 Sa 14:31 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>SwarselSystems: NixOS + Emacs Configuration</title> <title>SwarselSystems: NixOS + Emacs Configuration</title>
@ -203,7 +203,7 @@
<ul> <ul>
<li><a href="#h:a86fe971-f169-4052-aacf-15e0f267c6cd">1. Introduction (no code)</a> <li><a href="#h:a86fe971-f169-4052-aacf-15e0f267c6cd">1. Introduction (no code)</a>
<ul> <ul>
<li><a href="#h:6f4b190c-fe69-47a3-9df2-ee429bd9b48b">1.1. How to use this document</a></li> <li><a href="#org95f3948">1.1. How to use this document</a></li>
<li><a href="#h:bcc3ebbe-df8a-46bd-b42d-73aad6fc66e5">1.2. Structure of this file</a></li> <li><a href="#h:bcc3ebbe-df8a-46bd-b42d-73aad6fc66e5">1.2. Structure of this file</a></li>
<li><a href="#h:2c5529ed-e6d9-44b6-b0d3-5bf96a6bed64">1.3. <span class="todo TODO">TODO</span> Structure of this flake</a></li> <li><a href="#h:2c5529ed-e6d9-44b6-b0d3-5bf96a6bed64">1.3. <span class="todo TODO">TODO</span> Structure of this flake</a></li>
<li><a href="#h:48e0cb2c-e412-4ae3-a244-80a8c09dbb02">1.4. Hosts</a></li> <li><a href="#h:48e0cb2c-e412-4ae3-a244-80a8c09dbb02">1.4. Hosts</a></li>
@ -319,7 +319,7 @@
<li><a href="#h:5c3027b4-ba66-445e-9c5f-c27e332c90e5">3.2.1.2. Share configuration between nodes (automatically active)</a></li> <li><a href="#h:5c3027b4-ba66-445e-9c5f-c27e332c90e5">3.2.1.2. Share configuration between nodes (automatically active)</a></li>
<li><a href="#h:85c9b83f-40c3-4558-bb28-a37b6f8597b9">3.2.1.3. Global options (automatically active)</a></li> <li><a href="#h:85c9b83f-40c3-4558-bb28-a37b6f8597b9">3.2.1.3. Global options (automatically active)</a></li>
<li><a href="#h:30b81bf9-1e69-4ce8-88af-5592896bcee4">3.2.1.4. Meta options (options only)</a></li> <li><a href="#h:30b81bf9-1e69-4ce8-88af-5592896bcee4">3.2.1.4. Meta options (options only)</a></li>
<li><a href="#h:a8bbe15f-a7dd-4e6d-ba49-26206c38e9c8">3.2.1.5. Expose home-manager sops secrets in NixOS (automatically active)</a></li> <li><a href="#org102ae59">3.2.1.5. Expose home-manager sops secrets in NixOS (automatically active)</a></li>
<li><a href="#h:e2e7444b-cb85-4719-b154-e5f37274d02d">3.2.1.6. Topology (automatically active)</a></li> <li><a href="#h:e2e7444b-cb85-4719-b154-e5f37274d02d">3.2.1.6. Topology (automatically active)</a></li>
<li><a href="#h:24c9146f-2147-4fd5-bafc-d5853e15cf12">3.2.1.7. General NixOS settings (nix, stateVersion)</a></li> <li><a href="#h:24c9146f-2147-4fd5-bafc-d5853e15cf12">3.2.1.7. General NixOS settings (nix, stateVersion)</a></li>
<li><a href="#h:7f6d6908-4d02-4907-9c70-f802f4358520">3.2.1.8. Setup home-manager base</a></li> <li><a href="#h:7f6d6908-4d02-4907-9c70-f802f4358520">3.2.1.8. Setup home-manager base</a></li>
@ -328,7 +328,7 @@
<li><a href="#h:852d59ab-63c3-4831-993d-b5e23b877796">3.2.1.11. Time, locale settings</a></li> <li><a href="#h:852d59ab-63c3-4831-993d-b5e23b877796">3.2.1.11. Time, locale settings</a></li>
<li><a href="#h:82b8ede2-02d8-4c43-8952-7200ebd4dc23">3.2.1.12. PII management</a></li> <li><a href="#h:82b8ede2-02d8-4c43-8952-7200ebd4dc23">3.2.1.12. PII management</a></li>
<li><a href="#h:d9a89071-b3ba-44d1-b5e0-e9ca6270d377">3.2.1.13. Lanzaboote (secure boot)</a></li> <li><a href="#h:d9a89071-b3ba-44d1-b5e0-e9ca6270d377">3.2.1.13. Lanzaboote (secure boot)</a></li>
<li><a href="#h:a1311b07-2a8d-4c1f-addc-8572fc184e0d">3.2.1.14. Boot</a></li> <li><a href="#org895e59b">3.2.1.14. Boot</a></li>
<li><a href="#h:e7668594-fa8b-4d36-a695-a58222478988">3.2.1.15. Impermanence</a></li> <li><a href="#h:e7668594-fa8b-4d36-a695-a58222478988">3.2.1.15. Impermanence</a></li>
</ul> </ul>
</li> </li>
@ -418,7 +418,7 @@
<li><a href="#h:f922e8d6-f6e8-4779-a7ad-4037229c9bf0">3.2.3.33. croc</a></li> <li><a href="#h:f922e8d6-f6e8-4779-a7ad-4037229c9bf0">3.2.3.33. croc</a></li>
<li><a href="#h:13071cc3-5cba-44b5-8b5b-2a27be22e021">3.2.3.34. microbin</a></li> <li><a href="#h:13071cc3-5cba-44b5-8b5b-2a27be22e021">3.2.3.34. microbin</a></li>
<li><a href="#h:4ccdcd5c-a4dd-49e4-94e7-d81db970059c">3.2.3.35. shlink</a></li> <li><a href="#h:4ccdcd5c-a4dd-49e4-94e7-d81db970059c">3.2.3.35. shlink</a></li>
<li><a href="#h:e46c37ac-5610-4603-8afc-2f5f008fc14d">3.2.3.36. slink</a></li> <li><a href="#orgb7ca62f">3.2.3.36. slink</a></li>
</ul> </ul>
</li> </li>
<li><a href="#h:ac0cd8b3-06cf-4dca-ba73-6100c8fedb47">3.2.4. Darwin</a> <li><a href="#h:ac0cd8b3-06cf-4dca-ba73-6100c8fedb47">3.2.4. Darwin</a>
@ -493,7 +493,6 @@
<li><a href="#h:eb94df98-2bcd-4555-9f88-e252f93b924f">3.3.1.32. Kanshi</a></li> <li><a href="#h:eb94df98-2bcd-4555-9f88-e252f93b924f">3.3.1.32. Kanshi</a></li>
<li><a href="#h:7d384e3b-1be7-4644-b304-ada4af0b692b">3.3.1.33. gpg-agent</a></li> <li><a href="#h:7d384e3b-1be7-4644-b304-ada4af0b692b">3.3.1.33. gpg-agent</a></li>
<li><a href="#h:74e236be-a977-4d38-b8c5-0b9feef8af91">3.3.1.34. gammastep</a></li> <li><a href="#h:74e236be-a977-4d38-b8c5-0b9feef8af91">3.3.1.34. gammastep</a></li>
<li><a href="#h:d1fb3075-ad52-4c1b-ba45-5ddbd0d3b708">3.3.1.35. Spicetify</a></li>
</ul> </ul>
</li> </li>
<li><a href="#h:b1a00339-6e9b-4ae4-b5dc-6fd5669a2ddb">3.3.2. Server</a> <li><a href="#h:b1a00339-6e9b-4ae4-b5dc-6fd5669a2ddb">3.3.2. Server</a>
@ -511,16 +510,15 @@
<ul> <ul>
<li><a href="#h:84fd7029-ecb6-4131-9333-289982f24ffa">3.3.4.1. Gaming</a></li> <li><a href="#h:84fd7029-ecb6-4131-9333-289982f24ffa">3.3.4.1. Gaming</a></li>
<li><a href="#h:f0b2ea93-94c8-48d8-8d47-6fe58f58e0e6">3.3.4.2. Work</a></li> <li><a href="#h:f0b2ea93-94c8-48d8-8d47-6fe58f58e0e6">3.3.4.2. Work</a></li>
<li><a href="#h:52b41e73-46f3-4c2c-af64-eafb51e3b6b6">3.3.4.3. Uni</a></li> <li><a href="#h:8a7b1c26-3448-42d3-932a-5d05d54b5490">3.3.4.3. Framework</a></li>
<li><a href="#h:8a7b1c26-3448-42d3-932a-5d05d54b5490">3.3.4.4. Framework</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
</li> </li>
<li><a href="#h:3552f06f-07e0-4bb1-a50f-fd1efb2d7778">3.4. Shared</a> <li><a href="#org7f776e3">3.4. Shared</a>
<ul> <ul>
<li><a href="#h:79f7150f-b162-4f57-abdf-07f40dffd932">3.4.1. <span class="todo TODO">TODO</span> Configuration options</a></li> <li><a href="#h:79f7150f-b162-4f57-abdf-07f40dffd932">3.4.1. <span class="todo TODO">TODO</span> Configuration options</a></li>
<li><a href="#h:ea362c55-97b4-45fd-bf41-ab461c444212">3.4.2. Variables (vars; holds firefox &amp; stylix config parts)</a></li> <li><a href="#org6e2eee2">3.4.2. Variables (vars; holds firefox &amp; stylix config parts)</a></li>
</ul> </ul>
</li> </li>
<li><a href="#h:64a5cc16-6b16-4802-b421-c67ccef853e1">3.5. Packages</a> <li><a href="#h:64a5cc16-6b16-4802-b421-c67ccef853e1">3.5. Packages</a>
@ -570,15 +568,14 @@
<li><a href="#h:b79fbb59-9cf2-48eb-b469-2589223dda95">3.6.1.4. Chaostheatre</a></li> <li><a href="#h:b79fbb59-9cf2-48eb-b469-2589223dda95">3.6.1.4. Chaostheatre</a></li>
<li><a href="#h:125443fb-deb6-44c9-83ee-bbd10daf78dd">3.6.1.5. toto</a></li> <li><a href="#h:125443fb-deb6-44c9-83ee-bbd10daf78dd">3.6.1.5. toto</a></li>
<li><a href="#h:cb3631a8-9c1b-42f2-ab01-502c7b4c273d">3.6.1.6. Work</a></li> <li><a href="#h:cb3631a8-9c1b-42f2-ab01-502c7b4c273d">3.6.1.6. Work</a></li>
<li><a href="#h:87a83b10-3c2f-407c-89aa-922ad77748a4">3.6.1.7. Uni</a></li> <li><a href="#h:eb272c99-842a-4095-bc65-283562749300">3.6.1.7. Framework</a></li>
<li><a href="#h:eb272c99-842a-4095-bc65-283562749300">3.6.1.8. Framework</a></li> <li><a href="#h:b7beb4a5-8808-438d-8799-7f08f38fd1ba">3.6.1.8. AMD CPU</a></li>
<li><a href="#h:b7beb4a5-8808-438d-8799-7f08f38fd1ba">3.6.1.9. AMD CPU</a></li> <li><a href="#h:79c71b6d-a1ad-447d-8940-bb5bfd71dced">3.6.1.9. AMD GPU</a></li>
<li><a href="#h:79c71b6d-a1ad-447d-8940-bb5bfd71dced">3.6.1.10. AMD GPU</a></li> <li><a href="#h:641d0a2a-0592-448a-a6e3-d0a9c330293e">3.6.1.10. Hibernation</a></li>
<li><a href="#h:641d0a2a-0592-448a-a6e3-d0a9c330293e">3.6.1.11. Hibernation</a></li> <li><a href="#h:0bb401e3-b195-4ff2-bc74-23c5a54d83d2">3.6.1.11. BTRFS</a></li>
<li><a href="#h:0bb401e3-b195-4ff2-bc74-23c5a54d83d2">3.6.1.12. BTRFS</a></li> <li><a href="#h:dfc076fd-ee74-4663-b164-653370c52b75">3.6.1.12. Local Server</a></li>
<li><a href="#h:dfc076fd-ee74-4663-b164-653370c52b75">3.6.1.13. Local Server</a></li> <li><a href="#h:9b7b50d1-57ad-41ca-94ab-74393aae01bf">3.6.1.13. OCI Sync Server</a></li>
<li><a href="#h:9b7b50d1-57ad-41ca-94ab-74393aae01bf">3.6.1.14. OCI Sync Server</a></li> <li><a href="#h:cc780ef2-7e5e-4835-b659-c731b306a320">3.6.1.14. Moonside</a></li>
<li><a href="#h:cc780ef2-7e5e-4835-b659-c731b306a320">3.6.1.15. Moonside</a></li>
</ul> </ul>
</li> </li>
<li><a href="#h:ced5841f-c088-4d88-b3a1-7d62aad8837b">3.6.2. home-manager</a> <li><a href="#h:ced5841f-c088-4d88-b3a1-7d62aad8837b">3.6.2. home-manager</a>
@ -589,9 +586,8 @@
<li><a href="#h:36a0209f-2c17-4808-a1d0-a9e1920c307a">3.6.2.4. Chaostheatre</a></li> <li><a href="#h:36a0209f-2c17-4808-a1d0-a9e1920c307a">3.6.2.4. Chaostheatre</a></li>
<li><a href="#h:e1d4f141-af11-448a-9796-fc822a8f77ec">3.6.2.5. toto</a></li> <li><a href="#h:e1d4f141-af11-448a-9796-fc822a8f77ec">3.6.2.5. toto</a></li>
<li><a href="#h:7b091523-a5b0-48b6-8b03-4dc2405e2d81">3.6.2.6. Work</a></li> <li><a href="#h:7b091523-a5b0-48b6-8b03-4dc2405e2d81">3.6.2.6. Work</a></li>
<li><a href="#h:56f509b9-3271-4212-b5ea-482dbe288bda">3.6.2.7. Uni</a></li> <li><a href="#h:712b9d7f-16c0-42b3-b02b-6d79ee15cfcc">3.6.2.7. Framework</a></li>
<li><a href="#h:712b9d7f-16c0-42b3-b02b-6d79ee15cfcc">3.6.2.8. Framework</a></li> <li><a href="#h:8027b858-369e-4f12-bbaf-f15eeee3d904">3.6.2.8. Local Server</a></li>
<li><a href="#h:8027b858-369e-4f12-bbaf-f15eeee3d904">3.6.2.9. Local Server</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -761,7 +757,7 @@
<li><a href="#h:a81fb9de-6b6b-4a4a-b758-5107c6e7f0cb">4.4.42. vterm</a></li> <li><a href="#h:a81fb9de-6b6b-4a4a-b758-5107c6e7f0cb">4.4.42. vterm</a></li>
<li><a href="#h:1f4d32a0-c1ed-4409-aec4-7b5c96aa21dd">4.4.43. multiple cursors</a></li> <li><a href="#h:1f4d32a0-c1ed-4409-aec4-7b5c96aa21dd">4.4.43. multiple cursors</a></li>
<li><a href="#h:438d928f-77a8-477a-ac8b-ca54ec673f91">4.4.44. Less logging</a></li> <li><a href="#h:438d928f-77a8-477a-ac8b-ca54ec673f91">4.4.44. Less logging</a></li>
<li><a href="#h:5322b631-a108-49a0-b95a-b61a70070dd9">4.4.45. Popup frames</a></li> <li><a href="#org9515b19">4.4.45. Popup frames</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -816,7 +812,7 @@
</div> </div>
</div> </div>
<p> <p>
<b>This file has 91577 words spanning 23506 lines and was last revised on 2025-08-10 11:35:15 +0200.</b> <b>This file has 91224 words spanning 23377 lines and was last revised on 2025-08-09 14:31:36 +0200.</b>
</p> </p>
<p> <p>
@ -846,9 +842,9 @@ This configuration is part of a NixOS system that is (nearly) fully declarative
This literate configuration lets me explain my choices to my future self as well as you, the reader. I go to great lengths to explain the choices for all configuration steps that I take in order for me to pay due diligence in crafting my setup, and not simply copying big chunks of other peoples code. Also, the literate configuration approach is very convenient to me as I only need to keep of (ideally) a single file to manage all of my configuration. I hope that this documentation will make it easier for beginners to get into Emacs and NixOS as I know it can be a struggle in the beginning. This literate configuration lets me explain my choices to my future self as well as you, the reader. I go to great lengths to explain the choices for all configuration steps that I take in order for me to pay due diligence in crafting my setup, and not simply copying big chunks of other peoples code. Also, the literate configuration approach is very convenient to me as I only need to keep of (ideally) a single file to manage all of my configuration. I hope that this documentation will make it easier for beginners to get into Emacs and NixOS as I know it can be a struggle in the beginning.
</p> </p>
</div> </div>
<div id="outline-container-h:6f4b190c-fe69-47a3-9df2-ee429bd9b48b" class="outline-3"> <div id="outline-container-org95f3948" class="outline-3">
<h3 id="h:6f4b190c-fe69-47a3-9df2-ee429bd9b48b"><span class="section-number-3">1.1.</span> How to use this document</h3> <h3 id="org95f3948"><span class="section-number-3">1.1.</span> How to use this document</h3>
<div class="outline-text-3" id="text-h:6f4b190c-fe69-47a3-9df2-ee429bd9b48b"> <div class="outline-text-3" id="text-1-1">
<p> <p>
When I started out with nix, it was a painful time. For a beginner, the available resources tend to be too detailed or assume too much prior knowledge. Also, it is a (sad) fact that using nix requires the user to understand it pretty well before most things start to make sense. When I started out with nix, it was a painful time. For a beginner, the available resources tend to be too detailed or assume too much prior knowledge. Also, it is a (sad) fact that using nix requires the user to understand it pretty well before most things start to make sense.
</p> </p>
@ -885,7 +881,7 @@ This section defines my Emacs configuration. For a while, I considered to use ry
</p> </p>
<p> <p>
My emacs is built using the emacs-overlay nix flake, which builds a bleeding edge emacs on wayland (pgtk) with utilities like treesitter support. By executing the below source block, the current build setting can be updated at any time, and you can see my most up-to-date build options (last updated: 2025-08-10 11:35:15 +0200) My emacs is built using the emacs-overlay nix flake, which builds a bleeding edge emacs on wayland (pgtk) with utilities like treesitter support. By executing the below source block, the current build setting can be updated at any time, and you can see my most up-to-date build options (last updated: 2025-08-09 14:31:36 +0200)
</p></li> </p></li>
</ul> </ul>
@ -1331,10 +1327,8 @@ This provides devshell support for flake-parts</li>
nixpkgs-stable24_05.url = "github:NixOS/nixpkgs/nixos-24.05"; nixpkgs-stable24_05.url = "github:NixOS/nixpkgs/nixos-24.05";
nixpkgs-stable24_11.url = "github:NixOS/nixpkgs/nixos-24.11"; nixpkgs-stable24_11.url = "github:NixOS/nixpkgs/nixos-24.11";
systems.url = "github:nix-systems/default"; systems.url = "github:nix-systems/default";
swarsel-modules.url = "github:Swarsel/swarsel-modules/main";
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
# url = "github:Swarsel/home-manager/module/pizauth";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
swarsel.url = "github:Swarsel/.dotfiles"; swarsel.url = "github:Swarsel/.dotfiles";
@ -1395,10 +1389,6 @@ This provides devshell support for flake-parts</li>
url = "github:numtide/devshell"; url = "github:numtide/devshell";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
spicetify-nix = {
url = "github:Gerg-l/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = outputs =
inputs: inputs:
@ -1827,7 +1817,6 @@ The rest of the outputs either define or help define the actual configurations:
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
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
"${self}/hosts/nixos/${configName}" "${self}/hosts/nixos/${configName}"
"${self}/profiles/nixos" "${self}/profiles/nixos"
"${self}/modules/nixos" "${self}/modules/nixos"
@ -2931,7 +2920,6 @@ in
swarselprofiles = { swarselprofiles = {
personal = lib.mkIf (!minimal) true; personal = lib.mkIf (!minimal) true;
work = lib.mkIf (!minimal) true; work = lib.mkIf (!minimal) true;
uni = lib.mkIf (!minimal) true;
framework = lib.mkIf (!minimal) true; framework = lib.mkIf (!minimal) true;
amdcpu = true; amdcpu = true;
amdgpu = true; amdgpu = true;
@ -5015,9 +5003,9 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-h:a8bbe15f-a7dd-4e6d-ba49-26206c38e9c8" class="outline-5"> <div id="outline-container-org102ae59" class="outline-5">
<h5 id="h:a8bbe15f-a7dd-4e6d-ba49-26206c38e9c8"><span class="section-number-5">3.2.1.5.</span> Expose home-manager sops secrets in NixOS (automatically active)</h5> <h5 id="org102ae59"><span class="section-number-5">3.2.1.5.</span> Expose home-manager sops secrets in NixOS (automatically active)</h5>
<div class="outline-text-5" id="text-h:a8bbe15f-a7dd-4e6d-ba49-26206c38e9c8"> <div class="outline-text-5" id="text-3-2-1-5">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, globals, ... }: <pre class="src src-nix-ts">{ lib, config, globals, ... }:
let let
@ -5248,8 +5236,7 @@ We enable the use of <code>home-manager</code> as a NixoS module. A nice trick h
users.${config.swarselsystems.mainUser}.imports = [ users.${config.swarselsystems.mainUser}.imports = [
inputs.nix-index-database.homeModules.nix-index inputs.nix-index-database.homeModules.nix-index
inputs.sops-nix.homeManagerModules.sops inputs.sops-nix.homeManagerModules.sops
inputs.spicetify-nix.homeManagerModules.default # inputs.stylix.homeModules.stylix
inputs.swarsel-modules.homeModules.default
{ {
imports = [ imports = [
"${self}/profiles/home" "${self}/profiles/home"
@ -5499,9 +5486,9 @@ This dynamically uses systemd boot or Lanzaboote depending on the minimal system
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-h:a1311b07-2a8d-4c1f-addc-8572fc184e0d" class="outline-5"> <div id="outline-container-org895e59b" class="outline-5">
<h5 id="h:a1311b07-2a8d-4c1f-addc-8572fc184e0d"><span class="section-number-5">3.2.1.14.</span> Boot</h5> <h5 id="org895e59b"><span class="section-number-5">3.2.1.14.</span> Boot</h5>
<div class="outline-text-5" id="text-h:a1311b07-2a8d-4c1f-addc-8572fc184e0d"> <div class="outline-text-5" id="text-3-2-1-14">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix-ts">{ lib, pkgs, config, globals, ... }: <pre class="src src-nix-ts">{ lib, pkgs, config, globals, ... }:
{ {
@ -11038,9 +11025,9 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-h:e46c37ac-5610-4603-8afc-2f5f008fc14d" class="outline-5"> <div id="outline-container-orgb7ca62f" class="outline-5">
<h5 id="h:e46c37ac-5610-4603-8afc-2f5f008fc14d"><span class="section-number-5">3.2.3.36.</span> slink</h5> <h5 id="orgb7ca62f"><span class="section-number-5">3.2.3.36.</span> slink</h5>
<div class="outline-text-5" id="text-h:e46c37ac-5610-4603-8afc-2f5f008fc14d"> <div class="outline-text-5" id="text-3-2-3-36">
<p> <p>
Deployment notes: Deployment notes:
</p> </p>
@ -12049,7 +12036,7 @@ This holds packages that I can use as provided, or with small modifications (as
libreoffice-qt libreoffice-qt
xournalpp xournalpp
obsidian obsidian
# 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 spotify-player
@ -14956,36 +14943,6 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-h:d1fb3075-ad52-4c1b-ba45-5ddbd0d3b708" class="outline-5">
<h5 id="h:d1fb3075-ad52-4c1b-ba45-5ddbd0d3b708"><span class="section-number-5">3.3.1.35.</span> Spicetify</h5>
<div class="outline-text-5" id="text-h:d1fb3075-ad52-4c1b-ba45-5ddbd0d3b708">
<div class="org-src-container">
<pre class="src src-nix-ts">{ inputs, lib, config, pkgs, ... }:
let
moduleName = "spicetify";
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.system};
in
{
options.swarselmodules.${moduleName} = lib.mkEnableOption "${moduleName} settings";
config = lib.mkIf config.swarselmodules.${moduleName} {
programs.spicetify = {
enable = true;
spotifyPackage = pkgs.stable24_11.spotify;
enabledExtensions = with spicePkgs.extensions; [
fullAppDisplay
shuffle
hidePodcasts
fullAlbumDate
skipStats
history
];
};
};
}
</pre>
</div>
</div>
</div>
</div> </div>
<div id="outline-container-h:b1a00339-6e9b-4ae4-b5dc-6fd5669a2ddb" class="outline-4"> <div id="outline-container-h:b1a00339-6e9b-4ae4-b5dc-6fd5669a2ddb" class="outline-4">
<h4 id="h:b1a00339-6e9b-4ae4-b5dc-6fd5669a2ddb"><span class="section-number-4">3.3.2.</span> Server</h4> <h4 id="h:b1a00339-6e9b-4ae4-b5dc-6fd5669a2ddb"><span class="section-number-4">3.3.2.</span> Server</h4>
@ -15172,8 +15129,26 @@ in
stable.prometheus.cli stable.prometheus.cli
tigervnc tigervnc
openstackclient openstackclient
pizauth
]; ];
systemd.user.services.pizauth = {
Unit = {
Description = "Pizauth OAuth2 token manager";
};
Service = {
Type = "simple";
ExecStart = "${pkgs.pizauth}/bin/pizauth server -vvvv -d";
ExecReload = "${pkgs.pizauth}/bin/pizauth reload";
ExecStop = "${pkgs.pizauth}/bin/pizauth shutdown";
};
Install = {
WantedBy = [ "default.target" ];
};
};
home.sessionVariables = { home.sessionVariables = {
DOCUMENT_DIR_PRIV = lib.mkForce "${homeDir}/Documents/Private"; DOCUMENT_DIR_PRIV = lib.mkForce "${homeDir}/Documents/Private";
DOCUMENT_DIR_WORK = lib.mkForce "${homeDir}/Documents/Work"; DOCUMENT_DIR_WORK = lib.mkForce "${homeDir}/Documents/Work";
@ -15507,30 +15482,28 @@ in
}; };
}; };
swarselservices.pizauth = {
enable = true;
accounts = {
work = {
authUri = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize";
tokenUri = "https://login.microsoftonline.com/common/oauth2/v2.0/token";
clientId = "08162f7c-0fd2-4200-a84a-f25a4db0b584";
clientSecret = "TxRBilcHdC6WGBee]fs?QR:SJ8nI[g82";
scopes = [
"https://outlook.office365.com/IMAP.AccessAsUser.All"
"https://outlook.office365.com/SMTP.Send"
"offline_access"
];
loginHint = "${nixosConfig.repo.secrets.local.work.mailAddress}";
};
};
};
xdg = xdg =
let let
inherit (nixosConfig.repo.secrets.local.work) user1 user2 user3; inherit (nixosConfig.repo.secrets.local.work) user1 user2 user3;
in in
{ {
configFile."pizauth.conf".text = ''
account "work" {
auth_uri = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize";
token_uri = "https://login.microsoftonline.com/common/oauth2/v2.0/token";
client_id = "08162f7c-0fd2-4200-a84a-f25a4db0b584";
client_secret = "TxRBilcHdC6WGBee]fs?QR:SJ8nI[g82";
scopes = [
"https://outlook.office365.com/IMAP.AccessAsUser.All",
"https://outlook.office365.com/SMTP.Send",
"offline_access"
];
// You don't have to specify login_hint, but it does make
// authentication a little easier.
login_hint = "${nixosConfig.repo.secrets.local.work.mailAddress}";
}
'';
mimeApps = { mimeApps = {
defaultApplications = { defaultApplications = {
"x-scheme-handler/msteams" = [ "teams-for-linux.desktop" ]; "x-scheme-handler/msteams" = [ "teams-for-linux.desktop" ];
@ -15682,45 +15655,12 @@ in
} }
</pre>
</div>
</div>
</div>
<div id="outline-container-h:52b41e73-46f3-4c2c-af64-eafb51e3b6b6" class="outline-5">
<h5 id="h:52b41e73-46f3-4c2c-af64-eafb51e3b6b6"><span class="section-number-5">3.3.4.3.</span> Uni</h5>
<div class="outline-text-5" id="text-h:52b41e73-46f3-4c2c-af64-eafb51e3b6b6">
<div class="org-src-container">
<pre class="src src-nix-ts">{ config, lib, nixosConfig ? config, ... }:
{
options.swarselmodules.optional.uni = lib.mkEnableOption "optional uni settings";
config = lib.mkIf config.swarselmodules.optional.uni
{
swarselservices.pizauth = {
enable = true;
accounts = {
uni = {
authUri = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize";
tokenUri = "https://login.microsoftonline.com/common/oauth2/v2.0/token";
clientId = "08162f7c-0fd2-4200-a84a-f25a4db0b584";
clientSecret = "TxRBilcHdC6WGBee]fs?QR:SJ8nI[g82";
scopes = [
"https://outlook.office365.com/IMAP.AccessAsUser.All"
"https://outlook.office365.com/SMTP.Send"
"offline_access"
];
loginHint = "${nixosConfig.repo.secrets.local.uni.mailAddress}";
};
};
};
};
}
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-h:8a7b1c26-3448-42d3-932a-5d05d54b5490" class="outline-5"> <div id="outline-container-h:8a7b1c26-3448-42d3-932a-5d05d54b5490" class="outline-5">
<h5 id="h:8a7b1c26-3448-42d3-932a-5d05d54b5490"><span class="section-number-5">3.3.4.4.</span> Framework</h5> <h5 id="h:8a7b1c26-3448-42d3-932a-5d05d54b5490"><span class="section-number-5">3.3.4.3.</span> Framework</h5>
<div class="outline-text-5" id="text-h:8a7b1c26-3448-42d3-932a-5d05d54b5490"> <div class="outline-text-5" id="text-h:8a7b1c26-3448-42d3-932a-5d05d54b5490">
<p> <p>
This holds configuration that is specific to framework laptops. This holds configuration that is specific to framework laptops.
@ -15747,9 +15687,9 @@ This holds configuration that is specific to framework laptops.
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-h:3552f06f-07e0-4bb1-a50f-fd1efb2d7778" class="outline-3"> <div id="outline-container-org7f776e3" class="outline-3">
<h3 id="h:3552f06f-07e0-4bb1-a50f-fd1efb2d7778"><span class="section-number-3">3.4.</span> Shared</h3> <h3 id="org7f776e3"><span class="section-number-3">3.4.</span> Shared</h3>
<div class="outline-text-3" id="text-h:3552f06f-07e0-4bb1-a50f-fd1efb2d7778"> <div class="outline-text-3" id="text-3-4">
<p> <p>
This section is for modules that are to be used on <code>NixOS</code> and <code>home-manager</code> scopes alike. This is for example needed in order to allow me to define and set my own custom functions only once in the <code>NixOS</code> config and then mirror them into the corresponding <code>home-manager</code> option. This section is for modules that are to be used on <code>NixOS</code> and <code>home-manager</code> scopes alike. This is for example needed in order to allow me to define and set my own custom functions only once in the <code>NixOS</code> config and then mirror them into the corresponding <code>home-manager</code> option.
</p> </p>
@ -15837,9 +15777,9 @@ TODO: check which of these can be replaced but builtin functions.
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-h:ea362c55-97b4-45fd-bf41-ab461c444212" class="outline-4"> <div id="outline-container-org6e2eee2" class="outline-4">
<h4 id="h:ea362c55-97b4-45fd-bf41-ab461c444212"><span class="section-number-4">3.4.2.</span> Variables (vars; holds firefox &amp; stylix config parts)</h4> <h4 id="org6e2eee2"><span class="section-number-4">3.4.2.</span> Variables (vars; holds firefox &amp; stylix config parts)</h4>
<div class="outline-text-4" id="text-h:ea362c55-97b4-45fd-bf41-ab461c444212"> <div class="outline-text-4" id="text-3-4-2">
<p> <p>
At work I am using several services that are using SSO login - however, as I am using four different accounts at work, this becomes a chore here. Hence, I have defined multiple profiles in <a href="#h:f0b2ea93-94c8-48d8-8d47-6fe58f58e0e6">Work</a> that are all practically using the same configuration. To save screen space, I template that profile here. At work I am using several services that are using SSO login - however, as I am using four different accounts at work, this becomes a chore here. Hence, I have defined multiple profiles in <a href="#h:f0b2ea93-94c8-48d8-8d47-6fe58f58e0e6">Work</a> that are all practically using the same configuration. To save screen space, I template that profile here.
Set in firefox <code>about:config &gt; toolkit.legacyUserProfileCustomizations.stylesheets</code> to true. This should in principle be set automatically using the below config, but it seems not to be working reliably. Set in firefox <code>about:config &gt; toolkit.legacyUserProfileCustomizations.stylesheets</code> to true. This should in principle be set automatically using the below config, but it seems not to be working reliably.
@ -15912,7 +15852,6 @@ In short, the options defined here are passed to the modules systems using <code
emacs.enable = false; emacs.enable = false;
waybar.enable = false; waybar.enable = false;
sway.useWallpaper = false; sway.useWallpaper = false;
spicetify.enable = true;
firefox.profileNames = [ "default" ]; firefox.profileNames = [ "default" ];
}; };
@ -18343,39 +18282,12 @@ in
} }
</pre>
</div>
</div>
</div>
<div id="outline-container-h:87a83b10-3c2f-407c-89aa-922ad77748a4" class="outline-5">
<h5 id="h:87a83b10-3c2f-407c-89aa-922ad77748a4"><span class="section-number-5">3.6.1.7.</span> Uni</h5>
<div class="outline-text-5" id="text-h:87a83b10-3c2f-407c-89aa-922ad77748a4">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }:
{
options.swarselprofiles.uni = lib.mkEnableOption "is this a uni host";
config = lib.mkIf config.swarselprofiles.uni {
# swarselmodules = {
# optional = {
# uni = lib.mkDefault true;
# };
# };
home-manager.users."${config.swarselsystems.mainUser}" = {
swarselprofiles = {
uni = lib.mkDefault true;
};
};
};
}
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-h:eb272c99-842a-4095-bc65-283562749300" class="outline-5"> <div id="outline-container-h:eb272c99-842a-4095-bc65-283562749300" class="outline-5">
<h5 id="h:eb272c99-842a-4095-bc65-283562749300"><span class="section-number-5">3.6.1.8.</span> Framework</h5> <h5 id="h:eb272c99-842a-4095-bc65-283562749300"><span class="section-number-5">3.6.1.7.</span> Framework</h5>
<div class="outline-text-5" id="text-h:eb272c99-842a-4095-bc65-283562749300"> <div class="outline-text-5" id="text-h:eb272c99-842a-4095-bc65-283562749300">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }: <pre class="src src-nix-ts">{ lib, config, ... }:
@ -18402,7 +18314,7 @@ in
</div> </div>
</div> </div>
<div id="outline-container-h:b7beb4a5-8808-438d-8799-7f08f38fd1ba" class="outline-5"> <div id="outline-container-h:b7beb4a5-8808-438d-8799-7f08f38fd1ba" class="outline-5">
<h5 id="h:b7beb4a5-8808-438d-8799-7f08f38fd1ba"><span class="section-number-5">3.6.1.9.</span> AMD CPU</h5> <h5 id="h:b7beb4a5-8808-438d-8799-7f08f38fd1ba"><span class="section-number-5">3.6.1.8.</span> AMD CPU</h5>
<div class="outline-text-5" id="text-h:b7beb4a5-8808-438d-8799-7f08f38fd1ba"> <div class="outline-text-5" id="text-h:b7beb4a5-8808-438d-8799-7f08f38fd1ba">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }: <pre class="src src-nix-ts">{ lib, config, ... }:
@ -18424,7 +18336,7 @@ in
</div> </div>
</div> </div>
<div id="outline-container-h:79c71b6d-a1ad-447d-8940-bb5bfd71dced" class="outline-5"> <div id="outline-container-h:79c71b6d-a1ad-447d-8940-bb5bfd71dced" class="outline-5">
<h5 id="h:79c71b6d-a1ad-447d-8940-bb5bfd71dced"><span class="section-number-5">3.6.1.10.</span> AMD GPU</h5> <h5 id="h:79c71b6d-a1ad-447d-8940-bb5bfd71dced"><span class="section-number-5">3.6.1.9.</span> AMD GPU</h5>
<div class="outline-text-5" id="text-h:79c71b6d-a1ad-447d-8940-bb5bfd71dced"> <div class="outline-text-5" id="text-h:79c71b6d-a1ad-447d-8940-bb5bfd71dced">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }: <pre class="src src-nix-ts">{ lib, config, ... }:
@ -18446,7 +18358,7 @@ in
</div> </div>
</div> </div>
<div id="outline-container-h:641d0a2a-0592-448a-a6e3-d0a9c330293e" class="outline-5"> <div id="outline-container-h:641d0a2a-0592-448a-a6e3-d0a9c330293e" class="outline-5">
<h5 id="h:641d0a2a-0592-448a-a6e3-d0a9c330293e"><span class="section-number-5">3.6.1.11.</span> Hibernation</h5> <h5 id="h:641d0a2a-0592-448a-a6e3-d0a9c330293e"><span class="section-number-5">3.6.1.10.</span> Hibernation</h5>
<div class="outline-text-5" id="text-h:641d0a2a-0592-448a-a6e3-d0a9c330293e"> <div class="outline-text-5" id="text-h:641d0a2a-0592-448a-a6e3-d0a9c330293e">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }: <pre class="src src-nix-ts">{ lib, config, ... }:
@ -18468,7 +18380,7 @@ in
</div> </div>
</div> </div>
<div id="outline-container-h:0bb401e3-b195-4ff2-bc74-23c5a54d83d2" class="outline-5"> <div id="outline-container-h:0bb401e3-b195-4ff2-bc74-23c5a54d83d2" class="outline-5">
<h5 id="h:0bb401e3-b195-4ff2-bc74-23c5a54d83d2"><span class="section-number-5">3.6.1.12.</span> BTRFS</h5> <h5 id="h:0bb401e3-b195-4ff2-bc74-23c5a54d83d2"><span class="section-number-5">3.6.1.11.</span> BTRFS</h5>
<div class="outline-text-5" id="text-h:0bb401e3-b195-4ff2-bc74-23c5a54d83d2"> <div class="outline-text-5" id="text-h:0bb401e3-b195-4ff2-bc74-23c5a54d83d2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }: <pre class="src src-nix-ts">{ lib, config, ... }:
@ -18490,7 +18402,7 @@ in
</div> </div>
</div> </div>
<div id="outline-container-h:dfc076fd-ee74-4663-b164-653370c52b75" class="outline-5"> <div id="outline-container-h:dfc076fd-ee74-4663-b164-653370c52b75" class="outline-5">
<h5 id="h:dfc076fd-ee74-4663-b164-653370c52b75"><span class="section-number-5">3.6.1.13.</span> Local Server</h5> <h5 id="h:dfc076fd-ee74-4663-b164-653370c52b75"><span class="section-number-5">3.6.1.12.</span> Local Server</h5>
<div class="outline-text-5" id="text-h:dfc076fd-ee74-4663-b164-653370c52b75"> <div class="outline-text-5" id="text-h:dfc076fd-ee74-4663-b164-653370c52b75">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }: <pre class="src src-nix-ts">{ lib, config, ... }:
@ -18547,7 +18459,7 @@ in
</div> </div>
</div> </div>
<div id="outline-container-h:9b7b50d1-57ad-41ca-94ab-74393aae01bf" class="outline-5"> <div id="outline-container-h:9b7b50d1-57ad-41ca-94ab-74393aae01bf" class="outline-5">
<h5 id="h:9b7b50d1-57ad-41ca-94ab-74393aae01bf"><span class="section-number-5">3.6.1.14.</span> OCI Sync Server</h5> <h5 id="h:9b7b50d1-57ad-41ca-94ab-74393aae01bf"><span class="section-number-5">3.6.1.13.</span> OCI Sync Server</h5>
<div class="outline-text-5" id="text-h:9b7b50d1-57ad-41ca-94ab-74393aae01bf"> <div class="outline-text-5" id="text-h:9b7b50d1-57ad-41ca-94ab-74393aae01bf">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }: <pre class="src src-nix-ts">{ lib, config, ... }:
@ -18582,7 +18494,7 @@ in
</div> </div>
</div> </div>
<div id="outline-container-h:cc780ef2-7e5e-4835-b659-c731b306a320" class="outline-5"> <div id="outline-container-h:cc780ef2-7e5e-4835-b659-c731b306a320" class="outline-5">
<h5 id="h:cc780ef2-7e5e-4835-b659-c731b306a320"><span class="section-number-5">3.6.1.15.</span> Moonside</h5> <h5 id="h:cc780ef2-7e5e-4835-b659-c731b306a320"><span class="section-number-5">3.6.1.14.</span> Moonside</h5>
<div class="outline-text-5" id="text-h:cc780ef2-7e5e-4835-b659-c731b306a320"> <div class="outline-text-5" id="text-h:cc780ef2-7e5e-4835-b659-c731b306a320">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }: <pre class="src src-nix-ts">{ lib, config, ... }:
@ -18685,11 +18597,9 @@ in
kanshi = lib.mkDefault true; kanshi = lib.mkDefault true;
gpgagent = lib.mkDefault true; gpgagent = lib.mkDefault true;
gammastep = lib.mkDefault true; gammastep = lib.mkDefault true;
spicetify = lib.mkDefault true;
optional = { optional = {
gaming = lib.mkDefault true; gaming = lib.mkDefault true;
uni = lib.mkDefault true;
}; };
}; };
}; };
@ -18872,33 +18782,12 @@ in
} }
</pre>
</div>
</div>
</div>
<div id="outline-container-h:56f509b9-3271-4212-b5ea-482dbe288bda" class="outline-5">
<h5 id="h:56f509b9-3271-4212-b5ea-482dbe288bda"><span class="section-number-5">3.6.2.7.</span> Uni</h5>
<div class="outline-text-5" id="text-h:56f509b9-3271-4212-b5ea-482dbe288bda">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }:
{
options.swarselprofiles.uni = lib.mkEnableOption "is this a uni host";
config = lib.mkIf config.swarselprofiles.uni {
swarselmodules = {
optional = {
uni = lib.mkDefault true;
};
};
};
}
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-h:712b9d7f-16c0-42b3-b02b-6d79ee15cfcc" class="outline-5"> <div id="outline-container-h:712b9d7f-16c0-42b3-b02b-6d79ee15cfcc" class="outline-5">
<h5 id="h:712b9d7f-16c0-42b3-b02b-6d79ee15cfcc"><span class="section-number-5">3.6.2.8.</span> Framework</h5> <h5 id="h:712b9d7f-16c0-42b3-b02b-6d79ee15cfcc"><span class="section-number-5">3.6.2.7.</span> Framework</h5>
<div class="outline-text-5" id="text-h:712b9d7f-16c0-42b3-b02b-6d79ee15cfcc"> <div class="outline-text-5" id="text-h:712b9d7f-16c0-42b3-b02b-6d79ee15cfcc">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }: <pre class="src src-nix-ts">{ lib, config, ... }:
@ -18920,7 +18809,7 @@ in
</div> </div>
</div> </div>
<div id="outline-container-h:8027b858-369e-4f12-bbaf-f15eeee3d904" class="outline-5"> <div id="outline-container-h:8027b858-369e-4f12-bbaf-f15eeee3d904" class="outline-5">
<h5 id="h:8027b858-369e-4f12-bbaf-f15eeee3d904"><span class="section-number-5">3.6.2.9.</span> Local Server</h5> <h5 id="h:8027b858-369e-4f12-bbaf-f15eeee3d904"><span class="section-number-5">3.6.2.8.</span> Local Server</h5>
<div class="outline-text-5" id="text-h:8027b858-369e-4f12-bbaf-f15eeee3d904"> <div class="outline-text-5" id="text-h:8027b858-369e-4f12-bbaf-f15eeee3d904">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }: <pre class="src src-nix-ts">{ lib, config, ... }:
@ -22539,9 +22428,9 @@ This sets up the <code>dashboard</code>, which is really quite useless. But, it
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-h:5322b631-a108-49a0-b95a-b61a70070dd9" class="outline-4"> <div id="outline-container-org9515b19" class="outline-4">
<h4 id="h:5322b631-a108-49a0-b95a-b61a70070dd9"><span class="section-number-4">4.4.45.</span> Popup frames</h4> <h4 id="org9515b19"><span class="section-number-4">4.4.45.</span> Popup frames</h4>
<div class="outline-text-4" id="text-h:5322b631-a108-49a0-b95a-b61a70070dd9"> <div class="outline-text-4" id="text-4-4-45">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-emacs-lisp">(defun prot-window-delete-popup-frame (&amp;rest _) <pre class="src src-emacs-lisp">(defun prot-window-delete-popup-frame (&amp;rest _)
"Kill selected selected frame if it has parameter `prot-window-popup-frame'. "Kill selected selected frame if it has parameter `prot-window-popup-frame'.
@ -25572,7 +25461,7 @@ similarly, there exists an version that starts from the right.
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Leon Schwarzäugl</p> <p class="author">Author: Leon Schwarzäugl</p>
<p class="date">Created: 2025-08-10 So 11:35</p> <p class="date">Created: 2025-08-09 Sa 14:31</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p> <p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>
</body> </body>

View file

@ -77,7 +77,7 @@
libreoffice-qt libreoffice-qt
xournalpp xournalpp
obsidian obsidian
# 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 spotify-player

View file

@ -1,22 +0,0 @@
{ inputs, lib, config, pkgs, ... }:
let
moduleName = "spicetify";
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.system};
in
{
options.swarselmodules.${moduleName} = lib.mkEnableOption "${moduleName} settings";
config = lib.mkIf config.swarselmodules.${moduleName} {
programs.spicetify = {
enable = true;
spotifyPackage = pkgs.stable24_11.spotify;
enabledExtensions = with spicePkgs.extensions; [
fullAppDisplay
shuffle
hidePodcasts
fullAlbumDate
skipStats
history
];
};
};
}

View file

@ -1,24 +0,0 @@
{ config, lib, nixosConfig ? config, ... }:
{
options.swarselmodules.optional.uni = lib.mkEnableOption "optional uni settings";
config = lib.mkIf config.swarselmodules.optional.uni
{
swarselservices.pizauth = {
enable = true;
accounts = {
uni = {
authUri = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize";
tokenUri = "https://login.microsoftonline.com/common/oauth2/v2.0/token";
clientId = "08162f7c-0fd2-4200-a84a-f25a4db0b584";
clientSecret = "TxRBilcHdC6WGBee]fs?QR:SJ8nI[g82";
scopes = [
"https://outlook.office365.com/IMAP.AccessAsUser.All"
"https://outlook.office365.com/SMTP.Send"
"offline_access"
];
loginHint = "${nixosConfig.repo.secrets.local.uni.mailAddress}";
};
};
};
};
}

View file

@ -18,8 +18,26 @@ in
stable.prometheus.cli stable.prometheus.cli
tigervnc tigervnc
openstackclient openstackclient
pizauth
]; ];
systemd.user.services.pizauth = {
Unit = {
Description = "Pizauth OAuth2 token manager";
};
Service = {
Type = "simple";
ExecStart = "${pkgs.pizauth}/bin/pizauth server -vvvv -d";
ExecReload = "${pkgs.pizauth}/bin/pizauth reload";
ExecStop = "${pkgs.pizauth}/bin/pizauth shutdown";
};
Install = {
WantedBy = [ "default.target" ];
};
};
home.sessionVariables = { home.sessionVariables = {
DOCUMENT_DIR_PRIV = lib.mkForce "${homeDir}/Documents/Private"; DOCUMENT_DIR_PRIV = lib.mkForce "${homeDir}/Documents/Private";
DOCUMENT_DIR_WORK = lib.mkForce "${homeDir}/Documents/Work"; DOCUMENT_DIR_WORK = lib.mkForce "${homeDir}/Documents/Work";
@ -353,30 +371,28 @@ in
}; };
}; };
swarselservices.pizauth = {
enable = true;
accounts = {
work = {
authUri = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize";
tokenUri = "https://login.microsoftonline.com/common/oauth2/v2.0/token";
clientId = "08162f7c-0fd2-4200-a84a-f25a4db0b584";
clientSecret = "TxRBilcHdC6WGBee]fs?QR:SJ8nI[g82";
scopes = [
"https://outlook.office365.com/IMAP.AccessAsUser.All"
"https://outlook.office365.com/SMTP.Send"
"offline_access"
];
loginHint = "${nixosConfig.repo.secrets.local.work.mailAddress}";
};
};
};
xdg = xdg =
let let
inherit (nixosConfig.repo.secrets.local.work) user1 user2 user3; inherit (nixosConfig.repo.secrets.local.work) user1 user2 user3;
in in
{ {
configFile."pizauth.conf".text = ''
account "work" {
auth_uri = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize";
token_uri = "https://login.microsoftonline.com/common/oauth2/v2.0/token";
client_id = "08162f7c-0fd2-4200-a84a-f25a4db0b584";
client_secret = "TxRBilcHdC6WGBee]fs?QR:SJ8nI[g82";
scopes = [
"https://outlook.office365.com/IMAP.AccessAsUser.All",
"https://outlook.office365.com/SMTP.Send",
"offline_access"
];
// You don't have to specify login_hint, but it does make
// authentication a little easier.
login_hint = "${nixosConfig.repo.secrets.local.work.mailAddress}";
}
'';
mimeApps = { mimeApps = {
defaultApplications = { defaultApplications = {
"x-scheme-handler/msteams" = [ "teams-for-linux.desktop" ]; "x-scheme-handler/msteams" = [ "teams-for-linux.desktop" ];

View file

@ -9,8 +9,7 @@
users.${config.swarselsystems.mainUser}.imports = [ users.${config.swarselsystems.mainUser}.imports = [
inputs.nix-index-database.homeModules.nix-index inputs.nix-index-database.homeModules.nix-index
inputs.sops-nix.homeManagerModules.sops inputs.sops-nix.homeManagerModules.sops
inputs.spicetify-nix.homeManagerModules.default # inputs.stylix.homeModules.stylix
inputs.swarsel-modules.homeModules.default
{ {
imports = [ imports = [
"${self}/profiles/home" "${self}/profiles/home"

View file

@ -48,7 +48,6 @@
emacs.enable = false; emacs.enable = false;
waybar.enable = false; waybar.enable = false;
sway.useWallpaper = false; sway.useWallpaper = false;
spicetify.enable = true;
firefox.profileNames = [ "default" ]; firefox.profileNames = [ "default" ];
}; };

View file

@ -18,7 +18,6 @@
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
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
"${self}/hosts/nixos/${configName}" "${self}/hosts/nixos/${configName}"
"${self}/profiles/nixos" "${self}/profiles/nixos"
"${self}/modules/nixos" "${self}/modules/nixos"

View file

@ -40,11 +40,9 @@
kanshi = lib.mkDefault true; kanshi = lib.mkDefault true;
gpgagent = lib.mkDefault true; gpgagent = lib.mkDefault true;
gammastep = lib.mkDefault true; gammastep = lib.mkDefault true;
spicetify = lib.mkDefault true;
optional = { optional = {
gaming = lib.mkDefault true; gaming = lib.mkDefault true;
uni = lib.mkDefault true;
}; };
}; };
}; };

View file

@ -1,12 +0,0 @@
{ lib, config, ... }:
{
options.swarselprofiles.uni = lib.mkEnableOption "is this a uni host";
config = lib.mkIf config.swarselprofiles.uni {
swarselmodules = {
optional = {
uni = lib.mkDefault true;
};
};
};
}

View file

@ -1,18 +0,0 @@
{ lib, config, ... }:
{
options.swarselprofiles.uni = lib.mkEnableOption "is this a uni host";
config = lib.mkIf config.swarselprofiles.uni {
# swarselmodules = {
# optional = {
# uni = lib.mkDefault true;
# };
# };
home-manager.users."${config.swarselsystems.mainUser}" = {
swarselprofiles = {
uni = lib.mkDefault true;
};
};
};
}