diff --git a/home/hosts/work/default.nix b/home/hosts/work/default.nix index fa42db6..bd702d3 100644 --- a/home/hosts/work/default.nix +++ b/home/hosts/work/default.nix @@ -11,6 +11,7 @@ in { imports = [ inputs.sops-nix.homeManagerModules.sops + ../../modules/lib.nix ../../modules/ai-tools.nix ../../modules/cloud ../../modules/comms diff --git a/home/modules/bruno.nix b/home/modules/bruno.nix index 6c718b0..16be749 100644 --- a/home/modules/bruno.nix +++ b/home/modules/bruno.nix @@ -1,9 +1,9 @@ { config, pkgs, ... }: let - useNixGL = config.lib ? nixGL; - brunoBase = - if useNixGL then + needsNixGL = config.lib ? nixGL; + bruno = + if needsNixGL then pkgs.bruno.overrideAttrs (old: { postInstall = (old.postInstall or "") + '' wrapProgram $out/bin/bruno --add-flags "--no-sandbox" @@ -11,10 +11,9 @@ let }) else pkgs.bruno; - brunoFinal = if useNixGL then config.lib.nixGL.wrap brunoBase else brunoBase; in { config = { - home.packages = [ brunoFinal ]; + home.packages = [ (config.nixgl.wrap bruno) ]; }; } diff --git a/home/modules/comms/signal.nix b/home/modules/comms/signal.nix index 4341efb..ed7db17 100644 --- a/home/modules/comms/signal.nix +++ b/home/modules/comms/signal.nix @@ -6,8 +6,6 @@ }: { config = lib.mkIf config.comms.signal.enable { - home.packages = with pkgs; [ - (if config.lib ? nixGL then config.lib.nixGL.wrap signal-desktop else signal-desktop) - ]; + home.packages = [ (config.nixgl.wrap pkgs.signal-desktop) ]; }; } diff --git a/home/modules/comms/teams.nix b/home/modules/comms/teams.nix index ec407e3..8bb5fb1 100644 --- a/home/modules/comms/teams.nix +++ b/home/modules/comms/teams.nix @@ -7,8 +7,6 @@ { config = lib.mkIf config.comms.teams.enable { - home.packages = with pkgs; [ - (if config.lib ? nixGL then config.lib.nixGL.wrap teams-for-linux else teams-for-linux) - ]; + home.packages = [ (config.nixgl.wrap pkgs.teams-for-linux) ]; }; } diff --git a/home/modules/kitty.nix b/home/modules/kitty.nix index ec53555..7f80f22 100644 --- a/home/modules/kitty.nix +++ b/home/modules/kitty.nix @@ -1,12 +1,13 @@ -{ pkgs, config, lib, dotsPath, ... }: +{ + pkgs, + config, + dotsPath, + ... +}: { config = { - home.packages = [ - (if config.lib ? nixGL - then config.lib.nixGL.wrap pkgs.kitty - else pkgs.kitty) - ]; + home.packages = [ (config.nixgl.wrap pkgs.kitty) ]; programs.bash.shellAliases = { icat = "kitty +kitten icat"; }; diff --git a/home/modules/lib.nix b/home/modules/lib.nix new file mode 100644 index 0000000..bc5e7f8 --- /dev/null +++ b/home/modules/lib.nix @@ -0,0 +1,9 @@ +{ config, lib, ... }: + +{ + options.nixgl.wrap = lib.mkOption { + type = lib.types.functionTo lib.types.package; + default = if config.lib ? nixGL then config.lib.nixGL.wrap else lib.id; + readOnly = true; + }; +} diff --git a/home/modules/music/default.nix b/home/modules/music/default.nix index 1fab813..b36c9d0 100644 --- a/home/modules/music/default.nix +++ b/home/modules/music/default.nix @@ -4,10 +4,21 @@ ... }: +let + spotifyWithWayland = pkgs.symlinkJoin { + name = "spotify"; + paths = [ pkgs.spotify ]; + buildInputs = [ pkgs.makeWrapper ]; + postBuild = '' + wrapProgram $out/bin/spotify \ + --add-flags "--enable-features=UseOzonePlatform --ozone-platform=wayland" + ''; + }; +in { home.packages = with pkgs; [ ncspot - # (if config.lib ? nixGL then config.lib.nixGL.wrap spotify else spotify) + spotifyWithWayland ]; home.file = {