We actually don't need to use a separate variable to track the status of
the spawned swayidle process, since we can poll the status directly from
the process object. This increases robustness against e.g. a killed
swayidle process, which would cause safeeyes to be permanently disabled
until a restart.
If the current desktop environment is sway, the smartpause plugin will
spawn a swayidle process that outputs the current time on idle and
resume. Using that info, we can determine:
1. Whether the system is currently idle (idle timestamp > active timestamp)
2. How many seconds the system has been idle (current timestamp - idle timestamp)
Since swayidle uses the KDE idle protocol, it might be possible to
extend this to Wayland KDE as well.
* Add UnboundLocalError check in smartpause plugin
Running this package for the first time locally, I see the following error in my gnome logs:
```
Sep 28 10:31:53 x1carbon safeeyes.desktop[13687]: Exception in thread WorkThread:
Sep 28 10:31:53 x1carbon safeeyes.desktop[13687]: Traceback (most recent call last):
Sep 28 10:31:53 x1carbon safeeyes.desktop[13687]: File "/usr/lib64/python3.8/threading.py", line 932, in _bootstrap_inner
Sep 28 10:31:53 x1carbon safeeyes.desktop[13687]: self.run()
Sep 28 10:31:53 x1carbon safeeyes.desktop[13687]: File "/usr/lib64/python3.8/threading.py", line 870, in run
Sep 28 10:31:53 x1carbon safeeyes.desktop[13687]: self._target(*self._args, **self._kwargs)
Sep 28 10:31:53 x1carbon safeeyes.desktop[13687]: File "/usr/lib/python3.8/site-packages/safeeyes/plugins/smartpause/plugin.py", line 163, in __start_idle_monitor
Sep 28 10:31:53 x1carbon safeeyes.desktop[13687]: if next_break is not None:
Sep 28 10:31:53 x1carbon safeeyes.desktop[13687]: UnboundLocalError: local variable next_break referenced before assignment
```
This is a quick fix to solve that error
* Set next_break to None before while loop