nixos-config/overlays/sandbox.nix
2023-09-17 13:35:43 +02:00

141 lines
3.9 KiB
Nix

final: prev:
let
wrapInSandbox = prev.callPackage ../lib/sandbox.nix {};
in {
discord-app-wrapped = wrapInSandbox {
name = "discord-app-wrapped";
launchScriptName = "discord-app";
binary = "${prev.discord-app}/bin/discord-app";
mountInHome = [ ".local/share/discord-app" ];
additionalBlacklist = [ "/mnt" ];
chdirTo = "/home/$USER";
preDesktopFilePhase = ''
mkdir -p $out/share/icons
cp -L ${prev.discord}/share/pixmaps/discord.png $out/share/icons/discord.png
'';
desktopFileAttributes = {
name = "discord-app-wrapped";
#exec = "discord";
icon = "discord";
desktopName = "Discord-App (wrapped)";
genericName = "Instant Messenger";
#categories = [ "Network" "InstantMessaging" ];
};
enableDesktopFile = true;
};
prismlauncher-wrapped = wrapInSandbox {
name = "prismlauncher";
binary = let
script = prev.writeShellScript "prismlauncher-zink.sh" ''
export MESA_LOADER_DRIVER_OVERRIDE=zink
${prev.prismlauncher}/bin/prismlauncher
'';
in "${prev.prismlauncher}/bin/prismlauncher";
launchScriptName = "prismlauncher-wrapped";
mountInHome = [".local/share/PrismLauncher"];
additionalMounts = [
"/etc/profile"
];
additionalBlacklist = [ "/mnt" ];
chdirTo = "/home/$USER";
};
steam-wrapped = wrapInSandbox {
name = "steam-wrapped";
binary = "${prev.steam}/bin/steam";
launchScriptName = "steam";
mountInHome = [
".steam"
".local/share/Steam"
"Downloads/Skyrim Mods"
];
additionalBlacklist = [ "/mnt" ];
additionalMounts = [ "/mnt/Storage/Games/SteamLibrary" ];
chdirTo = "/home/$USER";
preDesktopFilePhase = ''
cp -Lr ${prev.steam}/share/icons $out/share/icons
'';
desktopFileAttributes = {
name = "steam-wrapped";
icon = "steam";
desktopName = "Steam (wrapped)";
};
enableDesktopFile = true;
};
spotify-wrapped = wrapInSandbox {
name = "spotify-wrapped";
launchScriptName = "spotify";
binary = "${prev.spotify}/bin/spotify";
additionalBlacklist = [ "/mnt" ];
mountInHome = [ ".config/spotify" ];
chdirTo = "/home/$USER";
preDesktopFilePhase = ''
cp -Lr ${prev.spotify}/share/icons $out/share/icons
'';
desktopFileAttributes = {
name = "spotify-wrapped";
icon = "spotify-client";
desktopName = "Spotify (wrapped)";
};
enableDesktopFile = true;
};
lutris-free-wrapped = wrapInSandbox {
name = "lutris-free-wrapped";
launchScriptName = "lutris";
binary = "${prev.lutris-free}/bin/lutris";
additionalBlacklist = [ "/mnt" ];
additionalMounts = [
"/mnt/Storage/Games/LeagueOfLegends"
"/mnt/Storage/Games/Origin"
"/mnt/Storage/Games/SteamLibrary"
"/mnt/Storage/Games/Uplay"
"/mnt/tmp"
];
mountInHome = [ ".local/share/lutris" ".config/lutris" "Games" ];
chdirTo = "/home/$USER";
preDesktopFilePhase = ''
mkdir -p $out/share/
cp -Lr ${prev.lutris-free}/share/icons $out/share/icons/
'';
desktopFileAttributes = {
name = "lutris-wrapped";
icon = "lutris";
desktopName = "Lutris (wrapped)";
};
enableDesktopFile = true;
};
discord-wrapped = let
discordPkg = prev.discord;
in wrapInSandbox {
name = "discord-wrapped";
launchScriptName = "discord";
binary = "${discordPkg}/bin/discord";
mountInHome = [ ".config/discord" ".config/BetterDiscord" ];
additionalBlacklist = [ "/mnt" ];
chdirTo = "/home/$USER";
preDesktopFilePhase = ''
mkdir -p $out/share/icons
cp -L ${discordPkg}/share/pixmaps/discord.png $out/share/icons/discord.png
'';
desktopFileAttributes = {
name = "discord-wrapped";
#exec = "discord";
icon = "discord";
desktopName = "Discord (wrapped)";
genericName = "Instant Messenger";
#categories = [ "Network" "InstantMessaging" ];
};
enableDesktopFile = true;
};
}