summaryrefslogtreecommitdiff
path: root/home-config/nix-home-manager/home.nix
diff options
context:
space:
mode:
authorRyan Schanzenbacher <ryan@rschanz.org>2024-11-14 14:53:44 -0500
committerRyan Schanzenbacher <ryan@rschanz.org>2024-11-14 14:53:44 -0500
commita04498c0b18d6fdf7e600dd9c8b5e7db781c21f3 (patch)
treee52aee2a32cace262f5acee2d2397240e3b39cf8 /home-config/nix-home-manager/home.nix
parentbdb08351ce1afc15264658bcbb6ec03144874759 (diff)
Changed firefox to use nix configuration, completely reset profile. No
longer using mozilla account. Updated nixpkgs and home-manager Added wpaperd flake
Diffstat (limited to 'home-config/nix-home-manager/home.nix')
-rw-r--r--home-config/nix-home-manager/home.nix323
1 files changed, 319 insertions, 4 deletions
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 @@
1{ config, pkgs, hyprland, nixgl, ... }: 1{ config, pkgs, hyprland, nixgl, wpaperd, ... }:
2 2 let
3 lock-false = {
4 Value = false;
5 Status = "locked";
6 };
7 lock-true = {
8 Value = true;
9 Status = "locked";
10 };
11 in
3{ 12{
4 # Home Manager needs a bit of information about you and the paths it should 13 # Home Manager needs a bit of information about you and the paths it should
5 # manage. 14 # manage.
@@ -28,6 +37,311 @@
28 37
29 # wayland.windowManager.hyprland.enable = true; 38 # wayland.windowManager.hyprland.enable = true;
30 39
40 # Install firefox and add some customizations
41 programs.firefox = {
42 enable = true;
43 policies = {
44 EnableTrackingProtection = {
45 Value = true;
46 Locked = true;
47 Cryptomining = true;
48 Fingerprinting = true;
49 EmailTracking = true;
50 };
51 UserMessaging = {
52 WhatsNew = false;
53 ExtensionRecommendations = false;
54 FeatureRecommendations = false;
55 UrlbarInterventions = false;
56 SkipOnboarding = true;
57 MoreFromMozilla = false;
58 Labs = false;
59 Locked = true;
60 };
61 DisableAppUpdate = true;
62 DisableAccounts = true;
63 DisableFirefoxAccounts = true;
64 DisableFirefoxStudies = true;
65 DisablePocket = true;
66 DisableTelemetry = true;
67 AutofillAddressEnabled = false;
68 AutofillCreditCardEnabled = false;
69 DisableMasterPasswordCreation = true;
70 PasswordManagerEnabled = false;
71 PrimaryPassword = false;
72 OfferToSaveLogins = false;
73 NoDefaultBookmarks = true;
74 OverrideFirstRunPage = "";
75 OverridePostUpdatePage = "";
76 FirefoxHome = {
77 Search = true;
78 TopSites = true;
79 SponsoredTopSites = false;
80 Highlights = false;
81 Pocket = false;
82 SponsoredPocket = false;
83 Snippets = false;
84 Locked = true;
85 };
86 SearchSuggestEnabled = true;
87 FirefoxSuggest = {
88 WebSuggestions = true;
89 SponsoredSuggestions = false;
90 ImproveSuggest = false;
91 Locked = true;
92 };
93 PictureInPicture = lock-true;
94 HardwareAcceleration = true;
95 Certificates = {
96 ImportEnterpriseRoots = true;
97 };
98 ExtensionSettings = {
99 #"*".installation_mode = "blocked";
100 # uBlock Origin
101 "uBlock0@raymondhill.net" = {
102 install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
103 installation_mode = "force_installed";
104 };
105 # Bitwarden
106 "{446900e4-71c2-419f-a6a7-df9c091e268b}" = {
107 install_url = "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi";
108 installation_mode = "force_installed";
109 };
110 # SponsorBlock
111 "sponsorBlocker@ajay.app" = {
112 install_url = "https://addons.mozilla.org/firefox/downloads/latest/sponsorblock/latest.xpi";
113 installation_mode = "force_installed";
114 };
115 # DeArrow
116 "deArrow@ajay.app" = {
117 install_url = "https://addons.mozilla.org/firefox/downloads/latest/dearrow/latest.xpi";
118 installation_mode = "force_installed";
119 };
120 # Return Youtube Dislike
121 "{762f9885-5a13-4abd-9c77-433dcd38b8fd}" = {
122 install_url = "https://addons.mozilla.org/firefox/downloads/latest/return-youtube-dislikes/latest.xpi";
123 installation_mode = "force_installed";
124 };
125 # Youtube Nonstop
126 "{0d7cafdd-501c-49ca-8ebb-e3341caaa55e}" = {
127 install_url = "https://addons.mozilla.org/firefox/downloads/latest/youtube-nonstop/latest.xpi";
128 installation_mode = "force_installed";
129 };
130 # Sidebery
131 "{3c078156-979c-498b-8990-85f7987dd929}" = {
132 install_url = "https://addons.mozilla.org/firefox/downloads/latest/sidebery/latest.xpi";
133 installation_mode = "normal_installed";
134 };
135 # TamperMonkey
136 "firefox@tampermonkey.net" = {
137 install_url = "https://addons.mozilla.org/firefox/downloads/latest/tampermonkey/latest.xpi";
138 installation_mode = "force_installed";
139 };
140 # Floccus
141 "floccus@handmadeideas.org" = {
142 install_url = "https://addons.mozilla.org/firefox/downloads/latest/floccus/latest.xpi";
143 installation_mode = "force_installed";
144 };
145 };
146 Preferences = {
147 "browser.startup.homepage" = "https://d.in.rschanz.org";
148 "extensions.activeThemeID" = {
149 Value = "firefox-compact-dark@mozilla.org";
150 Status = "locked";
151 };
152 "toolkit.legacyUserProfileCustomizations.stylesheets" = lock-true;
153 "xpinstall.whitelist.required" = lock-true;
154 "dom.webgpu.enabled" = lock-true;
155 "media.eme.enabled" = lock-true;
156 "general.autoScroll" = lock-true;
157 "general.smoothScroll" = lock-true;
158 "browser.crashReports.unsubmittedCheck.autoSubmit2" = lock-false;
159 "browser.aboutConfig.showWarning" = lock-false;
160 };
161 };
162 profiles.${config.home.username} = {
163 name = "${config.home.username}";
164 isDefault = true;
165 containersForce = true;
166 containers = {
167 rit = {
168 name = "RIT";
169 color = "orange";
170 icon = "dollar";
171 id = 1;
172 };
173 ritwork = {
174 name = "RIT Work";
175 color = "green";
176 icon = "briefcase";
177 id = 2;
178 };
179 other = {
180 name = "Other";
181 color = "blue";
182 icon = "fingerprint";
183 id = 3;
184 };
185 };
186 search = {
187 force = true;
188 default = "DuckDuckGo";
189 order = ["DuckDuckGo" "Google"];
190 engines = {
191 "Nix Packages" = {
192 urls = [
193 {
194 template = "https://search.nixos.org/packages";
195 params = [
196 {
197 name = "type";
198 value = "packages";
199 }
200 {
201 name = "channel";
202 value = "unstable";
203 }
204 {
205 name = "query";
206 value = "{searchTerms}";
207 }
208 ];
209 }
210 ];
211 icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
212 definedAliases = ["@np"];
213 };
214 };
215 };
216 userChrome = "
217 #main-window #titlebar {
218 overflow: hidden;
219 transition: height 0.3s 0.3s !important;
220 }
221 /* Default state: Set initial height to enable animation */
222 #main-window #titlebar { height: 3em !important; }
223 #main-window[uidensity=\"touch\"] #titlebar { height: 3.35em !important; }
224 #main-window[uidensity=\"compact\"] #titlebar { height: 2.7em !important; }
225 /* Hidden state: Hide native tabs strip */
226 #main-window[titlepreface*=\"​\"] #titlebar { height: 0 !important; }
227 /* Hidden state: Fix z-index of active pinned tabs */
228 #main-window[titlepreface*=\"​\"] #tabbrowser-tabs { z-index: 0 !important; }
229
230 /* Sidebery expand on mouse-over and hide otherwise */
231
232 /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/autohide_sidebar.css made available under Mozilla Public License v. 2.0
233 See the above repository for updates as well as full license text. */
234
235 /* Show sidebar only when the cursor is over it */
236 /* The border controlling sidebar width will be removed so you'll need to modify these values to change width */
237
238 #sidebar-box{
239 --uc-sidebar-width: 60px;
240 --uc-sidebar-hover-width: 230px;
241 --uc-autohide-sidebar-delay: 200ms; /* Wait 0.2s before hiding sidebar */
242 --uc-autohide-transition-duration: 115ms;
243 --uc-autohide-transition-type: linear;
244 --browser-area-z-index-sidebar: 3;
245 position: relative;
246 min-width: var(--uc-sidebar-width) !important;
247 width: var(--uc-sidebar-width) !important;
248 max-width: var(--uc-sidebar-width) !important;
249 z-index: var(--browser-area-z-index-sidebar,3);
250 }
251 #sidebar-box[positionend]{ direction: rtl }
252 #sidebar-box[positionend] > *{ direction: ltr }
253
254 #sidebar-box[positionend]:-moz-locale-dir(rtl){ direction: ltr }
255 #sidebar-box[positionend]:-moz-locale-dir(rtl) > *{ direction: rtl }
256
257 #main-window[sizemode=\"fullscreen\"] #sidebar-box{ --uc-sidebar-width: 1px; }
258
259 #sidebar-splitter{ display: none }
260
261 #sidebar-header{
262 overflow: hidden;
263 color: var(--chrome-color, inherit) !important;
264 padding-inline: 0 !important;
265 }
266
267 #sidebar-header::before,
268 #sidebar-header::after{
269 content: \"\";
270 display: flex;
271 padding-left: 8px;
272 }
273
274 #sidebar-header,
275 #sidebar{
276 transition: min-width var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay) !important;
277 min-width: var(--uc-sidebar-width) !important;
278 will-change: min-width;
279 }
280 #sidebar-box:hover > #sidebar-header,
281 #sidebar-box:hover > #sidebar{
282 min-width: var(--uc-sidebar-hover-width) !important;
283 transition-delay: 0ms !important;
284 }
285
286 .sidebar-panel{
287 background-color: transparent !important;
288 color: var(--newtab-text-primary-color) !important;
289 }
290
291 .sidebar-panel #search-box{
292 -moz-appearance: none !important;
293 background-color: rgba(249,249,250,0.1) !important;
294 color: inherit !important;
295 }
296
297 /* Add sidebar divider and give it background */
298
299 #sidebar,
300 #sidebar-header{
301 background-color: inherit !important;
302 border-inline: 1px solid rgb(80,80,80);
303 border-inline-width: 0px 1px;
304 }
305
306 #sidebar-box:not([positionend]) > :-moz-locale-dir(rtl),
307 #sidebar-box[positionend] > *{
308 border-inline-width: 1px 0px;
309 }
310
311 /* Move statuspanel to the other side when sidebar is hovered so it doesn't get covered by sidebar */
312
313 #sidebar-box:not([positionend]):hover ~ #appcontent #statuspanel{
314 inset-inline: auto 0px !important;
315 }
316 #sidebar-box:not([positionend]):hover ~ #appcontent #statuspanel-label{
317 margin-inline: 0px !important;
318 border-left-style: solid !important;
319 }
320
321 /* Remove the tabs label and move the Sidebary icon to the center of the box */
322 #sidebar-box:hover [id=\"sidebar-icon\"] {
323 transform: translateX(0px) !important;
324 transition-delay: 0ms !important;
325 }
326
327 #sidebar-box [id=\"sidebar-icon\"] {
328 transform: translateX(9px);
329 transition: transform var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay) !important;
330 }
331
332 #sidebar-box [id=\"sidebar-title\"] {
333 visibility: hidden !important;
334 transition: visibility var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay) !important;
335 }
336
337 #sidebar-box:hover [id=\"sidebar-title\"] {
338 visibility: visible !important;
339 transition-delay: 0ms !important;
340 }
341 ";
342 };
343};
344
31 # The home.packages option allows you to install Nix packages into your 345 # The home.packages option allows you to install Nix packages into your
32 # environment. 346 # environment.
33 home.packages = with pkgs; [ 347 home.packages = with pkgs; [
@@ -56,9 +370,9 @@
56 imv 370 imv
57 libva 371 libva
58 libvdpau 372 libvdpau
59 wpaperd 373 #wpaperd
60 hypridle 374 hypridle
61 latest.firefox-nightly-bin 375 #latest.firefox-nightly-bin
62 eza 376 eza
63 377
64 # Wrapped programs for some env variables 378 # Wrapped programs for some env variables
@@ -72,6 +386,7 @@
72 hyprland.packages.${pkgs.system}.default 386 hyprland.packages.${pkgs.system}.default
73 hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland 387 hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland
74 nixgl.packages.${pkgs.system}.nixGLIntel 388 nixgl.packages.${pkgs.system}.nixGLIntel
389 wpaperd.packages.${pkgs.system}.wpaperd
75 390
76 # Fonts! 391 # Fonts!
77 noto-fonts 392 noto-fonts