{ pkgs, myConfig, inputs, lib, specialArgs, ... }: { imports = [ inputs.home-manager.nixosModules.home-manager inputs.chaotic.nixosModules.default ./hardware-configuration.nix ../../modules/default/desktop.nix ../../modules/default/dev.nix ../../modules/default/remote.nix ]; environment.systemPackages = with pkgs; [ pavucontrol wl-clipboard wget protontricks ]; users = { defaultUserShell = pkgs.${myConfig.general.Terminal.shell}; users = { ${myConfig.essentials.Username} = { isNormalUser = true; extraGroups = ["wheel" "networkmanager" "input" "video"]; initialHashedPassword = "$y$j9T$NHFtSwF4NJtEmgMjy4Xdg.$9WQltjEx3eEfZ7GbpGLW8lBhJtiXPOeIawrxdmx0.vB"; useDefaultShell = true; packages = []; }; }; }; home-manager = { backupFileExtension = "backup"; useGlobalPkgs = true; useUserPackages = true; extraSpecialArgs = specialArgs; users.${myConfig.essentials.Username} = import ../../home/hakase.nix; }; nixpkgs.config.allowUnfree = myConfig.general.allowUnfree; hardware.logitech.wireless.enable = true; hardware.bluetooth.enable = true; hardware.bluetooth.powerOnBoot = true; hardware.bluetooth.settings = { General = { AutoEnable = true; Experimental = true; MultiProfile = "multiple"; FastConnectable = true; }; }; hardware.graphics = { enable = true; enable32Bit = true; }; i18n.defaultLocale = "en_US.UTF-8"; time.timeZone = "${myConfig.nixos.Timezone}"; boot.loader = { systemd-boot = lib.mkIf (myConfig.nixos.Boot.mode == "systemd") { enable = true; }; grub = lib.mkIf (myConfig.nixos.Boot.mode == "grub") { efiSupport = true; enable = true; device = "nodev"; useOSProber = true; }; efi = { canTouchEfiVariables = true; efiSysMountPoint = "/boot"; }; }; programs.ssh.extraConfig = myConfig.optionals.Ssh.extraConfig; programs.bash = { interactiveShellInit = '' if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]] then shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION="" exec ${pkgs.fish}/bin/fish $LOGIN_OPTION fi ''; }; programs = { zsh.enable = true; fish.enable = true; }; services = { displayManager.sessionPackages = [inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland]; # getty.autologinUser = "${myConfig.essentials.Username}"; # greetd = { # enable = true; # settings.default_session = { # user = "${myConfig.essentials.Username}"; # command = "Hyprland"; # }; # }; seatd.enable = true; upower.enable = true; scx.enable = true; # by default uses scx_rustland scheduler libinput.enable = true; blueman.enable = true; printing.enable = true; openssh.enable = true; pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; # lowLatency = { # enable = true; # quantum = 64; # rate = 48000; # }; }; }; # make pipewire realtime-capable security.rtkit.enable = true; nix = { distributedBuilds = true; settings = { builders-use-substitutes = true; trusted-users = myConfig.optionals.Builds.trustedUsers; experimental-features = ["nix-command" "flakes"]; }; }; console = { earlySetup = false; font = "${pkgs.terminus_font}/share/consolefonts/ter-132n.psf.gz"; packages = with pkgs; [terminus_font]; useXkbConfig = true; }; networking = { networkmanager.enable = true; firewall = { enable = true; allowedTCPPorts = [22 80]; allowedUDPPorts = [53]; }; proxy.default = null; proxy.noProxy = null; }; boot.loader.timeout = 0; boot.loader.limine.maxGenerations = 5; hardware.amdgpu.initrd.enable = true; boot.kernelParams = [ "quiet" "splash" "boot.shell_on_fail" "udev.log_priority=3" "rd.systemd.show_status=auto" "iommu=pt" "amd_pstate=active" ]; boot.kernelPackages = pkgs.linuxPackages_cachyos; boot.kernel.sysctl = { "kernel.split_lock_mitigate" = 0; "kernel.nmi_watchdog" = 0; "kernel.sched_bore" = "1"; }; boot.initrd = { systemd.enable = true; kernelModules = []; verbose = false; }; boot.plymouth.enable = true; boot.plymouth.theme = "seal"; boot.plymouth.themePackages = with pkgs; [ # By default we would install all themes (adi1090x-plymouth-themes.override { selected_themes = ["seal"]; }) ]; boot.consoleLogLevel = 0; systemd.extraConfig = "DefaultTimeoutStopSec=5s"; # networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ]; # Or disable the firewall altogether. # networking.firewall.enable = false; # networking.proxy.default = "http://user:password@proxy:port/"; # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; system.stateVersion = "25.05"; }