Compare commits

..

5 Commits

Author SHA1 Message Date
7951c777cb nixos/sfh: Disable unifi
All checks were successful
CI / Check, build and cache nixfiles (push) Successful in 1h13m56s
2025-12-06 21:59:34 +00:00
b031840f81 nixos/object: Fix harmonia
Some checks failed
CI / Check, build and cache nixfiles (push) Failing after 3h13m40s
2025-12-06 15:39:47 +00:00
45861bef08 "Release" 25.11 Hooray 2025-12-06 15:18:36 +00:00
4433395125 nixos/chatterbox: Restore old WhatsApp display name template
Some checks failed
CI / Check, build and cache nixfiles (push) Failing after 19s
2025-12-04 10:06:06 +00:00
3306aaab5e nixos/chatterbox: Upgrade mautrix bridges to v25.11 2025-12-04 10:06:06 +00:00
18 changed files with 333 additions and 174 deletions

207
flake.lock generated
View File

@@ -11,11 +11,11 @@
"systems": "systems_6" "systems": "systems_6"
}, },
"locked": { "locked": {
"lastModified": 1723293904, "lastModified": 1761656077,
"narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=", "narHash": "sha256-lsNWuj4Z+pE7s0bd2OKicOFq9bK86JE0ZGeKJbNqb94=",
"owner": "ryantm", "owner": "ryantm",
"repo": "agenix", "repo": "agenix",
"rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41", "rev": "9ba0d85de3eaa7afeab493fed622008b6e4924f5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -75,11 +75,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1757362872, "lastModified": 1764708670,
"narHash": "sha256-juUSWjxX8y2gueU34BpkQipUlhZRFJNLFccdprle0iM=", "narHash": "sha256-Gdo9lD6JwXGMVFJ8ZHCENcxXg30SG72kwsHnxPDCscI=",
"owner": "9001", "owner": "9001",
"repo": "copyparty", "repo": "copyparty",
"rev": "e09f3c9e2c3dccf8f3912539e04dd840b10b51ee", "rev": "29925dc22b1f6810768d0af25d9c35ee35d88aa7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -90,11 +90,26 @@
}, },
"crane": { "crane": {
"locked": { "locked": {
"lastModified": 1725409566, "lastModified": 1763938834,
"narHash": "sha256-PrtLmqhM6UtJP7v7IGyzjBFhbG4eOAHT6LPYOFmYfbk=", "narHash": "sha256-j8iB0Yr4zAvQLueCZ5abxfk6fnG/SJ5JnGUziETjwfg=",
"owner": "ipetkov", "owner": "ipetkov",
"repo": "crane", "repo": "crane",
"rev": "7e4586bad4e3f8f97a9271def747cf58c4b68f3c", "rev": "d9e753122e51cee64eb8d2dddfe11148f339f5a2",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"crane_2": {
"locked": {
"lastModified": 1760924934,
"narHash": "sha256-tuuqY5aU7cUkR71sO2TraVKK2boYrdW3gCSXUkF4i44=",
"owner": "ipetkov",
"repo": "crane",
"rev": "c6b4d5308293d0d04fcfeee92705017537cad02f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -112,11 +127,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1700795494, "lastModified": 1744478979,
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=", "narHash": "sha256-dyN+teG9G82G+m+PX/aSAagkC+vUv0SgUw3XkPhQodQ=",
"owner": "lnl7", "owner": "lnl7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d", "rev": "43975d782b418ebf4969e9ccba82466728c2851b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -135,11 +150,11 @@
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
"lastModified": 1756719547, "lastModified": 1762286984,
"narHash": "sha256-N9gBKUmjwRKPxAafXEk1EGadfk2qDZPBQp4vXWPHINQ=", "narHash": "sha256-9I2H9x5We6Pl+DBYHjR1s3UT8wgwcpAH03kn9CqtdQc=",
"owner": "serokell", "owner": "serokell",
"repo": "deploy-rs", "repo": "deploy-rs",
"rev": "125ae9e3ecf62fb2c0fd4f2d894eb971f1ecaed2", "rev": "9c870f63e28ec1e83305f7f6cb73c941e699f74f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -212,11 +227,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1741473158, "lastModified": 1764011051,
"narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=", "narHash": "sha256-M7SZyPZiqZUR/EiiBJnmyUbOi5oE/03tCeFrTiUZchI=",
"owner": "numtide", "owner": "numtide",
"repo": "devshell", "repo": "devshell",
"rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0", "rev": "17ed8d9744ebe70424659b0ef74ad6d41fc87071",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -241,6 +256,27 @@
"type": "github" "type": "github"
} }
}, },
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"harmonia",
"nixpkgs"
]
},
"locked": {
"lastModified": 1763759067,
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": { "flake-utils": {
"inputs": { "inputs": {
"systems": "systems" "systems": "systems"
@@ -396,11 +432,11 @@
"systems": "systems_7" "systems": "systems_7"
}, },
"locked": { "locked": {
"lastModified": 1710146030, "lastModified": 1731533236,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -427,6 +463,31 @@
"type": "github" "type": "github"
} }
}, },
"harmonia": {
"inputs": {
"crane": "crane",
"flake-parts": "flake-parts",
"nix": "nix",
"nixpkgs": [
"nixpkgs-unstable"
],
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1765032623,
"narHash": "sha256-BbtN5NFN2RU3KP2TLA6zOoiv5MZXWqN1mXxIkKY8Kx4=",
"owner": "devplayer0",
"repo": "harmonia",
"rev": "310e2b2c6583710c52531785f1245d9621284310",
"type": "github"
},
"original": {
"owner": "devplayer0",
"ref": "cache-config-daemon-store",
"repo": "harmonia",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -436,11 +497,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1703113217, "lastModified": 1745494811,
"narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=", "narHash": "sha256-YZCh2o9Ua1n9uCvrvi5pRxtuVNml8X2a03qIFfRKpFs=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1", "rev": "abfad3d2958c9e6300a883bd443512c55dfeb1be",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -456,16 +517,16 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1756679287, "lastModified": 1764866045,
"narHash": "sha256-Xd1vOeY9ccDf5VtVK12yM0FS6qqvfUop8UQlxEB+gTQ=", "narHash": "sha256-0GsEtXV9OquDQ1VclQfP16cU5VZh7NEVIOjSH4UaJuM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "07fc025fe10487dd80f2ec694f1cd790e752d0e8", "rev": "f63d0fe9d81d36e5fc95497217a72e02b8b7bcab",
"type": "github" "type": "github"
}, },
"original": { "original": {
"id": "home-manager", "id": "home-manager",
"ref": "release-25.05", "ref": "release-25.11",
"type": "indirect" "type": "indirect"
} }
}, },
@@ -476,11 +537,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1757075491, "lastModified": 1764872372,
"narHash": "sha256-a+NMGl5tcvm+hyfSG2DlVPa8nZLpsumuRj1FfcKb2mQ=", "narHash": "sha256-uZuXRz9CzeCHsRbc2MQvKomwoX6GcFC5BUMEk3ouSFU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "f56bf065f9abedc7bc15e1f2454aa5c8edabaacf", "rev": "05a56dbf24f195c62286e3273a2671d3b4904b00",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -519,6 +580,22 @@
"type": "github" "type": "github"
} }
}, },
"nix": {
"flake": false,
"locked": {
"lastModified": 1764532838,
"narHash": "sha256-hw4J7wfqXWBCvsMVXPS4nvkcSeTXAtR5h9Ylv7a7dBA=",
"owner": "nixos",
"repo": "nix",
"rev": "8be9507a88f466dd44e6e56cd00167fa10e995b8",
"type": "github"
},
"original": {
"owner": "nixos",
"repo": "nix",
"type": "github"
}
},
"nixGL": { "nixGL": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_7", "flake-utils": "flake-utils_7",
@@ -527,11 +604,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1752054764, "lastModified": 1762090880,
"narHash": "sha256-Ob/HuUhANoDs+nvYqyTKrkcPXf4ZgXoqMTQoCK0RFgQ=", "narHash": "sha256-fbRQzIGPkjZa83MowjbD2ALaJf9y6KMDdJBQMKFeY/8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixGL", "repo": "nixGL",
"rev": "a8e1ce7d49a149ed70df676785b07f63288f53c5", "rev": "b6105297e6f0cd041670c3e8628394d4ee247ed5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -558,11 +635,11 @@
}, },
"nixpkgs-mine": { "nixpkgs-mine": {
"locked": { "locked": {
"lastModified": 1757173087, "lastModified": 1765034197,
"narHash": "sha256-NYXuC8xUUbvtwbaC1aLdpQKHzQtQ2XB3VkK0hfYTPd8=", "narHash": "sha256-SioIdjObnBC/N78okBChJpcfNns3qLsyXrMaBLx6uio=",
"owner": "devplayer0", "owner": "devplayer0",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "06e4c8cd503ed73806744b39368393df38b36bb7", "rev": "96f12e0722c76b4113f8bd4c4fd18532b35d5a7f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -574,11 +651,11 @@
}, },
"nixpkgs-mine-stable": { "nixpkgs-mine-stable": {
"locked": { "locked": {
"lastModified": 1757173155, "lastModified": 1765034227,
"narHash": "sha256-aDNAiQQsrgS/coVOqLbtILpOUouE6jp/wqAsO8Dta/o=", "narHash": "sha256-5yQGE8/IvyHV1xQsESjhQumSzPcAmeLXFCY6ZdGDpek=",
"owner": "devplayer0", "owner": "devplayer0",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "8a1a03f2d17918a6d51746371031a8fe4014c549", "rev": "c07d5abb1e18828369dabbda975b7374d39347c0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -590,26 +667,26 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1757020766, "lastModified": 1764677808,
"narHash": "sha256-PLoSjHRa2bUbi1x9HoXgTx2AiuzNXs54c8omhadyvp0=", "narHash": "sha256-H3lC7knbXOBrHI9hITQ7modLuX20mYJVhZORL5ioms0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "fe83bbdde2ccdc2cb9573aa846abe8363f79a97a", "rev": "1aab89277eb2d87823d5b69bae631a2496cff57a",
"type": "github" "type": "github"
}, },
"original": { "original": {
"id": "nixpkgs", "id": "nixpkgs",
"ref": "nixos-25.05", "ref": "nixos-25.11",
"type": "indirect" "type": "indirect"
} }
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1756787288, "lastModified": 1764667669,
"narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=", "narHash": "sha256-7WUCZfmqLAssbDqwg9cUDAXrSoXN79eEEq17qhTNM/Y=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1", "rev": "418468ac9527e799809c900eda37cbff999199b6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -704,7 +781,7 @@
"ragenix": { "ragenix": {
"inputs": { "inputs": {
"agenix": "agenix", "agenix": "agenix",
"crane": "crane", "crane": "crane_2",
"flake-utils": "flake-utils_8", "flake-utils": "flake-utils_8",
"nixpkgs": [ "nixpkgs": [
"nixpkgs-unstable" "nixpkgs-unstable"
@@ -712,11 +789,11 @@
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1731774781, "lastModified": 1764843533,
"narHash": "sha256-vwsUUYOIs8J6weeSK1n1mbZf8fgvygGUMsadx0JmG70=", "narHash": "sha256-ovPNJh3Yws59Z8QHXAK+JkoftpdsUh1Ifxu2k+A/xxM=",
"owner": "devplayer0", "owner": "devplayer0",
"repo": "ragenix", "repo": "ragenix",
"rev": "ec4115da7b67c783b1091811e17dbcba50edd1c6", "rev": "e1a7bce819be6966ff369b7c0100c2713f8a9b32",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -734,6 +811,7 @@
"deploy-rs": "deploy-rs", "deploy-rs": "deploy-rs",
"devshell": "devshell_3", "devshell": "devshell_3",
"flake-utils": "flake-utils_6", "flake-utils": "flake-utils_6",
"harmonia": "harmonia",
"home-manager-stable": "home-manager-stable", "home-manager-stable": "home-manager-stable",
"home-manager-unstable": "home-manager-unstable", "home-manager-unstable": "home-manager-unstable",
"impermanence": "impermanence", "impermanence": "impermanence",
@@ -755,11 +833,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1725675754, "lastModified": 1761791894,
"narHash": "sha256-hXW3csqePOcF2e/PYnpXj72KEYyNj2HzTrVNmS/F7Ug=", "narHash": "sha256-myRIDh+PxaREz+z9LzbqBJF+SnTFJwkthKDX9zMyddY=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "8cc45e678e914a16c8e224c3237fb07cf21e5e54", "rev": "59c45eb69d9222a4362673141e00ff77842cd219",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -945,6 +1023,27 @@
"type": "github" "type": "github"
} }
}, },
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"harmonia",
"nixpkgs"
]
},
"locked": {
"lastModified": 1761311587,
"narHash": "sha256-Msq86cR5SjozQGCnC6H8C+0cD4rnx91BPltZ9KK613Y=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "2eddae033e4e74bf581c2d1dfa101f9033dbd2dc",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"utils": { "utils": {
"inputs": { "inputs": {
"systems": "systems_3" "systems": "systems_3"

View File

@@ -12,13 +12,13 @@
devshell.inputs.nixpkgs.follows = "nixpkgs-unstable"; devshell.inputs.nixpkgs.follows = "nixpkgs-unstable";
nixpkgs-unstable.url = "nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
nixpkgs-stable.url = "nixpkgs/nixos-25.05"; nixpkgs-stable.url = "nixpkgs/nixos-25.11";
nixpkgs-mine.url = "github:devplayer0/nixpkgs/devplayer0"; nixpkgs-mine.url = "github:devplayer0/nixpkgs/devplayer0";
nixpkgs-mine-stable.url = "github:devplayer0/nixpkgs/devplayer0-stable"; nixpkgs-mine-stable.url = "github:devplayer0/nixpkgs/devplayer0-stable";
home-manager-unstable.url = "home-manager"; home-manager-unstable.url = "home-manager";
home-manager-unstable.inputs.nixpkgs.follows = "nixpkgs-unstable"; home-manager-unstable.inputs.nixpkgs.follows = "nixpkgs-unstable";
home-manager-stable.url = "home-manager/release-25.05"; home-manager-stable.url = "home-manager/release-25.11";
home-manager-stable.inputs.nixpkgs.follows = "nixpkgs-stable"; home-manager-stable.inputs.nixpkgs.follows = "nixpkgs-stable";
# Stuff used by the flake for build / deployment # Stuff used by the flake for build / deployment
@@ -34,6 +34,9 @@
boardie.inputs.nixpkgs.follows = "nixpkgs-unstable"; boardie.inputs.nixpkgs.follows = "nixpkgs-unstable";
nixGL.url = "github:nix-community/nixGL"; nixGL.url = "github:nix-community/nixGL";
nixGL.inputs.nixpkgs.follows = "nixpkgs-unstable"; nixGL.inputs.nixpkgs.follows = "nixpkgs-unstable";
# harmonia.url = "github:nix-community/harmonia";
harmonia.url = "github:devplayer0/harmonia/cache-config-daemon-store";
harmonia.inputs.nixpkgs.follows = "nixpkgs-unstable";
# Packages not in nixpkgs # Packages not in nixpkgs
sharry.url = "github:eikek/sharry"; sharry.url = "github:eikek/sharry";

View File

@@ -132,8 +132,7 @@ in
ssh = { ssh = {
enable = mkDefault true; enable = mkDefault true;
# TODO: Set after 25.11 releases enableDefaultConfig = false;
# enableDefaultConfig = false;
matchBlocks = { matchBlocks = {
nix-dev-vm = { nix-dev-vm = {
user = "dev"; user = "dev";
@@ -159,13 +158,14 @@ in
host = "cube spoon napalm gandalf saruman"; host = "cube spoon napalm gandalf saruman";
user = "root"; user = "root";
}; };
"*" = {
identityFile = [
"~/.ssh/id_rsa"
"~/.ssh/borg"
];
};
}; };
extraConfig =
''
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/netsoc
IdentityFile ~/.ssh/borg
'';
}; };
direnv = { direnv = {

View File

@@ -63,7 +63,7 @@ in
font.package font.package
nerd-fonts.sauce-code-pro nerd-fonts.sauce-code-pro
nerd-fonts.droid-sans-mono nerd-fonts.droid-sans-mono
noto-fonts-emoji noto-fonts-color-emoji
grim grim
slurp slurp
@@ -420,24 +420,24 @@ in
programs = { programs = {
git = { git = {
enable = true; enable = true;
diff-so-fancy.enable = true; settings = {
userEmail = "jackos1998@gmail.com"; user = {
userName = "Jack O'Sullivan"; email = "jackos1998@gmail.com";
lfs.enable = true; name = "Jack O'Sullivan";
extraConfig = { };
pull.rebase = true; pull.rebase = true;
}; };
lfs.enable = true;
}; };
diff-so-fancy.enable = true;
waybar = import ./waybar.nix { inherit lib pkgs config font; }; waybar = import ./waybar.nix { inherit lib pkgs config font; };
rofi = { rofi = {
package = pkgs.rofi-wayland;
enable = true; enable = true;
font = "${font.name} ${toString font.size}"; font = "${font.name} ${toString font.size}";
plugins = with pkgs; (map (p: p.override { rofi-unwrapped = rofi-wayland-unwrapped; }) [ plugins = with pkgs; [
rofi-calc rofi-calc
]) ++ [ rofi-emoji
rofi-emoji-wayland
]; ];
extraConfig = { extraConfig = {
modes = "window,run,ssh,filebrowser,calc,emoji"; modes = "window,run,ssh,filebrowser,calc,emoji";

View File

@@ -30,7 +30,7 @@ rec {
kernel = { kernel = {
lts = pkgs: pkgs.linuxKernel.packages.linux_6_12; lts = pkgs: pkgs.linuxKernel.packages.linux_6_12;
latest = pkgs: pkgs.linuxKernel.packages.linux_6_16; latest = pkgs: pkgs.linuxKernel.packages.linux_6_17;
}; };
nginx = rec { nginx = rec {

View File

@@ -248,8 +248,8 @@ rec {
in in
{ {
trivial = prev.trivial // { trivial = prev.trivial // {
release = "25.09:u-${prev.trivial.release}"; release = "25.11:u-${prev.trivial.release}";
codeName = "Giving"; codeName = "Hooray";
revisionWithDefault = default: self.rev or default; revisionWithDefault = default: self.rev or default;
versionSuffix = ".${date}.${revCode self}:u-${revCode pkgsFlake}"; versionSuffix = ".${date}.${revCode self}:u-${revCode pkgsFlake}";
}; };

View File

@@ -198,44 +198,70 @@ in
mautrix-whatsapp = { mautrix-whatsapp = {
enable = true; enable = true;
package = pkgs.mautrix-whatsapp.overrideAttrs (o: {
# TODO: Remove when upgrading nixpkgs
src = pkgs.fetchFromGitHub {
owner = "mautrix";
repo = "whatsapp";
tag = "v0.2511.0";
hash = "sha256-0Jpod9/mZ9eGFvPxki6Yz0KL1XQ4HTtZ7Zv7WvamuC0=";
};
vendorHash = "sha256-n25j2uM3e5/5PYs2jwH+iclaU/p/MhctCAhPninz2HI=";
});
environmentFile = config.age.secrets."chatterbox/mautrix-whatsapp.env".path; environmentFile = config.age.secrets."chatterbox/mautrix-whatsapp.env".path;
settings = { settings = {
database = {
type = "postgres";
uri = "$MAU_WAPP_PSQL_URI";
};
homeserver = { homeserver = {
address = "http://localhost:8008"; address = "http://localhost:8008";
domain = "nul.ie"; domain = "nul.ie";
}; };
appservice = { appservice = {
database = {
type = "postgres";
uri = "$MAU_WAPP_PSQL_URI";
};
id = "whatsapp2"; id = "whatsapp2";
bot = { bot = {
username = "whatsapp2"; username = "whatsapp2";
displayname = "WhatsApp Bridge Bot"; displayname = "WhatsApp Bridge Bot";
}; };
username_template = "wapp2_{{.}}";
}; };
bridge = { bridge = {
username_template = "wapp2_{{.}}";
displayname_template = "{{or .BusinessName .PushName .JID}} (WA)";
personal_filtering_spaces = true; personal_filtering_spaces = true;
delivery_receipts = true;
allow_user_invite = true;
url_previews = true;
command_prefix = "!wa"; command_prefix = "!wa";
login_shared_secret_map."nul.ie" = "$MAU_WAPP_DOUBLE_PUPPET_TOKEN";
encryption = {
allow = true;
default = true;
require = true;
};
permissions = { permissions = {
"@dev:nul.ie" = "admin"; "@dev:nul.ie" = "admin";
}; };
}; };
double_puppet = {
secrets."nul.ie" = "$MAU_WAPP_DOUBLE_PUPPET_TOKEN";
};
encryption = {
allow = true;
default = true;
require = true;
pickle_key = "maunium.net/go/mautrix-whatsapp";
};
matrix = {
delivery_receipts = true;
};
network = {
displayname_template = ''{{or .BusinessName .PushName .FullName .Phone "Unknown user"}} (WA)'';
url_previews = true;
};
}; };
}; };
# TODO: Remove when upgrading nixpkgs
mautrix-meta.package = pkgs.mautrix-meta.overrideAttrs (o: {
src = pkgs.fetchFromGitHub {
owner = "mautrix";
repo = "meta";
rev = "v0.2511.0";
hash = "sha256-Ke5b1Q1QIB2u5fbDmhvwe/HaZX1oycNSIor/9gdmdWA=";
};
vendorHash = "sha256-vbXV9xa0Q+Sml21QQZ3YUmPzXgrIZRJx0tQx0O4JcHs=";
});
mautrix-meta.instances = { mautrix-meta.instances = {
messenger = { messenger = {
enable = true; enable = true;
@@ -243,44 +269,48 @@ in
dataDir = "mautrix-messenger"; dataDir = "mautrix-messenger";
environmentFile = config.age.secrets."chatterbox/mautrix-messenger.env".path; environmentFile = config.age.secrets."chatterbox/mautrix-messenger.env".path;
settings = { settings = {
database = {
type = "postgres";
uri = "$MAU_FBM_PSQL_URI";
};
homeserver = { homeserver = {
address = "http://localhost:8008"; address = "http://localhost:8008";
domain = "nul.ie"; domain = "nul.ie";
}; };
appservice = { appservice = {
database = {
type = "postgres";
uri = "$MAU_FBM_PSQL_URI";
};
id = "fbm2"; id = "fbm2";
bot = { bot = {
username = "messenger2"; username = "messenger2";
displayname = "Messenger Bridge Bot"; displayname = "Messenger Bridge Bot";
avatar = "mxc://maunium.net/ygtkteZsXnGJLJHRchUwYWak"; avatar = "mxc://maunium.net/ygtkteZsXnGJLJHRchUwYWak";
}; };
username_template = "fbm2_{{.}}";
}; };
network = { network = {
mode = "messenger"; mode = "messenger";
displayname_template = ''{{or .DisplayName .Username "Unknown user"}} (FBM)''; displayname_template = ''{{or .DisplayName .Username "Unknown user"}} (FBM)'';
}; };
bridge = { bridge = {
username_template = "fbm2_{{.}}";
personal_filtering_spaces = true; personal_filtering_spaces = true;
delivery_receipts = true; # management_room_text.welcome = "Hello, I'm a Messenger bridge bot.";
management_room_text.welcome = "Hello, I'm a Messenger bridge bot.";
command_prefix = "!fbm"; command_prefix = "!fbm";
login_shared_secret_map."nul.ie" = "$MAU_FBM_DOUBLE_PUPPET_TOKEN";
backfill = { backfill = {
history_fetch_pages = 5; enabled = true;
};
permissions = {
"@dev:nul.ie" = "admin";
};
};
double_puppet = {
secrets."nul.ie" = "$MAU_FBM_DOUBLE_PUPPET_TOKEN";
}; };
encryption = { encryption = {
allow = true; allow = true;
default = true; default = true;
require = true; require = true;
}; };
permissions = { matrix = {
"@dev:nul.ie" = "admin"; delivery_receipts = true;
};
}; };
}; };
}; };
@@ -291,45 +321,49 @@ in
dataDir = "mautrix-instagram"; dataDir = "mautrix-instagram";
environmentFile = config.age.secrets."chatterbox/mautrix-instagram.env".path; environmentFile = config.age.secrets."chatterbox/mautrix-instagram.env".path;
settings = { settings = {
database = {
type = "postgres";
uri = "$MAU_IG_PSQL_URI";
};
homeserver = { homeserver = {
address = "http://localhost:8008"; address = "http://localhost:8008";
domain = "nul.ie"; domain = "nul.ie";
}; };
appservice = { appservice = {
database = {
type = "postgres";
uri = "$MAU_IG_PSQL_URI";
};
id = "instagram"; id = "instagram";
bot = { bot = {
username = "instagram"; username = "instagram";
displayname = "Instagram Bridge Bot"; displayname = "Instagram Bridge Bot";
avatar = "mxc://maunium.net/JxjlbZUlCPULEeHZSwleUXQv"; avatar = "mxc://maunium.net/JxjlbZUlCPULEeHZSwleUXQv";
}; };
username_template = "ig_{{.}}";
}; };
network = { network = {
mode = "instagram"; mode = "instagram";
displayname_template = ''{{or .DisplayName .Username "Unknown user"}} (IG)''; displayname_template = ''{{or .DisplayName .Username "Unknown user"}} (IG)'';
}; };
bridge = { bridge = {
username_template = "ig_{{.}}";
personal_filtering_spaces = true; personal_filtering_spaces = true;
delivery_receipts = true; # management_room_text.welcome = "Hello, I'm an Instagram bridge bot.";
management_room_text.welcome = "Hello, I'm an Instagram bridge bot.";
command_prefix = "!ig"; command_prefix = "!ig";
login_shared_secret_map."nul.ie" = "$MAU_IG_DOUBLE_PUPPET_TOKEN";
backfill = { backfill = {
history_fetch_pages = 5; enabled = true;
};
permissions = {
"@dev:nul.ie" = "admin";
"@adzerq:nul.ie" = "user";
};
};
double_puppet = {
secrets."nul.ie" = "$MAU_IG_DOUBLE_PUPPET_TOKEN";
}; };
encryption = { encryption = {
allow = true; allow = true;
default = true; default = true;
require = true; require = true;
}; };
permissions = { matrix = {
"@dev:nul.ie" = "admin"; delivery_receipts = true;
"@adzerq:nul.ie" = "user";
};
}; };
}; };
}; };

View File

@@ -114,6 +114,7 @@ in
transmission = { transmission = {
enable = true; enable = true;
package = pkgs.transmission_4;
downloadDirPermissions = null; downloadDirPermissions = null;
performanceNetParameters = true; performanceNetParameters = true;
settings = { settings = {
@@ -185,8 +186,8 @@ in
hist = "/var/cache/copyparty"; hist = "/var/cache/copyparty";
shr = "/share"; # enable share creation shr = "/share"; # enable share creation
ed = true; # enable dotfiles ed = true; # enable dotfiles
chmod-f = 664; chmod-f = "664";
chmod-d = 775; chmod-d = "775";
e2dsa = true; # file indexing e2dsa = true; # file indexing
e2t = true; # metadata indexing e2t = true; # metadata indexing
og-ua = "(Discord|Twitter|Slack)bot"; # embeds og-ua = "(Discord|Twitter|Slack)bot"; # embeds

View File

@@ -89,12 +89,17 @@ in
{ {
users = { users = {
harmonia = { harmonia = {
isSystemUser = true;
group = "harmonia";
shell = pkgs.bashInteractive; shell = pkgs.bashInteractive;
openssh.authorizedKeys.keyFiles = [ openssh.authorizedKeys.keyFiles = [
lib.my.c.sshKeyFiles.harmonia lib.my.c.sshKeyFiles.harmonia
]; ];
}; };
}; };
groups = {
harmonia = { };
};
} }
]; ];
@@ -127,13 +132,24 @@ in
}; };
} }
]; ];
harmonia = {
environment.NIX_REMOTE = "/var/lib/harmonia"; harmonia-dev = {
# environment.RUST_LOG = mkForce "trace";
# serviceConfig = {
# StateDirectory = "harmonia";
# DynamicUser = mkForce false;
# };
};
harmonia-daemon = {
# environment.RUST_LOG = mkForce "trace";
preStart = '' preStart = ''
${config.nix.package}/bin/nix store ping ${config.nix.package}/bin/nix store info --store /var/lib/harmonia
''; '';
serviceConfig = { serviceConfig = {
User = "harmonia";
Group = "harmonia";
StateDirectory = "harmonia"; StateDirectory = "harmonia";
DynamicUser = mkForce false;
}; };
}; };
}; };
@@ -235,11 +251,20 @@ in
}; };
}; };
harmonia = { harmonia-dev = {
daemon = {
enable = true;
storeDir = "/nix/store";
dbPath = "/var/lib/harmonia/nix/var/nix/db/db.sqlite";
};
cache = {
enable = true; enable = true;
signKeyPaths = [ config.age.secrets."nix-cache.key".path ]; signKeyPaths = [ config.age.secrets."nix-cache.key".path ];
settings = { settings = {
priority = 30; priority = 30;
daemon_store = "/nix/store";
real_nix_store = "/var/lib/harmonia/nix/store";
};
}; };
}; };

View File

@@ -114,7 +114,7 @@ in
}; };
containers.containersConf.settings.network = { containers.containersConf.settings.network = {
network_backend = "netavark"; network_backend = "netavark";
firewall_driver = "none"; firewall_driver = mkForce "none";
}; };
}; };

View File

@@ -1,6 +1,6 @@
{ {
imports = [ imports = [
./unifi.nix # ./unifi.nix
./hass.nix ./hass.nix
]; ];
} }

View File

@@ -29,7 +29,7 @@ in
hardware.graphics = { hardware.graphics = {
enable = true; enable = true;
extraPackages = with pkgs; [ extraPackages = with pkgs; [
vaapiIntel intel-vaapi-driver
intel-ocl intel-ocl
]; ];
}; };
@@ -89,6 +89,7 @@ in
services = { services = {
transmission = { transmission = {
enable = true; enable = true;
package = pkgs.transmission_4;
downloadDirPermissions = null; downloadDirPermissions = null;
performanceNetParameters = true; performanceNetParameters = true;
settings = { settings = {

View File

@@ -92,8 +92,8 @@ in
nextcloud = { nextcloud = {
enable = true; enable = true;
# TODO: Might need to do some bullshit to go from Nextcloud 28 (?) to 30 # TODO: Might need to do some bullshit to go from Nextcloud 28 (?) to 32
package = pkgs.nextcloud30; package = pkgs.nextcloud32;
datadir = "/mnt/storage/nextcloud"; datadir = "/mnt/storage/nextcloud";
hostName = "cloud.${domain}"; hostName = "cloud.${domain}";
https = true; https = true;

View File

@@ -9,10 +9,11 @@ in
}; };
imports = [ imports = [
inputs.impermanence.nixosModule inputs.impermanence.nixosModules.default
inputs.ragenix.nixosModules.age inputs.ragenix.nixosModules.age
inputs.sharry.nixosModules.default inputs.sharry.nixosModules.default
inputs.copyparty.nixosModules.default inputs.copyparty.nixosModules.default
inputs.harmonia.nixosModules.harmonia
]; ];
config = mkMerge [ config = mkMerge [

View File

@@ -83,7 +83,7 @@ in
gyre-fonts # TrueType substitutes for standard PostScript fonts gyre-fonts # TrueType substitutes for standard PostScript fonts
liberation_ttf liberation_ttf
unifont unifont
noto-fonts-emoji noto-fonts-color-emoji
]; ];
xdg = { xdg = {

View File

@@ -45,6 +45,11 @@ in
wait-online.enable = true; wait-online.enable = true;
}; };
settings.Manager = {
DefaultTimeoutStartSec = 20;
DefaultDeviceTimeoutSec = 20;
};
services.connect-nvme = { services.connect-nvme = {
description = "Connect NVMe-oF"; description = "Connect NVMe-oF";
before = [ "initrd-root-device.target" ]; before = [ "initrd-root-device.target" ];
@@ -60,18 +65,7 @@ in
wantedBy = [ "initrd-root-device.target" ]; wantedBy = [ "initrd-root-device.target" ];
}; };
# TODO: Remove when 25.11 releases
} // (if (lib.versionAtLeast lib.my.upstreamRelease "25.11") then {
settings.Manager = {
DefaultTimeoutStartSec = 20;
DefaultDeviceTimeoutSec = 20;
}; };
} else {
extraConfig = ''
DefaultTimeoutStartSec=20
DefaultDeviceTimeoutSec=20
'';
});
}; };
}; };
}; };

View File

@@ -1,15 +1,16 @@
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFpCM2U2USB1QUhX YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFpCM2U2USB2M2I1
dTlNY3h2SElIMytCTGlmY2syMmlTL1VMeDFnanN2UE9QK3RvRlUwCkVMM3ZKMU52 MmhzNzA5WVRBbmJGeUdPM3Vxb0hDWjdOOE9ndFh5Y3NmTGpTS3hZClRjWkJOREFK
ZmIrZ1VxUDNWZm1lU2MrWnpkUzBLcDB5cUFCSXZmQ3RXR0UKLT4gWDI1NTE5IE5W WkE4bzhXSXZKZk5Xc3RsOHlzZUNycXl2My9xVjl4UGZMVXMKLT4gWDI1NTE5IFAv
cE5uSlpRd3dIRXEyRnpSZ0VHZ253OE1ZVTd1OTJQYkZVd1NRdnh2aE0KNTFTaHJM ZnBZUnZKU1JqS3FlaTBlWTdwZG16anN5cEhyZEdJdi9UN1ZOL0VpMWMKTjlwckJn
OE9tc0VkMHFHUGN2dFZVSGFBdTh5Tzk0TGU4SWwzYTBOb3FtdwotPiB9WnwtZ3Jl Z2V6alBXNDZXNllxZ0hJU0wyeDJJTklMTjFZQXNDTnl0Zm5JVQotPiAvbWM3Ykct
YXNlIHZVYHxaIEBSbmZ9XiAhfF52YCNwCld0K0RCTFlQamNLeitWM0kwUnVJdXFV Z3JlYXNlIDt7QmkgNFllCkpEblFjRVVYZ2VlY3UwZndab1loRnJFanZGZTRDK3dD
QjNFcEYxWFBkVjJ3QlAwTGVvTE1GTkxCTEdDcmlZMC9xbUcrSHp2V3cKdzJLb011 OUJvV2VZK1hNMXlDaFNPeHVHUXVIb0QvdkpDSzdjb1oKK0txZnJLM1BJUTFqSkRU
aEM3a0V4eXBTMjhnCi0tLSBOWHozZTRjRldrOXBmM05BZ1lPRDYwaDFCcHBPNHhQ UXRjYjdiWGpJSG9iZ2QxT0tQL2JoRXh1WVRXOEc1cHB6VHVmT3RqMGs0bHFOU2Z3
SzlaWGM2RXY1THI4Cj4RzG3G1yGkmDyqxCBciqMNPAQYge4mXOib7mqOuyIbkT+k SgpJWEkKLS0tIEgzcnR1TUFWUGJBdDV1VzhRQXlkRjJtYTJIcHNZUHR2ZGlnL3h1
qrJ8fLnW7Jbnb7+Rzr7BAEC5/dpOfjkyY9JPeg0FRutlkKyPIhRMAEhSsNvUFzXg bXdTb3cKnr02hEHUj47xiPTSVgNTq6sj1Ydn1TtCnYzHpo6zJyDUHN65v97W4veN
uwNbnSBI+9Str6nTKI5c9IWT5eT/8zsKwtK1/pr39mApRY/y6NlA5X7ZRIFeku3K TOHDUT3IilO4FJ8ZvzlgW/8PzUs35IelUdpfshnRbHySqqLOmyweStoKNtgS19Jp
6I/bCI5cT0qhIMJbF5D0KiCnMCnMdmRLrwLzM2zcJoisxRAvj4dNfLktsUQOauZ+ Pxafk3IU7hcFouJRtpZS4bddZFbOC2RjHbxvzBuEwrSBBX8PF1OZTHOevyqtSbwG
Gta96qQkAewvrdfz8Z4lTYJQmEqeOs1vTA6sAMf4iLp5EhPE0jN0n6D8v7Lq7+2b 8jICfMciD/y7GdxuNqCH+uMb5x9BFrf4wOMPgvq77ydt+63JBZGU/u4mXGS7QY2v
NXYBbBKMjlvc2WJzfUp0e44a17KyQvR32lAnL3KOt8aDnWwxwEWntmw=
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----

View File

@@ -1,14 +1,14 @@
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFpCM2U2USBJbWVs YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFpCM2U2USBLTTkw
bkt4a1RBaU14cjJzRm9KUGhydnZlWGU0NGVYK0NmWXRsclpjVUU0CmNiVDJTODFw Zm90MnE4cDZCdUxldXdqZVlUS1BEbXovalA4eEpyWjZwMnZwVFVJCks0ays0Tk1E
TnloNW1LMUliVmlnUGt0SFFzWmxVTWxZQ3crNWVHVy9IL0EKLT4gWDI1NTE5IDcw NitpYXp0RjB4SVJTcmlaZytuc0cxT0FqdTk4S2ltN0J1aG8KLT4gWDI1NTE5IHdp
TUQva3UxN3o1MXJ5QmVmQWVmeTFLejVwOVdQZks3a0dVQUJTdUdZdzgKajBFK2dX c3ZqMytTb3ZGYkVXaXd6ZFZyTGdlakNqTmxMUE9QN25Ja0NvZVFEaXcKZGRlZmdM
R1NNR3l5d010MnJGUktNWldwVjY2cDIwbU1laEMwOWJITEg0NAotPiBeLS1ncmVh Z1p4MUJEYmExVytadHBzMEdlQ2lVTDBINUJZZXJhZk5rajVuTQotPiAjQUo8LWdy
c2UgJjhQIF0pcSB4Ci90SVhIZzRGVlcrd0hRCi0tLSBKdVgwZ0pidC93aEFscm9w ZWFzZSBwVHplQQo3NVdkRldZblo1c2QrN2ZLNml3dFdFdXR6QUJzLzdhL25CNUtP
Mm5GbEc3RDdZRDRpeTdONHpWN0xHYXkvVU5zCjjFfwumbetHbq8MKrBIx18YXmny QQotLS0gVEJZY2w3OU5RaXdDMVMxS1Z1WUg2TUZZS1VzdHJXbTg5S0V0MzV0eWcr
z+0ifVbksJhYLYk7hViSUDy+F3RRad23dSPvDdd7JCEpj+2PvcezBLkwfUkFdQe7 Ywr8EtlNmRhwCgSmPWhUVEadEXDBXdhMzjttm1Qk9o3yLOE4oL4fOjp3zzyZx7NT
uQhUJJ9c62oKSX7PMbQeW1tyX10SVkt/P20z6HPXvBlY715lsXspjZERi+DheZk0 8dc0l5dRSKHZsO1Q5SmrwHZ68X0K78mJHmwSr/V8meIQhDvFd/StkFQE8i4bpVh4
ZDc3dPYMeyoAIWicf40ZxH8C6rWl5HOLIaTMbCOKwpD+wPjpzeZHat605YWReFxR FjPaDUNzBb1b+S4Vc9wG2plcEhy7cJKSja/PwY6IvY37LxjkhQH6klq0283GgvgD
Yd3cKCRqSb2QdAdtZ0XUDSPl7HVwkw0xobCsvtPzmObA3YbLopBq7Dvrvh7XW5ns wcxgTbXYbAmTlfDBbv9BdfLPmFRbJdGfO2qxovijND6Z8QR0y7RWyDhywSzE5K3W
BPlTaI8WnrI03CplGP00 F3zqZs9noq3mlAnq3qxoz16lT8GbPdjKLDK0qoGlctUyAMz9Iw==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----