refactor: use nix-flatpak instead of nixpak
I went to close into the sun, again
This commit is contained in:
17
flake.lock
generated
17
flake.lock
generated
@@ -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",
|
||||
|
||||
17
flake.nix
17
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;
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
|
||||
imports = [
|
||||
self.homeManagerModules.devenv
|
||||
self.homeManagerModules.zen-browser
|
||||
|
||||
./apps.nix
|
||||
./style.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"
|
||||
];
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -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")
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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")
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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"
|
||||
]);
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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"];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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")
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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 <luis@quinones.pro>
|
||||
|
||||
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.
|
||||
@@ -1,153 +0,0 @@
|
||||
{pkgs ? import <nixpkgs>, ...}: 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";
|
||||
};
|
||||
}
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user