# 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, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ]; 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 }; 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"; programs.waybar = { enable = true; 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 = "{:%Y %B}\n{calendar}"; }; "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 = 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="; } ]; }; }; }; # 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 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 ]; fonts.packages = [ pkgs.nerd-fonts.jetbrains-mono ]; programs.niri.enable = true; 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; }; 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]; # 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 ]; # 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? }