dot

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

89 lines2512 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 home-manager = {
8 url = "github:nix-community/home-manager";
9 inputs.nixpkgs.follows = "nixpkgs";
10 };
11
12 # Partitions and formats the drive at install time (hosts/desktop/disko.nix).
13 disko = {
14 url = "github:nix-community/disko/latest";
15 inputs.nixpkgs.follows = "nixpkgs";
16 };
17
18 # CachyOS kernels, built by the maintainer's CI. Its nixpkgs input is left
19 # alone on purpose: overriding it changes the kernel's hash, so nothing comes
20 # from the binary cache and the kernel compiles locally.
21 nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release";
22
23 imsh-clients = {
24 url = "github:echozio/imsh-clients";
25 inputs.nixpkgs.follows = "nixpkgs";
26 };
27
28 # Private repo: fetched with git so the gh credential helper can sign in.
29 philly = {
30 url = "git+https://github.com/Eiziv/philly?ref=master";
31 inputs.nixpkgs.follows = "nixpkgs";
32 };
33 };
34
35 outputs =
36 { self, nixpkgs, ... }@inputs:
37 let
38 system = "x86_64-linux";
39 pkgs = import nixpkgs {
40 inherit system;
41 config.allowUnfree = true;
42 overlays = [ self.overlays.default ];
43 };
44 in
45 {
46 overlays.default = import ./pkgs;
47
48 # The packages this repo adds or patches, so each can be built on its own:
49 # nix build .#waybar
50 packages.${system} = {
51 inherit (pkgs)
52 waybar
53 xembedsniproxy
54 signal-desktop-themed
55 claude-desktop
56 opendeck
57 breezex-cursor
58 proton-cachyos
59 python3-desktop
60 ;
61 };
62
63 nixosConfigurations.desktop = nixpkgs.lib.nixosSystem {
64 inherit system;
65 specialArgs = { inherit inputs; };
66 modules = [ ./hosts/desktop ];
67 };
68
69 # Tools for working on this repo, here and on the MacBook:
70 # nix develop
71 devShells = nixpkgs.lib.genAttrs [ "x86_64-linux" "aarch64-darwin" ] (
72 shellSystem:
73 let
74 shellPkgs = nixpkgs.legacyPackages.${shellSystem};
75 in
76 {
77 default = shellPkgs.mkShellNoCC {
78 packages = [
79 # Installs the desktop over SSH (MIGRATION.md).
80 shellPkgs.nixos-anywhere
81 shellPkgs.nixfmt
82 ];
83 };
84 }
85 );
86
87 formatter.${system} = pkgs.nixfmt;
88 };
89}