Description= should be a noun phrase, and not a full sentence, according
to man 5 systemd.unit.
In particular, using a dot at the end result in messages like this in
journalctl when running as a user service (not the superfluous dot at
the end):
May 31 16:03:38 framework systemd[1180]: Started Highly customizable Wayland bar for Sway and Wlroots based compositors..
May 31 16:20:39 framework systemd[1180]: Stopping Highly customizable Wayland bar for Sway and Wlroots based compositors....
May 31 16:20:39 framework systemd[1180]: Stopped Highly customizable Wayland bar for Sway and Wlroots based compositors..
Currently waybar _can_ try to start even if there's no graphical session (and
no sway) running. Adding `Requisite=` prevents this. From `systemd.unit(5)`:
Requisite=
Similar to Requires=. However, if the units listed here are not
started already, they will not be started and the starting of
this unit will fail immediately. Requisite= does not imply an
ordering dependency, even if both units are started in the same
transaction. Hence this setting should usually be combined with
After=, to ensure this unit is not started before the other
unit.
When Requisite=b.service is used on a.service, this dependency
will show as RequisiteOf=a.service in property listing of
b.service. RequisiteOf= dependency cannot be specified directly.
The current service doesn't play too nice with Sway when it is started
from [sway service](https://github.com/xdbob/sway-services).
Waybar is started before the system has a display.
```
Nov 30 22:11:23 ansan waybar[1352]: Unable to init server: Could not
connect: Connection refused
Nov 30 22:11:23 ansan waybar[1352]: cannot open display:
Nov 30 22:11:23 ansan systemd[1306]: waybar.service: Main process
exited, code=exited, status=1/FAILURE
Nov 30 22:11:23 ansan systemd[1306]: waybar.service: Failed with result
'exit-code'.
```
Restarting the service after the system has been initialized works nicely,
so this restart rule should do the trick without tinkering with the
target.