dotfiles

My PC Dotfiles & Website
commit 824953c1b737560352033fb6acbdf2c83008985e
parent 53e94584c1271c2a3cd2c20eceb217620ddaf24d
Author: maydayv7 <maydayv7@gmail.com>
Date:   Sat, 10 Oct 2026 20:18:12 +0530

feat: Use `betterbird`

Diffstat:

MCHANGELOG.md | 1+
Mmodules/apps/internet.nix | 9++++++++-
Mmodules/hosts/valkyrie/_vm/windows.xml | 4++--
Apackages/betterbird/default.nix | 86+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apackages/betterbird/metadata.nix | 7+++++++
Dpackages/fabric-ca.nix | 36------------------------------------
Apackages/fabric-ca/default.nix | 37+++++++++++++++++++++++++++++++++++++
Apackages/fabric-ca/metadata.nix | 6++++++
Mscripts/packages.sh | 9++++++++-
9 files changed, 155 insertions(+), 40 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md @@ -2,6 +2,7 @@ ### October +- Use [`betterbird`](https://www.betterbird.eu/) - Replace `geany` with `xed-editor` ### September diff --git a/modules/apps/internet.nix b/modules/apps/internet.nix @@ -43,10 +43,17 @@ in { # Mail Client thunderbird = { enable = true; + package = pkgs.custom.betterbird; profiles.default = { isDefault = true; extensions = [pkgs.custom.thunderbird-tools-ng]; - settings."extensions.autoDisableScopes" = 0; + settings = { + "extensions.autoDisableScopes" = 0; + "mail.biff.show_tray_icon" = true; + "mail.biff.show_tray_icon_always" = true; + "mail.minimizeToTray" = true; + "mail.closeToTray" = true; + }; }; }; }; diff --git a/modules/hosts/valkyrie/_vm/windows.xml b/modules/hosts/valkyrie/_vm/windows.xml @@ -90,7 +90,7 @@ <!-- Disk images <disk type='file' device='cdrom'> <driver name='qemu' type='raw' /> - <source file='/data/vm/iso/Win11.iso' /> + <source file='/data/vm/Win11.iso' /> <target dev='sda' bus='sata' /> <readonly /> <boot order='1' /> @@ -98,7 +98,7 @@ </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw' /> - <source file='/data/vm/iso/virtio-win.iso' /> + <source file='/data/vm/virtio-win.iso' /> <target dev='sdb' bus='sata' /> <readonly /> <boot order='2' /> diff --git a/packages/betterbird/default.nix b/packages/betterbird/default.nix @@ -0,0 +1,86 @@ +{ + lib, + pkgs, + ... +}: let + metadata = import ./metadata.nix; + version = metadata.rev; + unwrapped = pkgs.stdenv.mkDerivation { + pname = "betterbird-unwrapped"; + inherit version; + + src = pkgs.fetchurl { + url = "https://www.betterbird.eu/downloads/LinuxArchive/betterbird-${version}.en-US.linux-x86_64.tar.xz"; + inherit (metadata) sha256; + }; + + buildInputs = with pkgs; [alsa-lib gtk3]; + nativeBuildInputs = with pkgs; [ + autoPatchelfHook + patchelfUnstable + wrapGAppsHook3 + ]; + + strictDeps = true; + patchelfFlags = ["--no-clobber-old-sections"]; + installPhase = '' + runHook preInstall + + mkdir -p "$out/lib/betterbird" "$out/bin" + cp -r . "$out/lib/betterbird/" + ln -s "$out/lib/betterbird/betterbird" "$out/bin/betterbird" + + for size in 16 32 48 64 128 256 + do + icon="chrome/icons/default/default$size.png" + if [[ -f "$icon" ]] + then + install -Dm644 "$icon" "$out/share/icons/hicolor/''${size}x''${size}/apps/betterbird.png" + fi + done + + runHook postInstall + ''; + + passthru = { + applicationName = "Betterbird"; + binaryName = "betterbird"; + inherit (pkgs) gtk3; + ffmpegSupport = true; + gssSupport = true; + }; + + meta = { + description = "Email client based on Thunderbird with additional features and fixes"; + homepage = "https://www.betterbird.eu/"; + changelog = "https://www.betterbird.eu/releasenotes/"; + mainProgram = "betterbird"; + sourceProvenance = [lib.sourceTypes.binaryNativeCode]; + license = lib.licenses.mpl20; + maintainers = ["maydayv7"]; + platforms = ["x86_64-linux"]; + }; + }; +in + (pkgs.wrapThunderbird unwrapped { + pname = "betterbird"; + libName = "betterbird"; + extraPolicies.DisableAppUpdate = true; + }).overrideAttrs (_: { + desktopItem = pkgs.makeDesktopItem { + name = "thunderbird"; + desktopName = "Thunderbird"; + genericName = "Email Client"; + comment = "Read mail and news, manage contacts and calendars"; + exec = "betterbird --name thunderbird %U"; + icon = "betterbird"; + startupNotify = true; + startupWMClass = "thunderbird"; + categories = ["Network" "Email" "News" "Feed" "GTK"]; + mimeTypes = ["message/rfc822" "x-scheme-handler/mailto" "text/calendar" "text/x-vcard"]; + actions.profile-manager = { + name = "Profile Manager"; + exec = "betterbird --name thunderbird --ProfileManager"; + }; + }; + }) diff --git a/packages/betterbird/metadata.nix b/packages/betterbird/metadata.nix @@ -0,0 +1,7 @@ +{ + repo = "https://github.com/Betterbird/thunderbird-patches"; + rev = "153.4.0esr-bb10"; + release = true; + regex = "^[0-9]+([.][0-9]+)+esr-bb[0-9]+$"; + sha256 = "sha256-ON0kiQpmtM+aRbwk4VGS4AwmuSnhu433l0wWpFORKeI="; +} diff --git a/packages/fabric-ca.nix b/packages/fabric-ca.nix @@ -1,36 +0,0 @@ -{ - lib, - pkgs, - ... -}: -with pkgs; - buildGoModule rec { - pname = "fabric-ca"; - version = "1.5.15"; - - src = fetchFromGitHub { - owner = "hyperledger"; - repo = "fabric-ca"; - rev = "v${version}"; - hash = "sha256-kJGeA30hoRk98/io/O5lorw96bpiGpheSaHrHVqqO+s="; - }; - - vendorHash = null; - postPatch = "rm cmd/fabric-ca-server/main_test.go"; - ldflags = [ - "-s" - "-w" - ]; - - subPackages = [ - "cmd/fabric-ca-client" - "cmd/fabric-ca-server" - ]; - - meta = { - description = "Certificate Authority for Hyperledger Fabric"; - homepage = "https://wiki.hyperledger.org/display/fabric"; - license = lib.licenses.asl20; - maintainers = ["maydayv7"]; - }; - } diff --git a/packages/fabric-ca/default.nix b/packages/fabric-ca/default.nix @@ -0,0 +1,37 @@ +{ + lib, + pkgs, + ... +}: +with pkgs; let + metadata = import ./metadata.nix; +in + buildGoModule { + pname = "fabric-ca"; + version = lib.removePrefix "v" metadata.rev; + + src = fetchFromGitHub { + owner = "hyperledger"; + repo = "fabric-ca"; + inherit (metadata) rev sha256; + }; + + vendorHash = null; + postPatch = "rm cmd/fabric-ca-server/main_test.go"; + ldflags = [ + "-s" + "-w" + ]; + + subPackages = [ + "cmd/fabric-ca-client" + "cmd/fabric-ca-server" + ]; + + meta = { + description = "Certificate Authority for Hyperledger Fabric"; + homepage = "https://wiki.hyperledger.org/display/fabric"; + license = lib.licenses.asl20; + maintainers = ["maydayv7"]; + }; + } diff --git a/packages/fabric-ca/metadata.nix b/packages/fabric-ca/metadata.nix @@ -0,0 +1,6 @@ +{ + repo = "https://github.com/hyperledger/fabric-ca"; + rev = "v1.5.15"; + release = true; + sha256 = "sha256-kJGeA30hoRk98/io/O5lorw96bpiGpheSaHrHVqqO+s="; +} diff --git a/scripts/packages.sh b/scripts/packages.sh @@ -30,6 +30,7 @@ update() { repo="$(cat "${t1}" | jq -r .repo)" branch="$(cat "${t1}" | jq -r .branch)" # Optional release="$(cat "${t1}" | jq -r .release)" # Optional + regex="$(jq -r '.regex // "."' "${t1}")" # Optional cargoHash="$(cat "${t1}" | jq -r .cargoHash)" # Optional vendorHash="$(cat "${t1}" | jq -r .vendorHash)" # Optional skip="$(cat "${t1}" | jq -r .skip)" # Optional @@ -50,7 +51,7 @@ update() { then if [[ "${release}" == "true" ]] then - newrev="$(git ls-remote --refs --sort="version:refname" --tags "${repo}" | cut -d/ -f3- | tail -n1)" + newrev="$(git ls-remote --refs --sort="version:refname" --tags "${repo}" | cut -d/ -f3- | grep -E "${regex}" | tail -n1)" else if [[ "${branch}" == "null" ]] then @@ -60,6 +61,12 @@ update() { fi fi + if [[ -z "${newrev:-}" ]] + then + echo "Could not determine the latest revision for '${pkgname}'" >&2 + exit 1 + fi + # Early Quit if [[ "${rev}" == "${newrev}" && "${FORCE_RECHECK:-""}" != "true" ]] then