nichts/nyx/homes/notashelf/programs/graphical/apps/chromium/default.nix
2024-04-09 23:11:33 +02:00

88 lines
2.6 KiB
Nix

{
lib,
pkgs,
osConfig,
...
}: let
inherit (lib) mkIf optionals concatStringsSep;
inherit (osConfig) modules;
env = modules.usrEnv;
sys = modules.system;
prg = sys.programs;
in {
config = mkIf prg.chromium.enable {
programs.chromium = {
enable = true;
extensions = [
{id = "mnjggcdmjocbbbhaepdhchncahnbgone";} # sponsor block
{id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";} # ublock
{id = "nngceckbapebfimnlniiiahkandclblb";} # bitwarden
{id = "iaiomicjabeggjcfkbimgmglanimpnae";} # tab manager
];
package = pkgs.ungoogled-chromium.override {
nss = pkgs.nss_latest;
commandLineArgs =
[
# Ungoogled features
"--disable-search-engine-collection"
"--extension-mime-request-handling=always-prompt-for-install"
"--fingerprinting-canvas-image-data-noise"
"--fingerprinting-canvas-measuretext-noise"
"--fingerprinting-client-rects-noise"
"--popups-to-tabs"
"--show-avatar-button=incognito-and-guest"
# Experimental features
"--enable-features=${
concatStringsSep "," [
"BackForwardCache:enable_same_site/true"
"CopyLinkToText"
"OverlayScrollbar"
"TabHoverCardImages"
"VaapiVideoDecoder"
]
}"
# Aesthetics
"--force-dark-mode"
# Performance
"--enable-gpu-rasterization"
"--enable-oop-rasterization"
"--enable-zero-copy"
"--ignore-gpu-blocklist"
# Etc
# "--gtk-version=4"
"--disk-cache=$XDG_RUNTIME_DIR/chromium-cache"
"--no-default-browser-check"
"--no-service-autorun"
"--disable-features=PreloadMediaEngagementData,MediaEngagementBypassAutoplayPolicies"
"--disable-reading-from-canvas"
"--no-pings"
"--no-first-run"
"--no-experiments"
"--no-crash-upload"
"--disable-wake-on-wifi"
"--disable-breakpad"
"--disable-sync"
"--disable-speech-api"
"--disable-speech-synthesis-api"
]
++ optionals env.isWayland [
# Wayland
# Disabled because hardware acceleration doesn't work
# when disabling --use-gl=egl, it's not gonna show any emoji
# and it's gonna be slow as hell
# "--use-gl=egl"
"--ozone-platform=wayland"
"--enable-features=UseOzonePlatform"
];
};
};
};
}