diff options
| -rw-r--r-- | .xinitrc | 4 | ||||
| -rw-r--r-- | configuration.nix | 144 | ||||
| -rw-r--r-- | flake.nix | 29 | ||||
| -rw-r--r-- | home-manager/firefox.nix | 199 | ||||
| -rw-r--r-- | home-manager/flake.nix | 29 | ||||
| -rw-r--r-- | home-manager/home.nix | 53 |
6 files changed, 458 insertions, 0 deletions
diff --git a/.xinitrc b/.xinitrc new file mode 100644 index 0000000..f095875 --- /dev/null +++ b/.xinitrc @@ -0,0 +1,4 @@ +slstatus & +xwallpaper --zoom /usr/share/wallpapers/wallpaper.png + +exec dwm diff --git a/configuration.nix b/configuration.nix new file mode 100644 index 0000000..9098840 --- /dev/null +++ b/configuration.nix @@ -0,0 +1,144 @@ +# Edit this configuration file to define what should be installed on +# your system. Help is available in the configuration.nix(5) man page +# and in the NixOS manual (accessible by running ‘nixos-help’). + +{ config, pkgs, ... }: { + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + nix.settings.experimental-features = [ "nix-command" "flakes" ]; + + # Bootloader. + boot.loader.efi.canTouchEfiVariables = true; + boot.loader.grub.enable = true; + boot.loader.grub.devices = [ "nodev" ]; + boot.loader.grub.efiSupport = true; + boot.loader.grub.useOSProber = true; + + networking.hostName = "nixos"; # Define your hostname. + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + + # Configure network proxy if necessary + # networking.proxy.default = "http://user:password@proxy:port/"; + # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + + # Enable networking + networking.networkmanager.enable = true; + + # Set your time zone. + time.timeZone = "America/Chicago"; + + # Select internationalisation properties. + i18n.defaultLocale = "en_US.UTF-8"; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "en_US.UTF-8"; + LC_IDENTIFICATION = "en_US.UTF-8"; + LC_MEASUREMENT = "en_US.UTF-8"; + LC_MONETARY = "en_US.UTF-8"; + LC_NAME = "en_US.UTF-8"; + LC_NUMERIC = "en_US.UTF-8"; + LC_PAPER = "en_US.UTF-8"; + LC_TELEPHONE = "en_US.UTF-8"; + LC_TIME = "en_US.UTF-8"; + }; + + # Configure keymap in X11 + services.xserver = { + enable = true; + displayManager.lightdm.enable = false; + displayManager.startx.enable = true; + windowManager.dwm.enable = true; + windowManager.dwm.package = pkgs.dwm.overrideAttrs { + src = /home/ozpv/.suckless/dwm; + }; + layout = "us"; + xkbVariant = ""; + }; + services.picom.enable = true; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.ozpv = { + isNormalUser = true; + description = "ozpv"; + extraGroups = [ "networkmanager" "wheel" ]; + packages = with pkgs; []; + shell = pkgs.zsh; + }; + + # Allow unfree packages + nixpkgs.config.allowUnfree = true; + + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = with pkgs; [ + vim + neovim + (st.overrideAttrs { + src = /home/ozpv/.suckless/st; + }) + (dmenu.overrideAttrs { + src = /home/ozpv/.suckless/dmenu; + }) + (slstatus.overrideAttrs { + src = /home/ozpv/.suckless/slstatus; + }) + networkmanager_dmenu + sxiv + xwallpaper + lf + wget + git + home-manager + ]; + + # browser + programs.firefox.enable = true; + + # fonts + fonts.packages = with pkgs; [ + (nerdfonts.override { + fonts = [ "JetBrainsMono" ]; + }) + ]; + + # bluetooth + hardware.bluetooth.enable = false; + + # audio + sound.enable = true; + hardware.pulseaudio.enable = true; + + # shell + programs.zsh.enable = true; + + # Some programs need SUID wrappers, can be configured further or are + # started in user sessions. + # programs.mtr.enable = true; + # programs.gnupg.agent = { + # enable = true; + # enableSSHSupport = true; + # }; + + # List services that you want to enable: + + # Enable the OpenSSH daemon. + # services.openssh.enable = true; + + # Open ports in the firewall. + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. + # networking.firewall.enable = false; + + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It‘s perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "23.11"; # Did you read the comment? + +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..2544357 --- /dev/null +++ b/flake.nix @@ -0,0 +1,29 @@ +{ + description = "Nixos config flake"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = { self, nixpkgs, ... }@inputs: + let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + in + { + + nixosConfigurations.default = nixpkgs.lib.nixosSystem { + specialArgs = {inherit inputs;}; + modules = [ + ./configuration.nix + inputs.home-manager.nixosModules.default + ]; + }; + + }; +} diff --git a/home-manager/firefox.nix b/home-manager/firefox.nix new file mode 100644 index 0000000..3e551c3 --- /dev/null +++ b/home-manager/firefox.nix @@ -0,0 +1,199 @@ +{ pkgs, ... }: { + programs.firefox = { + enable = true; + + profiles.ozpv = { + settings = { + # settings that might actually break things... + "webgl.disabled" = true; + "webgl.renderer-string-override" = " "; + "webgl.vendor-string-override" = " "; + "dom.disable_open_during_load" = true; + "dom.popup_allowed_events" = "click dblclick mousedown pointerdown"; + # "dom.popup_allowed_events" = "change click dblclick auxclick mousedown mouseup pointerdown pointerup notificationclick reset submit touchend contextmenu"; + + "app.normandy.api_url" = ""; + "app.normandy.enabled" = false; + "app.shield.optoutstudies.enabled" = false; + "app.update.auto" = false; + "beacon.enabled" = false; + "breakpad.reportURL" = ""; + "browser.aboutConfig.showWarning" = false; + "browser.cache.offline.enable" = false; + "browser.contentblocking.category" = "strict"; + "browser.crashReports.unsubmittedCheck.autoSubmit" = false; + "browser.crashReports.unsubmittedCheck.autoSubmit2" = false; + "browser.crashReports.unsubmittedCheck.enabled" = false; + "browser.disableResetPrompt" = true; + "browser.fixup.alternate.enabled" = false; + "browser.formfill.enable" = false; + "browser.newtab.preload" = false; + "browser.newtabpage.activity-stream.section.highlights.includePocket" = false; + "browser.newtabpage.enabled" = false; + "browser.newtabpage.enhanced" = false; + "browser.newtabpage.introShown" = true; + "browser.newtabpage.activity-stream.feeds.telemetry" = false; + "browser.newtabpage.activity-stream.telemetry" = false; + "browser.newtabpage.activity-stream.feeds.snippets" = false; + "browser.newtabpage.activity-stream.feeds.section.topstories" = false; + "browser.newtabpage.activity-stream.section.highlights.includePocket" = false; + "browser.newtabpage.activity-stream.showSponsored" = false; + "browser.newtabpage.activity-stream.feeds.discoverystreamfeed" = false; + "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; + "browser.newtabpage.activity-stream.default.sites" = ""; + "browser.ping-centre.telemetry" = false; + "browser.region.network.url" = ""; + "browser.region.update.enabled" = false; + "browser.safebrowsing.appRepURL" = ""; + "browser.safebrowsing.blockedURIs.enabled" = false; + "browser.safebrowsing.downloads.enabled" = false; + "browser.safebrowsing.downloads.remote.enabled" = false; + "browser.safebrowsing.downloads.remote.url" = ""; + "browser.safebrowsing.enabled" = false; + "browser.safebrowsing.malware.enabled" = false; + "browser.safebrowsing.phishing.enabled" = false; + "browser.safebrowsing.provider.google4.gethashURL" = ""; + "browser.safebrowsing.provider.google4.updateURL" = ""; + "browser.safebrowsing.provider.google.gethashURL" = ""; + "browser.safebrowsing.provider.google.updateURL" = ""; + "browser.search.suggest.enabled" = false; + "browser.selfsupport.url" = ""; + "browser.send_pings" = false; + "browser.sessionstore.privacy_level" = 0; + "browser.shell.checkDefaultBrowser" = false; + "browser.startup.page" = 0; + "browser.startup.homepage_override.mstone" = "ignore"; + "browser.tabs.crashReporting.sendReport" = false; + "browser.tabs.firefox-view" = false; + "browser.urlbar.groupLabels.enabled" = false; + "browser.urlbar.quicksuggest.enabled" = false; + "browser.urlbar.quicksuggest.scenario" = "history"; + "browser.urlbar.speculativeConnect.enabled" = false; + "browser.urlbar.trimURLs" = false; + "browser.display.use_system_colors" = false; + "browser.places.speculativeConnect.enabled" = false; + "browser.urlbar.suggest.quicksuggest.sponsored" = false; + "browser.urlbar.suggest.quicksuggest.nonsponsored" = false; + "browser.startup.blankWindow" = false; + "datareporting.healthreport.service.enabled" = false; + "datareporting.healthreport.uploadEnabled" = false; + "datareporting.policy.dataSubmissionEnabled" = false; + "device.sensors.ambientLight.enabled" = false; + "device.sensors.enabled" = false; + "device.sensors.motion.enabled" = false; + "device.sensors.orientation.enabled" = false; + "device.sensors.proximity.enabled" = false; + "dom.battery.enabled" = false; + "dom.event.clipboardevents.enabled" = false; + "dom.security.https_only_mode" = true; + "dom.security.https_only_mode_ever_enabled" = true; + "dom.webaudio.enabled" = false; + "experiments.activeExperiment" = false; + "experiments.enabled" = false; + "experiments.manifest.uri" = ""; + "experiments.supported" = false; + "extensions.blocklist.enabled" = false; + "extensions.enabledScopes" = 5; + "extensions.formautofill.addresses.enabled" = false; + "extensions.formautofill.available" = "off"; + "extensions.formautofill.creditCards.available" = false; + "extensions.formautofill.creditCards.enabled" = false; + "extensions.formautofill.heuristics.enabled" = false; + "extensions.getAddons.cache.enabled" = false; + "extensions.getAddons.showPane" = false; + "extensions.greasemonkey.stats.optedin" = false; + "extensions.greasemonkey.stats.url" = ""; + "extensions.pocket.enabled" = false; + "extensions.Screenshots.disabled" = true; + "extensions.shield-recipe-client.api_url" = ""; + "extensions.shield-recipe-client.enabled" = false; + "extensions.webservice.discoverURL" = ""; + "extensions.webextensions.restrictedDomains" = ""; + "extensions.postDownloadThirdPartyPrompt" = false; + "geo.provider.network.url" = "https://location.services.mozilla.com/v1/geolocat"; + "geo.provider.ms-windows-location" = false; + "geo.provider.use_gpsd" = false; + "geo.provider.use_geoclue" = false; + "intl.accept_languages" = "en-US, en"; + "javascript.use_us_english_locale" = true; + "keyword.enabled" = true; + "media.autoplay.default" = 5; + "media.autoplay.enabled" = false; + "media.eme.enabled" = false; + "media.gmp-widevinecdm.enabled" = false; + "media.navigator.enabled" = false; + "media.peerconnection.enabled" = false; + "media.peerconnection.ice.proxy_only_if_behind_prox" = true; + "media.peerconnection.ice.default_address_only" = true; + "media.peerconnection.ice.no_host" = true; + "media.video_stats.enabled" = false; + "network.IDN_show_punycode" = true; + "network.allow-experiments" = false; + "network.captive-portal-service.enabled" = false; + "network.cookie.cookieBehavior" = 1; + "network.cookie.lifetimePolicy" = 2; + "network.dns.disablePrefetch" = true; + "network.dns.disablePrefetchFromHTTPS" = true; + "network.file.disable_unc_paths" = true; + "network.gio.supported-protocols" = ""; + "network.http.referer.XOriginTrimmingPolicy" = 2; + "network.http.referer.spoofSource" = true; + "network.http.speculative-parallel-limit" = 0; + "network.predictor.enable-prefetch" = false; + "network.predictor.enabled" = false; + "network.prefetch-next" = false; + "network.trr.mode" = 5; + "pdfjs.enableScripting" = false; + "permissions.manager.defaultsUrl" = ""; + "privacy.sanitize.sanitizeOnShutdown" = true; + "privacy.clearOnShutdown.cache" = true; + "privacy.clearOnShutdown.cookies" = true; + "privacy.clearOnShutdown.downloads" = true; + "privacy.clearOnShutdown.formdata" = true; + "privacy.clearOnShutdown.history" = true; + "privacy.clearOnShutdown.offlineApps" = true; + "privacy.clearOnShutdown.sessions" = true; + "privacy.clearOnShutdown.sitesettings" = true; + "privacy.sanitize.timeSpan" = 0; + "privacy.donottrackheader.enabled" = true; + "privacy.donottrackheader.value" = 1; + "privacy.firstparty.isolate" = true; + "privacy.partition.serviceWorkers" = true; + "privacy.partition.always_partition_third_party_non_cookie_storage" = true; + "privacy.partition.always_partition_third_party_non_cookie_storage.exempt_sessionstorage" = true; + "privacy.query_stripping" = true; + "privacy.resistFingerprinting" = true; + "privacy.trackingprotection.cryptomining.enabled" = true; + "privacy.trackingprotection.enabled" = true; + "privacy.trackingprotection.fingerprinting.enabled" = true; + "privacy.trackingprotection.pbmode.enabled" = true; + "privacy.userContext.enabled" = true; + "privacy.usercontext.about_newtab_segregation.enabled" = true; + "privacy.window.maxInnerWidth" = 1600; + "privacy.window.maxInnerHeight" = 900; + "privacy.resistFingerprinting.block_mozAddonManager" = true; + "security.ssl.disable_session_identifiers" = true; + "services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSite" = false; + "signon.autofillForms" = false; + "toolkit.telemetry.archive.enabled" = false; + "toolkit.telemetry.bhrPing.enabled" = false; + "toolkit.telemetry.cachedClientID" = ""; + "toolkit.telemetry.coverage.opt-out" = true; + "toolkit.coverage.opt-out" = true; + "toolkit.coverage.endpoint.base" = ""; + "toolkit.telemetry.enabled" = false; + "toolkit.telemetry.firstShutdownPing.enabled" = false; + "toolkit.telemetry.hybridContent.enabled" = false; + "toolkit.telemetry.newProfilePing.enabled" = false; + "toolkit.telemetry.prompted" = 2; + "toolkit.telemetry.rejected" = true; + "toolkit.telemetry.reportingpolicy.firstRun" = false; + "toolkit.telemetry.server" = "data:,"; + "toolkit.telemetry.shutdownPingSender.enabled" = false; + "toolkit.telemetry.unified" = false; + "toolkit.telemetry.unifiedIsOptIn" = false; + "toolkit.telemetry.updatePing.enabled" = false; + }; + }; + }; +} diff --git a/home-manager/flake.nix b/home-manager/flake.nix new file mode 100644 index 0000000..1d3da0e --- /dev/null +++ b/home-manager/flake.nix @@ -0,0 +1,29 @@ +{ + description = "Home Manager configuration of ozpv"; + + inputs = { + # Specify the source of Home Manager and Nixpkgs. + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = { nixpkgs, home-manager, ... }: + let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + in { + homeConfigurations."ozpv" = home-manager.lib.homeManagerConfiguration { + inherit pkgs; + + # Specify your home configuration modules here, for example, + # the path to your home.nix. + modules = [ ./home.nix ./firefox.nix ]; + + # Optionally use extraSpecialArgs + # to pass through arguments to home.nix + }; + }; +} diff --git a/home-manager/home.nix b/home-manager/home.nix new file mode 100644 index 0000000..fdaf22d --- /dev/null +++ b/home-manager/home.nix @@ -0,0 +1,53 @@ +{ config, pkgs, ... }: + +{ + home.username = "ozpv"; + home.homeDirectory = "/home/ozpv"; + home.stateVersion = "23.11"; # Please read the comment before changing. + + home.packages = with pkgs; [ + neofetch + ]; + + home.sessionVariables = { + EDITOR = "vim"; + }; + + programs.home-manager.enable = true; + + programs.zsh = { + enable = true; + shellAliases = { + cp = "cp -v"; + mv = "mv -v"; + rm = "rm -v"; + mkdir = "mkdir -v -p"; + rmdir = "rmdir -v"; + ls = "ls -hla --color=auto"; + grep = "grep --color=auto"; + vim-basic = "vim"; + vim = "nvim"; + }; + + plugins = [ + { + name = "zsh-autosuggestions"; + src = pkgs.fetchFromGitHub { + owner = "zsh-users"; + repo = "zsh-autosuggestions"; + rev = "v0.8.0"; + sha256 = lib.fakeSha256; + }; + } + { + name = "zsh-syntax-highlighting"; + src = pkgs.fetchFromGitHub { + owner = "zsh-users"; + repo = "zsh-syntax-highlighting"; + rev = "v0.7.0"; + sha256 = lib.fakeSha256; + }; + } + ]; + } +} |
