Commit c0b1d6d
Changed files (4)
modules
desktop
apps
browser
desktop-environment
discrete
wm
niri
modules/desktop/apps/browser/firefox.nix → modules/desktop/apps/browser/_firefox.nix
File renamed without changes
modules/desktop/apps/browser/floorp.nix
@@ -0,0 +1,220 @@
+{lib, ...}: {
+ flake.modules.homeManager.desktop = {
+ pkgs,
+ osConfig,
+ ...
+ }: {
+ stylix.targets.floorp = {
+ profileNames = ["default"];
+ colorTheme.enable = true;
+ };
+
+ programs.floorp = let
+ isPlasma =
+ pkgs.stdenv.hostPlatform.isLinux
+ && osConfig.services.desktopManager.plasma6.enable;
+ in {
+ enable = true;
+ package = pkgs.floorp-bin;
+ languagePacks = ["zh-CN" "en-US"];
+ nativeMessagingHosts = lib.mkIf isPlasma (with pkgs; [
+ kdePackages.plasma-browser-integration
+ ]);
+
+ policies = {
+ DisableAppUpdate = true;
+ DisablePocket = true;
+ DisableSetDesktopBackground = true;
+ DisableTelemetry = true;
+ DontCheckDefaultBrowser = true;
+ ExtensionUpdate = false;
+ NoDefaultBookmarks = true;
+ OfferToSaveLogins = false;
+ PasswordManagerEnabled = false;
+ };
+
+ profiles.default = {
+ id = 0;
+ isDefault = true;
+
+ search = {
+ force = true;
+ default = "bing";
+ privateDefault = "duckduckgo";
+ order = [
+ "bing"
+ "google"
+ "duckduckgo"
+ ];
+ engines = {
+ baidu.metaData.hidden = true;
+ startpage.metaData.hidden = true;
+ "you.com".metaData.hidden = true;
+ };
+ };
+
+ extensions.force = true;
+ extensions.packages =
+ (with pkgs.nur.repos.rycee.firefox-addons; [
+ ublock-origin
+ bitwarden
+ tampermonkey
+ aria2-integration
+ ])
+ ++ (lib.optional isPlasma pkgs.nur.repos.rycee.firefox-addons.plasma-integration);
+
+ settings = {
+ # == General ==
+ "browser.startup.page" = 3; # Open prev session pages
+ "browser.tabs.unloadOnLowMemory" = true;
+ "widget.use-xdg-desktop-portal.file-picker" = 1;
+ # No first run
+ "app.normandy.first_run" = false;
+ "doh-rollout.doneFirstRun" = true;
+ "toolkit.telemetry.reportingpolicy.firstRun" = false;
+ "trailhead.firstrun.didSeeAboutWelcome" = true;
+ "browser.toolbarbuttons.introduced.sidebar-button" = true;
+ "sidebar.old-sidebar.has-used" = true;
+ "sidebar.new-sidebar.has-used" = true;
+ "floorp.browser.welcome.page.shown" = true;
+ # Language
+ "general.useragent.locale" = "zh-CN";
+ "intl.locale.requested" = "zh-CN,en-US";
+ "browser.translations.mostRecentTargetLanguages" = "zh-Hans";
+ # No ads
+ "browser.urlbar.suggest.topsites" = false;
+ "browser.urlbar.suggest.trending" = false;
+ "browser.newtabpage.pinned" = [];
+ "browser.newtabpage.activity-stream.showSponsored" = false;
+ "browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
+ # == Telemetry ==
+ "toolkit.telemetry.unified" = false;
+ "toolkit.telemetry.enabled" = false;
+ "toolkit.telemetry.server" = "data:,";
+ "toolkit.telemetry.archive.enabled" = false;
+ "toolkit.telemetry.newProfilePing.enabled" = false;
+ "toolkit.telemetry.shutdownPingSender.enabled" = false;
+ "toolkit.telemetry.updatePing.enabled" = false;
+ "toolkit.telemetry.bhrPing.enabled" = false;
+ "toolkit.telemetry.firstShutdownPing.enabled" = false;
+ "toolkit.telemetry.shutdownPingSender.enabledFirstsession" = false;
+ "browser.ping-centre.telemetry" = false;
+ "browser.newtabpage.activity-stream.feeds.telemetry" = false;
+ "browser.newtabpage.activity-stream.telemetry" = false;
+ # == Apperance ==
+ "browser.newtabpage.activity-stream.feeds.topsites" = false;
+ "browser.newtabpage.activity-stream.default.sites" = "";
+ "browser.toolbars.bookmarks.visibility" = "always";
+ "sidebar.verticalTabs" = true;
+ "sidebar.main.tools" = "syncedtabs";
+ "sidebar.visibility" = "expand-on-hover";
+ # Floorp's new tab page
+ "floorp.newtab.configs" = {
+ "components" = {
+ "topSites" = false;
+ "clock" = false;
+ "searchBar" = true;
+ "firefoxLayout" = true;
+ };
+ "background" = let
+ image = osConfig.stylix.image;
+ processed-image = pkgs.runCommand "dimmed-wallpaper" {} ''
+ ${lib.getExe' pkgs.imagemagick "convert"} "${image}" -blur 0x8 -modulate 80,60,100 -fill "gray(20%)" -colorize 20% $out
+ '';
+ in {
+ "type" = "custom";
+ "customImage" = "file://${processed-image}";
+ "fileName" = builtins.baseNameOf processed-image;
+ };
+ "searchBar" = {"searchEngine" = "default";};
+ "topSites" = {
+ "pinned" = [];
+ "blocked" = [];
+ };
+ };
+ # panelSideBar
+ "floorp.panelSidebar.enabled" = true;
+ "floorp.panelSidebar.config" = {
+ "autoUnload" = false;
+ "position_start" = true;
+ "globalWidth" = 400;
+ "displayed" = true;
+ "webExtensionRunningEnabled" = false;
+ };
+ "floorp.panelSidebar.data"."data" = [
+ {
+ "id" = "default-panel-bookmarks";
+ "url" = "floorp//bookmarks";
+ "width" = 0; # Needed
+ "type" = "static";
+ }
+ {
+ "id" = "default-panel-history";
+ "url" = "floorp//history";
+ "width" = 0;
+ "type" = "static";
+ }
+ {
+ "id" = "default-panel-downloads";
+ "url" = "floorp//downloads";
+ "width" = 0;
+ "type" = "static";
+ }
+ {
+ "id" = "default-panel-translate-google-com";
+ "url" = "https://translate.google.com";
+ "width" = 0;
+ "userContextId" = 0;
+ "zoomLevel" = null;
+ "type" = "web";
+ }
+ ];
+ # Workspace
+ "floorp.workspaces.enabled" = true;
+ "floorp.workspaces.v4.config" = {
+ "manageOnBms" = true;
+ "showWorkspaceNameOnToolbar" = true;
+ };
+ # Top toolbar
+ "browser.uiCustomization.state" = {
+ "placements" = {
+ "widget-overflow-fixed-list" = [];
+ "unified-extensions-area" =
+ [
+ "firefox_tampermonkey_net-browser-action" # Tampermonkey
+ "_e2488817-3d73-4013-850d-b66c5e42d505_-browser-action" # Aria2 Integration
+ "ublock0_raymondhill_net-browser-action" # uBlock Origin
+ "firefoxcolor_mozilla_com-browser-action" # Firefox Color
+ "plasma-browser-integration_kde_org-browser-action" # Plasma Integration
+ ]
+ # Plasma Integration
+ ++ (lib.optional isPlasma "plasma-browser-integration_kde_org-browser-action");
+ "nav-bar" = [
+ "sidebar-button"
+ "back-button"
+ "forward-button"
+ "stop-reload-button"
+ "vertical-spacer"
+ "urlbar-container"
+ "_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action" # Bitwarden
+ "unified-extensions-button"
+ "fxa-toolbar-menu-button"
+ ];
+ "toolbar-menubar" = ["menubar-items"];
+ "TabsToolbar" = [];
+ "vertical-tabs" = ["tabbrowser-tabs"];
+ "PersonalToolbar" = ["personal-bookmarks"];
+ "nora-statusbar" = [
+ "screenshot-button"
+ "fullscreen-button"
+ "status-text"
+ ];
+ };
+ "seen" = ["developer-button"];
+ "dirtyAreaCache" = [];
+ };
+ };
+ };
+ };
+ };
+}
modules/desktop/apps/browser/xdg.nix
@@ -1,7 +1,7 @@
{
flake.modules.homeManager.desktop = _: {
xdg.mimeApps.defaultApplications = let
- browser = ["firefox.desktop"];
+ browser = ["floorp.desktop"];
in {
"application/json" = browser;
modules/desktop/desktop-environment/discrete/wm/niri/window-rules.nix
@@ -17,6 +17,7 @@
{app-id = "dev.zed.Zed";}
{app-id = "firefox";}
+ {app-id = "floorp";}
# {app-id = "chromium-browser";} # Not maximizing Chromium because I usually use it for web apps
{app-id = "thunderbird";}
@@ -50,6 +51,7 @@
matches = [
{app-id = "firefox";}
{app-id = "chromium-browser";}
+ {app-id = "floorp";}
{app-id = "metacubexd";}
];
open-on-workspace = "2network";