{ config, pkgs, ... }:
{
	home.username = "th3r00t";
	home.homeDirectory = "/home/th3r00t";
	home.file.".local/usr/bin" = {
		source = ./home/.local/usr/bin;
		recursive = true;
		executable = true; 
	};
	home.file.".local/usr/lib/blightmud" = {
		source = ./home/.local/usr/lib/blightmud;
		recursive = true;
		executable = true; 
	};
	home.file.".config/nvim" = {
		source = ./home/config/nvim;
		recursive = true;
		executable = true; 
	};
	home.file.".irssi" = {
		source = ./home/.irssi;
		recursive = true;
		executable = true; 
	};
	home.file.".config/dosbox-x" = {
		source = ./home/config/dosbox-x;
		recursive = true;
		executable = true; 
	};
	home.file.".config/waybar/power_menu.xml" = {
		source = ./home/config/waybar/power_menu.xml;
		recursive = true;
		executable = true; 
	};
	home.file.".config/qutebrowser/blocked-hosts" = {
		source = ./home/config/qutebrowser/blocked-hosts;
		recursive = true;
		executable = true; 
	};
	home.file.".ssh/allowed_signers".text = ''
		* ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH8P/3yzsruekSaZ9b+yk429VTcfCtI1j8jnkNbPAgnr th3r00t@nixos
	'';
	imports = [
		modules/hyprland.nix
		modules/home-manager-common.nix
	];
	xdg.enable = true;
	programs.nix-index.enable = true;
	fonts.fontconfig.enable = true;
	home.sessionVariables = {
		EDITOR = "nvim";
		BROWSER = "qutebrowser";
		PLATFORMTHEME = "kde";
	};
	home.packages = with pkgs; [
		mesa-demos
		bluez
		bluez-tools
		bluez-alsa
		kdePackages.dolphin
		gimp
		rofi
		qutebrowser
		foot
		hyprsysteminfo
		dosbox-x
		wofi
		qutebrowser
		waybar
		uwsm
		power-profiles-daemon
		wpa_supplicant_gui
		gvfs
		nemo-with-extensions
		wayvnc
		xdg-desktop-portal-wlr
		exfatprogs
	];
	services.udiskie = {
		enable = false;
		settings = {
			program_options = {
				file_manager = "${pkgs.nemo-with-extensions}/bin/nemo";
			};
		};
	};
	programs.wofi = {
		enable = true;
		settings = {
			location = "top-center";
			allow_markup = true;
			width = 400;
		};
		style = ''
		/* Base */
		window {
			background-color: rgba(17, 24, 39, 0.6);
			box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
			border-radius: 1rem;
			font-size: 1rem;
		}

		window #outer-box { }

		window #outer-box #input {
			background-color: rgba(17,24,39,0.6);
			color: #c0caf5;
			border: none;
			border-bottom: 1px solid rgba(17,24,39,0.2);
			padding: 0.8rem 1rem;
			font-size: 1rem;
			border-radius: 1rem 1rem 0 0;
		}

		/* focus states (no #window!) */
		window #outer-box #input:focus,
		window #outer-box #input:focus-visible,
		window #outer-box #input:active {
			border: none;
			outline: 2px solid transparent;
			outline-offset: 2px;
		}

		window #outer-box #scroll { }
		window #outer-box #scroll #inner-box { }

		window #outer-box #scroll #inner-box #entry {
			color: #c0caf5;
			background-color: rgba(17,24,39,0.1);
			padding: 0.6rem 1rem;
		}

		window #outer-box #scroll #inner-box #entry #img {
			width: 1rem;
			margin-right: 0.5rem;
		}

		window #outer-box #scroll #inner-box #entry:selected {
			color: #c0caf5;
			background-color: rgba(38,50,56,0.1);
			outline: none;
		}
		'';
	};
	programs.foot = {
		enable = true;
		server.enable = true;
		settings = {
			main = {
				term = "foot";
				font = "SauceCodePro Nerd Font Mono:size=6";
				dpi-aware = "yes";
				shell = "${pkgs.zsh}/bin/zsh";
			};
			mouse = { hide-when-typing = "yes"; };
			cursor = { style = "block"; blink = "yes"; };
			colors = {
				alpha = "0.7";
				background="1a1b26";
				foreground="a9b1d6";
				flash="ff9e64";
				flash-alpha="0.5";
				regular0="1a1b26";
				regular1="f7768e";
				regular2="9ece6a";
				regular3="e0af68";
				regular4="7aa2f7";
				regular5="bb9af7";
				regular6="7dcfff";
				regular7="c0caf5";
				bright0="545c7e";
				bright1="ff7a93";
				bright2="b9f27c";
				bright3="ff9e64";
				bright4="7aa2f7";
				bright5="bb9af7";
				bright6="7dcfff";
				bright7="a9b1d6";
				sixel0="1a1b26";
				sixel1="7aa2f7";
				sixel2="f7768e";
				sixel3="9ece6a";
				sixel4="bb9af7";
				sixel5="7dcfff";
				sixel6="e0af68";
				sixel7="565f89";
				sixel8="414868";
				sixel9="4e5173";
				sixel10="8f5151";
				sixel11="4e7652";
				sixel12="8a4d8f";
				sixel13="4e757a";
				sixel14="8a8851";
				sixel15="a9b1d6";
				selection-foreground="1a1b26";
				selection-background="a9b1d6";
				jump-labels="1a1b26 e0af68";
				scrollback-indicator="1a1b26 7aa2f7";
				search-box-no-match="1a1b26 f7768e";
				search-box-match="1a1b26 e0af68";
				urls="e0af68";
			};
		};
	};
	programs.hyprlock = {
		enable = true;
		settings = {
			general = {
				disable_loading_bar = true;
				grace = 300;
				hide_cursor = true;
				no_fade_in = false;
			};
			background = [
				{
					path = "screenshot";
					blur_passes = 3;
					blur_size = 8;
				}
			];
			input-field = [
				{
					size = "400, 100";
					position = "0, -80";
					monitor = "";
					dots_center = true;
					fade_on_empty = false;
					font_color = "rgb(202, 211, 245)";
					inner_color = "rgb(91, 96, 120)";
					outer_color = "rgb(24, 25, 38)";
					outline_thickness = 5;
					placeholder_text = "Password";
					shadow_passes = 2;
				}
			];	
		};
	};
	services.hypridle = {
		enable = true;
		settings = {
			general = {
				after_sleep_cmd = "hyprctl dispatch dpms on";
				ignore_dbus_inhibit = false;
				lock_cmd = "hyprlock";
			};
			listener = [
				{
					timeout = 300;
					on-timeout = "hyprlock";
				}
				{
					timeout = 600;
					on-timeout = "hyprctl dispatch dpms off";
					on-resume = "hyprctl dispatch dpms on";
				}
			];
		};
	};
	home.stateVersion = "25.05";
}
