From 16422ccbd7d2377d862d0beb59b8b8356b657a93 Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Sat, 13 Sep 2025 14:56:45 +0200 Subject: [PATCH] move kdeconnect settings to nixosModule --- flake.nix | 2 ++ home/vinzenz/gnome.nix | 2 -- home/vinzenz/niri.nix | 11 +------ modules/desktop-environment.nix | 20 ------------- modules/gnome-shared-dconf.nix | 3 -- modules/gnome.nix | 1 - nixosModules/kdeconnect.nix | 53 +++++++++++++++++++++++++++++++++ 7 files changed, 56 insertions(+), 36 deletions(-) create mode 100644 nixosModules/kdeconnect.nix diff --git a/flake.nix b/flake.nix index 04e0bcc..6260502 100644 --- a/flake.nix +++ b/flake.nix @@ -133,6 +133,7 @@ nixosModules = { lix = (import ./nixosModules/lix.nix); + kdeconnect = (import ./nixosModules/kdeconnect.nix); niri = { imports = [ niri.nixosModules.niri ]; nixpkgs.overlays = [ niri.overlays.niri ]; @@ -144,6 +145,7 @@ imports = [ self.nixosModules.pkgs-unstable self.nixosModules.niri + self.nixosModules.kdeconnect home-manager.nixosModules.home-manager servicepoint-simulator.nixosModules.default servicepoint-cli.nixosModules.default diff --git a/home/vinzenz/gnome.nix b/home/vinzenz/gnome.nix index 5648cf6..3a4f479 100644 --- a/home/vinzenz/gnome.nix +++ b/home/vinzenz/gnome.nix @@ -4,7 +4,6 @@ home.packages = with pkgs.gnomeExtensions; [ - gsconnect # battery-health-charging quick-settings-tweaker solaar-extension @@ -16,7 +15,6 @@ "org/gnome/shell" = { enabled-extensions = [ "GPaste@gnome-shell-extensions.gnome.org" - "gsconnect@andyholmes.github.io" "solaar-extension@sidevesh" "AlphabeticalAppGrid@stuarthayhurst" ]; diff --git a/home/vinzenz/niri.nix b/home/vinzenz/niri.nix index 3cb557a..3562ae1 100644 --- a/home/vinzenz/niri.nix +++ b/home/vinzenz/niri.nix @@ -16,16 +16,7 @@ name = "adwaita-dark"; }; - services = { - kdeconnect = { - enable = true; - # this still shows up in gnome session starting with 25.05 - # indicator = true; - }; - mako = { - enable = true; - }; - }; + services.mako.enable = true; programs.niri.settings = { input.keyboard.xkb.layout = "de"; diff --git a/modules/desktop-environment.nix b/modules/desktop-environment.nix index ffb00eb..50d6245 100644 --- a/modules/desktop-environment.nix +++ b/modules/desktop-environment.nix @@ -26,7 +26,6 @@ }; programs = { - kdeconnect.enable = true; firefox = { enable = true; languagePacks = [ @@ -59,25 +58,6 @@ }; }; - networking = { - firewall = { - allowedTCPPortRanges = [ - { - # KDE Connect / gsconnect - from = 1714; - to = 1764; - } - ]; - allowedUDPPortRanges = [ - { - # KDE Connect / gsconnect - from = 1714; - to = 1764; - } - ]; - }; - }; - systemd = { # save some boot time because nothing actually requires network connectivity services.NetworkManager-wait-online.enable = false; diff --git a/modules/gnome-shared-dconf.nix b/modules/gnome-shared-dconf.nix index b9b3716..5d54628 100644 --- a/modules/gnome-shared-dconf.nix +++ b/modules/gnome-shared-dconf.nix @@ -40,7 +40,4 @@ "org/gnome/shell/extensions/alphabetical-app-grid" = { folder-order-position = "start"; }; - "org/gnome/shell/extensions/gsconnect" = { - enabled = true; - }; } diff --git a/modules/gnome.nix b/modules/gnome.nix index f5a5dc0..ddca6b0 100644 --- a/modules/gnome.nix +++ b/modules/gnome.nix @@ -29,7 +29,6 @@ programs = { dconf.enable = true; gpaste.enable = true; - kdeconnect.package = pkgs.gnomeExtensions.gsconnect; }; # remove some gnome default apps diff --git a/nixosModules/kdeconnect.nix b/nixosModules/kdeconnect.nix new file mode 100644 index 0000000..16b669f --- /dev/null +++ b/nixosModules/kdeconnect.nix @@ -0,0 +1,53 @@ +{ + lib, + config, + pkgs, + ... +}: +{ + config = lib.mkMerge [ + { + networking.firewall = + let + kdeconnect-range = { + from = 1714; + to = 1764; + }; + in + { + allowedTCPPortRanges = [ kdeconnect-range ]; + allowedUDPPortRanges = [ kdeconnect-range ]; + }; + + programs.kdeconnect.enable = true; + home-manager.sharedModules = [ + { + services.kdeconnect = { + enable = true; + # this still shows up in gnome session starting with 25.05 + # indicator = true; + }; + } + ]; + } + + (lib.mkIf config.services.xserver.desktopManager.gnome.enable { + # replace kdeconnect with gsconnect + programs.kdeconnect.package = pkgs.gnomeExtensions.gsconnect; + + home-manager.sharedModules = [ + ( + { pkgs, ... }: + { + home.packages = [ pkgs.gnomeExtensions.gsconnect ]; + # enable gsconnect extension + dconf.settings = { + "org/gnome/shell".enabled-extensions = [ "gsconnect@andyholmes.github.io" ]; + "org/gnome/shell/extensions/gsconnect".enabled = true; + }; + } + ) + ]; + }) + ]; +}