Compare commits

..

22 Commits

Author SHA1 Message Date
30b7370d81 ml tool support 2026-02-01 11:42:48 -05:00
1ba23b4371 updated 2026-01-31 14:47:57 -05:00
84eef30638 typst support 2026-01-25 10:31:35 -05:00
e395a24dff directory environments for projects, vscode compatibility 2026-01-24 18:34:37 -05:00
6bf275d57a furmark heater 2026-01-24 15:20:37 -05:00
205a8bc029 rust 2026-01-21 23:58:51 -05:00
b029131c6c hashcat heater 2026-01-21 23:41:03 -05:00
66aaa4aeaa vscode plugin support 2026-01-12 13:33:20 -05:00
91053be214 ctf-tools 2026-01-11 22:33:54 -05:00
3b964a7118 rust 2026-01-08 19:02:29 -05:00
2442d16151 drun 2026-01-07 23:21:27 -05:00
330224fde6 waybar 2026-01-07 23:04:23 -05:00
45bedb587a furmark 2026-01-07 22:47:07 -05:00
53f38d2817 vscode & nix 2026-01-07 20:36:11 -05:00
150e5ad828 drun 2026-01-07 13:50:12 -05:00
6722a1c4db glassy wm 2026-01-07 13:09:27 -05:00
d653d96560 added startup config 2026-01-07 12:56:39 -05:00
44db0179a7 added docker 2026-01-04 15:55:02 -05:00
58a956ea2e updated terminal 2026-01-04 11:33:23 -05:00
a29be4d812 edited sudoedditor 2026-01-04 09:00:37 -05:00
3e439ecb3c added ssh tools 2026-01-04 08:52:30 -05:00
0b7c2493b4 added godot window config 2026-01-04 08:35:47 -05:00
2 changed files with 254 additions and 82 deletions

View File

@@ -1,7 +1,4 @@
# Edit this configuration file to define what should be installed on # 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`).
# 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, ... }: { config, lib, pkgs, ... }:
{ {
@@ -26,8 +23,6 @@
}; };
# For gnome-disks to work
services.udisks2.enable = true;
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
@@ -53,27 +48,58 @@
# Enable the X11 windowing system. # Enable the X11 windowing system.
# services.xserver.enable = true; # services.xserver.enable = true;
virtualisation.docker.enable = true;
home-manager = { home-manager = {
useGlobalPkgs = true; useGlobalPkgs = true;
useUserPackages = true; useUserPackages = true;
backupFileExtension = "not-nix"; # Add this line backupFileExtension = "not-nix"; # Add this line
users.jeremy = { pkgs, ... }: { users.jeremy = { pkgs, ... }: {
home.stateVersion = "25.11"; home.stateVersion = "25.11";
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = { # Configure hyprland
enable = true; enable = true;
settings = { settings = {
general = { general = {
gaps_in = 5; gaps_in = 0;
gaps_out = 20; gaps_out = 0;
border_size = 2; border_size = 2;
}; };
decoration = {
rounding = 10;
# active_opacity = 0.9;
# inactive_opacity = 0.8;
# blur = {
# enabled = true;
# size = 10;
# passes = 3;
# vibrancy = 1;
# new_optimizations = true;
# ignore_opacity = true;
# noise = 0;
# brightness = 0.9;
# };
};
misc = {
key_press_enables_dpms = true;
mouse_move_enables_dpms = true;
};
"$mainMod" = "SUPER"; "$mainMod" = "SUPER";
bind = [ bind = [
"$mainMod, C, exec, kitty" "$mainMod, C, exec, alacritty"
"$mainMod, Q, killactive," "$mainMod, Q, killactive,"
"$mainMod, grave, exec, rofi -show drun" "$mainMod, grave, exec, rofi -show drun"
"$mainMod, F, fullscreen" "$mainMod, F, fullscreen"
"$mainMod, V, togglefloating," "$mainMod, V, togglefloating,"
",F4, exec, rofi -show combi -combi-modes 'drun,filebrowser'"
"$mainMod, A, togglesplit"
", PRINT, exec, hyprshot -m region --clipboard-only"
"$mainMod, N, exec, codium ~/etc/nixos/configuratiuon.nix"
# Move between windows
"$mainMod, h, movefocus, l"
"$mainMod, j, movefocus, d"
"$mainMod, k, movefocus, u"
"$mainMod, l, movefocus, r"
# Switch workspaces with mainMod + [0-9] # Switch workspaces with mainMod + [0-9]
"$mainMod, 1, workspace, 1" "$mainMod, 1, workspace, 1"
@@ -103,13 +129,29 @@
"$mainMod, mouse:272, movewindow" "$mainMod, mouse:272, movewindow"
"$mainMod, mouse:273, resizewindow" "$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 = [ monitor = [
"DP-3, 2560x1440@170, 1440x700, 1" "DP-2, 2560x1440@170, 0x0, 1"
"HDMI-A-1, 2560x1440@144, 0x0, 1, transform, 1" "HDMI-A-1, 2560x1440@144, 2560x0, 1"
];
windowrulev2 = [
"tile, initialClass:^(Godot)$, initialTitle: ^(Godot)$"
"float, class:^(Godot)$, title:^(?!(.*Godot)).*$"
"float, initialTitle:^(Godot)$, class:^(?!(Godot)).*$"
];
exec-once = [
"swaybg -i ~/.wallpaper -m fill"
"nextcloud --background"
]; ];
}; };
}; };
programs.neovim = { programs.neovim = { # Configure nvim
enable = true; enable = true;
extraConfig = '' extraConfig = ''
set number relativenumber set number relativenumber
@@ -120,41 +162,115 @@
set cc=80 set cc=80
''; '';
}; };
programs.vscode = { # Configure vscodium
enable = true;
package = pkgs.vscodium;
mutableExtensionsDir = true; # Keep theme updated
profiles.default.extensions = with pkgs.vscode-extensions; [
jnoortheen.nix-ide # NIX syntax highlighting. Also uses nixfmt package
rust-lang.rust-analyzer # Rust
mkhl.direnv # recognize custom nix environments
tamasfe.even-better-toml # toml file support
myriad-dreamin.tinymist # typst files
tekumara.typos-vscode # spellcheck
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
{
name = "skillavid-pure-black";
publisher = "redwan-hossain";
version = "5.0.0";
sha256 = "sha256-/gLvhw0XcUb6Jch/LZ4k7xpSS9wdYWVf5u7uvOHS+i8=";
}
];
};
programs.rofi = { # Rofi config
enable = true;
theme = "dmenu";
font = "sans-serif";
package = pkgs.rofi;
modes = [
"drun"
"run"
"window"
"ssh"
];
extraConfig = {
show-icons = true;
display-drun = "";
drun-display-format = "{name}";
};
};
programs.waybar.enable = true;
programs.waybar.settings.main = {
layer = "top";
position = "top";
reload_style_on_change = true;
modules-left = [];
modules-center = ["hyprland/workspaces"];
modules-right = [
"tray"
"bluetooth"
"network"
"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";
}; };
}; };
# 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). # Enable touchpad support (enabled default in most desktopManager).
# services.libinput.enable = true; # services.libinput.enable = true;
users.users.jeremy = { users.users.jeremy = {
isNormalUser = true; isNormalUser = true;
extraGroups = [ "wheel" ]; # Enable sudo extraGroups = [ "wheel" "docker" ]; # Enable sudo
shell = pkgs.bash; shell = pkgs.bash;
home = "/home/jeremy"; home = "/home/jeremy";
createHome = true; createHome = true;
packages = with pkgs; [ packages = with pkgs; [
prismlauncher prismlauncher # minecraft launcher
discord-canary discord-canary
godot # 4.5.1 for now godot # 4.5.1 for now
nextcloud-client nextcloud-client
steam steam
signal-desktop signal-desktop
docker
swaybg # wallpaper
nixfmt # nix file formatting
openrgb # RGB editor
furmark # Room heater
obsidian # note taking
gcc
xauth
burpsuite
ollama
ollama-rocm
python3
direnv # develop projects in custom environments
hyprshot # screenshots
typst # typst compilation
tinymist # typst previews
hunspell # spellcheck dictionaries
hunspellDicts.en_US-large
]; ];
}; };
@@ -165,27 +281,25 @@
wget wget
networkmanager networkmanager
gnome-disk-utility gnome-disk-utility
waybar
dunst dunst
libnotify libnotify
rofi rofi
kitty alacritty
vscodium vscodium
ncdu ncdu
nmap nmap
kitty kitty
git git
unzip
pavucontrol # PulseAudio Volume Control pavucontrol # PulseAudio Volume Control
bluez # Bluetooth support bluez # Bluetooth support
bluez-tools # Bluetooth tools bluez-tools # Bluetooth tools
]; ];
boot.initrd.kernelModules = [ "amdgpu" ];
environment.sessionVariables = { environment.sessionVariables = {
EDITOR = "nvim"; SUDO_EDITOR = "nvim";
}; };
hardware.bluetooth = { hardware.bluetooth = {
@@ -193,8 +307,31 @@
powerOnBoot = true; powerOnBoot = true;
}; };
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 services.pulseaudio.enable = false; # Use Pipewire
security.rtkit.enable = true; # Enable RealtimeKit for audio purposes security.rtkit.enable = true; # Enable RealtimeKit for audio purposes
services.hardware.openrgb = { # Enable OpenRGB
enable = true;
package = pkgs.openrgb-with-all-plugins;
motherboard = "amd";
server.port = 6742;
};
services.udisks2.enable = true; # Enable gnome-disks
services.displayManager.sddm.enable = true; # Enable display manager
services.displayManager.sddm.wayland.enable = true; # Wayland - hyprland
programs.ssh.startAgent = true; # Enable SSH tools
programs.thunar.enable = true; # file manager
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
@@ -202,12 +339,10 @@
"steam-original" "steam-original"
"steam-unwrapped" "steam-unwrapped"
"steam-run" "steam-run"
"furmark"
"burpsuite"
]; ];
services.displayManager.sddm.enable = true;
services.displayManager.sddm.wayland.enable = true;
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are
# started in user sessions. # started in user sessions.
# programs.mtr.enable = true; # programs.mtr.enable = true;
@@ -216,14 +351,15 @@
# enableSSHSupport = true; # enableSSHSupport = true;
# }; # };
# List services that you want to enable: # Enable OpenSSH daemon
# Enable the OpenSSH daemon.
services.openssh = { services.openssh = {
enable = true; enable = true;
ports = [2121];
settings.X11Forwarding = true;
}; };
networking.firewall.allowedTCPPorts = [2121];
# Configure bootloader device # bootloader device
boot.loader.grub.device = "/dev/sda"; boot.loader.grub.device = "/dev/sda";
# Open ports in the firewall. # Open ports in the firewall.
@@ -255,7 +391,4 @@
# #
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . # 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? system.stateVersion = "25.11"; # Did you read the comment?
} }

View File

@@ -13,6 +13,45 @@
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
systemd.services.heat-room = {
description = "Morning room heating";
serviceConfig = {
Type = "oneshot";
User = "jeremy";
};
script = ''
${pkgs.furmark}/bin/furmark --demo furmark-gl &
sleep 1m
hyprctl dispatch dpms off
sleep 1h
pkill furmark
'';
};
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
];
};
# This helps the drivers find the hardware
systemd.tmpfiles.rules = [
"L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}"
];
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-label/NIXROOT"; { device = "/dev/disk/by-label/NIXROOT";
fsType = "ext4"; fsType = "ext4";