Compare commits

..

1 Commits

21 changed files with 102 additions and 336 deletions

View File

@@ -1,18 +1,6 @@
<h1 align="center">NixOS Configuration</h1> # NixOS Configuration
<div align="center">
<strong>
Personal NixOS configuration for my machines, using Nix Flakes for reproducible and shareable setups.
</strong>
</div>
<br/>
<div align="center">
<!-- Wakapi -->
<img alt="Coding Time Badge" src="https://clock.phundrak.com/api/badge/phundrak/interval:any/project:.dotfiles">
<!-- Emacs -->
<a href="https://www.gnu.org/software/emacs/"><img src="https://img.shields.io/badge/Emacs-30.2-blueviolet.svg?style=flat-square&logo=GNU%20Emacs&logoColor=white" /></a>
</div>
Personal NixOS configuration for my machines, using Nix Flakes for reproducible and shareable setups.
## Repository Structure ## Repository Structure

194
flake.lock generated
View File

@@ -44,11 +44,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1768655473, "lastModified": 1766195958,
"narHash": "sha256-iWnILPS2mP9ubbjRAhNv6Fqg1J/upxmD9OQTZQR4O2w=", "narHash": "sha256-YGawjW7RDzzOEiovrRGyRoXfjISbgLz4BVN9ZMb8LEc=",
"owner": "caelestia-dots", "owner": "caelestia-dots",
"repo": "cli", "repo": "cli",
"rev": "7de6c6063119a7cef27c6bd4c88f2c5ac4cbc064", "rev": "8c83ae1e6a60de7d496d346bf3623f789a9f53e3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -66,11 +66,11 @@
"quickshell": "quickshell" "quickshell": "quickshell"
}, },
"locked": { "locked": {
"lastModified": 1769226446, "lastModified": 1766280311,
"narHash": "sha256-YasBiXBgCkJ5oE6r9UtWXShD3OGtdRlioFErX5A1Z1Q=", "narHash": "sha256-Ty4GT6EaQFaL9E/dKcJB1Q30ByGkxXV6U1eu8+PS5Dc=",
"owner": "caelestia-dots", "owner": "caelestia-dots",
"repo": "shell", "repo": "shell",
"rev": "8430fa572500382e187a49f1ac677bfdeb7edca2", "rev": "66e509ae488b2c0468f2c803fd34c2625ca725dc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -86,17 +86,16 @@
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"git-hooks": "git-hooks", "git-hooks": "git-hooks",
"nix": "nix", "nix": "nix",
"nixd": "nixd",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1769201893, "lastModified": 1764669403,
"narHash": "sha256-x6VW1lQikNZAVm59gb3tzpDU5QCHT8U1e4dU11F2evY=", "narHash": "sha256-aJCOp0CV/9KIR2LTwSbZZN3j9Avg7umYyaqDFPoOVhI=",
"owner": "cachix", "owner": "cachix",
"repo": "devenv", "repo": "devenv",
"rev": "685a86068d3a7f9b04e18340187e288413cb5887", "rev": "3f2d25e7af748127da0571266054575dd8fec5ab",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -142,21 +141,6 @@
"type": "github" "type": "github"
} }
}, },
"flake-root": {
"locked": {
"lastModified": 1723604017,
"narHash": "sha256-rBtQ8gg+Dn4Sx/s+pvjdq3CB2wQNzx9XGFq/JVGCB6k=",
"owner": "srid",
"repo": "flake-root",
"rev": "b759a56851e10cb13f6b8e5698af7b59c44be26e",
"type": "github"
},
"original": {
"owner": "srid",
"repo": "flake-root",
"type": "github"
}
},
"flake-utils": { "flake-utils": {
"inputs": { "inputs": {
"systems": "systems" "systems": "systems"
@@ -230,11 +214,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1769187349, "lastModified": 1764780230,
"narHash": "sha256-clG+nT6I2qxjIgk5WoSDKJyNhzKJs9jzbCujPF2S/yg=", "narHash": "sha256-/hLZoLxzr2jwMStuUofB6PZm2eE3kpw91WObm66vPUs=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "082a4cd87c6089d1d9c58ebe52655f9e07245fcb", "rev": "af324afa72de6d23162f0cdcb0716afe6e626683",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -269,16 +253,16 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1769197468, "lastModified": 1761648602,
"narHash": "sha256-EhbVSjqhjykjIzF1FetpEwxjSMXg4ubHpkuEnE0y23A=", "narHash": "sha256-H97KSB/luq/aGobKRuHahOvT1r7C03BgB6D5HBZsbN8=",
"owner": "cachix", "owner": "cachix",
"repo": "nix", "repo": "nix",
"rev": "6174571301a92afce9b7296d5babdc56972695b7", "rev": "3e5644da6830ef65f0a2f7ec22830c46285bfff6",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "cachix", "owner": "cachix",
"ref": "devenv-2.32", "ref": "devenv-2.30.6",
"repo": "nix", "repo": "nix",
"type": "github" "type": "github"
} }
@@ -290,11 +274,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765267181, "lastModified": 1764475780,
"narHash": "sha256-d3NBA9zEtBu2JFMnTBqWj7Tmi7R5OikoU2ycrdhQEws=", "narHash": "sha256-77jL5H5x51ksLiOUDjY0ZK8e2T4ZXLhj3ap8ETvknWI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "82befcf7dc77c909b0f2a09f5da910ec95c5b78f", "rev": "5a3ff8c1a09003f399f43d5742d893c0b1ab8af0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -303,40 +287,13 @@
"type": "github" "type": "github"
} }
}, },
"nixd": {
"inputs": {
"flake-parts": [
"devenv",
"flake-parts"
],
"flake-root": "flake-root",
"nixpkgs": [
"devenv",
"nixpkgs"
],
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1763964548,
"narHash": "sha256-JTRoaEWvPsVIMFJWeS4G2isPo15wqXY/otsiHPN0zww=",
"owner": "nix-community",
"repo": "nixd",
"rev": "d4bf15e56540422e2acc7bc26b20b0a0934e3f5e",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixd",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1769018530, "lastModified": 1764517877,
"narHash": "sha256-MJ27Cy2NtBEV5tsK+YraYr2g851f3Fl1LpNHDzDX15c=", "narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "88d3861acdd3d2f0e361767018218e51810df8a1", "rev": "2d293cbfa5a793b4c50d17c05ef9e385b90edf6c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -348,27 +305,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1768564909, "lastModified": 1764767520,
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=", "narHash": "sha256-gs0x3CIkBN/2ALvfNkKZ82NJe/k/WrddcwT/NstLpUo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f", "rev": "511f22afbfaccda862e13f8f2441c717bc962e89",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1769018530,
"narHash": "sha256-MJ27Cy2NtBEV5tsK+YraYr2g851f3Fl1LpNHDzDX15c=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "88d3861acdd3d2f0e361767018218e51810df8a1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -408,11 +349,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1768689040, "lastModified": 1764663772,
"narHash": "sha256-Tlnr5BulJcMers/cb+YvmBQW4nKHjdKo9loInJkyO2k=", "narHash": "sha256-sHqLmm0wAt3PC4vczJeBozI1/f4rv9yp3IjkClHDXDs=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "7a427ce1979ce7447e885c4f30129b40f3d466f5", "rev": "26531fc46ef17e9365b03770edd3fb9206fcb460",
"revCount": 729, "revCount": 713,
"type": "git", "type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell" "url": "https://git.outfoxxed.me/outfoxxed/quickshell"
}, },
@@ -430,7 +371,6 @@
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"pumo-system-info": "pumo-system-info", "pumo-system-info": "pumo-system-info",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"spicetify": "spicetify",
"srvos": "srvos", "srvos": "srvos",
"zen-browser": "zen-browser" "zen-browser": "zen-browser"
} }
@@ -463,11 +403,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1768863606, "lastModified": 1764483358,
"narHash": "sha256-1IHAeS8WtBiEo5XiyJBHOXMzECD6aaIOJmpQKzRRl64=", "narHash": "sha256-EyyvCzXoHrbL467YSsQBTWWg4sR96MH1sPpKoSOelB4=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "c7067be8db2c09ab1884de67ef6c4f693973f4a2", "rev": "5aca6ff67264321d47856a2ed183729271107c9c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -476,35 +416,16 @@
"type": "github" "type": "github"
} }
}, },
"spicetify": {
"inputs": {
"nixpkgs": "nixpkgs_2",
"systems": "systems_2"
},
"locked": {
"lastModified": 1768656845,
"narHash": "sha256-xNlXMyn7yc3Z/NOsz4NchO7gWFwsoCvtJ26pys4s2/M=",
"owner": "Gerg-L",
"repo": "spicetify-nix",
"rev": "8bd7e49d5ac62756bee6e4b02221fb96bfc3c99a",
"type": "github"
},
"original": {
"owner": "Gerg-L",
"repo": "spicetify-nix",
"type": "github"
}
},
"srvos": { "srvos": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1769046412, "lastModified": 1764811239,
"narHash": "sha256-LbjKkSB4Nar9pX+AxHs2FGH2ZAFpKWUvr79uyEhFVqc=", "narHash": "sha256-O98nsREqOegA/ckOi1lj5cC8+FlzZmgE2q2RD9eKrnw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "srvos", "repo": "srvos",
"rev": "a78abbc16a5352ee848e454c99166c97415fbf39", "rev": "0ed5a0abca19cb199796e77180499cb9b6cca493",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -528,43 +449,6 @@
"type": "github" "type": "github"
} }
}, },
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"devenv",
"nixd",
"nixpkgs"
]
},
"locked": {
"lastModified": 1734704479,
"narHash": "sha256-MMi74+WckoyEWBRcg/oaGRvXC9BVVxDZNRMpL+72wBI=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "65712f5af67234dad91a5a4baee986a8b62dbf8f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"zen-browser": { "zen-browser": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -572,11 +456,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1769228180, "lastModified": 1764648680,
"narHash": "sha256-94KY0JNjdd3CcSyKlHPCPswlqmUrWT6+MfOHektsdB8=", "narHash": "sha256-B/nmawJ75/951Xs9ludSxDVd/txFY+odmcbinySqMQo=",
"owner": "youwen5", "owner": "youwen5",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "ef1663c14b7c3c2b84bcf140232534be5a2a0257", "rev": "897df2f2ad4880563ce801fa29f348a4e98f0a20",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -34,8 +34,6 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
spicetify.url = "github:Gerg-L/spicetify-nix";
srvos.url = "github:nix-community/srvos"; srvos.url = "github:nix-community/srvos";
zen-browser = { zen-browser = {
@@ -93,7 +91,6 @@
pkgs = nixpkgs.legacyPackages.x86_64-linux; pkgs = nixpkgs.legacyPackages.x86_64-linux;
defaultUserModules = [ defaultUserModules = [
inputs.sops-nix.homeManagerModules.sops inputs.sops-nix.homeManagerModules.sops
inputs.spicetify.homeManagerModules.default
]; ];
withUserModules = modules: nixpkgs.lib.lists.flatten (defaultUserModules ++ [modules]); withUserModules = modules: nixpkgs.lib.lists.flatten (defaultUserModules ++ [modules]);
in { in {
@@ -103,10 +100,7 @@
}; };
"phundrak@gampo" = home-manager.lib.homeManagerConfiguration { "phundrak@gampo" = home-manager.lib.homeManagerConfiguration {
inherit extraSpecialArgs pkgs; inherit extraSpecialArgs pkgs;
modules = withUserModules [ modules = withUserModules ./users/phundrak/host/gampo.nix;
inputs.caelestia-shell.homeManagerModules.default
./users/phundrak/host/marpa.nix
];
}; };
"phundrak@marpa" = home-manager.lib.homeManagerConfiguration { "phundrak@marpa" = home-manager.lib.homeManagerConfiguration {
inherit extraSpecialArgs pkgs; inherit extraSpecialArgs pkgs;

View File

@@ -16,6 +16,7 @@
kernel = { kernel = {
cpuVendor = "intel"; cpuVendor = "intel";
package = pkgs.linuxPackages; package = pkgs.linuxPackages;
modules = ["i915"];
}; };
systemd-boot = true; systemd-boot = true;
}; };
@@ -44,6 +45,7 @@
networking = { networking = {
hostname = "gampo"; hostname = "gampo";
id = "0630b33f"; id = "0630b33f";
hostFiles = [config.sops.secrets.extraHosts.path];
}; };
packages = { packages = {
appimage.enable = true; appimage.enable = true;

View File

@@ -39,11 +39,6 @@
}; };
}; };
services.displayManager.autoLogin = {
user = "phundrak";
enable = true;
};
mySystem = { mySystem = {
boot = { boot = {
extraModprobeConfig = '' extraModprobeConfig = ''
@@ -87,6 +82,7 @@
networking = { networking = {
hostname = "marpa"; hostname = "marpa";
id = "7EA4A111"; id = "7EA4A111";
hostFiles = [config.sops.secrets.extraHosts.path];
firewall.openPortRanges = [ firewall.openPortRanges = [
{ {
# Sunshine # Sunshine

View File

@@ -2,7 +2,9 @@
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ {
config,
lib, lib,
pkgs,
modulesPath, modulesPath,
... ...
}: { }: {

View File

@@ -1,10 +1,10 @@
extraHosts: ENC[AES256_GCM,data:buAUbxVALT7zjwYfySVQ7E6RsI4EaVBUFN/ZXOuSaj42DLoLPM45PSgkxjner9o4g6a3s58Snp3siO8l0KPSTYyPUPBZ7dgbCcsWp5t8Q3K111d4TPTlx+gcluK5BvwNvFB4esRXJOgpm5jK498COKq/UZJECM0D5Emid0CKkzZynUYdbQeHkQEKIXV2LxJNro87xHtU/l11nox37Na0+t+eqp8/jcQh9pGnKmppPhviJeCy6GoiDPNFHDalQUmd204gi6EaTx0p3r7gRK61RfTwSCiX1Y7N5muzPvJQJt8lwgqznw5Etjud8wn6HF+fmb/BbYtioO9TjOVJnjVOlB4iUMApx3XY4VOuBPJm7D9ET+2J8Umw4OD5pB9A5WF+gVseAqYYNZYpe2hlHBoXMw4IZh8qOgxR/noE71PHxRe5gSB/2Hq0lKwG0e8lyFEeJKZdXsl47CtQE39RfC/+ik2COaRmYxY8fHHs2/yTylopv/pSM6K2TGF5B3dwVS18LU5AR48C1Ip7CseMgjgAWvjQ43KBc+P74a+237tlRFlFsU3HNk9Hk4fF53DPUX67+l42W6sNcgrszFHb/dm939qDKYqdNcWEjaaVSdDo34I6NGhmTUI7FxCVYipe,iv:SehibPtT3k9Ufen8Gri3HcFthUe0S7dMT+486fwOK0w=,tag:oatCeFr2j3EPHwXc6eU66w==,type:str] extraHosts: ENC[AES256_GCM,data:P6Ho3CVFpJcJEVd8MVq9K0X4/OU4kJ270ZrzU+gdhlzeULzkYMcWBIa1mmMixbRnyuc+8wCeT1RpKSfl0zQNVjSazyj+V1C5+ZS8qboxD/8ehRMWnVtAFuyL4sruuyxpiXC+8op+sjAAWJWBfvQ0KCRD2H83+txz335XZZPYPmHvYjZ0FS3A23Zf4yVZHGXY6oxbUWhmeOhDf3vaARQe9MEqp/dPn/4QFrq8LwwEghnukbBPHY49VZ+pRV4HTOUnwjLjgfflqxXLqTHIYRu5GPEzRjC3ZT/5Hr4syLzPAFW12mVEOBjT4wpKLdnZypjlYaF0MfvUTE+qkTAACObUvcm1q+GT1qGmVr5M1VqOvSaWi+QgM9mlZBSJQzwrQ5tcBQ/GdrahyxjyVJOsz//mYRWqNerSIFr06znaAhAeZN2YRQRckzIPj+Crmdy2BNW8KDCWBiOjrgAb7MQOIVQ53JBwN0F/hgABKFgUd9lTSao3CEJEx9RooIezvu7SbXD3vxHSzrfhpyoSlJMx8hPNUoPqs0VnKdpGs4nudiMAgrdPG4eDsHqXZ6qVa4a3LpODFEDpsnstQuF8MgMmQFiEHJBID7j/uXyvcye7ZY3GQv6mAo5YkHjUts9j0UH+EkRD84AxVDv+TyroLKAgSZqZQVr3uUBS0CK50BPflwoP2scU+giTWm6L947LhHBIJvxfxtsHVj39kiCLjUJTKU1sLsb779938kXuEa/kd9XpMU4MQcMhD/gSzf0eemDPEe47HNYLjgDypPxkqnV/cNk+LkGOELLuvzqESsgUQLULG1rIS1kXYMJF1OZ9RRswf39AQnlZSovkw+phX8jOpvwfJHIax+35tkH+rkf621klXA==,iv:oAsOGZHilhBZYewYoWPxfloNjqLL92fvhcU+agd+oQA=,tag:2cuosGghq/+5akitPp4C4g==,type:str]
mopidy: mopidy:
spotify: ENC[AES256_GCM,data:89vPpgJ53eYou01qgxfqxOO6G/raBA0Vzck31PLchE4Jhi6HcNnoW4wwhHW3pG0AfCu5sE1CuryhRpWTc62fXIBoenKiCiU7chFhBF0UNq3Fcie26l6hdEx+XYVcM/MNBBbkb8VZq1mR0sgGmUESuZVzeI3LMykF,iv:n+LxuijWCZGW2YacrYQ2QIF2BTSilLmJ72piFRK25vw=,tag:iOQatj2UJdlMvn6C40IILg==,type:str] spotify: ENC[AES256_GCM,data:89vPpgJ53eYou01qgxfqxOO6G/raBA0Vzck31PLchE4Jhi6HcNnoW4wwhHW3pG0AfCu5sE1CuryhRpWTc62fXIBoenKiCiU7chFhBF0UNq3Fcie26l6hdEx+XYVcM/MNBBbkb8VZq1mR0sgGmUESuZVzeI3LMykF,iv:n+LxuijWCZGW2YacrYQ2QIF2BTSilLmJ72piFRK25vw=,tag:iOQatj2UJdlMvn6C40IILg==,type:str]
bandcamp: ENC[AES256_GCM,data:Sas5Sk0gNaq2E1XnsK8lvaZEzsaFZKY+zDxvgTiqTm2hrI2BnWieRWcZV6u1yRKjLAhh1rdSYhnZJHWUGIAY9qnFOk4vUVUHLtxnkxO/bJN/sykc4qwXRg4/NNap+8TcsN/S1AFJYKmXYn1Otx/02wbMEzHIuw==,iv:VGC7COqF3goMyyJvasiT0yVxOk4QKLOuXd2FbHjuRwk=,tag:pvyX4Q+dvlWFkdSJzTlgwA==,type:str] bandcamp: ENC[AES256_GCM,data:Sas5Sk0gNaq2E1XnsK8lvaZEzsaFZKY+zDxvgTiqTm2hrI2BnWieRWcZV6u1yRKjLAhh1rdSYhnZJHWUGIAY9qnFOk4vUVUHLtxnkxO/bJN/sykc4qwXRg4/NNap+8TcsN/S1AFJYKmXYn1Otx/02wbMEzHIuw==,iv:VGC7COqF3goMyyJvasiT0yVxOk4QKLOuXd2FbHjuRwk=,tag:pvyX4Q+dvlWFkdSJzTlgwA==,type:str]
emailPassword: ENC[AES256_GCM,data:RXmfWKIm5CzZrqhT6bAPZdijByO1NvrSwN1YO4/huVQnQh5p1g==,iv:lh/mxH5sPce+to6TsK2f0SrpHJuuGUiKWzrNmQfJcY0=,tag:EyR7Nml7Jyh4Modsq7DuBw==,type:str] emailPassword: ENC[AES256_GCM,data:RXmfWKIm5CzZrqhT6bAPZdijByO1NvrSwN1YO4/huVQnQh5p1g==,iv:lh/mxH5sPce+to6TsK2f0SrpHJuuGUiKWzrNmQfJcY0=,tag:EyR7Nml7Jyh4Modsq7DuBw==,type:str]
ssh: ssh:
hosts: ENC[AES256_GCM,data:CnSHwOiLbrA3C902LrkyLKvZOd4Lv1RCBF+IVVbNcx1aCibpMHlFN6Ov+CFNrHG1ZVd3tarnZdGX5kScJJa0khDOVtrUF1gtvifqn1A9tUDP2M+iu3JrVxDw6cPeVyoxWL1hwuWwfO3zgApBGT3CvzAy9V85cNEdS7ukx08VRTgnM6rXYLJKLvjwaDnhnB43Am8XpZQkI0I6DkhCAQuGCrxsqtEE/mQXItZUGlOp/Al8B1XEs35b16odMJEextf85bnzpYYbpV9n4OCMTgoZ8ciQgTbi7u9FD8vmKs5W15pZvL4sxFIcbegn29SvRd7sfsotQ6xNgXHqAQtTa+VcUPA7bSjDw5KHs0iC8AkxdHwGL1kY0GSb992BIZ7PqKdNRLAikttGslFM98Ce6fpHQXj3soYYMdsm9vj7av1+P4N6SQ2cmhpVDrbnrmXQ5MT5gbQlecu32b0Yqf6rfjGyZ+SCZmMzTwAsEpHSnIgYPin38ztDsMMPaouxaTR8V1TXK715ITtA9ojrZhTBbWlaJWVybicc6tT164ZDKyurGdPHf2KrakkVYZghuCkWZWM/yc4GoW1o7/XxWnwQDkUvte8kPDwB2Rvc1jjG6SFvhdXouIqfNNxrdbSoFURBuouZIbfamVqU3MfSF0JRBrpRerA5tqrWYOPL4rXqsqGWyQ==,iv:92tBq0zjlJ44Ia5ug2zk9PgspWzA6QlT0A+j9T74T7U=,tag:XTB7zG14DsPw1uNXTpD7Bg==,type:str] hosts: ENC[AES256_GCM,data:0KRAZyfgcO2HRio7GFKgZ0DeRdbLkawEpS2+UT6aWvDM7MrTXvA0sCkn57Y8Akq3+Lg+90eWgBNOWwkPG36S2+2dLgH7HdILUuqLY56QXJiv1lLf/JM9F6zDoJOoXBf4gwCBZ0wwRBJFbtMCkRGVtkYKeWMvDDnkrdyDjn9bFcJrECbb3c4upGp7kCCo43ATi1QL4HWTUhbt24gVnFHHH993vH3rNrgVBdX3GzzHh4M/aLcMaVXaAvf6F2dSCCzdruB3giYt0n0TciVDcINnbnOpBHnVJwzKNY387PYLlgeDfA1qL5ak4FUeNg+e79qXIqeLeQ0Gmmbjrq3jJl3jEDu/m2Ze6T2UTDDjSvs6Nq20lxarWCpa814oLzU7Ih5t+3Tpy99KDkFtfrawPm4GuEceGW6anGV5EAPFxIjSxZMCnsZaAFlhe17ZeHnSMdF/kDhcaAVNjFexXv5xwD9R4ga9eqDPwmawhpLjecooXws+u322MFheinI4mxaIuoPpSN26z4Svpxf2qL0NnQh0IAVEJ0S4PRp6FfAktuJbCE93YxJzCpgOrLbesyrRM6L/JN2Apv6ERU6VfkS6E25aO1O1l3lWII3YFpfn+6BXBMnb7y4e2nvABluyp9vJDjWuc1W7qE4tPOOp6a10Gy5sWi1vXz2DI5UtmjrPpYiLAbwZVpqyuaPMoVeeRpSPReIrOqdJtlU9Hu06fOMj7zm7FR6redSfXdL8UsV0ct1kI4W2ITy+NR8DTIe1aJCe+ES0J7WNtAZkEdLAfA1Urq9Gxvxt1c6U4sSNXPzvqFNrqfz+dzUSrOlFkWudJMxarXt3fRBgRIt0hE/gVoeOjRpAzJTurtyvOotDVKlszIQrQ8nN4aAD4t1v5bsVwgUc2lnhFjfNa38BZjNdiXf/6E0UpkB2GrofKWmP02sXVsD0NGI0hGOOKzJn3vbuhaXDPD0KSHkVjOZGUXYizwqxgyOQtMIOE9+w42xVCYht9M3A7USQ69Fcm9FvxUfSYNxPznSdZ2zNHxRheowrmX10S9fxEA9vxvic8H86TuAVfZ1S+P6GqpgSH7FDikSLyJNj3PyznRTBar7M65BCCN2zA9aM+SgnSAvkrmz1qQjd3jedcm9xdqvMXw5fYaLFHpYHDdZsi8w=,iv:eRcfkOg5vNI+HxsNELJe20cmKSThtBXwc7c69Jaj/3M=,tag:t0ux5jZRBx9DQbTzr9YHKg==,type:str]
sops: sops:
age: age:
- recipient: age1ajemtm502nn2n4q7v4j8meyd5mxtcqngkkedxq2pqzuwu78zp93qnw8q48 - recipient: age1ajemtm502nn2n4q7v4j8meyd5mxtcqngkkedxq2pqzuwu78zp93qnw8q48
@@ -79,7 +79,7 @@ sops:
VkdKMUVOemNhUnpYSFFocnZRQmxPaUEKgCne7JJRIuvFtDMtaqO21IKjRoDW8D+3 VkdKMUVOemNhUnpYSFFocnZRQmxPaUEKgCne7JJRIuvFtDMtaqO21IKjRoDW8D+3
V5tGfZOQADuef3n8ZG1j5t1OtNNBu4PjpxZynGx3/nR7+FThsK4vMg== V5tGfZOQADuef3n8ZG1j5t1OtNNBu4PjpxZynGx3/nR7+FThsK4vMg==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2026-01-25T02:54:23Z" lastmodified: "2025-12-07T10:51:49Z"
mac: ENC[AES256_GCM,data:nIOwiSAT3YCRabbPwfO2XBFhb/qH5cFLsMUQUCUa7trBnLeerzWLpngB96T0ZkDmsVsdJLhfv5ZWWZlgIg+K9uIww+DzvK48B3+EyVpNCJ4cDfgz3gZXlnp41Eu8LSklQ+sk9lVFEbHNPPhbTliXma9Kr1ldkdP035lQmYXUz6Y=,iv:sp7oiTUvO/FchubMlCuaaWDpNO9+aLIyehjS9+8pEPw=,tag:/PvIJTM17nFi5YIq0b1LyQ==,type:str] mac: ENC[AES256_GCM,data:9LYnzgwB/QpEdZ7uDxfT+G+oUB0CJLFuigeocZNjoxb9U0PuckuLWuGOtcWBN0mkSF/Yc/rJS9D3a5ut5svwQ3111ROGvjGMF568+8IBJjejoxJepqz23F901rHBDfEVhBPnLImpIapIR/KJDbD+eW9ETlp/RN2LvIk8Zm91YTg=,iv:9+88oTT5UZBHYjzbDtqMqytcXV/bEjUZeqGxolgm0LY=,tag:ywqu25dQ8BcbPvphTqE78g==,type:str]
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.11.0 version: 3.11.0

View File

@@ -59,11 +59,7 @@ in {
}; };
config.boot = { config.boot = {
initrd.kernelModules = lib.lists.singleton ( initrd.kernelModules = lists.optional config.mySystem.hardware.amdgpu.enable "amdgpu";
if config.mySystem.hardware.amdgpu.enable
then "amdgpu"
else "i915"
);
loader = { loader = {
systemd-boot.enable = cfg.systemd-boot; systemd-boot.enable = cfg.systemd-boot;
efi.canTouchEfiVariables = cfg.systemd-boot; efi.canTouchEfiVariables = cfg.systemd-boot;

View File

@@ -46,20 +46,8 @@ in {
launcher = { launcher = {
enabled = true; enabled = true;
showOnHover = true; showOnHover = true;
useFuzzy = {
apps = true;
schemes = true;
wallpapers = true;
};
}; };
bar = { bar.status.showAudio = true;
status = {
showAudio = true;
showKbLayout = false;
};
tray.compact = true;
};
services.gpuType = "amd";
session.commands = { session.commands = {
logout = ["uwsm" "stop"]; logout = ["uwsm" "stop"];
shutdown = ["systemctl" "poweroff"]; shutdown = ["systemctl" "poweroff"];
@@ -67,9 +55,6 @@ in {
reboot = ["systemctl" "reboot"]; reboot = ["systemctl" "reboot"];
}; };
}; };
cli = { cli.enable = true;
enable = true;
settings.theme.enableGtk = true;
};
}; };
} }

View File

@@ -15,9 +15,7 @@ in {
./obs.nix ./obs.nix
./qt.nix ./qt.nix
./rofi ./rofi
./spotify.nix
./swaync.nix ./swaync.nix
./theme.nix
./waybar.nix ./waybar.nix
./wlr-which-key.nix ./wlr-which-key.nix
./wlsunset.nix ./wlsunset.nix
@@ -32,8 +30,6 @@ in {
obs.enable = mkDefault cfg.fullDesktop; obs.enable = mkDefault cfg.fullDesktop;
qt.enable = mkDefault cfg.fullDesktop; qt.enable = mkDefault cfg.fullDesktop;
rofi.enable = mkDefault cfg.fullDesktop; rofi.enable = mkDefault cfg.fullDesktop;
spotify.enable = mkDefault cfg.fullDesktop;
spotify.spicetify.enable = mkDefault cfg.fullDesktop;
wlr-which-key.enable = mkDefault cfg.fullDesktop; wlr-which-key.enable = mkDefault cfg.fullDesktop;
}; };
} }

View File

@@ -2,12 +2,14 @@
config, config,
lib, lib,
pkgs, pkgs,
inputs,
... ...
}: }:
with lib; let with lib; let
cfg = config.home.desktop.hyprland; cfg = config.home.desktop.hyprland;
laptops = ["gampo"]; laptops = ["gampo"];
caelestiaEnabled = config.home.desktop.caelestia.enable; system = pkgs.stdenv.hostPlatform.system;
caelestia = inputs.caelestia-shell.packages.${system}.default;
in { in {
imports = [ imports = [
./swaync.nix ./swaync.nix
@@ -35,18 +37,19 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
home.desktop = { home.desktop = {
hyprpaper.enable = mkDefault (! caelestiaEnabled); hyprpaper.enable = true;
rofi.enable = mkDefault true; rofi.enable = mkDefault true;
swaync.enable = mkDefault (! caelestiaEnabled); swaync.enable = mkDefault true;
waybar = { waybar = {
enable = mkDefault (! caelestiaEnabled); enable = mkDefault true;
battery = mkDefault (builtins.elem cfg.host laptops); battery = mkDefault (builtins.elem cfg.host laptops);
}; };
wlsunset.enable = mkDefault true; wlsunset.enable = mkDefault true;
}; };
services.blueman-applet.enable = ! caelestiaEnabled; services.blueman-applet.enable = true;
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
xwayland.enable = true;
systemd.enable = false; systemd.enable = false;
importantPrefixes = ["$left" "$right" "$up" "$down" "$menu"]; importantPrefixes = ["$left" "$right" "$up" "$down" "$menu"];
settings = { settings = {
@@ -86,7 +89,7 @@ in {
"1, layoutopt:orientation:bottom" "1, layoutopt:orientation:bottom"
]; ];
decoration = { decoration = {
rounding = 20; rounding = 5;
}; };
animations = { animations = {
enabled = true; enabled = true;
@@ -103,13 +106,11 @@ in {
pseudotile = true; pseudotile = true;
preserve_split = true; preserve_split = true;
}; };
exec-once = exec-once = [
[ "pactl load-module module-switch-on-connect"
"pactl load-module module-switch-on-connect" "${pkgs.mpc}/bin/mpc stop"
"${pkgs.mpc}/bin/mpc stop" "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"
"${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1" ];
]
++ lib.lists.optional (! caelestiaEnabled) "${pkgs.networkmanagerapplet}/bin/nm-applet";
}; };
extraConfig = '' extraConfig = ''
$left = c $left = c

View File

@@ -1,25 +0,0 @@
{
pkgs,
config,
lib,
inputs,
...
}:
with lib; let
cfg = config.home.desktop.spotify;
system = pkgs.stdenv.hostPlatform.system;
spicePkgs = inputs.spicetify.legacyPackages.${system};
in {
options.home.desktop.spotify = {
enable = mkEnableOption "Enable Spotify";
spicetify.enable = mkEnableOption "Enable Spicetify";
};
config.programs = mkIf cfg.enable {
spotify-player.enable = cfg.enable;
spicetify = mkIf cfg.spicetify.enable {
inherit (cfg.spicetify) enable;
theme = spicePkgs.themes.sleek;
colorScheme = "Nord";
};
};
}

View File

@@ -1,26 +0,0 @@
{
pkgs,
config,
...
}: {
gtk = {
enable = true;
colorScheme = "dark";
iconTheme = {
name = "Nordzy-icons";
package = pkgs.nordzy-icon-theme;
};
theme = {
package = pkgs.nordic;
name = "Nordic";
};
};
home.pointerCursor = {
enable = true;
gtk.enable = true;
hyprcursor.enable = config.home.desktop.hyprland.enable;
name = "Nordzy-cursors";
package = pkgs.nordzy-cursor-theme;
};
qt.enable = true;
}

View File

@@ -1,11 +1,13 @@
{ {
config, config,
lib, lib,
inputs,
pkgs, pkgs,
... ...
}: }:
with lib; let with lib; let
cfg = config.home.dev.ai.claude; cfg = config.home.dev.ai.claude;
system = pkgs.stdenv.hostPlatform.system;
in { in {
options.home.dev.ai.claude.enable = mkEnableOption "Enables Claude-related packages"; options.home.dev.ai.claude.enable = mkEnableOption "Enables Claude-related packages";
config = mkIf cfg.enable { config = mkIf cfg.enable {

View File

@@ -18,6 +18,6 @@ in {
ollama.enable = mkDefault cfg.enable; ollama.enable = mkDefault cfg.enable;
claude.enable = mkDefault cfg.enable; claude.enable = mkDefault cfg.enable;
}; };
packages = [pkgs.lmstudio]; packages = [pkgs.opencode];
}; };
} }

View File

@@ -37,12 +37,7 @@ in {
services.emacs = mkIf cfg.service { services.emacs = mkIf cfg.service {
enable = true; enable = true;
inherit (cfg) package; inherit (cfg) package;
defaultEditor = true;
startWithUserSession = "graphical"; startWithUserSession = "graphical";
client = {
enable = true;
arguments = ["-c" "-a" "${cfg.package}/bin/emacs"];
};
}; };
xdg.desktopEntries.mu4e = mkIf cfg.mu4eMime { xdg.desktopEntries.mu4e = mkIf cfg.mu4eMime {

View File

@@ -19,58 +19,30 @@ in {
inherit (cfg) enable; inherit (cfg) enable;
enableTransience = true; enableTransience = true;
settings = mkIf cfg.jjIntegration { settings = mkIf cfg.jjIntegration {
# Disabling these so they can be enabled conditionally custom.jj = {
# See https://github.com/jj-vcs/jj/wiki/Starship description = "The current jj status";
git_status.disabled = true; detect_folders = [".jj"];
git_commit.disabled = true; symbol = "🥋 ";
git_metrics.disabled = true; command = ''
git_branch.disabled = true; jj log --revisions @ --no-graph --ignore-working-copy --color always --limit 1 --template '
custom = let separate(" ",
when = "! jj --ignore-working-copy-root"; change_id.shortest(4),
description = "Only show if were not in a jj repository"; bookmarks,
style = ""; "|",
in { concat(
git_status = { if(conflict, "💥"),
inherit when description style; if(divergent, "🚧"),
command = "starship module git_status"; if(hidden, "👻"),
}; if(immutable, "🔒"),
git_commit = { ),
inherit when description style; raw_escape_sequence("\x1b[1;32m") ++ if(empty, "(empty)"),
command = "starship module git_commit"; raw_escape_sequence("\x1b[1;32m") ++ coalesce(
}; truncate_end(29, description.first_line(), ""),
git_metrics = { "(no description set)",
inherit when description style; ) ++ raw_escape_sequence("\x1b[0m"),
command = "starship module git_metrics"; )
}; '
git_branch = { '';
inherit when description style;
command = "starship module git_branch";
};
jj = {
description = "The current jj status";
detect_folders = [".jj"];
symbol = "🥋 ";
command = ''
jj log --revisions @ --no-graph --ignore-working-copy --color always --limit 1 --template '
separate(" ",
change_id.shortest(4),
bookmarks,
"|",
concat(
if(conflict, "💥"),
if(divergent, "🚧"),
if(hidden, "👻"),
if(immutable, "🔒"),
),
raw_escape_sequence("\x1b[1;32m") ++ if(empty, "(empty)"),
raw_escape_sequence("\x1b[1;32m") ++ coalesce(
truncate_end(29, description.first_line(), ""),
"(no description set)",
) ++ raw_escape_sequence("\x1b[0m"),
)
'
'';
};
}; };
}; };
}; };

View File

@@ -58,12 +58,16 @@
home = { home = {
sessionVariables = { sessionVariables = {
EDITOR = "${config.home.dev.editors.emacs.package}/bin/emacsclient -c -a ${config.home.dev.editors.emacs.package}/bin/emacs";
LAUNCH_EDITOR = "${launchWithEmacsclient}/bin/launch-with-emacsclient"; LAUNCH_EDITOR = "${launchWithEmacsclient}/bin/launch-with-emacsclient";
SUDO_ASKPASS = "${askpass}/bin/askpass"; SUDO_ASKPASS = "${askpass}/bin/askpass";
LSP_USE_PLISTS = "true"; LSP_USE_PLISTS = "true";
OPENAI_API_URL = "http://localhost:1234/"; OPENAI_API_URL = "http://localhost:1234/";
}; };
desktop.caelestia.enable = true; desktop = {
caelestia.enable = true;
waybar.enable = false;
};
dev = { dev = {
ai.claude.enable = true; ai.claude.enable = true;
editors.emacs.package = emacsPackage; editors.emacs.package = emacsPackage;

View File

@@ -46,7 +46,6 @@ in {
username = "phundrak"; username = "phundrak";
homeDirectory = "/home/phundrak"; homeDirectory = "/home/phundrak";
packages = [pkgs.tree pkgs.ncdu]; packages = [pkgs.tree pkgs.ncdu];
preferXdgDirectories = true;
phundrak.sshKey.file = "${config.home.homeDirectory}/.ssh/id_ed25519.pub"; phundrak.sshKey.file = "${config.home.homeDirectory}/.ssh/id_ed25519.pub";

View File

@@ -30,6 +30,7 @@ in {
plexamp plexamp
plex-desktop plex-desktop
spicetify-cli spicetify-cli
spotify
pavucontrol # Volume control pavucontrol # Volume control
# Social # Social

View File

@@ -172,7 +172,7 @@
{ {
key = "l"; key = "l";
desc = "Logout"; desc = "Logout";
cmd = "${logout}/bin/logout"; cmd = "";
} }
{ {
key = "s"; key = "s";