{ config, lib, pkgs, ... }: { imports = [ ./hardware-configuration.nix ]; nix.settings.experimental-features = [ "nix-command" "flakes" ]; boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; # Kernel boot.kernelPackages = pkgs.linuxPackages_latest; boot.kernelParams = [ "kvm.enable_virt_at_load=0" ]; boot.kernelModules = [ "iptable_nat" ]; # System networking.hostName = "lachrymal-abg"; # Define your hostname. time.timeZone = "America/Toronto"; i18n.defaultLocale = "ja_JP.UTF-8"; nixpkgs.config.allowUnfree = true; xdg.portal.enable = true; services.displayManager.sddm = { enable = true; wayland.enable = true; settings.General.DisplayServer = "wayland"; }; # services.xserver.desktopManager.lxqt.enable = true; # environment.lxqt.excludePackages = with pkgs; [ lxqt.qterminal ]; services.desktopManager.plasma6.enable = true; environment.plasma6.excludePackages = with pkgs.kdePackages; [ elisa kate khelpcenter gwenview kate konsole ]; # Fonts fonts = { packages = with pkgs; [ noto-fonts noto-fonts-cjk-sans noto-fonts-cjk-serif noto-fonts-emoji liberation_ttf victor-mono lmodern lmmath wqy_zenhei ]; fontDir.enable = true; fontconfig = { enable = true; }; }; # Enable CUPS to print documents. services.printing.enable = true; # Enable sound. services.pulseaudio.enable = false; services.pipewire = { enable = true; audio.enable = true; pulse.enable = true; alsa.enable = true; alsa.support32Bit = true; }; # Steam programs.steam = { enable = true; extraCompatPackages = with pkgs; [ proton-ge-bin ]; }; users.users.lach = { isNormalUser = true; extraGroups = [ "wheel" "docker" ]; # Enable ‘sudo’ for the user. }; environment.systemPackages = with pkgs; [ vesktop wget pciutils gpustat mg micro-full # ventoy-full git-credential-oauth hugo gnumake cmake bun python314 nodejs ruff uv gcc pkg-config rustc cargo rust-analyzer zig kdePackages.oxygen wayland-scanner ]; nixpkgs.overlays = [ (import ./im-overlays.nix) ]; programs.git = { enable = true; package = pkgs.gitFull; config.credential.helper = [ "libsecret" "oauth" ]; }; programs.gnupg.agent = { enable = true; enableSSHSupport = true; # pinentryPackage = lib.mkForce pkgs.pinentry-qt; }; services.openssh.enable = true; # Samba services.samba = { package = pkgs.samba4Full; enable = true; openFirewall = true; settings = { global = { "security" = "user"; "guest account" = "nobody"; "map to guest" = "bad user"; "server smb encrypt" = "required"; "server min protocol" = "SMB3_00"; }; DL = { path = "/run/media/lach/A0762DC8762DA050/Downloads"; browseable = "yes"; "read only" = "no"; "guest ok" = "no"; "create mask" = "0644"; "directory mask" = "0755"; "force user" = "lach"; }; Anime = { path = "/run/media/lach/A0762DC8762DA050/Archive/Anime"; browseable = "yes"; "read only" = "no"; "guest ok" = "no"; "create mask" = "0644"; "directory mask" = "0755"; "force user" = "lach"; }; }; }; services.avahi = { publish.enable = true; publish.userServices = true; enable = true; openFirewall = true; }; networking.firewall.enable = true; networking.firewall.allowPing = true; networking.firewall.allowedTCPPorts = [ 8888 ]; # virtualisation.docker = { # enable = true; # storageDriver = "btrfs"; # }; system.stateVersion = "24.05"; }