Commit graph

4 commits

Author SHA1 Message Date
Tomas Volf
8ecf0d07f5
home-mpv-configuration: Fix mpv/list-of-file.
* gnu/home/services/mpv.scm (serialize-mpv/list-of-file): Use : as delimiter.

Reported-by: Sergey Trofimov <sarg@sarg.org.ru>
Change-Id: I7e55b306104c235d165ab138397b767f1af5c124
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-06-09 22:05:14 +02:00
Tomas Volf
0543ccf62c
home-mpv-configuration: Support file-like for file fields.
* gnu/home/services/mpv.scm (serialize-mpv/file, mpv/file?): New procedures.
(ao-null-latency, audio-file-paths, audio-files, bluray-device, cdda-device)
(chapters-file, cookies-file, cover-art-files, demuxer-cache-dir, dump-stats)
(dvbin-file, dvd-device, external-files, glsl-shaders, gpu-shader-cache-dir)
(icc-cache-dir, icc-profile, image-lut, include, input-conf, input-ipc-server)
(log-file, lut, ordered-chapters-files, osd-fonts-dir, screenshot-directory)
(scripts, stream-dump, sub-ass-styles, sub-file-paths, sub-files)
(sub-fonts-dir, target-lut, tls-ca-file, tls-cert-file, tls-key-file):
(vo-image-outdir, watch-history-path, watch-later-directory): Change type.
* doc/guix.texi (mpv Media Player): Document it.

Reported-by: Sergey Trofimov <sarg@sarg.org.ru>
Change-Id: I7e55b306104c235d165ab138397b767f1af5c124
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-05-27 19:22:39 +09:00
Tomas Volf
0e23ff2995
home-mpv-configuration: Update for mpv 0.40.0.
* gnu/home/services/mpv.scm (audio-backward-batch, clipboard-backends)
(clipboard-monitor?, demuxer-mkv-crop-compat?, hwdec-software-fallback)
(input-ime?, load-commands?, load-console?, load-positioning?)
(osd-bar-marker-min-size, osd-bar-marker-scale, osd-bar-marker-style)
(osd-selected-color, osd-selected-outline-color, playlist-exts)
(save-watch-history?, sub-ass-prune-delay, sub-ass-scale-with-window?)
(sub-hinting, sub-line-spacing, sub-scale-signs?, sub-shaper, video-recenter?)
(watch-history-path, wayland-internal-vsync): New options.
(cache-pause-wait, video-aspect-override): Change range.
(dvbin-timeout, media-controls, target-colorspace-hint): Change type.
(video-aspect-method): Add enumeration member.
(drm-connector, drm-device, drm-draw-plane, drm-draw-surface-size)
(drm-drmprime-video-plane, drm-format, drm-mode, drm-vrr-enabled)
(load-osd-console?, sub-ass-hinting, sub-ass-line-spacing)
(sub-ass-scale-with-window?, sub-ass-shaper)
(vd-lavc-software-fallback): Removed options.
* doc/guix.texi: Update the list of fields.

Change-Id: I7e55b306104c235d165ab138397b767f1af5c124
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-05-27 19:22:39 +09:00
Tomas Volf
364694773e
gnu: home: services: Add home-mpv-service-type.
This commit adds a new service type to generate configuration file for the mpv
media player.

Originally I attempted to use Guix Records (via define-configuration) for
this, but ran into the bug #74748, so I had to switch to procedures instead.
The usage is (hopefully) sufficiently described in the documentation.  When
the bug is resolved, I will update it to use define-configuration instead.

The full list of supported options is documented, however I decided to *not*
document types and purpose for each individual fields.  While I had mostly
working prototype to extract the documentation from mpv, once I realized it
would be few 10k of lines added, I decided it is not worth it.  It would bloat
the .texi file (by more than 50%), be hard to maintain and, in my opinion,
would not provide enough value to justify that.  The current version seems
like sane middle ground.

* gnu/home/services/mpv.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Register it.
* doc/guix.texi (mpv Media Player): Document it.

Change-Id: I2deb44799a28047cb5d67da97dc6007a9df873af
2025-05-13 10:55:49 +09:00