diff --git a/modules/home/desktop/gnome/default.nix b/modules/home/desktop/gnome/default.nix index 03ef446..4205b1c 100644 --- a/modules/home/desktop/gnome/default.nix +++ b/modules/home/desktop/gnome/default.nix @@ -12,6 +12,7 @@ let inherit (self.lib.options) mkOpt; cfg = config.${namespace}.desktop.gnome; + osEnableGsConnect = osConfig.${namespace}.desktop.gnome.enable-gsconnect; in { options.${namespace}.desktop.gnome = with lib.types; { @@ -33,12 +34,15 @@ in }; config = mkIf osConfig.${namespace}.desktop.gnome.enable { - home.packages = cfg.enabled-extensions; + home.packages = + cfg.enabled-extensions ++ (lib.optionals osEnableGsConnect [ pkgs.gnomeExtensions.gsconnect ]); dconf.settings = { "org/gnome/shell" = { favorite-apps = cfg.favorite-apps; - enabled-extensions = lib.forEach cfg.enabled-extensions (x: x.extensionUuid); + enabled-extensions = lib.forEach ( + cfg.enabled-extensions ++ (lib.optionals osEnableGsConnect [ pkgs.gnomeExtensions.gsconnect ]) + ) (x: x.extensionUuid); disabled-extensions = [ ]; # Make sure none of our extensions are disabled on system rebuild }; "org/gnome/desktop/background" = { diff --git a/modules/nixos/desktop/gnome/default.nix b/modules/nixos/desktop/gnome/default.nix index 6788c54..7153135 100644 --- a/modules/nixos/desktop/gnome/default.nix +++ b/modules/nixos/desktop/gnome/default.nix @@ -13,6 +13,7 @@ in { options.${namespace}.desktop.gnome = { enable = mkEnableOption "the gnome desktop environment"; + enable-gsconnect = mkEnableOption "the GSConnect service, for pairing external mobile devices."; }; config = mkIf cfg.enable { @@ -50,6 +51,12 @@ in # Unlock gnome-keyring on login security.pam.services.gdm.enableGnomeKeyring = true; + # Enable GSConnect + programs.kdeconnect = { + enable = true; + package = pkgs.gnomeExtensions.gsconnect; + }; + environment.systemPackages = with pkgs; [ refine showtime diff --git a/systems/x86_64-nixos/puzzlevision/default.nix b/systems/x86_64-nixos/puzzlevision/default.nix index b7ceb67..fbe8a32 100644 --- a/systems/x86_64-nixos/puzzlevision/default.nix +++ b/systems/x86_64-nixos/puzzlevision/default.nix @@ -43,6 +43,7 @@ archetypes.laptop.enable = true; services.docker.enable = true; + desktop.gnome.enable-gsconnect = true; }; # Minecraft bootloader theme