From a269fb7d44d81e5d0ff2b2c439b3d4cd5bec1ce1 Mon Sep 17 00:00:00 2001 From: pants Date: Mon, 21 Sep 2026 14:17:34 -0700 Subject: init --- configuration.nix | 260 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 260 insertions(+) create mode 100644 configuration.nix (limited to 'configuration.nix') diff --git a/configuration.nix b/configuration.nix new file mode 100644 index 0000000..5dc9097 --- /dev/null +++ b/configuration.nix @@ -0,0 +1,260 @@ +# Edit this configuration file to define what should be installed on +# your system. Help is available in the configuration.nix(5) man page, on +# https://search.nixos.org/options and in the NixOS manual (`nixos-help`). + +{ config, lib, pkgs, ... }: + +let +mydwm = pkgs.callPackage ./suckless/dwm.nix {}; +mydmenu = pkgs.callPackage ./suckless/dmenu.nix {}; +mydwmblocks = pkgs.callPackage ./suckless/dwmblocks.nix {}; +myst = pkgs.callPackage ./suckless/st.nix {}; +in + +{ + imports = + [ + ./hardware-configuration.nix + ]; + + security.polkit.enable = true; + + environment = { + sessionVariables = { + PATH = "$HOME/bin:#{config.environment.systemPath}"; + }; + }; + + swapDevices = [{ + device = "/dev/disk/by-uuid/09d170fd-26b4-4985-a210-28541d3ee340"; + }]; + + boot.loader = { + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + }; + + networking = { + hostName = "titanium"; + dhcpcd.enable = true; + hosts = { + "10.100.1.0" = [ "iron" ]; + }; + }; + + time.timeZone = "US/Pacific"; + + fonts.packages = with pkgs; [ + cascadia-code + pkgs.mplus-outline-fonts.osdnRelease + ]; + + i18n.defaultLocale = "en_US.UTF-8"; + i18n.extraLocales = [ "ja_JP.UTF-8/UTF-8" ]; + + services = { + + gvfs.enable = true; + tumbler.enable = true; + hardware.openrgb.enable = true; + + printing.enable = true; + + pipewire = { + enable = true; + pulse.enable = true; + }; + + displayManager.sddm.enable = true; + + xserver = { + enable = true; + dpi = 110; + xkb.layout = "us"; + videoDrivers = [ "nvidia" ]; + + windowManager.session = [ + { + name = "dwm"; + start = "exec ${mydwm}/bin/dwm"; + } + ]; + }; + }; + + hardware = { + + graphics = { + enable = true; + enable32Bit = true; + }; + + nvidia = { + open = true; + modesetting.enable = true; + powerManagement.enable = true; + nvidiaSettings = true; + }; + + bluetooth = { + enable = true; + powerOnBoot = true; + settings = { + General = { + # Shows battery charge of connected devices on supported + # Bluetooth adapters. Defaults to 'false'. + Experimental = true; + # When enabled other devices can connect faster to us, however + # the tradeoff is increased power consumption. Defaults to + # 'false'. + FastConnectable = true; + }; + Policy = { + # Enable all controllers when they are found. This includes + # adapters present on start as well as adapters that are plugged + # in later on. Defaults to 'true'. + AutoEnable = true; + }; + }; + }; + }; + + # Configure keymap in X11 + #services.xserver.xkb.layout = "us"; + #services.xserver.xkb.options = "eurosign:e,caps:escape"; + + # Enable touchpad support (enabled default in most desktopManager). + # services.libinput.enable = true; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.nik = { + isNormalUser = true; + extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. + packages = with pkgs; [ + tree + ]; + }; + + fileSystems."/mnt/wdraidz" = { + device = "iron:/wdraidz"; + fsType = "nfs"; + }; + + programs = { + steam = { + enable = true; + remotePlay.openFirewall = true; + dedicatedServer.openFirewall = true; + localNetworkGameTransfers.openFirewall = true; + }; + thunar.enable = true; + nix-ld.enable = true; + + }; + + nixpkgs.config.allowUnfree = true; + + # List packages installed in system profile. + # You can use https://search.nixos.org/ to find more packages (and options). + environment.systemPackages = with pkgs; [ + vim + wget + curl + git + bc + lf + pciutils + nfs-utils + lm_sensors + nvtopPackages.nvidia + htop + btop + rmpc + mpd + mpc + imagemagick + pulsemixer + alsa-utils + ncdu + ddcutil + xclip + gpu-screen-recorder + dunst + redshift + picom + libnotify + mesa-demos + + mpv + feh + solaar + ueberzugpp + nordic + lxappearance + spotify + firefox + gimp + qutebrowser + freecad + imv + prismlauncher + discord + bitwarden-desktop + r2modman + asunder + #zoom + #osu-lazer(-bin?) + + + # sources of these are local, defined in let block at top + mydmenu + myst + mydwmblocks + ]; + + + # 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; + + # Copy the NixOS configuration file and link it from the resulting system + # (/run/current-system/configuration.nix). This is useful in case you + # accidentally delete configuration.nix. + # system.copySystemConfiguration = true; + + # This option defines the first version of NixOS you have installed on this particular machine, + # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. + # + # Most users should NEVER change this value after the initial install, for any reason, + # even if you've upgraded your system to a new NixOS release. + # + # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, + # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how + # to actually do that. + # + # This value being lower than the current NixOS release does NOT mean your system is + # out of date, out of support, or vulnerable. + # + # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, + # and migrated your data accordingly. + # + # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . + system.stateVersion = "25.11"; # Did you read the comment? + +} + -- cgit v1.2.3