.files/nix/homeModules/common/zen-browser.nix

64 lines
1.8 KiB
Nix

{
config,
lib,
...
}:
let
cfg = config.programs.zen-browser;
firefoxCfg = config.programs.firefox;
in
{
programs.zen-browser = {
policies = firefoxCfg.policies;
# "locked" semantic from zen (doesn't seem to be doing anything, attempted for zen-twilight 1.18t)
# https://github.com/0xc000022070/zen-browser-flake/tree/main#preferences
#
# To check which option is mapped to which about:config
# - back preference file
# cp .zen/default/prefs.js{,.bk}
# - click the buttons
# - diff it
# diff .zen/default/prefs.js{.bk,}
profiles.default = lib.mkMerge [
firefoxCfg.profiles.default
{
# Zen specific
settings = {
"zen.theme.content-element-separation" = 0; # Remove "borders" around window
"zen.tabs.show-newtab-vertical" = false;
"zen.view.compact.toolbar-flash-popup" = true;
"zen.view.show-newtab-button-top" = false;
"zen.view.use-single-toolbar" = false;
"zen.tabs.ctrl-tab.ignore-pending-tabs" = true; # ctrl-tab ignore unloaded tabs
};
}
];
};
xdg.mimeApps =
let
associations = lib.genAttrs [
"application/x-extension-shtml"
"application/x-extension-xhtml"
"application/x-extension-html"
"application/x-extension-xht"
"application/x-extension-htm"
# "x-scheme-handler/unknown"
# "x-scheme-handler/mailto"
"x-scheme-handler/chrome"
"x-scheme-handler/about"
"x-scheme-handler/https"
"x-scheme-handler/http"
"application/xhtml+xml"
# "application/json"
# "text/plain"
"text/html"
] (_: cfg.package.meta.desktopFileName);
in
lib.mkIf cfg.enable {
associations.added = associations;
defaultApplications = associations;
};
}