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

{
  imports = [
    ./hardware.nix
  ];

  hm.home.packages = with pkgs; [
    # archives
    zip xz unzip p7zip zstd
    # utils
    ffmpeg ripgrep jq libqalculate
    # nix
    nix-output-monitor nix-prefetch-scripts nix-top
    # system
    btop duf lm_sensors ethtool pciutils usbutils powertop killall
    # debug
    strace ltrace lsof
    # apps
    firefox qalculate-gtk krita inkscape onlyoffice-bin vlc
    # compatibility
    wineWowPackages.waylandFull winetricks
    # misc
    bat file which yt-dlp wl-screenrec
    # games
    prismlauncher
  ] ++ (with pkgs.my; [
    # none yet
  ]) ++ (with pkgs.gnome; [
    # yay gnomeware!!!!!!!!!!!!!! yum
    nautilus gnome-font-viewer gnome-disk-utility ghex pkgs.gnome-text-editor pkgs.baobab file-roller gnome-system-monitor loupe
  ]);

  modules = {
    security.useDoas = true;
  
    hardware = {
      bluetooth.enable = true;
      pipewire.enable = true;
    };
    dev = {
      enable = true;
    };
    desktop = {
      # set to `x11` or `wayland`, improves compat
      envProto = "wayland";

      hyprland.enable = true;
      hyprlock.enable = true;
      hypridle.enable = true;
      hyprpaper.enable = true;

      gnome-keyring.enable = true;
      dunst.enable = true;
      rofi.enable = true;
      nwg-drawer.enable = true;
      waybar.enable = true;
      batsignal.enable = true;
      wob.enable = true;
      gammastep.enable = true;
      clipse.enable = true;

      # display manager
      sddm.enable = true;

      # theme, see `modules/desktop/themes`
      themes.active = "catppuccin";
    };
    software = {
      # system
      system.eza.enable = true;
      system.wezterm.enable = true;
      system.fish.enable = true;
      system.syncthing.enable = true;
      # editors
      editors.micro.enable = true;
      editors.vscode.enable = true;
      # dev
      dev.git.enable = true;
      # distractions
      distractions.discord.enable = true;
      distractions.discord.vesktop = true;
      distractions.steam.enable = true;
      # tools
      tools.gpg.enable = true;
      tools.mpv.enable = true;
      tools.rbw.enable = true;
    };
  };

  networking.networkmanager.enable = true;
  systemd.services.NetworkManager-wait-online.enable = false;
}
