-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathflake.nix
More file actions
164 lines (139 loc) · 6.07 KB
/
Copy pathflake.nix
File metadata and controls
164 lines (139 loc) · 6.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
{
description = "Kyan's nix-darwin + home-manager configuration";
outputs =
inputs:
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
systems = [
"aarch64-darwin"
"x86_64-darwin"
"aarch64-linux"
"x86_64-linux"
];
imports = [
./flake
./modules
./systems
];
};
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-parts = {
url = "github:hercules-ci/flake-parts";
inputs.nixpkgs-lib.follows = "nixpkgs";
};
nix-darwin = {
url = "github:nix-darwin/nix-darwin";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
mac-app-util.url = "github:hraban/mac-app-util";
# No `inputs.nixpkgs.follows`: nix-homebrew is a pure nix-darwin module with
# no nixpkgs input of its own to override, so pinning it would be a no-op.
nix-homebrew = {
url = "github:zhaofengli/nix-homebrew";
};
# No `inputs.nixpkgs.follows`: the pinned FlakeHub release ships prebuilt
# binaries and declares no nixpkgs input of its own to override.
determinate.url = "https://flakehub.com/f/DeterminateSystems/determinate/3";
agenix = {
url = "github:ryantm/agenix";
inputs.nixpkgs.follows = "nixpkgs";
};
lazyvim = {
url = "github:pfassina/lazyvim-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
herdr = {
url = "github:ogulcancelik/herdr";
inputs.nixpkgs.follows = "nixpkgs";
};
# CanaryCode — our own fast, minimal terminal coding agent (Bun/TypeScript).
# Ships a flake whose package is the prebuilt per-system release binary
# (autoPatchelf'd on Linux) plus a home-manager module (programs.canarycode).
# Cross-platform: the release covers all four darwin/linux systems.
canarycode = {
url = "github:CanaryCoders/CanaryCodeCli";
inputs.nixpkgs.follows = "nixpkgs";
};
# areofyl/fetch — animated 3D fetch tool (spinning distro-logo relief +
# system info). Consumed via its home-manager module (programs.fetch);
# cross-platform since the flake covers all four darwin/linux systems.
areofyl-fetch = {
url = "github:areofyl/fetch";
inputs.nixpkgs.follows = "nixpkgs";
};
# — NixOS (g815 gaming laptop) inputs —
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
# NordVPN — laptop VPN exit only (the device mesh is Tailscale). No
# first-party nixpkgs module exists; this community flake provides the
# package + a NixOS module (services.nordvpn). No `inputs.nixpkgs.follows`:
# its package is built (with a vendored .deb FOD) against its own pinned
# nixpkgs — leave it self-contained rather than risk a mismatch.
#
# The flake consumes the NordVPN .deb as `flake = false` inputs pinned to
# 4.2.0, which NordVPN has since removed from their repo (404). Override
# both arch debs to a version still hosted so the FOD resolves.
nordvpn-flake = {
url = "github:connerohnesorge/nordvpn-flake";
inputs.nordvpn-amd64-deb.url = "file+https://repo.nordvpn.com/deb/nordvpn/debian/pool/main/n/nordvpn/nordvpn_5.1.0_amd64.deb";
inputs.nordvpn-arm64-deb.url = "file+https://repo.nordvpn.com/deb/nordvpn/debian/pool/main/n/nordvpn/nordvpn_5.1.0_arm64.deb";
};
# CachyOS kernel + scx schedulers. nyxpkgs-unstable tracks nixpkgs-unstable.
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
# Declarative Flatpak management (used for Sober, the Roblox client, which
# is only distributed as a Flatpak — not packaged in nixpkgs). No
# `inputs.nixpkgs.follows`: it's a pure NixOS/home-manager module with no
# nixpkgs input of its own to override.
nix-flatpak.url = "github:gmodena/nix-flatpak";
# Dank Material Shell (DMS) desktop shell — Quickshell/QML, official flake
# (home-manager module under homeModules.dank-material-shell). Pinned to the
# `stable` branch rather than main. Build from source following our nixpkgs
# (no cachix substituter).
dank-material-shell = {
url = "github:AvengeMedia/DankMaterialShell/stable";
inputs.nixpkgs.follows = "nixpkgs";
};
# DMS plugin registry — a flake that packages every community plugin
# (built daily) and ships a home-manager module exposing them as
# `programs.dank-material-shell.plugins.<id>.enable`. We enable a handful in
# mixins/dms.nix; each is a `fetchgit` + copy-into-$out derivation, so only
# the enabled ones are ever realised.
dms-plugin-registry = {
url = "github:AvengeMedia/dms-plugin-registry";
inputs.nixpkgs.follows = "nixpkgs";
};
# DankCalendar (dcal) — the calendar daemon behind DMS's native "dankcal"
# backend (unifies Local/Google/Microsoft/CalDAV/iCloud accounts, stores
# OAuth tokens in the keyring). Its home-manager module installs `dcal` and
# runs `dcal run --session --hidden`; DMS's calendarBackend defaults to
# "auto" and picks up the running daemon over IPC. See mixins/dankcal.nix.
dankcalendar = {
url = "github:AvengeMedia/dankcalendar";
inputs.nixpkgs.follows = "nixpkgs";
};
# niri scrollable-tiling compositor. The flake is used ONLY for its typed
# home-manager settings module (programs.niri.settings → KDL, validated
# with `niri validate` at build time); the niri binary itself comes from
# nixpkgs (26.04) — niri-flake's own niri-stable lags behind.
niri = {
url = "github:sodiboo/niri-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
# Helium browser (Chromium fork) — exposes overlays.default -> pkgs.helium.
helium = {
url = "github:schembriaiden/helium-browser-nix-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
# Zen browser (Firefox fork) — homeModules.beta + prebuilt beta packages.
zen-browser = {
url = "github:0xc000022070/zen-browser-flake";
inputs = {
nixpkgs.follows = "nixpkgs";
home-manager.follows = "home-manager";
};
};
};
}