/WallFade

Imitates the fade wallpaper transition in Windows 10 and changes terminal foreground appropriately

Primary LanguageC++

WallFade is a program meant to imitate the fade transition for wallpapers that exists in Windows 10.

DEPENDANCIES
	Any terminal capable of interpreting OSC sequences can be integrated.
	
	OSC functionality can be tested by entering "echo -e '\033]10;#0000ff\007'". This should turn the foreground of your terminal to blue.

	Additionally, Magick++ and nitrogen are required.

INSTALLATION
	Run the "install" script
	The hotkey used to bring up your terminal of choice must be called with the terminal running "~/.config/WallFade/getTermInfo" (e.g. for a user using urxvt in i3, this would look like: "bindsym Mod1+Return exec urxvt -e ~/.config/WallFade/getTermInfo")

USAGE
	WallFade will make a .cache folder in the specified location of your wallpapers that will contain a listing of your pictures along with each transition image, so very hi-res images with a high "steps" value configured may lead to a large cache size.

	You can add images to the designated folder during runtime, as the program rebuilds the image list each time it is done fading in the next image.

	Config changes will require WallFade to restart to apply.

	Maximum supported monitors: 255
	Maximum supported terminals: 255

CONFIG
	WallFade currently comes with the following configurations:

		path: Where your wallpapers are located.
		steps: Number of transitions steps for fade sequence. More steps  means more cached images, but a smoother transition.
		delay: Number of seconds between wallpaper change.
		subdelay: Number of miliseconds between each transition step. Will make fade last longer, but fade will look choppy if this value is too high.
		threshold: The threshold for each 8-bit color channel that the system will use to determine which pixels will be selected for determining terminal color.
		colorForce: If true, will attempt to force a saturated foreground color. Meant to keep colorful images from producing grey text.
		fadeForeground: If true, will fade in the foreground color with the background fade in. If false, the foreground color will instantly change to the new color once the fade in has completed.
		silent: If true, will supress debugging output

ISSUES
	It's not the most lightweight thing in the world. I developed this on a Dell Latitude E6540, and while the htop output for the program itself always shows <10%, the overall core usage clearly increases by ~10% during it's usage.
	It may not be an issue for machines with a descrete GPU, however.

TO CONTRIBUTORS

	Compile with "g++ WallFade.cpp `Magick++-config --cxxflags --cppflags --ldflags --libs` -lX11 -lXrandr -pthread -o WallFade"