Free output name, skip storing description
Improve logging
Remove xdg-output support

xdg-output was used to extract the output name, which can be obtained
from wl_output as of interface version 4, release in Wayland 1.20 almost
two years ago.
Calculate blend factor as double
Change steps from 25K to 10K
Force mode on SIGUSR1

Sending SIGUSR1 will make wlsunset cycle between forcing the temperature
high, forcing it low, and returning to automatic temperature control.
Bump version to 0.3.0
display_dispatch: Terminate poll loop on EPIPE

display_dispatch tried to flush the display in a loop until it no longer
returns an error that is EAGAIN or EPIPE. This becomes an infinite loop
if the socket is closed.

Stop flushing if we hit EPIPE, as the connection is dead. We still try
to read what we were sent to the protocol error shows up in debug
ci: Build on archlinux
Negate longitude_time_offset

Instead of negating at every single point of use, just negate the
Use timezone as time offset for manual time

When entering manual time, the timezone was adjusted in the time input
instead of storing the time offset. The time offset is necessary to
calculate the correct day boundaries.

Remove the timezone correction of time input and instead adjust the time
offset accordingly.
Move feature defines to C files
Ensure step time is at least 1 second

When configured to perform a very quick transition, the step time for 25
kelvin may end up being less than 1 second, rounding to zero. A zero
step time does not make any sense.
Store enabled state on output

This allows us to check the name just once when we receive the
xdg_output::name event instead of every time we set the temperature.
Only set up xdg-output once
Refactor RGB & XYZ colors into structs
Support running only for specific outputs (displays)

Useful for laptops with external displays connected. External displays
usually have an ability to adjust color temperature via built-in menu,
so you can run `wlsunset` exclusively for laptop's internal display.

Also different screens happen to look differently after setting the same
color temperature. Possibly has to do with the technology which
display is based on (TN or IPS).
e18ab2cb — Artur Sinila 1 year, 10 months ago
Add .gitignore

`.cache` is for `clangd` cache
main.c: define timezone to tm.tm_gmtoff on FreeBSD

FreeBSD has BSD extension timezone, which conflicts with XSI extension
with the same name, according to time.h:

char *timezone(int, int);	/* XXX XSI conflict */

FreeBSD also has long tm_gmtoff member of struct tm, which is offset
from UTC in seconds, according to time.h:

struct tm {
long    tm_gmtoff;	/* offset from UTC in seconds */
char	*tm_zone;	/* timezone abbreviation */

which is the same as XSI extension timezone.

Co-authored-by: Jan Beich <jbeich@FreeBSD.org> (downstream patch)
Reviewed by: Kenny Levinsen <kl@kl.wtf>