{ 
  self,
  inputs,
  ...
}:
{
  config,
  pkgs,
  lib,
  ...
}: let
  name = "yukkop";
  #name = builtins.baseNameOf ./.;
  home = "/home/${name}";
  cfg = config.hectic.user.yukkop;
in {
  imports = [
    inputs.home-manager.nixosModules.home-manager
  ];

  options.hectic.user.yukkop.enable = lib.mkEnableOption "Enable user.yukkop";

  config = lib.mkIf cfg.enable {
    users.users.${name} = {
      isNormalUser    = true;
      initialPassword = "kk";
      extraGroups     = [ "wheel" "docker" "owner" ];
    };

    home-manager.users.${name} = {
      home.stateVersion = "24.05";

      home.packages = with pkgs; [
        pinentry-tty
      ];

      programs.password-store = {
        enable = true;
        package = (pkgs.pass.override {
          x11Support     = false;
          waylandSupport = false;
          dmenuSupport   = false;
        }).withExtensions (exts: with exts; [
          pass-otp
        ]);
        settings.PASSWORD_STORE_DIR = "${home}/.pass";
      };

      programs.gpg = {
        enable  = true;
        homedir = "${home}/.gnupg";
      };

      services.gpg-agent = {
        enable              = true;
        pinentry.package    = pkgs.pinentry-tty;
        enableZshIntegration = true;
        defaultCacheTtl     = 60 * 60;
        maxCacheTtl         = 60 * 60 * 24;
      };

      programs.bash.shellAliases = {
        dev = "nix develop -c zsh";
        # system-specific rebuild aliases can be added per-system
      };

      programs.git = {
        enable     = true;
        lfs.enable = true;
        settings = {
          user.name  = "yukkop";
          user.email = "hectic.yukkop@gmail.com";
          push.autoSetupRemote = true;
          init.defaultBranch   = "master";
        };
      };
    };
  };
}
