Skip to content

Commit

Permalink
fix: nixosProfiles.gnome.extensions.gsconnect - cleanup, simplify, & …
Browse files Browse the repository at this point in the history
…use valent-ext instead of valent-app for programs.kdeconnect.package
  • Loading branch information
Lehmanator committed Jan 21, 2025
1 parent d3ff593 commit 8b1f3aa
Showing 1 changed file with 50 additions and 24 deletions.
74 changes: 50 additions & 24 deletions nixos/profiles/gnome/extensions/gsconnect.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ let
implementation = "valent";
prefer-flatpak = false;

unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.system};
unstable = inputs.nixpkgs-master.legacyPackages.${pkgs.system};

walbottle = pkgs.callPackage (inputs.self + /nixos/packages/walbottle.nix) {};

Expand All @@ -18,13 +18,14 @@ let
};

# TODO: Figure out how to re-enable pulseaudio plugin
mesonFlags = p.mesonFlags ++ [(lib.mesonBool "plugin_pulseaudio" false)];
mesonFlags = p.mesonFlags ++ [(lib.mesonBool "plugin_pulseaudio" false)];
nativeBuildInputs = p.nativeBuildInputs ++ [pkgs.libsysprof-capture walbottle];
buildInputs = p.buildInputs ++ [pkgs.appstream pkgs.cmake]; #[pkgs.libcanberra pkgs.gsound pkgs.pulseaudioFull pkgs.libpulseaudio];
buildInputs = p.buildInputs ++ [pkgs.appstream pkgs.cmake];
# ++ (with pkgs; [libcanberra gsound pulseaudioFull libpulseaudio]);
# passthru.updateScript = { };
});

valent-ext = inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.gnomeExtensions.valent.overrideAttrs (p: {
valent-ext = unstable.gnomeExtensions.valent.overrideAttrs (p: {
version = "1.0.0.alpha.47-unstable-2024-11-14";
src = pkgs.fetchFromGitHub {
owner = "andyholmes";
Expand All @@ -35,45 +36,70 @@ let
};
# passthru.updateScript = { # };
});

extension-package = if implementation=="valent"
then valent-ext else pkgs.gnomeExtensions.gsconnect;
in
{

programs.kdeconnect = {
enable = true;
package = valent-app;
package = if implementation == "valent" then valent-ext
else if implementation == "gsconnect" then pkgs.gnomeExtensions.gsconnect
else if implementation == "kdeconnect" then pkgs.kdePackages.kdeconnect-kde
else valent-ext
;
};

# Allow GSConnect thru firewall
# TODO: Only allow thru wireguard tunnels
# TODO: SFTP ports?
networking.firewall = {
allowedTCPPortRanges = [{ from = 1714; to = 1764; }];
allowedUDPPortRanges = [{ from = 1714; to = 1764; }];
interfaces.tailscale0 = {
allowedTCPPortRanges = [{ from = 1714; to = 1764; }];
allowedUDPPortRanges = [{ from = 1714; to = 1764; }];
};
};

# Enable Firefox integration
programs.firefox.nativeMessagingHosts.packages = [
config.programs.kdeconnect.package
pkgs.gnomeExtensions.gsconnect
valent-ext
];
programs.firefox.nativeMessagingHosts.packages = [ config.programs.kdeconnect.package valent-ext ];

# Install implementation of GSConnect & shell-extension
environment.systemPackages = [
config.programs.kdeconnect.package
pkgs.gnomeExtensions.gsconnect
valent-ext
];
environment.systemPackages = [ config.programs.kdeconnect.package valent-app ];

services.flatpak = lib.mkIf prefer-flatpak {
remotes = [{ name="valent"; location = "https://valent.andyholmes.ca/repo"; }];
packages = []
++ lib.optional (implementation=="valent") [{ origin="valent"; appId="ca.andyholmes.Valent"; }]
++ lib.optional (implementation=="kdeconnect") [{ origin="flathub"; appId=""; }]
;
services.flatpak = lib.mkIf (prefer-flatpak && (implementation == "valent")) {
remotes = [{ name = "valent"; location = "https://valent.andyholmes.ca/repo"; }];
packages = [{ origin = "valent"; appId = "ca.andyholmes.Valent"; }];
};

# TODO: DConf settings for GSConnect / Valent GNOME extensions
# programs.dconf.profiles.user.databases.settings."ca/andyholmes/valent/device/${uuid}" = {
# plugin = {
# notification.forwardDeny = []
# ++ lib.optional (builtins.elem pkgs.flare config.environment.systemPackages) "Flare"
# ++ lib.optional (builtins.elem pkgs.fractal config.environment.systemPackages) "Fractal"
# ;
# };
# };

# TODO: Home-Manager config options
# home-manager.sharedModules = [
# ({ config, osConfig, pkgs, ... }@moduleArgs:
# let
# hasPackage = import (inputs.self + /hm/lib/hasPackage.nix) moduleArgs;
# # hasApp = pname: n:
# # (builtins.elem pkgs.${pname} config.home.packages) || (
# # (lib.getAttrFromPath ["environment" "systemPackages"] osConfig) &&
# # (builtins.elem pkgs.${pname} osConfig.environment.systemPackages)
# # );
# in
# {
# dconf.settings."ca/andyholmes/valent" = {
# device."UUID".plugin.notification.forwardDeny = []
# ++ lib.optional (hasPackage "flare") "Flare"
# # ++ lib.optional (builtins.elem pkgs.flare config.home.packages) "Flare"
# # ++ lib.optional (builtins.elem pkgs.fractal config.home.packages) "Fractal"
# ;
# };
# })
# ];
}

0 comments on commit 8b1f3aa

Please sign in to comment.