diff --git a/overlays/nixpak/firefox.nix b/overlays/nixpak/firefox.nix index bfba0d0..804ac71 100644 --- a/overlays/nixpak/firefox.nix +++ b/overlays/nixpak/firefox.nix @@ -3,98 +3,77 @@ # https://github.com/schizofox/schizofox/blob/cdf69b2a445ff12680657a3bd44ce7c406bf2ae6/flake/modules/home-manager/default.nix { ... }: final: prev: { - firefox-esr-wrapped = let - sandboxFirefox = base: let - sandboxed = prev.mkNixPak { - config = { sloth, ... }: { - app.package = base; - app.binPath = "bin/firefox-esr"; - flatpak.appId = "org.mozilla.firefox"; + firefox-esr = let + sandboxed-firefox-esr = prev.mkNixPak { + config = { sloth, ... }: { + app.package = prev.firefox-esr; + app.binPath = "bin/firefox-esr"; + flatpak.appId = "org.mozilla.firefox"; - dbus.policies = { - "org.a11y.Bus" = "talk"; - "org.gnome.SessionManager" = "talk"; - "org.freedesktop.ScreenSaver" = "talk"; - "org.gtk.vfs.*" = "talk"; - "org.gtk.vfs" = "talk"; - "org.freedesktop.Notifications" = "talk"; - "org.freedesktop.portal.FileChooser" = "talk"; - "org.freedesktop.portal.Settings" = "talk"; - "org.mpris.MediaPlayer2.firefox.*" = "own"; - "org.mozilla.firefox.*" = "own"; - "org.mozilla.firefox_beta.*" = "own"; - "org.freedesktop.DBus" = "talk"; - "org.freedesktop.DBus.*" = "talk"; - "ca.desrt.dconf" = "talk"; - "org.freedesktop.portal.*" = "talk"; - "org.freedesktop.NetworkManager" = "talk"; - "org.freedesktop.FileManager1" = "talk"; - }; + dbus.policies = { + "org.a11y.Bus" = "talk"; + "org.gnome.SessionManager" = "talk"; + "org.freedesktop.ScreenSaver" = "talk"; + "org.gtk.vfs.*" = "talk"; + "org.gtk.vfs" = "talk"; + "org.freedesktop.Notifications" = "talk"; + "org.freedesktop.portal.FileChooser" = "talk"; + "org.freedesktop.portal.Settings" = "talk"; + "org.mpris.MediaPlayer2.firefox.*" = "own"; + "org.mozilla.firefox.*" = "own"; + "org.mozilla.firefox_beta.*" = "own"; + "org.freedesktop.DBus" = "talk"; + "org.freedesktop.DBus.*" = "talk"; + "ca.desrt.dconf" = "talk"; + "org.freedesktop.portal.*" = "talk"; + "org.freedesktop.NetworkManager" = "talk"; + "org.freedesktop.FileManager1" = "talk"; + }; - gpu.enable = true; - gpu.provider = "bundle"; - fonts.enable = true; - locale.enable = true; - etc.sslCertificates.enable = true; + gpu.enable = true; + gpu.provider = "bundle"; + fonts.enable = true; + locale.enable = true; + etc.sslCertificates.enable = true; - bubblewrap = let - envSuffix = envKey: sloth.concat' (sloth.env envKey); - in { - bind.dev = [ "/dev/shm" ]; - tmpfs = [ "/tmp" ]; + bubblewrap = let + envSuffix = envKey: sloth.concat' (sloth.env envKey); + in { + bind.dev = [ "/dev/shm" ]; + tmpfs = [ "/tmp" ]; - bind.rw = [ - sloth.xdgDownloadDir + bind.rw = [ + sloth.xdgDownloadDir - (envSuffix "XDG_RUNTIME_DIR" "/at-spi/bus") - (envSuffix "XDG_RUNTIME_DIR" "/gvfsd") - (envSuffix "XDG_RUNTIME_DIR" "/pulse") - (envSuffix "XDG_RUNTIME_DIR" "/doc") - (envSuffix "XDG_RUNTIME_DIR" "/dconf") + (envSuffix "XDG_RUNTIME_DIR" "/at-spi/bus") + (envSuffix "XDG_RUNTIME_DIR" "/gvfsd") + (envSuffix "XDG_RUNTIME_DIR" "/pulse") + (envSuffix "XDG_RUNTIME_DIR" "/doc") + (envSuffix "XDG_RUNTIME_DIR" "/dconf") - [(sloth.mkdir (sloth.concat' sloth.xdgConfigHome "/mozilla")) (sloth.concat' sloth.homeDir "/.mozilla")] - ]; + [(sloth.mkdir (sloth.concat' sloth.xdgConfigHome "/mozilla")) (sloth.concat' sloth.homeDir "/.mozilla")] + ]; - bind.ro = [ - "/sys/bus/pci" - "/etc/resolv.conf" - "/etc/localtime" - ["${prev.firefox-esr}/lib/firefox" "/app/etc/firefox"] - (sloth.concat' sloth.xdgConfigHome "/dconf") - (sloth.concat' sloth.xdgConfigHome "/gtk-2.0") - (sloth.concat' sloth.xdgConfigHome "/gtk-3.0") - (sloth.concat' sloth.xdgConfigHome "/gtk-4.0") - (sloth.concat' sloth.xdgConfigHome "/dconf") - ]; + bind.ro = [ + "/sys/bus/pci" + "/etc/resolv.conf" + "/etc/localtime" + ["${prev.firefox-esr}/lib/firefox" "/app/etc/firefox"] + (sloth.concat' sloth.xdgConfigHome "/dconf") + (sloth.concat' sloth.xdgConfigHome "/gtk-2.0") + (sloth.concat' sloth.xdgConfigHome "/gtk-3.0") + (sloth.concat' sloth.xdgConfigHome "/gtk-4.0") + (sloth.concat' sloth.xdgConfigHome "/dconf") + ]; - sockets = { - x11 = false; - wayland = true; - pipewire = true; - }; + sockets = { + x11 = false; + wayland = true; + pipewire = true; }; }; }; - in sandboxed.config.env; - baseWrapped = sandboxFirefox prev.firefox-esr; - - finalizePackage = base: base // { - inherit (prev.firefox-esr) - meta - browserName - binaryName - version; - - unwrapped = prev.firefox-esr; - - override = attrs: let - firefoxWithCfg = if attrs ? cfg - then prev.firefox-esr.override attrs - else prev.firefox-esr; - in finalizePackage (sandboxFirefox firefoxWithCfg); - - overrideAttrs = f: finalizePackage (sandboxFirefox prev.firefox-esr); }; in - finalizePackage baseWrapped; + sandboxed-firefox-esr.config.env; }