{
	pkgs,
	pkgsMaster,
	pkgsUnstable,
	...
} @args: {
	core = (with pkgs; [
		android-tools      # Android adb tool. Can be used to connect to itself via wireless debugging.
		bat                # Pretty cat.
		binwalk            # Can analyze files for other files inside them.
		bridge-utils       # Network bridges.
		btop               # System monitoring.
		chafa              # CLI file manager.
		coreutils          # UNIX Core utilities.
		cryptsetup         # Filesystem encryption (LUKS).
		curl               # Http client.
		ddrescue           # Data rescue extractor.
		diffutils          # Diff tool.
		dnsutils           # NS utilities.
		exiftool           # Image info.
		file               # Get general info about a file.
		findutils          # Find tool.
		gawk               # Awk.
		gcc                # C compiler.
		gdu                # TUI storage analyzer.
		git                # Version control system.
		gnugrep            # Grep.
		gnumake            # Make.
		gnused             # Sed.
		gnutar             # Tar.
		gzip               # Fast compression.
		htop               # System monitors.
		imagemagick        # Image converter and transformation tool.
		inetutils          # Things like FTP.
		iputils            # IP tools.
		jq                 # Json parser.
		libjxl             # Jpeg XL.
		lm_sensors         # Hardware sensors, like temperature and fan speeds.
		lshw               # Detailed hardware info tool.
		lsof               # Find current file users.
		ltex-ls            # Latex LSP for neovim spellcheck.
		man                # App to read manuals.
		neovim             # Text editor.
		nmap               # Network scanning.
		openssh            # Ssh client.
		openssl            # Cryptography.
		openvpn            # Vpn client.
		parallel           # Run programs in parallel.
		parted             # CLI disk partition tool.
		powertop           # Monitor power usage.
		pv                 # IO progress bar.
		qrencode           # Generate QR codes.
		radare2            # Hex editor.
		ripgrep            # Better grep.
		rsync              # File copy tool.
		smartmontools      # S.M.A.R.T. tools.
		sqlite             # Serverless file-based database engine.
		sshfs              # Ssh client.
		tcpdump            # Sniff tool.
		testdisk           # Apps to recover data from drives.
		tmux               # Terminal multiplexor.
		tree               # Show directory stricture as a tree.
		tree-sitter        # A parser generator tool and an incremental parsing library.
		tun2socks          # Use proxy as a vpn.
		unzip              # Zip archive/unarchive tools.
		usbutils           # Usb utilities like udiskctl.
		utillinux          # Common Linux utilities.
		ventoy             # Boot multiple ISO/images from a single USB stick.
		wcurl              # CLI http client.
		wireguard-tools    # Tools to work with Wireguard.
		xz                 # Archive and compression tools.
		yazi               # File manager.
		zip                # Zip utility.

		# (pkgs.callPackage ./ytdlp {}) # Youtube downloader bin package.
		(pkgs.callPackage ./yamusicdownload { }) # Yandex music downloader.
	]) ++ (with pkgsUnstable; [
		fastfetch # Systeminfo summary.
		ffmpeg    # Video/audio converter.
	]) ++ (with pkgsMaster; [
		xray   # Proxy.
		yt-dlp # Video downloader.
		zapret # FRKN.
	]);

	desktop = with pkgs; [
		adwaita-icon-theme   # GTK icons.
		foot                 # Terminal emulator.
		fuzzel               # Application launcher.
		grim                 # Screenshots.
		mako                 # Notification system.
		networkmanagerapplet # Internet configuration.
		pamixer              # Sound controls.
		pavucontrol          # Sound applet.
		playerctl            # Multimedia controls.
		pulseaudio           # Audio.
		slurp                # Screen selection.
		swappy               # Screenshot editing.
		sway                 # Sway WM.
		waybar               # Sway bar.
		wf-recorder          # Screen recording.

		(pkgs.callPackage ./swayscript args)
	];

	common = (with pkgs; [
		evince                # Document viewer.
		gimp                  # Image manipulation program.
		glib                  # Gnome lib for gvfs mtp usage with Nintendo Switch.
		gnome-calculator      # Calculator.
		gparted               # GUI disk utility just in case.
		jellyfin-media-player # Jellyfin client (self-hosted Netflix).
		loupe                 # Image viewer.
		mumble                # VoIP.
		obs-studio            # Streaming/recording app.
		onlyoffice-bin        # Office documents app suite.
		remmina               # RDP app.
		upscayl               # Image upscaler.

		(mpv.override { scripts = [ mpvScripts.mpris ]; }) # Media player.
	]) ++ (with pkgsUnstable; [
		tor-browser # Privacy browser.
	]);

	gaming = with pkgs; [
		bottles   # GUI for Wine.
		dxvk      # Directx to Vulkan.
		gamescope # Compositor for Steam.
		mangohud  # Realtime stats overlay.
		scanmem   # Memory edit tool.
		steam     # Gaming platform.
		vkd3d     # Directx to Vulkan.
		wine64    # Run Windows software on Linux.

		(import ./steamrun args).pkg # Steam env to run native games.
	];

	creative = with pkgs; [
		aseprite    # Pixel Art draw app. # WARN: Always builds from source.
		blender-hip # Blender with HiP support.
		krita       # Draw!
	];

	dev = with pkgs; [
		android-studio
		jetbrains.idea-community
	];

	extra = (with pkgs; [
		anilibria-winmaclinux # Anime!
		appimage-run          # Tool to run .AppImage files in NixOS.
		blanket               # Sounds generator.
		calibre               # Book library manager.
		cbonsai               # Draw trees.
		cmatrix               # CLI Screensavers.
		cowsay                # Cow quotes.
		gnome-font-viewer     # Font viewer.
		jamesdsp              # Active audio processing.
		lolcat                # CLI funni colors.
		p7zip                 # Weird archive tool.
	]) ++ (with pkgsUnstable; [
		universal-android-debloater # Debloat Android devices.
	]);
}