{ config, inputs, pkgs, ... }: { imports = [ /etc/nixos/hardware-configuration.nix ./big-picture-launcher.nix ]; nixpkgs.overlays = [ (import ./ghidra-m32r-overlay.nix) ]; # Extra Nix Settings nix.settings = { auto-optimise-store = true; experimental-features = [ "nix-command" "flakes" ]; }; programs.nix-ld.enable = true; # Bootloader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; networking.hostName = "nixos"; # Define your hostname. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # Configure network proxy if necessary # networking.proxy.default = "http://user:password@proxy:port/"; # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; # Enable networking networking.networkmanager.enable = true; # Set your time zone. time.timeZone = "America/Chicago"; # Select internationalisation properties. 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"; }; # Nvidia shit hardware.graphics.enable = true; services.xserver.videoDrivers = [ "nvidia" ]; hardware.nvidia.open = false; # Enable the X11 windowing system. services.xserver.enable = true; # DMs/WMs environment.pathsToLink = ["/libexec"]; services.xserver = { desktopManager = { xterm.enable = false; xfce.enable = true; # lxqt.enable = true; }; displayManager = { # lightdm.enable = true; # gdm.enable = true; sddm.enable = true; }; windowManager.i3 = { enable = true; extraPackages = with pkgs; [ dmenu ]; }; }; # services.displayManager.defaultSession = "none+i3"; # programs.i3lock.enable = true; # end i3wm # Configure keymap in X11 services.xserver.xkb = { layout = "us"; variant = ""; }; # Enable CUPS to print documents. services.printing.enable = true; services.avahi = { enable = true; nssmdns4 = true; openFirewall = true; }; # Enable sound with pipewire. services.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; # Enable Direnv programs.direnv.enable = true; # User Account users.users.chris = { isNormalUser = true; description = "chris"; extraGroups = [ "networkmanager" "wheel" "dialout" "storage" ]; shell = pkgs.zsh; packages = with pkgs; [ telegram-desktop discord ungoogled-chromium inkscape obsidian sourcegit obs-studio r2modman signal-desktop kdePackages.dolphin flameshot vscodium # jetbrains.rider nautilus # element-desktop onlyoffice-desktopeditors vlc orca-slicer blender # mudlet grayjay vlc kdePackages.kdenlive kicad ghidra ]; }; services.freenet = { enable = true; }; # Garbage Collection nix.gc = { automatic = true; dates = "weekly"; persistent = true; options = ""; }; # Printing services.printing.drivers = [ pkgs.brlaser pkgs.brgenml1lpr pkgs.brgenml1cupswrapper ]; # Mount the data drive fileSystems."/data" = { device = "/dev/disk/by-uuid/58c7b996-c436-47e8-8018-244417acf067"; fsType = "ext4"; options = [ "nofail" ]; }; # ZSH programs.zsh = { enable = true; enableCompletion = true; autosuggestions.enable = true; syntaxHighlighting.enable = true; interactiveShellInit = '' fastfetch ''; shellAliases = { ll = "ls -l"; edit = "hx ~/dotfiles"; update = "sh ~/dotfiles/rebuild.sh"; ssh-server = "ssh braincell@192.168.1.3"; calc = "kalker"; n = "nvim ."; # ssh-pihole = "ssh bell@192.168.1.23"; }; histSize = 10000; histFile = "$HOME/.zsh_history"; setOptions = [ "HIST_IGNORE_ALL_DUPS" ]; oh-my-zsh = { enable = true; theme = "clean"; plugins = ["git" "sudo" "direnv"]; }; }; # Steam programs.steam.enable = true; # Allow unfree packages nixpkgs.config.allowUnfree = true; # System Packages environment.systemPackages = with pkgs; [ vim wget git file helix lazygit kitty picom arandr feh nixd quickshell inputs.noctalia.packages.${system}.default xwayland-satellite adw-gtk3 nwg-look fastfetch swaylock xdg-desktop-portal-gtk xdg-desktop-portal-gnome gnome-keyring parted gparted disktui busybox kalker nmap screen btop udiskie thunar distrobox wine # wine-staging wine-wayland winetricks ]; # programs.neovim = { # enable = true; # defaultEditor = true; # }; # Emulate arm boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; # extra filesystems boot.supportedFilesystems = { exfat = true; ntfs = true; }; # Enable GDM # services.xserver.displayManager.gdm.enable = true; # Enable Virtualization virtualisation.libvirtd.enable = true; programs.virt-manager.enable = true; virtualisation.podman = { enable = true; dockerCompat = true; }; # Enable Flatpacks services.flatpak.enable = true; # Xdg portal xdg.portal = { enable = true; extraPortals = [pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-gnome]; # config.common.default = ""; }; # OpenSSH services.openssh.enable = true; # UDisks (for auto mounting) services.udisks2 = { enable = true; }; services.gvfs.enable = true; systemd.user.services.udiskie = { description = "udiskie automount daemon"; wantedBy = [ "graphical-session.target" ]; partOf = [ "graphical-session.target" ]; serviceConfig = { ExecStart = "${pkgs.udiskie}/bin/udiskie --automount --notify --tray"; Restart = "always"; }; }; # Firewall networking.firewall.allowedTCPPorts = [ 9999 ]; networking.firewall.allowedUDPPorts = [ 9999 ]; # Or disable the firewall altoget. # networking.firewall.enable = false; # networking.nameservers = [ "192.168.1.3" "1.1.1.1" ]; system.stateVersion = "25.11"; # Did you read the comment? DONT TOUCH :) }