diff --git a/flake.nix b/flake.nix index bd59e11..4f8bfaf 100644 --- a/flake.nix +++ b/flake.nix @@ -16,7 +16,7 @@ specialArgs = { inherit inputs; }; system = "x86_64-linux"; modules = [ - ./systems/shared + ./nixosModules ] ++ extraModules; }; in diff --git a/modules/audio/pipewire/default.nix b/modules/audio/pipewire/default.nix deleted file mode 100644 index 3e55b02..0000000 --- a/modules/audio/pipewire/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - security.rtkit.enable = true; - - services.pipewire = { - enable = true; - wireplumber.enable = true; - alsa.enable = false; - alsa.support32Bit = false; - pulse.enable = true; - }; -} diff --git a/modules/etc/anime-launcher/default.nix b/modules/etc/anime-launcher/default.nix deleted file mode 100644 index 8633388..0000000 --- a/modules/etc/anime-launcher/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ inputs, pkgs, lib, ... }: - -{ - imports = [ inputs.aagl.nixosModules.default ]; - nix.settings = inputs.aagl.nixConfig; - - programs.honkers-railway-launcher.enable = true; -} diff --git a/modules/etc/input-remapper/default.nix b/modules/etc/input-remapper/default.nix deleted file mode 100644 index 3cf6a65..0000000 --- a/modules/etc/input-remapper/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - services.input-remapper.enable = true; -} diff --git a/modules/etc/steam/default.nix b/modules/etc/steam/default.nix deleted file mode 100644 index 192899c..0000000 --- a/modules/etc/steam/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - programs.steam = { - enable = true; - remotePlay.openFirewall = true; - dedicatedServer.openFirewall = true; - }; -} diff --git a/modules/graphics/nvidia/default.nix b/modules/graphics/nvidia/default.nix deleted file mode 100644 index 7e0e568..0000000 --- a/modules/graphics/nvidia/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - # Enable OpenGL - hardware.opengl = { - enable = true; - driSupport = true; - driSupport32Bit = true; - }; - - services.xserver.videoDrivers = ["nvidia"]; - - hardware.nvidia = { - modesetting.enable = true; - package = config.boot.kernelPackages.nvidiaPackages.stable; - }; - - environment.systemPackages = with pkgs; [ - nvidia-vaapi-driver - ]; -} diff --git a/modules/login/greetd/default.nix b/modules/login/greetd/default.nix deleted file mode 100644 index 23620f8..0000000 --- a/modules/login/greetd/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - services.greetd = { - enable = true; - package = pkgs.greetd.tuigreet; - settings = { - terminal = { - vt = 2; - }; - default_session = { - command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd Hyprland"; - user = "pan"; - }; - }; - }; -} diff --git a/modules/login/polkit/default.nix b/modules/login/polkit/default.nix deleted file mode 100644 index 5c0a462..0000000 --- a/modules/login/polkit/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - security.polkit.enable = true; -} diff --git a/modules/network/bluetooth/default.nix b/modules/network/bluetooth/default.nix deleted file mode 100644 index 739a9bd..0000000 --- a/modules/network/bluetooth/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - hardware.bluetooth.enable = true; - hardware.bluetooth.powerOnBoot = true; - services.blueman.enable = true; - environment.systemPackages = with pkgs; [ - blueman - ]; -} diff --git a/modules/network/browsers/librewolf/default.nix b/modules/network/browsers/librewolf/default.nix deleted file mode 100644 index 034c5eb..0000000 --- a/modules/network/browsers/librewolf/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - environment.variables.WEBBROWSER = "librewolf"; - environment.systemPackages = with pkgs; [ librewolf ]; -} diff --git a/modules/network/networking/default.nix b/modules/network/networking/default.nix deleted file mode 100644 index d778498..0000000 --- a/modules/network/networking/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - networking.wireless = { - enable = true; - userControlled = { - enable = true; - group = "network"; - }; - networks = { - "The Kabal 2.4" = { - pskRaw = "56302c1b1c7499f4a4f0e01cefe14b4393c5092420ebf71c68336cd084acd357"; - priority = 1; - }; - "WWUwireless-Secure" = { - auth = '' - key_mgmt=WPA-EAP - eap=PEAP - identity="langed@wwu.edu" - password="Slashed-Tidy4-Cubbyhole" - ''; - priority = 1; - }; - "Yellowsticky" = { - pskRaw = "8984d7e1e2f5bd9c3ccf92e429886bc64d40d42d4771ed5946556227afa4abf0"; - priority = 1; - }; - "Lange" = { - pskRaw = "bbbbf63e23747bc0ff36aed4c20dcee0221a6ccb2d2db07e4c64058e645e5f1e"; - priority = 1; - }; - "foofoo2" = { - pskRaw = "1269f8db0aec9d9c30bff6de9951f0ab2d18d7cea4dacd8bd253ebc237e73e2d"; - priority = 1; - }; - "OrbiWanKenobe" = { - pskRaw = "0128447a146d359c1224e558b0f4e3fc0a53b0b4a178334075b50f8d07e179d2"; - priority = 1; - }; - "Homura" = { - pskRaw = "dd77456e1df3f2c17bccc917a0e609684fa6d2ccb6a2e0fb122d50d243e0c87e"; - priority = 0; - }; - }; - }; - - - networking.enableIPv6 = false; -} diff --git a/modules/network/syncthing/default.nix b/modules/network/syncthing/default.nix deleted file mode 100644 index c5f9dab..0000000 --- a/modules/network/syncthing/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - services.syncthing = { - enable = true; - user = "pan"; - dataDir = "/home/pan/dox/Sync"; - configDir = "/home/pan/.config/syncthing"; - overrideFolders = true; - overrideDevices = true; - - settings = { - gui = { - user = "pan"; - password = "password"; - }; - }; - }; -} diff --git a/modules/secrets/sops-nix/default.nix b/modules/secrets/sops-nix/default.nix deleted file mode 100644 index 2c26d07..0000000 --- a/modules/secrets/sops-nix/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ inputs, pkgs, lib, ... }: -let rootPath = ./.; in -{ - imports = [ inputs.sops-nix.nixosModules.sops ]; - - sops = { - defaultSopsFile = rootPath + "secrets.yaml"; - defaultSopsFormat = "yaml"; - age.keyFile = "/home/pan/.config/sops/age/keys.txt"; - }; -} diff --git a/modules/shell/fish/default.nix b/modules/shell/fish/default.nix deleted file mode 100644 index 37eef00..0000000 --- a/modules/shell/fish/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - programs.fish.enable = true; - - users.defaultUserShell = pkgs.fish; - - environment.shells = with pkgs; [ fish ]; - - # environment.variables.NIX_BUILD_SHELL = "fish"; -} diff --git a/modules/shell/xonsh/default.nix b/modules/shell/xonsh/default.nix deleted file mode 100644 index 2c5904d..0000000 --- a/modules/shell/xonsh/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - programs.xonsh.enable = true; - - users.defaultUserShell = pkgs.xonsh; - - environment.shells = with pkgs; [ xonsh ]; -} diff --git a/modules/system/default.nix b/modules/system/default.nix deleted file mode 100644 index c0992ad..0000000 --- a/modules/system/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - # Use the systemd-boot EFI boot loader. - boot.kernelPackages = pkgs.linuxPackages_latest; - boot.loader.systemd-boot.enable = true; - boot.loader.timeout = 1; - boot.loader.efi.canTouchEfiVariables = true; - security.polkit.enable = true; - - time.timeZone = "America/Los_Angeles"; - - i18n.defaultLocale = "en_US.UTF-8"; - - # "Essential" Packages - environment.systemPackages = with pkgs; [ - git - neovim - nnn - xdg-user-dirs - ]; - - # XDG Compliance - xdg.portal.config.common.default = "*"; - environment.sessionVariables = rec { - XDG_CONFIG_HOME = "\${HOME}/.config"; - XDG_CACHE_HOME = "\${HOME}/.cache"; - XDG_STATE_HOME = "\${HOME}/.local/state"; - XDG_DATA_HOME = "\${HOME}/.local/share"; - XDG_BIN_HOME = "\${HOME}/.local/bin"; - PATH = [ - "\${HOME}/prog/scripts" - ]; - }; - - users.groups = { - wheel = { }; - network = { }; - }; -} diff --git a/modules/themeing/default.nix b/modules/themeing/default.nix deleted file mode 100644 index ad298d1..0000000 --- a/modules/themeing/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - fonts = { - enableDefaultPackages = true; - packages = with pkgs; [ - cascadia-code - source-han-sans # Pan-CJK font - ]; - }; -} diff --git a/modules/user/default.nix b/modules/user/default.nix deleted file mode 100644 index 58a4426..0000000 --- a/modules/user/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - users.users.pan = { - isNormalUser = true; - extraGroups = [ "wheel" "network" ]; - }; -} diff --git a/modules/window_managers/hyprland/default.nix b/modules/window_managers/hyprland/default.nix deleted file mode 100644 index 72babdb..0000000 --- a/modules/window_managers/hyprland/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ inputs, pkgs, lib, ... }: - -{ - imports = [ inputs.hyprland.nixosModules.default ]; - programs.hyprland.enable = true; - nix.settings = { - substituters = [ "https://hyprland.cachix.org" ]; - trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ]; - experimental-features = [ "nix-command" "flakes" ]; - }; -} diff --git a/nixosModules/apps/default.nix b/nixosModules/apps/default.nix new file mode 100644 index 0000000..b851878 --- /dev/null +++ b/nixosModules/apps/default.nix @@ -0,0 +1,11 @@ +{ config, pkgs, lib, ... }: + +{ + import = [ + ./games + ./input-remapper + ./librewolf + ./shells + ./syncthing + ]; +} diff --git a/nixosModules/apps/games/anime-launcher/default.nix b/nixosModules/apps/games/anime-launcher/default.nix new file mode 100644 index 0000000..ef10e49 --- /dev/null +++ b/nixosModules/apps/games/anime-launcher/default.nix @@ -0,0 +1,26 @@ +{ config, inputs, pkgs, lib, ... }: + +{ + options = { + aagl.enable = lib.mkEnableOption + "Enables another anime game launcher settings"; + aagl.honkai-rail = lib.mkEnableOption + "Enables honkai star rail"; + aagl.genshin = lib.mkEnableOption + "Enables genshin impact"; + aagl.honkai-3rd = lib.mkEnableOption + "Enables honkai 3rd impact"; + }; + + config = lib.mkIf config.aagl.enable { + imports = [ inputs.aagl.nixosModules.default ]; + nix.settings = inputs.aagl.nixConfig; + + programs.honkers-railway-launcher.enable = + lib.mkIf config.aagl.honkai-rail true; + programs.anime-game-launcher.enable = + lib.mkIf config.aagl.genshin true; + programs.honkers-launcher.enable = + lib.mkIf config.aagl.honkai-3rd true; + }; +} diff --git a/nixosModules/apps/games/default.nix b/nixosModules/apps/games/default.nix new file mode 100644 index 0000000..3d6b374 --- /dev/null +++ b/nixosModules/apps/games/default.nix @@ -0,0 +1,8 @@ +{ config, pkgs, lib, ... }: + +{ + import = [ + ./anime-launcher + ./steam + ]; +} diff --git a/nixosModules/apps/games/steam/default.nix b/nixosModules/apps/games/steam/default.nix new file mode 100644 index 0000000..9ae522a --- /dev/null +++ b/nixosModules/apps/games/steam/default.nix @@ -0,0 +1,15 @@ +{ config, pkgs, lib, ... }: + +{ + options = { + steam.enable = lib.mkEnableOption "Enables steam"; + }; + + config = lib.mkIf config.steam.enable { + programs.steam = { + enable = true; + remotePlay.openFirewall = true; + dedicatedServer.openFirewall = true; + }; + }; +} diff --git a/nixosModules/apps/input-remapper/default.nix b/nixosModules/apps/input-remapper/default.nix new file mode 100644 index 0000000..0646dfc --- /dev/null +++ b/nixosModules/apps/input-remapper/default.nix @@ -0,0 +1,11 @@ +{ config, pkgs, lib, ... }: + +{ + options = { + input-remapper.enable = lib.mkEnableOption "Enables input-remapper"; + }; + + config = lib.mkIf config.input-remapper.enable { + services.input-remapper.enable = true; + }; +} diff --git a/nixosModules/apps/librewolf/default.nix b/nixosModules/apps/librewolf/default.nix new file mode 100644 index 0000000..f0d4406 --- /dev/null +++ b/nixosModules/apps/librewolf/default.nix @@ -0,0 +1,12 @@ +{ config, pkgs, lib, ... }: + +{ + options = { + librewolf.enable = lib.mkEnableOption "Enables librewolf"; + }; + + config = lib.mkIf config.librewolf.enable { + environment.variables.BROWSER = "librewolf"; + environment.systemPackages = with pkgs; [ librewolf ]; + }; +} diff --git a/nixosModules/apps/shells/fish/default.nix b/nixosModules/apps/shells/fish/default.nix new file mode 100644 index 0000000..d4885f9 --- /dev/null +++ b/nixosModules/apps/shells/fish/default.nix @@ -0,0 +1,15 @@ +{ config, pkgs, lib, ... }: + +{ + options = { + fish.enable = lib.mkEnableOption "Enables fish"; + fish.setDefault = lib.mkEnableOption + "Sets fish as the default user's shell"; + }; + + config = lib.mkIf config.fish.enable { + programs.fish.enable = true; + users.users.defaultUser.shell = lib.mkIf config.fish.setDefault pkgs.fish; + environment.shells = with pkgs; [ fish ]; + }; +} diff --git a/nixosModules/apps/shells/xonsh/default.nix b/nixosModules/apps/shells/xonsh/default.nix new file mode 100644 index 0000000..4842ba0 --- /dev/null +++ b/nixosModules/apps/shells/xonsh/default.nix @@ -0,0 +1,15 @@ +{ config, pkgs, lib, ... }: + +{ + options = { + xonsh.enable = lib.mkEnableOption "Enables xonsh"; + xonsh.setDefault = lib.mkEnableOption + "Sets xonsh as the default user's shell"; + }; + + config = lib.mkIf config.xonsh.enable { + programs.xonsh.enable = true; + users.users.defaultUser.shell = lib.mkIf config.fish.setDefault pkgs.xonsh; + environment.shells = with pkgs; [ xonsh ]; + }; +} diff --git a/nixosModules/apps/syncthing/default.nix b/nixosModules/apps/syncthing/default.nix new file mode 100644 index 0000000..69cea88 --- /dev/null +++ b/nixosModules/apps/syncthing/default.nix @@ -0,0 +1,25 @@ +{ config, pkgs, lib, ... }: + +{ + options = { + syncthing.enable = lib.mkEnableOption "Enables syncthing"; + }; + + config = lib.mkIf config.syncthing.enable { + services.syncthing = { + enable = true; + user = config.user.name; + dataDir = "/home/" + config.user.name + "/dox/Sync"; + configDir = "/home/" + config.user.name + "/.config/syncthing"; + overrideFolders = true; + overrideDevices = true; + + settings = { + gui = { + user = config.user.name; + password = "password"; + }; + }; + }; + }; +} diff --git a/nixosModules/default.nix b/nixosModules/default.nix new file mode 100644 index 0000000..e243737 --- /dev/null +++ b/nixosModules/default.nix @@ -0,0 +1,8 @@ +{ config, pkgs, lib, ... }: + +{ + import = [ + ./apps + ./services + ]; +} diff --git a/nixosModules/services/default.nix b/nixosModules/services/default.nix new file mode 100644 index 0000000..e797297 --- /dev/null +++ b/nixosModules/services/default.nix @@ -0,0 +1,12 @@ +{ config, pkgs, lib, ... }: + +{ + import = [ + ./graphics + ./networking + ./pipewire + ./polkit + ./sops-nix + ./system + ]; +} diff --git a/nixosModules/services/graphics/default.nix b/nixosModules/services/graphics/default.nix new file mode 100644 index 0000000..76e68bf --- /dev/null +++ b/nixosModules/services/graphics/default.nix @@ -0,0 +1,9 @@ +{ config, pkgs, lib, ... }: + +{ + imports = [ + ./display_manager + ./nvidia + ./wayland_compositors + ]; +} diff --git a/nixosModules/services/graphics/display_manager/default.nix b/nixosModules/services/graphics/display_manager/default.nix new file mode 100644 index 0000000..8e0c4c1 --- /dev/null +++ b/nixosModules/services/graphics/display_manager/default.nix @@ -0,0 +1,23 @@ +{ config, pkgs, lib, ... }: + +{ + options = { + tuigreet.enable = lib.mkEnableOption "enables tuigreet with greetd"; + }; + + config = lib.mkIf config.tuigreet.enable { + services.greetd = { + enable = true; + package = pkgs.greetd.tuigreet; + settings = { + terminal = { + vt = 2; + }; + default_session = lib.mkIf config.hyprland.enable { + command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd Hyprland"; + user = config.user.name; + }; + }; + }; + }; +} diff --git a/nixosModules/services/graphics/nvidia/default.nix b/nixosModules/services/graphics/nvidia/default.nix new file mode 100644 index 0000000..ca25c5a --- /dev/null +++ b/nixosModules/services/graphics/nvidia/default.nix @@ -0,0 +1,28 @@ +{ config, pkgs, lib, ... }: + +{ + options = { + nvidia.enable = lib.mkEnableOption + "Enables nvidia with proprietary drivers"; + }; + + config = lib.mkIf config.nvidia.enable { + # Enable OpenGL + hardware.opengl = { + enable = true; + driSupport = true; + driSupport32Bit = true; + }; + + services.xserver.videoDrivers = ["nvidia"]; + + hardware.nvidia = { + modesetting.enable = true; + package = config.boot.kernelPackages.nvidiaPackages.stable; + }; + + environment.systemPackages = with pkgs; [ + nvidia-vaapi-driver + ]; + }; +} diff --git a/nixosModules/services/graphics/wayland_compositors/default.nix b/nixosModules/services/graphics/wayland_compositors/default.nix new file mode 100644 index 0000000..ae7dca2 --- /dev/null +++ b/nixosModules/services/graphics/wayland_compositors/default.nix @@ -0,0 +1,17 @@ +{ inputs, config, pkgs, lib, ... }: + +{ + options = { + hyprland.enable = lib.mkEnableOption "Enables hyprland"; + }; + + config = lib.mkIf config.hyprland.enable { + imports = [ inputs.hyprland.nixosModules.default ]; + programs.hyprland.enable = true; + nix.settings = { + substituters = [ "https://hyprland.cachix.org" ]; + trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ]; + experimental-features = [ "nix-command" "flakes" ]; + }; + }; +} diff --git a/nixosModules/services/networking/bluetooth/default.nix b/nixosModules/services/networking/bluetooth/default.nix new file mode 100644 index 0000000..30bed32 --- /dev/null +++ b/nixosModules/services/networking/bluetooth/default.nix @@ -0,0 +1,16 @@ +{ config, pkgs, lib, ... }: + +{ + options = { + bluetooth.enable = lib.mkEnableOption "Enables Bluetooth with blueman"; + }; + + config = lib.mkIf config.bluetooth.enable { + hardware.bluetooth.enable = true; + hardware.bluetooth.powerOnBoot = true; + services.blueman.enable = true; + environment.systemPackages = with pkgs; [ + blueman + ]; + }; +} diff --git a/nixosModules/services/networking/default.nix b/nixosModules/services/networking/default.nix new file mode 100644 index 0000000..867600d --- /dev/null +++ b/nixosModules/services/networking/default.nix @@ -0,0 +1,8 @@ +{ config, pkgs, lib, ... }: + +{ + import = [ + ./bluetooth + ./wireless + ]; +} diff --git a/nixosModules/services/networking/wireless/default.nix b/nixosModules/services/networking/wireless/default.nix new file mode 100644 index 0000000..972d057 --- /dev/null +++ b/nixosModules/services/networking/wireless/default.nix @@ -0,0 +1,33 @@ +{ config, pkgs, lib, ... }: + +{ + options = { + wireless.enable = lib.mkEnableOption "Enables wireless"; + }; + + config = lib.mkIf confi.wireless.enable { + networking.wireless = { + enable = true; + userControlled = { + enable = true; + group = "network"; + }; + networks = { + "foofoo2" = { + pskRaw = "1269f8db0aec9d9c30bff6de9951f0ab2d18d7cea4dacd8bd253ebc237e73e2d"; + priority = 1; + }; + "OrbiWanKenobe" = { + pskRaw = "0128447a146d359c1224e558b0f4e3fc0a53b0b4a178334075b50f8d07e179d2"; + priority = 1; + }; + "Homura" = { + pskRaw = "dd77456e1df3f2c17bccc917a0e609684fa6d2ccb6a2e0fb122d50d243e0c87e"; + priority = 0; + }; + }; + }; + + networking.enableIPv6 = false; + }; +} diff --git a/nixosModules/services/pipewire/default.nix b/nixosModules/services/pipewire/default.nix new file mode 100644 index 0000000..0e22758 --- /dev/null +++ b/nixosModules/services/pipewire/default.nix @@ -0,0 +1,21 @@ +{ config, pkgs, lib, ... }: + +{ + options = { + pipewire.enable = lib.mkEnableOption "Enables pipewire and pulsemixer"; + }; + + config = lib.mkIf config.pipewire.enable { + security.rtkit.enable = true; + services.pipewire = { + enable = true; + wireplumber.enable = true; + alsa.enable = false; + alsa.support32Bit = false; + pulse.enable = true; + environment.systemPackages = with pkgs; [ + pulsemixer + ]; + }; + }; +} diff --git a/nixosModules/services/polkit/default.nix b/nixosModules/services/polkit/default.nix new file mode 100644 index 0000000..917e9bc --- /dev/null +++ b/nixosModules/services/polkit/default.nix @@ -0,0 +1,14 @@ +{ config, pkgs, lib, ... }: + +{ + options = { + polkit.enable = lib.mkEnableOption "Enables polkit with kde handler"; + }; + + config = lib.mkIf config.polkit.enable { + security.polkit.enable = true; + environment.systemPackages = with pkgs; [ + polkit-kde-agent + ]; + } +} diff --git a/nixosModules/services/sops-nix/default.nix b/nixosModules/services/sops-nix/default.nix new file mode 100644 index 0000000..65d5747 --- /dev/null +++ b/nixosModules/services/sops-nix/default.nix @@ -0,0 +1,20 @@ +{ inputs, config, pkgs, lib, ... }: +let rootPath = ./.; in +{ + options = { + sops-nix.enable = lib.mkEnableOption "Enables nix-sops for secret management"; + }; + + config = lib.mkIf config.sops-nix.enable { + imports = [ inputs.sops-nix.nixosModules.sops ]; + + sops = { + defaultSopsFile = rootPath + "secrets.yaml"; + defaultSopsFormat = "yaml"; + age.keyFile = "/home/" + config.user.name + ".config/sops/age/keys.txt"; + }; + environment.systemPackages = with pkgs; [ + sops + ]; + }; +} diff --git a/nixosModules/services/system/default.nix b/nixosModules/services/system/default.nix new file mode 100644 index 0000000..eec6490 --- /dev/null +++ b/nixosModules/services/system/default.nix @@ -0,0 +1,61 @@ +{ config, pkgs, lib, ... }: + +{ + options = { + user.name = lib.mkOption { default = "pan"; }; + user.timezone = lib.mkOption { default = "America/Los_Angeles"; }; + font.extraFonts = lib.mkOption { default = []; }; + }; + + config = { + # Use the systemd-boot EFI boot loader. + boot.kernelPackages = pkgs.linuxPackages_latest; + boot.loader.systemd-boot.enable = true; + boot.loader.timeout = 1; + boot.loader.efi.canTouchEfiVariables = true; + + time.timeZone = config.user.timezone; + + i18n.defaultLocale = "en_US.UTF-8"; + + # "Essential" Packages + environment.systemPackages = with pkgs; [ + git + neovim + nnn + xdg-user-dirs + ]; + + # XDG Compliance + xdg.portal.config.common.default = "*"; + environment.sessionVariables = rec { + XDG_CONFIG_HOME = "\${HOME}/.config"; + XDG_CACHE_HOME = "\${HOME}/.cache"; + XDG_STATE_HOME = "\${HOME}/.local/state"; + XDG_DATA_HOME = "\${HOME}/.local/share"; + XDG_BIN_HOME = "\${HOME}/.local/bin"; + PATH = [ + "\${HOME}/prog/scripts" + ]; + }; + + users.groups = { + wheel = { }; + network = { }; + }; + + users.users.defaultUser = { + name = config.user.name; + isNormalUser = true; + extraGroups = [ "wheel" "network" ]; + }; + + fonts = { + enableDefaultPackages = true; + packages = with pkgs; [ + cascadia-code + source-han-sans # Pan-CJK font + ] ++ config.system.extraFonts; + }; + }; +} diff --git a/systems/jibril/default.nix b/systems/jibril/default.nix index bd3a34e..8a342f8 100644 --- a/systems/jibril/default.nix +++ b/systems/jibril/default.nix @@ -1,11 +1,28 @@ { config, pkgs, lib, ... }: { - networking.hostName = "jibril"; imports = [ ./hardware.nix - - ../../modules/network/bluetooth - ../../modules/network/networking ]; + networking.hostName = "jibril"; + nix.package = pkgs.nixUnstable; + nixpkgs.config.allowUnfree = true; + system.stateVersion = "23.05"; + + config = { + pipewire.enable = true; + polkit.enable = true; + bluetooth.enable = true; + wireless.enable = true; + + user.name = "pan"; + user.timezone = "America/Los_Angeles"; + + tuigreet.enable = true; + hyprland.enable = true; + + librewolf.enable = true; + xonsh.enable = true; + syncthing.enable = true; + }; } diff --git a/systems/onizuka/default.nix b/systems/onizuka/default.nix index 8156468..d602924 100644 --- a/systems/onizuka/default.nix +++ b/systems/onizuka/default.nix @@ -1,12 +1,32 @@ { config, pkgs, lib, ... }: { - networking.hostName = "onizuka"; imports = [ ./hardware.nix - ../../modules/graphics/nvidia - ../../modules/etc/steam - ../../modules/etc/anime-launcher - ../../modules/etc/input-remapper ]; + networking.hostName = "onizuka"; + nix.package = pkgs.nixUnstable; + nixpkgs.config.allowUnfree = true; + system.stateVersion = "23.05"; + + config = { + nvidia.enable = true; + pipewire.enable = true; + polkit.enable = true; + + user.name = "pan"; + user.timezone = "America/Los_Angeles"; + + tuigreet.enable = true; + hyprland.enable = true; + + librewolf.enable = true; + xonsh.enable = true; + syncthing.enable = true; + + steam.enable = true; + aagl.enable = true; + aagl.honkai-rail = true; + input-remapper.enable = true; + }; } diff --git a/systems/shared/default.nix b/systems/shared/default.nix deleted file mode 100644 index 70e2e0c..0000000 --- a/systems/shared/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ config, pkgs, ... }: -{ - nix.package = pkgs.nixUnstable; - imports = - [ - # System essentials (boot, lang, hostname, ...) - ../../modules/audio/pipewire - ../../modules/login/polkit - ../../modules/system - ../../modules/user - - ../../modules/shell/xonsh - ../../modules/network/browsers/librewolf - ../../modules/network/syncthing - - ../../modules/themeing - ../../modules/login/greetd - ../../modules/window_managers/hyprland - ]; - - nixpkgs.config.allowUnfree = true; - - system.stateVersion = "23.05"; -}