final: prev: let pySmartDL = prev.callPackage ./development/python/pySmartDL {}; cfscrape = prev.callPackage ./development/python/cfscrape {}; discord-system-electron = prev.callPackage ./applications/networking/instant-messengers/discord { # Wayland # NOTE: electron under Wayland has no window titlebars extraStartupArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland"; #extraStartupArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-features=WebRTCPipeWireCapturer"; }; wrapInSandbox = prev.callPackage ./sandbox.nix {}; in { key-mapper = prev.callPackage ./tools/games/key-mapper {}; vfio-isolate = prev.callPackage ./tools/virtualisation/vfio-isolate {}; mopidy-funkwhale = prev.callPackage ./applications/audio/mopidy/funkwhale.nix {}; # Not as clean as I hoped, but it works gnomeExtensions = prev.gnomeExtensions // { notification-timeout = prev.callPackage ./desktop/gnome/extensions/notification-timeout {}; windowisready-remover = prev.callPackage ./desktop/gnome/extensions/windowisready-remover {}; }; python3Packages = prev.python3Packages // { pySmartDL = pySmartDL; cfscrape = cfscrape; }; replaysorcery = prev.callPackage ./tools/games/replaysorcery {}; evdev-proxy = prev.callPackage ./tools/virtualisation/evdev-proxy {}; anime4k = prev.callPackage ./misc/video/anime4k {}; anime-dl = prev.callPackage ./tools/video/animedl { pySmartDL = pySmartDL; cfscrape = cfscrape; }; discord-wrapped = wrapInSandbox { name = "discord"; package = prev.discord; #package = discord-system-electron; binaryName = "discord"; mountInHome = [ ".config/discord" ".config/BetterDiscord" ]; additionalBlacklist = [ "/mnt" ]; chdirTo = "/home/$USER"; version = "1.0.1"; copyIntoSandbox = [ "share/pixmaps" ]; desktopFileArgs = { name = "Discord (wrapped)"; #exec = "discord"; icon = "discord"; desktopName = "Discord (wrapped)"; genericName = "Instant Messenger"; categories = "Network;InstantMessaging;"; }; }; sddm-sugar-dark = prev.callPackage ./sddm-sugar-dark {}; iptsd = prev.callPackage ./tools/daemons/iptsd {}; surface-control = prev.callPackage ./tools/system/surface-control {}; trackma = prev.callPackage ./tools/video/trackma {}; multimc-wrapped = wrapInSandbox { name = "multimc"; package = prev.multimc.override { jdk = prev.jdk11; jdk8 = prev.jdk11; }; binaryName = "multimc"; mountInHome = [ ".local/share/multimc" ]; additionalBlacklist = [ "/mnt" ]; chdirTo = "/home/$USER"; #extraEnv = { # DRI_PRIME = "1"; #}; }; minecraft-wrapped = wrapInSandbox { name = "minecraft-launcher"; package = prev.minecraft; binaryName = "minecraft-launcher"; mountInHome = [ ".local/share/minecraft" ".minecraft" ]; additionalBlacklist = [ "/mnt" ]; chdirTo = "/home/$USER"; }; steam-wrapped = wrapInSandbox { name = "steam"; package = prev.steam; binaryName = "steam"; mountInHome = [ ".steam" ".local/share/Steam" ]; additionalBlacklist = [ "/mnt" ]; additionalMounts = [ "/mnt/Storage/Games/SteamLibrary" ]; chdirTo = "/home/$USER"; extraEnv = { DRI_PRIME = "1"; }; copyIntoSandbox = [ "/share" ]; }; android-studio-wrapped = wrapInSandbox { name = "android-studio"; package = prev.android-studio; binaryName = "android-studio"; additionalBlacklist = [ "/mnt" ]; mountInHome = [ "Development/Personal/Android" ".android" ]; chdirTo = "/home/$USER"; }; xournalpp-git = prev.xournalpp.overrideAttrs (old: { version = "1.1.1"; src = prev.fetchFromGitHub { owner = "bhennion"; repo = "xournalpp"; rev = "5d1545b0c4303e45b4ddf4ef8a1565eba822a9af"; sha256 = "1d17lvydlny9pvaxa9xy53wxs7i6d563lp5r9g3r1xpgnb7zli8v"; }; }); gajim-mainwindow = prev.callPackage ./applications/networking/instant-messengers/gajim { nbxmpp = prev.python3Packages.nbxmpp.overrideAttrs (old: { src = prev.fetchFromGitLab { domain = "dev.gajim.org"; owner = "gajim"; repo = "python-nbxmpp"; rev = "22aaefb2b36eb46a5306092496c2be680b167f61"; sha256 = "sha256-7emxKdeDuQE6OkK+umw2p1drf94yZp+P00tdEfeI81M="; }; }); }; swaync = prev.callPackage ./tools/desktop/swaync {}; # TODO: Remove once NixOS has version 0.11.16 in their repos sublime-music-no-test = prev.callPackage ./applications/audio/sublime-music {}; # TODO: Remove once upstream has a new version tagged kasts-git = prev.libsForQt5.kasts.overrideAttrs (old: { src = let commit = "b39be0118ef6ff587b433af185c584f3d5bcec30"; in builtins.fetchTarball { url = "https://invent.kde.org/plasma-mobile/kasts/-/archive/${commit}/kasts-${commit}.tar.gz"; sha256 = "06myymbwj89357cpg7phha1x8q84mlhcy4f44pdkqmg7lkd5a6df"; }; buildInputs = old.buildInputs ++ [ prev.taglib prev.libsForQt5.qtkeychain ]; }); sound-gambit = prev.callPackage tools/audio/sound-gambit {}; ebu-norm = prev.callPackage tools/audio/ebu-norm {}; }