diff options
Diffstat (limited to 'home-config/nix-home-manager')
| -rw-r--r-- | home-config/nix-home-manager/firefox-nightly/default.nix | 201 | ||||
| -rw-r--r-- | home-config/nix-home-manager/firefox-nightly/default.nixold | 206 | ||||
| -rw-r--r-- | home-config/nix-home-manager/firefox-nightly/policies.nix | 130 | ||||
| -rw-r--r-- | home-config/nix-home-manager/flake.lock | 160 | ||||
| -rw-r--r-- | home-config/nix-home-manager/flake.nix | 15 | ||||
| -rw-r--r-- | home-config/nix-home-manager/home.nix | 323 |
6 files changed, 701 insertions, 334 deletions
diff --git a/home-config/nix-home-manager/firefox-nightly/default.nix b/home-config/nix-home-manager/firefox-nightly/default.nix new file mode 100644 index 0000000..d341348 --- /dev/null +++ b/home-config/nix-home-manager/firefox-nightly/default.nix | |||
| @@ -0,0 +1,201 @@ | |||
| 1 | { config, pkgs, mozff, ...}: | ||
| 2 | |||
| 3 | let | ||
| 4 | |||
| 5 | wrapped-ff-nightly = pkgs.wrapFirefox mozff.packages.${pkgs.system}.firefox-nightly-bin { | ||
| 6 | extraPolicies = import ./policies.nix; | ||
| 7 | }; | ||
| 8 | |||
| 9 | in | ||
| 10 | |||
| 11 | { | ||
| 12 | programs.firefox = { | ||
| 13 | enable = true; | ||
| 14 | package = mozff.packages.${pkgs.system}.firefox-nightly-bin; | ||
| 15 | policies = import ./policies.nix; | ||
| 16 | |||
| 17 | profiles.${config.home.username} = { | ||
| 18 | name = "${config.home.username}"; | ||
| 19 | isDefault = true; | ||
| 20 | containersForce = true; | ||
| 21 | containers = { | ||
| 22 | rit = { | ||
| 23 | name = "RIT"; | ||
| 24 | color = "orange"; | ||
| 25 | icon = "dollar"; | ||
| 26 | id = 1; | ||
| 27 | }; | ||
| 28 | ritwork = { | ||
| 29 | name = "RIT Work"; | ||
| 30 | color = "green"; | ||
| 31 | icon = "briefcase"; | ||
| 32 | id = 2; | ||
| 33 | }; | ||
| 34 | other = { | ||
| 35 | name = "Other"; | ||
| 36 | color = "blue"; | ||
| 37 | icon = "fingerprint"; | ||
| 38 | id = 3; | ||
| 39 | }; | ||
| 40 | }; | ||
| 41 | search = { | ||
| 42 | force = true; | ||
| 43 | default = "DuckDuckGo"; | ||
| 44 | order = ["DuckDuckGo" "Google"]; | ||
| 45 | engines = { | ||
| 46 | "Nix Packages" = { | ||
| 47 | urls = [ | ||
| 48 | { | ||
| 49 | template = "https://search.nixos.org/packages"; | ||
| 50 | params = [ | ||
| 51 | { | ||
| 52 | name = "type"; | ||
| 53 | value = "packages"; | ||
| 54 | } | ||
| 55 | { | ||
| 56 | name = "channel"; | ||
| 57 | value = "unstable"; | ||
| 58 | } | ||
| 59 | { | ||
| 60 | name = "query"; | ||
| 61 | value = "{searchTerms}"; | ||
| 62 | } | ||
| 63 | ]; | ||
| 64 | } | ||
| 65 | ]; | ||
| 66 | icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; | ||
| 67 | definedAliases = ["@np"]; | ||
| 68 | }; | ||
| 69 | }; | ||
| 70 | }; | ||
| 71 | userChrome = " | ||
| 72 | #main-window .toolbar-items { | ||
| 73 | overflow: hidden; | ||
| 74 | transition: height 0.3s 0.3s !important; | ||
| 75 | } | ||
| 76 | /* Default state: Set initial height to enable animation */ | ||
| 77 | #main-window .toolbar-items { height: 3em !important; } | ||
| 78 | #main-window .titlebar-button { height: 3em !important; } | ||
| 79 | #main-window[uidensity=\"touch\"] .toolbar-items { height: 3.35em !important; } | ||
| 80 | #main-window[uidensity=\"compact\"] .toolbar-items { height: 2.7em !important; } | ||
| 81 | /* Hidden state: Hide native tabs strip */ | ||
| 82 | #main-window[titlepreface*=\"\"] .toolbar-items { height: 0 !important; } | ||
| 83 | #main-window[titlepreface*=\"\"] .titlebar-button { height: 0 !important; } | ||
| 84 | /* Hidden state: Fix z-index of active pinned tabs */ | ||
| 85 | #main-window[titlepreface*=\"\"] #tabbrowser-tabs { z-index: 0 !important; } | ||
| 86 | |||
| 87 | /* Sidebery expand on mouse-over and hide otherwise */ | ||
| 88 | |||
| 89 | /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/autohide_sidebar.css made available under Mozilla Public License v. 2.0 | ||
| 90 | See the above repository for updates as well as full license text. */ | ||
| 91 | |||
| 92 | /* Show sidebar only when the cursor is over it */ | ||
| 93 | /* The border controlling sidebar width will be removed so you'll need to modify these values to change width */ | ||
| 94 | |||
| 95 | #sidebar-box{ | ||
| 96 | --uc-sidebar-width: 60px; | ||
| 97 | --uc-sidebar-hover-width: 230px; | ||
| 98 | --uc-autohide-sidebar-delay: 200ms; /* Wait 0.2s before hiding sidebar */ | ||
| 99 | --uc-autohide-transition-duration: 115ms; | ||
| 100 | --uc-autohide-transition-type: linear; | ||
| 101 | --browser-area-z-index-sidebar: 3; | ||
| 102 | position: relative; | ||
| 103 | min-width: var(--uc-sidebar-width) !important; | ||
| 104 | width: var(--uc-sidebar-width) !important; | ||
| 105 | max-width: var(--uc-sidebar-width) !important; | ||
| 106 | z-index: var(--browser-area-z-index-sidebar,3); | ||
| 107 | } | ||
| 108 | #sidebar-box[positionend]{ direction: rtl } | ||
| 109 | #sidebar-box[positionend] > *{ direction: ltr } | ||
| 110 | |||
| 111 | #sidebar-box[positionend]:-moz-locale-dir(rtl){ direction: ltr } | ||
| 112 | #sidebar-box[positionend]:-moz-locale-dir(rtl) > *{ direction: rtl } | ||
| 113 | |||
| 114 | #main-window[sizemode=\"fullscreen\"] #sidebar-box{ --uc-sidebar-width: 1px; } | ||
| 115 | |||
| 116 | #sidebar-splitter{ display: none } | ||
| 117 | |||
| 118 | #sidebar-header{ | ||
| 119 | overflow: hidden; | ||
| 120 | color: var(--chrome-color, inherit) !important; | ||
| 121 | padding-inline: 0 !important; | ||
| 122 | } | ||
| 123 | |||
| 124 | #sidebar-header::before, | ||
| 125 | #sidebar-header::after{ | ||
| 126 | content: \"\"; | ||
| 127 | display: flex; | ||
| 128 | padding-left: 8px; | ||
| 129 | } | ||
| 130 | |||
| 131 | #sidebar-header, | ||
| 132 | #sidebar{ | ||
| 133 | transition: min-width var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay) !important; | ||
| 134 | min-width: var(--uc-sidebar-width) !important; | ||
| 135 | will-change: min-width; | ||
| 136 | } | ||
| 137 | #sidebar-box:hover > #sidebar-header, | ||
| 138 | #sidebar-box:hover > #sidebar{ | ||
| 139 | min-width: var(--uc-sidebar-hover-width) !important; | ||
| 140 | transition-delay: 0ms !important; | ||
| 141 | } | ||
| 142 | |||
| 143 | .sidebar-panel{ | ||
| 144 | background-color: transparent !important; | ||
| 145 | color: var(--newtab-text-primary-color) !important; | ||
| 146 | } | ||
| 147 | |||
| 148 | .sidebar-panel #search-box{ | ||
| 149 | -moz-appearance: none !important; | ||
| 150 | background-color: rgba(249,249,250,0.1) !important; | ||
| 151 | color: inherit !important; | ||
| 152 | } | ||
| 153 | |||
| 154 | /* Add sidebar divider and give it background */ | ||
| 155 | |||
| 156 | #sidebar, | ||
| 157 | #sidebar-header{ | ||
| 158 | background-color: inherit !important; | ||
| 159 | border-inline: 1px solid rgb(80,80,80); | ||
| 160 | border-inline-width: 0px 1px; | ||
| 161 | } | ||
| 162 | |||
| 163 | #sidebar-box:not([positionend]) > :-moz-locale-dir(rtl), | ||
| 164 | #sidebar-box[positionend] > *{ | ||
| 165 | border-inline-width: 1px 0px; | ||
| 166 | } | ||
| 167 | |||
| 168 | /* Move statuspanel to the other side when sidebar is hovered so it doesn't get covered by sidebar */ | ||
| 169 | |||
| 170 | #sidebar-box:not([positionend]):hover ~ #appcontent #statuspanel{ | ||
| 171 | inset-inline: auto 0px !important; | ||
| 172 | } | ||
| 173 | #sidebar-box:not([positionend]):hover ~ #appcontent #statuspanel-label{ | ||
| 174 | margin-inline: 0px !important; | ||
| 175 | border-left-style: solid !important; | ||
| 176 | } | ||
| 177 | |||
| 178 | /* Remove the tabs label and move the Sidebary icon to the center of the box */ | ||
| 179 | #sidebar-box:hover [id=\"sidebar-icon\"] { | ||
| 180 | transform: translateX(0px) !important; | ||
| 181 | transition-delay: 0ms !important; | ||
| 182 | } | ||
| 183 | |||
| 184 | #sidebar-box [id=\"sidebar-icon\"] { | ||
| 185 | transform: translateX(9px); | ||
| 186 | transition: transform var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay) !important; | ||
| 187 | } | ||
| 188 | |||
| 189 | #sidebar-box [id=\"sidebar-title\"] { | ||
| 190 | visibility: hidden !important; | ||
| 191 | transition: visibility var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay) !important; | ||
| 192 | } | ||
| 193 | |||
| 194 | #sidebar-box:hover [id=\"sidebar-title\"] { | ||
| 195 | visibility: visible !important; | ||
| 196 | transition-delay: 0ms !important; | ||
| 197 | } | ||
| 198 | "; | ||
| 199 | }; | ||
| 200 | }; | ||
| 201 | } | ||
diff --git a/home-config/nix-home-manager/firefox-nightly/default.nixold b/home-config/nix-home-manager/firefox-nightly/default.nixold new file mode 100644 index 0000000..543d57c --- /dev/null +++ b/home-config/nix-home-manager/firefox-nightly/default.nixold | |||
| @@ -0,0 +1,206 @@ | |||
| 1 | { config, pkgs, ...}: | ||
| 2 | |||
| 3 | let | ||
| 4 | |||
| 5 | wrapped-ff-nightly = pkgs.latest.firefox-nightly-bin.firefox-bin-unwrapped.overrideAttrs (oldAttrs: rec { | ||
| 6 | policies = import ./policies.nix; | ||
| 7 | policiesJson = pkgs.writeText "firefox-policies.json" (builtins.toJSON { inherit policies; }); | ||
| 8 | postFixup = '' | ||
| 9 | # See: https://github.com/mozilla/policy-templates/blob/master/README.md | ||
| 10 | mkdir -p "$out/lib/firefox/distribution" | ||
| 11 | ln -s ${policiesJson} "$out/lib/firefox-nightly-bin-${oldAttrs.version}/distribution/policies.json" | ||
| 12 | ''; | ||
| 13 | }); | ||
| 14 | |||
| 15 | in | ||
| 16 | |||
| 17 | { | ||
| 18 | programs.firefox = { | ||
| 19 | enable = true; | ||
| 20 | package = wrapped-ff-nightly; | ||
| 21 | |||
| 22 | profiles.${config.home.username} = { | ||
| 23 | name = "${config.home.username}"; | ||
| 24 | isDefault = true; | ||
| 25 | containersForce = true; | ||
| 26 | containers = { | ||
| 27 | rit = { | ||
| 28 | name = "RIT"; | ||
| 29 | color = "orange"; | ||
| 30 | icon = "dollar"; | ||
| 31 | id = 1; | ||
| 32 | }; | ||
| 33 | ritwork = { | ||
| 34 | name = "RIT Work"; | ||
| 35 | color = "green"; | ||
| 36 | icon = "briefcase"; | ||
| 37 | id = 2; | ||
| 38 | }; | ||
| 39 | other = { | ||
| 40 | name = "Other"; | ||
| 41 | color = "blue"; | ||
| 42 | icon = "fingerprint"; | ||
| 43 | id = 3; | ||
| 44 | }; | ||
| 45 | }; | ||
| 46 | search = { | ||
| 47 | force = true; | ||
| 48 | default = "DuckDuckGo"; | ||
| 49 | order = ["DuckDuckGo" "Google"]; | ||
| 50 | engines = { | ||
| 51 | "Nix Packages" = { | ||
| 52 | urls = [ | ||
| 53 | { | ||
| 54 | template = "https://search.nixos.org/packages"; | ||
| 55 | params = [ | ||
| 56 | { | ||
| 57 | name = "type"; | ||
| 58 | value = "packages"; | ||
| 59 | } | ||
| 60 | { | ||
| 61 | name = "channel"; | ||
| 62 | value = "unstable"; | ||
| 63 | } | ||
| 64 | { | ||
| 65 | name = "query"; | ||
| 66 | value = "{searchTerms}"; | ||
| 67 | } | ||
| 68 | ]; | ||
| 69 | } | ||
| 70 | ]; | ||
| 71 | icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; | ||
| 72 | definedAliases = ["@np"]; | ||
| 73 | }; | ||
| 74 | }; | ||
| 75 | }; | ||
| 76 | userChrome = " | ||
| 77 | #main-window .toolbar-items { | ||
| 78 | overflow: hidden; | ||
| 79 | transition: height 0.3s 0.3s !important; | ||
| 80 | } | ||
| 81 | /* Default state: Set initial height to enable animation */ | ||
| 82 | #main-window .toolbar-items { height: 3em !important; } | ||
| 83 | #main-window .titlebar-button { height: 3em !important; } | ||
| 84 | #main-window[uidensity=\"touch\"] .toolbar-items { height: 3.35em !important; } | ||
| 85 | #main-window[uidensity=\"compact\"] .toolbar-items { height: 2.7em !important; } | ||
| 86 | /* Hidden state: Hide native tabs strip */ | ||
| 87 | #main-window[titlepreface*=\"\"] .toolbar-items { height: 0 !important; } | ||
| 88 | #main-window[titlepreface*=\"\"] .titlebar-button { height: 0 !important; } | ||
| 89 | /* Hidden state: Fix z-index of active pinned tabs */ | ||
| 90 | #main-window[titlepreface*=\"\"] #tabbrowser-tabs { z-index: 0 !important; } | ||
| 91 | |||
| 92 | /* Sidebery expand on mouse-over and hide otherwise */ | ||
| 93 | |||
| 94 | /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/autohide_sidebar.css made available under Mozilla Public License v. 2.0 | ||
| 95 | See the above repository for updates as well as full license text. */ | ||
| 96 | |||
| 97 | /* Show sidebar only when the cursor is over it */ | ||
| 98 | /* The border controlling sidebar width will be removed so you'll need to modify these values to change width */ | ||
| 99 | |||
| 100 | #sidebar-box{ | ||
| 101 | --uc-sidebar-width: 60px; | ||
| 102 | --uc-sidebar-hover-width: 230px; | ||
| 103 | --uc-autohide-sidebar-delay: 200ms; /* Wait 0.2s before hiding sidebar */ | ||
| 104 | --uc-autohide-transition-duration: 115ms; | ||
| 105 | --uc-autohide-transition-type: linear; | ||
| 106 | --browser-area-z-index-sidebar: 3; | ||
| 107 | position: relative; | ||
| 108 | min-width: var(--uc-sidebar-width) !important; | ||
| 109 | width: var(--uc-sidebar-width) !important; | ||
| 110 | max-width: var(--uc-sidebar-width) !important; | ||
| 111 | z-index: var(--browser-area-z-index-sidebar,3); | ||
| 112 | } | ||
| 113 | #sidebar-box[positionend]{ direction: rtl } | ||
| 114 | #sidebar-box[positionend] > *{ direction: ltr } | ||
| 115 | |||
| 116 | #sidebar-box[positionend]:-moz-locale-dir(rtl){ direction: ltr } | ||
| 117 | #sidebar-box[positionend]:-moz-locale-dir(rtl) > *{ direction: rtl } | ||
| 118 | |||
| 119 | #main-window[sizemode=\"fullscreen\"] #sidebar-box{ --uc-sidebar-width: 1px; } | ||
| 120 | |||
| 121 | #sidebar-splitter{ display: none } | ||
| 122 | |||
| 123 | #sidebar-header{ | ||
| 124 | overflow: hidden; | ||
| 125 | color: var(--chrome-color, inherit) !important; | ||
| 126 | padding-inline: 0 !important; | ||
| 127 | } | ||
| 128 | |||
| 129 | #sidebar-header::before, | ||
| 130 | #sidebar-header::after{ | ||
| 131 | content: \"\"; | ||
| 132 | display: flex; | ||
| 133 | padding-left: 8px; | ||
| 134 | } | ||
| 135 | |||
| 136 | #sidebar-header, | ||
| 137 | #sidebar{ | ||
| 138 | transition: min-width var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay) !important; | ||
| 139 | min-width: var(--uc-sidebar-width) !important; | ||
| 140 | will-change: min-width; | ||
| 141 | } | ||
| 142 | #sidebar-box:hover > #sidebar-header, | ||
| 143 | #sidebar-box:hover > #sidebar{ | ||
| 144 | min-width: var(--uc-sidebar-hover-width) !important; | ||
| 145 | transition-delay: 0ms !important; | ||
| 146 | } | ||
| 147 | |||
| 148 | .sidebar-panel{ | ||
| 149 | background-color: transparent !important; | ||
| 150 | color: var(--newtab-text-primary-color) !important; | ||
| 151 | } | ||
| 152 | |||
| 153 | .sidebar-panel #search-box{ | ||
| 154 | -moz-appearance: none !important; | ||
| 155 | background-color: rgba(249,249,250,0.1) !important; | ||
| 156 | color: inherit !important; | ||
| 157 | } | ||
| 158 | |||
| 159 | /* Add sidebar divider and give it background */ | ||
| 160 | |||
| 161 | #sidebar, | ||
| 162 | #sidebar-header{ | ||
| 163 | background-color: inherit !important; | ||
| 164 | border-inline: 1px solid rgb(80,80,80); | ||
| 165 | border-inline-width: 0px 1px; | ||
| 166 | } | ||
| 167 | |||
| 168 | #sidebar-box:not([positionend]) > :-moz-locale-dir(rtl), | ||
| 169 | #sidebar-box[positionend] > *{ | ||
| 170 | border-inline-width: 1px 0px; | ||
| 171 | } | ||
| 172 | |||
| 173 | /* Move statuspanel to the other side when sidebar is hovered so it doesn't get covered by sidebar */ | ||
| 174 | |||
| 175 | #sidebar-box:not([positionend]):hover ~ #appcontent #statuspanel{ | ||
| 176 | inset-inline: auto 0px !important; | ||
| 177 | } | ||
| 178 | #sidebar-box:not([positionend]):hover ~ #appcontent #statuspanel-label{ | ||
| 179 | margin-inline: 0px !important; | ||
| 180 | border-left-style: solid !important; | ||
| 181 | } | ||
| 182 | |||
| 183 | /* Remove the tabs label and move the Sidebary icon to the center of the box */ | ||
| 184 | #sidebar-box:hover [id=\"sidebar-icon\"] { | ||
| 185 | transform: translateX(0px) !important; | ||
| 186 | transition-delay: 0ms !important; | ||
| 187 | } | ||
| 188 | |||
| 189 | #sidebar-box [id=\"sidebar-icon\"] { | ||
| 190 | transform: translateX(9px); | ||
| 191 | transition: transform var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay) !important; | ||
| 192 | } | ||
| 193 | |||
| 194 | #sidebar-box [id=\"sidebar-title\"] { | ||
| 195 | visibility: hidden !important; | ||
| 196 | transition: visibility var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay) !important; | ||
| 197 | } | ||
| 198 | |||
| 199 | #sidebar-box:hover [id=\"sidebar-title\"] { | ||
| 200 | visibility: visible !important; | ||
| 201 | transition-delay: 0ms !important; | ||
| 202 | } | ||
| 203 | "; | ||
| 204 | }; | ||
| 205 | }; | ||
| 206 | } | ||
diff --git a/home-config/nix-home-manager/firefox-nightly/policies.nix b/home-config/nix-home-manager/firefox-nightly/policies.nix new file mode 100644 index 0000000..136b8b9 --- /dev/null +++ b/home-config/nix-home-manager/firefox-nightly/policies.nix | |||
| @@ -0,0 +1,130 @@ | |||
| 1 | let | ||
| 2 | lock-false = { | ||
| 3 | Value = false; | ||
| 4 | Status = "locked"; | ||
| 5 | }; | ||
| 6 | lock-true = { | ||
| 7 | Value = true; | ||
| 8 | Status = "locked"; | ||
| 9 | }; | ||
| 10 | in | ||
| 11 | { | ||
| 12 | |||
| 13 | EnableTrackingProtection = { | ||
| 14 | Value = true; | ||
| 15 | Locked = true; | ||
| 16 | Cryptomining = true; | ||
| 17 | Fingerprinting = true; | ||
| 18 | EmailTracking = true; | ||
| 19 | }; | ||
| 20 | UserMessaging = { | ||
| 21 | WhatsNew = false; | ||
| 22 | ExtensionRecommendations = false; | ||
| 23 | FeatureRecommendations = false; | ||
| 24 | UrlbarInterventions = false; | ||
| 25 | SkipOnboarding = true; | ||
| 26 | MoreFromMozilla = false; | ||
| 27 | Labs = false; | ||
| 28 | Locked = true; | ||
| 29 | }; | ||
| 30 | DisableAppUpdate = true; | ||
| 31 | DisableAccounts = true; | ||
| 32 | DisableFirefoxAccounts = true; | ||
| 33 | DisableFirefoxStudies = true; | ||
| 34 | DisablePocket = true; | ||
| 35 | DisableTelemetry = true; | ||
| 36 | AutofillAddressEnabled = false; | ||
| 37 | AutofillCreditCardEnabled = false; | ||
| 38 | DisableMasterPasswordCreation = true; | ||
| 39 | PasswordManagerEnabled = false; | ||
| 40 | PrimaryPassword = false; | ||
| 41 | OfferToSaveLogins = false; | ||
| 42 | NoDefaultBookmarks = true; | ||
| 43 | OverrideFirstRunPage = ""; | ||
| 44 | OverridePostUpdatePage = ""; | ||
| 45 | FirefoxHome = { | ||
| 46 | Search = true; | ||
| 47 | TopSites = true; | ||
| 48 | SponsoredTopSites = false; | ||
| 49 | Highlights = false; | ||
| 50 | Pocket = false; | ||
| 51 | SponsoredPocket = false; | ||
| 52 | Snippets = false; | ||
| 53 | Locked = true; | ||
| 54 | }; | ||
| 55 | SearchSuggestEnabled = true; | ||
| 56 | FirefoxSuggest = { | ||
| 57 | WebSuggestions = true; | ||
| 58 | SponsoredSuggestions = false; | ||
| 59 | ImproveSuggest = false; | ||
| 60 | Locked = true; | ||
| 61 | }; | ||
| 62 | PictureInPicture = lock-true; | ||
| 63 | HardwareAcceleration = true; | ||
| 64 | Certificates = { | ||
| 65 | ImportEnterpriseRoots = true; | ||
| 66 | }; | ||
| 67 | ExtensionSettings = { | ||
| 68 | #"*".installation_mode = "blocked"; | ||
| 69 | # uBlock Origin | ||
| 70 | "uBlock0@raymondhill.net" = { | ||
| 71 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; | ||
| 72 | installation_mode = "force_installed"; | ||
| 73 | }; | ||
| 74 | # Bitwarden | ||
| 75 | "{446900e4-71c2-419f-a6a7-df9c091e268b}" = { | ||
| 76 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi"; | ||
| 77 | installation_mode = "normal_installed"; | ||
| 78 | }; | ||
| 79 | # SponsorBlock | ||
| 80 | "sponsorBlocker@ajay.app" = { | ||
| 81 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/sponsorblock/latest.xpi"; | ||
| 82 | installation_mode = "force_installed"; | ||
| 83 | }; | ||
| 84 | # DeArrow | ||
| 85 | "deArrow@ajay.app" = { | ||
| 86 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/dearrow/latest.xpi"; | ||
| 87 | installation_mode = "force_installed"; | ||
| 88 | }; | ||
| 89 | # Return Youtube Dislike | ||
| 90 | "{762f9885-5a13-4abd-9c77-433dcd38b8fd}" = { | ||
| 91 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/return-youtube-dislikes/latest.xpi"; | ||
| 92 | installation_mode = "force_installed"; | ||
| 93 | }; | ||
| 94 | # Youtube Nonstop | ||
| 95 | "{0d7cafdd-501c-49ca-8ebb-e3341caaa55e}" = { | ||
| 96 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/youtube-nonstop/latest.xpi"; | ||
| 97 | installation_mode = "force_installed"; | ||
| 98 | }; | ||
| 99 | # Sidebery | ||
| 100 | "{3c078156-979c-498b-8990-85f7987dd929}" = { | ||
| 101 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/sidebery/latest.xpi"; | ||
| 102 | installation_mode = "normal_installed"; | ||
| 103 | }; | ||
| 104 | # TamperMonkey | ||
| 105 | "firefox@tampermonkey.net" = { | ||
| 106 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/tampermonkey/latest.xpi"; | ||
| 107 | installation_mode = "force_installed"; | ||
| 108 | }; | ||
| 109 | # Floccus | ||
| 110 | "floccus@handmadeideas.org" = { | ||
| 111 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/floccus/latest.xpi"; | ||
| 112 | installation_mode = "force_installed"; | ||
| 113 | }; | ||
| 114 | }; | ||
| 115 | Preferences = { | ||
| 116 | "browser.startup.homepage" = "https://d.in.rschanz.org"; | ||
| 117 | "extensions.activeThemeID" = { | ||
| 118 | Value = "firefox-compact-dark@mozilla.org"; | ||
| 119 | Status = "locked"; | ||
| 120 | }; | ||
| 121 | "toolkit.legacyUserProfileCustomizations.stylesheets" = lock-true; | ||
| 122 | "xpinstall.whitelist.required" = lock-true; | ||
| 123 | "dom.webgpu.enabled" = lock-true; | ||
| 124 | "media.eme.enabled" = lock-true; | ||
| 125 | "general.autoScroll" = lock-true; | ||
| 126 | "general.smoothScroll" = lock-true; | ||
| 127 | "browser.crashReports.unsubmittedCheck.autoSubmit2" = lock-false; | ||
| 128 | "browser.aboutConfig.showWarning" = lock-false; | ||
| 129 | }; | ||
| 130 | } | ||
diff --git a/home-config/nix-home-manager/flake.lock b/home-config/nix-home-manager/flake.lock index 9d258f0..9316edc 100644 --- a/home-config/nix-home-manager/flake.lock +++ b/home-config/nix-home-manager/flake.lock | |||
| @@ -33,6 +33,22 @@ | |||
| 33 | "type": "github" | 33 | "type": "github" |
| 34 | } | 34 | } |
| 35 | }, | 35 | }, |
| 36 | "cachix": { | ||
| 37 | "locked": { | ||
| 38 | "lastModified": 1635350005, | ||
| 39 | "narHash": "sha256-tAMJnUwfaDEB2aa31jGcu7R7bzGELM9noc91L2PbVjg=", | ||
| 40 | "owner": "nixos", | ||
| 41 | "repo": "nixpkgs", | ||
| 42 | "rev": "1c1f5649bb9c1b0d98637c8c365228f57126f361", | ||
| 43 | "type": "github" | ||
| 44 | }, | ||
| 45 | "original": { | ||
| 46 | "owner": "nixos", | ||
| 47 | "ref": "nixos-20.09", | ||
| 48 | "repo": "nixpkgs", | ||
| 49 | "type": "github" | ||
| 50 | } | ||
| 51 | }, | ||
| 36 | "flake-compat": { | 52 | "flake-compat": { |
| 37 | "flake": false, | 53 | "flake": false, |
| 38 | "locked": { | 54 | "locked": { |
| @@ -49,7 +65,40 @@ | |||
| 49 | "type": "github" | 65 | "type": "github" |
| 50 | } | 66 | } |
| 51 | }, | 67 | }, |
| 68 | "flake-compat_2": { | ||
| 69 | "locked": { | ||
| 70 | "lastModified": 1717312683, | ||
| 71 | "narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=", | ||
| 72 | "owner": "nix-community", | ||
| 73 | "repo": "flake-compat", | ||
| 74 | "rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea", | ||
| 75 | "type": "github" | ||
| 76 | }, | ||
| 77 | "original": { | ||
| 78 | "owner": "nix-community", | ||
| 79 | "repo": "flake-compat", | ||
| 80 | "type": "github" | ||
| 81 | } | ||
| 82 | }, | ||
| 52 | "flake-utils": { | 83 | "flake-utils": { |
| 84 | "inputs": { | ||
| 85 | "systems": "systems_4" | ||
| 86 | }, | ||
| 87 | "locked": { | ||
| 88 | "lastModified": 1731533236, | ||
| 89 | "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", | ||
| 90 | "owner": "numtide", | ||
| 91 | "repo": "flake-utils", | ||
| 92 | "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", | ||
| 93 | "type": "github" | ||
| 94 | }, | ||
| 95 | "original": { | ||
| 96 | "owner": "numtide", | ||
| 97 | "repo": "flake-utils", | ||
| 98 | "type": "github" | ||
| 99 | } | ||
| 100 | }, | ||
| 101 | "flake-utils_2": { | ||
| 53 | "locked": { | 102 | "locked": { |
| 54 | "lastModified": 1659877975, | 103 | "lastModified": 1659877975, |
| 55 | "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", | 104 | "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", |
| @@ -93,17 +142,17 @@ | |||
| 93 | ] | 142 | ] |
| 94 | }, | 143 | }, |
| 95 | "locked": { | 144 | "locked": { |
| 96 | "lastModified": 1736785676, | 145 | "lastModified": 1740579671, |
| 97 | "narHash": "sha256-TY0jUwR3EW0fnS0X5wXMAVy6h4Z7Y6a3m+Yq++C9AyE=", | 146 | "narHash": "sha256-Dwt/3KknOQ4bgFG5YjqDT7oWRy27rPpDjAi2P0ok1zw=", |
| 98 | "owner": "nix-community", | 147 | "owner": "nix-community", |
| 99 | "repo": "home-manager", | 148 | "repo": "home-manager", |
| 100 | "rev": "fc52a210b60f2f52c74eac41a8647c1573d2071d", | 149 | "rev": "53c587d263f94aaf6a281745923c76bbec62bcf3", |
| 101 | "type": "github" | 150 | "type": "github" |
| 102 | }, | 151 | }, |
| 103 | "original": { | 152 | "original": { |
| 104 | "owner": "nix-community", | 153 | "owner": "nix-community", |
| 105 | "repo": "home-manager", | 154 | "repo": "home-manager", |
| 106 | "rev": "fc52a210b60f2f52c74eac41a8647c1573d2071d", | 155 | "rev": "53c587d263f94aaf6a281745923c76bbec62bcf3", |
| 107 | "type": "github" | 156 | "type": "github" |
| 108 | } | 157 | } |
| 109 | }, | 158 | }, |
| @@ -538,9 +587,69 @@ | |||
| 538 | "type": "github" | 587 | "type": "github" |
| 539 | } | 588 | } |
| 540 | }, | 589 | }, |
| 541 | "nixgl": { | 590 | "lib-aggregate": { |
| 542 | "inputs": { | 591 | "inputs": { |
| 543 | "flake-utils": "flake-utils", | 592 | "flake-utils": "flake-utils", |
| 593 | "nixpkgs-lib": "nixpkgs-lib" | ||
| 594 | }, | ||
| 595 | "locked": { | ||
| 596 | "lastModified": 1740312740, | ||
| 597 | "narHash": "sha256-z3M+zR18jGF1IIJ7Fp9LVOkEIUBhtY+65TSNq/DbgzQ=", | ||
| 598 | "owner": "nix-community", | ||
| 599 | "repo": "lib-aggregate", | ||
| 600 | "rev": "1229db6582e2ee6337d6fbc4c3c59f2ef0b6d481", | ||
| 601 | "type": "github" | ||
| 602 | }, | ||
| 603 | "original": { | ||
| 604 | "owner": "nix-community", | ||
| 605 | "repo": "lib-aggregate", | ||
| 606 | "type": "github" | ||
| 607 | } | ||
| 608 | }, | ||
| 609 | "mozff": { | ||
| 610 | "inputs": { | ||
| 611 | "cachix": "cachix", | ||
| 612 | "flake-compat": "flake-compat_2", | ||
| 613 | "lib-aggregate": "lib-aggregate", | ||
| 614 | "mozilla": "mozilla", | ||
| 615 | "nixpkgs": [ | ||
| 616 | "nixpkgs" | ||
| 617 | ] | ||
| 618 | }, | ||
| 619 | "locked": { | ||
| 620 | "lastModified": 1740573223, | ||
| 621 | "narHash": "sha256-OVysWIAwSvjCabd5F3QAyNXjU7bcNQ/zNve6YS5mZh4=", | ||
| 622 | "owner": "nix-community", | ||
| 623 | "repo": "flake-firefox-nightly", | ||
| 624 | "rev": "3391372604cd3def19e6df88a51f1882aabcd59f", | ||
| 625 | "type": "github" | ||
| 626 | }, | ||
| 627 | "original": { | ||
| 628 | "owner": "nix-community", | ||
| 629 | "repo": "flake-firefox-nightly", | ||
| 630 | "rev": "3391372604cd3def19e6df88a51f1882aabcd59f", | ||
| 631 | "type": "github" | ||
| 632 | } | ||
| 633 | }, | ||
| 634 | "mozilla": { | ||
| 635 | "flake": false, | ||
| 636 | "locked": { | ||
| 637 | "lastModified": 1736765918, | ||
| 638 | "narHash": "sha256-oh7GSCjBGHpxaU8/gejT55mlvI3qoKObXgqyn1XR7SA=", | ||
| 639 | "owner": "mozilla", | ||
| 640 | "repo": "nixpkgs-mozilla", | ||
| 641 | "rev": "534ee26d3dbcbb9da3766c556638b9bcc3627871", | ||
| 642 | "type": "github" | ||
| 643 | }, | ||
| 644 | "original": { | ||
| 645 | "owner": "mozilla", | ||
| 646 | "repo": "nixpkgs-mozilla", | ||
| 647 | "type": "github" | ||
| 648 | } | ||
| 649 | }, | ||
| 650 | "nixgl": { | ||
| 651 | "inputs": { | ||
| 652 | "flake-utils": "flake-utils_2", | ||
| 544 | "nixpkgs": [ | 653 | "nixpkgs": [ |
| 545 | "nixpkgs" | 654 | "nixpkgs" |
| 546 | ] | 655 | ] |
| @@ -562,17 +671,32 @@ | |||
| 562 | }, | 671 | }, |
| 563 | "nixpkgs": { | 672 | "nixpkgs": { |
| 564 | "locked": { | 673 | "locked": { |
| 565 | "lastModified": 1736012469, | 674 | "lastModified": 1739736696, |
| 566 | "narHash": "sha256-/qlNWm/IEVVH7GfgAIyP6EsVZI6zjAx1cV5zNyrs+rI=", | 675 | "narHash": "sha256-zON2GNBkzsIyALlOCFiEBcIjI4w38GYOb+P+R4S8Jsw=", |
| 567 | "owner": "nixos", | 676 | "owner": "nixos", |
| 568 | "repo": "nixpkgs", | 677 | "repo": "nixpkgs", |
| 569 | "rev": "8f3e1f807051e32d8c95cd12b9b421623850a34d", | 678 | "rev": "d74a2335ac9c133d6bbec9fc98d91a77f1604c1f", |
| 570 | "type": "github" | 679 | "type": "github" |
| 571 | }, | 680 | }, |
| 572 | "original": { | 681 | "original": { |
| 573 | "owner": "nixos", | 682 | "owner": "nixos", |
| 574 | "repo": "nixpkgs", | 683 | "repo": "nixpkgs", |
| 575 | "rev": "8f3e1f807051e32d8c95cd12b9b421623850a34d", | 684 | "rev": "d74a2335ac9c133d6bbec9fc98d91a77f1604c1f", |
| 685 | "type": "github" | ||
| 686 | } | ||
| 687 | }, | ||
| 688 | "nixpkgs-lib": { | ||
| 689 | "locked": { | ||
| 690 | "lastModified": 1740272720, | ||
| 691 | "narHash": "sha256-oiwv/ZK/2FhGxrCkQkB83i7GnWXPPLzoqFHpDD3uYpk=", | ||
| 692 | "owner": "nix-community", | ||
| 693 | "repo": "nixpkgs.lib", | ||
| 694 | "rev": "3d8ac19b63cf9d8305eed7301e4e83ff4ce9f495", | ||
| 695 | "type": "github" | ||
| 696 | }, | ||
| 697 | "original": { | ||
| 698 | "owner": "nix-community", | ||
| 699 | "repo": "nixpkgs.lib", | ||
| 576 | "type": "github" | 700 | "type": "github" |
| 577 | } | 701 | } |
| 578 | }, | 702 | }, |
| @@ -605,6 +729,7 @@ | |||
| 605 | "hyprland": "hyprland", | 729 | "hyprland": "hyprland", |
| 606 | "hyprlock": "hyprlock", | 730 | "hyprlock": "hyprlock", |
| 607 | "hyprpicker-git": "hyprpicker-git", | 731 | "hyprpicker-git": "hyprpicker-git", |
| 732 | "mozff": "mozff", | ||
| 608 | "nixgl": "nixgl", | 733 | "nixgl": "nixgl", |
| 609 | "nixpkgs": "nixpkgs", | 734 | "nixpkgs": "nixpkgs", |
| 610 | "wpaperd": "wpaperd" | 735 | "wpaperd": "wpaperd" |
| @@ -678,6 +803,21 @@ | |||
| 678 | }, | 803 | }, |
| 679 | "systems_4": { | 804 | "systems_4": { |
| 680 | "locked": { | 805 | "locked": { |
| 806 | "lastModified": 1681028828, | ||
| 807 | "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", | ||
| 808 | "owner": "nix-systems", | ||
| 809 | "repo": "default", | ||
| 810 | "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", | ||
| 811 | "type": "github" | ||
| 812 | }, | ||
| 813 | "original": { | ||
| 814 | "owner": "nix-systems", | ||
| 815 | "repo": "default", | ||
| 816 | "type": "github" | ||
| 817 | } | ||
| 818 | }, | ||
| 819 | "systems_5": { | ||
| 820 | "locked": { | ||
| 681 | "lastModified": 1689347949, | 821 | "lastModified": 1689347949, |
| 682 | "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", | 822 | "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", |
| 683 | "owner": "nix-systems", | 823 | "owner": "nix-systems", |
| @@ -697,7 +837,7 @@ | |||
| 697 | "nixpkgs" | 837 | "nixpkgs" |
| 698 | ], | 838 | ], |
| 699 | "rust-overlay": "rust-overlay", | 839 | "rust-overlay": "rust-overlay", |
| 700 | "systems": "systems_4" | 840 | "systems": "systems_5" |
| 701 | }, | 841 | }, |
| 702 | "locked": { | 842 | "locked": { |
| 703 | "lastModified": 1734445299, | 843 | "lastModified": 1734445299, |
diff --git a/home-config/nix-home-manager/flake.nix b/home-config/nix-home-manager/flake.nix index 23bdb13..b680ab9 100644 --- a/home-config/nix-home-manager/flake.nix +++ b/home-config/nix-home-manager/flake.nix | |||
| @@ -3,9 +3,9 @@ | |||
| 3 | 3 | ||
| 4 | inputs = { | 4 | inputs = { |
| 5 | # Specify the source of Home Manager and Nixpkgs. | 5 | # Specify the source of Home Manager and Nixpkgs. |
| 6 | nixpkgs.url = "github:nixos/nixpkgs/8f3e1f807051e32d8c95cd12b9b421623850a34d"; | 6 | nixpkgs.url = "github:nixos/nixpkgs/d74a2335ac9c133d6bbec9fc98d91a77f1604c1f"; |
| 7 | home-manager = { | 7 | home-manager = { |
| 8 | url = "github:nix-community/home-manager/fc52a210b60f2f52c74eac41a8647c1573d2071d"; | 8 | url = "github:nix-community/home-manager/53c587d263f94aaf6a281745923c76bbec62bcf3"; |
| 9 | inputs.nixpkgs.follows = "nixpkgs"; | 9 | inputs.nixpkgs.follows = "nixpkgs"; |
| 10 | }; | 10 | }; |
| 11 | hyprlock = { | 11 | hyprlock = { |
| @@ -29,16 +29,18 @@ | |||
| 29 | url = "github:danyspin97/wpaperd/b0b7e66fd32dca36c431a174784a2e87af7edb77"; | 29 | url = "github:danyspin97/wpaperd/b0b7e66fd32dca36c431a174784a2e87af7edb77"; |
| 30 | inputs.nixpkgs.follows = "nixpkgs"; | 30 | inputs.nixpkgs.follows = "nixpkgs"; |
| 31 | }; | 31 | }; |
| 32 | #mozff.url = "github:mozilla/nixpkgs-mozilla"; | 32 | mozff = { |
| 33 | url = "github:nix-community/flake-firefox-nightly/3391372604cd3def19e6df88a51f1882aabcd59f"; | ||
| 34 | inputs.nixpkgs.follows = "nixpkgs"; | ||
| 35 | }; | ||
| 33 | }; | 36 | }; |
| 34 | 37 | ||
| 35 | outputs = { nixpkgs, home-manager, hyprland, nixgl, wpaperd, hyprpicker-git, hyprlock, ... }@inputs: | 38 | outputs = { nixpkgs, home-manager, hyprland, nixgl, wpaperd, hyprpicker-git, hyprlock, mozff, ... }@inputs: |
| 36 | let | 39 | let |
| 37 | system = "x86_64-linux"; | 40 | system = "x86_64-linux"; |
| 38 | pkgs = nixpkgs.legacyPackages.${system}; | 41 | pkgs = nixpkgs.legacyPackages.${system}; |
| 39 | overlays = [ | 42 | overlays = [ |
| 40 | nixgl.overlay | 43 | #nixgl.overlay |
| 41 | #mozff.overlays.firefox | ||
| 42 | ]; | 44 | ]; |
| 43 | in { | 45 | in { |
| 44 | homeConfigurations."ryan" = home-manager.lib.homeManagerConfiguration { | 46 | homeConfigurations."ryan" = home-manager.lib.homeManagerConfiguration { |
| @@ -56,6 +58,7 @@ | |||
| 56 | inherit wpaperd; | 58 | inherit wpaperd; |
| 57 | inherit hyprlock; | 59 | inherit hyprlock; |
| 58 | inherit hyprpicker-git; | 60 | inherit hyprpicker-git; |
| 61 | inherit mozff; | ||
| 59 | }; | 62 | }; |
| 60 | } | 63 | } |
| 61 | ]; | 64 | ]; |
diff --git a/home-config/nix-home-manager/home.nix b/home-config/nix-home-manager/home.nix index d7089dc..4c72beb 100644 --- a/home-config/nix-home-manager/home.nix +++ b/home-config/nix-home-manager/home.nix | |||
| @@ -1,15 +1,9 @@ | |||
| 1 | { config, pkgs, hyprland, nixgl, wpaperd, hyprpicker-git, hyprlock, ... }: | 1 | { config, pkgs, hyprland, nixgl, wpaperd, hyprpicker-git, hyprlock, mozff, ... }: |
| 2 | let | 2 | |
| 3 | lock-false = { | ||
| 4 | Value = false; | ||
| 5 | Status = "locked"; | ||
| 6 | }; | ||
| 7 | lock-true = { | ||
| 8 | Value = true; | ||
| 9 | Status = "locked"; | ||
| 10 | }; | ||
| 11 | in | ||
| 12 | { | 3 | { |
| 4 | imports = [ | ||
| 5 | ./firefox-nightly/default.nix | ||
| 6 | ]; | ||
| 13 | # Home Manager needs a bit of information about you and the paths it should | 7 | # Home Manager needs a bit of information about you and the paths it should |
| 14 | # manage. | 8 | # manage. |
| 15 | home.username = "ryan"; | 9 | home.username = "ryan"; |
| @@ -40,313 +34,6 @@ | |||
| 40 | 34 | ||
| 41 | # wayland.windowManager.hyprland.enable = true; | 35 | # wayland.windowManager.hyprland.enable = true; |
| 42 | 36 | ||
| 43 | # Install firefox and add some customizations | ||
| 44 | programs.firefox = { | ||
| 45 | enable = true; | ||
| 46 | policies = { | ||
| 47 | EnableTrackingProtection = { | ||
| 48 | Value = true; | ||
| 49 | Locked = true; | ||
| 50 | Cryptomining = true; | ||
| 51 | Fingerprinting = true; | ||
| 52 | EmailTracking = true; | ||
| 53 | }; | ||
| 54 | UserMessaging = { | ||
| 55 | WhatsNew = false; | ||
| 56 | ExtensionRecommendations = false; | ||
| 57 | FeatureRecommendations = false; | ||
| 58 | UrlbarInterventions = false; | ||
| 59 | SkipOnboarding = true; | ||
| 60 | MoreFromMozilla = false; | ||
| 61 | Labs = false; | ||
| 62 | Locked = true; | ||
| 63 | }; | ||
| 64 | DisableAppUpdate = true; | ||
| 65 | DisableAccounts = true; | ||
| 66 | DisableFirefoxAccounts = true; | ||
| 67 | DisableFirefoxStudies = true; | ||
| 68 | DisablePocket = true; | ||
| 69 | DisableTelemetry = true; | ||
| 70 | AutofillAddressEnabled = false; | ||
| 71 | AutofillCreditCardEnabled = false; | ||
| 72 | DisableMasterPasswordCreation = true; | ||
| 73 | PasswordManagerEnabled = false; | ||
| 74 | PrimaryPassword = false; | ||
| 75 | OfferToSaveLogins = false; | ||
| 76 | NoDefaultBookmarks = true; | ||
| 77 | OverrideFirstRunPage = ""; | ||
| 78 | OverridePostUpdatePage = ""; | ||
| 79 | FirefoxHome = { | ||
| 80 | Search = true; | ||
| 81 | TopSites = true; | ||
| 82 | SponsoredTopSites = false; | ||
| 83 | Highlights = false; | ||
| 84 | Pocket = false; | ||
| 85 | SponsoredPocket = false; | ||
| 86 | Snippets = false; | ||
| 87 | Locked = true; | ||
| 88 | }; | ||
| 89 | SearchSuggestEnabled = true; | ||
| 90 | FirefoxSuggest = { | ||
| 91 | WebSuggestions = true; | ||
| 92 | SponsoredSuggestions = false; | ||
| 93 | ImproveSuggest = false; | ||
| 94 | Locked = true; | ||
| 95 | }; | ||
| 96 | PictureInPicture = lock-true; | ||
| 97 | HardwareAcceleration = true; | ||
| 98 | Certificates = { | ||
| 99 | ImportEnterpriseRoots = true; | ||
| 100 | }; | ||
| 101 | ExtensionSettings = { | ||
| 102 | #"*".installation_mode = "blocked"; | ||
| 103 | # uBlock Origin | ||
| 104 | "uBlock0@raymondhill.net" = { | ||
| 105 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; | ||
| 106 | installation_mode = "force_installed"; | ||
| 107 | }; | ||
| 108 | # Bitwarden | ||
| 109 | "{446900e4-71c2-419f-a6a7-df9c091e268b}" = { | ||
| 110 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi"; | ||
| 111 | installation_mode = "normal_installed"; | ||
| 112 | }; | ||
| 113 | # SponsorBlock | ||
| 114 | "sponsorBlocker@ajay.app" = { | ||
| 115 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/sponsorblock/latest.xpi"; | ||
| 116 | installation_mode = "force_installed"; | ||
| 117 | }; | ||
| 118 | # DeArrow | ||
| 119 | "deArrow@ajay.app" = { | ||
| 120 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/dearrow/latest.xpi"; | ||
| 121 | installation_mode = "force_installed"; | ||
| 122 | }; | ||
| 123 | # Return Youtube Dislike | ||
| 124 | "{762f9885-5a13-4abd-9c77-433dcd38b8fd}" = { | ||
| 125 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/return-youtube-dislikes/latest.xpi"; | ||
| 126 | installation_mode = "force_installed"; | ||
| 127 | }; | ||
| 128 | # Youtube Nonstop | ||
| 129 | "{0d7cafdd-501c-49ca-8ebb-e3341caaa55e}" = { | ||
| 130 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/youtube-nonstop/latest.xpi"; | ||
| 131 | installation_mode = "force_installed"; | ||
| 132 | }; | ||
| 133 | # Sidebery | ||
| 134 | "{3c078156-979c-498b-8990-85f7987dd929}" = { | ||
| 135 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/sidebery/latest.xpi"; | ||
| 136 | installation_mode = "normal_installed"; | ||
| 137 | }; | ||
| 138 | # TamperMonkey | ||
| 139 | "firefox@tampermonkey.net" = { | ||
| 140 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/tampermonkey/latest.xpi"; | ||
| 141 | installation_mode = "force_installed"; | ||
| 142 | }; | ||
| 143 | # Floccus | ||
| 144 | "floccus@handmadeideas.org" = { | ||
| 145 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/floccus/latest.xpi"; | ||
| 146 | installation_mode = "force_installed"; | ||
| 147 | }; | ||
| 148 | }; | ||
| 149 | Preferences = { | ||
| 150 | "browser.startup.homepage" = "https://d.in.rschanz.org"; | ||
| 151 | "extensions.activeThemeID" = { | ||
| 152 | Value = "firefox-compact-dark@mozilla.org"; | ||
| 153 | Status = "locked"; | ||
| 154 | }; | ||
| 155 | "toolkit.legacyUserProfileCustomizations.stylesheets" = lock-true; | ||
| 156 | "xpinstall.whitelist.required" = lock-true; | ||
| 157 | "dom.webgpu.enabled" = lock-true; | ||
| 158 | "media.eme.enabled" = lock-true; | ||
| 159 | "general.autoScroll" = lock-true; | ||
| 160 | "general.smoothScroll" = lock-true; | ||
| 161 | "browser.crashReports.unsubmittedCheck.autoSubmit2" = lock-false; | ||
| 162 | "browser.aboutConfig.showWarning" = lock-false; | ||
| 163 | }; | ||
| 164 | }; | ||
| 165 | profiles.${config.home.username} = { | ||
| 166 | name = "${config.home.username}"; | ||
| 167 | isDefault = true; | ||
| 168 | containersForce = true; | ||
| 169 | containers = { | ||
| 170 | rit = { | ||
| 171 | name = "RIT"; | ||
| 172 | color = "orange"; | ||
| 173 | icon = "dollar"; | ||
| 174 | id = 1; | ||
| 175 | }; | ||
| 176 | ritwork = { | ||
| 177 | name = "RIT Work"; | ||
| 178 | color = "green"; | ||
| 179 | icon = "briefcase"; | ||
| 180 | id = 2; | ||
| 181 | }; | ||
| 182 | other = { | ||
| 183 | name = "Other"; | ||
| 184 | color = "blue"; | ||
| 185 | icon = "fingerprint"; | ||
| 186 | id = 3; | ||
| 187 | }; | ||
| 188 | }; | ||
| 189 | search = { | ||
| 190 | force = true; | ||
| 191 | default = "DuckDuckGo"; | ||
| 192 | order = ["DuckDuckGo" "Google"]; | ||
| 193 | engines = { | ||
| 194 | "Nix Packages" = { | ||
| 195 | urls = [ | ||
| 196 | { | ||
| 197 | template = "https://search.nixos.org/packages"; | ||
| 198 | params = [ | ||
| 199 | { | ||
| 200 | name = "type"; | ||
| 201 | value = "packages"; | ||
| 202 | } | ||
| 203 | { | ||
| 204 | name = "channel"; | ||
| 205 | value = "unstable"; | ||
| 206 | } | ||
| 207 | { | ||
| 208 | name = "query"; | ||
| 209 | value = "{searchTerms}"; | ||
| 210 | } | ||
| 211 | ]; | ||
| 212 | } | ||
| 213 | ]; | ||
| 214 | icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; | ||
| 215 | definedAliases = ["@np"]; | ||
| 216 | }; | ||
| 217 | }; | ||
| 218 | }; | ||
| 219 | userChrome = " | ||
| 220 | #main-window .toolbar-items { | ||
| 221 | overflow: hidden; | ||
| 222 | transition: height 0.3s 0.3s !important; | ||
| 223 | } | ||
| 224 | /* Default state: Set initial height to enable animation */ | ||
| 225 | #main-window .toolbar-items { height: 3em !important; } | ||
| 226 | #main-window .titlebar-button { height: 3em !important; } | ||
| 227 | #main-window[uidensity=\"touch\"] .toolbar-items { height: 3.35em !important; } | ||
| 228 | #main-window[uidensity=\"compact\"] .toolbar-items { height: 2.7em !important; } | ||
| 229 | /* Hidden state: Hide native tabs strip */ | ||
| 230 | #main-window[titlepreface*=\"\"] .toolbar-items { height: 0 !important; } | ||
| 231 | #main-window[titlepreface*=\"\"] .titlebar-button { height: 0 !important; } | ||
| 232 | /* Hidden state: Fix z-index of active pinned tabs */ | ||
| 233 | #main-window[titlepreface*=\"\"] #tabbrowser-tabs { z-index: 0 !important; } | ||
| 234 | |||
| 235 | /* Sidebery expand on mouse-over and hide otherwise */ | ||
| 236 | |||
| 237 | /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/autohide_sidebar.css made available under Mozilla Public License v. 2.0 | ||
| 238 | See the above repository for updates as well as full license text. */ | ||
| 239 | |||
| 240 | /* Show sidebar only when the cursor is over it */ | ||
| 241 | /* The border controlling sidebar width will be removed so you'll need to modify these values to change width */ | ||
| 242 | |||
| 243 | #sidebar-box{ | ||
| 244 | --uc-sidebar-width: 60px; | ||
| 245 | --uc-sidebar-hover-width: 230px; | ||
| 246 | --uc-autohide-sidebar-delay: 200ms; /* Wait 0.2s before hiding sidebar */ | ||
| 247 | --uc-autohide-transition-duration: 115ms; | ||
| 248 | --uc-autohide-transition-type: linear; | ||
| 249 | --browser-area-z-index-sidebar: 3; | ||
| 250 | position: relative; | ||
| 251 | min-width: var(--uc-sidebar-width) !important; | ||
| 252 | width: var(--uc-sidebar-width) !important; | ||
| 253 | max-width: var(--uc-sidebar-width) !important; | ||
| 254 | z-index: var(--browser-area-z-index-sidebar,3); | ||
| 255 | } | ||
| 256 | #sidebar-box[positionend]{ direction: rtl } | ||
| 257 | #sidebar-box[positionend] > *{ direction: ltr } | ||
| 258 | |||
| 259 | #sidebar-box[positionend]:-moz-locale-dir(rtl){ direction: ltr } | ||
| 260 | #sidebar-box[positionend]:-moz-locale-dir(rtl) > *{ direction: rtl } | ||
| 261 | |||
| 262 | #main-window[sizemode=\"fullscreen\"] #sidebar-box{ --uc-sidebar-width: 1px; } | ||
| 263 | |||
| 264 | #sidebar-splitter{ display: none } | ||
| 265 | |||
| 266 | #sidebar-header{ | ||
| 267 | overflow: hidden; | ||
| 268 | color: var(--chrome-color, inherit) !important; | ||
| 269 | padding-inline: 0 !important; | ||
| 270 | } | ||
| 271 | |||
| 272 | #sidebar-header::before, | ||
| 273 | #sidebar-header::after{ | ||
| 274 | content: \"\"; | ||
| 275 | display: flex; | ||
| 276 | padding-left: 8px; | ||
| 277 | } | ||
| 278 | |||
| 279 | #sidebar-header, | ||
| 280 | #sidebar{ | ||
| 281 | transition: min-width var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay) !important; | ||
| 282 | min-width: var(--uc-sidebar-width) !important; | ||
| 283 | will-change: min-width; | ||
| 284 | } | ||
| 285 | #sidebar-box:hover > #sidebar-header, | ||
| 286 | #sidebar-box:hover > #sidebar{ | ||
| 287 | min-width: var(--uc-sidebar-hover-width) !important; | ||
| 288 | transition-delay: 0ms !important; | ||
| 289 | } | ||
| 290 | |||
| 291 | .sidebar-panel{ | ||
| 292 | background-color: transparent !important; | ||
| 293 | color: var(--newtab-text-primary-color) !important; | ||
| 294 | } | ||
| 295 | |||
| 296 | .sidebar-panel #search-box{ | ||
| 297 | -moz-appearance: none !important; | ||
| 298 | background-color: rgba(249,249,250,0.1) !important; | ||
| 299 | color: inherit !important; | ||
| 300 | } | ||
| 301 | |||
| 302 | /* Add sidebar divider and give it background */ | ||
| 303 | |||
| 304 | #sidebar, | ||
| 305 | #sidebar-header{ | ||
| 306 | background-color: inherit !important; | ||
| 307 | border-inline: 1px solid rgb(80,80,80); | ||
| 308 | border-inline-width: 0px 1px; | ||
| 309 | } | ||
| 310 | |||
| 311 | #sidebar-box:not([positionend]) > :-moz-locale-dir(rtl), | ||
| 312 | #sidebar-box[positionend] > *{ | ||
| 313 | border-inline-width: 1px 0px; | ||
| 314 | } | ||
| 315 | |||
| 316 | /* Move statuspanel to the other side when sidebar is hovered so it doesn't get covered by sidebar */ | ||
| 317 | |||
| 318 | #sidebar-box:not([positionend]):hover ~ #appcontent #statuspanel{ | ||
| 319 | inset-inline: auto 0px !important; | ||
| 320 | } | ||
| 321 | #sidebar-box:not([positionend]):hover ~ #appcontent #statuspanel-label{ | ||
| 322 | margin-inline: 0px !important; | ||
| 323 | border-left-style: solid !important; | ||
| 324 | } | ||
| 325 | |||
| 326 | /* Remove the tabs label and move the Sidebary icon to the center of the box */ | ||
| 327 | #sidebar-box:hover [id=\"sidebar-icon\"] { | ||
| 328 | transform: translateX(0px) !important; | ||
| 329 | transition-delay: 0ms !important; | ||
| 330 | } | ||
| 331 | |||
| 332 | #sidebar-box [id=\"sidebar-icon\"] { | ||
| 333 | transform: translateX(9px); | ||
| 334 | transition: transform var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay) !important; | ||
| 335 | } | ||
| 336 | |||
| 337 | #sidebar-box [id=\"sidebar-title\"] { | ||
| 338 | visibility: hidden !important; | ||
| 339 | transition: visibility var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay) !important; | ||
| 340 | } | ||
| 341 | |||
| 342 | #sidebar-box:hover [id=\"sidebar-title\"] { | ||
| 343 | visibility: visible !important; | ||
| 344 | transition-delay: 0ms !important; | ||
| 345 | } | ||
| 346 | "; | ||
| 347 | }; | ||
| 348 | }; | ||
| 349 | |||
| 350 | programs.starship = { | 37 | programs.starship = { |
| 351 | enable = true; | 38 | enable = true; |
| 352 | settings = { | 39 | settings = { |
