From a5cc5ad811336a31211ba0e1b030b1d8ebe05b83 Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Tue, 22 Jul 2025 20:55:21 +0100 Subject: [PATCH] Initial commit --- .ignore | 1 + flake.lock | 77 +++++++++++++++++++ flake.nix | 15 ++++ modules/flake-parts.nix | 7 ++ modules/formatting.nix | 7 ++ modules/git.nix | 8 ++ modules/hosts/corgi/configuration.nix | 77 +++++++++++++++++++ .../hosts/corgi/hardware-configuration.nix | 57 ++++++++++++++ modules/hosts/corgi/imports.nix | 7 ++ modules/nixos-configurations.nix | 13 ++++ modules/systems.nix | 8 ++ modules/tmux.nix | 8 ++ todo.txt | 2 + 13 files changed, 287 insertions(+) create mode 100644 .ignore create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 modules/flake-parts.nix create mode 100644 modules/formatting.nix create mode 100644 modules/git.nix create mode 100644 modules/hosts/corgi/configuration.nix create mode 100644 modules/hosts/corgi/hardware-configuration.nix create mode 100644 modules/hosts/corgi/imports.nix create mode 100644 modules/nixos-configurations.nix create mode 100644 modules/systems.nix create mode 100644 modules/tmux.nix create mode 100644 todo.txt diff --git a/.ignore b/.ignore new file mode 100644 index 0000000..6eca100 --- /dev/null +++ b/.ignore @@ -0,0 +1 @@ +/.git/ diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..32f18f1 --- /dev/null +++ b/flake.lock @@ -0,0 +1,77 @@ +{ + "nodes": { + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1753121425, + "narHash": "sha256-TVcTNvOeWWk1DXljFxVRp+E0tzG1LhrVjOGGoMHuXio=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "644e0fc48951a860279da645ba77fe4a6e814c5e", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "import-tree": { + "locked": { + "lastModified": 1752730890, + "narHash": "sha256-GES8fapSLGz36MMPRVNkSUWXUTtqvGQNXHjRmRLfJUY=", + "owner": "vic", + "repo": "import-tree", + "rev": "6ebb8cb87987b20264c09296166543fd3761d274", + "type": "github" + }, + "original": { + "owner": "vic", + "repo": "import-tree", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1752950548, + "narHash": "sha256-NS6BLD0lxOrnCiEOcvQCDVPXafX1/ek1dfJHX1nUIzc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c87b95e25065c028d31a94f06a62927d18763fdf", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1751159883, + "narHash": "sha256-urW/Ylk9FIfvXfliA1ywh75yszAbiTEVgpPeinFyVZo=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "14a40a1d7fb9afa4739275ac642ed7301a9ba1ab", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-parts": "flake-parts", + "import-tree": "import-tree", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..22bc84d --- /dev/null +++ b/flake.nix @@ -0,0 +1,15 @@ +{ + inputs = { + flake-parts.url = "github:hercules-ci/flake-parts"; + import-tree.url = "github:vic/import-tree"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + }; + + outputs = + inputs: + inputs.flake-parts.lib.mkFlake { inherit inputs; } { + imports = [ + (inputs.import-tree ./modules) + ]; + }; +} diff --git a/modules/flake-parts.nix b/modules/flake-parts.nix new file mode 100644 index 0000000..1a92203 --- /dev/null +++ b/modules/flake-parts.nix @@ -0,0 +1,7 @@ +{ inputs, ... }: + +{ + imports = [ + inputs.flake-parts.flakeModules.modules + ]; +} diff --git a/modules/formatting.nix b/modules/formatting.nix new file mode 100644 index 0000000..3c962b1 --- /dev/null +++ b/modules/formatting.nix @@ -0,0 +1,7 @@ +{ + perSystem = + { pkgs, ... }: + { + formatter = pkgs.nixfmt-rfc-style; + }; +} diff --git a/modules/git.nix b/modules/git.nix new file mode 100644 index 0000000..6c50893 --- /dev/null +++ b/modules/git.nix @@ -0,0 +1,8 @@ +{ + flake.modules.nixos.pc = { pkgs, ... }: + { + environment.systemPackages = with pkgs; [ + git + ]; + }; +} diff --git a/modules/hosts/corgi/configuration.nix b/modules/hosts/corgi/configuration.nix new file mode 100644 index 0000000..2a397e8 --- /dev/null +++ b/modules/hosts/corgi/configuration.nix @@ -0,0 +1,77 @@ +{ + flake.modules.nixos."nixosConfigurations/corgi" = + { + config, + pkgs, + stateVersion, + ... + }: + { + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.networkmanager.enable = true; + + time.timeZone = "Europe/London"; + + i18n.defaultLocale = "en_GB.UTF-8"; + + i18n.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"; + }; + + services.xserver.enable = true; + + services.xserver.displayManager.lightdm.enable = true; + services.xserver.desktopManager.cinnamon.enable = true; + + services.xserver.xkb = { + layout = "gb"; + variant = ""; + }; + + console.keyMap = "uk"; + + services.printing.enable = true; + + services.pulseaudio.enable = false; + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + + }; + + users.users.oliver = { + isNormalUser = true; + description = "oliver"; + extraGroups = [ + "networkmanager" + "wheel" + ]; + packages = with pkgs; [ + ]; + }; + + programs.firefox.enable = true; + + nixpkgs.config.allowUnfree = true; + + environment.systemPackages = with pkgs; [ + ]; + + services.openssh.enable = true; + + system.stateVersion = stateVersion; + }; +} diff --git a/modules/hosts/corgi/hardware-configuration.nix b/modules/hosts/corgi/hardware-configuration.nix new file mode 100644 index 0000000..d83e187 --- /dev/null +++ b/modules/hosts/corgi/hardware-configuration.nix @@ -0,0 +1,57 @@ +{ + flake.modules.nixos."nixosConfigurations/corgi" = + { + config, + pkgs, + modulesPath, + lib, + ... + }: + { + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ + "xhci_pci" + "ahci" + "usbhid" + "usb_storage" + "sd_mod" + "sr_mod" + "rtsx_usb_sdmmc" + ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/076c5319-e9b6-4985-b86b-5b4287be17ba"; + fsType = "ext4"; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/E090-18D3"; + fsType = "vfat"; + options = [ + "fmask=0077" + "dmask=0077" + ]; + }; + + swapDevices = [ + { device = "/dev/disk/by-uuid/b29480eb-56cf-4353-9b98-790e4e2512b3"; } + ]; + + # 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..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp1s0.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + }; +} diff --git a/modules/hosts/corgi/imports.nix b/modules/hosts/corgi/imports.nix new file mode 100644 index 0000000..1cfb071 --- /dev/null +++ b/modules/hosts/corgi/imports.nix @@ -0,0 +1,7 @@ +{ config, ... }: + +{ + flake.modules.nixos."nixosConfigurations/corgi".imports = with config.flake.modules.nixos; [ + pc + ]; +} diff --git a/modules/nixos-configurations.nix b/modules/nixos-configurations.nix new file mode 100644 index 0000000..002a348 --- /dev/null +++ b/modules/nixos-configurations.nix @@ -0,0 +1,13 @@ +{ config, inputs, ... }: + +{ + flake.nixosConfigurations.corgi = inputs.nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + + modules = [ config.flake.modules.nixos."nixosConfigurations/corgi" ]; + + specialArgs = { + stateVersion = "25.05"; + }; + }; +} diff --git a/modules/systems.nix b/modules/systems.nix new file mode 100644 index 0000000..8669711 --- /dev/null +++ b/modules/systems.nix @@ -0,0 +1,8 @@ +{ + systems = [ + "x86_64-linux" + "aarch64-linux" + "aarch64-darwin" + "x86_64-darwin" + ]; +} diff --git a/modules/tmux.nix b/modules/tmux.nix new file mode 100644 index 0000000..ae86c3b --- /dev/null +++ b/modules/tmux.nix @@ -0,0 +1,8 @@ +{ + flake.modules.nixos.pc = { pkgs, ... }: + { + environment.systemPackages = with pkgs; [ + tmux + ]; + }; +} diff --git a/todo.txt b/todo.txt new file mode 100644 index 0000000..56da98d --- /dev/null +++ b/todo.txt @@ -0,0 +1,2 @@ +add home manager +switch git to use home manager