{
config,
pkgs,
lib,
...
}: let
inherit (pkgs.stdenv.hostPlatform) isLinux;
in {
home.sessionVariables = lib.mkIf config.programs.firefox.enable {
BROSWER = "firefox";
};
programs.firefox = {
package = lib.mkDefault (pkgs.firefox-wayland.override {
cfg.enableGnomeExtensions = lib.mkDefault isLinux;
});
profiles.me = {
name = "me";
settings =
if isLinux
then {
# https://wiki.archlinux.org/title/Firefox#Hardware_video_acceleration
"media.ffmpeg.vaapi.enabled" = true;
"media.ffvpx.enabled" = false;
"media.rdd-vpx.enabled" = false;
"media.navigator.mediadatadecoder_vpx_enabled" = true;
"security.sandbox.content.level" = 0;
}
else
{}
// {
# allows firefox to see userChrome.css etc
# NOTE: I always still have to _manually_ toggle this one once :(
# by going to about:config, copy-pasting this, then toggling it to true
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
"browser.startup.homepage" = "https://kagi.com";
"browser.search.region" = "US";
"browser.search.isUS" = true;
"browser.bookmarks.showMobileBookmarks" = true;
"browser.toolbars.bookmarks.visibility" = "never";
};
userContent = ''
/* Hide scrollbar */
*{scrollbar-width: none !important}
'';
userChrome = ''
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
/* hides firefox's default tab bar */
#tabbrowser-tabs {
visibility: collapse !important;
}
/* makes the treestyle tab view look cleaner */
#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] #sidebar-header {
display: none;
}
'';
};
};
# this makes it so firefox uses wayland instead of xwayland
wayland.windowManager.sway = lib.mkIf config.wayland.windowManager.sway.enable {
extraSessionCommands = ''
export MOZ_ENABLE_WAYLAND=1
export MOZ_DBUS_REMOTE=1
export MOX_DISABLE_RDD_SANDBOX=1
'';
};
}