aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2022-02-08 19:58:38 -0800
committerFranck Cuny <franck@fcuny.net>2022-02-08 19:59:17 -0800
commit3b1ac4f78d21802073c82df39ca7080ae70a67a9 (patch)
tree7895ede6ae0c31c7b1a77230619e8560404f6f2a /modules
parentdesktop: new option to control desktop setup (diff)
downloadinfra-3b1ac4f78d21802073c82df39ca7080ae70a67a9.tar.gz
desktop: install sound and xserver only when asked
Diffstat (limited to 'modules')
-rw-r--r--modules/desktop/sound.nix35
-rw-r--r--modules/desktop/xserver.nix41
2 files changed, 44 insertions, 32 deletions
diff --git a/modules/desktop/sound.nix b/modules/desktop/sound.nix
index 95c7c75..11c3fc2 100644
--- a/modules/desktop/sound.nix
+++ b/modules/desktop/sound.nix
@@ -1,20 +1,27 @@
{pkgs, config, lib, ...}:
+with lib;
-{
- sound.enable = true;
+let
+ xorg = (elem "xorg" config.sys.graphics.desktopProtocols);
+ wayland = (elem "wayland" config.sys.graphics.desktopProtocols);
+ desktopMode = xorg || wayland;
+in {
+ config= mkIf desktopMode {
+ sound.enable = true;
- environment.systemPackages = with pkgs; [
- # We install it to get access to pactl. It isn't enabled or run as a service.
- pulseaudio
- ];
+ environment.systemPackages = with pkgs; [
+ # We install it to get access to pactl. It isn't enabled or run as a service.
+ pulseaudio
+ ];
- services.pipewire = {
- enable = true;
- # Compatibility shims, adjust according to your needs
- alsa.enable = true;
- alsa.support32Bit = true;
- pulse.enable = true;
- jack.enable = true;
+ services.pipewire = {
+ enable = true;
+ # Compatibility shims, adjust according to your needs
+ alsa.enable = true;
+ alsa.support32Bit = true;
+ pulse.enable = true;
+ jack.enable = true;
+ };
+ hardware.pulseaudio.enable = false;
};
- hardware.pulseaudio.enable = false;
}
diff --git a/modules/desktop/xserver.nix b/modules/desktop/xserver.nix
index 894b39b..d007bd8 100644
--- a/modules/desktop/xserver.nix
+++ b/modules/desktop/xserver.nix
@@ -1,26 +1,31 @@
{ config, pkgs, lib, ... }:
+with lib;
-{
- services.xserver = {
- enable = true;
- layout = "us";
- xkbOptions = "eurosign:e";
- libinput.enable = true;
+let
+ xorg = (elem "xorg" config.sys.graphics.desktopProtocols);
+in {
+ config= mkIf xorg {
+ services.xserver = {
+ enable = true;
+ layout = "us";
+ xkbOptions = "eurosign:e";
+ libinput.enable = true;
- desktopManager = {
- xterm.enable = false;
- };
+ desktopManager = {
+ xterm.enable = false;
+ };
- displayManager = {
- lightdm.enable = true;
- defaultSession = "none+i3";
- };
+ displayManager = {
+ lightdm.enable = true;
+ defaultSession = "none+i3";
+ };
- windowManager = {
- i3.enable = true;
+ windowManager = {
+ i3.enable = true;
+ };
};
- };
- services.gnome.gnome-keyring.enable = true;
- services.gvfs.enable = true;
+ services.gnome.gnome-keyring.enable = true;
+ services.gvfs.enable = true;
+ };
}