summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.xinitrc4
-rw-r--r--configuration.nix144
-rw-r--r--flake.nix29
-rw-r--r--home-manager/firefox.nix199
-rw-r--r--home-manager/flake.nix29
-rw-r--r--home-manager/home.nix53
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;
+ };
+ }
+ ];
+ }
+}