From 5e528945f5b2673df91ecdc50799893bd68cd3af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Krop=C3=A1=C4=8Dek?= Date: Sun, 6 Oct 2024 11:00:01 +0200 Subject: [PATCH] more modular system --- hosts/base/default.nix | 37 ---------------------------- hosts/lenar/default.nix | 6 +++++ nixosModules/default.nix | 1 + nixosModules/system/audio.nix | 27 +++++++++++++++++++++ nixosModules/system/de/default.nix | 6 +++++ nixosModules/system/de/gnome.nix | 39 ++++++++++++++++++++++++++++++ nixosModules/system/default.nix | 8 +++++- 7 files changed, 86 insertions(+), 38 deletions(-) create mode 100644 nixosModules/system/audio.nix create mode 100644 nixosModules/system/de/default.nix create mode 100644 nixosModules/system/de/gnome.nix diff --git a/hosts/base/default.nix b/hosts/base/default.nix index 7532f3a..c5bf117 100644 --- a/hosts/base/default.nix +++ b/hosts/base/default.nix @@ -45,23 +45,6 @@ LC_TIME = "cs_CZ.UTF-8"; }; - # Enable the X11 windowing system. - services.xserver = { - enable = true; - # Enable the GNOME Desktop Environment. - displayManager.gdm.enable = true; - desktopManager.gnome.enable = true; - }; - - services.gnome.gnome-browser-connector.enable = true; - - environment.gnome.excludePackages = with pkgs; [ - epiphany - geary - seahorse - totem - ]; - # Configure keymap in X11 services.xserver.xkb = { layout = "cz"; @@ -77,25 +60,6 @@ drivers = [ pkgs.samsung-unified-linux-driver ]; }; - # Enable sound with pipewire. - hardware.pulseaudio.enable = false; - security.rtkit.enable = true; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - # If you want to use JACK applications, uncomment this - #jack.enable = true; - - # use the example session manager (no others are packaged yet so this is enabled by default, - # no need to redefine it in your config for now) - #media-session.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.users.krop = { isNormalUser = true; @@ -121,7 +85,6 @@ environment.systemPackages = with pkgs; [ alacritty alacritty-theme - gnome-tweaks nixd nil fzf diff --git a/hosts/lenar/default.nix b/hosts/lenar/default.nix index 6092c5e..cf01ff8 100644 --- a/hosts/lenar/default.nix +++ b/hosts/lenar/default.nix @@ -25,6 +25,9 @@ # My own modules configuration krop = { + audio = { + enable = true; + }; ide = { enable = true; install-pycharm = true; @@ -41,6 +44,9 @@ docker = { enable = true; }; + de.gnome = { + enable = true; + }; }; systemd.services.configure-mic-leds = rec { diff --git a/nixosModules/default.nix b/nixosModules/default.nix index 0fd9687..a506d36 100644 --- a/nixosModules/default.nix +++ b/nixosModules/default.nix @@ -2,5 +2,6 @@ { imports = [ ./dev + ./system ]; } diff --git a/nixosModules/system/audio.nix b/nixosModules/system/audio.nix new file mode 100644 index 0000000..da4c24c --- /dev/null +++ b/nixosModules/system/audio.nix @@ -0,0 +1,27 @@ +{ + config, + lib, + ... +}: +let + cfg = config.krop.audio; +in { + options.krop.audio = { + enable = lib.mkOption { + type = lib.types.bool; + default = false; + example = true; + description = "Enable audio"; + }; + }; + config = lib.mkIf cfg.enable { + hardware.pulseaudio.enable = false; + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + }; + }; +} \ No newline at end of file diff --git a/nixosModules/system/de/default.nix b/nixosModules/system/de/default.nix new file mode 100644 index 0000000..8b73239 --- /dev/null +++ b/nixosModules/system/de/default.nix @@ -0,0 +1,6 @@ +{ ... }: +{ + imports = [ + ./gnome.nix + ]; +} diff --git a/nixosModules/system/de/gnome.nix b/nixosModules/system/de/gnome.nix new file mode 100644 index 0000000..6742b36 --- /dev/null +++ b/nixosModules/system/de/gnome.nix @@ -0,0 +1,39 @@ +{ + config, + pkgs, + lib, + ... +}: +let + cfg = config.krop.de.gnome; +in +{ + options.krop.de.gnome = { + enable = lib.mkOption { + type = lib.types.bool; + default = false; + example = true; + description = "Enable gnome"; + }; + }; + config = lib.mkIf cfg.enable { + services.xserver = { + enable = true; + displayManager.gdm.enable = true; + desktopManager.gnome.enable = true; + }; + + services.gnome.gnome-browser-connector.enable = true; + + environment.gnome.excludePackages = with pkgs; [ + epiphany + geary + seahorse + totem + ]; + + environment.systemPackages = with pkgs; [ + gnome-tweaks + ]; + }; +} diff --git a/nixosModules/system/default.nix b/nixosModules/system/default.nix index c915eb0..6e6052d 100644 --- a/nixosModules/system/default.nix +++ b/nixosModules/system/default.nix @@ -1 +1,7 @@ -{ ... }: { } +{ ... }: +{ + imports = [ + ./de + ./audio.nix + ]; +}