From b029131c6c205162e5f8e0d33322384d645ecd71 Mon Sep 17 00:00:00 2001 From: Jeremy Date: Wed, 21 Jan 2026 23:41:03 -0500 Subject: [PATCH] hashcat heater --- configuration.nix | 98 ++++++++++++++++++++++++++------------ hardware-configuration.nix | 32 +++++++++++++ 2 files changed, 100 insertions(+), 30 deletions(-) diff --git a/configuration.nix b/configuration.nix index cae7e8d..d31d763 100644 --- a/configuration.nix +++ b/configuration.nix @@ -87,6 +87,7 @@ "$mainMod, F, fullscreen" "$mainMod, V, togglefloating," ",F4, exec, rofi -show combi -combi-modes 'drun,filebrowser'" + "$mainMod, A, togglesplit" # Move between windows "$mainMod, h, movefocus, l" @@ -122,9 +123,16 @@ "$mainMod, mouse:272, movewindow" "$mainMod, mouse:273, resizewindow" ]; + binde = [ + ", XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0 && wpctl set-volume -l 1.4 @DEFAULT_AUDIO_SINK@ 5%+" + ", XF86AudioLowerVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0 && wpctl set-volume -l 1.4 @DEFAULT_AUDIO_SINK@ 5%-" + ]; + bindl = [ + ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" + ]; monitor = [ - "DP-3, 2560x1440@170, 1440x700, 1" - "HDMI-A-1, 2560x1440@144, 0x0, 1, transform, 1" + "DP-2, 2560x1440@170, 0x0, 1" + "HDMI-A-1, 2560x1440@144, 2560x0, 1" ]; windowrulev2 = [ "tile, initialClass:^(Godot)$, initialTitle: ^(Godot)$" @@ -193,8 +201,29 @@ "clock" ]; }; + home.pointerCursor = + let + getFrom = url: hash: name: { + gtk.enable = true; + x11.enable = true; + name = name; + size = 48; + package = + pkgs.runCommand "moveUp" {} '' + mkdir -p $out/share/icons + ln -s ${pkgs.fetchzip { + url = url; + hash = hash; + }} $out/share/icons/${name} + ''; + }; + in + getFrom + "https://github.com/ful1e5/fuchsia-cursor/releases/download/v2.0.0/Fuchsia-Pop.tar.gz" + "sha256-BvVE9qupMjw7JRqFUj1J0a4ys6kc9fOLBPx2bGaapTk=" + "Fuchsia-Pop"; + }; }; - }; # Enable touchpad support (enabled default in most desktopManager). # services.libinput.enable = true; @@ -212,7 +241,7 @@ nextcloud-client steam signal-desktop - cargo + cargo # for rust docker swaybg # wallpaper nixfmt # nix file formatting @@ -220,42 +249,41 @@ furmark # Room heater obsidian # note taking gcc - (python3.withPackages (python-pkgs: with python-pkgs; [ - pwntools - pycryptodome - flask - selenium - ])) - xauth # xforwarding ssh + xauth burpsuite + ollama + ollama-rocm + hashcat ]; }; # Use https://search.nixos.org/ to find more packages (and options). environment.systemPackages = with pkgs; [ - firefox - neovim - wget - networkmanager - gnome-disk-utility + firefox + neovim + wget + networkmanager + gnome-disk-utility - dunst - libnotify - rofi - alacritty - vscodium + dunst + libnotify + rofi + alacritty + vscodium - ncdu + ncdu - nmap - kitty - git - unzip + nmap + kitty + git + unzip - pavucontrol # PulseAudio Volume Control - bluez # Bluetooth support - bluez-tools # Bluetooth tools - ]; + pavucontrol # PulseAudio Volume Control + bluez # Bluetooth support + bluez-tools # Bluetooth tools + ]; + + boot.initrd.kernelModules = [ "amdgpu" ]; environment.sessionVariables = { SUDO_EDITOR = "nvim"; @@ -267,6 +295,16 @@ }; + services.ollama = { + enable = true; + acceleration = "rocm"; + environmentVariables = { + # Force Ollama to only see the dedicated GPU + HIP_VISIBLE_DEVICES = "0"; + # Optional: Force the GPU architecture if discovery still fails + HSA_OVERRIDE_GFX_VERSION = "10.3.0"; + }; + }; services.pulseaudio.enable = false; # Use Pipewire security.rtkit.enable = true; # Enable RealtimeKit for audio purposes services.hardware.openrgb = { # Enable OpenRGB diff --git a/hardware-configuration.nix b/hardware-configuration.nix index 4f492de..2481b8e 100644 --- a/hardware-configuration.nix +++ b/hardware-configuration.nix @@ -13,6 +13,38 @@ boot.kernelModules = [ "kvm-amd" ]; boot.extraModulePackages = [ ]; + systemd.services.heat-room = { + description = "Morning room heating"; + serviceConfig = { + Type = "oneshot"; + User = "jeremy"; + RuntimeMaxSec = 3600; + }; + script = '' + while true; do + ${pkgs.hashcat}/bin/hashcat -b + done + ''; + }; + + + systemd.timers.heat-room = { + wantedBy = [ "timers.target" ]; + timerConfig = { + OnCalendar = "*-*-* 04:00:00"; # Runs at 4:00:00 AM every day + Persistent = true; # Run immediately if a scheduled time was missed + WakeSystem = true; # Wakes the system from suspend/hibernate + Unit = "heat-room.service"; + }; + }; + + hardware.graphics = { + enable = true; + extraPackages = with pkgs; [ + rocmPackages.clr.icd # Enables OpenCL support for AMD + ]; + }; + fileSystems."/" = { device = "/dev/disk/by-label/NIXROOT"; fsType = "ext4";