summaryrefslogtreecommitdiff
path: root/home/ebisu/meta/multimedia/browser
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-08-28 20:36:04 -0700
committerFuwn <[email protected]>2024-08-28 20:36:04 -0700
commitf3c31e4ad7fab36e151f3a2e207fafb1eda1a787 (patch)
treee265a1a5270b4522049110b8bc5aa13fda142c2f /home/ebisu/meta/multimedia/browser
parentmany (diff)
downloadnixos-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.nix19
-rw-r--r--home/ebisu/meta/multimedia/browser/thorium.nix47
-rw-r--r--home/ebisu/meta/multimedia/browser/ungoogled-chromium.nix23
-rw-r--r--home/ebisu/meta/multimedia/browser/zen-browser-bin.nix128
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";
+ };
+}