diff --git a/flake.lock b/flake.lock index f26b32b..375c167 100644 --- a/flake.lock +++ b/flake.lock @@ -200,7 +200,8 @@ "nix-index-database": "nix-index-database", "nix-vscode-extensions": "nix-vscode-extensions", "nixpkgs": "nixpkgs", - "sops-nix": "sops-nix" + "sops-nix": "sops-nix", + "wrapper-manager": "wrapper-manager" } }, "sops-nix": { @@ -268,6 +269,26 @@ "repo": "default", "type": "github" } + }, + "wrapper-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1702396227, + "narHash": "sha256-JTgwZK6m3Lt1LrjgWdl5+9RyDlAI9mzH3QHFMY8RwVY=", + "owner": "viperML", + "repo": "wrapper-manager", + "rev": "3a4c510ffb9f01fc7cab5e23f5ae818d72a66e1a", + "type": "github" + }, + "original": { + "owner": "viperML", + "repo": "wrapper-manager", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 847c093..24fa11c 100644 --- a/flake.nix +++ b/flake.nix @@ -7,6 +7,11 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + wrapper-manager = { + url = "github:viperML/wrapper-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + disko = { url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/users/common.nix b/users/common.nix index 87b5aad..4944461 100644 --- a/users/common.nix +++ b/users/common.nix @@ -16,6 +16,7 @@ home-manager.sharedModules = [ ../modules/home + ../wrappers { programs.home-manager.enable = true; diff --git a/users/seb/home.nix b/users/seb/home.nix index b1a4e31..b08c9c8 100644 --- a/users/seb/home.nix +++ b/users/seb/home.nix @@ -2,6 +2,7 @@ config, pkgs, osConfig, + myWrappers, ... }: { xdg.userDirs.extraConfig.XDG_SCREENSHOTS_DIR = "${config.xdg.userDirs.pictures}/Screenshots"; @@ -32,7 +33,6 @@ pkgs.notepadqq pkgs.brave - pkgs.spotify pkgs.cinnamon.nemo-with-extensions pkgs.webcord pkgs.jetbrains.idea-community @@ -42,7 +42,9 @@ pkgs.hunspell pkgs.hunspellDicts.de_DE pkgs.hunspellDicts.en_US - pkgs.marktext - pkgs.obsidian + + (myWrappers.spotify {disableGPU = true;}) + (myWrappers.obsidian {disableGPU = true;}) + (myWrappers.marktext {disableGPU = true;}) ]; } diff --git a/wrappers/default.nix b/wrappers/default.nix new file mode 100644 index 0000000..dbf5708 --- /dev/null +++ b/wrappers/default.nix @@ -0,0 +1,12 @@ +{ + inputs, + pkgs, + lib, + ... +}: { + _module.args.myWrappers = { + spotify = import ./spotify.nix {inherit inputs pkgs lib;}; + obsidian = import ./obsidian.nix {inherit inputs pkgs lib;}; + marktext = import ./marktext.nix {inherit inputs pkgs lib;}; + }; +} diff --git a/wrappers/marktext.nix b/wrappers/marktext.nix new file mode 100644 index 0000000..81e0dfc --- /dev/null +++ b/wrappers/marktext.nix @@ -0,0 +1,21 @@ +{ + inputs, + pkgs, + lib, + ... +}: {disableGPU ? false}: +(inputs.wrapper-manager.lib { + inherit pkgs; + modules = [ + { + wrappers.marktext = { + basePackage = pkgs.marktext; + flags = [(lib.mkIf disableGPU "--disable-gpu")]; + }; + } + ]; +}) +.config +.wrappers +.marktext +.wrapped diff --git a/wrappers/obsidian.nix b/wrappers/obsidian.nix new file mode 100644 index 0000000..94b8d3f --- /dev/null +++ b/wrappers/obsidian.nix @@ -0,0 +1,21 @@ +{ + inputs, + pkgs, + lib, + ... +}: {disableGPU ? false}: +(inputs.wrapper-manager.lib { + inherit pkgs; + modules = [ + { + wrappers.obsidian = { + basePackage = pkgs.obsidian; + flags = [(lib.mkIf disableGPU "--disable-gpu")]; + }; + } + ]; +}) +.config +.wrappers +.obsidian +.wrapped diff --git a/wrappers/spotify.nix b/wrappers/spotify.nix new file mode 100644 index 0000000..4ef9c0e --- /dev/null +++ b/wrappers/spotify.nix @@ -0,0 +1,21 @@ +{ + inputs, + pkgs, + lib, + ... +}: {disableGPU ? false}: +(inputs.wrapper-manager.lib { + inherit pkgs; + modules = [ + { + wrappers.spotify = { + basePackage = pkgs.spotify; + flags = [(lib.mkIf disableGPU "--disable-gpu")]; + }; + } + ]; +}) +.config +.wrappers +.spotify +.wrapped