{
  config,
  pkgs,
  lib,
  inputs,
  ...
}:

{
  home.username = "blue";
  home.homeDirectory = "/home/blue";

  imports = [
    ./hyprland.nix
    ./waybar.nix
    ./swaync.nix
    ./flatpak.nix
    ./sober.nix
    ./hyprlock.nix
    ./zsh.nix
    ./eza.nix
    ./nixvim.nix
    ./nextcloud.nix
    ./git.nix
    ./stylix.nix
  ];

  # States home manager version that config was originally compatible with, do not change without reading all patch notes since this version and altering as needed
  home.stateVersion = "24.05";

  #  services.pass-secret-service.enable = true; # for use with protonmail-bridge
  services.gnome-keyring.enable = true; # used for protonmail-bridge and nextcloud-client

  # Cursor configuration that I hope to one day understand, currently has a scaling issue but thats probably my fault
  #  home.pointerCursor = 
  #    let 
  #      getFrom = url: hash: name: {
  #        gtk.enable = true;
  #        x11.enable = true;
  #        name = name;
  #        size = 24;
  #        package = 
  #          pkgs.runCommand "moveUp" {} ''
  #            mkdir -p $out/share/icons
  #            ln -s ${pkgs.fetchzip {
  #              url = url;
  #              hash = hash;
  #            }} $out/share/icons/${name}
  #          '';
  #      };
  #    in
  #      getFrom 
  #        "https://github.com/ful1e5/fuchsia-cursor/releases/download/v2.0.0/Fuchsia-Pop.tar.gz"
  #        "sha256-BvVE9qupMjw7JRqFUj1J0a4ys6kc9fOLBPx2bGaapTk="
  #        "Fuchsia-Pop";

  # General use home packages that dont require a separate module
  home.packages = with pkgs; [
    # Add grimblast screenshot tool
    grimblast
    powerline-fonts
    nix-output-monitor
    #   bitwarden-desktop
    xwaylandvideobridge
    virtualbox
    wofi
    lsp-plugins
  ];

  home.sessionVariables = {
    DEFAULT_BROWSER = "${lib.getExe pkgs.firefox}";
    # Allow XWayland apps to not be weird after turning off xwayland scaling in hyprland.conf
    GDK_SCALE = 1;
    XCURSOR_SIZE = 24;
    # Set default editor
    EDITOR = "nvim";
  };

  # Let Home Manager install and manage itself.
  programs.home-manager.enable = true;

  programs.tmux.enable = true;

  # Add support for bluetooth headset media controls
  services.mpris-proxy.enable = true;

  programs.alacritty = {
    enable = true;
    package = pkgs.alacritty;
    settings = {
      window.dimensions = {
        lines = 3;
        columns = 200;
      };
      #      font.normal = {
      #        family = "hack";
      #      };
      #      keyboard.bindings = [
      #        {
      #          key = "K";
      #          mods = "Control";
      #          chars = "\\u000c";
      #        }
      #      ];
    };
  };

  #  programs.hyprpaper = {
  #    enable = true;
  #    settings = {
  #      ipc = "on";
  #      splash = false;
  #      splash_offset = 2.0;

  #      preload = [ "~/Pictures/wallpaper.png" ];

  #      wallpaper = [
  #        ",~/Pictures/wallpaper.png"
  #      ];
  #    };
  #  };
  
  services.blueman-applet.enable = true;
  programs.btop.enable = true;
}