Py-WE 1.0
Play a video as desktop background
Requires Python: >3.8
Keywords: PyQt5,GUI,Media,PyWE,Visuals

ï»¿PyWE
----
PyWE is a python package that lets you play video as a desktop background, it uses <a href='https://pypi.org/project/python-vlc/'>python-vlc</a> which provided bindings for <a href='https://wiki.videolan.org/LibVLC'>LibVLC</a> as it's media engine to play videos which means it has powerful features like:

- codes like MPEG-2, MPEG-4, H.264, MKV, WebM, WMV, MP3
- Hardware and efficient decoding, up to 8K.
- Support for HDR, including tonemapping for SDR streams.
- Playing videos at up to 240 fps.
- Resource efficient.
- Pausing the app when playing a game or working to save recourses

Getting started
------------------
You can download the package by running the command:
	
	pip install PyWE
or
	
	git clone https://github.com/Yazan-Sharaya/PyWE.git
	python setup.py install
	
To run the application import the `PyWE` package and run `laucn_app` function.
	
	from PyWE import launch_app
	launch_app()

You can select a video to play by either pressing the `space bar` or by clicked `select video` from `file` menu or by pressing the `play` button.
The video will start playing automatically but muted because `mute on startup` option is enabled by default, see **configuring settings**

**Note:** *if a video has already been selected before, pressing `space bar` or `play` button will automatically play the video, so if you want to select a new video click `Select video` from `File` menu.*

Configuring settings
------------------------ 
To change the app settings, click on the `settings` menu next to `file` menu, and you will find three options.

- `Start with windows`: Whether to start the application on startup.  
- `Mute on startup`: Whether to mute the video when the application launches manually or on startup.
-  `Minimize to tray`: Whether to minimize the app to system tray when minimizing the app or when the app starts with windows.
if toggled the app will run in the background when minimized, and you can show the app again by clicking it's icon in the system tray.

Performance
 ---------------
- When the desktop is not visible either by a maximized window or full screen game for example, video playback will stop to save resources and to not affect performance.
- The app is resources friendly because it uses <a href='https://wiki.videolan.org/LibVLC'>LibVLC</a> as it's core which is a super efficient.
- You can playback a video at up to  240 fps.

Starting with windows
----------
- The app will launched automatically on startup if the `Start with windows` option is toggled.
- If a video has been selected and played it will be used by the app on start up and played automatically.
- The app will run in the background if:
	- A video has been played before and that video file still exists.
	- `Minimize to tray` option is enabled.

The User Interface
------------------
The application window is basically a media media player that allows you to do stuff like:
- Change the FPS using the fps slider, min is 5, max is 240.
- Set the volume.
- Mute/Unmute the video.
- Play/Pause the video.
- Reset the video to it's default fps if fps is changed.
- Seek anywhere in the video.

Keyboard shortcuts
------------------------
- Up arrow: increase the volume by 5%.
- Down arrow: decreases the volume by 5%.
- Right arrow: seeks Forward 5 seconds.  
- Left arrow: seeks Backward 5 seconds.  
- 1-9: seeks to the num% of the video.  
- M: Mutes/Unmutes the video.  
- Space bar: plays/pauses the video.  
- Num 0: seeks to the beginning of the video.  
- End/Home: seeks to the beginning of the video.

-----

Sorry for the bad English, it's because English is my second language.
I'm a 16 years old high schooler and this project idea came to my mind because of a software called <a href=https://store.steampowered.com/app/431960/Wallpaper_Engine/>Wallpaper engine</a> , but that app is paid and I couldn't afford it, so I made the core idea of the app in python in my free time.