{ pkgs, lib, hypr-contrib, nix-gaming, ... }: let VARIABLES = import ./variables.nix; in { imports = [ ./modules ./containers/rar.nix ./containers/wine.nix ]; # locale i18n.defaultLocale = "ja_JP.UTF-8"; i18n.supportedLocales = ["ja_JP.UTF-8/UTF-8" "en_US.UTF-8/UTF-8" "fr_FR.UTF-8/UTF-8"]; # nix nix.package = pkgs.nixFlakes; nix.settings.experimental-features = ["nix-command" "flakes" "repl-flake"]; hardware.opengl.driSupport32Bit = true; boot.loader = { systemd-boot = { enable = true; editor = false; configurationLimit = 10; }; timeout = 0; efi.canTouchEfiVariables = true; }; boot.tmp.useTmpfs = true; programs.gamemode.enable = true; environment.systemPackages = with pkgs; [ hypr-contrib.packages."${VARIABLES.system}".grimblast nix-gaming.packages."${VARIABLES.system}".osu-stable (pkgs.callPackage ./packages/waycorner {}) (pkgs.callPackage ./packages/srb2 {}) slade typespeed osu-lazer-bin mullvad-vpn # dev marksman lua-language-server clang-tools texlab # go go gopls # nix nil alejandra nixos-generators # node/yarn/deno nodejs yarn deno # rust gcc rustc rustfmt cargo rust-analyzer bacon ]; nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "osu-lazer-bin" "vmware-workstation" ]; environment.sessionVariables = { EDITOR = "nvim"; VISUAL = "nvim"; GIT_DISCOVERY_ACROSS_FILESYSTEM = "1"; FZF_DEFAULT_OPTS = "--height 40% --reverse --border --color=16"; NODE_OPTIONS = "--max_old_space_size=16384"; }; environment.defaultPackages = []; system.stateVersion = "22.11"; # home-manager home-manager = { useGlobalPkgs = true; useUserPackages = true; sharedModules = [ { home.stateVersion = "22.11"; editorconfig = { enable = true; settings = { "*" = { charset = "utf-8"; end_of_line = "lf"; insert_final_newline = true; indent_size = 2; indent_style = "space"; trim_trailing_whitespace = true; }; "*.md".indent_style = "tab"; "Makefile" = { indent_style = "tab"; indent_size = 4; }; "*.html" = { indent_style = "tab"; indent_size = 4; }; "*.go" = { indent_style = "tab"; indent_size = 4; }; }; }; } ]; }; # systemd systemd.extraConfig = '' DefaultTimeoutStopSec=10s ''; # logind services.logind.lidSwitch = "ignore"; # timezone time.timeZone = "${VARIABLES.timezone}"; # user users = { mutableUsers = false; users.user = { isNormalUser = true; uid = 1000; password = "user"; extraGroups = ["wheel" "networkmanager"]; }; }; home-manager.users.user = { home.username = "user"; home.homeDirectory = "/home/user"; }; # dev programs.npm.enable = true; # networking networking = { hostName = VARIABLES.hostname; networkmanager = { enable = true; dns = "none"; wifi.macAddress = "random"; ethernet.macAddress = "random"; unmanaged = ["interface-name:ve-*"]; }; useHostResolvConf = true; }; services.resolved.llmnr = "false"; systemd.services.NetworkManager-wait-online.enable = false; # virtualization virtualisation.vmVariant = { virtualisation = { memorySize = 8192; cores = 4; restrictNetwork = true; }; virtualisation.qemu.options = ["-device virtio-vga-gl" "-display sdl,gl=on,show-cursor=off" "-full-screen"]; environment.sessionVariables = { WLR_NO_HARDWARE_CURSORS = "1"; }; }; # mullvad-vpn services.mullvad-vpn = { enable = true; enableExcludeWrapper = false; }; networking.firewall.allowedTCPPorts = [11918]; networking = { nat = { enable = true; internalInterfaces = ["ve-+"]; externalInterface = "wg-mullvad"; forwardPorts = [ { destination = "192.168.100.11:80"; sourcePort = 11918; } ]; }; }; }