{ config, pkgs, ... }:
{
  home = {
    stateVersion = "24.05";
    username = "jana";
    homeDirectory = "/home/jana";

    packages = with pkgs; [
      p1n3appl3.tab
      (pkgs.writeShellScriptBin "gg" ''
        ${pkgs.nixgl.nixGLIntel}/bin/nixGLIntel ${gg-jj}/bin/gg
      '')
    ];

  };

  imports = [
    ../../programs/nvim
    ../../programs/fish
    ../../programs/kanata
    ../../programs/kitty
    ../../programs/tmux
    ../../programs/git
    ../../programs/jj
    ../../programs/niri
  ];

  # use the system-installed version of kitty on arch
  # something graphics related crashes otherwise
  programs.kitty.package = pkgs.stdenv.mkDerivation {
    name = "kitty";
    src = ./.;
    installPhase = ''
      mkdir -p $out/bin
      echo "#!/usr/bin/env bash\nexec /usr/bin/kitty" > $out/bin/kitty;
    '';
  };

  home.file = {
    "dl".source = config.lib.file.mkOutOfStoreSymlink "${config.xdg.userDirs.download}";
    "doc".source = config.lib.file.mkOutOfStoreSymlink "${config.xdg.userDirs.documents}";
  };

  xdg = {
    enable = true;

    configHome = "${config.home.homeDirectory}/.config";
    userDirs = {
      enable = true;
      documents = "${config.home.homeDirectory}/Documents";
      desktop = "${config.home.homeDirectory}/Documents";
      download = "${config.home.homeDirectory}/Downloads";
      music = "${config.home.homeDirectory}/Documents/personal/music";
      pictures = "${config.home.homeDirectory}/Documents/personal/pictures";
    };

    mime.enable = true;
  };
}
