diff --git a/home/x11-progs.nix b/home/x11-progs.nix index 48d8dfd..6881777 100644 --- a/home/x11-progs.nix +++ b/home/x11-progs.nix @@ -1,16 +1,23 @@ { lib, config, pkgs, ...}: -{ - home.packages = with pkgs; [ - xclip - xcape - xscreensaver - mpv - sxiv - xwallpaper - xbrightness - xdotool - - brave +let + plib = import ../lib { inherit pkgs; }; +in { + home.packages = [ + pkgs.xclip + pkgs.xcape + pkgs.xscreensaver + pkgs.mpv + pkgs.sxiv + pkgs.xwallpaper + pkgs.xbrightness + pkgs.xdotool + ] ++ [ + (plib.mkPackageWrapper + pkgs.brave + "export HOME=$HOME/.cache/brave" + "" + "--args --disable-frame-rate-limit" + ) ]; } diff --git a/lib/default.nix b/lib/default.nix new file mode 100644 index 0000000..8e8de6e --- /dev/null +++ b/lib/default.nix @@ -0,0 +1,28 @@ +{ pkgs ? import {} }: +let + getPkgName = + pkg: + builtins.elemAt (builtins.split "-" pkg.name) 0; +in { + mkPackageWrapper = + pkg: + environ: + prefix: + postfix: + pkgs.writeScriptBin + (getPkgName pkg) + '' + #! ${pkgs.bash}/bin/bash + ${environ} + exec ${prefix} ${pkg}/bin/${getPkgName pkg} ${postfix} "$@" + ''; + mkQuarantinedPackage = + pkg: + pkgs.writeScriptBin + (getPkgName pkg) + '' + #! ${pkgs.bash}/bin/bash + export HOME=$HOME/.local/${getPkgName pkg} + exec ${pkg}/bin/${getPkgName pkg} + ''; +}