Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
This also fixes https://github.com/GhostNaN/mpvpaper/issues/58 --profile not working
|
|
Also some small error handling
|
|
|
|
|
|
We're done with the "mpvpaper -v a a" hack
This also gets rid of the not needed "not selected" verbose output
|
|
Fix char bug so opt parsing doesn't infinite loop
|
|
|
|
|
|
|
|
Turns out this was always possible...
|
|
This also removes the now useless "pause in frame callback"
|
|
- Check for egl_display
- Fix OpenGL minor versions not being tested
- Init egl surface before mpv init
|
|
And code cleanup..
|
|
|
|
- Move output tip to examples
- Minor corrections
|
|
Just trying to keep up with swaybg and at least it gets rid of xdg_output.
This also unintentionally breaks kwin support because kwin is still using wl_output v3.
I also had some syntax cleanups queued so it might be a mess.
|
|
|
|
- Rename the title to mpvpaper as I didn't like the look glpaper title
- Improve the build script
- Remove the installers as there would be too many to list if I add more
- Also because the AUR git is not ideal and the Gentoo one is not maintained
- Modified the "Usage" to reflect more like the man page
- Modified "Notes" to be less biased to Sway
- Added swaybg to "Acknowledgments" because there's probably more code from swaybg than glpaper at this point
|
|
|
|
|
|
- Redo how render loop is stopped/killed
- Find more other wallpapers
- Modify how mpvpaper quits
- Fix up argv copy for stopping
- General code cleanups
|
|
Allow rendering on multiple outputs with <output> = *
|
|
Before this commit, every time redraw() was called, it would block
and wait for a new frame. This works when only one output is being
drawn; but when multiple outputs are drawn, this means only one
output at a time is given the latest frame, instead of all of them.
This change makes redraw() non-blocking,† and uses mpv_render_context's
set_update_callback method to request redraws from for all outputs
when a new frame is available. This requires a) tracking the lifetime
of all frame callbacks, to ensure frames are not rendered too quickly
(before the frame callback has returned) and b) extending the main
loop so that it can be woken up via self-pipe trick after the mpv
update callback is invoked.
† eglSwapBuffers calls wl_display_roundtrip(), so technically redraw()
ends up waiting for the compositor to respond. This can introduce
some extra lag when drawing onto many outputs at once. It's possible
to avoid this problem by managing the buffers onto which OpenGL
draws ourselves and committing the output surfaces as a batch.
However, doing so would be quite complicated.
|
|
This commit also fixes an issue where a second xdg_output::done would
mistakenly destroy outputs.
|
|
|
|
As part of this process, call eglMakeCurrent without a surface
for initial EGL and mpv setup; and when performing EGL and OpenGL
operations that are directly related to an EGLSurface, call
eglMakeCurrent on that surface.
|
|
|
|
Thanks @y-fujii !
|
|
Memory error fixes, slight refactoring
|
|
MPV_FORMAT_FLAG requires that the 'data' argument be a pointer
to an 'int'.
|
|
This fix refactors the code that loads command line options into
mpv. In the process, it ensures that mpv_load_config file is only
called with a non-null filename string.
|
|
- Forgot a break, so I added one
- man_version++
|
|
This commit mainly fixes how mpv events are processed.
See: https://github.com/GhostNaN/mpvpaper/pull/19
- Since some mpv event are deprecated, "mpv_observe_property"
is being used instead of MPV_EVENT_PAUSE and MPV_EVENT_UNPAUSE
- mpv's default "idle" option for libmpv is now always set to off/no
as it provided no use and can't be loaded before user options, sorry.
- Pausing functions should now behave a little better with less race conditions.
- Cleaning up mpvpaper has been improved by also fixing some race conditions.
- Turned some mpv_command_async calls into mpv_command as it was not necessary.
- Some error messages have been modified/created
- Stopped creating a pthread for a watch list if the file is empty
- Add signal handlers for SIGQUIT and SIGTERM to exit mpvpaper
|
|
- Added a command to help get display output names
- Removed forced spaces
|
|
This is the first man page I made, so it's pretty rough.
I might make more edits to it if needed or requested.
|
|
See: https://github.com/GhostNaN/mpvpaper/issues/15
If you ran 2 instances of mpvpaper at the same time, they could write
to the same file "/tmp/mpvpaper.config" at the same time.
This fixes that by adding the passed display into the file name.
Such as mpvpaperDP-1.conf if DP-1 was passed.
Also some small writing changes were included.
|
|
better place to install mpvpaper
|
|
|
|
So basically auto-next was rebranded and also now
passes "loop loop-playlist" for you. You may override
this by passing your own mpv options (loop-file=no)
if you wish.
|
|
- Added a small convenience option "auto-next"
Best used with "loop loop-playlist" mpv options
- Usage text now shows required args
|
|
|
|
Because on some systems uint isn't defind in stdlib.h
|
|
This "should" be the last commit before update 1.1
Just renaming some functions and adding an example to help
After days of testing I hope it's "stable enough" as
I despise testing...
|
|
A terrible hack, but a working one.
|
|
- Further reduces CPU usage while paused
- Decrease likelihood of race conditions
- Properly cleanup mpvpaper
|
|
This commit adds 2 new options "--auto-pause/-p" and "--auto-stop/-s"
- By using a Wayland feature called "surface frame callback"
mpvpaper can detect when the wallpaper is not visible.
- With this feature mpvpaper can pause/stop automagically
while the wallpaper can't be seen.
The pause option will literally just pause mpv.
- In order to save processing power more seamlessly.
While the stop option will sort of "suspend" mpvpaper
to a separate holder program call "mpvpaper-holder"
- This reduces not just processing power, but also RAM usage
at the cost of being at bit more obvious when it does stop.
Along with the automagical ways to pause/stop.
There also now a "pauselist" and "stoplist".
Which will pause/stop if a program is found running in it's list.
- To use, simply create these text based lists in "~/.config/mpvpaper/"
with the file name "pauselist" and/or "stoplist" respectively.
- Then add programs that can be found with the "pidof" command.
- Make sure the programs are separated by either spaces or newlines.
Like so: "wine firefox steam"
This commit also includes some minor fixes to many too name.
Such as converting some ints to bools
and changing the order of loading configs.
|