surge
December 6, 2025, 5:20pm
1
The solution given by this user works, but when mpv cycles to another media in the playlist - the behavior comes back. Being an mpv power user, i’m struggling to understand why that’ happens, and what’s even happening to begin with. I do understand what the content rules are, i don’t get what specific options are applied to an mpv instance when it goes fullscreen.
``
# for easy fullscreen switching
windowrule = content none, class:mpv
```
vaxry
December 6, 2025, 6:16pm
2
maybe an HDR modeset? try disabling hdr
surge
December 7, 2025, 10:43am
3
render {
direct_scanout = 0
cm_fs_passthrough = 0
cm_auto_hdr = 0
}
misc {
vrr = 0
}
Anything else i should change? I’m forcing srgb as well:
monitor = HDMI-A-1,[email protected] ,auto,1,cm,srgb
Running mpv with –no-config and –vo=gpu-next and –gpu-context=x11vk fixes the issue. I’m very confused.
surge
December 7, 2025, 11:00am
4
partial mpv log
vd: Pixel formats supported by decoder: vdpau vulkan cuda vaapi yuv420p
vd: Codec profile: High (0x64)
vd: Requesting pixfmt 'vaapi' from decoder.
vd: Using hardware decoding (vaapi).
vd: Decoder format: 1280x720 vaapi[nv12] auto/auto/auto/limited/auto CL=mpeg2/4/h264 crop=1280x720+0+0 A=none
vd: Using container aspect ratio.
vf: [in] 1280x720 vaapi[nv12] bt.709/bt.709/bt.1886/limited/display CL=mpeg2/4/h264 crop=1280x720+0+0 A=none
vf: [userdeint] 1280x720 vaapi[nv12] bt.709/bt.709/bt.1886/limited/display CL=mpeg2/4/h264 crop=1280x720+0+0 A=none
vf: [userdeint] (disabled)
vf: [autovflip] 1280x720 vaapi[nv12] bt.709/bt.709/bt.1886/limited/display CL=mpeg2/4/h264 crop=1280x720+0+0 A=none
vf: [autovflip] (disabled)
vf: [autorotate] 1280x720 vaapi[nv12] bt.709/bt.709/bt.1886/limited/display CL=mpeg2/4/h264 crop=1280x720+0+0 A=none
vf: [autorotate] (disabled)
vf: [convert] 1280x720 vaapi[nv12] bt.709/bt.709/bt.1886/limited/display CL=mpeg2/4/h264 crop=1280x720+0+0 A=none
vo/gpu-next: Loading hwdec drivers for format: 'vaapi'
vf: [out] 1280x720 vaapi[nv12] bt.709/bt.709/bt.1886/limited/display CL=mpeg2/4/h264 crop=1280x720+0+0 A=none
cplayer: VO: [gpu-next] 1280x720 vaapi[nv12]
cplayer: VO: Description: Video output based on libplacebo
vo/gpu-next: reconfig to 1280x720 vaapi[nv12] bt.709/bt.709/bt.1886/limited/display CL=mpeg2/4/h264 crop=1280x720+0+0 A=none
vo/gpu-next/wayland: Reconfiguring!
vo/gpu-next: Window size: 1280x720 (Borders: l=0 t=0 r=0 b=0)
vo/gpu-next: Video source: 1280x720 (1:1)
vo/gpu-next: Video display: (0, 0) 1280x720 -> (0, 0) 1280x720
vo/gpu-next: Video scale: 1.000000/1.000000
vo/gpu-next: OSD borders: l=0 t=0 r=0 b=0
vo/gpu-next: Video borders: l=0 t=0 r=0 b=0
vo/gpu-next/wayland: Handling resize on the vk side
vo/gpu-next: Window size: 1920x1080 (Borders: l=0 t=0 r=0 b=0)
vo/gpu-next: Video source: 1280x720 (1:1)
vo/gpu-next: Video display: (0, 0) 1280x720 -> (0, 0) 1920x1080
vo/gpu-next: Video scale: 1.500000/1.500000
vo/gpu-next: OSD borders: l=0 t=0 r=0 b=0
vo/gpu-next: Video borders: l=0 t=0 r=0 b=0
vo/gpu-next: Forcing queue refill, PTS(0.000000 + 0.000000 | 0.008333) < VPTS(21.121000)
cplayer: first video frame after restart shown
cplayer: playback restart complete @ 0.000000, audio=eof, video=playing
vo/gpu-next/wayland: Enabling idle inhibitor
cplayer: Set property: user-data/osc/margins={"t":0,"b":0,"r":0,"l":0} -> 1
vo/gpu-next/libplacebo: Detected fps ratio 0.0000 below threshold 0.0100, disabling interpolation
cplayer: Set property: user-data/osc/margins={"t":0,"b":0,"r":0,"l":0} -> 1
vo/gpu-next/libplacebo: Estimated source FPS: 30.000, display FPS: 30.000
cplayer: Set property: user-data/osc/margins={"t":0,"b":0,"r":0,"l":0} -> 1
cplayer: Saving state.
cplayer: EOF code: 5
statusline: V: 00:00:02 / 00:01:47 (2%) DS: 4.0000/0
cplayer: finished playback, success (reason 3)
cplayer: Running hook: ytdl_hook/on_after_end_file
vo/gpu-next/wayland: Disabling the idle inhibitor
cplayer: Exiting... (Quit)
cplayer: Set property: user-data/osc/margins={"t":0,"b":0,"r":0,"l":0} -> 1
cplayer: Can't find script 'thumbfast' to send message to.
vo/gpu-next/wayland: Deregistering output LG Electronics LG FHD (HDMI-A-1) (0x40)
vo/gpu-next/wayland: Deregistering seat 0x1
clipboard/wayland: Deregistering seat 0x1
surge
December 7, 2025, 11:10am
5
Sorry for being spammy. I’m trying to document this issue for others.
Here’s a good clue.
opened 04:34PM - 29 Mar 25 UTC
closed 06:05PM - 05 Apr 25 UTC
bug
### Already reported ? *
- [x] I have searched the existing open and closed iss… ues.
### Regression?
Definitely a regression - something broke after update (requires bisect)
### System Info and Hyprland Version
<details> <summary>System/Version info</summary>
```
Hyprland 0.48.0 built from branch main at commit 5ee35f914f921e5696030698e74fb5566a804768 (version: bump to 0.48.0).
Date: 2025-03-23
Tag: v0.48.0, commits: 5ee35f914f921e5696030698e74fb5566a804768
built against:
aquamarine 0.8.0
hyprlang 0.6.0
hyprutils 0.5.2
hyprcursor 0.1.12
hyprgraphics 0.1.2
no flags were set
System Information:
System name: Linux
Node name: Aria
Release: 6.14.0
Version: #1-NixOS SMP PREEMPT_DYNAMIC Mon Mar 24 14:02:41 UTC 2025
GPU information:
os-release: ANSI_COLOR="0;38;2;126;186;228"
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="25.05.20250325.698214a"
CPE_NAME="cpe:/o:nixos:nixos:25.05"
DEFAULT_HOSTNAME=nixos
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
ID_LIKE=""
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 25.05 (Warbler)"
SUPPORT_URL="https://nixos.org/community.html"
VARIANT=""
VARIANT_ID=""
VENDOR_NAME=NixOS
VENDOR_URL="https://nixos.org/"
VERSION="25.05 (Warbler)"
VERSION_CODENAME=warbler
VERSION_ID="25.05"
plugins:
```
</details>
### Description
Toggling fullsceen mode for mpv windows causes a temporary darkening of the screen.
This applies when changing from and to a workspace where mpv is fullscreen and toggling fullscreen using a keybind.
This behavior is not caught in videos, so my assumption is that the display temporarily cycles between off and on.
### How to reproduce
1. Toggle fullscreen mode on mpv
2. Switch between a workspace with a fullscreen instance of mpv and another
### Attach not paste
- [x] I understand that all text files must be *attached*, and not pasted directly. If not respected, this issue will likely get closed as spam
### Checklist of files to include below
- [ ] Hyprland config - `hyprctl systeminfo -c` (always include)
- [ ] Crash report (always include in case of crash)
- [ ] Video (always include in case of a visual bug)
- [ ] Logs (might contain useful info such as errors)
### Additional info & File uploads
_No response_
I’ve fixed this hyprland quirk in mpv with this:
--wayland-content-type=<auto|none|photo|video|game>
If supported by the compositor, mpv will send a hint using the content-type protocol telling the compositor what type of content is being displayed. auto (default) will automatically switch between telling the compositor the content is a photo, video or possibly none depending on internal heuristics.
This should be documented.