Manually setting dark mode setting is tricky.
darkman-set-dark dinit user service runs darkman set dark and depends on darkman dinit user service which runs darkman run.
It turns out that dinit starts darkman-set-dark user service as soon as darkman user service starts up. That means darkman set dark is run before darkman run creates its presence in session dbus. Somehow, session dbus gives priority to darkman run triggered by darkman set dark. Thus, darkman user service yields to darkman run started by session dbus.
I found two workarounds.
- darkman-set-dark user service runs
sh -c 'sleep 1; darkman set dark'. This allows darkman user service to establish presence in session dbus beforedarkman set darkis run. - Start darkman dinit user service before sway is run. Run
darkman set darkin sway configuration.
If darkman dies with session dbus, I perhaps don't need darkman user service.
Edited by kenji amano