From d630615ac354bad4fa50eff4db5bcc8ae8dfbaa0 Mon Sep 17 00:00:00 2001 From: "Gustavo \"Guz\" L de Mello" Date: Tue, 11 Feb 2025 11:30:11 -0300 Subject: [PATCH] refactor: use nix-flatpak instead of nixpak I went to close into the sun, again --- flake.lock | 17 +++ flake.nix | 17 +-- home/guz-lite/apps.nix | 69 ++++++------ home/guz-lite/configuration.nix | 2 + home/guz-lite/default.nix | 1 - home/guz/apps.nix | 115 ++----------------- hosts/battleship/configuration.nix | 3 +- modules/home-manager/zen-browser.nix | 27 ----- packages/nixpak/bitwarden-desktop.nix | 33 ------ packages/nixpak/brave.nix | 44 -------- packages/nixpak/default.nix | 29 ----- packages/nixpak/modules/gui-base.nix | 70 ------------ packages/nixpak/vesktop.nix | 38 ------- packages/nixpak/zen-browser.nix | 35 ------ packages/zen-browser/COPYRIGHT | 22 ---- packages/zen-browser/default.nix | 153 -------------------------- packages/zen-browser/zen-beta.desktop | 25 ----- 17 files changed, 72 insertions(+), 628 deletions(-) delete mode 100644 modules/home-manager/zen-browser.nix delete mode 100644 packages/nixpak/bitwarden-desktop.nix delete mode 100644 packages/nixpak/brave.nix delete mode 100644 packages/nixpak/default.nix delete mode 100644 packages/nixpak/modules/gui-base.nix delete mode 100644 packages/nixpak/vesktop.nix delete mode 100644 packages/nixpak/zen-browser.nix delete mode 100644 packages/zen-browser/COPYRIGHT delete mode 100644 packages/zen-browser/default.nix delete mode 100644 packages/zen-browser/zen-beta.desktop diff --git a/flake.lock b/flake.lock index 1e84aaa..1221dd9 100644 --- a/flake.lock +++ b/flake.lock @@ -967,6 +967,22 @@ "type": "github" } }, + "nix-flatpak": { + "locked": { + "lastModified": 1734128415, + "narHash": "sha256-HLwdVNxpuTsLlM3tCkpbQU6yCehdgf3kOS1G2SDlkzY=", + "owner": "gmodena", + "repo": "nix-flatpak", + "rev": "8bdc2540da516006d07b04019eb57ae0781a04b3", + "type": "github" + }, + "original": { + "owner": "gmodena", + "ref": "latest", + "repo": "nix-flatpak", + "type": "github" + } + }, "nixpak": { "inputs": { "flake-parts": "flake-parts_3", @@ -1173,6 +1189,7 @@ "inputs": { "dot013-nvim": "dot013-nvim", "home-manager": "home-manager", + "nix-flatpak": "nix-flatpak", "nixpak": "nixpak", "nixpkgs": "nixpkgs_4", "nixpkgs-unstable": "nixpkgs-unstable", diff --git a/flake.nix b/flake.nix index 2f5ff8d..56d7821 100644 --- a/flake.nix +++ b/flake.nix @@ -24,6 +24,10 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + nix-flatpak = { + url = "github:gmodena/nix-flatpak/?ref=latest"; + }; + nixpak = { url = "github:nixpak/nixpak"; inputs.nixpkgs.follows = "nixpkgs"; @@ -64,6 +68,7 @@ in { nixosConfigurations = { "battleship" = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; specialArgs = {inherit inputs self;}; modules = homeNixOSModules @@ -74,6 +79,7 @@ ]; }; "fighter" = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; specialArgs = {inherit inputs self;}; modules = homeNixOSModules @@ -94,7 +100,6 @@ inputs.xremap.homeManagerModules.default ./home/guz-lite ]; - pkgs = import nixpkgs {system = "x86_64-linux";}; }; "guz" = home-manager.lib.homeManagerConfiguration { extraSpecialArgs = {inherit inputs self;}; @@ -104,22 +109,12 @@ inputs.xremap.homeManagerModules.default ./home/guz ]; - pkgs = import nixpkgs {system = "x86_64-linux";}; }; }; homeManagerModules = { devenv = ./modules/home-manager/devenv.nix; - zen-browser = ./modules/home-manager/zen-browser.nix; eww = ./modules/home-manager/eww.nix; }; - - packages = forAllSystems (pkgs: { - zen-browser = pkgs.callPackage ./packages/zen-browser {}; - nixpak = import ./packages/nixpak { - inherit (pkgs) lib; - inherit pkgs inputs self; - }; - }); }; } diff --git a/home/guz-lite/apps.nix b/home/guz-lite/apps.nix index 52060ea..c9526da 100644 --- a/home/guz-lite/apps.nix +++ b/home/guz-lite/apps.nix @@ -1,12 +1,12 @@ -{ - pkgs, - self, - ... -}: { +{inputs, ...}: { + imports = [ + inputs.nix-flatpak.homeManagerModules.nix-flatpak + ]; + xdg.mimeApps.enable = true; xdg.mimeApps.defaultApplications = let - browser = "zen.desktop"; - email = "thunderbird.desktop"; + browser = "app.zen-browser.zen.desktop"; + email = "org.mozilla.Thunderbird.desktop"; in { "text/html" = browser; "x-scheme-handler/http" = browser; @@ -20,34 +20,31 @@ "text/x-vcard" = email; }; - # Zen Browser (Main browser) - programs.zen-browser.enable = true; - programs.zen-browser.package = self.packages.${pkgs.system}.nixpak.zen-browser; - - # Brave (Work browser) - programs.chromium.enable = true; - programs.chromium.package = pkgs.brave; - # programs.chromium.package = self.packages.${pkgs.system}.nixpak.brave; - # programs.chromium.extensions = let - # libredirect = builtins.fetchurl { - # url = "https://github.com/libredirect/browser_extension/releases/download/v3.1.0/libredirect-3.1.0.crx"; - # sha256 = "sha256:003q48gzyr282yk1l267myx4ba8dfb656lpxspx2gjhqmfdz9g8b"; - # }; - # in [ - programs.chromium.extensions = [ - {id = "eimadpbcbfnmbkopoojfekhnkhdbieeh";} # Dark Reader - {id = "oldceeleldhonbafppcapldpdifcinji";} # Language Tool - # { - # id = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; # TODO: Find correct id - # version = "3.1.0"; - # crxPath = libredirect; - # } # Libredirect - {id = "edibdbjcniadpccecjdfdjjppcpchdlm";} # I still don't care about cookies - {id = "dphilobhebphkdjbpfohgikllaljmgbn";} # SimpleLogin - {id = "cbghhgpcnddeihccjmnadmkaejncjndb";} # Vencord + services.flatpak.enable = true; + services.flatpak.packages = [ + # Thunder Bird (Email Client) + "org.mozilla.Thunderbird" + # Brave (Work Browser) + "com.brave.Browser" + # Zen (Main Browser) + "app.zen_browser.zen" ]; - - # Thunderbird (Email client) - programs.thunderbird.enable = true; - programs.thunderbird.profiles = {}; + services.flatpak.update.onActivation = true; + services.flatpak.overrides = { + global = { + # Force wayland by default + Context = { + sockets = ["wayland" "!x11" "!fallback-x11"]; + filesystems = [ + # Access to user themes + "$HOME/.icons" + "$HOME/.themes" + ]; + }; + Environment = { + # Fix un-themed cursor in Wayland apps + XCURSOR_PATH = "$HOME/.icons"; + }; + }; + }; } diff --git a/home/guz-lite/configuration.nix b/home/guz-lite/configuration.nix index 1d0236b..0abfcf0 100644 --- a/home/guz-lite/configuration.nix +++ b/home/guz-lite/configuration.nix @@ -22,6 +22,8 @@ home-manager.extraSpecialArgs = {inherit inputs self;}; home-manager.users.guz = import ./default.nix; + services.flatpak.enable = true; + programs.zsh.enable = true; users.users."guz".shell = pkgs.zsh; diff --git a/home/guz-lite/default.nix b/home/guz-lite/default.nix index dde8c61..4358b99 100644 --- a/home/guz-lite/default.nix +++ b/home/guz-lite/default.nix @@ -4,7 +4,6 @@ imports = [ self.homeManagerModules.devenv - self.homeManagerModules.zen-browser ./apps.nix ./style.nix diff --git a/home/guz/apps.nix b/home/guz/apps.nix index 86e3827..5a50228 100644 --- a/home/guz/apps.nix +++ b/home/guz/apps.nix @@ -1,104 +1,13 @@ -{ - pkgs, - self, - ... -}: { - # Freetube (YouTube client) - programs.freetube.enable = true; - programs.freetube.settings = { - # General - - ## Check for Updates - checkForUpdates = false; - - ## Fallback to Non-Preferred Backend on Failure - backendFallback = true; - backendPreference = "invidious"; - - ## Load comments and additional pages - generalAutoLoadMorePaginatedItemsEnabled = true; - - ## Default Landing Page - landingPage = "subscriptions"; - - # Theme - baseTheme = "black"; - mainColor = "CatppuccinFrappeRed"; - secColor = "CatppuccinFrappeBlue"; - - hideHeaderLogo = true; - hideLabelsSideBar = true; - - # Player - proxyVideos = true; - playNextVide = false; - autoplayPlaylists = true; - autoplayVideos = true; - - defaultViewingMode = "theatre"; - defaultQuality = 1080; - - # Subscription - fetchSubscriptionsAutomatically = true; - useRssFeeds = true; - - # Distraction Free - hideTrendingVideos = true; - hidePopularVideos = true; - - # Privacy - rememberHistory = true; - rememberSearchHistory = true; - saveWatchedProgress = true; - saveVideoHistoryWithLastViewedPlayliist = true; - - # Sponsor block - useSponsorBlock = true; - sponsorBlockFiller = { - color = "CatppuccinFrappeMauve"; - skip = "showInSeekBar"; - }; - sponsorBlockInteraction = { - color = "CatppuccinFrappePink"; - skip = "showInSeekBar"; - }; - sponsorBlockIntro = { - color = "CatppuccinFrappeSky"; - skip = "showInSeekBar"; - }; - sponsorBlockMusicOffTopic = { - color = "CatppuccinFrappePeache"; - skip = "showInSeekBar"; - }; - sponsorBlockOutro = { - color = "CatppuccinFrappeBlue"; - skip = "showInSeekBar"; - }; - sponsorBlockRecap = { - color = "CatppuccinFrappeLavender"; - skip = "showInSeekBar"; - }; - sponsorBlockSelfPromo = { - color = "CatppuccinFrappeYellow"; - skip = "showInSeekBar"; - }; - sponsorBlockSponsor = { - color = "CatppuccinFrappeGreen"; - skip = "autoSkip"; - }; - - useDeArrowTitles = true; - useDeArrowThumbnails = true; - }; - - home.packages = - (with pkgs; [ - ]) - ++ (with self.packages.${pkgs.system}.nixpak; [ - # Vesktop/Vencord (Discord client) - vesktop - - # Bitwarden (Password manager) - bitwarden-desktop - ]); +{...}: { + services.flatpak.packages = [ + "com.bitwarden.desktop" + "io.freetubeapp.FreeTube" + "org.kde.krita" + "org.inkscape.Inkscape" + "md.obsidian.Obsidian" + "com.github.vikdevelop.photopea_app" + "com.rustdesk.RustDesk" + "com.valvesoftware.Steam" + "dev.vencord.Vesktop" + ]; } diff --git a/hosts/battleship/configuration.nix b/hosts/battleship/configuration.nix index e2a7dae..277d892 100644 --- a/hosts/battleship/configuration.nix +++ b/hosts/battleship/configuration.nix @@ -20,10 +20,11 @@ # Network networking = { hostName = lib.mkForce "battleship"; + #wireless.enable = lib.mkForce true; }; # Steam (cannot be [properly] installed just in one user) - programs.steam.enable = true; + #programs.steam.enable = true; programs.steam.gamescopeSession.enable = true; programs.steam.extraCompatPackages = with pkgs; [ proton-ge-bin diff --git a/modules/home-manager/zen-browser.nix b/modules/home-manager/zen-browser.nix deleted file mode 100644 index 535894e..0000000 --- a/modules/home-manager/zen-browser.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ - config, - lib, - pkgs, - self, - ... -}: let - cfg = config.programs.zen-browser; -in { - # This could be extended when https://github.com/NixOS/nixpkgs/issues/327982 is - # fixed. - # mkFirefoxModule (https://github.com/nix-community/home-manager/blob/f99c704fe3a4cf8d72b2d568ec80bc38be1a9407/modules/programs/firefox/mkFirefoxModule.nix) - # can be used to create a module that handles extensions just like firefox and librewolf - # modules. - options.programs.zen-browser = with lib; { - enable = mkEnableOption ""; - package = mkOption { - type = with types; package; - default = self.packages.${pkgs.system}.zen-browser; - }; - }; - config = lib.mkIf cfg.enable { - home.packages = [ - cfg.package - ]; - }; -} diff --git a/packages/nixpak/bitwarden-desktop.nix b/packages/nixpak/bitwarden-desktop.nix deleted file mode 100644 index 3ef6261..0000000 --- a/packages/nixpak/bitwarden-desktop.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ - mkNixPak, - pkgs, - ... -}: -mkNixPak { - config = {sloth, ...}: { - app.package = pkgs.bitwarden-desktop; - - imports = [ - ./modules/gui-base.nix - ]; - - dbus.policies = { - "org.kde.StatusNotifierWatcher" = "talk"; - "org.freedesktop.Notifications" = "talk"; - "org.freedesktop.secrets" = "talk"; - "com.canonical.AppMenu.Registrar" = "talk"; - # Lock on lockscreen - "org.gnome.ScreenSaver" = "talk"; - "org.freedesktop.ScreenSaver" = "talk"; - }; - - bubblewrap = { - network = true; - shareIpc = true; - - bind.rw = [ - (sloth.concat' sloth.xdgConfigHome "/Bitwarden") - ]; - }; - }; -} diff --git a/packages/nixpak/brave.nix b/packages/nixpak/brave.nix deleted file mode 100644 index 088fe40..0000000 --- a/packages/nixpak/brave.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ - mkNixPak, - pkgs, - ... -}: -mkNixPak { - config = {sloth, ...}: { - app.package = pkgs.brave; - - imports = [ - ./modules/gui-base.nix - ]; - - dbus.policies = { - "org.freedesktop.FileManager1" = "talk"; - "org.freedesktop.Notifications" = "talk"; - "org.freedesktop.ScreenSaver" = "talk"; - "org.freedesktop.secrets" = "talk"; - "org.kde.kwalletd5" = "talk"; - "org.kde.kwalletd6" = "talk"; - "org.gnome.SessionManager" = "talk"; - "org.gnome.ScreenSaver" = "talk"; - "org.gnome.Mutter.IdleMonitor.*" = "talk"; - "org.cinnamon.ScreenSaver" = "talk"; - "org.mate.ScreenSaver" = "talk"; - "org.xfce.ScreenSaver" = "talk"; - "org.mpris.MediaPlayer2.brave.*" = "own"; - }; - - bubblewrap = { - network = true; - shareIpc = true; - - bind.rw = [ - (sloth.concat' sloth.xdgConfigHome "/BraveSoftware") - (sloth.concat' sloth.xdgCacheHome "/BraveSoftware") - - "/etc/brave" - - (sloth.concat' sloth.homeDir "/Downloads") - ]; - }; - }; -} diff --git a/packages/nixpak/default.nix b/packages/nixpak/default.nix deleted file mode 100644 index 4d2ac3d..0000000 --- a/packages/nixpak/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ - inputs, - lib, - pkgs, - self, - ... -}: let - mkNixPak = inputs.nixpak.lib.nixpak { - inherit lib pkgs; - }; - - bitwarden-desktop = import ./bitwarden-desktop.nix {inherit lib mkNixPak pkgs self;}; - zen = import ./zen-browser.nix {inherit lib mkNixPak pkgs self;}; - # brave = import ./brave.nix {inherit lib mkNixPak pkgs self;}; - vesktop = import ./vesktop.nix {inherit lib mkNixPak pkgs self;}; -in { - bitwarden-desktop = bitwarden-desktop.config.script; - bitwarden-desktop-env = bitwarden-desktop.config.env; - - # Currently borked: "Filed to create a ProcessSingleton for your profile directory" - # brave = brave.config.script; - # brave-env = brave.config.env; - - vesktop = vesktop.config.script; - vesktop-env = vesktop.config.env; - - zen-browser = zen.config.script; - zen-browser-env = zen.config.env; -} diff --git a/packages/nixpak/modules/gui-base.nix b/packages/nixpak/modules/gui-base.nix deleted file mode 100644 index da5e43f..0000000 --- a/packages/nixpak/modules/gui-base.nix +++ /dev/null @@ -1,70 +0,0 @@ -{ - config, - lib, - pkgs, - sloth, - ... -}: { - config = with lib; { - dbus.policies = { - "${config.flatpak.appId}" = "own"; - "org.freedesktop.DBus" = mkDefault "talk"; - "org.gtk.vfs.*" = mkDefault "talk"; - "org.gtk.vfs" = mkDefault "talk"; - "ca.desrt.dconf" = mkDefault "talk"; - "org.freedesktop.portal" = mkDefault "talk"; - "org.a11y.Bus" = mkDefault "talk"; - }; - - gpu.enable = mkDefault true; - gpu.provider = mkDefault "bundle"; - - fonts.enable = mkDefault true; - - locale.enable = mkDefault true; - - bubblewrap = { - network = mkDefault false; - - sockets = { - wayland = mkDefault true; - pulse = mkDefault true; - }; - - bind.rw = [ - [sloth.appCacheDir sloth.xdgCacheHome] - (sloth.concat' sloth.xdgCacheHome "/fontconfig") - (sloth.concat' sloth.xdgCacheHome "/mesa_shader_cache") - - (sloth.concat' sloth.runtimeDir "/at-spi/bus") - (sloth.concat' sloth.runtimeDir "/gvfsd") - ]; - bind.ro = [ - (sloth.concat' sloth.runtimeDir "/doc") - - # Follow user theme - - ## Access to user theme config - (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 "/fontconfig") - - ## Access to user themes - (sloth.concat' sloth.homeDir "/.themes") - (sloth.concat' sloth.homeDir "/.icons") - ]; - - env = { - "XDG_DATA_DIRS" = makeSearchPath "share" (with pkgs; [ - adwaita-icon-theme - shared-mime-info - ]); - "XCURSOR_PATH" = concatStringsSep ":" (with pkgs; [ - "${adwaita-icon-theme}/share/icons" - "${adwaita-icon-theme}/share/pixmaps" - ]); - }; - }; - }; -} diff --git a/packages/nixpak/vesktop.nix b/packages/nixpak/vesktop.nix deleted file mode 100644 index f975b83..0000000 --- a/packages/nixpak/vesktop.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ - mkNixPak, - pkgs, - ... -}: -mkNixPak { - config = {sloth, ...}: { - app.package = pkgs.vesktop; - - imports = [ - ./modules/gui-base.nix - ]; - - dbus.policies = { - "org.kde.StatusNotifierWatcher" = "talk"; - "com.canonical.AppMenu.Registrar" = "talk"; - "org.freedesktop.Notifications" = "talk"; - }; - - bubblewrap = { - network = true; - shareIpc = true; - - sockets.pipewire = true; - sockets.pulse = false; - - bind.rw = [ - (sloth.concat' sloth.xdgConfigHome "/vesktop") - ]; - bind.ro = [ - (sloth.concat' sloth.homeDir "/Videos") - (sloth.concat' sloth.homeDir "/Pictures") - (sloth.concat' sloth.homeDir "/Downloads") - ]; - bind.dev = ["all"]; - }; - }; -} diff --git a/packages/nixpak/zen-browser.nix b/packages/nixpak/zen-browser.nix deleted file mode 100644 index 1175380..0000000 --- a/packages/nixpak/zen-browser.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ - mkNixPak, - pkgs, - self, - ... -}: -mkNixPak { - config = {sloth, ...}: { - app.package = self.packages.${pkgs.system}.zen-browser; - - imports = [ - ./modules/gui-base.nix - ]; - - dbus.policies = { - "org.freedesktop.FileManager1" = "talk"; - "org.freedesktop.ScreenSaver" = "talk"; - "org.gnome.ScreenSaver" = "talk"; - "org.mozilla.zen.*" = "own"; - "org.mpris.MediaPlayer2.firefox.*" = "own"; - }; - - bubblewrap = { - network = true; - shareIpc = true; - - bind.rw = [ - (sloth.concat' sloth.homeDir "/.zen") - (sloth.concat' sloth.xdgCacheHome "/zen") - - (sloth.concat' sloth.homeDir "/Downloads") - ]; - }; - }; -} diff --git a/packages/zen-browser/COPYRIGHT b/packages/zen-browser/COPYRIGHT deleted file mode 100644 index 42a3f96..0000000 --- a/packages/zen-browser/COPYRIGHT +++ /dev/null @@ -1,22 +0,0 @@ -The contents of this directory were copied from the repository https://github.com/0xc000022070/zen-browser-flake, -licensed under the MIT License. The full license text is provided bellow: - -Copyright (c) 2024 Luis QuiƱones - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/packages/zen-browser/default.nix b/packages/zen-browser/default.nix deleted file mode 100644 index 2045e94..0000000 --- a/packages/zen-browser/default.nix +++ /dev/null @@ -1,153 +0,0 @@ -{pkgs ? import , ...}: let - name = "beta"; - - variant = - { - beta.x86_64-linux = rec { - version = "1.7.4b"; - sha1 = "5259fa7cbd661f137c5a84d34e48882074a1a20e"; - url = "https://github.com/zen-browser/desktop/releases/download/${version}/zen.linux-x86_64.tar.bz2"; - sha256 = "sha256-hiGb2oyAueKa6Xs6BvtEmgPTRlOXvJ5YDseS8kZ1VbQ="; - }; - beta.aarch64-linux = rec { - version = "1.7.4b"; - sha1 = "5259fa7cbd661f137c5a84d34e48882074a1a20e"; - url = "https://github.com/zen-browser/desktop/releases/download/${version}/zen.linux-aarch64.tar.bz2"; - sha256 = "sha256-/fdgw97Ocg7AYGchHhXSWhFOS0bMb5GVAgZDw6/yh3I="; - }; - } - .${name} - .${pkgs.system}; - - runtimeLibs = with pkgs; - [ - libGL - libGLU - libevent - libffi - libjpeg - libpng - libstartup_notification - libvpx - libwebp - stdenv.cc.cc - fontconfig - libxkbcommon - zlib - freetype - gtk3 - libxml2 - dbus - xcb-util-cursor - alsa-lib - libpulseaudio - pango - atk - cairo - gdk-pixbuf - glib - udev - libva - mesa - libnotify - cups - pciutils - ffmpeg - libglvnd - pipewire - speechd - ] - ++ (with pkgs.xorg; [ - libxcb - libX11 - libXcursor - libXrandr - libXi - libXext - libXcomposite - libXdamage - libXfixes - libXScrnSaver - ]); - - policiesJson = pkgs.writeText "firefox-policies.json" (builtins.toJSON { - # https://mozilla.github.io/policy-templates/#disableappupdates - policies = { - DisableAppUpdate = true; - }; - }); - - desktopFile = - if name == "beta" - then "zen.desktop" - else "zen_${name}.desktop"; -in - pkgs.stdenv.mkDerivation { - inherit (variant) version; - - pname = "zen-browser"; - - src = builtins.fetchTarball {inherit (variant) url sha256;}; - desktopSrc = ./.; - - phases = ["installPhase" "fixupPhase"]; - - nativeBuildInputs = with pkgs; [makeWrapper copyDesktopItems wrapGAppsHook]; - - installPhase = '' - mkdir -p $out/{bin,opt/zen,lib/zen-${variant.version}/distribution} && cp -r $src/* $out/opt/zen - ln -s $out/opt/zen/zen $out/bin/zen - ln -s ${policiesJson} "$out/lib/zen-${variant.version}/distribution/policies.json" - ln -s $out/bin/zen $out/bin/zen-${name} - - install -D $desktopSrc/zen-${name}.desktop $out/share/applications/${desktopFile} - - install -D $src/browser/chrome/icons/default/default16.png $out/share/icons/hicolor/16x16/apps/zen-${name}.png - install -D $src/browser/chrome/icons/default/default32.png $out/share/icons/hicolor/32x32/apps/zen-${name}.png - install -D $src/browser/chrome/icons/default/default48.png $out/share/icons/hicolor/48x48/apps/zen-${name}.png - install -D $src/browser/chrome/icons/default/default64.png $out/share/icons/hicolor/64x64/apps/zen-${name}.png - install -D $src/browser/chrome/icons/default/default128.png $out/share/icons/hicolor/128x128/apps/zen-${name}.png - ''; - - fixupPhase = '' - chmod 755 $out/bin/zen $out/opt/zen/* - - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zen/zen - wrapProgram $out/opt/zen/zen --set LD_LIBRARY_PATH "${ - pkgs.lib.makeLibraryPath runtimeLibs - }" \ - --set MOZ_LEGACY_PROFILES 1 --set MOZ_ALLOW_DOWNGRADE 1 --set MOZ_APP_LAUNCHER zen --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" - - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zen/zen-bin - wrapProgram $out/opt/zen/zen-bin --set LD_LIBRARY_PATH "${ - pkgs.lib.makeLibraryPath runtimeLibs - }" \ - --set MOZ_LEGACY_PROFILES 1 --set MOZ_ALLOW_DOWNGRADE 1 --set MOZ_APP_LAUNCHER zen --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" - - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zen/glxtest - wrapProgram $out/opt/zen/glxtest --set LD_LIBRARY_PATH "${ - pkgs.lib.makeLibraryPath runtimeLibs - }" - - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zen/updater - wrapProgram $out/opt/zen/updater --set LD_LIBRARY_PATH "${ - pkgs.lib.makeLibraryPath runtimeLibs - }" - - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zen/vaapitest - wrapProgram $out/opt/zen/vaapitest --set LD_LIBRARY_PATH "${ - pkgs.lib.makeLibraryPath runtimeLibs - }" - ''; - - meta = { - inherit desktopFile; - - description = "Experience tranquillity while browsing the web without people tracking you!"; - homepage = "https://zen-browser.app"; - downloadPage = "https://zen-browser.app/download/"; - changelog = "https://github.com/zen-browser/desktop/releases"; - platforms = pkgs.lib.platforms.linux; - mainProgram = "zen"; - }; - } diff --git a/packages/zen-browser/zen-beta.desktop b/packages/zen-browser/zen-beta.desktop deleted file mode 100644 index a44e8f3..0000000 --- a/packages/zen-browser/zen-beta.desktop +++ /dev/null @@ -1,25 +0,0 @@ -[Desktop Entry] -Name=Zen Browser -Exec=zen-beta %u -Icon=zen-beta -Type=Application -MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json; -StartupWMClass=zen-beta -Categories=Network;WebBrowser; -StartupNotify=true -Terminal=false -X-MultipleArgs=false -Keywords=Internet;WWW;Browser;Web;Explorer; -Actions=new-window;new-private-window;profilemanager; - -[Desktop Action new-window] -Name=Open a New Window -Exec=zen-beta %u - -[Desktop Action new-private-window] -Name=Open a New Private Window -Exec=zen-beta --private-window %u - -[Desktop Action profilemanager] -Name=Open the Profile Manager -Exec=zen-beta --ProfileManager %u