feat(firefox): set i18n settings
This commit is contained in:
parent
3918ea6548
commit
25bc0fbf3a
|
@ -4,7 +4,8 @@ with lib;
|
||||||
let
|
let
|
||||||
firefox-addons = pkgs.nur.repos.rycee.firefox-addons;
|
firefox-addons = pkgs.nur.repos.rycee.firefox-addons;
|
||||||
|
|
||||||
prefer-dark-theme = config.gtk.gtk3.extraConfig.gtk-application-prefer-dark-theme;
|
prefer-dark-theme =
|
||||||
|
config.gtk.gtk3.extraConfig.gtk-application-prefer-dark-theme;
|
||||||
|
|
||||||
sharedSettings = {
|
sharedSettings = {
|
||||||
# Privacy recommendations from https://www.privacytools.io/browsers/#about_config
|
# Privacy recommendations from https://www.privacytools.io/browsers/#about_config
|
||||||
|
@ -29,14 +30,16 @@ let
|
||||||
|
|
||||||
# Theme
|
# Theme
|
||||||
"ui.systemUsesDarkTheme" = prefer-dark-theme;
|
"ui.systemUsesDarkTheme" = prefer-dark-theme;
|
||||||
"extensions.activeThemeID" = concatStrings
|
"extensions.activeThemeID" = concatStrings [
|
||||||
[ "firefox-compact-"
|
"firefox-compact-"
|
||||||
(if prefer-dark-theme then "dark" else "light")
|
(if prefer-dark-theme then "dark" else "light")
|
||||||
"@mozilla.org"
|
"@mozilla.org"
|
||||||
];
|
];
|
||||||
"devtools.theme" = if prefer-dark-theme
|
"devtools.theme" = if prefer-dark-theme then "dark" else "light";
|
||||||
then "dark"
|
|
||||||
else "light";
|
# i18n
|
||||||
|
"intl.accept_languages" = "en-GB, en";
|
||||||
|
"intl.regional_prefs.use_os_locales" = true;
|
||||||
|
|
||||||
# Other
|
# Other
|
||||||
"browser.startup.page" = 3;
|
"browser.startup.page" = 3;
|
||||||
|
@ -46,18 +49,14 @@ let
|
||||||
"signon.rememberSignons" = false;
|
"signon.rememberSignons" = false;
|
||||||
"services.sync.engine.passwords" = false;
|
"services.sync.engine.passwords" = false;
|
||||||
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false;
|
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false;
|
||||||
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false;
|
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" =
|
||||||
|
false;
|
||||||
"browser.newtabpage.activity-stream.feeds.snippets" = false;
|
"browser.newtabpage.activity-stream.feeds.snippets" = false;
|
||||||
};
|
};
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.firefox.override {
|
package = pkgs.firefox.override { cfg = { enableFXCastBridge = true; }; };
|
||||||
cfg = {
|
|
||||||
enableFXCastBridge = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
profiles = {
|
profiles = {
|
||||||
private = {
|
private = {
|
||||||
id = 0;
|
id = 0;
|
||||||
|
@ -86,14 +85,17 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = let
|
home.packages = let
|
||||||
escapeDesktopArg = arg: replaceStrings ["\""] ["\"\\\"\""] (toString arg);
|
escapeDesktopArg = arg:
|
||||||
|
replaceStrings [ ''"'' ] [ ''"\""'' ] (toString arg);
|
||||||
makeFirefoxProfileDesktopItem = attrs:
|
makeFirefoxProfileDesktopItem = attrs:
|
||||||
let
|
let
|
||||||
mkExec = with lib; { name, profile, ... }: ''
|
mkExec = with lib;
|
||||||
firefox -p "${ escapeDesktopArg profile }" --class="firefox-${ escapeDesktopArg name }"
|
{ name, profile, ... }: ''
|
||||||
|
firefox -p "${escapeDesktopArg profile}" --class="firefox-${
|
||||||
|
escapeDesktopArg name
|
||||||
|
}"
|
||||||
'';
|
'';
|
||||||
in
|
in pkgs.makeDesktopItem ((removeAttrs attrs [ "profile" ]) // {
|
||||||
pkgs.makeDesktopItem ((removeAttrs attrs [ "profile" ]) // {
|
|
||||||
exec = mkExec attrs;
|
exec = mkExec attrs;
|
||||||
extraEntries = ''
|
extraEntries = ''
|
||||||
StartupWMClass="${escapeDesktopArg attrs.name}"
|
StartupWMClass="${escapeDesktopArg attrs.name}"
|
||||||
|
@ -102,21 +104,20 @@ in
|
||||||
makeFirefoxWebAppDesktopItem = attrs:
|
makeFirefoxWebAppDesktopItem = attrs:
|
||||||
let
|
let
|
||||||
# --class not yet respected: https://bugzilla.mozilla.org/show_bug.cgi?id=1606247
|
# --class not yet respected: https://bugzilla.mozilla.org/show_bug.cgi?id=1606247
|
||||||
mkExec = with lib; { app, name, profile ? "private", ... }: ''
|
mkExec = with lib;
|
||||||
firefox -p "${ escapeDesktopArg profile }" --ssb="${ escapeDesktopArg app }" --class="${ escapeDesktopArg name }"
|
{ app, name, profile ? "private", ... }: ''
|
||||||
|
firefox -p "${escapeDesktopArg profile}" --ssb="${
|
||||||
|
escapeDesktopArg app
|
||||||
|
}" --class="${escapeDesktopArg name}"
|
||||||
'';
|
'';
|
||||||
in
|
in pkgs.makeDesktopItem ((removeAttrs attrs [ "app" "profile" ]) // {
|
||||||
pkgs.makeDesktopItem ((removeAttrs attrs [ "app" "profile" ]) // {
|
|
||||||
exec = mkExec attrs;
|
exec = mkExec attrs;
|
||||||
extraEntries = ''
|
extraEntries = ''
|
||||||
StartupWMClass="${escapeDesktopArg attrs.name}"
|
StartupWMClass="${escapeDesktopArg attrs.name}"
|
||||||
'';
|
'';
|
||||||
});
|
});
|
||||||
in
|
in (with pkgs;
|
||||||
(with pkgs; [
|
[ (tor-browser-bundle-bin.override { pulseaudioSupport = true; }) ]) ++ [
|
||||||
(tor-browser-bundle-bin.override { pulseaudioSupport = true; })
|
|
||||||
])
|
|
||||||
++ [
|
|
||||||
(makeFirefoxProfileDesktopItem {
|
(makeFirefoxProfileDesktopItem {
|
||||||
name = "firefox-work";
|
name = "firefox-work";
|
||||||
desktopName = "Firefox (Work)";
|
desktopName = "Firefox (Work)";
|
||||||
|
|
Loading…
Reference in a new issue