{ config, pkgs, inputs, ... }: { imports = [ ./hardware-configuration.nix ]; boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; systemd.tpm2.enable = false; networking.hostName = "syntheticnexus"; networking.networkmanager.enable = true; time.timeZone = "America/St_Thomas"; i18n.defaultLocale = "en_US.UTF-8"; services.xserver.xkb = { layout = "us"; variant = ""; }; stylix = { enable = true; image = ./bg.jpg; }; services.displayManager.gdm.enable = true; services.desktopManager.gnome.enable = true; services.gnome.core-apps.enable = false; services.gnome.core-developer-tools.enable = false; services.gnome.games.enable = false; environment.gnome.excludePackages = with pkgs; [ gnome-tour gnome-user-docs ]; # using piprewire cuz embrace muh modernity services.pipewire = { enable = true; pulse.enable = true; }; services.libinput.enable = true; # for laptop touchpad # Kanata setup # Mostly copied from https://dev.to/shanu-kumawat/how-to-set-up-kanata-on-nixos-a-step-by-step-guide-1jkc boot.kernelModules = [ "uinput" ]; # Enable uinput kernel module hardware.uinput.enable = true; # Enable uinput # Set up udev rules for uinput services.udev.extraRules = '' KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput" ''; users.groups.uinput = { }; # ensure uinput group exists # Add Kanata service user to necessary groups systemd.services.kanata-internalKeyboard.serviceConfig = { SupplementaryGroups = [ "input" "uinput" ]; }; # Kanata configuration services.kanata = { enable = true; keyboards = { internalKeyboard = { devices = [ "/dev/input/by-path/platform-i8042-serio-0-event-kbd" ]; configFile = builtins.fetchurl { url = https://git.luluslly.xyz/lulusilly/dotfiles/raw/branch/master/.config/kanata/conf.kbd; sha256 = "1jv6051igv4yxwr9bxzil6qrynvg3imlnh65lxhjdfcvpnmlcy6p"; }; }; }; }; users.users.lunita = { isNormalUser = true; description = "Lunita"; extraGroups = [ "networkmanager" "wheel" ]; packages = with pkgs; []; shell = pkgs.zsh; }; environment.systemPackages = with pkgs; [ curl wget neovim git home-manager gnome-console gnomeExtensions.blur-my-shell gnomeExtensions.just-perfection gnomeExtensions.paperwm nyxt ]; # Zsh programs.zsh.enable = true; # Browser programs.firefox.enable = true; # Tailscale services.tailscale.enable = true; # Syncthing services.syncthing.enable = true; programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; services.openssh.enable = true; system.stateVersion = "25.05"; }