Nix configurations for my personal machines (Linux & macOS)

Compare changes

Choose any two refs to compare.

Changed files
+126 -79
files
hosts
modules
+4 -2
files/karabiner/keybind-helpers.json
···
"description": "MacBook internal keyboard",
"vendor_id": 1452,
"product_id": 641
-
}
+
},
+
{ "is_built_in_keyboard": true }
]
}
],
···
"description": "MacBook internal keyboard",
"vendor_id": 1452,
"product_id": 641
-
}
+
},
+
{ "is_built_in_keyboard": true }
]
}
],
+32 -28
flake.lock
···
]
},
"locked": {
-
"lastModified": 1764986695,
-
"narHash": "sha256-k+4uvvt3TisTVOwyH0135ztmBiPFk61bXNKebQBGkhU=",
+
"lastModified": 1765480374,
+
"narHash": "sha256-HlbvQAqLx7WqZFFQZ8nu5UUJAVlXiV/kqKbyueA8srw=",
"owner": "nix-community",
"repo": "home-manager",
-
"rev": "ccd22c13b2200263fb59342a34bf7119a31aa363",
+
"rev": "39cb677ed9e908e90478aa9fe5f3383dfc1a63f3",
"type": "github"
},
"original": {
···
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
-
"lastModified": 1764971746,
-
"narHash": "sha256-PPwnDjR6ZjPooITfu6SWnoPsj3EV4fLrXk93U2RhjZ0=",
+
"lastModified": 1765528203,
+
"narHash": "sha256-DTs3VkvRjW/Quu7y9hzNUrddysBXbcqv5Rpo4rtQYQI=",
"owner": "sodiboo",
"repo": "niri-flake",
-
"rev": "b0ebfba3a0774cc0b3f3b9a345ebad57de04b666",
+
"rev": "8f74fd85c7b42f2d06347a9c9eaff6d4904854f3",
"type": "github"
},
"original": {
···
"niri-unstable": {
"flake": false,
"locked": {
-
"lastModified": 1764966114,
-
"narHash": "sha256-nC0Fsu4zSdabdR4tHHMCrTgqLms612eEDy5VCdQVZFk=",
+
"lastModified": 1765524373,
+
"narHash": "sha256-gi38XWhkb+H8iHhlXgv7MgUaQCuhmaTzKmq3yzYOg9g=",
"owner": "YaLTeR",
"repo": "niri",
-
"rev": "ba29735fbbd8cf8319c71ccb55b54a0580007c80",
+
"rev": "c22d8358c293f5e66748d8ac20600e6b114f9743",
"type": "github"
},
"original": {
···
]
},
"locked": {
-
"lastModified": 1764161084,
-
"narHash": "sha256-HN84sByg9FhJnojkGGDSrcjcbeioFWoNXfuyYfJ1kBE=",
-
"owner": "nix-darwin",
+
"lastModified": 1765065051,
+
"narHash": "sha256-b7W9WsvyMOkUScNxbzS45KEJp0iiqRPyJ1I3JBE+oEE=",
+
"owner": "LnL7",
"repo": "nix-darwin",
-
"rev": "e95de00a471d07435e0527ff4db092c84998698e",
+
"rev": "7e22bf538aa3e0937effcb1cee73d5f1bcc26f79",
"type": "github"
},
"original": {
···
]
},
"locked": {
-
"lastModified": 1764475780,
-
"narHash": "sha256-77jL5H5x51ksLiOUDjY0ZK8e2T4ZXLhj3ap8ETvknWI=",
+
"lastModified": 1765267181,
+
"narHash": "sha256-d3NBA9zEtBu2JFMnTBqWj7Tmi7R5OikoU2ycrdhQEws=",
"owner": "nix-community",
"repo": "nix-index-database",
-
"rev": "5a3ff8c1a09003f399f43d5742d893c0b1ab8af0",
+
"rev": "82befcf7dc77c909b0f2a09f5da910ec95c5b78f",
"type": "github"
},
"original": {
···
"nixpkgs": "nixpkgs_2"
},
"locked": {
-
"lastModified": 1764986069,
-
"narHash": "sha256-eLl4+j7Tm37XJJhYD2bTgb3x7HDfwWAr/kayb/j0TAg=",
+
"lastModified": 1765505053,
+
"narHash": "sha256-nDMsy5cVXs4iShqoLt8gCz/s1LdVxsaUFsTuSY/22rg=",
"owner": "nix-community",
"repo": "nix-vscode-extensions",
-
"rev": "999eed994566bdeffdbb1c9d4920530767e8c93e",
+
"rev": "1778f178603ed65b4e4033c64f04ea51142ad6f6",
"type": "github"
},
"original": {
···
},
"nixpkgs-stable": {
"locked": {
-
"lastModified": 1764831616,
-
"narHash": "sha256-OtzF5wBvO0jgW1WW1rQU9cMGx7zuvkF7CAVJ1ypzkxA=",
+
"lastModified": 1765311797,
+
"narHash": "sha256-mSD5Ob7a+T2RNjvPvOA1dkJHGVrNVl8ZOrAwBjKBDQo=",
"owner": "NixOS",
"repo": "nixpkgs",
-
"rev": "c97c47f2bac4fa59e2cbdeba289686ae615f8ed4",
+
"rev": "09eb77e94fa25202af8f3e81ddc7353d9970ac1b",
"type": "github"
},
"original": {
"owner": "NixOS",
+
"ref": "nixos-25.11",
"ref": "nixos-25.11",
"repo": "nixpkgs",
"type": "github"
···
},
"nixpkgs_3": {
"locked": {
-
"lastModified": 1764667669,
-
"narHash": "sha256-7WUCZfmqLAssbDqwg9cUDAXrSoXN79eEEq17qhTNM/Y=",
+
"lastModified": 1765186076,
+
"narHash": "sha256-hM20uyap1a0M9d344I692r+ik4gTMyj60cQWO+hAYP8=",
"owner": "nixos",
"repo": "nixpkgs",
-
"rev": "418468ac9527e799809c900eda37cbff999199b6",
+
"rev": "addf7cf5f383a3101ecfba091b98d0a1263dc9b8",
"type": "github"
},
"original": {
···
"xwayland-satellite-unstable": {
"flake": false,
"locked": {
-
"lastModified": 1764721075,
-
"narHash": "sha256-ChH4nq0cMEEkzkHqKlQt5Z7wxrk8ybcEHuA1YKAYmV0=",
+
"lastModified": 1765343581,
+
"narHash": "sha256-HtTPbV6z6AJPg2d0bHaJKFrnNha+SEbHvbJafKAQ614=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
-
"rev": "1b918e29b419e89910014054e8b71d54c9235ea5",
+
"rev": "f0ad674b7009a6afd80cea59d4fbf975dd68ee95",
"type": "github"
},
"original": {
···
"locked": {
"lastModified": 1764648680,
"narHash": "sha256-B/nmawJ75/951Xs9ludSxDVd/txFY+odmcbinySqMQo=",
+
"lastModified": 1764648680,
+
"narHash": "sha256-B/nmawJ75/951Xs9ludSxDVd/txFY+odmcbinySqMQo=",
"owner": "youwen5",
"repo": "zen-browser-flake",
+
"rev": "897df2f2ad4880563ce801fa29f348a4e98f0a20",
"rev": "897df2f2ad4880563ce801fa29f348a4e98f0a20",
"type": "github"
},
+16 -27
flake.nix
···
url = "github:youwen5/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
-
-
# ags = {
-
# url = "github:Aylur/ags";
-
# inputs.nixpkgs.follows = "nixpkgs";
-
# };
};
outputs = {
-
# ags,
denix,
home-manager,
lix-module,
···
self,
...
} @ inputs: let
-
system = "x86_64-linux";
-
pkgs = nixpkgs.legacyPackages.${system};
-
# agsPkgs = ags.packages.${system};
+
forSystems = fn:
+
nixpkgs.lib.genAttrs [
+
"aarch64-linux"
+
"aarch64-darwin"
+
"x86_64-darwin"
+
"x86_64-linux"
+
] (system: fn nixpkgs.legacyPackages.${system});
+
defaultForSystems = fn: forSystems (pkgs: {default = fn pkgs;});
+
mkConfigurations = moduleSystem:
denix.lib.configurations (let
homeManagerUser = "ovy";
···
specialArgs = {inherit inputs moduleSystem homeManagerUser;};
});
in {
-
packages.${system} = {
+
packages = forSystems (pkgs: {
iconifydl = pkgs.callPackage ./pkgs/iconifydl.nix {};
+
});
-
# default = ags.lib.bundle {
-
# inherit pkgs;
-
# src = ./files/astal;
-
# name = "ovy-shell";
-
# entry = "app.ts";
-
# };
-
};
-
-
# devShells.x86_64-linux.default = pkgs.mkShell {
-
# buildInputs = [agsPkgs.agsFull agsPkgs.io agsPkgs.apps agsPkgs.tray self.packages.${system}.iconifydl];
-
# };
+
devShells = defaultForSystems (pkgs:
+
pkgs.mkShell {
+
buildInputs = [pkgs.just];
+
});
nixosConfigurations = mkConfigurations "nixos";
darwinConfigurations = mkConfigurations "darwin";
···
# };
# };
-
formatter = {
-
aarch64-linux = nixpkgs.legacyPackages.aarch64-linux.alejandra;
-
aarch64-darwin = nixpkgs.legacyPackages.aarch64-darwin.alejandra;
-
x86_64-darwin = nixpkgs.legacyPackages.x86_64-darwin.alejandra;
-
x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.alejandra;
-
};
+
formatter = forSystems (pkgs: pkgs.alejandra);
};
}
+15
hosts/setsuna/default.nix
···
+
{delib, ...}:
+
delib.host {
+
name = "setsuna";
+
+
myconfig._1password.enable = false;
+
myconfig.gaming.enable = false;
+
myconfig.tray.enable = false;
+
myconfig.virtualisation.enable = false;
+
+
myconfig.programs.chromium.enable = false;
+
myconfig.programs.desktop-apps.enable = false;
+
myconfig.programs.espanso.enable = false;
+
myconfig.programs.kitty.enable = false;
+
myconfig.programs.syncthing.enable = false;
+
}
+19
hosts/setsuna/hardware.nix
···
+
{
+
delib,
+
inputs,
+
...
+
}:
+
delib.host {
+
name = "setsuna";
+
+
homeManagerSystem = "aarch64-darwin";
+
home.home.stateVersion = "26.05";
+
+
darwin = {
+
nixpkgs.hostPlatform = "aarch64-darwin";
+
# TODO: `darwin-rebuild changelog` to see what changed, latest is 6
+
system.stateVersion = 6;
+
# TODO: see what this does, i forgor
+
system.configurationRevision = inputs.self.rev or inputs.self.dirtyRev or null;
+
};
+
}
+15
justfile
···
+
[private]
+
default:
+
just --list
+
+
[linux]
+
boot:
+
sudo nixos-rebuild boot -L
+
+
[linux]
+
switch:
+
sudo nixos-rebuild switch -L
+
+
[macos]
+
switch:
+
sudo darwin-rebuild switch --flake . -L
+1
modules/darwin/homebrew.nix
···
"swiftformat-for-xcode"
"tailscale-app"
# "vorta"
+
"vesktop"
"zen"
];
+20 -19
modules/programs/desktop-cli.nix
···
{
delib,
+
lib,
pkgs,
...
}:
···
options = delib.singleEnableOption true;
-
home.ifEnabled.home.packages = with pkgs; [
-
age-plugin-yubikey
-
alejandra
-
cachix
-
claude-code
-
claude-code-router
-
fastfetch
-
hexyl
-
lazydocker
-
macchina
-
minio-client
-
mix2nix
-
minisign
-
mtr
-
nix-output-monitor
-
pgcli
-
rage
-
systemctl-tui
-
];
+
home.ifEnabled.home.packages = with pkgs;
+
[
+
age-plugin-yubikey
+
alejandra
+
cachix
+
fastfetch
+
hexyl
+
lazydocker
+
macchina
+
minio-client
+
mix2nix
+
minisign
+
mtr
+
nix-output-monitor
+
pgcli
+
rage
+
systemctl-tui
+
]
+
++ (lib.optional pkgs.stdenv.isLinux [pkgs.claude-code pkgs.claude-code-router]);
nixos.ifEnabled = {myconfig, ...}: {
programs.nh = {
+2 -2
modules/programs/fish.nix
···
owner = "PatrickF1";
repo = "fzf.fish";
rev = "8920367cf85eee5218cc25a11e209d46e2591e7a";
-
hash = "sha256-lxQZo6APemNjt2c21IL7+uY3YVs81nuaRUL7NDMcB6s=";
+
hash = "sha256-T8KYLA/r/gOKvAivKRoeqIwE2pINlxFQtZJHpOy9GMM=";
};
}
{
···
owner = "gazorby";
repo = "fifc";
rev = "a01650cd432becdc6e36feeff5e8d657bd7ee84a";
-
hash = "sha256-Nrart7WAh2VQhsDDe0EFI59TqvBO56US2MraqencxgE";
+
hash = "sha256-Ynb0Yd5EMoz7tXwqF8NNKqCGbzTZn/CwLsZRQXIAVp4=";
};
}
{
+2 -1
modules/programs/git.nix
···
git = {
sign-on-push = true;
-
push-new-bookmarks = true;
write-change-id-header = true;
};
···
key = "~/.ssh/id_ed25519_sk_rk.pub";
backends.ssh.allowed-signers = "~/.config/git/allowed_signers";
};
+
+
remotes.origin.auto-track-bookmarks = "glob:*";
};
};