diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 1c6f3fa..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.pre-commit-config.yaml \ No newline at end of file diff --git a/all-modules.nix b/all-modules.nix index ca68789..a92e2a0 100644 --- a/all-modules.nix +++ b/all-modules.nix @@ -1,5 +1,5 @@ -{ lib, ... }: +{lib, ...}: { - imports = lib.fileset.toList (lib.fileset.fileFilter (f: f.hasExt "nix") ./modules); -} + imports = lib.fileset.toList (lib.fileset.fileFilter (f: f.hasExt "nix") ./modules); +} \ No newline at end of file diff --git a/flake.lock b/flake.lock index 931cd7f..82d8ab7 100644 --- a/flake.lock +++ b/flake.lock @@ -1,114 +1,24 @@ { "nodes": { - "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1767039857, - "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", - "owner": "NixOS", - "repo": "flake-compat", - "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "flake-compat", - "type": "github" - } - }, - "git-hooks": { - "inputs": { - "flake-compat": "flake-compat", - "gitignore": "gitignore", - "nixpkgs": "nixpkgs" - }, - "locked": { - "lastModified": 1772024342, - "narHash": "sha256-+eXlIc4/7dE6EcPs9a2DaSY3fTA9AE526hGqkNID3Wg=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "6e34e97ed9788b17796ee43ccdbaf871a5c2b476", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "gitignore": { - "inputs": { - "nixpkgs": [ - "git-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, "nixpkgs": { "locked": { - "lastModified": 1770073757, - "narHash": "sha256-Vy+G+F+3E/Tl+GMNgiHl9Pah2DgShmIUBJXmbiQPHbI=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "47472570b1e607482890801aeaf29bfb749884f6", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1772047000, - "narHash": "sha256-7DaQVv4R97cii/Qdfy4tmDZMB2xxtyIvNGSwXBBhSmo=", + "lastModified": 1771848320, + "narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=", "owner": "nixos", "repo": "nixpkgs", - "rev": "1267bb4920d0fc06ea916734c11b0bf004bbe17e", + "rev": "2fc6539b481e1d2569f25f8799236694180c0993", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-25.11", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, "root": { "inputs": { - "git-hooks": "git-hooks", - "nixpkgs": "nixpkgs_2", - "systems": "systems" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" + "nixpkgs": "nixpkgs" } } }, diff --git a/flake.nix b/flake.nix index 137b540..6f523a3 100644 --- a/flake.nix +++ b/flake.nix @@ -1,56 +1,16 @@ { inputs = { - nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-25.11"; - systems.url = "github:nix-systems/default"; - git-hooks.url = "github:cachix/git-hooks.nix"; + nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; }; - outputs = - { - self, - systems, - nixpkgs, - ... - }@inputs: - let - forEachSystem = inputs.nixpkgs.lib.genAttrs (import systems); - in - { - formatter = forEachSystem ( - system: - let - pkgs = inputs.nixpkgs.legacyPackages.${system}; - in - pkgs.treefmt - ); - - checks = forEachSystem (system: { - pre-commit-check = inputs.git-hooks.lib.${system}.run { - src = ./.; - hooks = { - treefmt.enable = true; - treefmt.settings.formatters = [ inputs.nixpkgs.legacyPackages.${system}.nixfmt ]; - statix.enable = true; - deadnix.enable = true; - nil.enable = true; - }; - }; - }); - - devShells = forEachSystem (system: { - default = - let - pkgs = nixpkgs.legacyPackages.${system}; - inherit (self.checks.${system}.pre-commit-check) shellHook enabledPackages; - in - pkgs.mkShell { - inherit shellHook; - buildInputs = enabledPackages; - }; - }); - - nixosConfigurations = { - vm = nixpkgs.lib.nixosSystem { modules = [ ./systems/vm/configuration.nix ]; }; + outputs = { self, nixpkgs }: { + # hydraJobs = nixpkgs.lib.mapAttrs (_: value: value.config.system.build.toplevel) self.nixosConfigurations; + nixosConfigurations = { + vm = nixpkgs.lib.nixosSystem { + modules = [ + ./systems/vm/configuration.nix + ]; }; }; + }; } diff --git a/modules/boot.nix b/modules/boot.nix index 6640b39..814ff37 100644 --- a/modules/boot.nix +++ b/modules/boot.nix @@ -1,9 +1,7 @@ -_: +{config, pkgs, ...}: { - boot.loader.grub = { - enable = true; - device = "/dev/vda"; - useOSProber = true; - }; -} + boot.loader.grub.enable = true; + boot.loader.grub.device = "/dev/vda"; + boot.loader.grub.useOSProber = true; +} \ No newline at end of file diff --git a/modules/default-packages.nix b/modules/default-packages.nix index ff957ba..3fcb9f9 100644 --- a/modules/default-packages.nix +++ b/modules/default-packages.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{config, pkgs, ...}: { programs = { @@ -10,4 +10,4 @@ acpi wget ]; -} +} \ No newline at end of file diff --git a/modules/graphical.nix b/modules/graphical.nix index 6620151..e930b25 100644 --- a/modules/graphical.nix +++ b/modules/graphical.nix @@ -1,35 +1,32 @@ -{ - config, - pkgs, - lib, - ... -}: +{config, pkgs, lib, ...}: let - cfg = config.modules.graphical; + cfg = config.modules.graphical; + quickshell-packages = lib.mkIf cfg.quickshell (with pkgs; [quickshell]); in { - options = { - modules.graphical = { + options = { + modules.graphical = { enable = lib.mkEnableOption "Enable the GUI"; + waybar = lib.mkEnableOption "Enable waybar"; + quickshell = lib.mkEnableOption "Enable quickshell"; }; - }; + }; - config = lib.mkIf cfg.enable { - programs.niri.enable = true; - services.displayManager.ly.enable = true; + config = lib.mkIf cfg.enable { + programs.niri.enable = true; + services.displayManager.ly.enable = true; - environment.systemPackages = - with pkgs; - [ - alacritty - wl-clipboard - ] - ++ lib.optional cfg.quickshell quickshell; + environment.systemPackages = with pkgs; [ + alacritty + wl-clipboard + + ] + ++ quickshell-packages; programs.waybar.enable = lib.mkIf cfg.waybar true; - }; -} + }; +} \ No newline at end of file diff --git a/modules/k3s.nix b/modules/k3s.nix index 781da73..ba69020 100644 --- a/modules/k3s.nix +++ b/modules/k3s.nix @@ -1,4 +1,4 @@ -{ config, lib, ... }: +{config, pkgs, lib, ...}: let cfg = config.modules.k3s; @@ -7,5 +7,7 @@ in { options.modules.k3s.enable = lib.mkEnableOption "Enable the k3s service"; - config = lib.mkIf cfg.enable { services.k3s.enable = true; }; -} + config = lib.mkIf cfg.enable { + services.k3s.enable = true; + }; +} \ No newline at end of file diff --git a/modules/kubernetes.nix b/modules/kubernetes.nix index 819dceb..3f10a7d 100644 --- a/modules/kubernetes.nix +++ b/modules/kubernetes.nix @@ -1,16 +1,11 @@ -{ - config, - pkgs, - lib, - ... -}: +{config, pkgs, lib, ...}: let cfg = config.modules.kubernetes; in { - options.modules.kubernetes.enable = lib.mkEnableOption "Enable MiniKube and Kubectl"; + options.modules.kubernetes.enable = lib.mkEnableOption "Enable MiniKube and Kubectl"; config = lib.mkIf cfg.enable { environment.systemPackages = with pkgs; [ @@ -18,4 +13,4 @@ in kubectl ]; }; -} +} \ No newline at end of file diff --git a/modules/locale.nix b/modules/locale.nix index 1d3a479..88ecdcd 100644 --- a/modules/locale.nix +++ b/modules/locale.nix @@ -1,4 +1,5 @@ -_: { +_: +{ services.automatic-timezoned.enable = true; i18n.defaultLocale = "en_GB.UTF-8"; i18n.extraLocaleSettings = { @@ -12,5 +13,5 @@ _: { LC_TELEPHONE = "en_GB.UTF-8"; LC_TIME = "en_GB.UTF-8"; }; - console.keyMap = "uk"; -} + console.keyMap = "uk"; +} \ No newline at end of file diff --git a/modules/networkManager.nix b/modules/networkManager.nix index c576060..dca6ad0 100644 --- a/modules/networkManager.nix +++ b/modules/networkManager.nix @@ -1 +1,5 @@ -_: { networking.networkmanager.enable = true; } +{config, pkgs, ...}: + +{ + networking.networkmanager.enable = true; +} \ No newline at end of file diff --git a/modules/prismLauncher.nix b/modules/prismLauncher.nix index 1cab5d6..98acfbb 100644 --- a/modules/prismLauncher.nix +++ b/modules/prismLauncher.nix @@ -1,9 +1,4 @@ -{ - config, - pkgs, - lib, - ... -}: +{config, pkgs, lib, ...}: let cfg = config.modules.prismLauncher; @@ -11,5 +6,9 @@ in { options.modules.prismLauncher.enable = lib.mkEnableOption "Enables the prism minecraft launcher"; - config = lib.mkIf cfg.enable { environment.systemPackages = with pkgs; [ prismlauncher ]; }; -} + config = lib.mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + prismlauncher + ]; + }; +} \ No newline at end of file diff --git a/modules/yazi.nix b/modules/yazi.nix index 55aa448..53fc5ca 100644 --- a/modules/yazi.nix +++ b/modules/yazi.nix @@ -1,26 +1,8 @@ -{ - config, - pkgs, - lib, - ... -}: +{config, pkgs, lib, ...}: let cfg = config.modules.yazi; -in -{ - options.modules.yazi = { - enable = lib.mkEnableOption "Enable Yazi file manager"; - }; - - config = lib.mkIf cfg.enable { - programs = { - yazi.enable = true; - }; - - fonts.packages = builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts); - - environment.systemPackages = with pkgs; [ + optional-packages = lib.mkIf cfg.optional-programs (with pkgs; [ ffmpeg_7 p7zip jq @@ -31,6 +13,22 @@ in zoxide resvg imagemagick - ]; + ]); +in +{ + options.modules.yazi = { + enable = lib.mkEnableOption "Enable Yazi file manager"; + optional-programs = lib.mkEnableOption "Enable optional extra packages"; }; -} + + config = lib.mkIf cfg.enable { + programs = { + yazi.enable = true; + }; + + environment.systemPackages = with pkgs; [ + nerd-fonts.ubuntu + nerd-fonts.ubuntu-mono + ] ++ optional-packages; + }; +} \ No newline at end of file diff --git a/shell.nix b/shell.nix deleted file mode 100644 index 1b9bf5d..0000000 --- a/shell.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ - pkgs ? import { }, -}: -pkgs.mkShell { - nativeBuildInputs = with pkgs.buildPackages; [ - deadnix - statix - treefmt - nixfmt-rfc-style - ]; -} diff --git a/systems/vm/configuration.nix b/systems/vm/configuration.nix index 0ed30cc..5377647 100644 --- a/systems/vm/configuration.nix +++ b/systems/vm/configuration.nix @@ -1,25 +1,27 @@ -_: +{ config, pkgs, ...}: { - imports = [ - ../../all-modules.nix - ./hardware-configuration.nix - ]; + imports = [ + ../../all-modules.nix + ./hardware-configuration.nix + ]; - users.users.riley = { - isNormalUser = true; - extraGroups = [ "wheel" ]; - }; + users.users.riley = { + isNormalUser = true; + extraGroups = ["wheel"]; + }; networking.hostName = "vm"; - modules.graphical = { + modules.graphical = { enable = true; waybar = true; - quickshell = true; }; - modules.yazi.enable = true; + modules.yazi = { + enable = true; + optional-programs = true; + }; - system.stateVersion = "25.11"; -} + system.stateVersion = "25.11"; +} \ No newline at end of file diff --git a/systems/vm/hardware-configuration.nix b/systems/vm/hardware-configuration.nix index 000e8b6..3b2f28b 100644 --- a/systems/vm/hardware-configuration.nix +++ b/systems/vm/hardware-configuration.nix @@ -1,27 +1,19 @@ -{ lib, modulesPath, ... }: +{ config, lib, pkgs, modulesPath, ...}: { - imports = [ (modulesPath + "/profiles/qemu-guest.nix") ]; + imports = [ + (modulesPath + "/profiles/qemu-guest.nix") + ]; - boot = { - initrd = { - availableKernelModules = [ - "ahci" - "xhci_pci" - "virtio_pci" - "sr_mod" - "virtio_blk" - ]; - kernelModules = [ ]; - }; - extraModulePackages = [ ]; - }; + boot.initrd.availableKernelModules = ["ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ]; + boot.initrd.kernelModules = []; + boot.extraModulePackages = []; fileSystems."/" = { device = "/dev/disk/by-uuid/ed56e12e-55cc-42e0-b94f-9a6d6bb2bdad"; fsType = "ext4"; }; - swapDevices = [ ]; + swapDevices = []; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; -} +} \ No newline at end of file diff --git a/treefmt.toml b/treefmt.toml deleted file mode 100644 index 4d63807..0000000 --- a/treefmt.toml +++ /dev/null @@ -1,61 +0,0 @@ -# One CLI to format the code tree - https://github.com/numtide/treefmt - -# Do not exit with error if a configured formatter is missing -# Env $TREEFMT_ALLOW_MISSING_FORMATTER -# allow-missing-formatter = true - -# The file into which a cpu profile will be written -# Env $TREEFMT_CPU_PROFILE -# cpu-profile = ./cpu.pprof - -# Exclude files or directories matching the specified globs -# Env $TREEFMT_EXCLUDES -# excludes = ["*.md", "*.gif"] - -# Exit with error if any changes were made during execution -# Useful for CI -# Env $TREEFMT_FAIL_ON_CHANGE -# fail-on-change = true - -# A list of formatters to apply -# Defaults to all configured formatters -# Env $TREEFMT_FORMATTERS -# formatters = ["gofmt", "prettier"] - -# Log paths that did not match any formatters at the specified log level -# Possible values are -# Env $TREEFMT_ON_UNMATCHED -# on-unmatched = "info" - -# The root directory from which treefmt will start walking the filesystem -# Defaults to the directory containing the config file -# Env $TREEFMT_TREE_ROOT -# tree-root = "/tmp/foo" - -# File to search for to find the tree root (if tree-root is not set) -# Env $TREEFMT_TREE_ROOT_FILE -# tree-root-file = ".git/config" - -# Set the verbosity of logs -# 0 = warn, 1 = info, 2 = debug -# Env $TREEFMT_VERBOSE -# verbose = 2 - -# The method used to traverse the files within the tree root -# Currently, we support 'auto', 'git' or 'filesystem' -# Env $TREEFMT_WALK -# walk = "filesystem" - -[formatter.nixfmt] -# Command to execute -command = "nixfmt" -# Command-line arguments for the command -options = ["-s", "-v", "-w150"] -# Glob pattern of files to include -includes = ["*.nix"] -# Glob patterns of files to exclude -excludes = [] -# Controls the order of application when multiple formatters match the same file -# Lower the number, the higher the precedence -# Default is 0 -priority = 0