2022-04-27 00:21:19 +02:00
|
|
|
{ pkgs
|
|
|
|
, config
|
|
|
|
, lib
|
|
|
|
, ...
|
2022-03-01 22:19:03 +01:00
|
|
|
}:
|
|
|
|
with lib; let
|
2021-11-17 16:32:18 +01:00
|
|
|
cfg = config.eboskma.programs.firefox;
|
|
|
|
|
|
|
|
profileSettings = {
|
|
|
|
"devtools.theme" = "dark";
|
|
|
|
"widget.content.allow-gtk-dark-theme" = true;
|
|
|
|
"ui.key.menuAccessKeyFocuses" = false;
|
2021-11-22 08:04:54 +01:00
|
|
|
"image.avif.enabled" = true;
|
|
|
|
"image.webp.enabled" = true;
|
2021-11-17 16:32:18 +01:00
|
|
|
"privacy.webrtc.allowSilencingNotifications" = true;
|
|
|
|
"privacy.webrtc.legacyGlobalIndicator" = false;
|
2021-11-21 19:07:12 +01:00
|
|
|
"browser.shell.checkDefaultBrowser" = false;
|
2021-12-18 16:23:14 +01:00
|
|
|
"security.tls.enable_0rtt_data" = false;
|
|
|
|
"media.ffmpeg.vaapi.enabled" = true;
|
|
|
|
"media.rdd-ffmpeg.enabled" = true;
|
2022-05-19 21:41:49 +02:00
|
|
|
"gfx.webrender.all" = true;
|
2023-07-10 14:55:16 +02:00
|
|
|
"extensions.quarantinedDomains.enabled" = false;
|
2021-11-17 16:32:18 +01:00
|
|
|
};
|
2021-11-22 18:56:59 +01:00
|
|
|
|
|
|
|
nonDefaultDesktop = pkgs.makeDesktopItem {
|
2022-03-01 22:19:03 +01:00
|
|
|
name =
|
|
|
|
"firefox-"
|
2022-03-18 21:14:51 +01:00
|
|
|
+ (
|
|
|
|
if cfg.work
|
|
|
|
then "private"
|
|
|
|
else "horus"
|
|
|
|
);
|
2022-03-01 22:19:03 +01:00
|
|
|
desktopName =
|
|
|
|
"Firefox ("
|
2022-03-18 21:14:51 +01:00
|
|
|
+ (
|
|
|
|
if cfg.work
|
|
|
|
then "Private"
|
|
|
|
else "Horus"
|
|
|
|
)
|
2022-03-01 22:19:03 +01:00
|
|
|
+ ")";
|
|
|
|
exec =
|
|
|
|
"firefox -P "
|
2022-03-18 21:14:51 +01:00
|
|
|
+ (
|
|
|
|
if cfg.work
|
|
|
|
then "private"
|
|
|
|
else "horus"
|
|
|
|
)
|
2022-03-01 22:19:03 +01:00
|
|
|
+ " %u";
|
2021-11-22 18:56:59 +01:00
|
|
|
icon = "firefox";
|
2022-04-27 00:21:19 +02:00
|
|
|
categories = [ "GNOME" "GTK" "Network" "WebBrowser" ];
|
2022-03-09 11:11:24 +01:00
|
|
|
mimeTypes = [
|
|
|
|
"text/html"
|
|
|
|
"text/xml"
|
|
|
|
"application/xhtml+xml"
|
|
|
|
"application/xml"
|
|
|
|
"application/rss+xml"
|
|
|
|
"application/rdf+xml"
|
|
|
|
"image/gif"
|
|
|
|
"image/jpeg"
|
|
|
|
"image/png"
|
|
|
|
"x-scheme-handler/http"
|
|
|
|
"x-scheme-handler/https"
|
|
|
|
"x-scheme-handler/ftp"
|
|
|
|
"x-scheme-handler/chrome"
|
|
|
|
"video/webm"
|
|
|
|
"application/x-xpinstall"
|
|
|
|
];
|
|
|
|
startupNotify = true;
|
|
|
|
extraConfig = {
|
2021-11-22 18:56:59 +01:00
|
|
|
"X-MultipleArgs" = "false";
|
|
|
|
};
|
|
|
|
};
|
2022-04-27 00:21:19 +02:00
|
|
|
in
|
|
|
|
{
|
2021-11-17 16:32:18 +01:00
|
|
|
options.eboskma.programs.firefox = {
|
|
|
|
enable = mkEnableOption "enable firefox";
|
|
|
|
work = mkOption {
|
|
|
|
description = "whether this is a work config";
|
|
|
|
type = types.bool;
|
|
|
|
default = false;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2022-05-03 18:17:38 +02:00
|
|
|
config = mkIf cfg.enable {
|
2021-11-17 16:32:18 +01:00
|
|
|
programs.firefox = {
|
|
|
|
enable = true;
|
2023-09-21 23:26:46 +02:00
|
|
|
package = pkgs.firefox.override {
|
|
|
|
cfg = {
|
|
|
|
enableGnomeExtensions = true;
|
|
|
|
enableSpeechSynthesisSupport = true;
|
|
|
|
};
|
|
|
|
};
|
2021-11-17 16:32:18 +01:00
|
|
|
|
|
|
|
profiles = {
|
|
|
|
private = {
|
|
|
|
id = 0;
|
|
|
|
isDefault = !cfg.work;
|
|
|
|
settings = profileSettings;
|
|
|
|
};
|
|
|
|
|
|
|
|
horus = {
|
|
|
|
id = 1;
|
|
|
|
isDefault = cfg.work;
|
|
|
|
settings = profileSettings;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2021-11-22 18:56:59 +01:00
|
|
|
|
2022-04-27 00:21:19 +02:00
|
|
|
home.packages = [ nonDefaultDesktop ];
|
2021-11-17 16:32:18 +01:00
|
|
|
};
|
|
|
|
}
|