Init configuration from template
This commit is contained in:
		
						commit
						0b578b716f
					
				
					 9 changed files with 654 additions and 0 deletions
				
			
		
							
								
								
									
										118
									
								
								flake.lock
									
										
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										118
									
								
								flake.lock
									
										
									
										generated
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,118 @@
 | 
			
		|||
{
 | 
			
		||||
  "nodes": {
 | 
			
		||||
    "home-manager": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1685599623,
 | 
			
		||||
        "narHash": "sha256-Tob4CMOVHue0D3RzguDBCtUmX5ji2PsdbQDbIOIKvsc=",
 | 
			
		||||
        "owner": "nix-community",
 | 
			
		||||
        "repo": "home-manager",
 | 
			
		||||
        "rev": "93db05480c0c0f30382d3e80779e8386dcb4f9dd",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "nix-community",
 | 
			
		||||
        "ref": "release-23.05",
 | 
			
		||||
        "repo": "home-manager",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1686431482,
 | 
			
		||||
        "narHash": "sha256-oPVQ/0YP7yC2ztNsxvWLrV+f0NQ2QAwxbrZ+bgGydEM=",
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "d3bb401dcfc5a46ce51cdfb5762e70cc75d082d2",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "ref": "nixos-23.05",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs-stable": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1697929210,
 | 
			
		||||
        "narHash": "sha256-RkQZif6QhswEwv7484mrKfIU8XmIWm+ED6llbr4IyxM=",
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "fb000224952bf7749a9e8b3779104ef7ea4465c8",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "ref": "release-23.05",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs-unstable": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1686501370,
 | 
			
		||||
        "narHash": "sha256-G0WuM9fqTPRc2URKP9Lgi5nhZMqsfHGrdEbrLvAPJcg=",
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "75a5ebf473cd60148ba9aec0d219f72e5cf52519",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "ref": "nixos-unstable",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs_2": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1697886341,
 | 
			
		||||
        "narHash": "sha256-AdE67xPty9M9wn36nPVp6aDntIdigrs7UbyaGv1VAaM=",
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "44881e03af1c730cbb1d72a4d41274a2c957813a",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "ref": "nixpkgs-unstable",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "root": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "home-manager": "home-manager",
 | 
			
		||||
        "nixpkgs": "nixpkgs",
 | 
			
		||||
        "nixpkgs-unstable": "nixpkgs-unstable",
 | 
			
		||||
        "sops-nix": "sops-nix"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "sops-nix": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": "nixpkgs_2",
 | 
			
		||||
        "nixpkgs-stable": "nixpkgs-stable"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1697943852,
 | 
			
		||||
        "narHash": "sha256-DaBxUPaZhQ3yLCmAATshYB7qo7NwcMvSFWz9T3bjYYY=",
 | 
			
		||||
        "owner": "Mic92",
 | 
			
		||||
        "repo": "sops-nix",
 | 
			
		||||
        "rev": "30a0ba4a20703b4bfe047fe5def1fc24978e322c",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "Mic92",
 | 
			
		||||
        "repo": "sops-nix",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "root": "root",
 | 
			
		||||
  "version": 7
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										86
									
								
								flake.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								flake.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,86 @@
 | 
			
		|||
{
 | 
			
		||||
  description = "NixOS configuration for Lillian Violet's systems";
 | 
			
		||||
 | 
			
		||||
  inputs = {
 | 
			
		||||
    # Nixpkgs
 | 
			
		||||
    nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05";
 | 
			
		||||
    sops-nix.url = "github:Mic92/sops-nix";
 | 
			
		||||
    # You can access packages and modules from different nixpkgs revs
 | 
			
		||||
    # at the same time. Here's an working example:
 | 
			
		||||
    nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
 | 
			
		||||
    # Also see the 'unstable-packages' overlay at 'overlays/default.nix'.
 | 
			
		||||
 | 
			
		||||
    # Home manager
 | 
			
		||||
    home-manager.url = "github:nix-community/home-manager/release-23.05";
 | 
			
		||||
    home-manager.inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
 | 
			
		||||
    # Add any other flake you might need
 | 
			
		||||
    # hardware.url = "github:nixos/nixos-hardware";
 | 
			
		||||
 | 
			
		||||
    # Shameless plug: looking for a way to nixify your themes and make
 | 
			
		||||
    # everything match nicely? Try nix-colors!
 | 
			
		||||
    # nix-colors.url = "github:misterio77/nix-colors";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  outputs = {
 | 
			
		||||
    self,
 | 
			
		||||
    nixpkgs,
 | 
			
		||||
    home-manager,
 | 
			
		||||
    sops-nix,
 | 
			
		||||
    ...
 | 
			
		||||
  } @ inputs: let
 | 
			
		||||
    inherit (self) outputs;
 | 
			
		||||
    # Supported systems for your flake packages, shell, etc.
 | 
			
		||||
    systems = [
 | 
			
		||||
      "aarch64-linux"
 | 
			
		||||
      "i686-linux"
 | 
			
		||||
      "x86_64-linux"
 | 
			
		||||
      "aarch64-darwin"
 | 
			
		||||
      "x86_64-darwin"
 | 
			
		||||
    ];
 | 
			
		||||
    # This is a function that generates an attribute by calling a function you
 | 
			
		||||
    # pass to it, with each system as an argument
 | 
			
		||||
    forAllSystems = nixpkgs.lib.genAttrs systems;
 | 
			
		||||
  in {
 | 
			
		||||
    # Your custom packages
 | 
			
		||||
    # Acessible through 'nix build', 'nix shell', etc
 | 
			
		||||
    packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system});
 | 
			
		||||
    # Formatter for your nix files, available through 'nix fmt'
 | 
			
		||||
    # Other options beside 'alejandra' include 'nixpkgs-fmt'
 | 
			
		||||
    formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
 | 
			
		||||
 | 
			
		||||
    # Your custom packages and modifications, exported as overlays
 | 
			
		||||
    overlays = import ./overlays {inherit inputs;};
 | 
			
		||||
    # Reusable nixos modules you might want to export
 | 
			
		||||
    # These are usually stuff you would upstream into nixpkgs
 | 
			
		||||
    nixosModules = import ./modules/nixos;
 | 
			
		||||
    # Reusable home-manager modules you might want to export
 | 
			
		||||
    # These are usually stuff you would upstream into home-manager
 | 
			
		||||
    homeManagerModules = import ./modules/home-manager;
 | 
			
		||||
 | 
			
		||||
    # NixOS configuration entrypoint
 | 
			
		||||
    # Available through 'nixos-rebuild --flake .#your-hostname'
 | 
			
		||||
    nixosConfigurations = {
 | 
			
		||||
      EDI = nixpkgs.lib.nixosSystem {
 | 
			
		||||
        specialArgs = {inherit inputs outputs;};
 | 
			
		||||
        modules = [
 | 
			
		||||
          # > Our main nixos configuration file <
 | 
			
		||||
          ./nixos/EDI/configuration.nix
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # Standalone home-manager configuration entrypoint
 | 
			
		||||
    # Available through 'home-manager --flake .#your-username@your-hostname'
 | 
			
		||||
    homeConfigurations = {
 | 
			
		||||
      "lillian@EDI" = home-manager.lib.homeManagerConfiguration {
 | 
			
		||||
        pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
 | 
			
		||||
        extraSpecialArgs = {inherit inputs outputs;};
 | 
			
		||||
        modules = [
 | 
			
		||||
          # > Our main home-manager configuration file <
 | 
			
		||||
          ./home-manager/EDI-Lillian.nix
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										196
									
								
								home-manager/EDI-Lillian.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										196
									
								
								home-manager/EDI-Lillian.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,196 @@
 | 
			
		|||
# This is your home-manager configuration file
 | 
			
		||||
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
 | 
			
		||||
{
 | 
			
		||||
  inputs,
 | 
			
		||||
  outputs,
 | 
			
		||||
  lib,
 | 
			
		||||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  # You can import other home-manager modules here
 | 
			
		||||
  imports = [
 | 
			
		||||
    # If you want to use modules your own flake exports (from modules/home-manager):
 | 
			
		||||
    # outputs.homeManagerModules.example
 | 
			
		||||
 | 
			
		||||
    # Or modules exported from other flakes (such as nix-colors):
 | 
			
		||||
    # inputs.nix-colors.homeManagerModules.default
 | 
			
		||||
 | 
			
		||||
    # You can also split up your configuration and import pieces of it here:
 | 
			
		||||
    # ./nvim.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  nixpkgs = {
 | 
			
		||||
    # You can add overlays here
 | 
			
		||||
    overlays = [
 | 
			
		||||
      # Add overlays your own flake exports (from overlays and pkgs dir):
 | 
			
		||||
      outputs.overlays.additions
 | 
			
		||||
      outputs.overlays.modifications
 | 
			
		||||
      outputs.overlays.unstable-packages
 | 
			
		||||
 | 
			
		||||
      # You can also add overlays exported from other flakes:
 | 
			
		||||
      # neovim-nightly-overlay.overlays.default
 | 
			
		||||
 | 
			
		||||
      # Or define it inline, for example:
 | 
			
		||||
      # (final: prev: {
 | 
			
		||||
      #   hi = final.hello.overrideAttrs (oldAttrs: {
 | 
			
		||||
      #     patches = [ ./change-hello-to-hi.patch ];
 | 
			
		||||
      #   });
 | 
			
		||||
      # })
 | 
			
		||||
    ];
 | 
			
		||||
    # Configure your nixpkgs instance
 | 
			
		||||
    config = {
 | 
			
		||||
      # Disable if you don't want unfree packages
 | 
			
		||||
      allowUnfree = true;
 | 
			
		||||
      # Workaround for https://github.com/nix-community/home-manager/issues/2942
 | 
			
		||||
      allowUnfreePredicate = _: true;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  home = {
 | 
			
		||||
    username = "lillian";
 | 
			
		||||
    homeDirectory = "/home/lillian";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Add stuff for your user as you see fit:
 | 
			
		||||
  # programs.neovim.enable = true;
 | 
			
		||||
  # home.packages = with pkgs; [ steam ];
 | 
			
		||||
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    # Coding:
 | 
			
		||||
    git
 | 
			
		||||
    kate
 | 
			
		||||
 | 
			
		||||
    # Chat applications:
 | 
			
		||||
    element-desktop
 | 
			
		||||
    signal-desktop
 | 
			
		||||
    webcord-vencord
 | 
			
		||||
 | 
			
		||||
    # Gaming:
 | 
			
		||||
    prismlauncher
 | 
			
		||||
    steam
 | 
			
		||||
 | 
			
		||||
    # Multimedia:
 | 
			
		||||
    freetube
 | 
			
		||||
    obs-studio
 | 
			
		||||
    vlc
 | 
			
		||||
 | 
			
		||||
    # Office applications:
 | 
			
		||||
    onlyoffice-bin
 | 
			
		||||
 | 
			
		||||
    # System tools:
 | 
			
		||||
    rage
 | 
			
		||||
    bitwarden
 | 
			
		||||
    discover
 | 
			
		||||
    flameshot
 | 
			
		||||
    fzf
 | 
			
		||||
    nextcloud-client
 | 
			
		||||
    nitrokey-app
 | 
			
		||||
    protonvpn-gui
 | 
			
		||||
    virtualbox
 | 
			
		||||
    watchmate
 | 
			
		||||
    qbittorrent
 | 
			
		||||
    zsh
 | 
			
		||||
 | 
			
		||||
    # Web browsing:
 | 
			
		||||
    firefox
 | 
			
		||||
    ungoogled-chromium
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  programs.vscode = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    package = pkgs.vscodium;
 | 
			
		||||
    extensions = with pkgs.vscode-extensions; [
 | 
			
		||||
      dracula-theme.theme-dracula
 | 
			
		||||
      arrterian.nix-env-selector
 | 
			
		||||
      jnoortheen.nix-ide
 | 
			
		||||
      kamadorueda.alejandra
 | 
			
		||||
      ms-toolsai.jupyter
 | 
			
		||||
      ms-python.python
 | 
			
		||||
      rust-lang.rust-analyzer
 | 
			
		||||
      yzhang.markdown-all-in-one
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  programs.zsh = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    enableAutosuggestions = true;
 | 
			
		||||
    enableCompletion = true;
 | 
			
		||||
    historySubstringSearch.enable = true;
 | 
			
		||||
    syntaxHighlighting.enable = true;
 | 
			
		||||
    zsh-abbr.enable = true;
 | 
			
		||||
    oh-my-zsh = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      plugins = [
 | 
			
		||||
        "git"
 | 
			
		||||
        "adb"
 | 
			
		||||
        "battery"
 | 
			
		||||
        "branch"
 | 
			
		||||
        "coffee"
 | 
			
		||||
        "colored-man-pages"
 | 
			
		||||
        "colorize"
 | 
			
		||||
        "command-not-found"
 | 
			
		||||
        "common-aliases"
 | 
			
		||||
        "compleat"
 | 
			
		||||
        "composer"
 | 
			
		||||
        "copypath"
 | 
			
		||||
        "copybuffer"
 | 
			
		||||
        "copyfile"
 | 
			
		||||
        "cp"
 | 
			
		||||
        "dirhistory"
 | 
			
		||||
        "dirpersist"
 | 
			
		||||
        "docker"
 | 
			
		||||
        "docker-compose"
 | 
			
		||||
        "extract"
 | 
			
		||||
        "fancy-ctrl-z"
 | 
			
		||||
        "fastfile"
 | 
			
		||||
        "frontend-search"
 | 
			
		||||
        "git-auto-fetch"
 | 
			
		||||
        "git-escape-magic"
 | 
			
		||||
        "git-extras"
 | 
			
		||||
        "git-flow"
 | 
			
		||||
        "github"
 | 
			
		||||
        "gitignore"
 | 
			
		||||
        "gnu-utils"
 | 
			
		||||
        "gpg-agent"
 | 
			
		||||
        "history"
 | 
			
		||||
        "history-substring-search"
 | 
			
		||||
        "isodate"
 | 
			
		||||
        "jsontools"
 | 
			
		||||
        "keychain"
 | 
			
		||||
        "man"
 | 
			
		||||
        "nanoc"
 | 
			
		||||
        "pip"
 | 
			
		||||
        "pipenv"
 | 
			
		||||
        "pyenv"
 | 
			
		||||
        "python"
 | 
			
		||||
        "rsync"
 | 
			
		||||
        "rvm"
 | 
			
		||||
        "screen"
 | 
			
		||||
        "sdk"
 | 
			
		||||
        "sfdx"
 | 
			
		||||
        "shell-proxy"
 | 
			
		||||
        "sudo"
 | 
			
		||||
        "systemadmin"
 | 
			
		||||
        "systemd"
 | 
			
		||||
        "themes"
 | 
			
		||||
        "urltools"
 | 
			
		||||
        "web-search"
 | 
			
		||||
        "zsh-interactive-cd"
 | 
			
		||||
        "zsh-navigation-tools"
 | 
			
		||||
        "zsh-nix-shell"
 | 
			
		||||
      ];
 | 
			
		||||
      theme = "jtriley";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Enable home-manager and git
 | 
			
		||||
  programs.home-manager.enable = true;
 | 
			
		||||
  programs.git.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Nicely reload system units when changing configs
 | 
			
		||||
  systemd.user.startServices = "sd-switch";
 | 
			
		||||
 | 
			
		||||
  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
			
		||||
  home.stateVersion = "23.05";
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6
									
								
								modules/home-manager/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								modules/home-manager/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
# Add your reusable home-manager modules to this directory, on their own file (https://nixos.wiki/wiki/Module).
 | 
			
		||||
# These should be stuff you would like to share with others, not your personal configurations.
 | 
			
		||||
{
 | 
			
		||||
  # List your module files here
 | 
			
		||||
  # my-module = import ./my-module.nix;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6
									
								
								modules/nixos/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								modules/nixos/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
# Add your reusable NixOS modules to this directory, on their own file (https://nixos.wiki/wiki/Module).
 | 
			
		||||
# These should be stuff you would like to share with others, not your personal configurations.
 | 
			
		||||
{
 | 
			
		||||
  # List your module files here
 | 
			
		||||
  # my-module = import ./my-module.nix;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										170
									
								
								nixos/EDI/configuration.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										170
									
								
								nixos/EDI/configuration.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,170 @@
 | 
			
		|||
# This is your system's configuration file.
 | 
			
		||||
# Use this to configure your system environment (it replaces /etc/nixos/configuration.nix)
 | 
			
		||||
{
 | 
			
		||||
  inputs,
 | 
			
		||||
  outputs,
 | 
			
		||||
  lib,
 | 
			
		||||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  # You can import other NixOS modules here
 | 
			
		||||
  imports = [
 | 
			
		||||
    # If you want to use modules your own flake exports (from modules/nixos):
 | 
			
		||||
    # outputs.nixosModules.example
 | 
			
		||||
 | 
			
		||||
    # Or modules from other flakes (such as nixos-hardware):
 | 
			
		||||
    # inputs.hardware.nixosModules.common-cpu-amd
 | 
			
		||||
    # inputs.hardware.nixosModules.common-ssd
 | 
			
		||||
 | 
			
		||||
    # You can also split up your configuration and import pieces of it here:
 | 
			
		||||
    # ./users.nix
 | 
			
		||||
 | 
			
		||||
    # Import your generated (nixos-generate-config) hardware configuration
 | 
			
		||||
    ./hardware-configuration.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  nixpkgs = {
 | 
			
		||||
    # You can add overlays here
 | 
			
		||||
    overlays = [
 | 
			
		||||
      # Add overlays your own flake exports (from overlays and pkgs dir):
 | 
			
		||||
      outputs.overlays.additions
 | 
			
		||||
      outputs.overlays.modifications
 | 
			
		||||
      outputs.overlays.unstable-packages
 | 
			
		||||
 | 
			
		||||
      # You can also add overlays exported from other flakes:
 | 
			
		||||
      # neovim-nightly-overlay.overlays.default
 | 
			
		||||
 | 
			
		||||
      # Or define it inline, for example:
 | 
			
		||||
      # (final: prev: {
 | 
			
		||||
      #   hi = final.hello.overrideAttrs (oldAttrs: {
 | 
			
		||||
      #     patches = [ ./change-hello-to-hi.patch ];
 | 
			
		||||
      #   });
 | 
			
		||||
      # })
 | 
			
		||||
    ];
 | 
			
		||||
    # Configure your nixpkgs instance
 | 
			
		||||
    config = {
 | 
			
		||||
      # Disable if you don't want unfree packages
 | 
			
		||||
      allowUnfree = true;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  nix = {
 | 
			
		||||
    # This will add each flake input as a registry
 | 
			
		||||
    # To make nix3 commands consistent with your flake
 | 
			
		||||
    registry = lib.mapAttrs (_: value: {flake = value;}) inputs;
 | 
			
		||||
 | 
			
		||||
    # This will additionally add your inputs to the system's legacy channels
 | 
			
		||||
    # Making legacy nix commands consistent as well, awesome!
 | 
			
		||||
    nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry;
 | 
			
		||||
 | 
			
		||||
    settings = {
 | 
			
		||||
      # Enable flakes and new 'nix' command
 | 
			
		||||
      experimental-features = "nix-command flakes";
 | 
			
		||||
      # Deduplicate and optimize nix store
 | 
			
		||||
      auto-optimise-store = true;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  environment.systemPackages = with pkgs; [
 | 
			
		||||
    rage
 | 
			
		||||
    alejandra
 | 
			
		||||
    git-filter-repo
 | 
			
		||||
    home-manager
 | 
			
		||||
    libsForQt5.discover
 | 
			
		||||
    libsForQt5.kdepim-addons
 | 
			
		||||
    libsForQt5.packagekit-qt
 | 
			
		||||
    libportal-qt5
 | 
			
		||||
    noto-fonts
 | 
			
		||||
    noto-fonts-emoji-blob-bin
 | 
			
		||||
    noto-fonts-emoji
 | 
			
		||||
    noisetorch
 | 
			
		||||
    oh-my-zsh
 | 
			
		||||
    pciutils
 | 
			
		||||
    rsync
 | 
			
		||||
    wget
 | 
			
		||||
    zsh
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # Enable networking
 | 
			
		||||
  networking.networkmanager.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Set your time zone.
 | 
			
		||||
  time.timeZone = "Europe/Amsterdam";
 | 
			
		||||
 | 
			
		||||
  # Select internationalisation properties.
 | 
			
		||||
  i18n.defaultLocale = "en_US.UTF-8";
 | 
			
		||||
 | 
			
		||||
  i18n.extraLocaleSettings = {
 | 
			
		||||
    LC_ADDRESS = "nl_NL.UTF-8";
 | 
			
		||||
    LC_IDENTIFICATION = "nl_NL.UTF-8";
 | 
			
		||||
    LC_MEASUREMENT = "nl_NL.UTF-8";
 | 
			
		||||
    LC_MONETARY = "nl_NL.UTF-8";
 | 
			
		||||
    LC_NAME = "nl_NL.UTF-8";
 | 
			
		||||
    LC_NUMERIC = "nl_NL.UTF-8";
 | 
			
		||||
    LC_PAPER = "nl_NL.UTF-8";
 | 
			
		||||
    LC_TELEPHONE = "nl_NL.UTF-8";
 | 
			
		||||
    LC_TIME = "nl_NL.UTF-8";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Enable the X11 windowing system.
 | 
			
		||||
  services.xserver.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Enable the KDE Plasma Desktop Environment.
 | 
			
		||||
  services.xserver.displayManager.sddm.enable = true;
 | 
			
		||||
  services.xserver.desktopManager.plasma5.enable = true;
 | 
			
		||||
  services.xserver.displayManager.defaultSession = "plasmawayland";
 | 
			
		||||
 | 
			
		||||
  # Enable flatpak support
 | 
			
		||||
  services.flatpak.enable = true;
 | 
			
		||||
  services.packagekit.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Configure keymap in X11
 | 
			
		||||
  services.xserver = {
 | 
			
		||||
    layout = "us";
 | 
			
		||||
    xkbVariant = "";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Enable CUPS to print documents.
 | 
			
		||||
  services.printing.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Enable bluetooth hardware
 | 
			
		||||
  hardware.bluetooth.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Enable fwupd daemon and user space client
 | 
			
		||||
  services.fwupd.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Enable sound with pipewire.
 | 
			
		||||
  sound.enable = true;
 | 
			
		||||
  hardware.pulseaudio.enable = false;
 | 
			
		||||
  security.rtkit.enable = true;
 | 
			
		||||
  services.pipewire = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    alsa.enable = true;
 | 
			
		||||
    alsa.support32Bit = true;
 | 
			
		||||
    pulse.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  programs.zsh = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  networking.hostName = "EDI";
 | 
			
		||||
 | 
			
		||||
  boot.loader.systemd-boot.enable = true;
 | 
			
		||||
  boot.loader.efi.canTouchEfiVariables = true;
 | 
			
		||||
 | 
			
		||||
  users.users = {
 | 
			
		||||
    lillian = {
 | 
			
		||||
      isNormalUser = true;
 | 
			
		||||
      extraGroups = ["sudo" "networkmanager" "wheel" "vboxsf"];
 | 
			
		||||
      shell = pkgs.zsh;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Enable completion of system packages by zsh
 | 
			
		||||
  environment.pathsToLink = ["/share/zsh"];
 | 
			
		||||
 | 
			
		||||
  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
 | 
			
		||||
  system.stateVersion = "23.05";
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										44
									
								
								nixos/EDI/hardware-configuration.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								nixos/EDI/hardware-configuration.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,44 @@
 | 
			
		|||
# Do not modify this file!  It was generated by ‘nixos-generate-config’
 | 
			
		||||
# and may be overwritten by future invocations.  Please make changes
 | 
			
		||||
# to /etc/nixos/configuration.nix instead.
 | 
			
		||||
{
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  modulesPath,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  imports = [
 | 
			
		||||
    (modulesPath + "/installer/scan/not-detected.nix")
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  boot.kernel.sysctl."net.ipv4.icmp_echo_ignore_broadcasts" = 1;
 | 
			
		||||
  boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"];
 | 
			
		||||
  boot.initrd.kernelModules = [];
 | 
			
		||||
  boot.kernelModules = ["kvm-intel"];
 | 
			
		||||
  boot.extraModulePackages = [];
 | 
			
		||||
 | 
			
		||||
  fileSystems."/" = {
 | 
			
		||||
    device = "/dev/disk/by-uuid/f930d7c6-2798-4e25-abc1-81d02e9abf35";
 | 
			
		||||
    fsType = "ext4";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/boot" = {
 | 
			
		||||
    device = "/dev/disk/by-uuid/42ED-068B";
 | 
			
		||||
    fsType = "vfat";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  swapDevices = [];
 | 
			
		||||
 | 
			
		||||
  # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
 | 
			
		||||
  # (the default) this is the recommended approach. When using systemd-networkd it's
 | 
			
		||||
  # still possible to use this option, but it's recommended to use it in conjunction
 | 
			
		||||
  # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
 | 
			
		||||
  networking.useDHCP = lib.mkDefault true;
 | 
			
		||||
  # networking.interfaces.enp0s20f0u9u2c2.useDHCP = lib.mkDefault true;
 | 
			
		||||
  # networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
 | 
			
		||||
 | 
			
		||||
  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
 | 
			
		||||
  powerManagement.cpuFreqGovernor = lib.mkDefault "performance";
 | 
			
		||||
  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										23
									
								
								overlays/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								overlays/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,23 @@
 | 
			
		|||
# This file defines overlays
 | 
			
		||||
{inputs, ...}: {
 | 
			
		||||
  # This one brings our custom packages from the 'pkgs' directory
 | 
			
		||||
  additions = final: _prev: import ../pkgs {pkgs = final;};
 | 
			
		||||
 | 
			
		||||
  # This one contains whatever you want to overlay
 | 
			
		||||
  # You can change versions, add patches, set compilation flags, anything really.
 | 
			
		||||
  # https://nixos.wiki/wiki/Overlays
 | 
			
		||||
  modifications = final: prev: {
 | 
			
		||||
    # example = prev.example.overrideAttrs (oldAttrs: rec {
 | 
			
		||||
    # ...
 | 
			
		||||
    # });
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # When applied, the unstable nixpkgs set (declared in the flake inputs) will
 | 
			
		||||
  # be accessible through 'pkgs.unstable'
 | 
			
		||||
  unstable-packages = final: _prev: {
 | 
			
		||||
    unstable = import inputs.nixpkgs-unstable {
 | 
			
		||||
      system = final.system;
 | 
			
		||||
      config.allowUnfree = true;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										5
									
								
								pkgs/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								pkgs/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
# Custom packages, that can be defined similarly to ones from nixpkgs
 | 
			
		||||
# You can build them using 'nix build .#example'
 | 
			
		||||
pkgs: {
 | 
			
		||||
  # example = pkgs.callPackage ./example { };
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue