Compare commits

..
45 Commits
Author SHA1 Message Date
Jeremy Janella 7ccd4e15da thunderbird 2026-10-07 13:57:26 -04:00
Jeremy Janella 3490817248 Merge remote-tracking branch 'refs/remotes/origin/main' 2026-10-03 15:16:36 -04:00
Jeremy Janella 148640bb2a gnome-shell 2026-10-03 15:16:21 -04:00
Jeremy Janella ba44c1bc08 gnome-shell 2026-10-03 15:15:26 -04:00
jjanella 4d3a006bfd fix: steam 2026-09-23 21:54:12 -04:00
jjanella 491d6adc91 feat: ripgrep 2026-09-23 18:31:30 -04:00
Jeremy Janella 8e0c80c3b0 mathlab ssh config 2026-09-21 12:57:01 -04:00
Jeremy Janella b23dbf47b3 feat: ssh configs 2026-09-21 12:31:28 -04:00
jjanella eac355b345 fix: opened port 2026-09-13 11:51:00 -04:00
jjanella 49c73c9139 feat: miniflux 2026-09-13 11:32:33 -04:00
jjanella 4319f158ff feat: miniflux 2026-09-13 11:28:25 -04:00
jjanella 9a2939d652 chore: vscodium update 2026-08-26 13:37:53 -04:00
jjanella 5cb7962371 updated docker 2026-08-24 13:41:35 -04:00
jjanella de75a0fdbd updated docker 2026-08-24 13:38:51 -04:00
jjanella 34ba6d636c updated packages 2026-08-24 13:35:00 -04:00
Jeremy Janella dcacdc457c updated git runner domain 2026-08-19 21:26:40 -04:00
jjanella 0ee096cc68 Merge remote-tracking branch 'refs/remotes/origin/main' 2026-07-28 18:36:09 -04:00
jjanella 23769c139f tinymist update 2026-07-28 18:35:50 -04:00
jjanella 7c68d3e0d3 Update server-configuration.nix 2026-07-27 13:32:44 -04:00
jjanella 8fd41b9360 Update server-configuration.nix 2026-07-27 13:31:41 -04:00
jjanella a29b3994a3 removed contradictiory typst definition 2026-07-27 13:30:06 -04:00
jjanella ca2854e432 Merge remote-tracking branch 'origin' 2026-07-27 13:26:21 -04:00
jjanella e47856a88a gitea configs 2026-07-27 13:26:12 -04:00
jjanella 569e753bb9 updated lock file for typst 2026-07-27 13:23:05 -04:00
jjanella 9dcacd63ad build automation 2026-07-27 13:13:50 -04:00
jjanella c4c4f61b36 typst upgrade 2026-07-27 13:11:47 -04:00
jjanella 2981bbacad Merge remote-tracking branch 'origin' 2026-07-02 18:48:53 -04:00
jjanella 8c80db59cf feat: mermaid in vscode 2026-07-02 18:47:19 -04:00
Jeremy Janella 4ee2e727a2 ssh edit config 2026-05-22 13:45:44 -04:00
jjanella 9609e157ea move alien wifi config to hardware 2026-05-16 23:26:25 -04:00
jjanella a6c11c5ca4 Merge remote-tracking branch 'refs/remotes/origin/main' 2026-05-16 23:25:29 -04:00
Jeremy Janella 70773fd8e4 thinkpad config and wifi 2026-05-16 23:17:48 -04:00
jjanella 9bcda8302f wifi 2026-05-16 23:07:25 -04:00
Jeremy Janella 0c40aecab7 wireguard & phone rdp 2026-05-15 16:55:43 -04:00
Jeremy Janella 5e807ce9d0 slack 2026-05-14 17:37:19 -04:00
Jeremy Janella bfc067c31f no niri 2026-05-14 15:58:48 -04:00
Jeremy Janella 221a39e865 thinkpad conf 2026-05-14 15:09:05 -04:00
jjanella 2011068784 obs 2026-04-13 22:51:14 -04:00
jjanella fb8e597a43 fix: ollama defined twice different version bug 2026-04-13 12:00:50 -04:00
jjanella 4c525f9335 fix: home-manager build bug 2026-04-13 11:33:41 -04:00
jjanella d834b0be80 fix: home manager flake requirement 2026-04-13 11:25:31 -04:00
jjanella 848323bb4a flake 2026-04-13 11:10:47 -04:00
jjanella ce420d867c ollama 2026-04-13 10:52:34 -04:00
jjanella 962a0ad527 autolinking 2026-04-12 10:37:07 -04:00
jjanella 23501b5dcf pulse 2026-04-03 12:03:23 -04:00
11 changed files with 850 additions and 474 deletions
+2
View File
@@ -0,0 +1,2 @@
*.env
.gitea-actions-runner-token
@@ -13,6 +13,30 @@
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" ];
+1
View File
@@ -0,0 +1 @@
sudo nixos-rebuild switch --flake .#$(hostname)
+456
View File
@@ -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?
}
-474
View File
@@ -1,474 +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;
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;
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"
# ];
# };
# };
# wayland.windowManager.sway = {
# enable = true;
# config = rec {
# modifier = "Mod4";
# # Use kitty as default terminal
# terminal = "kitty";
# startup = [
# # Launch Firefox on start
# {command = "firefox";}
# ];
# };
# };
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" "wireshark" ]; # 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
patchelf # make programs understand nix. good for downloaded executables such as crackmes
starsector # support indie games!
htop
mullvad-vpn # arrr
qbittorrent # arrr
mpv # arrr
wireshark
];
};
# 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
xwayland-satellite # xwayland support
fuzzel # menu
# grim # screenshot functionality
# slurp # screenshot functionality
# wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout
# mako # notification system developed by swaywm maintainer
];
programs.niri.enable = true;
# programs.sway = {
# enable = true;
# wrapperFeatures.gtk = true;
# };
# services.gnome.gnome-keyring.enable = true;
boot.initrd.kernelModules = [ "amdgpu" ];
environment.sessionVariables = {
SUDO_EDITOR = "nvim";
};
hardware.bluetooth = {
enable = true;
powerOnBoot = true;
};
# networking.networkmanager = {
# enable = true;
# plugins = with pkgs; [
# networkmanager-openvpn # for htb
# ];
# };
services.ollama = {
enable = false;
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.pipewire.enable = true;
services.pipewire.pulse.enable = true;
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
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"
];
# 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];
# MatLab
nixpkgs.overlays = let
nix-matlab = import (builtins.fetchTarball "https://gitlab.com/doronbehar/nix-matlab/-/archive/master/nix-matlab-master.tar.gz");
in [
nix-matlab.overlay
(
final: prev: {
# Your own overlays...
}
)
];
# 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?
}
Generated
+66
View File
@@ -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
}
+67
View File
@@ -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;
})
];
}
];
};
};
}
+33
View File
@@ -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;
}
+123
View File
@@ -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";
}
+39
View File
@@ -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
'';
}
+39
View File
@@ -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;
}