summaryrefslogtreecommitdiff
path: root/overlays/discord.nix
blob: dfb0caeaaa9dd4077252d7416a3dafaf92fa7e65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
_: prev: let
  mkOverride = d: let
    # TODO: re-enable openASAR when gnome wayland decorations work with it
    d' = d; #.override {withOpenASAR = true;};
    inherit (d') pname;

    desktopName =
      if pname == "discord-canary"
      then "Discord Canary"
      else "Discord";

    flags = "--enable-gpu-rasterization --enable-zero-copy --enable-gpu-compositing --enable-native-gpu-memory-buffers --enable-oop-rasterization --enable-features=UseSkiaRenderer,WaylandWindowDecorations";
    desktopItem = prev.makeDesktopItem {
      name = pname;
      exec = "${builtins.replaceStrings [" "] [""] desktopName} ${flags}";
      icon = pname;
      inherit desktopName;
      genericName = d'.meta.description;
      categories = ["Network" "InstantMessaging"];
      mimeTypes = ["x-scheme-handler/discord"];
    };
  in
    if prev.stdenv.isLinux
    then d'.overrideAttrs (_: {inherit desktopItem;})
    else if (pname == "discord" && prev.stdenv.isDarwin)
    then d'
    else d;
in {
  discord = mkOverride prev.discord;
  discord-canary = mkOverride prev.discord-canary;
}