dotfiles

My PC Dotfiles & Website

packages/betterbird/default.nix (2521B)


 1{
 2  lib,
 3  pkgs,
 4  ...
 5}: let
 6  metadata = import ./meta.nix;
 7  version = metadata.rev;
 8  unwrapped = pkgs.stdenv.mkDerivation {
 9    pname = "betterbird-unwrapped";
10    inherit version;
11
12    src = pkgs.fetchurl {
13      url = "https://www.betterbird.eu/downloads/LinuxArchive/betterbird-${version}.en-US.linux-x86_64.tar.xz";
14      inherit (metadata) sha256;
15    };
16
17    buildInputs = with pkgs; [alsa-lib gtk3];
18    nativeBuildInputs = with pkgs; [
19      autoPatchelfHook
20      patchelfUnstable
21      wrapGAppsHook3
22    ];
23
24    strictDeps = true;
25    patchelfFlags = ["--no-clobber-old-sections"];
26    installPhase = ''
27      runHook preInstall
28
29      mkdir -p "$out/lib/betterbird" "$out/bin"
30      cp -r . "$out/lib/betterbird/"
31      ln -s "$out/lib/betterbird/betterbird" "$out/bin/betterbird"
32
33      for size in 16 32 48 64 128 256
34      do
35        icon="chrome/icons/default/default$size.png"
36        if [[ -f "$icon" ]]
37        then
38          install -Dm644 "$icon" "$out/share/icons/hicolor/''${size}x''${size}/apps/betterbird.png"
39        fi
40      done
41
42      runHook postInstall
43    '';
44
45    passthru = {
46      applicationName = "Betterbird";
47      binaryName = "betterbird";
48      inherit (pkgs) gtk3;
49      ffmpegSupport = true;
50      gssSupport = true;
51    };
52
53    meta = {
54      description = "Email client based on Thunderbird with additional features and fixes";
55      homepage = "https://www.betterbird.eu/";
56      changelog = "https://www.betterbird.eu/releasenotes/";
57      mainProgram = "betterbird";
58      sourceProvenance = [lib.sourceTypes.binaryNativeCode];
59      license = lib.licenses.mpl20;
60      maintainers = ["maydayv7"];
61      platforms = ["x86_64-linux"];
62    };
63  };
64in
65  (pkgs.wrapThunderbird unwrapped {
66    pname = "betterbird";
67    libName = "betterbird";
68    extraPolicies.DisableAppUpdate = true;
69  }).overrideAttrs (_: {
70    desktopItem = pkgs.makeDesktopItem {
71      name = "thunderbird";
72      desktopName = "Thunderbird";
73      genericName = "Email Client";
74      comment = "Read mail and news, manage contacts and calendars";
75      exec = "betterbird --name thunderbird %U";
76      icon = "betterbird";
77      startupNotify = true;
78      startupWMClass = "thunderbird";
79      categories = ["Network" "Email" "News" "Feed" "GTK"];
80      mimeTypes = ["message/rfc822" "x-scheme-handler/mailto" "text/calendar" "text/x-vcard"];
81      actions.profile-manager = {
82        name = "Profile Manager";
83        exec = "betterbird --name thunderbird --ProfileManager";
84      };
85    };
86  })