From a04498c0b18d6fdf7e600dd9c8b5e7db781c21f3 Mon Sep 17 00:00:00 2001 From: Ryan Schanzenbacher Date: Thu, 14 Nov 2024 14:53:44 -0500 Subject: Changed firefox to use nix configuration, completely reset profile. No longer using mozilla account. Updated nixpkgs and home-manager Added wpaperd flake --- home-config/nix-home-manager/home.nix | 323 +++++++++++++++++++++++++++++++++- 1 file changed, 319 insertions(+), 4 deletions(-) (limited to 'home-config/nix-home-manager/home.nix') diff --git a/home-config/nix-home-manager/home.nix b/home-config/nix-home-manager/home.nix index 65afdd3..41c7c83 100644 --- a/home-config/nix-home-manager/home.nix +++ b/home-config/nix-home-manager/home.nix @@ -1,5 +1,14 @@ -{ config, pkgs, hyprland, nixgl, ... }: - +{ config, pkgs, hyprland, nixgl, wpaperd, ... }: + let + lock-false = { + Value = false; + Status = "locked"; + }; + lock-true = { + Value = true; + Status = "locked"; + }; + in { # Home Manager needs a bit of information about you and the paths it should # manage. @@ -28,6 +37,311 @@ # wayland.windowManager.hyprland.enable = true; + # Install firefox and add some customizations + programs.firefox = { + enable = true; + policies = { + EnableTrackingProtection = { + Value = true; + Locked = true; + Cryptomining = true; + Fingerprinting = true; + EmailTracking = true; + }; + UserMessaging = { + WhatsNew = false; + ExtensionRecommendations = false; + FeatureRecommendations = false; + UrlbarInterventions = false; + SkipOnboarding = true; + MoreFromMozilla = false; + Labs = false; + Locked = true; + }; + DisableAppUpdate = true; + DisableAccounts = true; + DisableFirefoxAccounts = true; + DisableFirefoxStudies = true; + DisablePocket = true; + DisableTelemetry = true; + AutofillAddressEnabled = false; + AutofillCreditCardEnabled = false; + DisableMasterPasswordCreation = true; + PasswordManagerEnabled = false; + PrimaryPassword = false; + OfferToSaveLogins = false; + NoDefaultBookmarks = true; + OverrideFirstRunPage = ""; + OverridePostUpdatePage = ""; + FirefoxHome = { + Search = true; + TopSites = true; + SponsoredTopSites = false; + Highlights = false; + Pocket = false; + SponsoredPocket = false; + Snippets = false; + Locked = true; + }; + SearchSuggestEnabled = true; + FirefoxSuggest = { + WebSuggestions = true; + SponsoredSuggestions = false; + ImproveSuggest = false; + Locked = true; + }; + PictureInPicture = lock-true; + HardwareAcceleration = true; + Certificates = { + ImportEnterpriseRoots = true; + }; + ExtensionSettings = { + #"*".installation_mode = "blocked"; + # uBlock Origin + "uBlock0@raymondhill.net" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; + installation_mode = "force_installed"; + }; + # Bitwarden + "{446900e4-71c2-419f-a6a7-df9c091e268b}" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi"; + installation_mode = "force_installed"; + }; + # SponsorBlock + "sponsorBlocker@ajay.app" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/sponsorblock/latest.xpi"; + installation_mode = "force_installed"; + }; + # DeArrow + "deArrow@ajay.app" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/dearrow/latest.xpi"; + installation_mode = "force_installed"; + }; + # Return Youtube Dislike + "{762f9885-5a13-4abd-9c77-433dcd38b8fd}" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/return-youtube-dislikes/latest.xpi"; + installation_mode = "force_installed"; + }; + # Youtube Nonstop + "{0d7cafdd-501c-49ca-8ebb-e3341caaa55e}" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/youtube-nonstop/latest.xpi"; + installation_mode = "force_installed"; + }; + # Sidebery + "{3c078156-979c-498b-8990-85f7987dd929}" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/sidebery/latest.xpi"; + installation_mode = "normal_installed"; + }; + # TamperMonkey + "firefox@tampermonkey.net" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/tampermonkey/latest.xpi"; + installation_mode = "force_installed"; + }; + # Floccus + "floccus@handmadeideas.org" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/floccus/latest.xpi"; + installation_mode = "force_installed"; + }; + }; + Preferences = { + "browser.startup.homepage" = "https://d.in.rschanz.org"; + "extensions.activeThemeID" = { + Value = "firefox-compact-dark@mozilla.org"; + Status = "locked"; + }; + "toolkit.legacyUserProfileCustomizations.stylesheets" = lock-true; + "xpinstall.whitelist.required" = lock-true; + "dom.webgpu.enabled" = lock-true; + "media.eme.enabled" = lock-true; + "general.autoScroll" = lock-true; + "general.smoothScroll" = lock-true; + "browser.crashReports.unsubmittedCheck.autoSubmit2" = lock-false; + "browser.aboutConfig.showWarning" = lock-false; + }; + }; + profiles.${config.home.username} = { + name = "${config.home.username}"; + isDefault = true; + containersForce = true; + containers = { + rit = { + name = "RIT"; + color = "orange"; + icon = "dollar"; + id = 1; + }; + ritwork = { + name = "RIT Work"; + color = "green"; + icon = "briefcase"; + id = 2; + }; + other = { + name = "Other"; + color = "blue"; + icon = "fingerprint"; + id = 3; + }; + }; + search = { + force = true; + default = "DuckDuckGo"; + order = ["DuckDuckGo" "Google"]; + engines = { + "Nix Packages" = { + urls = [ + { + template = "https://search.nixos.org/packages"; + params = [ + { + name = "type"; + value = "packages"; + } + { + name = "channel"; + value = "unstable"; + } + { + name = "query"; + value = "{searchTerms}"; + } + ]; + } + ]; + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = ["@np"]; + }; + }; + }; + userChrome = " + #main-window #titlebar { + overflow: hidden; + transition: height 0.3s 0.3s !important; + } + /* Default state: Set initial height to enable animation */ + #main-window #titlebar { height: 3em !important; } + #main-window[uidensity=\"touch\"] #titlebar { height: 3.35em !important; } + #main-window[uidensity=\"compact\"] #titlebar { height: 2.7em !important; } + /* Hidden state: Hide native tabs strip */ + #main-window[titlepreface*=\"​\"] #titlebar { height: 0 !important; } + /* Hidden state: Fix z-index of active pinned tabs */ + #main-window[titlepreface*=\"​\"] #tabbrowser-tabs { z-index: 0 !important; } + + /* Sidebery expand on mouse-over and hide otherwise */ + + /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/autohide_sidebar.css made available under Mozilla Public License v. 2.0 + See the above repository for updates as well as full license text. */ + + /* Show sidebar only when the cursor is over it */ + /* The border controlling sidebar width will be removed so you'll need to modify these values to change width */ + + #sidebar-box{ + --uc-sidebar-width: 60px; + --uc-sidebar-hover-width: 230px; + --uc-autohide-sidebar-delay: 200ms; /* Wait 0.2s before hiding sidebar */ + --uc-autohide-transition-duration: 115ms; + --uc-autohide-transition-type: linear; + --browser-area-z-index-sidebar: 3; + position: relative; + min-width: var(--uc-sidebar-width) !important; + width: var(--uc-sidebar-width) !important; + max-width: var(--uc-sidebar-width) !important; + z-index: var(--browser-area-z-index-sidebar,3); + } + #sidebar-box[positionend]{ direction: rtl } + #sidebar-box[positionend] > *{ direction: ltr } + + #sidebar-box[positionend]:-moz-locale-dir(rtl){ direction: ltr } + #sidebar-box[positionend]:-moz-locale-dir(rtl) > *{ direction: rtl } + + #main-window[sizemode=\"fullscreen\"] #sidebar-box{ --uc-sidebar-width: 1px; } + + #sidebar-splitter{ display: none } + + #sidebar-header{ + overflow: hidden; + color: var(--chrome-color, inherit) !important; + padding-inline: 0 !important; + } + + #sidebar-header::before, + #sidebar-header::after{ + content: \"\"; + display: flex; + padding-left: 8px; + } + + #sidebar-header, + #sidebar{ + transition: min-width var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay) !important; + min-width: var(--uc-sidebar-width) !important; + will-change: min-width; + } + #sidebar-box:hover > #sidebar-header, + #sidebar-box:hover > #sidebar{ + min-width: var(--uc-sidebar-hover-width) !important; + transition-delay: 0ms !important; + } + + .sidebar-panel{ + background-color: transparent !important; + color: var(--newtab-text-primary-color) !important; + } + + .sidebar-panel #search-box{ + -moz-appearance: none !important; + background-color: rgba(249,249,250,0.1) !important; + color: inherit !important; + } + + /* Add sidebar divider and give it background */ + + #sidebar, + #sidebar-header{ + background-color: inherit !important; + border-inline: 1px solid rgb(80,80,80); + border-inline-width: 0px 1px; + } + + #sidebar-box:not([positionend]) > :-moz-locale-dir(rtl), + #sidebar-box[positionend] > *{ + border-inline-width: 1px 0px; + } + + /* Move statuspanel to the other side when sidebar is hovered so it doesn't get covered by sidebar */ + + #sidebar-box:not([positionend]):hover ~ #appcontent #statuspanel{ + inset-inline: auto 0px !important; + } + #sidebar-box:not([positionend]):hover ~ #appcontent #statuspanel-label{ + margin-inline: 0px !important; + border-left-style: solid !important; + } + + /* Remove the tabs label and move the Sidebary icon to the center of the box */ + #sidebar-box:hover [id=\"sidebar-icon\"] { + transform: translateX(0px) !important; + transition-delay: 0ms !important; + } + + #sidebar-box [id=\"sidebar-icon\"] { + transform: translateX(9px); + transition: transform var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay) !important; + } + + #sidebar-box [id=\"sidebar-title\"] { + visibility: hidden !important; + transition: visibility var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay) !important; + } + + #sidebar-box:hover [id=\"sidebar-title\"] { + visibility: visible !important; + transition-delay: 0ms !important; + } + "; + }; +}; + # The home.packages option allows you to install Nix packages into your # environment. home.packages = with pkgs; [ @@ -56,9 +370,9 @@ imv libva libvdpau - wpaperd + #wpaperd hypridle - latest.firefox-nightly-bin + #latest.firefox-nightly-bin eza # Wrapped programs for some env variables @@ -72,6 +386,7 @@ hyprland.packages.${pkgs.system}.default hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland nixgl.packages.${pkgs.system}.nixGLIntel + wpaperd.packages.${pkgs.system}.wpaperd # Fonts! noto-fonts -- cgit v1.2.3