Disable gpu for electron apps with wrapper-manager

This commit is contained in:
SebastianStork 2024-05-07 12:10:40 +02:00
parent 6626303217
commit 1290098798
8 changed files with 108 additions and 4 deletions

23
flake.lock generated
View file

@ -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",

View file

@ -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";

View file

@ -16,6 +16,7 @@
home-manager.sharedModules = [
../modules/home
../wrappers
{
programs.home-manager.enable = true;

View file

@ -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;})
];
}

12
wrappers/default.nix Normal file
View file

@ -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;};
};
}

21
wrappers/marktext.nix Normal file
View file

@ -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

21
wrappers/obsidian.nix Normal file
View file

@ -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

21
wrappers/spotify.nix Normal file
View file

@ -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