aboutsummaryrefslogtreecommitdiff
path: root/hosts/wonderland/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'hosts/wonderland/default.nix')
-rw-r--r--hosts/wonderland/default.nix149
1 files changed, 149 insertions, 0 deletions
diff --git a/hosts/wonderland/default.nix b/hosts/wonderland/default.nix
new file mode 100644
index 0000000..b78eb4e
--- /dev/null
+++ b/hosts/wonderland/default.nix
@@ -0,0 +1,149 @@
+{ config, pkgs, flakeRoot, ... }: {
+ imports = [
+ # Include the results of the hardware scan.
+ ./hardware.nix
+ ./home.nix
+ ./sops.nix
+ (flakeRoot + /share/system/steam.nix)
+ (flakeRoot + /share/system/hyprland.nix)
+ #(flakeRoot + /share/system/spotifyd.nix)
+ ];
+
+ nixpkgs.config.allowUnfree = true;
+ nix.gc = {
+ dates = "weekly";
+ automatic = true;
+ persistent = true;
+ randomizedDelaySec = "15min";
+ };
+
+ # Use the systemd-boot EFI boot loader.
+ boot = {
+ loader.systemd-boot.enable = true;
+ loader.efi.canTouchEfiVariables = true;
+ initrd.kernelModules = [ "amdgpu" ];
+ };
+
+ networking = {
+ hostName = "wonderland";
+ useNetworkd = true;
+
+ nftables.enable = true;
+ firewall = {
+ enable = true;
+ allowedTCPPorts = [ 80 443 34197 ];
+ };
+
+ wireless = {
+ enable = true;
+ environmentFile = config.sops.secrets."wireless.env".path;
+ userControlled.enable = true;
+ networks = {
+ "@HOME_WIFI_SSID@".psk = "@HOME_WIFI_PSK@";
+ "@PHONE_HOTSPOT_SSID@" = {
+ psk = "@PHONE_HOTSPOT_PSK@";
+ hidden = true;
+ };
+ "eduroam" = {
+ authProtocols = [ "WPA-EAP" ];
+ auth = ''
+ pairwise=CCMP TKIP
+ eap=TTLS PEAP TLS
+ group=CCMP TKIP
+ identity="mbastaja@tvz.hr"
+ altsubject_match="DNS:freeradius.tvz.hr"
+ phase1="peaplabel=0"
+ phase2="auth=PAP"
+ password="@EDUROAM_PASS@"
+ anonymous_identity="anonymous@tvz.hr"
+ '';
+ };
+ };
+ };
+ };
+
+ # Set your time zone.
+ time.timeZone = "Europe/Zagreb";
+
+ # Select internationalisation properties.
+ i18n.defaultLocale = "en_US.UTF-8";
+
+ services.xserver = {
+ enable = true;
+ displayManager = {
+ sddm.enable = true;
+ defaultSession = "plasmawayland";
+ };
+ desktopManager.plasma5.enable = true;
+ videoDrivers = [ "amdgpu" ];
+ };
+
+ # Enable sound.
+ sound.enable = true;
+ services.pipewire = {
+ enable = true;
+ alsa.enable = true;
+ pulse.enable = true;
+ };
+
+ services.printing = {
+ enable = true;
+ drivers = with pkgs; [
+ gutenprint
+ gutenprintBin
+ epson_201207w
+ epson-201401w
+ ];
+ };
+
+ programs.gnupg.agent = {
+ enable = true;
+ enableSSHSupport = true;
+ };
+
+ hardware.bluetooth.enable = true;
+ services.mullvad-vpn.enable = true;
+
+ virtualisation.podman = {
+ enable = true;
+ dockerSocket.enable = true;
+ dockerCompat = true;
+ autoPrune.enable = true;
+ };
+
+ users.users = {
+ alice = {
+ isNormalUser = true;
+ extraGroups = [ "wheel" "video" "network" "podman" ];
+ };
+ madhatter = {
+ isNormalUser = true;
+ extraGroups = [ "video" "network" ];
+ };
+ guest = {
+ isNormalUser = true;
+ extraGroups = [ "video" "network" ];
+ };
+ };
+
+ programs.zsh.enable = true;
+ users.defaultUserShell = pkgs.zsh;
+
+ fonts.packages = with pkgs; [
+ noto-fonts
+ noto-fonts-cjk
+ noto-fonts-emoji
+ proggyfonts
+ (nerdfonts.override { fonts = [ "FiraCode" ]; })
+ overpass
+ inter
+ ];
+
+ # This value determines the NixOS release from which the default
+ # settings for stateful data, like file locations and database versions
+ # on your system were taken. It‘s perfectly fine and recommended to leave
+ # this value at the release version of the first install of this system.
+ # Before changing this value read the documentation for this option
+ # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
+ system.stateVersion = "22.05"; # Did you read the comment?
+}