{ inputs, pkgs, options, config, lib, ... }: { imports = [ ./hardware-configuration.nix ../cos.nix ]; nixpkgs.overlays = [ inputs.nix-bwrapper.overlays.default ]; cos.username = "clhickey"; cos.hostName = "clhickey-nixos"; cos.winboat.enable = true; cos.docker.enable = true; cos.remoteBuild.enable = false; cos.emacs.enable = true; cos.emacs.org-directory = "~/Nextcloud/Emacs/org/"; cos.gnupg.enable = true; boot = { loader = { systemd-boot.enable = true; efi.canTouchEfiVariables = true; }; supportedFilesystems = [ "ntfs" ]; binfmt = { emulatedSystems = [ "aarch64-linux" ]; }; }; services.logind.settings.Login = { HandlePowerKey="suspend"; }; time.timeZone = "America/New_York"; i18n = { defaultLocale = "en_US.UTF-8"; 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"; }; }; networking = { hostName = config.cos.hostName; networkmanager.enable = true; }; cos.wireguard = { enable = true; privateKeyFile = "/home/${config.cos.username}/wireguard-keys/private"; }; cos.hyprland = { enable = true; wallpaper = builtins.toString ../TranscodedWallpaper.jpeg; }; # auto-mount USB drives services.gvfs.enable = true; services.udisks2.enable = true; hardware.bluetooth.enable = true; # For languini networking.firewall.interfaces.${config.cos.wireguard.interface}.allowedTCPPorts = [ 8000 8080 ]; services = { openssh = { enable = true; settings = { PasswordAuthentication = true; AllowUsers = null; }; listenAddresses = [ { port = 22; addr = config.cos.wireguard.clientInternalIP; } ]; }; }; virtualisation = { waydroid = { enable = false; }; libvirtd = { enable = true; qemu = { swtpm.enable = true; }; }; virtualbox.host = { enable = false; enableKvm = true; addNetworkInterface = false; enableExtensionPack = true; }; spiceUSBRedirection.enable = true; }; users.users.${config.cos.username} = { isNormalUser = true; description = "Clayton Lopez Hickey"; extraGroups = [ "networkmanager" "wheel" "adbusers" "libvirtd" ]; }; nixpkgs.config = { allowUnfree = true; android_sdk.accept_license = true; }; nix.settings.trusted-users = [ "root" "@wheel" ]; environment = { systemPackages = with pkgs; [ fastfetch wget brave kdePackages.kate nextcloud-client obs-studio vlc kdePackages.kdenlive tmux htop crosspipe libreoffice-fresh anki-bin gimp3 audacity ffmpeg zoom-us inkscape freecad kdePackages.filelight prismlauncher blender sqlitebrowser arduino-ide josm krita jetbrains.idea android-studio gparted jdk jdk8 slack inputs.penn-nix.packages.x86_64-linux.waypoint-client inputs.cnvim.packages.x86_64-linux.default osu-lazer-bin thunderbird-bin itch element-desktop gh code-cursor firefox popsicle nixfmt graphviz alacritty prismlauncher google-chrome trilium-next-desktop joplin-desktop sshfs unityhub man-pages man-pages-posix vulkan-tools wireshark dotnetCorePackages.sdk_9_0_1xx-bin # for unit dev vscode-fhs discord aseprite pixelorama dig ncdu servo tcpdump kicad orca-slicer android-tools obsidian #(pkgs.mkBwrapper { # app = { # package = pkgs.obsidian; # runScript = "obsidian"; # }; # mounts.readWrite = [ # "$HOME/git/Journal" # ]; #}) ]; sessionVariables = { EDITOR = "${inputs.cnvim.packages.x86_64-linux.default}/bin/nvim"; }; }; fonts = { packages = with pkgs; [ noto-fonts noto-fonts-cjk-sans noto-fonts-color-emoji liberation_ttf fira-code fira-code-symbols mplus-outline-fonts.githubRelease dina-font proggyfonts font-awesome libre-baskerville corefonts vista-fonts ]; }; programs = { steam = { enable = true; }; java = { enable = true; package = pkgs.jdk; }; nix-ld = { enable = true; libraries = options.programs.nix-ld.libraries.default ++ [ pkgs.libXext pkgs.libX11 pkgs.libXrender pkgs.libXtst pkgs.libXi pkgs.freetype ]; }; virt-manager.enable = true; ladybird = { enable = true; }; git = { enable = true; }; }; documentation.dev.enable = true; home-manager.users.${config.cos.username} = { pkgs, ... }: { home.stateVersion = "24.11"; }; system.stateVersion = "24.11"; }