{ config, pkgs, ... }:

{
  home.username = "nouredeen";
  home.homeDirectory = "/home/nouredeen";

  home.packages = with pkgs; [
    # Development
    jetbrains.rider
    jetbrains.clion
    jetbrains.idea-ultimate
    dotnet-sdk_8
    vscode
    git
    
    # Utilities
    kitty
    thunar
    fzf
    ripgrep
    bat
    yazi
    btop
    fastfetch
    
    # Wayland / Hyprland specific
    waybar
    rofi-wayland
    walker
    swaynotificationcenter
    hyprpaper
    hyprlock
    hyprshot
    wlogout
    wl-clipboard
    slurp
    grim
    
    # Apps
    firefox
    google-chrome
    spotify
    discord
    obsidian
    prismlauncher # Better maintained than raw minecraft-launcher in nix
  ];

  # GTK Theming (Catppuccin Mocha)
  gtk = {
    enable = true;
    theme = {
      name = "catppuccin-mocha-mauve-standard+default";
      package = pkgs.catppuccin-gtk.override {
        accents = [ "mauve" ];
        size = "standard";
        tweaks = [ "normal" ];
        variant = "mocha";
      };
    };
    iconTheme = {
      name = "Papirus-Dark";
      package = pkgs.papirus-icon-theme;
    };
    cursorTheme = {
      name = "Adwaita";
      size = 24;
    };
  };

  # Zsh & Starship Setup
  programs.zsh = {
    enable = true;
    enableCompletion = true;
    autosuggestion.enable = true;
    syntaxHighlighting.enable = true;
    
    shellAliases = {
      fixwifi = "sudo bash ~/mt7902_temp/fix_my_wifi.sh";
      startm = "wlogout -l ~/.config/wlogout/layout -s ~/.config/wlogout/style.css -b 4 -T 350 -B 350";
      zshconf = "nvim ~/.zshrc";
      barconf = "nvim ~/.config/waybar/config";
      ca = "cd ~/RiderProjects/ArqaamAccounting/ && clear && claude";
      arq = "cd ~/RiderProjects/ArqaamAccounting/";
      reload = "source ~/.zshrc && hyprctl reload && echo 'Reloaded'";
      mountwin = "sudo mount -t ntfs-3g -o ro /dev/nvme0n1p3 /mnt/windows";
    };
    
    initExtra = ''
      bindkey "^[[1;5C" forward-word
      bindkey "^[[1;5D" backward-word
      export EDITOR=nvim
    '';
  };

  programs.starship.enable = true;

  # Symlink your existing raw configs!
  # Just place your folders in ~/nixos-config/dotfiles/
  home.file = {
    ".config/hypr".source = ./dotfiles/hypr;
    ".config/waybar".source = ./dotfiles/waybar;
    ".config/swaync".source = ./dotfiles/swaync;
  };

  home.stateVersion = "24.05";
}
