From 79a049576029942a32eca139c253aa83039b6186 Mon Sep 17 00:00:00 2001 From: Yuri Tatishchev Date: Wed, 8 Jan 2025 22:14:14 -0800 Subject: [PATCH] move out some common host settings to hosts/common.nix --- flake.nix | 3 + hosts/Yura-PC/default.nix | 41 +----------- hosts/common.nix | 31 ++++++++++ hosts/vm/default.nix | 89 +++------------------------ modules/default.nix | 4 +- modules/{common => mods}/default.nix | 2 +- modules/{common => mods}/kb-input.nix | 4 +- modules/{common => mods}/minimak | 0 8 files changed, 51 insertions(+), 123 deletions(-) create mode 100644 hosts/common.nix rename modules/{common => mods}/default.nix (78%) rename modules/{common => mods}/kb-input.nix (93%) rename modules/{common => mods}/minimak (100%) diff --git a/flake.nix b/flake.nix index 62ee392..30d4263 100644 --- a/flake.nix +++ b/flake.nix @@ -17,6 +17,7 @@ system = "x86_64-linux"; modules = [ ./modules + ./hosts/common.nix ./hosts/Yura-PC ]; }; @@ -24,6 +25,7 @@ system = "x86_64-linux"; modules = [ ./modules + ./hosts/common.nix ./hosts/vm ]; }; @@ -34,6 +36,7 @@ system = "x86_64-linux"; modules = [ ./modules + ./hosts/common.nix ./hosts/vm ]; format = "proxmox"; diff --git a/hosts/Yura-PC/default.nix b/hosts/Yura-PC/default.nix index ad4cf88..b9d0489 100644 --- a/hosts/Yura-PC/default.nix +++ b/hosts/Yura-PC/default.nix @@ -2,7 +2,7 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ lib, config, pkgs, ... }: +{ config, lib, pkgs, ... }: { imports = @@ -10,7 +10,7 @@ ./hardware-configuration.nix # ]; - common.kb-input.enable = true; + mods.kb-input.enable = true; # Bootloader. boot.loader.systemd-boot.enable = true; @@ -49,24 +49,6 @@ # Enable networking networking.networkmanager.enable = true; - # Set your time zone. - time.timeZone = "America/Los_Angeles"; - - # Select internationalisation properties. - i18n.defaultLocale = "en_US.UTF-8"; - - i18n.extraLocaleSettings = { - LC_ADDRESS = "en_US.UTF-8"; - LC_IDENTIFICATION = "en_US.UTF-8"; - LC_MEASUREMENT = "en_US.UTF-8"; - LC_MONETARY = "en_US.UTF-8"; - LC_NAME = "en_US.UTF-8"; - LC_NUMERIC = "en_US.UTF-8"; - LC_PAPER = "en_US.UTF-8"; - LC_TELEPHONE = "en_US.UTF-8"; - LC_TIME = "en_US.UTF-8"; - }; - # Enable the X11 windowing system. # You can disable this if you're only using the Wayland session. services.xserver.enable = false; @@ -76,12 +58,6 @@ services.displayManager.sddm.wayland.enable = true; services.desktopManager.plasma6.enable = true; - # Configure keymap in X11 - services.xserver.xkb = { - layout = "us"; - variant = ""; - }; - # Enable CUPS to print documents. services.printing.enable = true; @@ -103,7 +79,7 @@ # services.qemuGuest.enable = true; # services.spice-vdagentd.enable = true; - services.sshd.enable = true; + services.openssh.enable = true; services.flatpak.enable = true; # services.geoclue2.enable = true; location.provider = "geoclue2"; @@ -285,17 +261,6 @@ yt-dlp ]; - # nix.package = pkgs.nixFlakes; - nix.settings.experimental-features = [ "nix-command" "flakes" ]; - - environment.etc."current-system-packages".text = - let - packages = builtins.map (p: "${p.name}") config.environment.systemPackages; - sortedUnique = builtins.sort builtins.lessThan (pkgs.lib.lists.unique packages); - formatted = builtins.concatStringsSep "\n" sortedUnique; - in - formatted; - # Some programs need SUID wrappers, can be configured further or are # started in user sessions. # programs.mtr.enable = true; diff --git a/hosts/common.nix b/hosts/common.nix new file mode 100644 index 0000000..7ad463b --- /dev/null +++ b/hosts/common.nix @@ -0,0 +1,31 @@ +{ config, pkgs, ... }: { + # Allow unfree packages + nixpkgs.config.allowUnfree = true; + + # Set your time zone. + time.timeZone = "America/Los_Angeles"; + + # Select internationalisation properties. + i18n.defaultLocale = "en_US.UTF-8"; + i18n.extraLocaleSettings = { + LC_ADDRESS = "en_US.UTF-8"; + LC_IDENTIFICATION = "en_US.UTF-8"; + LC_MEASUREMENT = "en_US.UTF-8"; + LC_MONETARY = "en_US.UTF-8"; + LC_NAME = "en_US.UTF-8"; + LC_NUMERIC = "en_US.UTF-8"; + LC_PAPER = "en_US.UTF-8"; + LC_TELEPHONE = "en_US.UTF-8"; + LC_TIME = "en_US.UTF-8"; + }; + + nix.settings.experimental-features = [ "nix-command" "flakes" ]; + + environment.etc."current-system-packages".text = + let + packages = builtins.map (p: "${p.name}") config.environment.systemPackages; + sortedUnique = builtins.sort builtins.lessThan (pkgs.lib.lists.unique packages); + formatted = builtins.concatStringsSep "\n" sortedUnique; + in + formatted; +} diff --git a/hosts/vm/default.nix b/hosts/vm/default.nix index 23886ff..f3e26a3 100644 --- a/hosts/vm/default.nix +++ b/hosts/vm/default.nix @@ -2,14 +2,14 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ lib, config, pkgs, ... }: +{ config, lib, pkgs, ... }: { imports = [ # Include the results of the hardware scan. # ./hardware-configuration-vm.nix ]; - common.kb-input.enable = true; + mods.kb-input.enable = true; # boot.kernelParams = [ "console=tty0" ]; proxmox.qemuConf.bios = "ovmf"; @@ -30,7 +30,8 @@ environment.etc.hosts.mode = "0644"; - networking.hostName = "nixos"; # Define your hostname. + # managed by cloud-init + # networking.hostName = "nixos"; # Define your hostname. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # Configure network proxy if necessary @@ -40,24 +41,6 @@ # Enable networking networking.networkmanager.enable = true; - # Set your time zone. - time.timeZone = "America/Los_Angeles"; - - # Select internationalisation properties. - i18n.defaultLocale = "en_US.UTF-8"; - - i18n.extraLocaleSettings = { - LC_ADDRESS = "en_US.UTF-8"; - LC_IDENTIFICATION = "en_US.UTF-8"; - LC_MEASUREMENT = "en_US.UTF-8"; - LC_MONETARY = "en_US.UTF-8"; - LC_NAME = "en_US.UTF-8"; - LC_NUMERIC = "en_US.UTF-8"; - LC_PAPER = "en_US.UTF-8"; - LC_TELEPHONE = "en_US.UTF-8"; - LC_TIME = "en_US.UTF-8"; - }; - # Enable the X11 windowing system. # You can disable this if you're only using the Wayland session. services.xserver.enable = false; @@ -67,25 +50,15 @@ services.displayManager.sddm.wayland.enable = true; services.desktopManager.plasma6.enable = true; - # Configure keymap in X11 - services.xserver.xkb = { - layout = "us"; - variant = ""; - }; - - # Enable CUPS to print documents. - services.printing.enable = true; - + # VM services + services.cloud-init.enable = true; services.qemuGuest.enable = true; services.spice-vdagentd.enable = true; - services.sshd.enable = true; + services.openssh.enable = true; + services.openssh.settings.PasswordAuthentication = false; + services.openssh.settings.KbdInteractiveAuthentication = false; services.flatpak.enable = true; - - # Enable touchpad support (enabled default in most desktopManager). - # services.xserver.libinput.enable = true; - - # Define a user account. Don't forget to set a password with ‘passwd’. users.groups = { cazzzer = { gid = 1000; @@ -116,19 +89,6 @@ programs.htop.enable = true; programs.wireshark.enable = true; - # https://discourse.nixos.org/t/firefox-does-not-use-kde-window-decorations-and-cursor/32132/3 - # programs.dconf.enable = true; - # programs.firefox = { - # enable = true; - # preferences = { - # "widget.use-xdg-desktop-portal.file-picker" = 1; - # "widget.use-xdg-desktop-portal.mime-handler" = 1; - # }; - # }; - - # Allow unfree packages - nixpkgs.config.allowUnfree = true; - # List packages installed in system profile. To search, run: # $ nix search wget @@ -169,38 +129,8 @@ whois yt-dlp zfs - # wget ]; - nix.settings.experimental-features = [ "nix-command" "flakes" ]; - - environment.etc."current-system-packages".text = - let - packages = builtins.map (p: "${p.name}") config.environment.systemPackages; - sortedUnique = builtins.sort builtins.lessThan (pkgs.lib.lists.unique packages); - formatted = builtins.concatStringsSep "\n" sortedUnique; - in - formatted; - - # Some programs need SUID wrappers, can be configured further or are - # started in user sessions. - # programs.mtr.enable = true; - # programs.gnupg.agent = { - # enable = true; - # enableSSHSupport = true; - # }; - - # List services that you want to enable: - - # Enable the OpenSSH daemon. - # services.openssh.enable = true; - - # Open ports in the firewall. -# networking.firewall.allowedTCPPorts = [ 8080 ]; - # networking.firewall.allowedUDPPorts = [ ... ]; - # Or disable the firewall altogether. - # networking.firewall.enable = false; - # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave @@ -208,5 +138,4 @@ # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "24.11"; # Did you read the comment? - } diff --git a/modules/default.nix b/modules/default.nix index fb2485c..e75141d 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -1,6 +1,6 @@ -{...}: { +{ ... }: { imports = [ - ./common + ./mods ./workarounds ]; } diff --git a/modules/common/default.nix b/modules/mods/default.nix similarity index 78% rename from modules/common/default.nix rename to modules/mods/default.nix index 2ab55b2..3cfdec3 100644 --- a/modules/common/default.nix +++ b/modules/mods/default.nix @@ -1,4 +1,4 @@ -{...}: { +{ ... }: { imports = [ ./kb-input.nix ]; diff --git a/modules/common/kb-input.nix b/modules/mods/kb-input.nix similarity index 93% rename from modules/common/kb-input.nix rename to modules/mods/kb-input.nix index 3bd4821..8505e1a 100644 --- a/modules/common/kb-input.nix +++ b/modules/mods/kb-input.nix @@ -4,10 +4,10 @@ lib, ... }: let - cfg = config.common.kb-input; + cfg = config.mods.kb-input; in { options = { - common.kb-input = { + mods.kb-input = { enable = lib.mkEnableOption "input method and custom keyboard layout"; }; }; diff --git a/modules/common/minimak b/modules/mods/minimak similarity index 100% rename from modules/common/minimak rename to modules/mods/minimak