dot

vizie's NixOS desktop: Hyprland, CachyOS kernel and gaming tweaks

94 lines2805 bytesNix
1{
2 description = "vizie's NixOS desktop: Hyprland, CachyOS kernel and gaming tweaks";
3
4 inputs = {
5 nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
6
7 # Signal 8.31.0, from a master commit (already in cache.nixos.org). CachyOS
8 # ran 8.31.0, and Signal won't open a database a newer version has written.
9 # Only used while nixos-unstable's Signal is older (pkgs/default.nix).
10 nixpkgs-signal.url = "github:NixOS/nixpkgs/70ae5c224b56eaeadf74327811fd59b1470defbe";
11
12 home-manager = {
13 url = "github:nix-community/home-manager";
14 inputs.nixpkgs.follows = "nixpkgs";
15 };
16
17 # Partitions and formats the drive at install time (hosts/desktop/disko.nix).
18 disko = {
19 url = "github:nix-community/disko/latest";
20 inputs.nixpkgs.follows = "nixpkgs";
21 };
22
23 # CachyOS kernels. Its nixpkgs input is left alone on purpose: the kernel
24 # stays the exact build upstream tests (it compiles locally, as its binary
25 # cache isn't used).
26 nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release";
27
28 imsh-clients = {
29 url = "github:echozio/imsh-clients";
30 inputs.nixpkgs.follows = "nixpkgs";
31 };
32
33 # Private repo: fetched with git so the gh credential helper can sign in.
34 philly = {
35 url = "git+https://github.com/Eiziv/philly?ref=master";
36 inputs.nixpkgs.follows = "nixpkgs";
37 };
38 };
39
40 outputs =
41 { self, nixpkgs, ... }@inputs:
42 let
43 system = "x86_64-linux";
44 pkgs = import nixpkgs {
45 inherit system;
46 config.allowUnfree = true;
47 overlays = [ self.overlays.default ];
48 };
49 in
50 {
51 overlays.default = import ./pkgs inputs;
52
53 # The packages this repo adds or patches, so each can be built on its own:
54 # nix build .#waybar
55 packages.${system} = {
56 inherit (pkgs)
57 waybar
58 xembedsniproxy
59 signal-desktop-themed
60 claude-desktop
61 opendeck
62 breezex-cursor
63 proton-cachyos
64 python3-desktop
65 ;
66 };
67
68 nixosConfigurations.desktop = nixpkgs.lib.nixosSystem {
69 inherit system;
70 specialArgs = { inherit inputs; };
71 modules = [ ./hosts/desktop ];
72 };
73
74 # Tools for working on this repo, here and on the MacBook:
75 # nix develop
76 devShells = nixpkgs.lib.genAttrs [ "x86_64-linux" "aarch64-darwin" ] (
77 shellSystem:
78 let
79 shellPkgs = nixpkgs.legacyPackages.${shellSystem};
80 in
81 {
82 default = shellPkgs.mkShellNoCC {
83 packages = [
84 # Installs the desktop over SSH (MIGRATION.md).
85 shellPkgs.nixos-anywhere
86 shellPkgs.nixfmt
87 ];
88 };
89 }
90 );
91
92 formatter.${system} = pkgs.nixfmt;
93 };
94}