When using swaycast (WM: Sway 1.12 & DE: sway/wlroots), it works perfectly on two other platforms but not quite right on a third (2019 iMac).
I believe the issue stems from an inotify-related failure.
Symptoms: There are no notifications of either the start or the end of recording (using Mod+Shift+a and Mod+Shift+x). Although the screencast mp4 file actually does get created … but it is only “finished” and available for viewing after logging off and logging back in again.
It’s as if the mp4 file is not properly end and closed until it is forced to do so by logging out.
I’ve detected various “failed” events (as seen below) in the tmp/swaycast.log file.
There are no such logged failures (nor any glitchy behavior like this) evident on the other two hardware platforms we have.
Again, what makes it interesting is that swaycast actually does make the recording. But there is no indication it is doing so (neither start nor stop notices) and, again, the video file is not viewable until after logging out and back in again. Hence my assumption that the inotify failures may be related since swaycast itself seems to be doing its job.
[FYI, I’ve confirmed that inotifywatch and inotifywait are both installed in /usr/bin. I’ve read up as much as I could find on inotify-tools and couldn’t make any progress in sleuthing this issue further.
]
Here’s the log file. Any thoughts?
Setting codec option: crf=20
Setting codec option: preset=superfast
Setting codec option: tune=zerolatency
Using video filter: null
[libx264 @ 0x7ff898001e80] using SAR=1/1
[libx264 @ 0x7ff898001e80] MB rate (12069000000) > level limit (16711680)
[libx264 @ 0x7ff898001e80] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7ff898001e80] profile High, level 6.2, 4:2:0, 8-bit
[libx264 @ 0x7ff898001e80] 264 - core 165 r3222 b35605a - H.264/MPEG-4 AVC codec - Copyleft 2003-2025 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x3 me=dia subme=1 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=4 lookahead_threads=4 sliced_threads=1 slices=4 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc=crf mbtree=0 crf=20.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to '/home/ejm/Videos/screencasts/screencast_2026-07-05_07-15-37.mp4':
Stream #0:0: Video: h264, yuv420p(pc), 2370x1286 [SAR 1:1 DAR 1185:643], q=2-31
Side data:
CPB properties: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
[Source @ 0x7ff898004200] Changing video frame properties on the fly is not supported by all filters.
[Source @ 0x7ff898004201] filter context - w: 2370 h: 1286 fmt: 119 csp: gbr range: unknown alpha: unspecified, incoming frame - w: 2370 h: 1286 fmt: 119 csp: unknown range: unknown alpha: unspecified pts_time: 0
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
[libx264 @ 0x7ff898001e80] frame I:12 Avg QP: 8.86 size: 87776
[libx264 @ 0x7ff898001e80] frame P:810 Avg QP:14.83 size: 8916
[libx264 @ 0x7ff898001e80] mb I I16..4: 83.6% 0.9% 15.5%
[libx264 @ 0x7ff898001e80] mb P I16..4: 4.5% 0.2% 1.4% P16..4: 2.5% 0.0% 0.0% 0.0% 0.0% skip:91.3%
[libx264 @ 0x7ff898001e80] 8x8 transform intra:3.2% inter:12.3%
[libx264 @ 0x7ff898001e80] coded y,uvDC,uvAC intra: 18.7% 6.1% 5.0% inter: 0.8% 0.5% 0.1%
[libx264 @ 0x7ff898001e80] i16 v,h,dc,p: 77% 20% 3% 0%
[libx264 @ 0x7ff898001e80] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 24% 26% 5% 5% 5% 6% 4% 8%
[libx264 @ 0x7ff898001e80] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 38% 22% 14% 3% 4% 5% 4% 4% 4%
[libx264 @ 0x7ff898001e80] i8c dc,h,v,p: 89% 8% 3% 1%
[libx264 @ 0x7ff898001e80] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x7ff898001e80] kb/s:80541520.00
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
selected region 78,186 1197x660
Setting codec option: crf=20
Setting codec option: preset=superfast
Setting codec option: tune=zerolatency
Using video filter: null
[libx264 @ 0x7f3a70001e80] using SAR=1/1
[libx264 @ 0x7f3a70001e80] MB rate (12450000000) > level limit (16711680)
[libx264 @ 0x7f3a70001e80] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7f3a70001e80] profile High, level 6.2, 4:2:0, 8-bit
[libx264 @ 0x7f3a70001e80] 264 - core 165 r3222 b35605a - H.264/MPEG-4 AVC codec - Copyleft 2003-2025 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x3 me=dia subme=1 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=4 lookahead_threads=4 sliced_threads=1 slices=4 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc=crf mbtree=0 crf=20.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Choosing sample format fltp for audio codec aac
Output #0, mp4, to '/home/ejm/Videos/screencasts/screencast_2026-07-05_07-18-15.mp4':
Stream #0:0: Video: h264, yuv420p(pc), 2394x1320 [SAR 1:1 DAR 399:220], q=2-31
Side data:
CPB properties: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp, 128 kb/s
Using PulseAudio device: default
[Source @ 0x7f3a70004200] Changing video frame properties on the fly is not supported by all filters.
[Source @ 0x7f3a70004200] filter context - w: 2394 h: 1320 fmt: 119 csp: gbr range: unknown alpha: unspecified, incoming frame - w: 2394 h: 1320 fmt: 119 csp: unknown range: unknown alpha: unspecified pts_time: 0.01527
/home/ejm/.local/bin/swaycast: line 96: kill: (3993) - No such process
/home/ejm/.local/bin/swaycast: line 96: kill: (3993) - No such process
/home/ejm/.local/bin/swaycast: line 96: kill: (3993) - No such process
/home/ejm/.local/bin/swaycast: line 96: kill: (3993) - No such process
/home/ejm/.local/bin/swaycast: line 96: kill: (3993) - No such process
/home/ejm/.local/bin/swaycast: line 96: kill: (3993) - No such process
/home/ejm/.local/bin/swaycast: line 96: kill: (3993) - No such process
/home/ejm/.local/bin/swaycast: line 96: kill: (3993) - No such process
/home/ejm/.local/bin/swaycast: line 96: kill: (3993) - No such process
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
/home/ejm/.local/bin/swaycast: line 96: kill: (3993) - No such process
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
Failed to show notification: Timeout was reached
selection cancelled
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
selected region 124,5 845x644
Setting codec option: crf=20
Setting codec option: preset=superfast
Setting codec option: tune=zerolatency
Using video filter: null
[libx264 @ 0x7f1ed8001e80] using SAR=1/1
[libx264 @ 0x7f1ed8001e80] MB rate (8586000000) > level limit (16711680)
[libx264 @ 0x7f1ed8001e80] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7f1ed8001e80] profile High, level 6.2, 4:2:0, 8-bit
[libx264 @ 0x7f1ed8001e80] 264 - core 165 r3222 b35605a - H.264/MPEG-4 AVC codec - Copyleft 2003-2025 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x3 me=dia subme=1 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=4 lookahead_threads=4 sliced_threads=1 slices=4 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc=crf mbtree=0 crf=20.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Choosing sample format fltp for audio codec aac
Output #0, mp4, to '/home/ejm/Videos/screencasts/screencast_2026-07-05_07-22-23.mp4':
Stream #0:0: Video: h264, yuv420p(pc), 1690x1288 [SAR 1:1 DAR 845:644], q=2-31
Side data:
CPB properties: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp, 128 kb/s
Using PulseAudio device: default
[Source @ 0x7f1ed8004200] Changing video frame properties on the fly is not supported by all filters.
[Source @ 0x7f1ed8004200] filter context - w: 1690 h: 1288 fmt: 119 csp: gbr range: unknown alpha: unspecified, incoming frame - w: 1690 h: 1288 fmt: 119 csp: unknown range: unknown alpha: unspecified pts_time: 0.001415
[mp4 @ 0x7f1ed8000b80] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 2778132 >= 2757303
[mp4 @ 0x7f3a70000b80] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 25072057 >= 24790723
[libx264 @ 0x7f3a70001e80] frame I:20 Avg QP: 7.42 size:125274
[libx264 @ 0x7f3a70001e80] frame P:2166 Avg QP:15.02 size: 7216
[libx264 @ 0x7f3a70001e80] mb I I16..4: 70.7% 7.1% 22.2%
[libx264 @ 0x7f3a70001e80] mb P I16..4: 2.2% 1.1% 0.5% P16..4: 7.7% 0.0% 0.0% 0.0% 0.0% skip:88.5%
[libx264 @ 0x7f3a70001e80] 8x8 transform intra:24.9% inter:35.7%
[libx264 @ 0x7f3a70001e80] coded y,uvDC,uvAC intra: 26.1% 28.8% 15.0% inter: 1.8% 2.3% 0.2%
[libx264 @ 0x7f3a70001e80] i16 v,h,dc,p: 72% 21% 4% 2%
[libx264 @ 0x7f3a70001e80] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 20% 17% 7% 7% 7% 7% 7% 7%
[libx264 @ 0x7f3a70001e80] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 34% 24% 11% 5% 5% 6% 5% 5% 5%
[libx264 @ 0x7f3a70001e80] i8c dc,h,v,p: 63% 19% 13% 5%
[libx264 @ 0x7f3a70001e80] Weighted P-Frames: Y:1.1% UV:0.4%
[libx264 @ 0x7f3a70001e80] kb/s:66366172.00
[aac @ 0x7f3a700e5240] Qavg: 62272.340
[libx264 @ 0x7f1ed8001e80] frame I:1 Avg QP: 7.62 size:144926
[libx264 @ 0x7f1ed8001e80] frame P:159 Avg QP:14.91 size: 1351
[libx264 @ 0x7f1ed8001e80] mb I I16..4: 73.3% 1.0% 25.7%
[libx264 @ 0x7f1ed8001e80] mb P I16..4: 0.3% 0.0% 0.2% P16..4: 0.4% 0.0% 0.0% 0.0% 0.0% skip:99.1%
[libx264 @ 0x7f1ed8001e80] 8x8 transform intra:1.7% inter:7.2%
[libx264 @ 0x7f1ed8001e80] coded y,uvDC,uvAC intra: 23.8% 31.4% 29.9% inter: 0.1% 0.2% 0.1%
[libx264 @ 0x7f1ed8001e80] i16 v,h,dc,p: 74% 21% 5% 0%
[libx264 @ 0x7f1ed8001e80] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 26% 17% 25% 9% 5% 5% 4% 5% 5%
[libx264 @ 0x7f1ed8001e80] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 35% 28% 13% 4% 4% 4% 4% 5% 4%
[libx264 @ 0x7f1ed8001e80] i8c dc,h,v,p: 60% 26% 12% 2%
[libx264 @ 0x7f1ed8001e80] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x7f1ed8001e80] kb/s:17988000.00
[aac @ 0x7f1ed80e1040] Qavg: 65536.000
Failed to show notification: Timeout was reached
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
selected region 277,59 1119x723
Setting codec option: crf=20
Setting codec option: preset=superfast
Setting codec option: tune=zerolatency
Using video filter: null
[libx264 @ 0x7f7d74001e80] using SAR=1/1
[libx264 @ 0x7f7d74001e80] MB rate (12740000000) > level limit (16711680)
[libx264 @ 0x7f7d74001e80] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7f7d74001e80] profile High, level 6.2, 4:2:0, 8-bit
[libx264 @ 0x7f7d74001e80] 264 - core 165 r3222 b35605a - H.264/MPEG-4 AVC codec - Copyleft 2003-2025 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x3 me=dia subme=1 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=4 lookahead_threads=4 sliced_threads=1 slices=4 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc=crf mbtree=0 crf=20.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Choosing sample format fltp for audio codec aac
Output #0, mp4, to '/home/ejm/Videos/screencasts/screencast_2026-07-05_08-12-53.mp4':
Stream #0:0: Video: h264, yuv420p(pc), 2238x1446 [SAR 1:1 DAR 373:241], q=2-31
Side data:
CPB properties: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp, 128 kb/s
Using PulseAudio device: default
[Source @ 0x7f7d74004200] Changing video frame properties on the fly is not supported by all filters.
[Source @ 0x7f7d74004200] filter context - w: 2238 h: 1446 fmt: 119 csp: gbr range: unknown alpha: unspecified, incoming frame - w: 2238 h: 1446 fmt: 119 csp: unknown range: unknown alpha: unspecified pts_time: 0.014769
/home/ejm/.local/bin/swaycast: line 96: kill: (5639) - No such process