From 751b12258781a3b81e375b2d13253a71e1900cbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jalil=20David=20Salam=C3=A9=20Messina?= Date: Mon, 22 Jan 2024 11:08:48 +0100 Subject: [PATCH] feat: Enable sway at the NixOS level --- home/gui/default.nix | 6 ++++-- nixos/gui/default.nix | 9 +++++++-- nixos/options.nix | 1 + 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/home/gui/default.nix b/home/gui/default.nix index ade3d2a..54ff61d 100644 --- a/home/gui/default.nix +++ b/home/gui/default.nix @@ -2,8 +2,9 @@ let inherit (config) jhome; flatpakEnabled = if osConfig != null then osConfig.services.flatpak.enable else false; + osSway = osConfig == null && !osConfig.programs.sway.enable; + swayPkg = if osSway then pkgs.sway else null; cfg = jhome.gui; - swaycfg = config.wayland.windowManager.sway.config; cursor.package = pkgs.nordzy-cursor-theme; cursor.name = "Nordzy-cursors"; iconTheme.name = "Papirus-Dark"; @@ -27,7 +28,7 @@ in # Dynamic Menu programs.fuzzel.enable = true; programs.fuzzel.settings.main.icon-theme = "Papirus-Dark"; - programs.fuzzel.settings.main.terminal = swaycfg.terminal; + programs.fuzzel.settings.main.terminal = cfg.terminal; programs.fuzzel.settings.main.layer = "overlay"; # Video player programs.mpv.enable = true; @@ -66,6 +67,7 @@ in # Window Manager wayland.windowManager.sway.enable = true; + wayland.windowManager.sway.package = swayPkg; # no sway package if it comes from the OS wayland.windowManager.sway.config = import ./sway-config.nix { inherit config pkgs; }; # Set cursor style diff --git a/nixos/gui/default.nix b/nixos/gui/default.nix index 65d256a..f493251 100644 --- a/nixos/gui/default.nix +++ b/nixos/gui/default.nix @@ -1,10 +1,11 @@ { config, lib, pkgs, ... }: let cfg = config.jconfig.gui; + enable = config.jconfig.enable && cfg.enable; in { config = lib.mkMerge [ - (lib.mkIf (config.jconfig.enable && cfg.enable) { + (lib.mkIf enable { environment.systemPackages = [ pkgs.gnome.adwaita-icon-theme pkgs.adwaita-qt @@ -33,6 +34,10 @@ in programs.light.enable = true; programs.dconf.enable = true; + programs.sway.enable = cfg.sway; + programs.sway.wrapperFeatures.base = true; + programs.sway.wrapperFeatures.gtk = true; + security.polkit.enable = true; security.rtkit.enable = true; # Recommended for pipewire @@ -57,7 +62,7 @@ in hardware.uinput.enable = true; hardware.steam-hardware.enable = cfg.steamHardwareSupport; }) - (lib.mkIf cfg."8bitdoFix" { + (lib.mkIf (enable && cfg."8bitdoFix") { # Udev rules to start or stop systemd service when controller is connected or disconnected services.udev.extraRules = '' # May vary depending on your controller model, find product id using 'lsusb' diff --git a/nixos/options.nix b/nixos/options.nix index 89abd11..81838a3 100644 --- a/nixos/options.nix +++ b/nixos/options.nix @@ -24,6 +24,7 @@ let options.autoStart = mkDisableOption "autostarting ydotool at login"; }; }; + sway = mkDisableOption "sway"; }; styling.options = {