Compare commits

..

3 commits

Author SHA1 Message Date
a4d25df5ee
chore(nix): adopt new recommended Lix installation
Some checks failed
Test / tests (push) Failing after 46s
The Lix NixOS module is not needed anymore with this approach.
2025-09-15 21:01:26 +02:00
05b3c065f5
fix(systemdNotify): fix libnotify implementation 2025-09-15 20:50:42 +02:00
2dcb901ae1
style: reformat all nix files 2025-09-15 20:46:37 +02:00
11 changed files with 63 additions and 112 deletions

53
flake.lock generated
View file

@ -250,21 +250,6 @@
"type": "github" "type": "github"
} }
}, },
"flakey-profile": {
"locked": {
"lastModified": 1712898590,
"narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=",
"owner": "lf-",
"repo": "flakey-profile",
"rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d",
"type": "github"
},
"original": {
"owner": "lf-",
"repo": "flakey-profile",
"type": "github"
}
},
"gitignore": { "gitignore": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -328,43 +313,6 @@
"type": "github" "type": "github"
} }
}, },
"lix": {
"flake": false,
"locked": {
"lastModified": 1751235704,
"narHash": "sha256-J4ycLoXHPsoBoQtEXFCelL4xlq5pT8U9tNWNKm43+YI=",
"rev": "1d7368585eebaa2c4bdbcb88fe600cfb2239b2c6",
"type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/1d7368585eebaa2c4bdbcb88fe600cfb2239b2c6.tar.gz?rev=1d7368585eebaa2c4bdbcb88fe600cfb2239b2c6"
},
"original": {
"type": "tarball",
"url": "https://git.lix.systems/lix-project/lix/archive/release-2.93.tar.gz"
}
},
"lix-module": {
"inputs": {
"flake-utils": [
"flake-utils"
],
"flakey-profile": "flakey-profile",
"lix": "lix",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1751240025,
"narHash": "sha256-SXUAlxpjPRkArRMHy5+Hdi+PiC+ND9yzzIjiaHmTvQU=",
"rev": "8b1094356f4723d6e89d3f8a95b333ee16d9ab02",
"type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/8b1094356f4723d6e89d3f8a95b333ee16d9ab02.tar.gz?rev=8b1094356f4723d6e89d3f8a95b333ee16d9ab02"
},
"original": {
"type": "tarball",
"url": "https://git.lix.systems/lix-project/nixos-module/archive/2.93.2-1.tar.gz"
}
},
"matrix-appservices": { "matrix-appservices": {
"inputs": { "inputs": {
"devshell": "devshell", "devshell": "devshell",
@ -520,7 +468,6 @@
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"lix-module": "lix-module",
"matrix-appservices": "matrix-appservices", "matrix-appservices": "matrix-appservices",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",

View file

@ -19,12 +19,6 @@ rec {
nixos-hardware.url = "github:NixOS/nixos-hardware"; nixos-hardware.url = "github:NixOS/nixos-hardware";
lix-module = {
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.2-1.tar.gz";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-utils.follows = "flake-utils";
};
disko = { disko = {
url = "github:nix-community/disko/latest"; url = "github:nix-community/disko/latest";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";

View file

@ -21,7 +21,8 @@ let
home.username = user; home.username = user;
home.homeDirectory = "/home/${user}"; home.homeDirectory = "/home/${user}";
} }
] ++ modules; ]
++ modules;
}; };
in in
{ {

View file

@ -29,7 +29,8 @@ let
configPath = [ configPath = [
"config" "config"
"content" # due to mkIf "content" # due to mkIf
] ++ modulePath; ]
++ modulePath;
in in
lib.updateManyAttrsByPath lib.updateManyAttrsByPath
[ [

View file

@ -33,7 +33,8 @@ let
categories = [ categories = [
"Network" "Network"
"WebBrowser" "WebBrowser"
] ++ lib.optional isSecure "Security"; ]
++ lib.optional isSecure "Security";
}; };
in in
pkgs.runCommand pname { } '' pkgs.runCommand pname { } ''

View file

@ -35,7 +35,8 @@
count = 60000000; count = 60000000;
} }
]; ];
} // user; }
// user;
home-manager = { home-manager = {
useGlobalPkgs = true; useGlobalPkgs = true;

View file

@ -30,7 +30,8 @@ in
"luci-ssl" "luci-ssl"
"nextdns" "nextdns"
"tailscale" "tailscale"
] ++ packages; ]
++ packages;
# TODO set up SSH config (register public keys, disable password login, ...) # TODO set up SSH config (register public keys, disable password login, ...)
files = pkgs.runCommand "image-files" { } '' files = pkgs.runCommand "image-files" { } ''

View file

@ -85,20 +85,18 @@ in
} }
]; ];
systemd.services."notify@" = systemd.services."notify@" = {
{
onFailure = lib.mkForce [ ]; onFailure = lib.mkForce [ ];
} }
// optionalAttrs (cfg.method == "libnotify") { // optionalAttrs (cfg.method == "libnotify") {
description = "Desktop notifications for %i service failure"; description = "Desktop notifications for %i service failure";
environment = { environment = {
DBUS_SESSION_BUS_ADDRESS = "unix:path=/run/user/${ DISPLAY = ":0";
toString config.users.users.${cfg.libnotify.user}.uid
}/bus";
INSTANCE = "%i"; INSTANCE = "%i";
}; };
script = '' script = ''
${pkgs.libnotify}/bin/notify-send --urgency=critical \ export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$(id -u '${cfg.libnotify.user}')/bus"
${pkgs.libnotify}/bin/notify-send --app-name="$INSTANCE" --urgency=critical \
"Service '$INSTANCE' failed" \ "Service '$INSTANCE' failed" \
"$(journalctl -n 6 -o cat -u $INSTANCE)" "$(journalctl -n 6 -o cat -u $INSTANCE)"
''; '';

View file

@ -53,7 +53,8 @@ in
# reduce download bandwidth # reduce download bandwidth
"--max-unused 10%" "--max-unused 10%"
"--repack-cacheable-only" "--repack-cacheable-only"
] ++ extraPruneOpts; ]
++ extraPruneOpts;
} }
// (removeAttrs args [ // (removeAttrs args [
"name" "name"

View file

@ -10,15 +10,22 @@ let
inherit (inputs.self.outputs) nixConfig; inherit (inputs.self.outputs) nixConfig;
in in
{ {
imports = [
# TODO switch to lixFromNixpkgs once 2.93.2 is available
inputs.lix-module.nixosModules.default
# inputs.lix-module.nixosModules.lixFromNixpkgs
];
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
nixpkgs.overlays = [
(final: prev: {
inherit (final.lixPackageSets.stable)
nixpkgs-review
nix-direnv
nix-eval-jobs
nix-fast-build
colmena
;
})
];
nix = { nix = {
package = pkgs.lixPackageSets.stable.lix;
settings = { settings = {
trusted-users = [ "@wheel" ]; trusted-users = [ "@wheel" ];
substituters = nixConfig.extra-substituters; substituters = nixConfig.extra-substituters;

View file

@ -89,8 +89,7 @@ in
wants = [ "tailscaled.service" ]; wants = [ "tailscaled.service" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
serviceConfig.Type = "oneshot"; serviceConfig.Type = "oneshot";
script = script = ''
''
status=$(${config.systemd.package}/bin/systemctl show -P StatusText tailscaled.service) status=$(${config.systemd.package}/bin/systemctl show -P StatusText tailscaled.service)
if [[ $status != Connected* ]]; then if [[ $status != Connected* ]]; then
${cfg.package}/bin/tailscale up ${cfg.package}/bin/tailscale up