{
  pkgs,
  ...
}:
let
in
{
  imports = [
    <home-manager/nixos>
  ];

  home-manager.useGlobalPkgs = true;
  users.users.mrflos = {
    isNormalUser = true;
    description = "mrflos";
    createHome = true;
    extraGroups = [
      "users"
      "docker"
      "libvirtd"
      "lxd"
      "networkmanager"
      "wheel"
    ];
    uid = 1000;
    shell = pkgs.zsh;
  };

  nix.settings.trusted-users = [ "mrflos" ];
  home-manager.backupFileExtension = "backup";
  home-manager.users.mrflos = {
    home.stateVersion = "23.05";
    imports = [
      ../modules/home-manager/emails.nix
      ../modules/home-manager/dotfiles.nix
      ../modules/home-manager/tmux.nix
    ];
    home.sessionVariables = {
      EDITOR = "nvim";
      #LD_LIBRARY_PATH = "${pkgs.stdenv.cc.cc.lib}/lib";
    };
    home.sessionPath = [
      "$HOME/Code/nixos-config/scripts"
      "$HOME/.local/bin"
      "$HOME/go/bin"
    ];

    programs = {
      direnv = {
        enable = true;
        enableZshIntegration = true;
        nix-direnv.enable = true;
      };

      git = {
        enable = true;
        userName = "Florian Schmitt";
        userEmail = "mrflos@gmail.com";
        aliases = {
          fa = "fetch --all --tags --prune --recurse-submodules --force";
        };
        extraConfig = {
          pull.rebase = true;
          init.defaultBranch = "main";
          core.editor = "nvim";
          core.fileMode = false;
        };
      };
      mpv = {
        enable = true;
        package = (
          pkgs.mpv-unwrapped.wrapper {
            scripts = with pkgs.mpvScripts; [
              mpris
              sponsorblock
              thumbfast
              #uosc
              #modernx
              mpv-osc-tethys
              visualizer
            ];

            mpv = pkgs.mpv-unwrapped.override {
              waylandSupport = true;
            };
          }
        );

        config = {
          profile = "high-quality";
          ytdl-format = "bestvideo+bestaudio";
        };
      };
      neovim = {
        defaultEditor = true;
        viAlias = true;
        vimAlias = true;
      };

      starship = {
        enable = true;
        settings = with builtins; fromTOML (readFile ../dotfiles/starship/starship.toml);
      };

      thunderbird = {
        enable = true;
        profiles."mrflos" = {
          isDefault = true;
        };
      };
      zsh = {
        enable = true;
        autosuggestion.enable = true;
        enableCompletion = true;
        shellAliases = {
          #tmux = "tmux -f ~/.config/tmux/tmux.conf attach || tmux -f ~/.config/tmux/tmux.conf new";
          bunx = "bun --bun x";
          c = "/home/mrflos/Code/nixos-config/scripts/tmux-sessionizer";
          g = "lazygit";
          n = "/home/mrflos/Code/nixos-config/scripts/open-notes";
          s = "/home/mrflos/Code/nixos-config/scripts/ssh-connect";
          t = "/home/mrflos/Code/nixos-config/scripts/tmux-sessionizer";
          kdenix = "nix run github:pjones/plasma-manager --extra-experimental-features nix-command --extra-experimental-features flakes > /home/mrflos/Developpements/nixos-config/modules/home-plasma.nix";
          icat = "kitty +kitten icat";
          nixedit = "vi /etc/nixos";
          nixupdate = "sudo nix-channel --update && sudo nixos-rebuild switch";
          nixclean = "sudo nix-env --delete-generations old --profile /nix/var/nix/profiles/system && sudo /nix/var/nix/profiles/system/bin/switch-to-configuration switch && sudo nix-store --gc";
          socks = "ssh -N -f -C -D 9090 mrflos@yunohost.yeswiki.net -p 6742";
          vi = "/run/current-system/sw/bin/nvim";
          vim = "/run/current-system/sw/bin/nvim";
          yeswiki-updater = "cd /home/mrflos/Code/yeswiki-installer/ && sudo php yeswiki-updater.php";
        };
        initExtra = ''
          export BUN_INSTALL="$HOME/.bun"
          export PHP_CS_FIXER_IGNORE_ENV=1
          export PATH="$HOME/.local/bin:$BUN_INSTALL/bin:$PATH"
          eval "$(atuin init zsh)"
          eval "$(zoxide init zsh)"
        '';
        oh-my-zsh = {
          enable = true;
          extraConfig = ''
            zstyle :omz:plugins:ssh-agent helper ksshaskpass
            zstyle :omz:plugins:ssh-agent agent-forwarding yes
            zstyle :omz:plugins:ssh-agent lazy yes
          '';
          plugins = [
            "git"
            "ssh-agent"
          ];
          #  theme = "robbyrussell";
        };
      };
    };
    services.ssh-agent.enable = true;
  };
}