diff options
| author | Fuwn <[email protected]> | 2024-08-28 20:36:04 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-08-28 20:36:04 -0700 |
| commit | f3c31e4ad7fab36e151f3a2e207fafb1eda1a787 (patch) | |
| tree | e265a1a5270b4522049110b8bc5aa13fda142c2f /home/ebisu/meta/multimedia/browser | |
| parent | many (diff) | |
| download | nixos-config-f3c31e4ad7fab36e151f3a2e207fafb1eda1a787.tar.xz nixos-config-f3c31e4ad7fab36e151f3a2e207fafb1eda1a787.zip | |
hi
Diffstat (limited to 'home/ebisu/meta/multimedia/browser')
| -rw-r--r-- | home/ebisu/meta/multimedia/browser/default.nix | 19 | ||||
| -rw-r--r-- | home/ebisu/meta/multimedia/browser/thorium.nix | 47 | ||||
| -rw-r--r-- | home/ebisu/meta/multimedia/browser/ungoogled-chromium.nix | 23 | ||||
| -rw-r--r-- | home/ebisu/meta/multimedia/browser/zen-browser-bin.nix | 128 |
4 files changed, 217 insertions, 0 deletions
diff --git a/home/ebisu/meta/multimedia/browser/default.nix b/home/ebisu/meta/multimedia/browser/default.nix new file mode 100644 index 0000000..176bc9c --- /dev/null +++ b/home/ebisu/meta/multimedia/browser/default.nix @@ -0,0 +1,19 @@ +{ pkgs, inputs, ... }: +{ + imports = [ + ./thorium.nix + # ./ungoogled-chromium.nix + ]; + + home.packages = with pkgs; [ + # elinks + geckodriver + # lynx + # vieb + # ladybird + web-ext + firefox + tor-browser + (pkgs.callPackage ./zen-browser-bin.nix { }) + ]; +} diff --git a/home/ebisu/meta/multimedia/browser/thorium.nix b/home/ebisu/meta/multimedia/browser/thorium.nix new file mode 100644 index 0000000..e789275 --- /dev/null +++ b/home/ebisu/meta/multimedia/browser/thorium.nix @@ -0,0 +1,47 @@ +{ pkgs, lib, ... }: +let + thorium-archive = pkgs.fetchurl { + url = "https://github.com/Alex313031/thorium/releases/download/M126.0.6478.246/Thorium_Browser_126.0.6478.246_Th24_SSE4.AppImage"; + hash = "sha256-izYbx/mSA+l7fAh917SauHopk3UlUJo+7NjkyIGpnNA="; + }; + + version = "126.0.6478.246_Th24"; + + # https://discourse.nixos.org/t/creating-a-nix-derivation-for-an-appimage/31927 + thorium = pkgs.appimageTools.wrapType2 { + pname = "thorium"; + version = version; + src = "${thorium-archive}"; + + meta = with lib; { + description = "Chromium fork named after radioactive element No. 90. Windows and MacOS/Raspi/Android/Special builds are in different repositories, links are towards the top of the README.md."; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + homepage = "https://thorium.rocks/"; + license = licenses.bsd3; + platforms = platforms.linux; + mainProgram = "thorium-browser"; + }; + }; +in +{ + home.packages = [ thorium ]; + + xdg.configFile."thorium-flags.conf".text = '' + --enable-features=UseOzonePlatform,WaylandWindowDecorations,WebRTCPipeWireCapturer,TouchpadOverscrollHistoryNavigation + --ozone-platform=wayland + --ignore-gpu-blocklist + --enable-gpu-rasterization + --enable-zero-copy + --disable-gpu-driver-bug-workarounds + --enable-features=VaapiVideoDecoder + --enable-native-gpu-memory-buffers + --disable-features=UseSkiaRenderer + --use-cmd-decoder=passthrough + --process-per-site + --force-dark-mode + --enable-features=WebUIDarkMode + --enable-unsafe-webgpu + --gtk-version=4 + --enable-wayland-ime + ''; +} diff --git a/home/ebisu/meta/multimedia/browser/ungoogled-chromium.nix b/home/ebisu/meta/multimedia/browser/ungoogled-chromium.nix new file mode 100644 index 0000000..d492697 --- /dev/null +++ b/home/ebisu/meta/multimedia/browser/ungoogled-chromium.nix @@ -0,0 +1,23 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ ungoogled-chromium ]; + + xdg.configFile."chromium-flags.conf".text = '' + --enable-features=UseOzonePlatform,WaylandWindowDecorations,WebRTCPipeWireCapturer,TouchpadOverscrollHistoryNavigation + --ozone-platform=wayland + --ignore-gpu-blocklist + --enable-gpu-rasterization + --enable-zero-copy + --disable-gpu-driver-bug-workarounds + --enable-features=VaapiVideoDecoder + --enable-native-gpu-memory-buffers + --disable-features=UseSkiaRenderer + --use-cmd-decoder=passthrough + --process-per-site + --force-dark-mode + --enable-features=WebUIDarkMode + --enable-unsafe-webgpu + --gtk-version=4 + --enable-wayland-ime + ''; +} diff --git a/home/ebisu/meta/multimedia/browser/zen-browser-bin.nix b/home/ebisu/meta/multimedia/browser/zen-browser-bin.nix new file mode 100644 index 0000000..51a95db --- /dev/null +++ b/home/ebisu/meta/multimedia/browser/zen-browser-bin.nix @@ -0,0 +1,128 @@ +{ + stdenv, + lib, + fetchzip, + makeDesktopItem, + autoPatchelfHook, + wrapGAppsHook3, + copyDesktopItems, + gtk3, + alsa-lib, + dbus-glib, + xorg, + pciutils, + libva, + pipewire, + libglvnd, +}: +let + desktopItem = makeDesktopItem { + name = "zen-browser"; + desktopName = "Zen Browser"; + genericName = "Web Browser"; + categories = [ + "Network" + "WebBrowser" + ]; + keywords = [ + "internet" + "www" + "browser" + "web" + "explorer" + ]; + exec = "zen %u"; + icon = "zen"; + mimeTypes = [ + "text/html" + "text/xml" + "application/xhtml+xml" + "application/vnd.mozilla.xul+xml" + "x-scheme-handler/http" + "x-scheme-handler/https" + ]; + startupNotify = true; + startupWMClass = "zen-alpha"; + terminal = false; + actions = { + new-window = { + name = "New Window"; + exec = "zen --new-window %u"; + }; + new-private-window = { + name = "New Private Window"; + exec = "zen --private-window %u"; + }; + profile-manager-window = { + name = "Profile Manager"; + exec = "zen --ProfileManager %u"; + }; + }; + }; +in +stdenv.mkDerivation rec { + pname = "zen-browser-bin"; + version = "1.0.0-a.32"; + + src = fetchzip { + url = "https://github.com/zen-browser/desktop/releases/download/${version}/zen.linux-specific.tar.bz2"; + hash = "sha256-5Z+RG5UwSHM6sC1WT5KHgwL0cco2DlMTSteEfnLGrlo="; + }; + + desktopItems = [ desktopItem ]; + + nativeBuildInputs = [ + autoPatchelfHook + wrapGAppsHook3 + copyDesktopItems + ]; + + buildInputs = [ + gtk3 + alsa-lib + dbus-glib + xorg.libXtst + ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/lib + cp -r $src $out/lib/zen/ + + mkdir -p $out/bin + ln -s $out/lib/zen/zen $out/bin/zen + + for n in {16,32,48,64,128}; do + size=$n"x"$n + mkdir -p $out/share/icons/hicolor/$size/apps + file="default"$n".png" + cp $out/lib/zen/browser/chrome/icons/default/$file $out/share/icons/hicolor/$size/apps/zen.png + done + + runHook postInstall + ''; + + preFixup = '' + gappsWrapperArgs+=( + --prefix LD_LIBRARY_PATH : "${ + lib.makeLibraryPath [ + pciutils + pipewire + libva + libglvnd + ] + }" + ) + gappsWrapperArgs+=(--set MOZ_LEGACY_PROFILES 1) + wrapGApp $out/lib/zen/zen + ''; + + meta = with lib; { + license = licenses.mpl20; + maintainers = with maintainers; [ mordrag ]; + description = "Experience tranquillity while browsing the web without people tracking you! "; + platforms = platforms.linux; + mainProgram = "zen"; + }; +} |