diff options
Diffstat (limited to 'home/nix')
-rw-r--r-- | home/nix/flake.nix | 30 | ||||
-rw-r--r-- | home/nix/home.nix | 31 | ||||
-rw-r--r-- | home/nix/nix-channels | 3 | ||||
-rw-r--r-- | home/nix/nix.conf | 1 | ||||
-rw-r--r-- | home/nix/programs/default.nix | 5 | ||||
-rw-r--r-- | home/nix/programs/firefox.nix | 172 |
6 files changed, 242 insertions, 0 deletions
diff --git a/home/nix/flake.nix b/home/nix/flake.nix new file mode 100644 index 0000000..6738db4 --- /dev/null +++ b/home/nix/flake.nix @@ -0,0 +1,30 @@ +{ + description = "Freya Nix Flake"; + + inputs = { + # nixpkgs + nixpkgs.url = "github:nixos/nixpkgs/release-24.05"; + + # home manager + home-manager.url = "github:nix-community/home-manager/release-24.05"; + home-manager.inputs.nixpkgs.follows = "nixpkgs"; + }; + + outputs = { + self, + nixpkgs, + home-manager, + ... + } @ inputs: let + inherit (self) outputs; + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + in { + homeConfigurations."freya" = + home-manager.lib.homeManagerConfiguration { + inherit pkgs; + extraSpecialArgs = {inherit inputs outputs;}; + modules = [./home.nix]; + }; + }; +} diff --git a/home/nix/home.nix b/home/nix/home.nix new file mode 100644 index 0000000..e897caf --- /dev/null +++ b/home/nix/home.nix @@ -0,0 +1,31 @@ +{ config, pkgs, ... }: { + + imports = [ + ./programs + ]; + + news.display = "silent"; + fonts.fontconfig.enable = true; + nixpkgs.config.allowUnfree = true; + programs.home-manager.enable = true; + + home = { + username = "freya"; + homeDirectory = "/home/freya"; + stateVersion = "24.05"; + + packages = with pkgs; [ + # desktop + starship + discord + thunderbird + + # devlopment + rustup + gcc + openssl + ]; + + }; +} + diff --git a/home/nix/nix-channels b/home/nix/nix-channels new file mode 100644 index 0000000..c040488 --- /dev/null +++ b/home/nix/nix-channels @@ -0,0 +1,3 @@ +https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager +https://nixos.org/channels/nixpkgs-unstable nixpkgs + diff --git a/home/nix/nix.conf b/home/nix/nix.conf new file mode 100644 index 0000000..c7d7291 --- /dev/null +++ b/home/nix/nix.conf @@ -0,0 +1 @@ +experimental-features = nix-command flakes diff --git a/home/nix/programs/default.nix b/home/nix/programs/default.nix new file mode 100644 index 0000000..1c7c3ee --- /dev/null +++ b/home/nix/programs/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./firefox.nix + ]; +} diff --git a/home/nix/programs/firefox.nix b/home/nix/programs/firefox.nix new file mode 100644 index 0000000..8d5923e --- /dev/null +++ b/home/nix/programs/firefox.nix @@ -0,0 +1,172 @@ +{ config, pkgs, ... }: + let + lock-false = { + Value = false; + Status = "locked"; + }; + lock-true = { + Value = true; + Status = "locked"; + }; + in +{ + programs.firefox = { + enable = true; + + policies = { + EnableTrackingProtection = { + Value = true; + Locked = true; + Cryptomining = true; + Fingerprinting = true; + }; + + # Certificates + Certificates = { + ImportEnterpriseRoots = true; + }; + + # Cookies + Cookies = { + Behavior = "reject-foreign"; + Locked = true; + }; + + # DNS + DNSOverHTTPS = { + Enabled = false; + Locked = true; + }; + + # Disable Bad + DisableAppUpdate = true; + DisableAccounts = true; + DisableFirefoxAccounts = true; + DisableFirefoxScreenshots = true; + DisableFirefoxStudies = true; + DisablePoket = true; + DisableTelemetry = true; + AutofillAddressEnabled = false; + AutofillCreditCardEnabled = false; + + # Disable Certain Messages + UserMessaging = { + WhatsNew = false; + ExtensionRecommendations = false; + FeatureRecommendations = false; + UrlbarInterventions = false; + SkipOnboarding = true; + MoreFromMozilla = false; + Locked = true; + }; + + # Disable Password Manager + PasswordManagerEnabled = false; + OfferToSaveLogins = false; + OfferToSaveLoginsDefault = false; + + # Remove Special Pages + OverrideFirstRunPage = ""; + OverridePostUpdatePage = ""; + + # Start Page + Homepage = { + StartPage = "previous-session"; + Loked = true; + }; + + # Home Page + FirefoxHome = { + Search = true; + TopSites = false; + SponsoredTopSites = false; + Highlights = false; + Pocket = false; + SponsoredPocket = false; + Snippets = false; + Locked = true; + }; + + # Search Suggestions + FirefoxSuggest = { + WebSuggestions = false; + SponsoredSuggestions = false; + ImproveSuggest = false; + Locked = true; + }; + + # Save All on Shutdown + SanitizeOnShutdown = { + Cache = false; + Cookies = false; + Downloads = false; + Histroy = false; + Sessions = false; + SiteSettings = false; + OfflineApps = false; + Locked = true; + }; + + # Miscellaneous + SearchBar = "unified"; + DisplayMenuBar = "default-off"; + DisplayBookmarksToolbar = "newtab"; + NoDefaultBookmarks = true; + HardwareAcceleration = true; + DontCheckDefaultBrowser = true; + PromptForDownloadLocation = false; + + # Extensions + 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"; + }; + }; + + # about:config Preferences + Preferences = { + # theme + "toolkit.legacyUserProfileCustomizations.stylesheets" = lock-true; + "extensions.activeThemeID" = "firefox-compact-dark@mozilla.org"; + # privacy + "privacy.donottrack.enabled" = lock-true; + "privacy.fingerprintingProtection" = lock-false; + "privacy.globalprivacycontrol.enabled" = lock-true; + # security + "security.OCSP.enabled" = { + Value = 0; + Status = "locked"; + }; + "browser.contentblocking.category" = { + Value = "strict"; + Status = "locked"; + }; + # graphics + "webgl.disable" = lock-false; + "dom.webgpu.enabled" = lock-true; + "media.eme.enabled" = lock-true; + # tabs + "browser.tabs.warnOnClose" = lock-true; + "browser.tabs.firefox-view" = lock-false; + # user messaging + "browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false; + "browser.newtabpage.activity-stream.feeds.snippets" = lock-false; + "browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false; + "browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false; + "browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false; + "browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false; + "browser.newtabpage.activity-stream.showSponsored" = lock-false; + "browser.newtabpage.activity-stream.system.showSponsored" = lock-false; + "browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false; + }; + }; + }; +} |