From d01ca6d1580aaec0b10891014278e4f413e9dd4e Mon Sep 17 00:00:00 2001 From: alsaiduq-lab Date: Mon, 15 Sep 2025 19:13:53 -0600 Subject: [PATCH] added --- home-manager/cobray.nix | 2 +- home-manager/modules/thorium.nix | 4 + pkgs/default.nix | 1 + pkgs/thorium/default.nix | 161 +++++++++++++++++++++++++++++++ 4 files changed, 167 insertions(+), 1 deletion(-) create mode 100644 home-manager/modules/thorium.nix create mode 100644 pkgs/thorium/default.nix diff --git a/home-manager/cobray.nix b/home-manager/cobray.nix index f1a5fb6..a5f4abc 100644 --- a/home-manager/cobray.nix +++ b/home-manager/cobray.nix @@ -17,7 +17,7 @@ ./modules/ffmpeg.nix ./modules/emulators.nix ./modules/discord.nix - ./modules/brave.nix + ./modules/thorium.nix ./modules/spotify.nix ./modules/obs.nix ./modules/udiskie.nix diff --git a/home-manager/modules/thorium.nix b/home-manager/modules/thorium.nix new file mode 100644 index 0000000..87018fa --- /dev/null +++ b/home-manager/modules/thorium.nix @@ -0,0 +1,4 @@ +{ pkgs, ... }: +{ + home.packages = [ pkgs.thorium ]; +} diff --git a/pkgs/default.nix b/pkgs/default.nix index 16bdf95..107e04e 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -5,4 +5,5 @@ clear-sans = pkgs.callPackage ./clear-sans {}; binary-font = pkgs.callPackage ./binary-font {}; minijinja-cli = pkgs.callPackage ./minijinja-cli {}; + thorium = pkgs.callPackage ./thorium {}; } diff --git a/pkgs/thorium/default.nix b/pkgs/thorium/default.nix new file mode 100644 index 0000000..9f706da --- /dev/null +++ b/pkgs/thorium/default.nix @@ -0,0 +1,161 @@ +{ + lib, + stdenvNoCC, + fetchurl, + autoPatchelfHook, + makeWrapper, + dpkg, + gnutar, + xdg-utils, + nss, + nspr, + glib, + gtk3, + at-spi2-atk, + at-spi2-core, + dbus, + libdrm, + mesa, + libGL, + libX11, + libXext, + libXdamage, + libXfixes, + libXcomposite, + libXrandr, + libXcursor, + libXrender, + libXi, + libXtst, + libXScrnSaver, + libxcb, + libxkbcommon, + alsa-lib, + cups, + pango, + cairo, + libva, + libvdpau, + expat, + zlib, + libnotify, + libuuid, + libsecret, + libkrb5, + libpng, + freetype, + fontconfig, +}: let + tag = "M130.0.6723.174"; + version = "130.0.6723.174"; + variant = "SSE3"; + + src = fetchurl { + url = "https://github.com/Alex313031/Thorium/releases/download/${tag}/thorium-browser_${version}_${variant}.deb"; + sha256 = "sha256-sr8f4E329VrA1iHjF+72Db4pApTt9uDTzofr3Ak65Wo="; + }; + + libs = [ + nss + nspr + glib + gtk3 + at-spi2-atk + at-spi2-core + dbus + libdrm + mesa + libGL + libX11 + libXext + libXdamage + libXfixes + libXcomposite + libXrandr + libXcursor + libXrender + libXi + libXtst + libXScrnSaver + libxcb + libxkbcommon + alsa-lib + cups + pango + cairo + libva + libvdpau + expat + zlib + libnotify + libuuid + libsecret + libkrb5 + libpng + freetype + fontconfig + ]; +in + stdenvNoCC.mkDerivation { + pname = "thorium"; + inherit version src; + + nativeBuildInputs = [autoPatchelfHook makeWrapper dpkg gnutar]; + buildInputs = libs; + + unpackPhase = '' + ar x "$src" + tar --no-same-owner --no-same-permissions -xf data.tar.* + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out/opt/thorium $out/bin $out/share/applications $out/share/icons + + if [ -d opt/chromium.org/thorium ]; then + srcdir=opt/chromium.org/thorium + else + srcdir=opt/thorium-browser + fi + + cp -r "$srcdir"/* $out/opt/thorium/ + + rm -f $out/opt/thorium/libqt5_shim.so $out/opt/thorium/libqt6_shim.so || true + + ln -sf $out/opt/thorium/thorium $out/bin/thorium + ln -sf $out/bin/thorium $out/bin/thorium-browser + + desk_in= + for f in usr/share/applications/thorium-browser.desktop usr/share/applications/thorium.desktop; do + [ -f "$f" ] && desk_in="$f" && break + done + if [ -n "$desk_in" ]; then + mkdir -p $out/share/applications + sed -E \ + -e "s|^Exec=.*|Exec=thorium %U|" \ + -e "s|/opt/[^/]*/thorium|$out/bin/thorium|g" \ + "$desk_in" > $out/share/applications/thorium.desktop + fi + + if [ -d usr/share/icons ]; then + cp -r usr/share/icons/* $out/share/icons/ || true + fi + runHook postInstall + ''; + + postFixup = '' + wrapProgram $out/bin/thorium \ + --prefix PATH : ${lib.makeBinPath [xdg-utils]} \ + --set-default CHROME_VERSION_EXTRA "Thorium" \ + --set LD_LIBRARY_PATH ${lib.makeLibraryPath libs} + ''; + + meta = with lib; { + description = "Thorium Browser (Chromium fork)"; + homepage = "https://github.com/Alex313031/Thorium"; + license = licenses.unfreeRedistributable; + platforms = ["x86_64-linux"]; + mainProgram = "thorium"; + maintainers = ["Cobray"]; + }; + }