{ config, ... }: let secrets = config.age.secrets; in { services.tailscaledGlance = { enable = true; subdomain = "glance"; settings = { server.port = 4114; pages = [ { name = "Home"; columns = [ { size = "small"; widgets = [ { type = "clock"; hour-format = "24h"; timezones = [ { timezone = "Europe/Zurich"; label = "Zürich"; } ]; } { type = "group"; title = "Weather"; widgets = let buildWeatherWidget = { location, title }: { type = "weather"; hide-location = true; hour-format = "24h"; units = "metric"; inherit location title; }; in builtins.map buildWeatherWidget [ { title = "Espoo"; location = "Espoo, Finland"; } { title = "Mökki"; location = "Pellosniemi, Finland"; } { title = "Frankfurt"; location = "Frankfurt, Germany"; } ]; } { type = "markets"; markets = [ { symbol = "KOZ0.F"; name = "Kongsberg Gruppen"; } { symbol = "AMD"; name = "AMD"; } ]; } { type = "group"; widgets = [ { type = "rss"; title = "News"; limit = 10; collapse-after = 3; cache = "12h"; feeds = [ { url = "https://yle.fi/rss/uutiset/paauutiset"; title = "Yle"; } ]; } { type = "rss"; title = "Tech"; limit = 10; collapse-after = 3; cache = "12h"; feeds = [ { url = "https://nixos.org/blog/announcements-rss.xml"; title = "NixOS"; } { url = "https://selfh.st/rss"; title = "selfh.st"; } ]; } { type = "rss"; title = "Blogs"; limit = 10; collapse-after = 3; cache = "12h"; feeds = [ { url = "https://samharris.substack.com/feed"; title = "Sam Harris"; } ]; } ]; } { type = "custom-api"; title = "Steam Specials"; cache = "12h"; url = "https://store.steampowered.com/api/featuredcategories?cc=fi"; template = ''