From 7b319051db585837d201d008a9a2e7022d91033c Mon Sep 17 00:00:00 2001 From: Ingolf Wagner Date: Tue, 7 Jan 2020 12:07:17 +1300 Subject: [PATCH] wtf: a bit easier to crate new dashboards now --- system/desktop/wtf.nix | 221 ++++++++++++++++++++++------------------- 1 file changed, 119 insertions(+), 102 deletions(-) diff --git a/system/desktop/wtf.nix b/system/desktop/wtf.nix index eea4fc4..e0b0d63 100644 --- a/system/desktop/wtf.nix +++ b/system/desktop/wtf.nix @@ -30,6 +30,84 @@ let })|$' ''; + # default settings + wtfModule = + args@{ height ? 1, width ? 1, top, left, enabled ? true, type, ... }: + { + enabled = enabled; + focusable = false; + position.top = top; + position.left = left; + position.height = height; + position.width = width; + } // (lib.filterAttrs + (key: _: lib.all (x: x != key) [ "height" "width" "top" "left" ]) args); + + modules = { + + # command runner module + cmdRunner = args@{ cmd, ... }: + wtfModule ({ + type = "cmdrunner"; + focusable = false; + refreshInterval = 300; + } // args); + + digitalclock = args@{ top, left, ... }: + wtfModule ({ + type = "digitalclock"; + title = ""; + color = "white"; + font = "bigfont"; + hourFormat = 24; + refreshInterval = 1; + } // args); + + clocks = args@{ top, left, ... }: + wtfModule ({ + type = "clocks"; + title = ""; + border = false; + colors.rows = { + even = "white"; + odd = "white"; + }; + locations = { + Berlin = "Europe/Berlin"; + Wellington = "Pacific/Auckland"; + }; + sort = "alphabetical"; + refreshInterval = 60; + } // args); + + resourceusage = args@{ top, left, ... }: + wtfModule ({ + type = "resourceusage"; + title = ""; + cpuCombined = false; + refreshInterval = 5; + } // args); + + power = args@{ top, left, ... }: + wtfModule ({ + type = "power"; + title = ""; + refreshInterval = 100; + } // args); + + prettyweather = args@{ top, left, ... }: + wtfModule ({ + type = "prettyweather"; + title = ""; + city = "Wellington"; + unit = "m"; + view = 0; + language = "en"; + refreshInterval = 3600; + } // args); + + }; + qJson = { wtf = { @@ -48,140 +126,79 @@ let refreshInterval = 1; - mods = { + mods = with modules; { - digitalclock = { - title = ""; - type = "digitalclock"; - enabled = true; - color = "white"; - font = "bigfont"; - hourFormat = 24; - refreshInterval = 1; - position.top = 0; - position.left = 0; - position.height = 1; - position.width = 1; - }; - clocks = { - title = ""; - type = "clocks"; - enabled = true; - border = false; - colors.rows = { - even = "white"; - odd = "white"; - }; - locations = { - Berlin = "Europe/Berlin"; - Wellington = "Pacific/Auckland"; - }; - sort = "alphabetical"; - position.top = 1; - position.left = 0; - position.height = 1; - position.width = 1; - refreshInterval = 60; + digitalclock = digitalclock { + top = 0; + left = 0; }; - resourceusage = { - title = ""; - cpuCombined = false; - enabled = true; - position.top = 0; - position.left = 1; - position.height = 1; - position.width = 1; - refreshInterval = 5; + clocks = clocks { + top = 1; + left = 0; }; - power = { - enabled = true; - position.top = 2; - position.left = 0; - position.height = 1; - position.width = 1; - refreshInterval = 100; - title = "Power"; + top = resourceusage { + top = 0; + left = 1; }; - rates = { + power = power { + top = 2; + left = 0; + }; + + rates = wtfModule { type = "exchangerates"; + top = 3; + left = 0; title = "rates"; - enabled = true; - focusable = false; - position.top = 3; - position.left = 0; - position.height = 1; - position.width = 1; rates.NZD = [ "EUR" ]; rates.EUR = [ "NZD" ]; }; - prettyweather = { - enabled = true; - title = ""; - city = "Wellington"; - position.top = 0; - position.left = 2; - position.height = 1; - position.width = 1; - unit = "m"; - view = 0; - language = "en"; - refreshInterval = 3600; + weather = prettyweather { + top = 0; + left = 2; }; - calendar = { - type = "cmdrunner"; + calendar = cmdRunner { title = ""; - focusable = false; args = [ "-3" "--monday" "--color=never" "-w" ]; cmd = "cal"; - enabled = true; - position.top = 1; - position.left = 1; - position.height = 2; - position.width = 2; + top = 1; + left = 1; + height = 2; + width = 2; refreshInterval = 3600; }; - uptime = { - type = "cmdrunner"; + uptime = cmdRunner { title = "uptime"; - focusable = false; cmd = "uptime"; - enabled = true; - position.top = 3; - position.left = 1; - position.height = 1; - position.width = 2; - refreshInterval = 300; + top = 3; + left = 1; + height = 1; + width = 2; }; - active-users = { - type = "cmdrunner"; + active-users = cmdRunner { title = "users"; - focusable = false; cmd = activeUsers; - enabled = true; - position.top = 0; - position.left = 3; - position.height = 4; - position.width = 1; + top = 0; + left = 3; + height = 4; + width = 1; refreshInterval = 30; }; - active-tasks = { - type = "cmdrunner"; + active-tasks = cmdRunner { title = "active tasks"; - focusable = false; cmd = activeTasks; - enabled = true; - position.top = 4; - position.left = 0; - position.height = 1; - position.width = 4; + top = 4; + left = 0; + height = 1; + width = 4; refreshInterval = 60; }; };