My dotfiles (written in Nix, btw!) ❄
1{
2 description = "Folo's Flake";
3
4 inputs = {
5 nixpkgs.url = "nixpkgs/nixos-unstable";
6 nixpkgs-stable.url = "nixpkgs/nixos-25.05"; # used for when something keeps BUILDING
7 nixpkgs-master.url = "nixpkgs/master"; # used for immediate fixes
8 home-manager = {
9 url = "github:nix-community/home-manager";
10 inputs.nixpkgs.follows = "nixpkgs";
11 };
12 stylix = {
13 url = "github:nix-community/stylix";
14 inputs.nixpkgs.follows = "nixpkgs";
15 };
16 nix-flatpak.url = "github:gmodena/nix-flatpak";
17 spicetify-nix = {
18 url = "github:Gerg-L/spicetify-nix";
19 inputs.nixpkgs.follows = "nixpkgs";
20 };
21 nvf = {
22 url = "github:NotAShelf/nvf";
23 inputs.nixpkgs.follows = "nixpkgs";
24 };
25 cidbot = {
26 url = "git+ssh://git@github.com/folospior/cidbot-test-config";
27 inputs.nixpkgs.follows = "nixpkgs";
28 };
29 nixvim = {
30 url = "github:nix-community/nixvim";
31 inputs.nixpkgs.follows = "nixpkgs";
32 };
33 disko = {
34 url = "github:nix-community/disko";
35 inputs.nixpkgs.follows = "nixpkgs";
36 };
37 };
38
39 outputs = {
40 self,
41 nixpkgs,
42 nixpkgs-stable,
43 nixpkgs-master,
44 stylix,
45 home-manager,
46 nix-flatpak,
47 spicetify-nix,
48 nvf,
49 cidbot,
50 nixvim,
51 disko,
52 ...
53 } @ inputs: let
54 system = "x86_64-linux";
55 pkgs = import nixpkgs {inherit system;};
56 pkgsStable = import nixpkgs-stable {inherit system;};
57 pkgsMaster = import nixpkgs-master {inherit system;};
58 lib = nixpkgs.lib;
59 spicetifyPkgs = spicetify-nix.legacyPackages.${system};
60
61 systemSettings = {
62 inherit system;
63 hostname = "Folo-Nix";
64 language = "en_US.UTF-8";
65 country = "pl_PL.UTF-8";
66 kbLayout = "pl";
67 timezone = "Europe/Warsaw";
68 videoDrivers = ["nvidia"];
69 displayManager = "greetd"; # one of sddm, greetd, none
70 iGPUBusId = "PCI:0:2:0";
71 dGPUBusId = "PCI:1:0:0";
72 desktop = "hyprland"; # one of plasma, hyprland, none
73 };
74 userSettings = {
75 username = "folo";
76 fullName = "Filip Hoffmann";
77 email = "folosp@protonmail.com";
78 groups = ["wireshark" "networkmanager" "wheel"];
79 browser = "firefox"; # one of firefox, none
80 terminal = "kitty"; # one of alacritty, kitty, ghostty, none
81 };
82 in {
83 nixosConfigurations = {
84 ${systemSettings.hostname} = lib.nixosSystem {
85 inherit system;
86
87 specialArgs = {
88 inherit inputs;
89 inherit pkgsStable;
90 inherit pkgsMaster;
91 inherit systemSettings;
92 inherit userSettings;
93 };
94
95 modules = [
96 nix-flatpak.nixosModules.nix-flatpak
97 stylix.nixosModules.stylix
98 disko.nixosModules.disko
99 ./system/configuration.nix
100 ];
101 };
102 };
103
104 homeConfigurations = {
105 ${userSettings.username} = home-manager.lib.homeManagerConfiguration {
106 inherit pkgs;
107 extraSpecialArgs = {
108 inherit self;
109 inherit inputs;
110 inherit pkgsStable;
111 inherit pkgsMaster;
112 inherit systemSettings;
113 inherit userSettings;
114 inherit spicetifyPkgs;
115 };
116 modules = [
117 nvf.homeManagerModules.default
118 cidbot.homeManagerModules.default
119 spicetify-nix.homeManagerModules.default
120 nixvim.homeManagerModules.nixvim
121 stylix.homeModules.stylix
122 ./user/home.nix
123 ];
124 };
125 };
126 };
127}