diff --git a/hosts/atlas/default.nix b/hosts/atlas/default.nix index 50d4234..4e2d004 100644 --- a/hosts/atlas/default.nix +++ b/hosts/atlas/default.nix @@ -23,7 +23,6 @@ modules = { programs = { - firefox.enable = true; graphics = { raster.enable = true; vector.enable = true; diff --git a/hosts/eos/default.nix b/hosts/eos/default.nix index c996b3b..9c4eb83 100644 --- a/hosts/eos/default.nix +++ b/hosts/eos/default.nix @@ -26,7 +26,6 @@ modules = { programs = { - firefox.enable = true; qbittorrent.enable = true; }; }; diff --git a/hosts/helios/default.nix b/hosts/helios/default.nix index 8dea797..25974d1 100644 --- a/hosts/helios/default.nix +++ b/hosts/helios/default.nix @@ -27,7 +27,6 @@ modules = { programs = { - firefox.enable = true; qbittorrent.enable = true; }; services = { diff --git a/hosts/hypnos/default.nix b/hosts/hypnos/default.nix index 2a2917f..3dc5990 100644 --- a/hosts/hypnos/default.nix +++ b/hosts/hypnos/default.nix @@ -50,7 +50,6 @@ modules = { programs = { - firefox.enable = true; recording = { audio.enable = true; }; diff --git a/hosts/odyssey/default.nix b/hosts/odyssey/default.nix index 2baa896..f79eec6 100644 --- a/hosts/odyssey/default.nix +++ b/hosts/odyssey/default.nix @@ -62,7 +62,6 @@ wii.enable = true; xbox.enable = true; }; - firefox.enable = true; graphics = { modeling.enable = true; raster.enable = true; diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix index fcd6b0f..00f4dd1 100644 --- a/modules/home-manager/default.nix +++ b/modules/home-manager/default.nix @@ -3,7 +3,6 @@ ./options.nix ./programs/brave.nix ./programs/emulators.nix - ./programs/firefox.nix ./programs/forensics.nix ./programs/graphics.nix ./programs/libreoffice.nix diff --git a/modules/home-manager/programs/firefox.nix b/modules/home-manager/programs/firefox.nix deleted file mode 100644 index 307b1c6..0000000 --- a/modules/home-manager/programs/firefox.nix +++ /dev/null @@ -1,224 +0,0 @@ -{ - config, - lib, - self, - ... -}: - -let - cfg = config.modules.programs.firefox; -in -{ - options.modules.programs.firefox = { - enable = lib.mkOption { - default = false; - example = true; - }; - }; - - config = lib.mkIf cfg.enable { - home.file.".mozilla/firefox/Default/chrome/firefox-gnome-theme".source = - self.inputs.firefox-gnome-theme; - - home.programs.firefox = { - enable = true; - profiles.Default = { - search = { - default = "DuckDuckGo"; - force = true; - }; - userChrome = '' - @import "firefox-gnome-theme/userChrome.css"; - ''; - userContent = '' - @import "firefox-gnome-theme/userContent.css"; - ''; - settings = { - ## GNOME theme - "toolkit.legacyUserProfileCustomizations.stylesheets" = true; # Enable customChrome.css - "browser.uidensity" = 0; # Set UI density to normal - "svg.context-properties.content.enabled" = true; # Enable SVG context-propertes - "browser.theme.dark-private-windows" = false; # Disable private window dark theme - "widget.gtk.rounded-bottom-corners.enabled" = true; # Enable rounded bottom window corners - - ## Preferences - "browser.ctrlTab.sortByRecentlyUsed" = true; - "browser.discovery.enabled" = false; - "browser.download.open_pdf_attachments_inline" = true; - "browser.menu.showViewImageInfo" = true; - "browser.newtabpage.enabled" = false; - "browser.newtabpage.activity-stream.showSponsored" = false; - "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; - "browser.newtabpage.activity-stream.default.sites" = ""; - "browser.privatebrowsing.forceMediaMemoryCache" = true; - "browser.search.widget.inNavBar" = true; - "browser.startup.page" = 3; - "browser.startup.homepage" = "https://www.vimium.com"; - "browser.toolbars.bookmarks.visibility" = "never"; - "browser.uitour.enabled" = false; - "browser.urlbar.suggest.engines" = false; - "browser.urlbar.suggest.calculator" = true; - "browser.urlbar.trending.featureGate" = false; - "browser.urlbar.unitConversion.enabled" = true; - "cookiebanners.service.mode" = 1; - "cookiebanners.service.mode.privateBrowsing" = 1; - "network.IDN_show_punycode" = true; - - ## Performance - "browser.cache.jsbc_compression_level" = 3; - "content.notify.interval" = 100000; - "dom.enable_web_task_scheduling" = true; - "dom.security.sanitizer.enabled" = true; - "gfx.canvas.accelerated.cache-items" = 4096; - "gfx.canvas.accelerated.cache-size" = 512; - "gfx.content.skia-font-cache-size" = 20; - "gfx.webrender.all" = true; - "gfx.webrender.compositor" = true; - "gfx.webrender.enable" = true; - "image.mem.decode_bytes_at_a_time" = 32768; - "layers.acceleration.force-enabled" = true; - "layout.css.grid-template-masonry-value.enabled" = true; - "media.ffmpeg.vaapi.enabled" = true; - "media.memory_cache_max_size" = 65536; - "media.cache_readahead_limit" = 7200; - "media.cache_resume_threshold" = 3600; - "network.dns.disablePrefetch" = true; - "network.dns.disablePrefetchFromHTTPS" = true; - "network.dnsCacheExpiration" = 3600; - "network.http.max-connections" = 1800; - "network.http.max-persistent-connections-per-server" = 10; - "network.http.max-urgent-start-excessive-connections-per-host" = 5; - "network.http.pacing.requests.enabled" = false; - "network.predictor.enabled" = false; - "network.prefetch-next" = false; - "network.ssl_tokens_cache_capacity" = 10240; - "pdfjs.enableScripting" = false; - "security.mixed_content.block_display_content" = true; - - ## Experiments - "app.normandy.enabled" = false; - "app.normandy.api_url" = ""; - "app.normandy.user_id" = ""; - "app.shield.optoutstudies.enabled" = false; - "browser.shopping.experience2023.active" = false; - "browser.shopping.experience2023.enabled" = false; - "extensions.screenshots.disabled" = true; - "extensions.screenshots.upload-disabled" = true; - "experiments.supported" = false; - "experiments.enabled" = false; - "experiments.manifest.uri" = ""; - "network.allow-experiments" = false; - - ## Privacy - "dom.private-attribution.submission.enabled" = false; - # "privacy.resistFingerprinting" = true; - "privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts" = false; - "privacy.trackingprotection.enabled" = true; - "privacy.trackingprotection.pbmode.enabled" = true; - "privacy.userContext.enabled" = true; - - ## Geo - "geo.enabled" = false; - "geo.provider.use_gpsd" = false; - "geo.wifi.uri" = ""; - "browser.search.geoip.url" = ""; - "browser.search.geoSpecificDefaults" = false; - "browser.search.geoSpecificDefaults.url" = ""; - - ## Window meddling / popups - "dom.disable_window_open_feature.close" = true; - "dom.disable_window_open_feature.location" = true; - "dom.disable_window_open_feature.menubar" = true; - "dom.disable_window_open_feature.minimizable" = true; - "dom.disable_window_open_feature.personalbar" = true; - "dom.disable_window_open_feature.resizable" = true; - "dom.disable_window_open_feature.status" = true; - "dom.disable_window_open_feature.titlebar" = true; - "dom.disable_window_open_feature.toolbar" = true; - "dom.disable_window_move_resize" = true; - "browser.link.open_newwindow" = 3; - "browser.link.open_newwindow.restriction" = 0; - "dom.disable_open_during_load" = true; - "dom.popup_allowed_events" = "click dblclick"; - - ## Workers - # "dom.serviceWorkers.enabled" = false; - "dom.push.enabled" = false; - "dom.webnotifications.enabled" = false; - "dom.webnotifications.serviceworker.enabled" = false; - "permissions.default.desktop-notification" = 2; - - ## DOM / JavaScript - # "dom.event.clipboardevents.enabled" = false; - "middlemouse.paste" = false; - # "dom.allow_cut_copy" = false; - "dom.disable_beforeunload" = true; - "dom.vibrator.enabled" = false; - # "javascript.options.asmjs" = false; - # "javascript.options.wasm" = false; - "dom.targetBlankNoOpener.enabled" = true; - - ## Hardware fingerprinting - "dom.battery.enabled" = false; - "dom.vr.enabled" = false; - "media.navigator.enabled" = false; - # "dom.webaudio.enabled" = false; - - ## Isolation - "privacy.firstparty.isolate" = true; - "privacy.firstparty.isolate.restrict_opener_access" = true; - - ## Telemetry - "beacon.enabled" = false; - "browser.newtabpage.activity-stream.feeds.telemetry" = false; - "browser.newtabpage.activity-stream.telemetry" = false; - "browser.send_pings" = false; - "datareporting.policy.dataSubmissionEnabled" = false; - "datareporting.healthReport.uploadEnabled" = false; - "toolkit.coverage.opt-out" = true; - "toolkit.coverage.endpoint.base" = ""; - "toolkit.telemetry.archive.enabled" = false; - "toolkit.telemetry.bhrPing.enabled" = false; - "toolkit.telemetry.coverage.opt-out" = true; - "toolkit.telemetry.enabled" = false; - "toolkit.telemetry.firstShutdownPing.enabled" = false; - "toolkit.telemetry.hybridContent.enabled" = false; - "toolkit.telemetry.newProfilePing.enabled" = false; - "toolkit.telemetry.reportingPolicy.firstRun" = false; - "toolkit.telemetry.server" = "data:,"; - "toolkit.telemetry.shutdownPingSender.enabled" = false; - "toolkit.telemetry.unified" = false; - "toolkit.telemetry.updatePing.enabled" = false; - - ## Pocket/Hello - "loop.enabled" = false; - "loop.feedback.baseUrl" = ""; - "loop.gettingStarted.url" = ""; - "loop.learnMoreUrl" = ""; - "loop.legal.ToS_url" = ""; - "loop.legal.privacy_url" = ""; - "loop.oauth.google.redirect_uri" = ""; - "loop.oauth.google.scope" = ""; - "loop.server" = ""; - "loop.soft_start_hostname" = ""; - "loop.support_url" = ""; - "loop.throttled2" = false; - "loop.logDomains" = false; - "browser.pocket.enabled" = false; - "browser.pocket.api" = ""; - "browser.pocket.site" = ""; - "browser.pocket.oAuthConsumerKey" = ""; - "browser.pocket.useLocaleList" = false; - "brwoser.pocket.enabledLocales" = ""; - - ## Plugins - "plugin.state.flash" = 0; - "plugin.state.java" = 0; - - ## Misc - "browser.selfsupport.url" = ""; - }; - }; - }; - }; -} diff --git a/users/jordan/default.nix b/users/jordan/default.nix index 0d4c116..d052255 100644 --- a/users/jordan/default.nix +++ b/users/jordan/default.nix @@ -33,6 +33,7 @@ in imports = [ ./git.nix ./gpg.nix + ./graphical ./neovim.nix ./pass.nix ./shell.nix diff --git a/users/jordan/graphical/default.nix b/users/jordan/graphical/default.nix new file mode 100644 index 0000000..82df713 --- /dev/null +++ b/users/jordan/graphical/default.nix @@ -0,0 +1,9 @@ +{ + ... +}: + +{ + imports = [ + ./firefox.nix + ]; +} diff --git a/users/jordan/graphical/firefox.nix b/users/jordan/graphical/firefox.nix new file mode 100644 index 0000000..1ba6953 --- /dev/null +++ b/users/jordan/graphical/firefox.nix @@ -0,0 +1,210 @@ +{ + self, + ... +}: + +{ + home.file.".mozilla/firefox/Default/chrome/firefox-gnome-theme".source = + self.inputs.firefox-gnome-theme; + + home.programs.firefox = { + enable = true; + profiles.Default = { + search = { + default = "DuckDuckGo"; + force = true; + }; + userChrome = '' + @import "firefox-gnome-theme/userChrome.css"; + ''; + userContent = '' + @import "firefox-gnome-theme/userContent.css"; + ''; + settings = { + ## GNOME theme + "toolkit.legacyUserProfileCustomizations.stylesheets" = true; # Enable customChrome.css + "browser.uidensity" = 0; # Set UI density to normal + "svg.context-properties.content.enabled" = true; # Enable SVG context-propertes + "browser.theme.dark-private-windows" = false; # Disable private window dark theme + "widget.gtk.rounded-bottom-corners.enabled" = true; # Enable rounded bottom window corners + + ## Preferences + "browser.ctrlTab.sortByRecentlyUsed" = true; + "browser.discovery.enabled" = false; + "browser.download.open_pdf_attachments_inline" = true; + "browser.menu.showViewImageInfo" = true; + "browser.newtabpage.enabled" = false; + "browser.newtabpage.activity-stream.showSponsored" = false; + "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; + "browser.newtabpage.activity-stream.default.sites" = ""; + "browser.privatebrowsing.forceMediaMemoryCache" = true; + "browser.search.widget.inNavBar" = true; + "browser.startup.page" = 3; + "browser.startup.homepage" = "https://www.vimium.com"; + "browser.toolbars.bookmarks.visibility" = "never"; + "browser.uitour.enabled" = false; + "browser.urlbar.suggest.engines" = false; + "browser.urlbar.suggest.calculator" = true; + "browser.urlbar.trending.featureGate" = false; + "browser.urlbar.unitConversion.enabled" = true; + "cookiebanners.service.mode" = 1; + "cookiebanners.service.mode.privateBrowsing" = 1; + "network.IDN_show_punycode" = true; + + ## Performance + "browser.cache.jsbc_compression_level" = 3; + "content.notify.interval" = 100000; + "dom.enable_web_task_scheduling" = true; + "dom.security.sanitizer.enabled" = true; + "gfx.canvas.accelerated.cache-items" = 4096; + "gfx.canvas.accelerated.cache-size" = 512; + "gfx.content.skia-font-cache-size" = 20; + "gfx.webrender.all" = true; + "gfx.webrender.compositor" = true; + "gfx.webrender.enable" = true; + "image.mem.decode_bytes_at_a_time" = 32768; + "layers.acceleration.force-enabled" = true; + "layout.css.grid-template-masonry-value.enabled" = true; + "media.ffmpeg.vaapi.enabled" = true; + "media.memory_cache_max_size" = 65536; + "media.cache_readahead_limit" = 7200; + "media.cache_resume_threshold" = 3600; + "network.dns.disablePrefetch" = true; + "network.dns.disablePrefetchFromHTTPS" = true; + "network.dnsCacheExpiration" = 3600; + "network.http.max-connections" = 1800; + "network.http.max-persistent-connections-per-server" = 10; + "network.http.max-urgent-start-excessive-connections-per-host" = 5; + "network.http.pacing.requests.enabled" = false; + "network.predictor.enabled" = false; + "network.prefetch-next" = false; + "network.ssl_tokens_cache_capacity" = 10240; + "pdfjs.enableScripting" = false; + "security.mixed_content.block_display_content" = true; + + ## Experiments + "app.normandy.enabled" = false; + "app.normandy.api_url" = ""; + "app.normandy.user_id" = ""; + "app.shield.optoutstudies.enabled" = false; + "browser.shopping.experience2023.active" = false; + "browser.shopping.experience2023.enabled" = false; + "extensions.screenshots.disabled" = true; + "extensions.screenshots.upload-disabled" = true; + "experiments.supported" = false; + "experiments.enabled" = false; + "experiments.manifest.uri" = ""; + "network.allow-experiments" = false; + + ## Privacy + "dom.private-attribution.submission.enabled" = false; + # "privacy.resistFingerprinting" = true; + "privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts" = false; + "privacy.trackingprotection.enabled" = true; + "privacy.trackingprotection.pbmode.enabled" = true; + "privacy.userContext.enabled" = true; + + ## Geo + "geo.enabled" = false; + "geo.provider.use_gpsd" = false; + "geo.wifi.uri" = ""; + "browser.search.geoip.url" = ""; + "browser.search.geoSpecificDefaults" = false; + "browser.search.geoSpecificDefaults.url" = ""; + + ## Window meddling / popups + "dom.disable_window_open_feature.close" = true; + "dom.disable_window_open_feature.location" = true; + "dom.disable_window_open_feature.menubar" = true; + "dom.disable_window_open_feature.minimizable" = true; + "dom.disable_window_open_feature.personalbar" = true; + "dom.disable_window_open_feature.resizable" = true; + "dom.disable_window_open_feature.status" = true; + "dom.disable_window_open_feature.titlebar" = true; + "dom.disable_window_open_feature.toolbar" = true; + "dom.disable_window_move_resize" = true; + "browser.link.open_newwindow" = 3; + "browser.link.open_newwindow.restriction" = 0; + "dom.disable_open_during_load" = true; + "dom.popup_allowed_events" = "click dblclick"; + + ## Workers + # "dom.serviceWorkers.enabled" = false; + "dom.push.enabled" = false; + "dom.webnotifications.enabled" = false; + "dom.webnotifications.serviceworker.enabled" = false; + "permissions.default.desktop-notification" = 2; + + ## DOM / JavaScript + # "dom.event.clipboardevents.enabled" = false; + "middlemouse.paste" = false; + # "dom.allow_cut_copy" = false; + "dom.disable_beforeunload" = true; + "dom.vibrator.enabled" = false; + # "javascript.options.asmjs" = false; + # "javascript.options.wasm" = false; + "dom.targetBlankNoOpener.enabled" = true; + + ## Hardware fingerprinting + "dom.battery.enabled" = false; + "dom.vr.enabled" = false; + "media.navigator.enabled" = false; + # "dom.webaudio.enabled" = false; + + ## Isolation + "privacy.firstparty.isolate" = true; + "privacy.firstparty.isolate.restrict_opener_access" = true; + + ## Telemetry + "beacon.enabled" = false; + "browser.newtabpage.activity-stream.feeds.telemetry" = false; + "browser.newtabpage.activity-stream.telemetry" = false; + "browser.send_pings" = false; + "datareporting.policy.dataSubmissionEnabled" = false; + "datareporting.healthReport.uploadEnabled" = false; + "toolkit.coverage.opt-out" = true; + "toolkit.coverage.endpoint.base" = ""; + "toolkit.telemetry.archive.enabled" = false; + "toolkit.telemetry.bhrPing.enabled" = false; + "toolkit.telemetry.coverage.opt-out" = true; + "toolkit.telemetry.enabled" = false; + "toolkit.telemetry.firstShutdownPing.enabled" = false; + "toolkit.telemetry.hybridContent.enabled" = false; + "toolkit.telemetry.newProfilePing.enabled" = false; + "toolkit.telemetry.reportingPolicy.firstRun" = false; + "toolkit.telemetry.server" = "data:,"; + "toolkit.telemetry.shutdownPingSender.enabled" = false; + "toolkit.telemetry.unified" = false; + "toolkit.telemetry.updatePing.enabled" = false; + + ## Pocket/Hello + "loop.enabled" = false; + "loop.feedback.baseUrl" = ""; + "loop.gettingStarted.url" = ""; + "loop.learnMoreUrl" = ""; + "loop.legal.ToS_url" = ""; + "loop.legal.privacy_url" = ""; + "loop.oauth.google.redirect_uri" = ""; + "loop.oauth.google.scope" = ""; + "loop.server" = ""; + "loop.soft_start_hostname" = ""; + "loop.support_url" = ""; + "loop.throttled2" = false; + "loop.logDomains" = false; + "browser.pocket.enabled" = false; + "browser.pocket.api" = ""; + "browser.pocket.site" = ""; + "browser.pocket.oAuthConsumerKey" = ""; + "browser.pocket.useLocaleList" = false; + "brwoser.pocket.enabledLocales" = ""; + + ## Plugins + "plugin.state.flash" = 0; + "plugin.state.java" = 0; + + ## Misc + "browser.selfsupport.url" = ""; + }; + }; + }; +}