80 lines
2.5 KiB
Nix
80 lines
2.5 KiB
Nix
|
{
|
||
|
description = "Nathan's system configurations";
|
||
|
|
||
|
inputs = {
|
||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-21.11";
|
||
|
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||
|
fenix = {
|
||
|
url = "github:nix-community/fenix";
|
||
|
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||
|
};
|
||
|
emacs = {
|
||
|
url = "github:nix-community/emacs-overlay";
|
||
|
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
outputs = { self, nixpkgs, nixpkgs-unstable, fenix, emacs }:
|
||
|
|
||
|
{
|
||
|
nixosConfigurations.levitation = nixpkgs.lib.nixosSystem {
|
||
|
system = "x86_64-linux";
|
||
|
specialArgs = {
|
||
|
unstable = import nixpkgs-unstable {
|
||
|
config = { allowUnfree = true; };
|
||
|
overlays = [ emacs.overlay ];
|
||
|
system = "x86_64-linux";
|
||
|
};
|
||
|
fenix = fenix.packages.x86_64-linux;
|
||
|
};
|
||
|
modules = [
|
||
|
./hardware/levitation.nix
|
||
|
./modules/user.nix
|
||
|
./modules/common.nix
|
||
|
./modules/audio.nix
|
||
|
./modules/sway.nix
|
||
|
./modules/fonts.nix
|
||
|
./modules/gpg.nix
|
||
|
./modules/logitech.nix
|
||
|
./modules/qemu.nix
|
||
|
./modules/docker.nix
|
||
|
./modules/ssh.nix
|
||
|
./applications/utils-core.nix
|
||
|
./applications/communications.nix
|
||
|
./applications/devel-core.nix
|
||
|
./applications/devel-rust.nix
|
||
|
./applications/emacs.nix
|
||
|
./applications/image-editing.nix
|
||
|
./applications/media.nix
|
||
|
./applications/syncthing.nix
|
||
|
({ pkgs, ... }: {
|
||
|
## Boot, drivers, and host name
|
||
|
# Use the systemd-boot EFI boot loader.
|
||
|
boot.loader.systemd-boot.enable = true;
|
||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||
|
# Enable AMD gpu drivers early
|
||
|
boot.initrd.kernelModules = [ "amdgpu" ];
|
||
|
# Use the zen kernel
|
||
|
boot.kernelPackages = pkgs.linuxPackages_zen;
|
||
|
# Define the hostname, enable dhcp
|
||
|
networking = {
|
||
|
hostName = "levitation";
|
||
|
domain = "mccarty.io";
|
||
|
useDHCP = false;
|
||
|
interfaces.enp5s0.useDHCP = true;
|
||
|
};
|
||
|
## System specific configuration
|
||
|
programs = {
|
||
|
steam.enable = true;
|
||
|
adb.enable = true;
|
||
|
};
|
||
|
## Left over uncategorized packages
|
||
|
environment.systemPackages = with pkgs; [
|
||
|
firefox-wayland
|
||
|
];
|
||
|
})
|
||
|
];
|
||
|
};
|
||
|
};
|
||
|
}
|