summaryrefslogtreecommitdiff
path: root/home/nix
diff options
context:
space:
mode:
Diffstat (limited to 'home/nix')
-rw-r--r--home/nix/flake.nix30
-rw-r--r--home/nix/home.nix31
-rw-r--r--home/nix/nix-channels3
-rw-r--r--home/nix/nix.conf1
-rw-r--r--home/nix/programs/default.nix5
-rw-r--r--home/nix/programs/firefox.nix172
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;
+ };
+ };
+ };
+}