Kieran's opinionated (and probably slightly dumb) nix config

feat: move to a modules and machines folder structure

dunkirk.sh 7a9ea3d5 b3aa3e92

verified
+19 -20
README.md
···
```bash
~/dots # symlinked to /etc/nixos
-
├── home-manager # all the configs that use home manager are stored centrally here
-
│ ├── dots # any config files that need to be symlinked go here, e.g. my hyprland config
-
│ │ └── wallpapers
-
│ ├── machines # the different machines by hostname
-
│ │ ├── ember
-
│ │ ├── moonlark
-
│ │ ├── nest
-
│ │ └── tacyon
-
│ └── modules
-
│ ├── aesthetics # theming and wallpapers
-
│ ├── apps # any app specific config
-
│ ├── system # nxipkgs stuff mainly
-
│ └── wm # window managers; just hyprland for now
-
│ └── hyprland
-
├── nixos
-
│ ├── machines # again machines by hostname
-
│ │ └── moonlark
-
│ └── modules
+
├── dots # any config files that need to be symlinked go here, e.g. my hyprland config
+
│ └── wallpapers
+
├── machines
+
│ ├── ember # my dell r210 server (in my basement)
+
│ ├── moonlark # my framework 13
+
│ │ └── home
+
│ ├── nest # shared tilde server through hc
+
│ └── tacyon # rpi 5
+
├── modules
+
│ ├── home # home-manager modules
+
│ │ ├── aesthetics # theming and wallpapers
+
│ │ ├── apps # any app specific config
+
│ │ │ └── crush # vendored for now
+
│ │ ├── system # home-manager system configs
+
│ │ └── wm # window managers; just hyprland for now
+
│ │ └── hyprland
+
│ └── nixos # nixos modules
│ ├── apps # also app specific configs
│ └── system # pam and my fancy wifi module for now
-
└── secrets
+
└── secrets # keep your grubby hands off my passwords
-
16 directories
+
19 directories
```
## Installation
+41 -265
flake.lock
···
"systems": "systems"
},
"locked": {
-
"lastModified": 1750173260,
-
"narHash": "sha256-9P1FziAwl5+3edkfFcr5HeGtQUtrSdk/MksX39GieoA=",
+
"lastModified": 1754433428,
+
"narHash": "sha256-NA/FT2hVhKDftbHSwVnoRTFhes62+7dxZbxj5Gxvghs=",
"owner": "ryantm",
"repo": "agenix",
-
"rev": "531beac616433bac6f9e2a19feb8e99a22a66baf",
+
"rev": "9edb1787864c4f59ae5074ad498b6272b3ec308d",
"type": "github"
},
"original": {
···
"flake-compat": {
"flake": false,
"locked": {
-
"lastModified": 1747046372,
-
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
-
"owner": "edolstra",
-
"repo": "flake-compat",
-
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
-
"type": "github"
-
},
-
"original": {
-
"owner": "edolstra",
-
"repo": "flake-compat",
-
"type": "github"
-
}
-
},
-
"flake-compat_2": {
-
"flake": false,
-
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
···
"type": "github"
}
},
-
"flake-utils_6": {
-
"inputs": {
-
"systems": "systems_7"
-
},
-
"locked": {
-
"lastModified": 1731533236,
-
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
-
"owner": "numtide",
-
"repo": "flake-utils",
-
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
-
"type": "github"
-
},
-
"original": {
-
"owner": "numtide",
-
"repo": "flake-utils",
-
"type": "github"
-
}
-
},
-
"flake-utils_7": {
-
"inputs": {
-
"systems": "systems_8"
-
},
-
"locked": {
-
"lastModified": 1731533236,
-
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
-
"owner": "numtide",
-
"repo": "flake-utils",
-
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
-
"type": "github"
-
},
-
"original": {
-
"owner": "numtide",
-
"repo": "flake-utils",
-
"type": "github"
-
}
-
},
-
"flakey-profile": {
-
"locked": {
-
"lastModified": 1712898590,
-
"narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=",
-
"owner": "lf-",
-
"repo": "flakey-profile",
-
"rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d",
-
"type": "github"
-
},
-
"original": {
-
"owner": "lf-",
-
"repo": "flakey-profile",
-
"type": "github"
-
}
-
},
"flare": {
"inputs": {
"flake-utils": "flake-utils_2",
···
]
},
"locked": {
-
"lastModified": 1754095839,
-
"narHash": "sha256-WnTMsgVZb0TEgk7BPuD3kiEZ+rbhSN+z+hNsyfKyaRo=",
+
"lastModified": 1754248266,
+
"narHash": "sha256-WiCCjfyrdUIHFtEigika1nKpxYTZahovbxcZfBzIFYw=",
"owner": "ByteAtATime",
"repo": "flare",
-
"rev": "ed48facabbd099f3663df5b39438a1ff20f4d751",
+
"rev": "c593d2c88ece3efeca2f07933079947dc3249bac",
"type": "github"
},
"original": {
···
"type": "github"
}
},
-
"ghostty": {
-
"inputs": {
-
"flake-compat": "flake-compat",
-
"flake-utils": "flake-utils_4",
-
"nixpkgs": "nixpkgs_3",
-
"zig": "zig",
-
"zon2nix": "zon2nix"
-
},
-
"locked": {
-
"lastModified": 1754060800,
-
"narHash": "sha256-UA3ppDUMw9XmmTzjW50j8m4sKb+A/zEqAnUiGcrrst8=",
-
"owner": "ghostty-org",
-
"repo": "ghostty",
-
"rev": "469001b7f623f780cfdcb50cc4842f7a4e6386ab",
-
"type": "github"
-
},
-
"original": {
-
"owner": "ghostty-org",
-
"repo": "ghostty",
-
"type": "github"
-
}
-
},
"gitignore": {
"inputs": {
"nixpkgs": [
···
},
"hardware": {
"locked": {
-
"lastModified": 1753122741,
-
"narHash": "sha256-nFxE8lk9JvGelxClCmwuJYftbHqwnc01dRN4DVLUroM=",
+
"lastModified": 1754564048,
+
"narHash": "sha256-dz303vGuzWjzOPOaYkS9xSW+B93PSAJxvBd6CambXVA=",
"owner": "NixOS",
"repo": "nixos-hardware",
-
"rev": "cc66fddc6cb04ab479a1bb062f4d4da27c936a22",
+
"rev": "26ed7a0d4b8741fe1ef1ee6fa64453ca056ce113",
"type": "github"
},
"original": {
···
"type": "github"
}
},
-
"lix": {
-
"flake": false,
-
"locked": {
-
"lastModified": 1753306924,
-
"narHash": "sha256-jLCEW0FvjFhC+c4RHzH+xbkSOxrnpFHnhjOw6sudhx0=",
-
"rev": "1a4393d0aac31aba21f5737ede1b171e11336d77",
-
"type": "tarball",
-
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/1a4393d0aac31aba21f5737ede1b171e11336d77.tar.gz?rev=1a4393d0aac31aba21f5737ede1b171e11336d77"
-
},
-
"original": {
-
"type": "tarball",
-
"url": "https://git.lix.systems/lix-project/lix/archive/release-2.93.tar.gz"
-
}
-
},
-
"lix-module": {
-
"inputs": {
-
"flake-utils": "flake-utils_5",
-
"flakey-profile": "flakey-profile",
-
"lix": "lix",
-
"nixpkgs": [
-
"nixpkgs"
-
]
-
},
-
"locked": {
-
"lastModified": 1753282722,
-
"narHash": "sha256-KYMUrTV7H/RR5/HRnjV5R3rRIuBXMemyJzTLi50NFTs=",
-
"rev": "46a9e8fcfe4be72b4c7c8082ee11d2c42da1e873",
-
"type": "tarball",
-
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/46a9e8fcfe4be72b4c7c8082ee11d2c42da1e873.tar.gz?rev=46a9e8fcfe4be72b4c7c8082ee11d2c42da1e873"
-
},
-
"original": {
-
"type": "tarball",
-
"url": "https://git.lix.systems/lix-project/nixos-module/archive/2.93.3-1.tar.gz"
-
}
-
},
"nix-github-actions": {
"inputs": {
"nixpkgs": [
···
},
"nix-vscode-extensions": {
"inputs": {
-
"flake-utils": "flake-utils_6",
-
"nixpkgs": "nixpkgs_4"
+
"flake-utils": "flake-utils_4",
+
"nixpkgs": "nixpkgs_3"
},
"locked": {
-
"lastModified": 1754100706,
-
"narHash": "sha256-ctRwk+Fjl/jxN+J6GjD9pYmnyHvgR2ub04q1pXeaAho=",
+
"lastModified": 1754878625,
+
"narHash": "sha256-lSPOfzl8u0MQ2MhHmyQ2aTmRx6Jm8fcI9s44iIxjNL8=",
"owner": "nix-community",
"repo": "nix-vscode-extensions",
-
"rev": "1656ec240ab8de9f78eba6f38c5ae5f0d5c6d936",
+
"rev": "0f2ca2371a5b84d35791ac99073bb5b2ed45456f",
"type": "github"
},
"original": {
···
},
"nixpkgs": {
"locked": {
-
"lastModified": 1745391562,
-
"narHash": "sha256-sPwcCYuiEopaafePqlG826tBhctuJsLx/mhKKM5Fmjo=",
+
"lastModified": 1754028485,
+
"narHash": "sha256-IiiXB3BDTi6UqzAZcf2S797hWEPCRZOwyNThJIYhUfk=",
"owner": "NixOS",
"repo": "nixpkgs",
-
"rev": "8a2f738d9d1f1d986b5a4cd2fd2061a7127237d7",
+
"rev": "59e69648d345d6e8fef86158c555730fa12af9de",
"type": "github"
},
"original": {
"owner": "NixOS",
-
"ref": "nixos-unstable",
+
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
···
},
"nixpkgs-unstable": {
"locked": {
-
"lastModified": 1753939845,
-
"narHash": "sha256-K2ViRJfdVGE8tpJejs8Qpvvejks1+A4GQej/lBk5y7I=",
+
"lastModified": 1754725699,
+
"narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
"owner": "nixos",
"repo": "nixpkgs",
-
"rev": "94def634a20494ee057c76998843c015909d6311",
+
"rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054",
"type": "github"
},
"original": {
···
},
"nixpkgs_3": {
"locked": {
-
"lastModified": 1748189127,
-
"narHash": "sha256-zRDR+EbbeObu4V2X5QCd2Bk5eltfDlCr5yvhBwUT6pY=",
-
"rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334",
-
"type": "tarball",
-
"url": "https://releases.nixos.org/nixos/25.05/nixos-25.05.802491.7c43f080a7f2/nixexprs.tar.xz"
-
},
-
"original": {
-
"type": "tarball",
-
"url": "https://channels.nixos.org/nixos-25.05/nixexprs.tar.xz"
-
}
-
},
-
"nixpkgs_4": {
-
"locked": {
"lastModified": 1744868846,
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
"owner": "NixOS",
···
"type": "github"
}
},
-
"nixpkgs_5": {
+
"nixpkgs_4": {
"locked": {
-
"lastModified": 1754028485,
-
"narHash": "sha256-IiiXB3BDTi6UqzAZcf2S797hWEPCRZOwyNThJIYhUfk=",
+
"lastModified": 1754767907,
+
"narHash": "sha256-8OnUzRQZkqtUol9vuUuQC30hzpMreKptNyET2T9lB6g=",
"owner": "nixos",
"repo": "nixpkgs",
-
"rev": "59e69648d345d6e8fef86158c555730fa12af9de",
+
"rev": "c5f08b62ed75415439d48152c2a784e36909b1bc",
"type": "github"
},
"original": {
···
"type": "github"
}
},
-
"nixpkgs_6": {
+
"nixpkgs_5": {
"locked": {
"lastModified": 1741246872,
"narHash": "sha256-Q6pMP4a9ed636qilcYX8XUguvKl/0/LGXhHcRI91p0U=",
···
"type": "github"
}
},
-
"nixpkgs_7": {
+
"nixpkgs_6": {
"locked": {
"lastModified": 1738797219,
"narHash": "sha256-KRwX9Z1XavpgeSDVM/THdFd6uH8rNm/6R+7kIbGa+2s=",
···
"type": "github"
}
},
-
"nixpkgs_8": {
+
"nixpkgs_7": {
"locked": {
"lastModified": 1730768919,
"narHash": "sha256-8AKquNnnSaJRXZxc5YmF/WfmxiHX6MMZZasRP6RRQkE=",
···
"nixvim": {
"inputs": {
"flake-parts": "flake-parts",
-
"nixpkgs": "nixpkgs_6",
+
"nixpkgs": "nixpkgs_5",
"nixvim": "nixvim_2",
"pre-commit-hooks": "pre-commit-hooks"
},
···
"nixvim_2": {
"inputs": {
"flake-parts": "flake-parts_2",
-
"nixpkgs": "nixpkgs_7",
+
"nixpkgs": "nixpkgs_6",
"nuschtosSearch": "nuschtosSearch"
},
"locked": {
···
]
},
"locked": {
-
"lastModified": 1754684884,
-
"narHash": "sha256-GH+UMIOJj7u/bW55dOOpD8HpVpc9WfU61iweM2nM68A=",
+
"lastModified": 1754921734,
+
"narHash": "sha256-rpxK4x5R/24ifhSiE2S3mKmcS/i5BkQRjoEACGb9+Y8=",
"owner": "nix-community",
"repo": "NUR",
-
"rev": "a7f9761c9dd71359cd9a6529078302a83e6deaac",
+
"rev": "562c625b7d509e75a150849b0e9738d5e7d64aa7",
"type": "github"
},
"original": {
···
},
"nuschtosSearch": {
"inputs": {
-
"flake-utils": "flake-utils_7",
+
"flake-utils": "flake-utils_5",
"ixx": "ixx",
"nixpkgs": [
"nixvim",
···
},
"pre-commit-hooks": {
"inputs": {
-
"flake-compat": "flake-compat_2",
+
"flake-compat": "flake-compat",
"gitignore": "gitignore",
-
"nixpkgs": "nixpkgs_8"
+
"nixpkgs": "nixpkgs_7"
},
"locked": {
"lastModified": 1741350116,
···
"disko": "disko",
"flare": "flare",
"frc-nix": "frc-nix",
-
"ghostty": "ghostty",
"hardware": "hardware",
"home-manager": "home-manager_2",
"hyprland-contrib": "hyprland-contrib",
"import-tree": "import-tree",
-
"lix-module": "lix-module",
"nix-vscode-extensions": "nix-vscode-extensions",
-
"nixpkgs": "nixpkgs_5",
+
"nixpkgs": "nixpkgs_4",
"nixpkgs-unstable": "nixpkgs-unstable",
"nixvim": "nixvim",
"nur": "nur",
···
"nixpkgs": [
"nixpkgs"
],
-
"systems": "systems_9"
+
"systems": "systems_7"
},
"locked": {
-
"lastModified": 1753591727,
-
"narHash": "sha256-Ow+qyFckroPS4SQFHcFZ8mKh3HIQ2pQdC6DRjiYF9EE=",
+
"lastModified": 1754801101,
+
"narHash": "sha256-oxWjZ/SfhCvHFNePZcUu+LcE5j4xxuIt/yaoaSvMZk0=",
"owner": "Gerg-L",
"repo": "spicetify-nix",
-
"rev": "26c488b60360e15db372483d826cec89ac532980",
+
"rev": "fcbfc21572518c68317df992929b28df9a1d8468",
"type": "github"
},
"original": {
···
"type": "github"
}
},
-
"systems_8": {
-
"locked": {
-
"lastModified": 1681028828,
-
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
-
"owner": "nix-systems",
-
"repo": "default",
-
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
-
"type": "github"
-
},
-
"original": {
-
"owner": "nix-systems",
-
"repo": "default",
-
"type": "github"
-
}
-
},
-
"systems_9": {
-
"locked": {
-
"lastModified": 1681028828,
-
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
-
"owner": "nix-systems",
-
"repo": "default",
-
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
-
"type": "github"
-
},
-
"original": {
-
"owner": "nix-systems",
-
"repo": "default",
-
"type": "github"
-
}
-
},
"terminal-wakatime": {
"inputs": {
"nixpkgs": [
···
"original": {
"owner": "oscilococcinum",
"repo": "zen-browser-nix",
-
"type": "github"
-
}
-
},
-
"zig": {
-
"inputs": {
-
"flake-compat": [
-
"ghostty",
-
"flake-compat"
-
],
-
"flake-utils": [
-
"ghostty",
-
"flake-utils"
-
],
-
"nixpkgs": [
-
"ghostty",
-
"nixpkgs"
-
]
-
},
-
"locked": {
-
"lastModified": 1748261582,
-
"narHash": "sha256-3i0IL3s18hdDlbsf0/E+5kyPRkZwGPbSFngq5eToiAA=",
-
"owner": "mitchellh",
-
"repo": "zig-overlay",
-
"rev": "aafb1b093fb838f7a02613b719e85ec912914221",
-
"type": "github"
-
},
-
"original": {
-
"owner": "mitchellh",
-
"repo": "zig-overlay",
-
"type": "github"
-
}
-
},
-
"zon2nix": {
-
"inputs": {
-
"flake-utils": [
-
"ghostty",
-
"flake-utils"
-
],
-
"nixpkgs": [
-
"ghostty",
-
"nixpkgs"
-
]
-
},
-
"locked": {
-
"lastModified": 1742104771,
-
"narHash": "sha256-LhidlyEA9MP8jGe1rEnyjGFCzLLgCdDpYeWggibayr0=",
-
"owner": "jcollie",
-
"repo": "zon2nix",
-
"rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613",
-
"type": "github"
-
},
-
"original": {
-
"owner": "jcollie",
-
"repo": "zon2nix",
-
"rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613",
"type": "github"
+7 -20
flake.nix
···
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
-
# Lix
-
lix-module = {
-
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.3-1.tar.gz";
-
inputs.nixpkgs.follows = "nixpkgs";
-
};
-
# NixOS hardware configuration
hardware.url = "github:NixOS/nixos-hardware/master";
···
nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions";
-
ghostty = {
-
url = "github:ghostty-org/ghostty";
-
};
-
frc-nix = {
url = "github:frc4451/frc-nix";
inputs.nixpkgs.follows = "nixpkgs";
···
self,
nixpkgs,
nixpkgs-unstable,
-
lix-module,
agenix,
home-manager,
nur,
···
nixpkgs.overlays = [
(final: prev: {
unstable = import nixpkgs-unstable {
+
system = final.system;
config.allowUnfree = true;
};
···
in
{
# NixOS configuration entrypoint
-
# Available through 'nixos-rebuild --flake .#your-hostname'
+
# Available through 'nixos-rebuild --flake .#hostname'
nixosConfigurations = {
moonlark = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs outputs; };
-
-
# > Our main nixos configuration file <
modules = [
-
lix-module.nixosModules.default
inputs.disko.nixosModules.disko
{ disko.devices.disk.disk1.device = "/dev/vda"; }
agenix.nixosModules.default
unstable-overlays
{ nixpkgs.hostPlatform = "x86_64-linux"; }
-
./nixos/machines/moonlark/configuration.nix
+
./machines/moonlark
nur.modules.nixos.default
];
};
};
# Standalone home-manager configurations
-
# Available through 'home-manager --flake .#username@hostname'
+
# Available through 'home-manager --flake .#hostname'
homeConfigurations = {
"tacyon" = home-manager.lib.homeManagerConfiguration {
extraSpecialArgs = {
···
nixpkgs-unstable = nixpkgs-unstable;
};
modules = [
-
./home-manager/machines/tacyon
+
./machines/tacyon
unstable-overlays
{ nixpgs.hostPlatform = "aarch64-linux"; }
];
···
nixpkgs-unstable = nixpkgs-unstable;
};
modules = [
-
./home-manager/machines/nest
+
./machines/nest
unstable-overlays
{ nixpkgs.hostPlatform = "x86_64-linux"; }
];
···
nixpkgs-unstable = nixpkgs-unstable;
};
modules = [
-
./home-manager/machines/ember
+
./machines/ember
unstable-overlays
{ nixpkgs.hostPlatform = "x86_64-linux"; }
];
home-manager/dots/README.md dots/README.md
home-manager/dots/anthropic.sh dots/anthropic.sh
home-manager/dots/charge-alert.sh dots/charge-alert.sh
home-manager/dots/copilot.sh dots/copilot.sh
home-manager/dots/face.jpeg dots/face.jpeg
+1 -1
home-manager/dots/hyprland.conf dots/hyprland.conf
···
# Execute your favorite apps at launch
exec-once = hyprpaper
exec-once = hyprsunset
-
exec-once = sleep 1; ~/.config/hypr/randomize.sh
+
exec-once = sleep 1; chngwall
exec-once = ~/.config/hypr/charge-alert.sh
exec-once = lxsession
exec-once = wluma
home-manager/dots/hyprlock.conf dots/hyprlock.conf
home-manager/dots/hyprpaper.conf dots/hyprpaper.conf
home-manager/dots/hyprrec.sh dots/hyprrec.sh
home-manager/dots/lxde-pi-rc.xml dots/lxde-pi-rc.xml
home-manager/dots/macchiato.conf dots/macchiato.conf
home-manager/dots/prettify-ss.sh dots/prettify-ss.sh
-10
home-manager/dots/randomize-wallpaper.sh
···
-
#!/usr/bin/env bash
-
-
WALLPAPER_DIR="$HOME/.config/wallpapers"
-
CURRENT_WALL=$(hyprctl hyprpaper listloaded)
-
-
# Get a random wallpaper that is not the current one
-
WALLPAPER=$(find -L "$WALLPAPER_DIR" -type f ! -name "$(basename "$CURRENT_WALL")" | shuf -n 1)
-
-
# Apply the selected wallpaper
-
hyprctl hyprpaper reload ,"$WALLPAPER"
home-manager/dots/sunpaperconfig dots/sunpaperconfig
home-manager/dots/tofi-emoji.sh dots/tofi-emoji.sh
home-manager/dots/user.js dots/user.js
home-manager/dots/wallpapers/acon-forest.jpg dots/wallpapers/acon-forest.jpg
home-manager/dots/wallpapers/acon-fsh.jpg dots/wallpapers/acon-fsh.jpg
home-manager/dots/wallpapers/acon-gradient-clouds.jpg dots/wallpapers/acon-gradient-clouds.jpg
home-manager/dots/wallpapers/acon-pier.jpg dots/wallpapers/acon-pier.jpg
home-manager/dots/wallpapers/acon-rocks.jpg dots/wallpapers/acon-rocks.jpg
home-manager/dots/wallpapers/acon-star.jpg dots/wallpapers/acon-star.jpg
home-manager/dots/wallpapers/annie-athena.jpg dots/wallpapers/annie-athena.jpg
home-manager/dots/wallpapers/candy-stained-glass.jpg dots/wallpapers/candy-stained-glass.jpg
home-manager/dots/wallpapers/highway.jpg dots/wallpapers/highway.jpg
home-manager/dots/wallpapers/kailing-canyon.jpg dots/wallpapers/kailing-canyon.jpg
home-manager/dots/wallpapers/kailing-comet.jpg dots/wallpapers/kailing-comet.jpg
home-manager/dots/wallpapers/kailing-shooting-star.jpg dots/wallpapers/kailing-shooting-star.jpg
home-manager/dots/wallpapers/kailing-swirls.jpg dots/wallpapers/kailing-swirls.jpg
home-manager/dots/wallpapers/tongyu-catcat.jpg dots/wallpapers/tongyu-catcat.jpg
home-manager/dots/wallpapers/tongyu-waves.jpg dots/wallpapers/tongyu-waves.jpg
home-manager/dots/wallpapers/yessa-cat.jpg dots/wallpapers/yessa-cat.jpg
+2 -2
home-manager/machines/ember/default.nix machines/ember/default.nix
···
}:
{
imports = [
-
(inputs.import-tree ../../modules)
+
(inputs.import-tree ../../modules/home)
];
nixpkgs.enable = true;
···
];
};
-
dots = {
+
atelier = {
shell.enable = true;
};
+2 -2
home-manager/machines/moonlark/default.nix machines/moonlark/home/default.nix
···
{ inputs, ... }:
{
imports = [
-
(inputs.import-tree ../../modules)
+
(inputs.import-tree ../../../modules/home)
];
nixpkgs.enable = true;
···
homeDirectory = "/home/kierank";
};
-
dots = {
+
atelier = {
shell = {
enable = true;
};
+2 -2
home-manager/machines/nest/default.nix machines/nest/default.nix
···
}:
{
imports = [
-
(inputs.import-tree ../../modules)
+
(inputs.import-tree ../../modules/home)
];
nixpkgs.enable = true;
···
];
};
-
dots = {
+
atelier = {
shell.enable = true;
};
+2 -2
home-manager/machines/tacyon/default.nix machines/tacyon/default.nix
···
}:
{
imports = [
-
(inputs.import-tree ../../modules)
+
(inputs.import-tree ../../modules/home)
];
nixpkgs.enable = true;
···
];
};
-
dots = {
+
atelier = {
shell.enable = true;
theming.enable = true;
};
+2 -2
home-manager/modules/aesthetics/theming.nix modules/home/aesthetics/theming.nix
···
inputs.catppuccin.homeModules.catppuccin
];
-
options.dots.theming.enable = lib.mkEnableOption "Enable Catppuccin and GTK/QT themeing";
-
config = lib.mkIf config.dots.theming.enable {
+
options.atelier.theming.enable = lib.mkEnableOption "Enable Catppuccin and GTK/QT themeing";
+
config = lib.mkIf config.atelier.theming.enable {
catppuccin = {
enable = true;
accent = "green";
-26
home-manager/modules/aesthetics/wallpapers.nix
···
-
{ lib, config, ... }:
-
{
-
options.dots.wallpapers.enable = lib.mkEnableOption "symlink a bunch of wallpapers";
-
config = lib.mkIf config.dots.wallpapers.enable {
-
xdg.configFile."wallpapers/randomize.sh".source = ../../dots/randomize-wallpaper.sh;
-
xdg.configFile."wallpapers/acon-pier.jpg".source = ../../dots/wallpapers/acon-pier.jpg;
-
xdg.configFile."wallpapers/acon-forest.jpg".source = ../../dots/wallpapers/acon-forest.jpg;
-
xdg.configFile."wallpapers/acon-gradient-clouds.jpg".source =
-
../../dots/wallpapers/acon-gradient-clouds.jpg;
-
xdg.configFile."wallpapers/acon-fsh.jpg".source = ../../dots/wallpapers/acon-fsh.jpg;
-
xdg.configFile."wallpapers/tongyu-waves.jpg".source = ../../dots/wallpapers/tongyu-waves.jpg;
-
xdg.configFile."wallpapers/acon-rocks.jpg".source = ../../dots/wallpapers/acon-rocks.jpg;
-
xdg.configFile."wallpapers/kailing-comet.jpg".source = ../../dots/wallpapers/kailing-comet.jpg;
-
xdg.configFile."wallpapers/acon-star.jpg".source = ../../dots/wallpapers/acon-star.jpg;
-
xdg.configFile."wallpapers/kailing-canyon.jpg".source = ../../dots/wallpapers/kailing-canyon.jpg;
-
xdg.configFile."wallpapers/kailing-swirls.jpg".source = ../../dots/wallpapers/kailing-swirls.jpg;
-
xdg.configFile."wallpapers/highway.jpg".source = ../../dots/wallpapers/highway.jpg;
-
xdg.configFile."wallpapers/kailing-shooting-star.jpg".source =
-
../../dots/wallpapers/kailing-shooting-star.jpg;
-
xdg.configFile."wallpapers/yessa-cat.jpg".source = ../../dots/wallpapers/yessa-cat.jpg;
-
xdg.configFile."wallpapers/annie-athena.jpg".source = ../../dots/wallpapers/annie-athena.jpg;
-
xdg.configFile."wallpapers/candy-stained-glass.jpg".source =
-
../../dots/wallpapers/candy-stained-glass.jpg;
-
xdg.configFile."wallpapers/tongyu-catcat.jpg".source = ../../dots/wallpapers/tongyu-catcat.jpg;
-
};
-
}
home-manager/modules/apps/_crush-options.nix modules/home/apps/crush/_crush-options.nix
+2 -2
home-manager/modules/apps/alacritty.nix modules/home/apps/alacritty.nix
···
{ lib, config, ... }:
{
-
options.dots.terminal.alacritty.enable = lib.mkEnableOption "Enable Alacritty terminal config";
-
config = lib.mkIf config.dots.terminal.alacritty.enable {
+
options.atelier.terminal.alacritty.enable = lib.mkEnableOption "Enable Alacritty terminal config";
+
config = lib.mkIf config.atelier.terminal.alacritty.enable {
catppuccin.alacritty.flavor = "mocha";
programs.alacritty = {
enable = true;
-4
home-manager/modules/apps/crush-module.nix modules/home/apps/crush/crush-module.nix
···
home.file.".config/crush/crush.json" = lib.mkIf (config.programs.crush.settings != { }) {
text = builtins.toJSON config.programs.crush.settings;
};
-
-
# Optionally, add config file sources if needed
-
xdg.configFile."crush/copilot.sh".source = ../../dots/copilot.sh;
-
xdg.configFile."crush/anthropic.sh".source = ../../dots/anthropic.sh;
};
}
+4 -4
home-manager/modules/apps/crush.nix modules/home/apps/crush.nix
···
...
}:
{
-
options.dots.apps.crush.enable = lib.mkEnableOption "Enable Crush config";
-
config = lib.mkIf config.dots.apps.crush.enable {
+
options.atelier.apps.crush.enable = lib.mkEnableOption "Enable Crush config";
+
config = lib.mkIf config.atelier.apps.crush.enable {
programs.crush = {
enable = true;
settings = {
···
};
};
-
xdg.configFile."crush/copilot.sh".source = ../../dots/copilot.sh;
-
xdg.configFile."crush/anthropic.sh".source = ../../dots/anthropic.sh;
+
xdg.configFile."crush/copilot.sh".source = ../../../dots/copilot.sh;
+
xdg.configFile."crush/anthropic.sh".source = ../../../dots/anthropic.sh;
};
}
+2 -2
home-manager/modules/apps/ghostty.nix modules/home/apps/ghostty.nix
···
{ lib, config, ... }:
{
-
options.dots.terminal.ghostty.enable = lib.mkEnableOption "Enable Ghostty terminal config";
-
config = lib.mkIf config.dots.terminal.ghostty.enable {
+
options.atelier.terminal.ghostty.enable = lib.mkEnableOption "Enable Ghostty terminal config";
+
config = lib.mkIf config.atelier.terminal.ghostty.enable {
home.file.".config/ghostty/config".text = ''
foreground = "#a7b1d3"
mouse-hide-while-typing = true
+2 -2
home-manager/modules/apps/git.nix modules/home/apps/git.nix
···
{ lib, config, ... }:
{
-
options.dots.shell.git.enable = lib.mkEnableOption {
+
options.atelier.shell.git.enable = lib.mkEnableOption {
description = "Enable global Git configuration";
};
-
config = lib.mkIf config.dots.shell.git.enable {
+
config = lib.mkIf config.atelier.shell.git.enable {
programs.git = {
enable = true;
userName = "Kieran Klukas";
+2 -2
home-manager/modules/apps/irssi.nix modules/home/apps/irssi.nix
···
{ lib, config, ... }:
{
-
options.dots.apps.irssi.enable = lib.mkEnableOption "Enable irssi config";
-
config = lib.mkIf config.dots.apps.irssi.enable {
+
options.atelier.apps.irssi.enable = lib.mkEnableOption "Enable irssi config";
+
config = lib.mkIf config.atelier.apps.irssi.enable {
programs.irssi = {
enable = true;
extraConfig = ''
+2 -2
home-manager/modules/apps/qutebrowser.nix modules/home/apps/qutebrowser.nix
···
{ lib, config, ... }:
{
-
options.dots.apps.qutebrowser.enable = lib.mkEnableOption "Enable Qutebrowser config";
-
config = lib.mkIf config.dots.apps.qutebrowser.enable {
+
options.atelier.apps.qutebrowser.enable = lib.mkEnableOption "Enable Qutebrowser config";
+
config = lib.mkIf config.atelier.apps.qutebrowser.enable {
programs.qutebrowser = {
enable = true;
settings = {
+2 -2
home-manager/modules/apps/spotify.nix modules/home/apps/spotify.nix
···
inputs.spicetify-nix.homeManagerModules.default
];
-
options.dots.apps.spotify.enable = lib.mkEnableOption "Enable Spotify config (spicetify)";
-
config = lib.mkIf config.dots.apps.spotify.enable {
+
options.atelier.apps.spotify.enable = lib.mkEnableOption "Enable Spotify config (spicetify)";
+
config = lib.mkIf config.atelier.apps.spotify.enable {
programs.spicetify =
let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
+2 -2
home-manager/modules/apps/tofi.nix modules/home/apps/tofi.nix
···
...
}:
{
-
options.dots.apps.tofi.enable = lib.mkEnableOption "Enable tofi config";
+
options.atelier.apps.tofi.enable = lib.mkEnableOption "Enable tofi config";
-
config = lib.mkIf config.dots.apps.tofi.enable {
+
config = lib.mkIf config.atelier.apps.tofi.enable {
catppuccin.tofi.enable = false;
# tofi config
+2 -2
home-manager/modules/apps/vscode.nix modules/home/apps/vscode.nix
···
...
}:
{
-
options.dots.apps.vscode.enable = lib.mkEnableOption "Enable VSCode config";
-
config = lib.mkIf config.dots.apps.vscode.enable {
+
options.atelier.apps.vscode.enable = lib.mkEnableOption "Enable VSCode config";
+
config = lib.mkIf config.atelier.apps.vscode.enable {
nixpkgs.overlays = [
inputs.nix-vscode-extensions.overlays.default
inputs.catppuccin-vsc.overlays.default
home-manager/modules/system/nixpkgs.nix modules/home/system/nixpkgs.nix
+3 -4
home-manager/modules/system/shell.nix modules/home/system/shell.nix
···
...
}:
{
-
options.dots.shell.enable = lib.mkEnableOption "Custom shell config";
-
config = lib.mkIf config.dots.shell.enable {
+
options.atelier.shell.enable = lib.mkEnableOption "Custom shell config";
+
config = lib.mkIf config.atelier.shell.enable {
programs.oh-my-posh = {
enable = true;
enableZshIntegration = true;
···
rr = "rm -Rf";
ghrpc = "gh repo create -c";
goops = "git commit --amend --no-edit && git push --force-with-lease";
-
chngwall = "~/.config/hypr/randomize.sh";
vi = "nvim";
vim = "nvim";
};
···
neofetch
];
-
dots.shell.git.enable = lib.mkDefault true;
+
atelier.shell.git.enable = lib.mkDefault true;
};
}
-57
home-manager/modules/wm/hyprland/default.nix
···
-
{
-
lib,
-
pkgs,
-
config,
-
...
-
}:
-
{
-
options.dots.wm.hyprland.enable = lib.mkEnableOption "Enable Hyprland config";
-
config = lib.mkIf config.dots.wm.hyprland.enable {
-
dots.apps.tofi.enable = true;
-
programs.hyprlock.enable = true;
-
-
dots.wallpapers.enable = true;
-
-
xdg.configFile."hypr/macchiato.conf".source = ../../../dots/macchiato.conf;
-
xdg.configFile."hypr/hyprland.conf".source = ../../../dots/hyprland.conf;
-
xdg.configFile."hypr/prettify-ss.sh".source = ../../../dots/prettify-ss.sh;
-
xdg.configFile."hypr/tofi-emoji.sh".source = ../../../dots/tofi-emoji.sh;
-
xdg.configFile."hypr/hyprlock.conf".source = ../../../dots/hyprlock.conf;
-
xdg.configFile."face.jpeg".source = ../../../dots/face.jpeg;
-
xdg.configFile."hypr/hyprpaper.conf".source = ../../../dots/hyprpaper.conf;
-
xdg.configFile."hypr/hyprrec.sh".source = ../../../dots/hyprrec.sh;
-
xdg.configFile."hypr/charge-alert.sh".source = ../../../dots/charge-alert.sh;
-
-
xdg.portal = {
-
enable = true;
-
extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
-
configPackages = with pkgs; [ xdg-desktop-portal-gtk ];
-
};
-
-
services.mako = {
-
enable = true;
-
settings = {
-
default-timeout = 4000;
-
margin = "58,6";
-
font = "Fira Sans 12";
-
border-radius = 5;
-
};
-
};
-
-
services.udiskie = {
-
enable = true;
-
settings = {
-
program_options = {
-
udisks_version = 2;
-
tray = false;
-
};
-
notifications = {
-
device_unmounted = false;
-
device_added = -1;
-
device_removed = -1;
-
device_mounted = -1;
-
};
-
};
-
};
-
};
-
}
+1 -1
home-manager/modules/wm/hyprland/hypridle.nix modules/home/wm/hyprland/hypridle.nix
···
...
}:
{
-
config = lib.mkIf config.dots.wm.hyprland.enable {
+
config = lib.mkIf config.atelier.wm.hyprland.enable {
services.hypridle = {
enable = true;
settings = {
+1 -1
home-manager/modules/wm/hyprland/waybar.nix modules/home/wm/hyprland/waybar.nix
···
};
in
{
-
config = lib.mkIf config.dots.wm.hyprland.enable {
+
config = lib.mkIf config.atelier.wm.hyprland.enable {
# Let it try to start a few more times
systemd.user.services.waybar = {
Unit.StartLimitBurst = 30;
+45
modules/home/aesthetics/wallpapers.nix
···
+
{
+
lib,
+
config,
+
pkgs,
+
...
+
}:
+
{
+
options.atelier.wallpapers.enable = lib.mkEnableOption "symlink a bunch of wallpapers";
+
config = lib.mkIf config.atelier.wallpapers.enable {
+
home.packages = with pkgs; [
+
(writeShellScriptBin "chngwall" ''
+
#!/usr/bin/env bash
+
+
WALLPAPER_DIR="$HOME/.config/wallpapers"
+
CURRENT_WALL=$(hyprctl hyprpaper listloaded)
+
+
# Get a random wallpaper that is not the current one
+
WALLPAPER=$(find -L "$WALLPAPER_DIR" -type f ! -name "$(basename "$CURRENT_WALL")" | shuf -n 1)
+
+
# Apply the selected wallpaper
+
hyprctl hyprpaper reload ,"$WALLPAPER"
+
'')
+
];
+
+
xdg.configFile."wallpapers/acon-pier.jpg".source = ../../../dots/wallpapers/acon-pier.jpg;
+
xdg.configFile."wallpapers/acon-forest.jpg".source = ../../../dots/wallpapers/acon-forest.jpg;
+
xdg.configFile."wallpapers/acon-gradient-clouds.jpg".source =
+
../../../dots/wallpapers/acon-gradient-clouds.jpg;
+
xdg.configFile."wallpapers/acon-fsh.jpg".source = ../../../dots/wallpapers/acon-fsh.jpg;
+
xdg.configFile."wallpapers/tongyu-waves.jpg".source = ../../../dots/wallpapers/tongyu-waves.jpg;
+
xdg.configFile."wallpapers/acon-rocks.jpg".source = ../../../dots/wallpapers/acon-rocks.jpg;
+
xdg.configFile."wallpapers/kailing-comet.jpg".source = ../../../dots/wallpapers/kailing-comet.jpg;
+
xdg.configFile."wallpapers/acon-star.jpg".source = ../../../dots/wallpapers/acon-star.jpg;
+
xdg.configFile."wallpapers/kailing-canyon.jpg".source = ../../../dots/wallpapers/kailing-canyon.jpg;
+
xdg.configFile."wallpapers/kailing-swirls.jpg".source = ../../../dots/wallpapers/kailing-swirls.jpg;
+
xdg.configFile."wallpapers/highway.jpg".source = ../../../dots/wallpapers/highway.jpg;
+
xdg.configFile."wallpapers/kailing-shooting-star.jpg".source =
+
../../../dots/wallpapers/kailing-shooting-star.jpg;
+
xdg.configFile."wallpapers/yessa-cat.jpg".source = ../../../dots/wallpapers/yessa-cat.jpg;
+
xdg.configFile."wallpapers/annie-athena.jpg".source = ../../../dots/wallpapers/annie-athena.jpg;
+
xdg.configFile."wallpapers/candy-stained-glass.jpg".source =
+
../../../dots/wallpapers/candy-stained-glass.jpg;
+
xdg.configFile."wallpapers/tongyu-catcat.jpg".source = ../../../dots/wallpapers/tongyu-catcat.jpg;
+
};
+
}
+57
modules/home/wm/hyprland/default.nix
···
+
{
+
lib,
+
pkgs,
+
config,
+
...
+
}:
+
{
+
options.atelier.wm.hyprland.enable = lib.mkEnableOption "Enable Hyprland config";
+
config = lib.mkIf config.atelier.wm.hyprland.enable {
+
atelier.apps.tofi.enable = true;
+
programs.hyprlock.enable = true;
+
+
atelier.wallpapers.enable = true;
+
+
xdg.configFile."hypr/macchiato.conf".source = ../../../../dots/macchiato.conf;
+
xdg.configFile."hypr/hyprland.conf".source = ../../../../dots/hyprland.conf;
+
xdg.configFile."hypr/prettify-ss.sh".source = ../../../../dots/prettify-ss.sh;
+
xdg.configFile."hypr/tofi-emoji.sh".source = ../../../../dots/tofi-emoji.sh;
+
xdg.configFile."hypr/hyprlock.conf".source = ../../../../dots/hyprlock.conf;
+
xdg.configFile."face.jpeg".source = ../../../../dots/face.jpeg;
+
xdg.configFile."hypr/hyprpaper.conf".source = ../../../../dots/hyprpaper.conf;
+
xdg.configFile."hypr/hyprrec.sh".source = ../../../../dots/hyprrec.sh;
+
xdg.configFile."hypr/charge-alert.sh".source = ../../../../dots/charge-alert.sh;
+
+
xdg.portal = {
+
enable = true;
+
extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
+
configPackages = with pkgs; [ xdg-desktop-portal-gtk ];
+
};
+
+
services.mako = {
+
enable = true;
+
settings = {
+
default-timeout = 4000;
+
margin = "58,6";
+
font = "Fira Sans 12";
+
border-radius = 5;
+
};
+
};
+
+
services.udiskie = {
+
enable = true;
+
settings = {
+
program_options = {
+
udisks_version = 2;
+
tray = false;
+
};
+
notifications = {
+
device_unmounted = false;
+
device_added = -1;
+
device_removed = -1;
+
device_mounted = -1;
+
};
+
};
+
};
+
};
+
}
+169 -206
nixos/machines/moonlark/configuration.nix machines/moonlark/default.nix
···
./home-manager.nix
./disk-config.nix
-
(inputs.import-tree ../../modules)
+
(inputs.import-tree ../../modules/nixos)
];
nixpkgs = {
···
time.timeZone = "America/New_York";
# grouped for readability
-
environment.systemPackages = map lib.lowPrio (
-
let
-
core = [
-
pkgs.coreutils
-
pkgs.calc
-
pkgs.screen
-
pkgs.xdg-user-dirs
-
pkgs.libnotify
-
pkgs.notify-desktop
-
pkgs.bc
-
pkgs.jq
-
pkgs.psmisc
-
];
-
terminals = [
-
pkgs.alacritty
-
inputs.ghostty.packages.x86_64-linux.default
-
];
-
cli_utils = [
-
pkgs.bat
-
pkgs.fd
-
pkgs.eza
-
pkgs.xh
-
pkgs.dust
-
pkgs.ripgrep
-
pkgs.ripgrep-all
-
pkgs.glow
-
pkgs.gitui
-
pkgs.lazygit
-
pkgs.clipse
-
pkgs.direnv
-
pkgs.nix-output-monitor
-
pkgs.nixpkgs-review
-
pkgs.nix-prefetch
-
pkgs.arduino-cli
-
pkgs.zsh
-
pkgs.starship
-
pkgs.gum
-
pkgs.unstable.wakatime-cli
-
inputs.terminal-wakatime.packages.x86_64-linux.default
-
];
-
networking = [
-
pkgs.curl
-
pkgs.wget
-
pkgs.dogdns
-
pkgs.inetutils
-
pkgs.mosh
-
pkgs.ngrok
-
pkgs.networkmanagerapplet
-
pkgs.networkmanager-iodine
-
pkgs.iodine
-
];
-
nix_tools = [
-
inputs.nixvim.packages.x86_64-linux.default
-
pkgs.nixd
-
pkgs.nil
-
pkgs.nixfmt-rfc-style
-
inputs.agenix.packages.x86_64-linux.default
-
];
-
security = [
-
pkgs.openssl
-
pkgs.gpgme
-
pkgs.gnupg
-
pkgs.unstable.mitmproxy
-
pkgs.caido
-
];
-
editors = [
-
inputs.zed.packages.x86_64-linux.default
-
pkgs.unstable.zed-editor
-
pkgs.arduino-ide
-
];
-
browsers = [
-
pkgs.firefox
-
(pkgs.chromium.override { enableWideVine = true; })
-
];
-
wayland = [
-
pkgs.swww
-
pkgs.wluma
-
pkgs.brightnessctl
-
pkgs.hyprpaper
-
pkgs.hyprsunset
-
pkgs.wl-clipboard
-
pkgs.grim
-
pkgs.slurp
-
pkgs.wtype
-
pkgs.mako
-
pkgs.unstable.hyprpicker
-
pkgs.wl-screenrec
-
inputs.hyprland-contrib.packages.${pkgs.system}.grimblast
-
pkgs.playerctl
-
pkgs.libnotify
-
pkgs.notify-desktop
-
pkgs.lxde.lxsession
-
];
-
gnome = [
-
pkgs.gnome-online-accounts
-
pkgs.gnome-online-accounts-gtk
-
pkgs.gnome-disk-utility
-
pkgs.baobab
-
pkgs.simple-scan
-
pkgs.file-roller
-
pkgs.font-manager
-
pkgs.nautilus
-
pkgs.loupe
-
pkgs.totem
-
pkgs.overskride
-
];
-
dev_langs = [
-
pkgs.nodejs_22
-
pkgs.unstable.bun
-
pkgs.python3
-
pkgs.go
-
pkgs.gopls
-
pkgs.gotools
-
pkgs.go-tools
-
pkgs.gcc
-
pkgs.rustc
-
pkgs.cargo
-
pkgs.jdk23
-
pkgs.ruby
-
pkgs.cmake
-
pkgs.unstable.biome
-
pkgs.unstable.apktool
-
pkgs.nodePackages_latest.prisma
-
pkgs.unstable.zola
-
];
-
media = [
-
pkgs.ffmpeg
-
pkgs.video-trimmer
-
pkgs.pitivi
-
pkgs.audacity
-
pkgs.unstable.amberol
-
pkgs.zoom-us
-
];
-
graphics = [
-
pkgs.imagemagick
-
pkgs.inkscape
-
pkgs.blender
-
pkgs.exiftool
-
pkgs.unstable.aseprite
-
pkgs.godot_4
-
pkgs.unstable.kikit
-
pkgs.openboardview
-
pkgs.bambu-studio
-
pkgs.unstable.orca-slicer
-
pkgs.qflipper
-
];
-
office = [
-
pkgs.slack
-
pkgs.libreoffice
-
pkgs.unstable.zotero
-
];
-
gaming = [
-
pkgs.prismlauncher
-
pkgs.vesktop
-
pkgs.cava
-
pkgs.gobang
-
pkgs.love
-
];
-
frc = [
-
inputs.frc-nix.packages.${pkgs.system}.elastic-dashboard
-
inputs.frc-nix.packages.${pkgs.system}.pathplanner
-
inputs.frc-nix.packages.${pkgs.system}.roborioteamnumbersetter
-
inputs.frc-nix.packages.${pkgs.system}.sysid
-
inputs.frc-nix.packages.${pkgs.system}.wpilib-utility
-
inputs.frc-nix.packages.${pkgs.system}.advantagescope
-
];
-
misc = [
-
pkgs.invoice
-
pkgs.pop
-
pkgs.vhs
-
pkgs.torrential
-
inputs.flare.packages.x86_64-linux.default
-
pkgs.unstable.ollama
-
pkgs.unstable.claude-code
-
pkgs.udiskie
-
pkgs.neofetch
-
pkgs.unstable.kicad-testing
-
pkgs.zenity
-
pkgs.atproto-goat
-
];
-
in
-
core
-
++ terminals
-
++ cli_utils
-
++ networking
-
++ nix_tools
-
++ security
-
++ editors
-
++ browsers
-
++ wayland
-
++ gnome
-
++ dev_langs
-
++ media
-
++ graphics
-
++ office
-
++ gaming
-
++ frc
-
++ misc
-
);
+
environment.systemPackages = [
+
# core
+
pkgs.coreutils
+
pkgs.calc
+
pkgs.screen
+
pkgs.xdg-user-dirs
+
pkgs.libnotify
+
pkgs.notify-desktop
+
pkgs.bc
+
pkgs.jq
+
pkgs.psmisc
+
# terminals
+
pkgs.alacritty
+
pkgs.unstable.ghostty
+
# cli_utils
+
pkgs.bat
+
pkgs.fd
+
pkgs.eza
+
pkgs.xh
+
pkgs.dust
+
pkgs.ripgrep
+
pkgs.ripgrep-all
+
pkgs.glow
+
pkgs.gitui
+
pkgs.lazygit
+
pkgs.clipse
+
pkgs.direnv
+
pkgs.nix-output-monitor
+
pkgs.nixpkgs-review
+
pkgs.nix-prefetch
+
pkgs.arduino-cli
+
pkgs.zsh
+
pkgs.starship
+
pkgs.gum
+
pkgs.unstable.wakatime-cli
+
inputs.terminal-wakatime.packages.x86_64-linux.default
+
# networking
+
pkgs.curl
+
pkgs.wget
+
pkgs.dogdns
+
pkgs.inetutils
+
pkgs.mosh
+
pkgs.ngrok
+
pkgs.networkmanagerapplet
+
pkgs.networkmanager-iodine
+
pkgs.iodine
+
# nix_tools
+
inputs.nixvim.packages.x86_64-linux.default
+
pkgs.nixd
+
pkgs.nil
+
pkgs.nixfmt-rfc-style
+
inputs.agenix.packages.x86_64-linux.default
+
pkgs.lix
+
# security
+
pkgs.openssl
+
pkgs.gpgme
+
pkgs.gnupg
+
pkgs.unstable.mitmproxy
+
pkgs.caido
+
# editors
+
inputs.zed.packages.x86_64-linux.default
+
pkgs.unstable.zed-editor
+
pkgs.arduino-ide
+
# browsers
+
pkgs.firefox
+
(pkgs.chromium.override { enableWideVine = true; })
+
# wayland
+
pkgs.swww
+
pkgs.wluma
+
pkgs.brightnessctl
+
pkgs.hyprpaper
+
pkgs.hyprsunset
+
pkgs.wl-clipboard
+
pkgs.grim
+
pkgs.slurp
+
pkgs.wtype
+
pkgs.mako
+
pkgs.unstable.hyprpicker
+
pkgs.wl-screenrec
+
inputs.hyprland-contrib.packages.${pkgs.system}.grimblast
+
pkgs.playerctl
+
pkgs.libnotify
+
pkgs.notify-desktop
+
pkgs.lxde.lxsession
+
# gnome
+
pkgs.gnome-online-accounts
+
pkgs.gnome-online-accounts-gtk
+
pkgs.gnome-disk-utility
+
pkgs.baobab
+
pkgs.simple-scan
+
pkgs.file-roller
+
pkgs.font-manager
+
pkgs.nautilus
+
pkgs.loupe
+
pkgs.totem
+
pkgs.overskride
+
# dev_langs
+
pkgs.nodejs_22
+
pkgs.unstable.bun
+
pkgs.python3
+
pkgs.go
+
pkgs.gopls
+
pkgs.gotools
+
pkgs.go-tools
+
pkgs.gcc
+
pkgs.rustc
+
pkgs.cargo
+
pkgs.jdk23
+
pkgs.ruby
+
pkgs.cmake
+
pkgs.unstable.biome
+
pkgs.unstable.apktool
+
pkgs.nodePackages_latest.prisma
+
pkgs.unstable.zola
+
# media
+
pkgs.ffmpeg
+
pkgs.video-trimmer
+
pkgs.pitivi
+
pkgs.audacity
+
pkgs.unstable.amberol
+
pkgs.zoom-us
+
# graphics
+
pkgs.imagemagick
+
pkgs.inkscape
+
pkgs.blender
+
pkgs.exiftool
+
pkgs.unstable.aseprite
+
pkgs.godot_4
+
pkgs.unstable.kikit
+
pkgs.openboardview
+
pkgs.qflipper
+
# office
+
pkgs.slack
+
pkgs.libreoffice
+
pkgs.unstable.zotero
+
# gaming
+
pkgs.prismlauncher
+
pkgs.vesktop
+
pkgs.cava
+
pkgs.gobang
+
pkgs.love
+
#frc
+
inputs.frc-nix.packages.${pkgs.system}.elastic-dashboard
+
inputs.frc-nix.packages.${pkgs.system}.pathplanner
+
inputs.frc-nix.packages.${pkgs.system}.roborioteamnumbersetter
+
inputs.frc-nix.packages.${pkgs.system}.sysid
+
inputs.frc-nix.packages.${pkgs.system}.wpilib-utility
+
inputs.frc-nix.packages.${pkgs.system}.advantagescope
+
# misc
+
pkgs.invoice
+
pkgs.pop
+
pkgs.vhs
+
pkgs.torrential
+
inputs.flare.packages.x86_64-linux.default
+
pkgs.unstable.ollama
+
pkgs.unstable.claude-code
+
pkgs.udiskie
+
pkgs.neofetch
+
pkgs.unstable.kicad-testing
+
pkgs.zenity
+
pkgs.atproto-goat
+
];
programs.nh = {
enable = true;
···
];
age.secrets = {
wifi = {
-
file = ../../../secrets/wifi.age;
+
file = ../../secrets/wifi.age;
owner = "kierank";
};
resend = {
-
file = ../../../secrets/resend.age;
+
file = ../../secrets/resend.age;
owner = "kierank";
};
wakatime = {
-
file = ../../../secrets/wakatime.age;
+
file = ../../secrets/wakatime.age;
path = "/home/kierank/.wakatime.cfg";
owner = "kierank";
};
bluesky = {
-
file = ../../../secrets/bluesky.age;
+
file = ../../secrets/bluesky.age;
owner = "kierank";
};
iodine = {
-
file = ../../../secrets/iodine.age;
+
file = ../../secrets/iodine.age;
owner = "kierank";
};
};
···
VISUAL = "nvim";
};
-
modules = {
+
atelier = {
authentication.enable = true;
apps.tuigreet = {
enable = true;
nixos/machines/moonlark/disk-config.nix machines/moonlark/disk-config.nix
nixos/machines/moonlark/hardware-configuration.nix machines/moonlark/hardware-configuration.nix
+1 -1
nixos/machines/moonlark/home-manager.nix machines/moonlark/home-manager.nix
···
};
users = {
# Import your home-manager configuration
-
kierank = import ../../../home-manager/machines/moonlark;
+
kierank = import ./home;
};
};
}
+2 -2
nixos/modules/apps/tuigreet.nix modules/nixos/apps/tuigreet.nix
···
...
}:
let
-
cfg = config.modules.apps.tuigreet;
+
cfg = config.atelier.apps.tuigreet;
tuigreetBin = "${pkgs.greetd.tuigreet}/bin/tuigreet";
msg = cfg.greeting;
baseArgs =
···
);
in
{
-
options.modules.apps.tuigreet = {
+
options.atelier.apps.tuigreet = {
enable = lib.mkEnableOption "Enable greetd with tuigreet";
command = lib.mkOption {
+2 -2
nixos/modules/system/authentication.nix modules/nixos/system/authentication.nix
···
...
}:
let
-
cfg = config.modules.authentication;
+
cfg = config.atelier.authentication;
in
{
-
options.modules.authentication.enable = lib.mkEnableOption "Enable authentication stack (polkit, keyring, PAM with fprintd)";
+
options.atelier.authentication.enable = lib.mkEnableOption "Enable authentication stack (polkit, keyring, PAM with fprintd)";
config = lib.mkIf cfg.enable {
services.fprintd.enable = true;
+4 -4
nixos/modules/system/wifi.nix modules/nixos/system/wifi.nix
···
#
# This module provides a simpler way to declare wifi profiles with network manager.
# - you can pass the PSK via environment variable, direct value, or file.
-
# - profiles are defined in `modules.network.wifi.profiles`.
+
# - profiles are defined in `atelier.network.wifi.profiles`.
#
# Example usage:
-
# modules.network.wifi = {
+
# atelier.network.wifi = {
# enable = true;
# profiles = {
# "MySSID" = { psk = "supersecret"; };
···
...
}:
let
-
cfg = config.modules.network.wifi;
+
cfg = config.atelier.network.wifi;
mkProfile =
name:
{
···
base // sec;
in
{
-
options.modules.network.wifi = {
+
options.atelier.network.wifi = {
enable = lib.mkEnableOption "Enable NetworkManager with simplified Wi-Fi profiles";
hostName = lib.mkOption {
type = lib.types.str;