My personal NixOS configuration. Most of the config files work on other distros too.
hosts/: Host-specific configurations (e.g.,laptop).modules/: Reusable NixOS and Home Manager modules.desktop/: Desktop environment (Hyprland, etc.).hardware/: Hardware-specific config (Audio, Bluetooth, etc.).home/: Home Manager modules (UI, Packages, Git, etc.).system/: Core system config (Boot, Networking, Users).
config/: Dotfiles symlinked via Home Manager (Fish, Rofi, etc.).nix/: Devshell and other Nix utilities.
This configuration exposes several atomic modules that you can import into your own flake.
- Desktop:
hyprland,display-manager - Hardware:
audio,bluetooth,graphics,input,power - System:
boot,fonts,locale,networking,nix - Packages:
dev-tools,audio-production - Services:
system-services,virtualization - Security:
hardening
fish: Fish shell configurationvscode: VS Code configurationgit: Basic Git configurationui: GTK/QT themingxdg: XDG config file mappings- Package Groups:
cli: Command line tools (jq, ffmpeg, etc.)media: Media players and editors (vlc, gimp, etc.)apps: GUI applications (browsers, chat, etc.)desktop-utils: Desktop utilities (file managers, rofi, etc.)
You can use this flake as an input in your own configuration to import specific modules.
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
# Add this flake as an input
axseem.url = "github:axseem/dotfiles";
};
outputs = { self, nixpkgs, axseem, ... }: {
nixosConfigurations.my-machine = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
# Import specific NixOS modules
axseem.nixosModules.hyprland
axseem.nixosModules.audio-production
./configuration.nix
];
};
};
}To apply this configuration to a new system:
- Clone the repository:
git clone https://github.com/axseem/dotfiles.git ~/me/system/nixos - Enter the directory:
cd ~/me/system/nixos
- Build and switch:
sudo nixos-rebuild switch --flake .#laptop