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