{
  lib,
  osConfig,
  config,
  pkgs,
  ...
}:
let
  inherit (lib) mkForce;
  remoteRebuld = import ../scripts/remoteRebuild.nix { inherit osConfig config pkgs; };
in
{
  imports = [
    ./shellAlias.nix
  ];

  home.packages = with pkgs; [
    # Shell
    grc
    remoteRebuld
  ];

  programs = {
    fish = {
      enable = true;
      interactiveShellInit = ''
        set fish_greeting # Disable greeting

        # ==== Prevent Running Everything on GPU ==== #
        set -e __NV_PRIME_RENDER_OFFLOAD
        set -e __NV_PRIME_RENDER_OFFLOAD_PROVIDER
        set -e __GLX_VENDOR_LIBRARY_NAME
        set -e __VK_LAYER_NV_optimus
      '';
      plugins = [
        {
          name = "grc";
          src = pkgs.fishPlugins.grc.src;
        }
        {
          name = "fzf-fish";
          src = pkgs.fishPlugins.fzf-fish.src;
        }
        {
          name = "forgit";
          src = pkgs.fishPlugins.forgit.src;
        }
        {
          name = "hydro";
          src = pkgs.fishPlugins.hydro.src;
        }
      ];
    };

    bash = {
      enable = true;
      # Ghostty intergration in nix-shell
      bashrcExtra = ''
        if [ -n "''${GHOSTTY_RESOURCES_DIR}" ]; then
             builtin source "''${GHOSTTY_RESOURCES_DIR}/shell-integration/bash/ghostty.bash"
         fi
      '';
    };

    carapace = {
      enable = true;
      enableFishIntegration = true;
    };

    starship = {
      enable = true;
      enableFishIntegration = true;
    };

    zoxide = {
      enable = true;
      enableFishIntegration = true;
    };
  };
}
