Add Nix configuration for Stardust.
This commit is contained in:
		
							parent
							
								
									11301f7203
								
							
						
					
					
						commit
						f8db74a70f
					
				| 
						 | 
					@ -0,0 +1,25 @@
 | 
				
			||||||
 | 
					# The main configuration file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{ pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  imports = [
 | 
				
			||||||
 | 
					    ./hardware-configuration.nix
 | 
				
			||||||
 | 
					    ./packages.nix
 | 
				
			||||||
 | 
					    ./programs-services.nix
 | 
				
			||||||
 | 
					    ./users.nix
 | 
				
			||||||
 | 
					    ./system.nix
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  nix = {
 | 
				
			||||||
 | 
					    settings.experimental-features = [ "flakes" "nix-command" ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  nixpkgs = {
 | 
				
			||||||
 | 
					    config.allowUnfree = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Before changing this value read the documentation for this option!
 | 
				
			||||||
 | 
					  # https://search.nixos.org/options?channel=22.11&show=system.stateVersion
 | 
				
			||||||
 | 
					  system.stateVersion = "22.11";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,62 @@
 | 
				
			||||||
 | 
					# The list of system packages to install.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{ pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  environment = {
 | 
				
			||||||
 | 
					    systemPackages = with pkgs; [
 | 
				
			||||||
 | 
					      bat
 | 
				
			||||||
 | 
					      catppuccin-cursors
 | 
				
			||||||
 | 
					      chromium
 | 
				
			||||||
 | 
					      exa
 | 
				
			||||||
 | 
					      delta
 | 
				
			||||||
 | 
					      deno
 | 
				
			||||||
 | 
					      direnv
 | 
				
			||||||
 | 
					      firefox
 | 
				
			||||||
 | 
					      ffmpeg
 | 
				
			||||||
 | 
					      gegl
 | 
				
			||||||
 | 
					      gimp
 | 
				
			||||||
 | 
					      git
 | 
				
			||||||
 | 
					      imagemagick
 | 
				
			||||||
 | 
					      kitty
 | 
				
			||||||
 | 
					      libnotify
 | 
				
			||||||
 | 
					      librewolf
 | 
				
			||||||
 | 
					      mat2
 | 
				
			||||||
 | 
					      mpv
 | 
				
			||||||
 | 
					      nodejs
 | 
				
			||||||
 | 
					      nodePackages.pnpm
 | 
				
			||||||
 | 
					      nvitop
 | 
				
			||||||
 | 
					      osu-lazer
 | 
				
			||||||
 | 
					      pavucontrol
 | 
				
			||||||
 | 
					      picard
 | 
				
			||||||
 | 
					      pop-icon-theme
 | 
				
			||||||
 | 
					      python310Packages.pipx
 | 
				
			||||||
 | 
					      qalculate-gtk
 | 
				
			||||||
 | 
					      restic
 | 
				
			||||||
 | 
					      ripgrep
 | 
				
			||||||
 | 
					      rnix-lsp
 | 
				
			||||||
 | 
					      rustup
 | 
				
			||||||
 | 
					      standardnotes
 | 
				
			||||||
 | 
					      starship
 | 
				
			||||||
 | 
					      steam
 | 
				
			||||||
 | 
					      tauon
 | 
				
			||||||
 | 
					      tea
 | 
				
			||||||
 | 
					      transmission-gtk
 | 
				
			||||||
 | 
					      vscodium.fhs
 | 
				
			||||||
 | 
					      xarchiver
 | 
				
			||||||
 | 
					      xclip
 | 
				
			||||||
 | 
					      xorg.libXcursor
 | 
				
			||||||
 | 
					      xfce.xfce4-pulseaudio-plugin
 | 
				
			||||||
 | 
					      xfce.xfce4-timer-plugin
 | 
				
			||||||
 | 
					      xfce.xfce4-whiskermenu-plugin
 | 
				
			||||||
 | 
					      (wrapOBS {
 | 
				
			||||||
 | 
					        plugins = with obs-studio-plugins; [
 | 
				
			||||||
 | 
					          input-overlay
 | 
				
			||||||
 | 
					          obs-pipewire-audio-capture
 | 
				
			||||||
 | 
					          obs-source-record
 | 
				
			||||||
 | 
					          obs-vkcapture
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,45 @@
 | 
				
			||||||
 | 
					# Configuration for programs and services.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{ pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  programs = {
 | 
				
			||||||
 | 
					    gnupg = {
 | 
				
			||||||
 | 
					      agent = {
 | 
				
			||||||
 | 
					        enable = true;
 | 
				
			||||||
 | 
					        enableSSHSupport = true;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    thunar = {
 | 
				
			||||||
 | 
					      plugins = with pkgs.xfce; [ thunar-archive-plugin ];
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    zsh = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  services = {
 | 
				
			||||||
 | 
					    avahi = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      nssmdns = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pipewire = {
 | 
				
			||||||
 | 
					      alsa.enable = true;
 | 
				
			||||||
 | 
					      alsa.support32Bit = true;
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      pulse.enable = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    xserver = {
 | 
				
			||||||
 | 
					      desktopManager.xfce.enable = true;
 | 
				
			||||||
 | 
					      displayManager.lightdm.enable = true;
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      layout = "be";
 | 
				
			||||||
 | 
					      videoDrivers = [ "nvidia" ];
 | 
				
			||||||
 | 
					      xkbVariant = "";
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,79 @@
 | 
				
			||||||
 | 
					# General system configuration.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{ pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  boot = {
 | 
				
			||||||
 | 
					    loader = {
 | 
				
			||||||
 | 
					      efi.canTouchEfiVariables = true;
 | 
				
			||||||
 | 
					      efi.efiSysMountPoint = "/boot/efi";
 | 
				
			||||||
 | 
					      systemd-boot.enable = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    supportedFilesystems = [ "ntfs" ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  console = {
 | 
				
			||||||
 | 
					    keyMap = "be-latin1";
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  environment = {
 | 
				
			||||||
 | 
					    extraOutputsToInstall = [ "dev" ];
 | 
				
			||||||
 | 
					    shells = [ pkgs.zsh ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fonts.fonts = with pkgs; [
 | 
				
			||||||
 | 
					    hasklig
 | 
				
			||||||
 | 
					    inter
 | 
				
			||||||
 | 
					    iosevka
 | 
				
			||||||
 | 
					    noto-fonts
 | 
				
			||||||
 | 
					    (nerdfonts.override { fonts = [ "Hasklig" ]; })
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  hardware = {
 | 
				
			||||||
 | 
					    opengl = {
 | 
				
			||||||
 | 
					      driSupport32Bit = true;
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    opentabletdriver = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pulseaudio = {
 | 
				
			||||||
 | 
					      enable = false;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  i18n = {
 | 
				
			||||||
 | 
					    defaultLocale = "en_US.UTF-8";
 | 
				
			||||||
 | 
					    extraLocaleSettings = {
 | 
				
			||||||
 | 
					      LC_ADDRESS = "en_GB.UTF-8";
 | 
				
			||||||
 | 
					      LC_IDENTIFICATION = "en_GB.UTF-8";
 | 
				
			||||||
 | 
					      LC_MEASUREMENT = "en_GB.UTF-8";
 | 
				
			||||||
 | 
					      LC_MONETARY = "en_GB.UTF-8";
 | 
				
			||||||
 | 
					      LC_NAME = "en_GB.UTF-8";
 | 
				
			||||||
 | 
					      LC_NUMERIC = "en_GB.UTF-8";
 | 
				
			||||||
 | 
					      LC_PAPER = "en_GB.UTF-8";
 | 
				
			||||||
 | 
					      LC_TELEPHONE = "en_GB.UTF-8";
 | 
				
			||||||
 | 
					      LC_TIME = "en_GB.UTF-8";
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  networking = {
 | 
				
			||||||
 | 
					    hostName = "stardust";
 | 
				
			||||||
 | 
					    networkmanager.enable = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  security = {
 | 
				
			||||||
 | 
					    rtkit.enable = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  sound = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  time = {
 | 
				
			||||||
 | 
					    timeZone = "Europe/Brussels";
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					# Configuration for user accounts.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{ pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  users = {
 | 
				
			||||||
 | 
					    defaultUserShell = pkgs.zsh;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    users.bauke = {
 | 
				
			||||||
 | 
					      description = "Bauke";
 | 
				
			||||||
 | 
					      extraGroups = [ "networkmanager" "wheel" ];
 | 
				
			||||||
 | 
					      isNormalUser = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue