SOLVED: Puzzling swaycast inotify failure

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. :man_shrugging: ]

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

No expert at all, but this message makes me think it might be a dbus problem?

Failed to show notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached

Hopefully more knowledgeable people can chime in.

Thanks for the reply. If nothing else, your post has gotten me into reading about D-bus … a topic I’ve long avoided. :wink:

PROBLEM SOLVED: Was missing the swaync executable. :flushed_face:

After a considerable amount of flailing about, I determined that the swaync executable had not been properly installed on the iMac… whereas it was installed on both of the other two platforms in the house.

Oddly, swaync’s config.json and style.css files were both present in a existing ~/.config/swaync directory. But somehow the actual installation of the executable itself never made it to the setup (in usr/bin/swaync).

No doubt, some stupid maneuver on my part? :man_shrugging:
. . . . . .

FWIW, what made me suspicious enough to check (using which swaync) was that incoming email alerts were not taking place on the iMac but were happening on the MacBookPro laptop sitting right next to it. :thinking:

Anyhow, upon installing the executable (# pacman -S swaync), not only did the alerts begin, but the swaycast functions finally worked perfectly, too.

The start and stop swaycast events are now reported on the monitor and the finished video mp4 files are now immediately viewable - i.e., without having to logoff and logon again (to force an open file closing?).

I share all these details just in case someone else down the road finds themselves in a similar situation. My pain might become your gain if this post is of any help.

Onward! :vulcan_salute:

[ps - In short, it was a kind of “notification” problem… but not with inotify-tools]