From 1366dd73786f9233b32d60e472936fda00a9063b Mon Sep 17 00:00:00 2001 From: pants Date: Mon, 22 Dec 2025 01:58:19 -0800 Subject: [PATCH] init (this rocks dude) --- configuration.nix | 216 +++++++++++++++++++++++++++++++++++++++++ suckless/dmenu.nix | 5 + suckless/dwm.nix | 5 + suckless/dwmblocks.nix | 6 ++ suckless/st.nix | 5 + 5 files changed, 237 insertions(+) create mode 100644 configuration.nix create mode 100644 suckless/dmenu.nix create mode 100644 suckless/dwm.nix create mode 100644 suckless/dwmblocks.nix create mode 100644 suckless/st.nix diff --git a/configuration.nix b/configuration.nix new file mode 100644 index 0000000..389cb2d --- /dev/null +++ b/configuration.nix @@ -0,0 +1,216 @@ +# 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 = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + environment.sessionVariables = { + PATH = "$HOME/bin:#{config.environment.systemPath}"; + }; + + swapDevices = [{ + device = "/dev/disk/by-uuid/7fc5202b-5ed9-4697-8314-d797816e5cc4"; + }]; + # Use the systemd-boot EFI boot loader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking = { + hostName = "titanium"; + dhcpcd.enable = true; + hosts = { + "10.100.1.0" = [ "iron" ]; + }; + }; + + + # Set your time zone. + time.timeZone = "US/Pacific"; + + #services.redshift = { + # enable = true; + # provider = "manual"; + # latitude = "47.777"; + # longitude = "-122.222"; + # temperature = { + # day = 4500; + # night = 3000; + # }; + #}; + + #services.picom.enable = true; + + fonts.packages = with pkgs; [ + cascadia-code + pkgs.mplus-outline-fonts.osdnRelease + ]; + + # Configure network proxy if necessary + # networking.proxy.default = "http://user:password@proxy:port/"; + # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + + # Select internationalisation properties. + # i18n.defaultLocale = "en_US.UTF-8"; + # console = { + # font = "Lat2-Terminus16"; + # keyMap = "us"; + # useXkbConfig = true; # use xkb.options in tty. + # }; + + services.hardware.openrgb.enable = true; + services.xserver = { + enable = true; + dpi = 110; + xkb.layout = "us"; + videoDrivers = [ "nvidia" ]; + displayManager.sddm.enable = true; + + windowManager.session = [ + { + name = "dwm"; + start = "exec ${mydwm}/bin/dwm"; + } + ]; + }; + + # nvidia carp + hardware.nvidia = { + open = true; + modesetting.enable = true; + powerManagement.enable = true; + nvidiaSettings = true; + }; + + + # Configure keymap in X11 + #services.xserver.xkb.layout = "us"; + #services.xserver.xkb.options = "eurosign:e,caps:escape"; + + # Enable CUPS to print documents. + services.printing.enable = true; + + # Enable sound. + # services.pulseaudio.enable = true; + # OR + services.pipewire = { + enable = true; + pulse.enable = true; + }; + + # 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 + ]; + }; + + # programs.firefox.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 + dunst + redshift + htop + btop + lf + nvtopPackages.nvidia + firefox + pciutils + picom + mpd + mpc + rmpc + mpv + steam + lm_sensors + nut + spotify + nfs-utils + feh + solaar + ueberzugpp + lxappearance + nordic + + # locally maintained sources of these 'packages' + mydmenu + myst + mydwmblocks + ]; + + fileSystems."/mnt/wdraidz" = { + device = "iron:/wdraidz"; + fsType = "nfs"; + }; + + # 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? + +} + diff --git a/suckless/dmenu.nix b/suckless/dmenu.nix new file mode 100644 index 0000000..f2d7a3f --- /dev/null +++ b/suckless/dmenu.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: + +pkgs.dmenu.overrideAttrs (old: { + src = /home/nik/repos/dmenu; +}) diff --git a/suckless/dwm.nix b/suckless/dwm.nix new file mode 100644 index 0000000..0f4999d --- /dev/null +++ b/suckless/dwm.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: + +pkgs.dwm.overrideAttrs (old: { + src = /home/nik/repos/dwm; +}) diff --git a/suckless/dwmblocks.nix b/suckless/dwmblocks.nix new file mode 100644 index 0000000..5704182 --- /dev/null +++ b/suckless/dwmblocks.nix @@ -0,0 +1,6 @@ +{ pkgs, ... }: + +pkgs.dwmblocks.overrideAttrs (old: { + src = /home/nik/repos/dwmblocks; + buildInputs = old.buildInputs ++ [ pkgs.libx11 ]; +}) diff --git a/suckless/st.nix b/suckless/st.nix new file mode 100644 index 0000000..4d3193d --- /dev/null +++ b/suckless/st.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: + +pkgs.st.overrideAttrs (old: { + src = /home/nik/repos/st; +})