diff options
| author | Robert Günzler <r@gnzler.io> | 2021-02-11 13:45:25 +0100 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2021-02-11 13:45:51 +0100 |
| commit | 30451238df36d238fea816f01ca987853c6562a5 (patch) | |
| tree | ee8d50d00b30cf291f34fb989f839e3492868f48 /.config/waybar/modules/redshift.go | |
| parent | ef2e08b2b9eead9119f916464182fca652ef3fef (diff) | |
waybar: update 2021-02-11T12:46:11Z
Diffstat (limited to '.config/waybar/modules/redshift.go')
| -rw-r--r-- | .config/waybar/modules/redshift.go | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/.config/waybar/modules/redshift.go b/.config/waybar/modules/redshift.go deleted file mode 100644 index b336748..0000000 --- a/.config/waybar/modules/redshift.go +++ /dev/null @@ -1,89 +0,0 @@ -// usage: -// go build -o waybar-redshift redshift.go -package main - -import ( - "encoding/json" - "fmt" - "os" - "os/exec" - "os/signal" - "strings" - - . "syscall" -) - -func main() { - var ( - update = make(chan os.Signal, 1) - cancel = make(chan os.Signal, 1) - ) - signal.Notify(update, SIGUSR1, SIGUSR2, SIGHUP) - signal.Notify(cancel, SIGTERM, SIGINT) - - // could use golang.org/x/sys/unix.Prctl here - // but I want to avoid the dependency - if _, _, e := Syscall6(SYS_PRCTL, - uintptr(PR_SET_PDEATHSIG), - uintptr(SIGTERM), - 0, 0, 0, 0); e != 0 { - os.Exit(1) - } - // if err := Prctl(PR_SET_PDEATHSIG, - // SIGTERM, - // 0, 0, 0); err != nil { - // fmt.Fprintln(os.Stderr, err) - // os.Exit(1) - // } - - lookup() - for { - select { - case sig := <-update: - switch sig { - case SIGUSR1: - // redshift off - printJson("day", "day") - case SIGUSR2: - // redshift on - printJson("night", "night") - case SIGHUP: - lookup() - } - case <-cancel: - fmt.Fprintf(os.Stderr, "%v exiting\n", os.Args[0]) - os.Exit(0) - } - } -} - -func printJson(state, tooltip string) { - _ = json.NewEncoder(os.Stdout).Encode(map[string]interface{}{ - "class": state, - "alt": state, - "tooltip": "redshift: " + tooltip, - "text": state, - }) -} - -func lookup() { - b, err := exec.Command("redshift", "-p").Output() - if err != nil { - return - } - fds := strings.Fields(string(b)) - for idx, f := range fds { - if f == "Period:" { - fds = fds[idx+1:] - break - } - } - switch fds[0] { - case "Night": - printJson("night", "night") - case "Transition": - printJson("night", "transition") - case "Daytime": - printJson("day", "day") - } -} |