diff --git a/ctl.sh b/ctl.sh index 59b52fe..a7adc03 100755 --- a/ctl.sh +++ b/ctl.sh @@ -34,8 +34,8 @@ function os { sudo nixos-rebuild --flake ./os#nixos test } function rebuild { - echo "Rebuild OS" - sudo nixos-rebuild --flake ./os#nixos switch + echo "Rebuild OS config: ${1}" + sudo nixos-rebuild --flake ./os#${1} switch } function upgrade { echo "Upgrade channels and rebuild OS" diff --git a/os/configuration.nix b/os/configuration.nix index e65f3e5..7b8de4f 100644 --- a/os/configuration.nix +++ b/os/configuration.nix @@ -1,10 +1,6 @@ { config, pkgs, ... }: { - imports = - [ - ./hardware-configuration.nix - ]; nix = { package = pkgs.nixFlakes; diff --git a/os/flake.nix b/os/flake.nix index bb10c35..387a1f3 100644 --- a/os/flake.nix +++ b/os/flake.nix @@ -14,13 +14,19 @@ modules = [ home-manager.nixosModules.home-manager ./configuration.nix - ./system/boot.nix - ./system/i18n.nix - ./system/network.nix - ./system/sound.nix - ./system/xserver.nix - ./system/virtualisation.nix - ./system/packages.nix + ./hw/lenovo-thinkpad-e14.nix + ./system/base.nix + ./users/demo.nix + ./users/master.nix + ]; + }; + testos = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + home-manager.nixosModules.home-manager + ./configuration.nix + ./hw/lenovo-thinkpad-e14.nix + ./system/base.nix ./users/demo.nix ./users/master.nix ]; diff --git a/os/hardware-configuration.nix b/os/hw/lenovo-thinkpad-e14.nix similarity index 100% rename from os/hardware-configuration.nix rename to os/hw/lenovo-thinkpad-e14.nix diff --git a/os/system/base.nix b/os/system/base.nix new file mode 100644 index 0000000..77d157b --- /dev/null +++ b/os/system/base.nix @@ -0,0 +1,12 @@ +{ pkgs, ... }: { + imports = [ + ./boot.nix + ./security.nix + ./i18n.nix + ./network.nix + ./sound.nix + ./xserver.nix + ./virtualisation.nix + ./packages.nix + ]; +} diff --git a/os/system/packages.nix b/os/system/packages.nix index 07921eb..7ba50dd 100644 --- a/os/system/packages.nix +++ b/os/system/packages.nix @@ -26,8 +26,6 @@ gcc unzip wget - plasma5Packages.bismuth - kdeconnect firefox thunderbird remmina diff --git a/os/system/security.nix b/os/system/security.nix new file mode 100644 index 0000000..ab06e4b --- /dev/null +++ b/os/system/security.nix @@ -0,0 +1,4 @@ +{ pkgs, ... }: { + security.polkit.enable = true; + security.rtkit.enable = true; +} diff --git a/os/system/sound.nix b/os/system/sound.nix index 3f591d7..0eb1d1f 100644 --- a/os/system/sound.nix +++ b/os/system/sound.nix @@ -1,7 +1,6 @@ { pkgs, ... }: { sound.enable = true; hardware.pulseaudio.enable = false; - security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; diff --git a/os/users/master.nix b/os/users/master.nix index 15cbe80..4e42fbd 100644 --- a/os/users/master.nix +++ b/os/users/master.nix @@ -13,6 +13,8 @@ home.username = "master"; home.homeDirectory = "/home/master"; home.packages = with pkgs; [ + plasma5Packages.bismuth + kdeconnect nerdfonts tmux btop @@ -29,32 +31,30 @@ obsidian ]; - programs.home-manager.enable = true; - - programs.bash = { - enable = true; - }; - - programs.direnv = { - enable = true; - nix-direnv.enable = true; - }; - - programs.starship = { - enable = true; - enableBashIntegration = true; - settings = { - directory.fish_style_pwd_dir_length = 1; - directory.truncation_length = 2; + programs = { + home-manager.enable = true; + bash = { + enable = true; + }; + direnv = { + enable = true; + nix-direnv.enable = true; + }; + starship = { + enable = true; + enableBashIntegration = true; + settings = { + directory.fish_style_pwd_dir_length = 1; + directory.truncation_length = 2; + }; + }; + neovim = { + enable = true; + defaultEditor = true; + viAlias = true; + vimAlias = true; + vimdiffAlias = true; }; - }; - - programs.neovim = { - enable = true; - defaultEditor = true; - viAlias = true; - vimAlias = true; - vimdiffAlias = true; }; services = {