{ config, pkgs, lib, ... }:

{
  imports = [ ../default.nix ];
  nixpkgs.config.allowUnfreePredicate = pkg:
    builtins.elem ( lib.getName pkg) [
      "cudatoolkit"
      "nvidia-settings"
      "nvidia-x11"
      "osu-lazer"
      "quartus-prime-lite"
      "quartus-prime-lite-unwrapped"
      "steam"
      "steam-original"
      "steam-run"
      "steam-unwrapped"
      ];
  nixpkgs.config.permittedInsecurePackages = [
    "olm-3.2.16"
  ];

  hardware = {
    opentabletdriver.enable = true;
  };

  programs = {
    firefox.enable = true;
    hyprland.enable = true;
    kdeconnect.enable = true;
    steam = {
      enable = true;
      remotePlay.openFirewall = true;
    };
    wireshark.enable = true;
  };

  security.pam.services.swaylock = {};

  services = {
    avahi = {
      enable = config.stitchyconf.form == "pc";
      nssmdns4 = true;
      openFirewall = true;
    };
    blueman.enable = true;
    gnome.gnome-keyring.enable = true;
    pipewire = {
      alsa.enable = true;
      enable = true;
      pulse.enable = true;
    };
    printing.enable = true;
    usbmuxd.enable = true;
    xserver.enable = true;
  };

  users.users.stitchynyan = {
    description = "Personal user";
    extraGroups = [ "audio" "dialout" "docker" "kvm" "libvirtd" "networkmanager" "wireshark" "wheel" ];
    home = "/home/stitchynyan";
    initialHashedPassword = "$y$j9T$rvySCWHYE4AO4A9J0Vf20.$x5hpBNsOWovQFtNfFUIt17OAH5MJFwFBGjxbaEIagJ3";
    isNormalUser = true;
    shell = pkgs.zsh;
  };

  i18n = {
    defaultLocale = "ja_JP.UTF-8";
    inputMethod = {
      enable = true;
      type = "fcitx5";
      fcitx5.addons = with pkgs; [
        fcitx5-mozc
        fcitx5-nord
      ];
    };
  };
}