From 85d062d0dacd9bfd49690b5b812594587ee52ca7 Mon Sep 17 00:00:00 2001 From: Mohammad Rafiq Date: Sun, 6 Apr 2025 23:07:23 +0800 Subject: [PATCH] feat(apollo): add glance --- flake.nix | 1 + modules/graphical.nix | 1 - modules/services/glance.nix | 71 ++++++++++++++++++++++++++++++++----- 3 files changed, 64 insertions(+), 9 deletions(-) diff --git a/flake.nix b/flake.nix index 6c925cf..5aee662 100644 --- a/flake.nix +++ b/flake.nix @@ -26,6 +26,7 @@ ./modules/users.nix ./modules/networking.nix ./modules/shell.nix + ./modules/programs/stylix.nix ]; graphicalModules = [ ./modules/graphical.nix diff --git a/modules/graphical.nix b/modules/graphical.nix index ecb44b7..eee524e 100644 --- a/modules/graphical.nix +++ b/modules/graphical.nix @@ -13,7 +13,6 @@ with pkgs; ./programs/kitty.nix ./programs/spicetify.nix ./programs/spotifyd.nix - ./programs/stylix.nix ./hardware/audio.nix ./hardware/bluetooth.nix ]; diff --git a/modules/services/glance.nix b/modules/services/glance.nix index 408a64a..546154e 100644 --- a/modules/services/glance.nix +++ b/modules/services/glance.nix @@ -1,10 +1,65 @@ -{ - services.glance = { - enable = true; - openFirewall = true; - settings = { - server.host = "0.0.0.0"; - server.port = 8080; - }; +let + glancePort = 8080; + newsFeedColumn = { + size = "full"; + widgets = [ + { + title = "Feed"; + type = "rss"; + style = "detailed-list"; + feeds = [ + { + title = "Bloomberg"; + url = "https://feeds.bloomberg.com/markets/news.rss"; + } + { + title = "Fox Business"; + url = "https://moxie.foxbusiness.com/google-publisher/markets.xml"; + } + ]; + } + ]; }; + serviceMonitoringColumn = { + size = "small"; + widgets = [ + { + title = "Services"; + type = "monitor"; + cache = "1m"; + sites = [ + # https://simpleicons.org/ + { + title = "Gitea"; + icon = "si:gitea"; + url = "https://gitea.bwfiq.com"; + } + { + title = "LibreChat"; + icon = "si:googlechat"; + url = "https://chat.bwfiq.com"; + } + ]; + } + ]; + }; +in +{ + home-manager.users.rafiq.services.glance = { + enable = true; + settings.server = { + host = "0.0.0.0"; + port = glancePort; + }; + settings.pages = [ + { + name = "Home"; + columns = [ + serviceMonitoringColumn + newsFeedColumn + ]; + } + ]; + }; + networking.firewall.allowedTCPPorts = [ glancePort ]; }