Compare commits
54
Commits
27855e7370
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7ccd4e15da | ||
|
|
3490817248 | ||
|
|
148640bb2a | ||
|
|
ba44c1bc08 | ||
|
|
4d3a006bfd | ||
|
|
491d6adc91 | ||
|
|
8e0c80c3b0 | ||
|
|
b23dbf47b3 | ||
|
|
eac355b345 | ||
|
|
49c73c9139 | ||
|
|
4319f158ff | ||
|
|
9a2939d652 | ||
|
|
5cb7962371 | ||
|
|
de75a0fdbd | ||
|
|
34ba6d636c | ||
|
|
dcacdc457c | ||
|
|
0ee096cc68 | ||
|
|
23769c139f | ||
|
|
7c68d3e0d3 | ||
|
|
8fd41b9360 | ||
|
|
a29b3994a3 | ||
|
|
ca2854e432 | ||
|
|
e47856a88a | ||
|
|
569e753bb9 | ||
|
|
9dcacd63ad | ||
|
|
c4c4f61b36 | ||
|
|
2981bbacad | ||
|
|
8c80db59cf | ||
|
|
4ee2e727a2 | ||
|
|
9609e157ea | ||
|
|
a6c11c5ca4 | ||
|
|
70773fd8e4 | ||
|
|
9bcda8302f | ||
|
|
0c40aecab7 | ||
|
|
5e807ce9d0 | ||
|
|
bfc067c31f | ||
|
|
221a39e865 | ||
|
|
2011068784 | ||
|
|
fb8e597a43 | ||
|
|
4c525f9335 | ||
|
|
d834b0be80 | ||
|
|
848323bb4a | ||
|
|
ce420d867c | ||
|
|
962a0ad527 | ||
|
|
23501b5dcf | ||
|
|
7896f93ec0 | ||
|
|
4c18e9e12c | ||
|
|
5d5dec5688 | ||
|
|
0e67e4b509 | ||
|
|
e2235667d7 | ||
|
|
c4ac0db59b | ||
|
|
1df9c63cea | ||
|
|
8c0ad59c3d | ||
|
|
2126a0f899 |
@@ -0,0 +1,2 @@
|
|||||||
|
*.env
|
||||||
|
.gitea-actions-runner-token
|
||||||
@@ -0,0 +1,103 @@
|
|||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
networking.hostName = "alien";
|
||||||
|
|
||||||
|
networking.networkmanager = {
|
||||||
|
enable = true;
|
||||||
|
wifi.backend = "wpa_supplicant"; # remove the iwd line, this is the default
|
||||||
|
wifi.powersave = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
networking.wireless.enable = false;
|
||||||
|
# nixpkgs.config.allowUnfree = true;
|
||||||
|
hardware.enableAllFirmware = true;
|
||||||
|
services.gnome.gnome-keyring.enable = true;
|
||||||
|
security.pam.services.login.enableGnomeKeyring = true;
|
||||||
|
security.polkit.enable = true;
|
||||||
|
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
boot.extraModprobeConfig = ''
|
||||||
|
options mt7921e disable_aspm=Y
|
||||||
|
options cfg80211 ieee80211_regdom="CA"
|
||||||
|
'';
|
||||||
|
|
||||||
|
programs.nm-applet.enable = true;
|
||||||
|
hardware.wirelessRegulatoryDatabase = true;
|
||||||
|
# systemd.services.heat-room = {
|
||||||
|
# description = "Morning room heating";
|
||||||
|
# after = [ "graphical-session.target" ];
|
||||||
|
# environment = {
|
||||||
|
# WAYLAND_DISPLAY = "wayland-1";
|
||||||
|
# XDG_RUNTIME_DIR = "/run/user/1000";
|
||||||
|
# };
|
||||||
|
# serviceConfig = {
|
||||||
|
# Type = "oneshot";
|
||||||
|
# User = "jeremy";
|
||||||
|
# };
|
||||||
|
# script = ''
|
||||||
|
# ${pkgs.furmark}/bin/furmark --demo furmark-gl &
|
||||||
|
# sleep 1s
|
||||||
|
# ${pkgs.hyprland}/bin/hyprctl dispatch dpms off
|
||||||
|
# sleep 2h
|
||||||
|
# pkill furmark
|
||||||
|
# '';
|
||||||
|
# };
|
||||||
|
|
||||||
|
# systemd.timers.heat-room = {
|
||||||
|
# wantedBy = [ "timers.target" ];
|
||||||
|
# timerConfig = {
|
||||||
|
# OnCalendar = "*-*-* 4: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;
|
||||||
|
enable32Bit = 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."/" =
|
||||||
|
{ device = "/dev/disk/by-label/NIXROOT";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-label/NIXBOOT";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0022" "dmask=0022" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/home/jeremy" =
|
||||||
|
{ device = "/dev/disk/by-label/JEREMY";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
||||||
@@ -0,0 +1,456 @@
|
|||||||
|
# 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, inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
|
||||||
|
# programs.hyprland.enable = true;
|
||||||
|
programs.steam = {
|
||||||
|
enable = true;
|
||||||
|
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||||
|
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||||
|
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
|
||||||
|
gamescopeSession.enable = true;
|
||||||
|
};
|
||||||
|
programs.neovim = {
|
||||||
|
enable = true;
|
||||||
|
defaultEditor = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Use the systemd-boot EFI boot loader.
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
|
time.timeZone = "America/Toronto";
|
||||||
|
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
# };
|
||||||
|
|
||||||
|
# Enable the X11 windowing system.
|
||||||
|
# services.xserver.enable = true;
|
||||||
|
|
||||||
|
fonts.fontconfig.enable = true;
|
||||||
|
|
||||||
|
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";
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualisation.docker = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.docker_29;
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager = {
|
||||||
|
useGlobalPkgs = true;
|
||||||
|
useUserPackages = true;
|
||||||
|
backupFileExtension = "not-nix"; # Add this line
|
||||||
|
users.jeremy = { pkgs, ... }: {
|
||||||
|
home.stateVersion = "25.11";
|
||||||
|
|
||||||
|
|
||||||
|
programs.waybar = {
|
||||||
|
enable = false;
|
||||||
|
settings = {
|
||||||
|
mainBar = {
|
||||||
|
layer = "top";
|
||||||
|
position = "top";
|
||||||
|
height = 24;
|
||||||
|
margin-top = 0;
|
||||||
|
margin-left = 0;
|
||||||
|
margin-right = 0;
|
||||||
|
spacing = 4;
|
||||||
|
|
||||||
|
modules-left = [ "niri/workspaces" "niri/window" ];
|
||||||
|
modules-center = [];
|
||||||
|
modules-right = [ "cpu" "memory" "tray" "battery" "pulseaudio" "clock" ];
|
||||||
|
|
||||||
|
"niri/workspaces" = {
|
||||||
|
format = "{index}";
|
||||||
|
active-only = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"clock" = {
|
||||||
|
format = "{:%H:%M | %a %d}";
|
||||||
|
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
|
||||||
|
};
|
||||||
|
|
||||||
|
"pulseaudio" = {
|
||||||
|
format = "{icon} {volume}%";
|
||||||
|
format-muted = "";
|
||||||
|
format-icons = {
|
||||||
|
default = [ "" "" "" ];
|
||||||
|
};
|
||||||
|
on-click = "pavucontrol";
|
||||||
|
};
|
||||||
|
|
||||||
|
"cpu" = { format = " {usage}%"; };
|
||||||
|
"memory" = { format = " {percentage}%"; };
|
||||||
|
|
||||||
|
"battery" = {
|
||||||
|
states = { critical = 15; };
|
||||||
|
format = "{icon} {capacity}%";
|
||||||
|
format-icons = [ "" "" "" "" "" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
style = ''
|
||||||
|
* {
|
||||||
|
font-family: "JetBrainsMono Nerd Font";
|
||||||
|
font-size: 15px;
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background: #000;
|
||||||
|
color: #cdd6f4;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
padding: 0 8px;
|
||||||
|
color: #bac2de;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.focused {
|
||||||
|
color: #7fc8ff;
|
||||||
|
background: rgba(127, 200, 255, 0.1);
|
||||||
|
border-bottom: 2px solid #7fc8ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock, #cpu, #memory, #pulseaudio, #battery {
|
||||||
|
padding: 0 10px;
|
||||||
|
margin: 4px 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
font-weight: bold;
|
||||||
|
color: #89b4fa;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.neovim = { # Configure nvim
|
||||||
|
enable = true;
|
||||||
|
extraConfig = ''
|
||||||
|
set number relativenumber
|
||||||
|
set tabstop=2
|
||||||
|
set softtabstop=2
|
||||||
|
set shiftwidth=2
|
||||||
|
set expandtab
|
||||||
|
set cc=80
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
programs.vscode = { # Configure vscodium
|
||||||
|
enable = true;
|
||||||
|
package = inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.vscodium; # i just want the vscode-dark-2026 theme
|
||||||
|
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
|
||||||
|
bierner.markdown-mermaid # mermaid
|
||||||
|
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
||||||
|
# {
|
||||||
|
# name = "skillavid-pure-black";
|
||||||
|
# publisher = "redwan-hossain";
|
||||||
|
# version = "5.0.0";
|
||||||
|
# sha256 = "sha256-/gLvhw0XcUb6Jch/LZ4k7xpSS9wdYWVf5u7uvOHS+i8=";
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# name = "remote-ssh-edit";
|
||||||
|
# publisher = "ms-vscode-remote";
|
||||||
|
# version = "0.47.2";
|
||||||
|
# sha256 = "1hp6gjh4xp2m1xlm1jsdzxw9d8frkiidhph6nvl24d0h8z34w49g";
|
||||||
|
# }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable touchpad support (enabled default in most desktopManager).
|
||||||
|
# services.libinput.enable = true;
|
||||||
|
|
||||||
|
users.users.jeremy = {
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = [ "wheel" "docker" "wireshark" "adbusers" "plugdev" "networkmanager" ];
|
||||||
|
shell = pkgs.bash;
|
||||||
|
home = "/home/jeremy";
|
||||||
|
createHome = true;
|
||||||
|
packages = with pkgs; [
|
||||||
|
prismlauncher # minecraft launcher
|
||||||
|
discord-canary
|
||||||
|
# godot # 4.5.1 for now
|
||||||
|
inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.godot_4
|
||||||
|
inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.typst # bleeding edge html exports for typst
|
||||||
|
inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.tinymist # typst previews
|
||||||
|
nextcloud-client
|
||||||
|
signal-desktop
|
||||||
|
# swaybg # wallpaper
|
||||||
|
nixfmt # nix file formatting
|
||||||
|
openrgb # RGB editor
|
||||||
|
furmark # Room heater
|
||||||
|
obsidian # note taking
|
||||||
|
gcc
|
||||||
|
xauth
|
||||||
|
burpsuite
|
||||||
|
python3
|
||||||
|
direnv # develop projects in custom environments
|
||||||
|
# hyprshot # screenshots
|
||||||
|
binaryninja-free # broke ahh cracker
|
||||||
|
patchelf # make programs understand nix. good for downloaded executables such as crackmes
|
||||||
|
starsector # support indie games!
|
||||||
|
htop
|
||||||
|
ripgrep
|
||||||
|
mullvad-vpn # arrr
|
||||||
|
qbittorrent # arrr
|
||||||
|
mpv # arrr
|
||||||
|
wireshark
|
||||||
|
obs-studio
|
||||||
|
slack
|
||||||
|
scrcpy # phone rdp
|
||||||
|
android-tools # phone rdp
|
||||||
|
wireguard-tools
|
||||||
|
blender # drone
|
||||||
|
gnumake # make & makefile
|
||||||
|
thunderbird
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Use https://search.nixos.org/ to find more packages (and options).
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
firefox
|
||||||
|
neovim
|
||||||
|
wget
|
||||||
|
gnome-disk-utility
|
||||||
|
dunst
|
||||||
|
libnotify
|
||||||
|
rofi
|
||||||
|
alacritty
|
||||||
|
ncdu
|
||||||
|
nmap
|
||||||
|
kitty
|
||||||
|
git
|
||||||
|
unzip
|
||||||
|
pavucontrol # PulseAudio Volume Control
|
||||||
|
bluez # Bluetooth support
|
||||||
|
bluez-tools # Bluetooth tools
|
||||||
|
polkit_gnome
|
||||||
|
usbutils # for lsusb
|
||||||
|
xwayland-satellite # xwayland support
|
||||||
|
fuzzel # menu
|
||||||
|
networkmanagerapplet
|
||||||
|
wireless-regdb
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
fonts.packages = [ pkgs.nerd-fonts.jetbrains-mono ];
|
||||||
|
|
||||||
|
programs.niri.enable = false;
|
||||||
|
boot.initrd.kernelModules = [ "amdgpu" ];
|
||||||
|
|
||||||
|
environment.sessionVariables = {
|
||||||
|
SUDO_EDITOR = "nvim";
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.bluetooth = {
|
||||||
|
enable = true;
|
||||||
|
powerOnBoot = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.ollama = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.ollama;
|
||||||
|
acceleration = "rocm";
|
||||||
|
host = "0.0.0.0";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.pulseaudio.enable = false; # Use Pipewire
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
jack.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# networking = {
|
||||||
|
# interfaces.eno1 = {
|
||||||
|
# ipv4.addresses = [{
|
||||||
|
# address = "192.168.2.100";
|
||||||
|
# prefixLength = 24;
|
||||||
|
# }];
|
||||||
|
# };
|
||||||
|
# defaultGateway = {
|
||||||
|
# address = "192.168.2.1";
|
||||||
|
# interface = "eno1";
|
||||||
|
# };
|
||||||
|
# # interfaces.ens3 = {
|
||||||
|
# # ipv4.addresses = [{
|
||||||
|
# # address = "10.40.0.132";
|
||||||
|
# # prefixLength = 24;
|
||||||
|
# # }];
|
||||||
|
# # };
|
||||||
|
# # defaultGateway = {
|
||||||
|
# # address = "10.40.0.1";
|
||||||
|
# # interface = "wlp10s0";
|
||||||
|
# # };
|
||||||
|
# };
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
services.mullvad-vpn.package = pkgs.mullvad-vpn; # arr
|
||||||
|
services.resolved.enable = true; # for mullvad
|
||||||
|
|
||||||
|
# programs.ssh.startAgent = true; # Enable SSH tools
|
||||||
|
# programs.thunar.enable = true; # file manager
|
||||||
|
programs.wireshark.enable = true;
|
||||||
|
|
||||||
|
# virtualisation.waydroid.enable = true; # android :0
|
||||||
|
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
||||||
|
"steam"
|
||||||
|
"steam-original"
|
||||||
|
"steam-unwrapped"
|
||||||
|
"steam-run"
|
||||||
|
"furmark"
|
||||||
|
"burpsuite"
|
||||||
|
"slack"
|
||||||
|
];
|
||||||
|
|
||||||
|
# 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;
|
||||||
|
# };
|
||||||
|
|
||||||
|
# Enable OpenSSH daemon
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
ports = [2121];
|
||||||
|
settings.X11Forwarding = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.allowedTCPPorts = [2121];
|
||||||
|
networking.networkmanager.enable = true;
|
||||||
|
networking.extraHosts = ''
|
||||||
|
10.0.1.51 freeipa.bsidestoctf.com
|
||||||
|
'';
|
||||||
|
programs.nm-applet.enable = true;
|
||||||
|
|
||||||
|
# Binaries auto linked
|
||||||
|
programs.nix-ld.enable = true;
|
||||||
|
programs.nix-ld.libraries = with pkgs; [
|
||||||
|
stdenv.cc.cc
|
||||||
|
zlib
|
||||||
|
fuse3
|
||||||
|
icu
|
||||||
|
nss
|
||||||
|
openssl
|
||||||
|
curl
|
||||||
|
expat
|
||||||
|
wayland
|
||||||
|
libxkbcommon
|
||||||
|
libGL
|
||||||
|
gtk3
|
||||||
|
glib
|
||||||
|
pango
|
||||||
|
harfbuzz
|
||||||
|
cairo
|
||||||
|
gdk-pixbuf
|
||||||
|
webkitgtk_4_1
|
||||||
|
libsoup_3
|
||||||
|
gobject-introspection
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
services.displayManager.gdm.enable = true;
|
||||||
|
services.desktopManager.gnome.enable = true;
|
||||||
|
services.gnome.core-apps.enable = true;
|
||||||
|
services.gnome.core-developer-tools.enable = false;
|
||||||
|
services.gnome.games.enable = false;
|
||||||
|
environment.gnome.excludePackages = with pkgs; [ gnome-tour gnome-user-docs ];
|
||||||
|
|
||||||
|
|
||||||
|
# udev rules for pyocd for UTAT
|
||||||
|
services.udev.extraRules = ''
|
||||||
|
SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="374e", MODE="0666", GROUP="plugdev"
|
||||||
|
SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="374b", MODE="0666", GROUP="plugdev"
|
||||||
|
SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="374f", MODE="0666", GROUP="plugdev"
|
||||||
|
SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="3753", MODE="0666", GROUP="plugdev"
|
||||||
|
'';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# bootloader device
|
||||||
|
# boot.loader.grub.device = "/dev/sda";
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
#programs.wireshark.enable = true;
|
||||||
|
# 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?
|
||||||
|
}
|
||||||
@@ -1,402 +0,0 @@
|
|||||||
# 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, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[ # Include the results of the hardware scan.
|
|
||||||
./hardware-configuration.nix
|
|
||||||
<home-manager/nixos>
|
|
||||||
];
|
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
|
|
||||||
programs.hyprland.enable = true;
|
|
||||||
programs.steam = {
|
|
||||||
enable = true;
|
|
||||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
|
||||||
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
|
||||||
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
|
|
||||||
};
|
|
||||||
programs.neovim = {
|
|
||||||
enable = true;
|
|
||||||
defaultEditor = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
|
|
||||||
networking.hostName = "alien";
|
|
||||||
time.timeZone = "America/Toronto";
|
|
||||||
|
|
||||||
|
|
||||||
# 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.
|
|
||||||
# };
|
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
|
||||||
# services.xserver.enable = true;
|
|
||||||
|
|
||||||
virtualisation.docker.enable = true;
|
|
||||||
|
|
||||||
home-manager = {
|
|
||||||
useGlobalPkgs = true;
|
|
||||||
useUserPackages = true;
|
|
||||||
backupFileExtension = "not-nix"; # Add this line
|
|
||||||
users.jeremy = { pkgs, ... }: {
|
|
||||||
home.stateVersion = "25.11";
|
|
||||||
wayland.windowManager.hyprland = { # Configure hyprland
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
general = {
|
|
||||||
gaps_in = 0;
|
|
||||||
gaps_out = 0;
|
|
||||||
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";
|
|
||||||
bind = [
|
|
||||||
"$mainMod, C, exec, alacritty"
|
|
||||||
"$mainMod, Q, killactive,"
|
|
||||||
"$mainMod, grave, exec, rofi -show drun"
|
|
||||||
"$mainMod, F, fullscreen"
|
|
||||||
"$mainMod, V, togglefloating,"
|
|
||||||
",F4, exec, rofi -show combi -combi-modes 'drun,filebrowser'"
|
|
||||||
"$mainMod, A, togglesplit"
|
|
||||||
", PRINT, exec, hyprshot -zm region -o ~/pics/screenshots/"
|
|
||||||
"SHIFT, PRINT, exec, hyprshot -zm window -o ~/pics/screenshots/"
|
|
||||||
"SUPER, PRINT, exec, hyprshot -zm output -o ~/pics/screenshots/"
|
|
||||||
"$mainMod, N, exec, codium ~/etc/nixos/configuration.nix"
|
|
||||||
"$mainMod, L, exec, sleep 1s; hyprctl dispatch dpms off" # screen off
|
|
||||||
|
|
||||||
# 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]
|
|
||||||
"$mainMod, 1, workspace, 1"
|
|
||||||
"$mainMod, 2, workspace, 2"
|
|
||||||
"$mainMod, 3, workspace, 3"
|
|
||||||
"$mainMod, 4, workspace, 4"
|
|
||||||
"$mainMod, 5, workspace, 5"
|
|
||||||
"$mainMod, 6, workspace, 6"
|
|
||||||
"$mainMod, 7, workspace, 7"
|
|
||||||
"$mainMod, 8, workspace, 8"
|
|
||||||
"$mainMod, 9, workspace, 9"
|
|
||||||
"$mainMod, 0, workspace, 10"
|
|
||||||
|
|
||||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
|
||||||
"$mainMod SHIFT, 1, movetoworkspace, 1"
|
|
||||||
"$mainMod SHIFT, 2, movetoworkspace, 2"
|
|
||||||
"$mainMod SHIFT, 3, movetoworkspace, 3"
|
|
||||||
"$mainMod SHIFT, 4, movetoworkspace, 4"
|
|
||||||
"$mainMod SHIFT, 5, movetoworkspace, 5"
|
|
||||||
"$mainMod SHIFT, 6, movetoworkspace, 6"
|
|
||||||
"$mainMod SHIFT, 7, movetoworkspace, 7"
|
|
||||||
"$mainMod SHIFT, 8, movetoworkspace, 8"
|
|
||||||
"$mainMod SHIFT, 9, movetoworkspace, 9"
|
|
||||||
"$mainMod SHIFT, 0, movetoworkspace, 10"
|
|
||||||
];
|
|
||||||
bindm = [
|
|
||||||
"$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-2, 2560x1440@170, 0x0, 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 = { # Configure nvim
|
|
||||||
enable = true;
|
|
||||||
extraConfig = ''
|
|
||||||
set number relativenumber
|
|
||||||
set tabstop=2
|
|
||||||
set softtabstop=2
|
|
||||||
set shiftwidth=2
|
|
||||||
set expandtab
|
|
||||||
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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
|
||||||
# services.libinput.enable = true;
|
|
||||||
|
|
||||||
users.users.jeremy = {
|
|
||||||
isNormalUser = true;
|
|
||||||
extraGroups = [ "wheel" "docker" ]; # Enable sudo
|
|
||||||
shell = pkgs.bash;
|
|
||||||
home = "/home/jeremy";
|
|
||||||
createHome = true;
|
|
||||||
packages = with pkgs; [
|
|
||||||
prismlauncher # minecraft launcher
|
|
||||||
discord-canary
|
|
||||||
godot # 4.5.1 for now
|
|
||||||
nextcloud-client
|
|
||||||
steam
|
|
||||||
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
|
|
||||||
binaryninja-free # broke ahh cracker
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Use https://search.nixos.org/ to find more packages (and options).
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
firefox
|
|
||||||
neovim
|
|
||||||
wget
|
|
||||||
networkmanager
|
|
||||||
gnome-disk-utility
|
|
||||||
dunst
|
|
||||||
libnotify
|
|
||||||
rofi
|
|
||||||
alacritty
|
|
||||||
vscodium
|
|
||||||
ncdu
|
|
||||||
nmap
|
|
||||||
kitty
|
|
||||||
git
|
|
||||||
unzip
|
|
||||||
pavucontrol # PulseAudio Volume Control
|
|
||||||
bluez # Bluetooth support
|
|
||||||
bluez-tools # Bluetooth tools
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.kernelModules = [ "amdgpu" ];
|
|
||||||
|
|
||||||
environment.sessionVariables = {
|
|
||||||
SUDO_EDITOR = "nvim";
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.bluetooth = {
|
|
||||||
enable = true;
|
|
||||||
powerOnBoot = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.networkmanager = {
|
|
||||||
enable = true;
|
|
||||||
# This is the critical line that fixes your error
|
|
||||||
plugins = with pkgs; [
|
|
||||||
networkmanager-openvpn
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
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
|
|
||||||
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) [
|
|
||||||
"steam"
|
|
||||||
"steam-original"
|
|
||||||
"steam-unwrapped"
|
|
||||||
"steam-run"
|
|
||||||
"furmark"
|
|
||||||
"burpsuite"
|
|
||||||
];
|
|
||||||
|
|
||||||
# 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;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# Enable OpenSSH daemon
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
ports = [2121];
|
|
||||||
settings.X11Forwarding = true;
|
|
||||||
};
|
|
||||||
networking.firewall.allowedTCPPorts = [2121];
|
|
||||||
|
|
||||||
# bootloader device
|
|
||||||
boot.loader.grub.device = "/dev/sda";
|
|
||||||
|
|
||||||
# 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?
|
|
||||||
}
|
|
||||||
Generated
+66
@@ -0,0 +1,66 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1779506708,
|
||||||
|
"narHash": "sha256-QOD/CNm196nCJRheux/URi4/HE66fthdOMqCJoPP1Y0=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "3ee51fbdac8c8bdfe1e7e1fcaba6520a563f394f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "release-25.11",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1782847189,
|
||||||
|
"narHash": "sha256-twXPFqFsrrY5r28Zh7Homgcp2gUMBgQ6WDS98Q/3xFI=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "b6018f87da91d19d0ab4cf979885689b469cdd41",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-25.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-unstable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1787498568,
|
||||||
|
"narHash": "sha256-9i/VTdusq/+NM/tz+J1Re+ojkMB8MBf0QshnYfzHz30=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "56c02bc00adcf003215cc4bd996d6efaf4cff188",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"nixpkgs-unstable": "nixpkgs-unstable"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
{
|
||||||
|
description = "Default NixOS Flake Configuration";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
# The primary source for packages
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
|
||||||
|
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager/release-25.11";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Optional: Unstable branch for things like Ollama or Hyprland
|
||||||
|
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, ... }@inputs: {
|
||||||
|
nixosConfigurations."alien" = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs; };
|
||||||
|
modules = [
|
||||||
|
./client-configuration.nix
|
||||||
|
./alien-hardware-configuration.nix
|
||||||
|
./shared-configuration.nix
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
{
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
(final: prev: {
|
||||||
|
ollama = nixpkgs-unstable.legacyPackages.${prev.system}.ollama;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
nixosConfigurations."thinkpad" = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs; };
|
||||||
|
modules = [
|
||||||
|
./client-configuration.nix
|
||||||
|
./thinkpad-hardware-configuration.nix
|
||||||
|
./shared-configuration.nix
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
{
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
(final: prev: {
|
||||||
|
ollama = nixpkgs-unstable.legacyPackages.${prev.system}.ollama;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
nixosConfigurations."predator" = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs; };
|
||||||
|
modules = [
|
||||||
|
./server-configuration.nix
|
||||||
|
./predator-hardware-configuration.nix
|
||||||
|
./shared-configuration.nix
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
{
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
(final: prev: {
|
||||||
|
ollama = nixpkgs-unstable.legacyPackages.${prev.system}.ollama;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,75 +0,0 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
systemd.services.heat-room = {
|
|
||||||
description = "Morning room heating";
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
User = "jeremy";
|
|
||||||
};
|
|
||||||
script = ''
|
|
||||||
${pkgs.furmark}/bin/furmark --demo furmark-gl &
|
|
||||||
sleep 1s
|
|
||||||
hyprctl dispatch dpms off
|
|
||||||
sleep 2h
|
|
||||||
pkill furmark
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
systemd.timers.heat-room = {
|
|
||||||
wantedBy = [ "timers.target" ];
|
|
||||||
timerConfig = {
|
|
||||||
OnCalendar = "*-*-* 4: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."/" =
|
|
||||||
{ device = "/dev/disk/by-label/NIXROOT";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" =
|
|
||||||
{ device = "/dev/disk/by-label/NIXBOOT";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [ "fmask=0022" "dmask=0022" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/home/jeremy" =
|
|
||||||
{ device = "/dev/disk/by-label/JEREMY";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ ];
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
networking.hostName = "predator";
|
||||||
|
services.logind.lidSwitch = "ignore";
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-uuid/f4c64434-432c-436b-85b5-168350b33724";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/9566-B0E9";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0022" "dmask=0022" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
||||||
@@ -0,0 +1,123 @@
|
|||||||
|
{ config, lib, pkgs, inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [];
|
||||||
|
# Use the systemd-boot EFI boot loader.
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
|
||||||
|
networking.networkmanager.enable = true;
|
||||||
|
networking.firewall.allowedTCPPorts = [22 42069 9876];
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
ports = [22];
|
||||||
|
settings.X11Forwarding = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.miniflux = {
|
||||||
|
enable = true;
|
||||||
|
createDatabaseLocally = true;
|
||||||
|
adminCredentialsFile = "/etc/miniflux.env";
|
||||||
|
config = {
|
||||||
|
LISTEN_ADDR = "0.0.0.0:9876";
|
||||||
|
BASE_URL = "https://reader.janel.la";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services."gitea-runner-homelab".serviceConfig = {
|
||||||
|
ReadWritePaths = [ "/servers/site" ];
|
||||||
|
DynamicUser = lib.mkForce false;
|
||||||
|
User = lib.mkForce "gitea-runner";
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.binsh = "${pkgs.bash}/bin/bash";
|
||||||
|
services.gitea-actions-runner.instances."homelab" = {
|
||||||
|
enable = true;
|
||||||
|
url = "https://git.janel.la";
|
||||||
|
tokenFile = "/servers/gitea/runner-token";
|
||||||
|
name = "predator";
|
||||||
|
labels = [ "homelab:host" "nixos:host" "predator:host" ];
|
||||||
|
settings = {
|
||||||
|
container.network = "host";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
time.timeZone = "America/Toronto";
|
||||||
|
|
||||||
|
virtualisation.docker = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.docker_29;
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager = {
|
||||||
|
useGlobalPkgs = true;
|
||||||
|
useUserPackages = true;
|
||||||
|
backupFileExtension = "not-nix"; # Add this line
|
||||||
|
users.jeremy = { pkgs, ... }: {
|
||||||
|
home.stateVersion = "25.11";
|
||||||
|
programs.neovim = { # Configure nvim
|
||||||
|
enable = true;
|
||||||
|
extraConfig = ''
|
||||||
|
set number relativenumber
|
||||||
|
set tabstop=2
|
||||||
|
set softtabstop=2
|
||||||
|
set shiftwidth=2
|
||||||
|
set expandtab
|
||||||
|
set cc=80
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.jeremy = {
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = [ "wheel" "docker" "networkmanager" ];
|
||||||
|
shell = pkgs.bash;
|
||||||
|
home = "/home/jeremy";
|
||||||
|
createHome = true;
|
||||||
|
packages = with pkgs; [
|
||||||
|
nixfmt # nix file formatting
|
||||||
|
direnv # develop projects in custom environments
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.gitea-runner = {
|
||||||
|
isSystemUser = true;
|
||||||
|
group = "gitea-runner";
|
||||||
|
};
|
||||||
|
users.groups.gitea-runner = {};
|
||||||
|
|
||||||
|
# Use https://search.nixos.org/ to find more packages (and options).
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
gcc
|
||||||
|
htop
|
||||||
|
neovim
|
||||||
|
wget
|
||||||
|
ncdu
|
||||||
|
nmap
|
||||||
|
git
|
||||||
|
unzip
|
||||||
|
bluez # Bluetooth support
|
||||||
|
bluez-tools # Bluetooth tools
|
||||||
|
polkit_gnome
|
||||||
|
usbutils # for lsusb
|
||||||
|
networkmanagerapplet
|
||||||
|
wireguard-tools
|
||||||
|
inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.typst # bleeding edge html exports for typst
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.sessionVariables = {
|
||||||
|
SUDO_EDITOR = "nvim";
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.bluetooth = {
|
||||||
|
enable = true;
|
||||||
|
powerOnBoot = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "25.11";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
{ config, lib, pkgs, inputs, ... }:
|
||||||
|
{
|
||||||
|
programs.ssh.extraConfig = ''
|
||||||
|
Host scinet
|
||||||
|
HostName teach.scinet.utoronto.ca
|
||||||
|
User lcl_uotcscd60s2180
|
||||||
|
ForwardX11 yes
|
||||||
|
ForwardX11Trusted yes
|
||||||
|
IdentityFile ~/.ssh/id_ed25519.pub
|
||||||
|
|
||||||
|
Host node
|
||||||
|
Hostname janel.la
|
||||||
|
User jeremy
|
||||||
|
ForwardX11Trusted yes
|
||||||
|
IdentityFile ~/.ssh/id_ed25519.pub
|
||||||
|
|
||||||
|
Host predator
|
||||||
|
Hostname 10.8.0.4
|
||||||
|
User jeremy
|
||||||
|
ForwardX11Trusted yes
|
||||||
|
ProxyJump node
|
||||||
|
|
||||||
|
Host mathlab
|
||||||
|
Hostname mathlab.utsc.utoronto.ca
|
||||||
|
User janellaj
|
||||||
|
ForwardX11 yes
|
||||||
|
ForwardX11Trusted yes
|
||||||
|
IdentityFile ~/.ssh/id_ed25519.pub
|
||||||
|
|
||||||
|
Host lab
|
||||||
|
Hostname it-ia3160-01.utsc-labs.utoronto.ca
|
||||||
|
User janellaj
|
||||||
|
ForwardX11 yes
|
||||||
|
ForwardX11Trusted yes
|
||||||
|
IdentityFile ~/.ssh/id_ed25519.pub
|
||||||
|
ProxyJump mathlab
|
||||||
|
'';
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" ];
|
||||||
|
boot.initrd.kernelModules = [ "dm-snapshot" ];
|
||||||
|
boot.initrd.luks.devices."cryptroot" = {
|
||||||
|
device = "/dev/disk/by-uuid/8f79adab-ca08-497b-921a-ee386ad03cfc";
|
||||||
|
preLVM = true;
|
||||||
|
};
|
||||||
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
networking.hostName = "thinkpad";
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/mapper/vg0-root";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/06C1-B3A3";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0022" "dmask=0022" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices =
|
||||||
|
[ { device = "/dev/mapper/vg0-swap"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user