{ config, pkgs, ... }:

{

  time.timeZone = "Europe/Paris";

  nixpkgs.overlays = [
    (import ../overlays/sudo.nix)
    (import ../overlays/neovim.nix)
  ];

  nixpkgs.config.allowUnfree = true;
  environment.systemPackages = with pkgs; [
    # Editeurs
    neovim

    # Gestionnaires de version
    gitFull
    tig

    # Gestion de paquets
    nix-prefetch-scripts
    nox
    nix-index

    # Système
    smartmontools
    htop
    lshw
    usbutils

    # Réseau
    telnet
    rclone
    lftp
    wireguard
    nfsUtils
    nmap

    # Divers
    fzf
    file
    ncdu
    youtube-dl
    tldr

    # Audio
    beets

    # Outils
    borgbackup

    # Développement
    openssl
  ];

  programs.tmux = {
    enable = true;
    clock24 = true;
  };

  users.defaultUserShell = pkgs.zsh;
  programs.zsh = {
    enable = true;
    autosuggestions.enable = true;
    enableCompletion = true;
    syntaxHighlighting.enable = true;
    interactiveShellInit = ''
      source "$(${pkgs.fzf}/bin/fzf-share)/key-bindings.zsh"
    '';
    ohMyZsh = {
      enable = true;
      plugins = [ "git" "colored-man-pages" "command-not-found" "extract" "nix" ];
      customPkgs = with pkgs;[
        spaceship-prompt
        nix-zsh-completions
      ];
      theme = "spaceship";
    };
  };

  environment.variables = {
    EDITOR = "nvim";
    SPACESHIP_TIME_SHOW = "true";
    SPACESHIP_BATTERY_THRESHOLD = "50";
    SPACESHIP_EXIT_CODE_SHOW = "true";
  };

  nix.gc.automatic = true;
  nix.gc.options = "--delete-older-than 15d";

}