diff --git a/.gitignore b/.gitignore index 8d25b83..9c4773b 100644 --- a/.gitignore +++ b/.gitignore @@ -2,32 +2,40 @@ !derivations/ -!machines/ -!machines/enka/ -!machines/enka/bat/ -!machines/enka/blueman/ -!machines/enka/discord/ -!machines/enka/dunst/ -!machines/enka/firefox/ -!machines/enka/fuzzel/ -!machines/enka/ghostty/ -!machines/enka/git/ -!machines/enka/greetd/ -!machines/enka/gtk/ -!machines/enka/helix/ -!machines/enka/hyprland/ -!machines/enka/kitty/ -!machines/enka/logind/ -!machines/enka/networkmanager/ -!machines/enka/nushell/ -!machines/enka/openttd/ -!machines/enka/pipewire/ -!machines/enka/pueue/ -!machines/enka/python/ -!machines/enka/qt/ -!machines/enka/steam/ -!machines/enka/steck/ -!machines/enka/waybar/ +!hosts/ + +!modules/ +!modules/bat/ +!modules/blueman/ +!modules/boot/ +!modules/discord/ +!modules/dunst/ +!modules/firefox/ +!modules/fonts/ +!modules/fuzzel/ +!modules/ghostty/ +!modules/git/ +!modules/greetd/ +!modules/gtk/ +!modules/helix/ +!modules/hyprland/ +!modules/kitty/ +!modules/localisation/ +!modules/logind/ +!modules/networkmanager/ +!modules/nix/ +!modules/nushell/ +!modules/openttd/ +!modules/pipewire/ +!modules/pueue/ +!modules/python/ +!modules/qt/ +!modules/rust/ +!modules/steam/ +!modules/steck/ +!modules/waybar/ + +!lib/ !.gitignore !flake.lock diff --git a/machines/enka/packages.nix b/enka/packages.nix similarity index 62% rename from machines/enka/packages.nix rename to enka/packages.nix index 992a88d..8a9e29c 100644 --- a/machines/enka/packages.nix +++ b/enka/packages.nix @@ -1,6 +1,6 @@ -{ lib, pkgs, systemPackages, homePackages, ... }: lib.recursiveUpdate +{ ulib, pkgs, ... }: with ulib; merge -(with pkgs; systemPackages [ +(systemPackages (with pkgs; [ asciinema fastfetch fd @@ -28,19 +28,17 @@ maven vlang zig +])) - (fenix.complete.withComponents [ - "cargo" - "clippy" - "rust-src" - "rustc" - "rustfmt" - ]) +<<<<<<< Updated upstream:enka/packages.nix ]) -(with pkgs; homePackages "nixos" [ +(with pkgs; graphicalPackages [ jetbrains.idea-ultimate +======= +(graphicalPackages (with pkgs; [ +>>>>>>> Stashed changes:modules/packages/default.nix qbittorrent thunderbird whatsapp-for-linux @@ -52,4 +50,4 @@ libreoffice hunspellDicts.en_US hunspellDicts.en_GB-ize -]) +])) diff --git a/flake.nix b/flake.nix index 0f7e6bf..39e9987 100644 --- a/flake.nix +++ b/flake.nix @@ -18,14 +18,14 @@ }; inputs = { - nixpkgs = { - url = "github:NixOS/nixpkgs/nixos-unstable"; - }; - nixSuper = { url = "github:privatevoid-net/nix-super"; }; + nixpkgs = { + url = "github:NixOS/nixpkgs/nixos-unstable"; + }; + homeManager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; @@ -72,8 +72,7 @@ }; }; - outputs = inputs @ { - self, + outputs = { nixSuper, nixpkgs, homeManager, @@ -83,131 +82,63 @@ tools, themes, ... - }: tools.eachDefaultLinuxArch (system: let - pkgs = nixpkgs.legacyPackages.${system}; - - upkgs = tools.recursiveUpdateMap (name: { - ${name} = inputs.${name}.packages.${system}.default; - }) [ "nixSuper" "hyprland" "hyprpicker" "ghostty" "zls" ]; - + } @ inputs: let lib = nixpkgs.lib; - ulib = { - inherit (tools) recursiveUpdateMap; - inherit nuScripts; + ulib = import ./lib lib; - recursiveUpdate3 = x: y: z: lib.recursiveUpdate x (lib.recursiveUpdate y z); - }; + configuration = host: system: let + pkgs = import nixpkgs { inherit system; }; - theme = themes.custom (themes.raw.gruvbox-dark-hard // { - corner-radius = 0; - border-width = 1; + upkgs = { inherit nuScripts; } // (lib.genAttrs + [ "nixSuper" "hyprland" "hyprpicker" "ghostty" "zls" ] + (name: inputs.${name}.packages.${system}.default)); - margin = 0; - padding = 8; + theme = themes.custom (themes.raw.gruvbox-dark-hard // { + corner-radius = 0; + border-width = 1; - font.size.normal = 12; - font.size.big = 18; + margin = 0; + padding = 8; - font.sans.name = "Lexend"; - font.sans.package = pkgs.lexend; + font.size.normal = 12; + font.size.big = 18; - font.mono.name = "RobotoMono Nerd Font"; - font.mono.package = (pkgs.nerdfonts.override { fonts = [ "RobotoMono" ]; }); + font.sans.name = "Lexend"; + font.sans.package = pkgs.lexend; - icons.name = "Gruvbox-Plus-Dark"; - icons.package = pkgs.callPackage (import ./derivations/gruvbox-icons.nix) {}; - }); + font.mono.name = "RobotoMono Nerd Font"; + font.mono.package = (pkgs.nerdfonts.override { fonts = [ "RobotoMono" ]; }); - abstractions = rec { - imports = paths: lib.genAttrs [ "imports" ] (_: paths); + icons.name = "Gruvbox-Plus-Dark"; + icons.package = pkgs.callPackage (import ./derivations/gruvbox-icons.nix) {}; + }); - enabled = attributes: attributes // { enable = true; }; + defaultConfiguration = { + environment.defaultPackages = []; - normalUser = attributes: attributes // { isNormalUser = true; }; + home-manager.sharedModules = [ ghosttyModule.homeModules.default ]; + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; - systemConfiguration = attributes: attributes; - - systemPackages = packages: systemConfiguration { - environment.systemPackages = packages; + networking.hostName = host; + nixpkgs.hostPlatform = system; }; + in lib.nixosSystem { + inherit system; - systemFonts = fonts: systemConfiguration { - fonts.packages = fonts; - }; - - homeConfiguration = user: attributes: systemConfiguration { - home-manager.users = tools.recursiveUpdateMap (user: { - ${user} = attributes; - }) (if builtins.isList user then user else [ user ]); - }; - - homePackages = user: packages: homeConfiguration user { - home.packages = packages; - }; - }; - - defaultConfiguration = host: with abstractions; systemConfiguration { - boot.tmp.cleanOnBoot = true; - - environment.defaultPackages = []; - - home-manager.sharedModules = [ ghosttyModule.homeModules.default ]; - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - - networking.hostName = host; - - nix.gc = { - automatic = true; - dates = "daily"; - options = "--delete-older-than 3d"; - persistent = true; - }; - - nix.nixPath = [ "nixpkgs=${nixpkgs}" ]; - - nix.optimise.automatic = true; - - nix.package = upkgs.nixSuper; - - nix.registry = { - nixpkgs.flake = nixpkgs; - default.flake = nixpkgs; - }; - - nix.settings.experimental-features = [ - "fetch-tree" - "flakes" - "nix-command" - "repl-flake" + specialArgs = { inherit inputs ulib upkgs theme; }; + modules = [ + homeManager.nixosModules.default + defaultConfiguration + ./hosts/${host}.nix ]; - - nix.settings.trusted-users = [ "root" "@wheel" ]; - nix.settings.warn-dirty = false; - - nixpkgs.config.allowUnfree = true; - nixpkgs.overlays = [ fenix.overlays.default ]; - - programs.nix-ld = enabled {}; }; - specialArgs = abstractions // { - inherit upkgs ulib theme; + configurations = builtins.mapAttrs configuration; + in { + nixosConfigurations = configurations { + enka = "x86_64-linux"; }; - - importConfigurations = tools.recursiveUpdateMap (host: { - nixosConfigurations.${host} = lib.nixosSystem { - inherit specialArgs; - - modules = [ - homeManager.nixosModules.default - (defaultConfiguration host) - ./machines/${host} - ]; - }; - }); - in importConfigurations [ - "enka" - ]); + }; } diff --git a/hosts/enka.nix b/hosts/enka.nix new file mode 100644 index 0000000..d3defc0 --- /dev/null +++ b/hosts/enka.nix @@ -0,0 +1,51 @@ +{ ulib, ... }: with ulib; merge3 + +(systemConfiguration { + system.stateVersion = "23.05"; + + users.users.nixos = graphicalUser { + description = "NixOS"; + extraGroups = [ "wheel" ]; + }; +}) + +(homeConfiguration { + home.stateVersion = "23.05"; +}) + +(importModules [ + "bat" + "blueman" + "boot" + "discord" + "dunst" + "firefox" + "fonts" + "fuzzel" + "ghostty" + "git" + "greetd" + "gtk" + "helix" + "hyprland" + "kitty" + "localisation" + "logind" + "networkmanager" + "nix" + "nushell" + "openttd" + "pipewire" + "pueue" + "python" + "qt" + "rust" + "steam" + "steck" + "waybar" + + # TODO: Move this somewhere, IDK. + ../enka/packages.nix + + /etc/nixos/hardware-configuration.nix +]) diff --git a/lib/configuration.nix b/lib/configuration.nix new file mode 100644 index 0000000..683aef3 --- /dev/null +++ b/lib/configuration.nix @@ -0,0 +1,29 @@ +rec { + systemConfiguration = configuration: configuration; + + systemPackages = packages: systemConfiguration { + environment.systemPackages = packages; + }; + + systemFonts = packages: systemConfiguration { + fonts.packages = packages; + }; + + userHomeConfiguration = users: configuration: { + home-manager.users = builtins.foldl' (final: user: final // { + ${user} = configuration; + }) {} (if builtins.isList users then users else [ users ]); + }; + + # FIXME: Don't hardcode these. + graphicalConfiguration = userHomeConfiguration "nixos"; + graphicalPackages = packages: graphicalConfiguration { + home.packages = packages; + }; + + # FIXME: Don't hardcode these. + homeConfiguration = userHomeConfiguration [ "nixos" "root" ]; + homePackages = packages: homeConfiguration { + home.packages = packages; + }; +} diff --git a/lib/default.nix b/lib/default.nix new file mode 100644 index 0000000..c3c5293 --- /dev/null +++ b/lib/default.nix @@ -0,0 +1,9 @@ +lib: + +(import ./configuration.nix) +// +(import ./merge.nix lib) +// +(import ./modules.nix) +// +(import ./values.nix) diff --git a/lib/merge.nix b/lib/merge.nix new file mode 100644 index 0000000..ab28500 --- /dev/null +++ b/lib/merge.nix @@ -0,0 +1,8 @@ +lib: + +rec { + merge = lib.recursiveUpdate; + merge3 = x: y: merge (merge x y); + merge4 = x: y: merge3 (merge x y); + merge5 = x: y: merge4 (merge x y); +} diff --git a/lib/modules.nix b/lib/modules.nix new file mode 100644 index 0000000..14d06a8 --- /dev/null +++ b/lib/modules.nix @@ -0,0 +1,8 @@ +{ + importModules = modules: { + imports = builtins.map (module: if builtins.isPath module then + module + else + ../modules/${module}) modules; + }; +} diff --git a/lib/values.nix b/lib/values.nix new file mode 100644 index 0000000..e49823d --- /dev/null +++ b/lib/values.nix @@ -0,0 +1,14 @@ +{ + enabled = attributes: attributes // { + enable = true; + }; + + normalUser = attributes: attributes // { + isNormalUser = true; + }; + + graphicalUser = attributes: attributes // { + extraGroups = [ "graphical" ] ++ (attributes.extraGroups or []); + isNormalUser = true; + }; +} diff --git a/machines/enka/default.nix b/machines/enka/default.nix deleted file mode 100644 index 985dac6..0000000 --- a/machines/enka/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ pkgs, ulib, systemConfiguration, homeConfiguration, imports, ... }: ulib.recursiveUpdate3 - -(systemConfiguration { - boot.kernelPackages = pkgs.linuxPackages_latest; - boot.loader = { - efi.canTouchEfiVariables = true; - systemd-boot.enable = true; - systemd-boot.editor = false; - }; - - system.stateVersion = "23.05"; -}) - -(homeConfiguration [ "nixos" "root" ] { - home.stateVersion = "23.05"; -}) - -(imports [ - ./bat - ./blueman - ./discord - ./dunst - ./firefox - ./fuzzel - ./ghostty - ./git - ./greetd - ./gtk - ./helix - ./hyprland - ./kitty - ./logind - ./networkmanager - ./nushell - ./openttd - ./pipewire - ./pueue - ./python - ./steam - ./steck - ./waybar - - ./fonts.nix - ./localisation.nix - ./packages.nix - ./users.nix - - /etc/nixos/hardware-configuration.nix -]) diff --git a/machines/enka/openttd/default.nix b/machines/enka/openttd/default.nix deleted file mode 100644 index 0f0d207..0000000 --- a/machines/enka/openttd/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ pkgs, homePackages, ... }: - -with pkgs; homePackages "nixos" [ - openttd -] diff --git a/machines/enka/steck/default.nix b/machines/enka/steck/default.nix deleted file mode 100644 index f2ddaff..0000000 --- a/machines/enka/steck/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ lib, pkgs, systemPackages, homeConfiguration, ... }: lib.recursiveUpdate - -(with pkgs; systemPackages [ - steck -]) - -(homeConfiguration [ "nixos" "root" ] { - programs.nushell.shellAliases.share = "steck paste"; -}) diff --git a/machines/enka/users.nix b/machines/enka/users.nix deleted file mode 100644 index 8b82655..0000000 --- a/machines/enka/users.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ systemConfiguration, normalUser, ... }: - -systemConfiguration { - users.users.nixos = normalUser { - description = "NixOS"; - extraGroups = [ "wheel" ]; - }; -} diff --git a/machines/enka/bat/default.nix b/modules/bat/default.nix similarity index 62% rename from machines/enka/bat/default.nix rename to modules/bat/default.nix index 3d342aa..87c54c1 100644 --- a/machines/enka/bat/default.nix +++ b/modules/bat/default.nix @@ -1,6 +1,6 @@ -{ theme, homeConfiguration, enabled, ... }: +{ ulib, theme, ... }: with ulib; -homeConfiguration [ "nixos" "root" ] { +homeConfiguration { programs.nushell.environmentVariables = { MANPAGER = ''"bat --plain --language man"''; PAGER = ''"bat --plain"''; @@ -12,7 +12,7 @@ homeConfiguration [ "nixos" "root" ] { }; programs.bat = enabled { - config.theme = "default"; - themes.default = theme.tmTheme; + config.theme = "base16"; + themes.base16 = theme.tmTheme; }; } diff --git a/machines/enka/blueman/default.nix b/modules/blueman/default.nix similarity index 75% rename from machines/enka/blueman/default.nix rename to modules/blueman/default.nix index fd72a81..d448a49 100644 --- a/machines/enka/blueman/default.nix +++ b/modules/blueman/default.nix @@ -1,4 +1,4 @@ -{ systemConfiguration, enabled, ... }: +{ ulib, ... }: with ulib; systemConfiguration { services.blueman = enabled {}; diff --git a/modules/boot/default.nix b/modules/boot/default.nix new file mode 100644 index 0000000..40a2d31 --- /dev/null +++ b/modules/boot/default.nix @@ -0,0 +1,13 @@ +{ ulib, pkgs, ... }: with ulib; + +systemConfiguration { + boot.kernelPackages = pkgs.linuxPackages_latest; + + boot.loader = { + efi.canTouchEfiVariables = true; + systemd-boot.enable = true; + systemd-boot.editor = false; + }; + + boot.tmp.cleanOnBoot = true; +} diff --git a/machines/enka/discord/default.nix b/modules/discord/default.nix similarity index 51% rename from machines/enka/discord/default.nix rename to modules/discord/default.nix index 64ebb90..3cd3305 100644 --- a/machines/enka/discord/default.nix +++ b/modules/discord/default.nix @@ -1,12 +1,12 @@ -{ lib, pkgs, theme, homeConfiguration, homePackages, ... }: lib.recursiveUpdate +{ ulib, pkgs, theme, ... }: with ulib; merge -(homeConfiguration "nixos" { +(graphicalConfiguration { xdg.configFile."Vencord/settings/quickCss.css".text = theme.discordCss; }) -(with pkgs; homePackages "nixos" [ +(graphicalPackages (with pkgs; [ (discord.override { withOpenASAR = true; withVencord = true; }) -]) +])) diff --git a/machines/enka/dunst/default.nix b/modules/dunst/default.nix similarity index 92% rename from machines/enka/dunst/default.nix rename to modules/dunst/default.nix index 004c2e5..bf5d163 100644 --- a/machines/enka/dunst/default.nix +++ b/modules/dunst/default.nix @@ -1,6 +1,6 @@ -{ theme, homeConfiguration, enabled, ... }: +{ ulib, theme, ... }: with ulib; -homeConfiguration "nixos" { +graphicalConfiguration { services.dunst = with theme.withHashtag; enabled { iconTheme = icons; diff --git a/machines/enka/firefox/default.nix b/modules/firefox/default.nix similarity index 52% rename from machines/enka/firefox/default.nix rename to modules/firefox/default.nix index 7817598..631cf37 100644 --- a/machines/enka/firefox/default.nix +++ b/modules/firefox/default.nix @@ -1,6 +1,6 @@ -{ homeConfiguration, enabled, ... }: +{ ulib, ... }: with ulib; -homeConfiguration "nixos" { +graphicalConfiguration { programs.firefox = enabled {}; programs.librewolf = enabled {}; diff --git a/machines/enka/fonts.nix b/modules/fonts/default.nix similarity index 72% rename from machines/enka/fonts.nix rename to modules/fonts/default.nix index bf678de..b721706 100644 --- a/machines/enka/fonts.nix +++ b/modules/fonts/default.nix @@ -1,4 +1,4 @@ -{ lib, pkgs, theme, systemConfiguration, systemFonts, ... }: lib.recursiveUpdate +{ ulib, pkgs, theme, ... }: with ulib; merge (systemConfiguration { console = { @@ -10,7 +10,7 @@ }; }) -(with pkgs; systemFonts [ +(systemFonts (with pkgs; [ theme.font.sans.package theme.font.mono.package @@ -18,4 +18,4 @@ noto-fonts-cjk-sans noto-fonts-lgc-plus noto-fonts-emoji -]) +])) diff --git a/machines/enka/fuzzel/default.nix b/modules/fuzzel/default.nix similarity index 91% rename from machines/enka/fuzzel/default.nix rename to modules/fuzzel/default.nix index 95707fb..10bfcf3 100644 --- a/machines/enka/fuzzel/default.nix +++ b/modules/fuzzel/default.nix @@ -1,6 +1,6 @@ -{ theme, homeConfiguration, enabled, ... }: +{ ulib, theme, ... }: with ulib; -homeConfiguration "nixos" { +graphicalConfiguration { programs.fuzzel = with theme; enabled { settings.main = { dpi-aware = false; diff --git a/machines/enka/ghostty/default.nix b/modules/ghostty/default.nix similarity index 85% rename from machines/enka/ghostty/default.nix rename to modules/ghostty/default.nix index 2b2331c..55fdccb 100644 --- a/machines/enka/ghostty/default.nix +++ b/modules/ghostty/default.nix @@ -1,6 +1,6 @@ -{ pkgs, upkgs, theme, homeConfiguration, enabled, ... }: +{ ulib, pkgs, upkgs, theme, ... }: with ulib; -homeConfiguration "nixos" { +graphicalConfiguration { programs.nushell.environmentVariables.TERMINAL = "ghostty"; programs.ghostty = enabled { diff --git a/machines/enka/git/default.nix b/modules/git/default.nix similarity index 94% rename from machines/enka/git/default.nix rename to modules/git/default.nix index 3446f71..7278abd 100644 --- a/machines/enka/git/default.nix +++ b/modules/git/default.nix @@ -1,6 +1,6 @@ -{ pkgs, homeConfiguration, enabled, ... }: +{ ulib, pkgs, ... }: with ulib; -homeConfiguration [ "nixos" "root" ] { +homeConfiguration { programs.nushell.shellAliases = { g = "git"; diff --git a/machines/enka/greetd/default.nix b/modules/greetd/default.nix similarity index 86% rename from machines/enka/greetd/default.nix rename to modules/greetd/default.nix index ebe9c85..d4614a5 100644 --- a/machines/enka/greetd/default.nix +++ b/modules/greetd/default.nix @@ -1,4 +1,4 @@ -{ pkgs, systemConfiguration, enabled, ... }: +{ ulib, pkgs, ... }: with ulib; systemConfiguration { services.greetd = enabled { diff --git a/machines/enka/gtk/default.nix b/modules/gtk/default.nix similarity index 75% rename from machines/enka/gtk/default.nix rename to modules/gtk/default.nix index b4ce73e..32a6ad9 100644 --- a/machines/enka/gtk/default.nix +++ b/modules/gtk/default.nix @@ -1,10 +1,10 @@ -{ lib, pkgs, theme, systemConfiguration, homeConfiguration, enabled, ... }: lib.recursiveUpdate +{ ulib, pkgs, theme, ... }: with ulib; merge (systemConfiguration { programs.dconf = enabled {}; }) -(homeConfiguration "nixos" { +(graphicalConfiguration { gtk = enabled { gtk3.extraCss = theme.adwaitaGtkCss; gtk4.extraCss = theme.adwaitaGtkCss; diff --git a/machines/enka/helix/default.nix b/modules/helix/default.nix similarity index 89% rename from machines/enka/helix/default.nix rename to modules/helix/default.nix index 0405e3e..3ba0423 100644 --- a/machines/enka/helix/default.nix +++ b/modules/helix/default.nix @@ -1,6 +1,6 @@ -{ lib, pkgs, upkgs, homeConfiguration, homePackages, enabled, ... }: lib.recursiveUpdate +{ ulib, lib, pkgs, upkgs, ... }: with ulib; merge -(homeConfiguration [ "nixos" "root" ] { +(homeConfiguration { programs.nushell.environmentVariables.EDITOR = "hx"; programs.nushell.shellAliases.x = "hx"; @@ -43,7 +43,7 @@ }; }) -(with pkgs; homePackages "nixos" [ +(homePackages (with pkgs; [ # CMAKE cmake-language-server @@ -76,4 +76,4 @@ # ZIG upkgs.zls -]) +])) diff --git a/machines/enka/hyprland/default.nix b/modules/hyprland/default.nix similarity index 97% rename from machines/enka/hyprland/default.nix rename to modules/hyprland/default.nix index f2ef57e..d60c5be 100644 --- a/machines/enka/hyprland/default.nix +++ b/modules/hyprland/default.nix @@ -1,4 +1,4 @@ -{ pkgs, upkgs, ulib, theme, systemConfiguration, homeConfiguration, homePackages, enabled, ... }: ulib.recursiveUpdate3 +{ ulib, pkgs, upkgs, theme, ... }: with ulib; merge3 (systemConfiguration { hardware.opengl = enabled {}; @@ -10,7 +10,7 @@ }; }) -(homeConfiguration "nixos" { +(graphicalConfiguration { wayland.windowManager.hyprland = with theme; enabled { package = upkgs.hyprland; @@ -213,7 +213,7 @@ }; }) -(with pkgs; homePackages "nixos" [ +(homePackages (with pkgs; [ brightnessctl cliphist grim @@ -224,4 +224,4 @@ wl-clipboard xdg-utils xwaylandvideobridge -]) +])) diff --git a/machines/enka/hyprland/wallpaper.png b/modules/hyprland/wallpaper.png similarity index 100% rename from machines/enka/hyprland/wallpaper.png rename to modules/hyprland/wallpaper.png diff --git a/machines/enka/kitty/default.nix b/modules/kitty/default.nix similarity index 95% rename from machines/enka/kitty/default.nix rename to modules/kitty/default.nix index 0bbe1b3..d833d18 100644 --- a/machines/enka/kitty/default.nix +++ b/modules/kitty/default.nix @@ -1,6 +1,6 @@ -{ theme, homeConfiguration, enabled, ... }: +{ ulib, theme, ... }: with ulib; -homeConfiguration "nixos" { +graphicalConfiguration { programs.kitty = with theme.withHashtag; enabled { font = with font; { inherit (mono) name package; diff --git a/machines/enka/localisation.nix b/modules/localisation/default.nix similarity index 94% rename from machines/enka/localisation.nix rename to modules/localisation/default.nix index 39d493e..f0476de 100644 --- a/machines/enka/localisation.nix +++ b/modules/localisation/default.nix @@ -1,4 +1,4 @@ -{ systemConfiguration, ... }: +{ ulib, ... }: with ulib; systemConfiguration { console.keyMap = "trq"; diff --git a/machines/enka/logind/default.nix b/modules/logind/default.nix similarity index 68% rename from machines/enka/logind/default.nix rename to modules/logind/default.nix index efd7a21..0853da6 100644 --- a/machines/enka/logind/default.nix +++ b/modules/logind/default.nix @@ -1,4 +1,4 @@ -{ systemConfiguration, ... }: +{ ulib, ... }: with ulib; systemConfiguration { services.logind.powerKey = "ignore"; diff --git a/machines/enka/networkmanager/default.nix b/modules/networkmanager/default.nix similarity index 76% rename from machines/enka/networkmanager/default.nix rename to modules/networkmanager/default.nix index 24c5093..f4e2ecf 100644 --- a/machines/enka/networkmanager/default.nix +++ b/modules/networkmanager/default.nix @@ -1,4 +1,4 @@ -{ systemConfiguration, enabled, ... }: +{ ulib, ... }: with ulib; systemConfiguration { networking.networkmanager = enabled {}; diff --git a/modules/nix/default.nix b/modules/nix/default.nix new file mode 100644 index 0000000..5eeff4a --- /dev/null +++ b/modules/nix/default.nix @@ -0,0 +1,35 @@ +{ inputs, ulib, upkgs, ... }: with ulib; + +systemConfiguration { + nix = { + gc = { + automatic = true; + dates = "daily"; + options = "--delete-older-than 3d"; + persistent = true; + }; + + nixPath = [ "nixpkgs=${inputs.nixpkgs}" ]; + + optimise.automatic = true; + + package = upkgs.nixSuper; + + registry = { + nixpkgs.flake = inputs.nixpkgs; + default.flake = inputs.nixpkgs; + }; + + settings.experimental-features = [ + "fetch-tree" + "flakes" + "nix-command" + "repl-flake" + ]; + + settings.trusted-users = [ "root" "@wheel" ]; + settings.warn-dirty = false; + }; + + programs.nix-ld = enabled {}; +} diff --git a/machines/enka/nushell/boom.mp3 b/modules/nushell/boom.mp3 similarity index 100% rename from machines/enka/nushell/boom.mp3 rename to modules/nushell/boom.mp3 diff --git a/machines/enka/nushell/boom.opus b/modules/nushell/boom.opus similarity index 100% rename from machines/enka/nushell/boom.opus rename to modules/nushell/boom.opus diff --git a/machines/enka/nushell/configuration.nix.nu b/modules/nushell/configuration.nix.nu similarity index 100% rename from machines/enka/nushell/configuration.nix.nu rename to modules/nushell/configuration.nix.nu diff --git a/machines/enka/nushell/default.nix b/modules/nushell/default.nix similarity index 72% rename from machines/enka/nushell/default.nix rename to modules/nushell/default.nix index 7f52633..0afdd66 100644 --- a/machines/enka/nushell/default.nix +++ b/modules/nushell/default.nix @@ -1,16 +1,16 @@ -{ config, pkgs, ulib, theme, systemConfiguration, homeConfiguration, homePackages, enabled, ... }: ulib.recursiveUpdate3 +{ config, ulib, pkgs, upkgs, theme, ... }: with ulib; merge3 (systemConfiguration { users.defaultUserShell = pkgs.nushell; }) -(homeConfiguration [ "nixos" "root" ] { +(homeConfiguration { programs.starship = enabled {}; programs.nushell = enabled { configFile.text = import ./configuration.nix.nu; envFile.text = import ./environment.nix.nu { - inherit (ulib) nuScripts; + inherit (upkgs) nuScripts; inherit theme; }; @@ -32,6 +32,6 @@ }; }) -(with pkgs; homePackages "nixos" [ +(homePackages (with pkgs; [ carapace -]) +])) diff --git a/machines/enka/nushell/environment.nix.nu b/modules/nushell/environment.nix.nu similarity index 100% rename from machines/enka/nushell/environment.nix.nu rename to modules/nushell/environment.nix.nu diff --git a/modules/openttd/default.nix b/modules/openttd/default.nix new file mode 100644 index 0000000..68f0c19 --- /dev/null +++ b/modules/openttd/default.nix @@ -0,0 +1,5 @@ +{ ulib, pkgs, ... }: with ulib; + +graphicalPackages (with pkgs; [ + openttd +]) diff --git a/machines/enka/pipewire/default.nix b/modules/pipewire/default.nix similarity index 83% rename from machines/enka/pipewire/default.nix rename to modules/pipewire/default.nix index 51e83cd..6ff84aa 100644 --- a/machines/enka/pipewire/default.nix +++ b/modules/pipewire/default.nix @@ -1,4 +1,4 @@ -{ systemConfiguration, enabled, ... }: +{ ulib, ... }: with ulib; systemConfiguration { security.rtkit = enabled {}; diff --git a/machines/enka/pueue/default.nix b/modules/pueue/default.nix similarity index 95% rename from machines/enka/pueue/default.nix rename to modules/pueue/default.nix index 2d8fd79..4aee13b 100644 --- a/machines/enka/pueue/default.nix +++ b/modules/pueue/default.nix @@ -1,6 +1,6 @@ -{ homeConfiguration, enabled, ... }: +{ ulib, ... }: with ulib; -homeConfiguration "nixos" { +homeConfiguration { services.pueue = enabled { settings = { shared = { diff --git a/machines/enka/python/default.nix b/modules/python/default.nix similarity index 53% rename from machines/enka/python/default.nix rename to modules/python/default.nix index 29a78cb..a63dd7c 100644 --- a/machines/enka/python/default.nix +++ b/modules/python/default.nix @@ -1,15 +1,15 @@ -{ lib, pkgs, systemPackages, homeConfiguration, ... }: lib.recursiveUpdate +{ ulib, pkgs, ... }: with ulib; merge -(with pkgs; systemPackages [ +(systemPackages (with pkgs; [ (python311.withPackages (pkgs: with pkgs; [ pip requests ])) virtualenv poetry -]) +])) -(homeConfiguration [ "nixos" "root" ] { +(homeConfiguration { programs.nushell.shellAliases = { venv = "virtualenv venv"; }; diff --git a/machines/enka/qt/default.nix b/modules/qt/default.nix similarity index 64% rename from machines/enka/qt/default.nix rename to modules/qt/default.nix index cf18b72..7b0a681 100644 --- a/machines/enka/qt/default.nix +++ b/modules/qt/default.nix @@ -1,6 +1,6 @@ -{ pkgs, homeConfiguration, enabled, ... }: +{ ulib, pkgs, ... }: with ulib; -homeConfiguration "nixos" { +graphicalConfiguration { qt = enabled { platformTheme = "gnome"; style.name = "adwaita-dark"; diff --git a/modules/rust/default.nix b/modules/rust/default.nix new file mode 100644 index 0000000..3939805 --- /dev/null +++ b/modules/rust/default.nix @@ -0,0 +1,15 @@ +{ inputs, ulib, pkgs, ... }: with ulib; merge + +(systemConfiguration { + nixpkgs.overlays = [ inputs.fenix.overlays.default ]; +}) + +(systemPackages (with pkgs; [ + (fenix.complete.withComponents [ + "cargo" + "clippy" + "rust-src" + "rustc" + "rustfmt" + ]) +])) diff --git a/machines/enka/steam/default.nix b/modules/steam/default.nix similarity index 55% rename from machines/enka/steam/default.nix rename to modules/steam/default.nix index cb0a21f..14cddca 100644 --- a/machines/enka/steam/default.nix +++ b/modules/steam/default.nix @@ -1,10 +1,12 @@ -{ lib, pkgs, systemConfiguration, homePackages, ... }: lib.recursiveUpdate +{ ulib, pkgs, ... }: with ulib; merge (systemConfiguration { # Steam uses 32-bit drivers for some unholy fucking reason. hardware.opengl.driSupport32Bit = true; + + nixpkgs.config.allowUnfree = true; }) -(with pkgs; homePackages "nixos" [ +(graphicalPackages (with pkgs; [ steam -]) +])) diff --git a/modules/steck/default.nix b/modules/steck/default.nix new file mode 100644 index 0000000..60abaf8 --- /dev/null +++ b/modules/steck/default.nix @@ -0,0 +1,9 @@ +{ ulib, pkgs, ... }: with ulib; merge + +(systemPackages (with pkgs; [ + steck +])) + +(homeConfiguration { + programs.nushell.shellAliases.share = "steck paste"; +}) diff --git a/machines/enka/waybar/default.nix b/modules/waybar/default.nix similarity index 98% rename from machines/enka/waybar/default.nix rename to modules/waybar/default.nix index 901913e..6e4a5a7 100644 --- a/machines/enka/waybar/default.nix +++ b/modules/waybar/default.nix @@ -1,6 +1,6 @@ -{ theme, homeConfiguration, enabled, ... }: +{ ulib, theme, ... }: with ulib; -homeConfiguration "nixos" { +graphicalConfiguration { programs.waybar = with theme.withHashtag; enabled { systemd = enabled {};