{ config, pkgs, ... }:

{
  # Home Manager needs a bit of information about you and the
  # paths it should manage.
  home.username = "aruzicka";
  home.homeDirectory = "/home/aruzicka";

  # This value determines the Home Manager release that your
  # configuration is compatible with. This helps avoid breakage
  # when a new Home Manager release introduces backwards
  # incompatible changes.
  #
  # You can update Home Manager without changing this value. See
  # the Home Manager release notes for a list of state version
  # changes in each release.
  home.stateVersion = "22.05";

  home.packages = with pkgs; [
    gh
    git-annex

    gnupg

    nitrogen
    i3status
    polkit-kde-agent

    tdesktop
  ];

  # Let Home Manager install and manage itself.
  programs.home-manager.enable = true;
  programs.tmux = {
    enable = true;
    sensibleOnTop = false;
    baseIndex = 1;
    clock24 = true;
    terminal = "screen-256color";
    extraConfig = ''
      # Do not automatically rename
      set -g allow-rename off
      
      # Set status bar
      set -g status-style bg=default,fg=yellow,dim
      
      # Highlight current
      setw -g window-status-current-style fg=yellow,bg=black,bold
      
      # Set nice formats
      setw -g window-status-format '#{?window_flags,#F, }#I:#W#{?window_flags,#F, }'
      setw -g window-status-current-format '#{?window_flags,#F, }#I:#W#{?window_flags,#F, }'
    '';
  };

  services.gpg-agent = {
    enable = true;
    enableSshSupport = true;
  };
  services.picom = {
    enable = true;
    package = pkgs.writers.writeBashBin "picom" ''
      exec ${pkgs.nixGL.nixGLIntel}/bin/nixGLIntel ${pkgs.picom}/bin/picom "$@"
    '';
  };
  services.syncthing.enable = true;

  home.sessionVariables.QT_QPA_PLATFORMTHEME = "qt5ct";

  xsession = {
    enable = true;
    windowManager.command = "${pkgs.i3-gaps}/bin/i3";
    initExtra = ''
      ${pkgs.nitrogen}/bin/nitrogen --restore
      ${pkgs.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1 &
    '';
  };
}