host-frame.nix (3079B)
1 { 2 pkgs, 3 hostName, 4 ... 5 } : 6 { 7 imports = 8 [ 9 ../../users/root.nix 10 ../../modules/nix_settings.nix 11 ../../modules/nm.nix 12 ]; 13 14 sops.defaultSopsFile = ../../secrets.yaml; 15 sops.defaultSopsFormat = "yaml"; 16 sops.age.keyFile = "/home/mika/.config/sops/age/keys.txt"; 17 18 system.stateVersion = "25.11"; 19 20 # vm 21 virtualisation.vmVariant = { 22 virtualisation = { 23 diskSize = 50 * 1028; # 50 GB 24 memorySize = 16 * 1028; # 16 GB 25 cores = 6; 26 resolution = { 27 x = 1600; 28 y = 900; 29 }; 30 qemu.options = [ 31 "-enable-kvm" 32 "-cpu host" 33 "-display gtk,zoom-to-fit=false" 34 "-vga virtio" 35 ]; 36 }; 37 }; 38 39 # boot 40 boot = { 41 loader = { 42 systemd-boot.enable = true; 43 efi.canTouchEfiVariables = true; 44 }; 45 kernelPackages = pkgs.linuxPackages_latest; 46 kernelParams = [ 47 "loglevel=3" 48 "nowatchdog" 49 "migrations=auto" 50 "amd_iommu=on" 51 "iommu=pt" 52 "rtc_cmos.use_acpi_alarm=1" 53 ]; 54 }; 55 56 # netowrk 57 networking.hostName = "${hostName}"; 58 networking.wireless.enable = true; 59 60 # time/locale 61 time.timeZone = "Europe/Lisbon"; 62 i18n.defaultLocale = "en_US.UTF-8"; 63 64 # programs 65 programs = { 66 zsh.enable = true; 67 dconf.enable = true; 68 gnupg.agent = { 69 enable = true; 70 enableSSHSupport = true; 71 }; 72 }; 73 74 environment.variables = { 75 __ETC_ZSHRC_SOURCED = "1"; 76 __ETC_ZSHENV_SOURCED = "1"; 77 }; 78 79 # users 80 users = { 81 users = { 82 mika = { 83 isNormalUser = true; 84 extraGroups = [ "wheel" ]; 85 initialPassword = "123"; 86 shell = pkgs.zsh; 87 }; 88 root = { 89 shell = pkgs.zsh; 90 }; 91 }; 92 }; 93 security.sudo.wheelNeedsPassword = false; 94 95 # services 96 services = { 97 upower.enable = true; 98 fwupd.enable = true; 99 openssh.enable = true; 100 power-profiles-daemon.enable = true; 101 102 pipewire = { 103 enable = true; 104 alsa.enable = true; 105 alsa.support32Bit = true; 106 pulse.enable = true; 107 }; 108 109 xserver = { 110 enable = true; 111 displayManager.startx = { 112 enable = true; 113 }; 114 }; 115 116 getty.autologinUser = "mika"; 117 118 logind.settings.Login = { 119 SleepOperation = "suspend-then-hibernate"; 120 HandlePowerKey = "suspend-then-hibernate"; 121 HandleLidSwitch = "suspend-then-hibernate"; 122 HandlePowerKeyLongPress = "poweroff"; 123 }; 124 125 }; 126 127 systemd.sleep.extraConfig = '' 128 HibernateDelaySec=20m 129 ''; 130 131 systemd.network.links."10-wlan0" = { 132 matchConfig.MACAddress = "14:AC:60:29:82:AB"; 133 linkConfig.Name = "wlan0"; 134 }; 135 136 # hardware 137 hardware.bluetooth.enable = true; 138 security.rtkit.enable = true; 139 140 # packages 141 nixpkgs.config.allowUnfree = true; 142 environment.systemPackages = with pkgs; [ 143 neovim 144 wget 145 git 146 nix 147 curl 148 tree 149 coreutils 150 stdenv 151 dbus-broker 152 pciutils 153 util-linux 154 pstree 155 wireguard-tools 156 157 upower 158 lm_sensors 159 acpilight 160 ]; 161 162 # fonts 163 fonts.packages = with pkgs; [ 164 nerd-fonts.terminess-ttf 165 terminus_font 166 ]; 167 } 168