-
- {{ printf "%+.2f" $change }}%
-
-
diff --git a/config/finance/widgets/youtube.yml b/config/finance/widgets/youtube.yml
deleted file mode 100644
index f9afb48..0000000
--- a/config/finance/widgets/youtube.yml
+++ /dev/null
@@ -1,94 +0,0 @@
-- type: group
- widgets:
- # Podcasts & Commentary
- - type: videos
- style: grid-cards
- collapse-after-rows: 2
- title: Pop-Culture
- channels:
- - UCzQUP1qoWDoEbmsQxvdjxgQ # PowerfulJRE
- - UCJIfeSCssxSC_Dhc5s7woww # Lex Clips
- - UC5PstSsGrRwj2o6asQpC4Rg # Flagrant 2
- - UCKrpnfpTwncQ050VFXcVkuQ # Network State Podcast
- - UC7oPkqeHTwuOZ5CZ-R9f-6w # Triggernometry
- - UCIHdDJ0tjn_3j-FS7s_X1kQ # Valuetainment
-
- # Programming & Tech
- - type: videos
- style: grid-cards
- collapse-after-rows: 2
- title: Programming
- channels:
- - UCUyeluBRhGPCW4rPe_UvBZQ # ThePrimeTime
- - UCjSEJkpGbcZhvo0lr-44X_w # TechHut
- - UCXuqSBlHAE6Xw-yeJA0Tunw # Linus Tech Tips
- - UCs6KfncB4OV6Vug4o_bzijg # Techlore
- - UCTwxaBjziKfy6y_uWu30orAby # BugBytes
- - UCYeiozh-4QwuC1sjgCmB92w # DevOps Toolbox
- - UCsBjURrPoezykLs9EqgamOA # Angular Firebase
- - UC-mTIBh__DzAqW495JHXy5A # The Coding Gopher
- - UC2WHjPDvbE6O328n17ZGcfg # ForrestKnight
- - UCsUalyRg43M8D60mtHe6YcAD # Honeypot
- - UCgfe2ooZD3VJPB6aJAnuQng # cloud
- - UCdjsUXJ3QawK4O5L1kqqsew # IPFS
- - UC3Wn3dABlgESm8Bzn8Vamgg # Sideprojects
- - UCtMVHI3AJD4Qk4hcbZnI9ZQ # SomeOrdinaryGamers
- - UCNJ1Ymd5yFuUPtn21xtRbbw # AI Explained
- - UCutCcajxhR33k9UR-DdLsAQ # Systems Innovation
-
- # Startups & Business
- - type: videos
- style: grid-cards
- collapse-after-rows: 2
- title: Startups
- channels:
- - UCcefcZRL2oaA_uBNeo5UOWg # Y Combinator
- - UCllx7jOjBL794FK67jtb5Og # Dalton + Michael
- - UCxIJaCMEptJjxmmQgGFsnCg # How to Start a Startup
- - UCQrZfl1FeCN9c71yjOzWVRw # Startup Archive
- - UCtieZ1nS_tpjGEama6Kjxcg # Steve Jobs Archive
- - UCm_WkN0wg49-eG4SymAQ_4g # Harvard Innovation Labs
- - UCSGc7c1yKxo-Uhz5_oivrfg # The Startup Club by Slidebean
- - UCGq-a57w-aPwyi3pW7XLiHw # The Diary Of A CEO
-
- # AI & Futurism
- - type: videos
- style: grid-cards
- collapse-after-rows: 2
- title: Futurism
- channels:
- - UCawZsQWqfGSbCI5yjkdVkTA # Matthew Berman
- - UCZFipeZtQM5CKUjx6grh54g # Isaac Arthur
- - UCR9sFzaG9Ia_kXJhfxtFMB # melodysheep
- - UCSeuZvDGosq1zC6NqgqGo-Q # merlin
- # Finance
- - type: videos
- style: grid-cards
- collapse-after-rows: 2
- title: Finance
- channels:
- - UCAeAB8ABXGoGMbXuYPmiu2A # The Swedish Investor
- - UCvSXMi2LebwJEM1s4bz5IBA # New Money
- - UCV6KDgJskWaEckne5aPA0aQ # Graham Stephan
- - UCAzhpt9DmG6PnHXjmJTvRGQ # Federal Reserve
-
-
- # Science, History & Education
- - type: videos
- style: grid-cards
- collapse-after-rows: 2
- title: Education
- channels:
- - UCHnyfMqiRRG1u-2MsSQLbXA # Veritasium
- - UCsXVk37bltHxD1rDPwtNM8QL # Kurzgesagt – In a Nutshell
- - UCxqAWLTk1CmBvZFPzeZMd9A # Domain of Science
- - UCR2uRTQ53V_egXKFflMMaaw # Artem Kirsanov
- - UCeUJFQ0D9qs6aVNyUt9fkeQ # The Armchair Historian
- - UC5Dw9TFdbPJoTDMSiJdIQT # Whatifalthist
- - UC0NCSdGglnmdWg-qHALhu1w # History102
- - UCpCSAcbqs-sjEVfk_hMfY9w # MajorPrep
- - UCmdugCMpC7BawYGwkRs5drQ # PhiloNautica
- - UC4gHARRmw40kcLZgINlTK_g # Religion Camp
- - UCPPrhcXtGR2aMoxrPJRKPLg # Para Bellum
- - UCQUnqaW8Q33siyLYhisN7HQ # Antidote
- - UCXzw-OdotBUcNA9yhuYQBw # Awesome
diff --git a/config/glance.yml b/config/glance.yml
index 79f1c74..e61aa57 100644
--- a/config/glance.yml
+++ b/config/glance.yml
@@ -1,15 +1,6 @@
server:
assets-path: /app/assets
-branding:
- custom-footer: |
-
Powered by Glance
- logo-url: /assets/logo.png
- favicon-url: /assets/logo.png
- app-name: "My Dashboard"
- app-icon-url: "/assets/app-icon.png"
- app-background-color: "#151519"
-
theme:
custom-css-file: /assets/newspaper.css
background-color: 240 27 11
@@ -19,30 +10,36 @@ theme:
negative-color: 360 100 71
pages:
- - name: News
+ - name: Headlines
width: wide
head-widgets:
- - $include: ./news/header.yml
+ - $include: ./headlines/header.yml
columns:
- - $include: ./news/left.yml
- - $include: ./news/main.yml
- - $include: ./news/right.yml
+ - $include: ./headlines/left.yml
+ - $include: ./headlines/main.yml
+ - $include: ./headlines/right.yml
- - name: Finance
- head-widgets:
- - $include: ./finance/header.yml
+ - name: Markets
columns:
- - $include: ./finance/left.yml
- - $include: ./finance/main.yml
- - $include: ./finance/right.yml
+ - $include: ./markets/left.yml
+ - $include: ./markets/main.yml
+ - $include: ./markets/right.yml
- - name: Developer
+ - name: Technology
+ width: wide
columns:
- - $include: ./developer/left.yml
- - $include: ./developer/main.yml
- - $include: ./developer/right.yml
+ - $include: ./technology/left.yml
+ - $include: ./technology/main.yml
+ - $include: ./technology/right.yml
- - name: Media
+ - name: Schedule
columns:
- - $include: ./media/movies.yml
- - $include: ./media/tv.yml
+ - $include: ./schedule/left.yml
+ - $include: ./schedule/main.yml
+ - $include: ./schedule/right.yml
+
+ - name: Entertainment
+ columns:
+ - $include: ./entertainment/side.yml
+ - $include: ./entertainment/movies.yml
+ - $include: ./entertainment/tv.yml
diff --git a/config/headlines/header.yml b/config/headlines/header.yml
new file mode 100644
index 0000000..e3555ae
--- /dev/null
+++ b/config/headlines/header.yml
@@ -0,0 +1,21 @@
+# Masthead + markets ticker — the newspaper banner
+- type: html
+ source: |
+
+
+- type: markets
+ hide-header: true
+ markets:
+ - symbol: BTC-USD
+ name: Bitcoin
+ - symbol: ETH-USD
+ name: Ethereum
+ - symbol: MAGS
+ name: Mag7
+ - symbol: QQQ
+ name: Nasdaq
diff --git a/config/headlines/left.yml b/config/headlines/left.yml
new file mode 100644
index 0000000..3498789
--- /dev/null
+++ b/config/headlines/left.yml
@@ -0,0 +1,23 @@
+# Headlines left rail — weather, clocks, deals wire
+- size: small
+ widgets:
+ - type: weather
+ location: Ashburn, Virginia, United States
+ units: imperial
+ hour-format: 12h
+ - type: clock
+ hour-format: 12h
+ timezones:
+ - timezone: America/Los_Angeles
+ label: Los Angeles
+ - timezone: Asia/Singapore
+ label: Singapore
+ - timezone: Europe/London
+ label: London
+ - type: rss
+ title: Deals
+ limit: 10
+ collapse-after: 3
+ feeds:
+ - url: https://rss.app/feeds/rb0smDdeyhIkusel.xml
+ title: Crypto Fundraising
diff --git a/config/headlines/main.yml b/config/headlines/main.yml
new file mode 100644
index 0000000..8d6fdd2
--- /dev/null
+++ b/config/headlines/main.yml
@@ -0,0 +1,39 @@
+# Headlines main — the front page, all cards (curated feeds only)
+- size: full
+ widgets:
+ - type: rss
+ title: Top Stories
+ style: horizontal-cards
+ limit: 12
+ feeds:
+ - url: https://www.techmeme.com/feed.xml
+ title: Techmeme
+ - url: https://www.coindesk.com/arc/outboundfeeds/rss
+ title: CoinDesk
+ - url: "https://rsshub.app/twitter/user/realdonaldtrump/readable=1&showRetweetTextInTitle=0&addLinkForPics=1&showQuotedInTitle=1&heightOfPics=150&includeRts=0&forceWebApi=true"
+ title: Donald Trump
+
+ - type: rss
+ title: World & Business
+ style: detailed-list
+ limit: 20
+ collapse-after: 8
+ feeds:
+ - url: https://rss.app/feeds/adBHvrEfXuYMNzbH.xml
+ title: Stripe Newsroom
+ - url: https://rsshub.app/twitter/user/geiger_capital
+ title: Geiger Capital
+ - url: https://rss.app/feeds/z2Pt6cHtQq9aKZDy.xml
+ title: "@Polymarket"
+ - url: https://rss.app/feeds/gZnrKzLOWG8nhajs.xml
+ title: "@SenLummis"
+
+ - type: rss
+ title: Crypto
+ style: horizontal-cards-2
+ limit: 12
+ feeds:
+ - url: https://rss.app/feeds/wiGtpLZuOjLgKlC4.xml
+ title: Watcher Guru
+ - url: https://rss.app/feeds/rb0smDdeyhIkusel.xml
+ title: Crypto Fundraising
diff --git a/config/news/right.yml b/config/headlines/right.yml
similarity index 55%
rename from config/news/right.yml
rename to config/headlines/right.yml
index a22512f..02fb217 100644
--- a/config/news/right.yml
+++ b/config/headlines/right.yml
@@ -1,14 +1,11 @@
-# Right rail — datebook, macro rates box, and the news wire
+# Headlines right rail — macro rates + crypto wire
- size: small
widgets:
- - type: calendar
- first-day-of-week: sunday
- - $include: ./widgets/ical-personal.yml
- - $include: ./widgets/rates.yml
+ - $include: ../shared/rates.yml
- type: rss
title: The Wire
limit: 20
- collapse-after: 5
+ collapse-after: 6
feeds:
- url: https://rss.app/feeds/wiGtpLZuOjLgKlC4.xml
title: Watcher Guru
diff --git a/config/markets/left.yml b/config/markets/left.yml
new file mode 100644
index 0000000..a708f80
--- /dev/null
+++ b/config/markets/left.yml
@@ -0,0 +1,47 @@
+# Markets left rail — tickers and macro rates
+- size: small
+ widgets:
+ - type: markets
+ title: Indices
+ markets:
+ - symbol: SPY
+ name: S&P 500
+ - symbol: QQQ
+ name: Nasdaq
+ - symbol: DX-Y.NYB
+ name: Dollar Index
+
+ - type: markets
+ title: Crypto
+ markets:
+ - symbol: BTC-USD
+ name: Bitcoin
+ - symbol: ETH-USD
+ name: Ethereum
+
+ - type: markets
+ title: Stocks
+ sort-by: absolute-change
+ markets:
+ - symbol: NVDA
+ name: NVIDIA
+ - symbol: AAPL
+ name: Apple
+ - symbol: MSFT
+ name: Microsoft
+ - symbol: GOOGL
+ name: Google
+ - symbol: AMD
+ name: AMD
+ - symbol: RDDT
+ name: Reddit
+ - symbol: AMZN
+ name: Amazon
+ - symbol: TSLA
+ name: Tesla
+ - symbol: INTC
+ name: Intel
+ - symbol: META
+ name: Meta
+
+ - $include: ../shared/rates.yml
diff --git a/config/markets/main.yml b/config/markets/main.yml
new file mode 100644
index 0000000..e0337fc
--- /dev/null
+++ b/config/markets/main.yml
@@ -0,0 +1,66 @@
+# Markets main — news cards, market communities, finance & startup videos
+- size: full
+ widgets:
+ - type: rss
+ title: Markets News
+ style: horizontal-cards
+ limit: 12
+ feeds:
+ - url: https://www.coindesk.com/arc/outboundfeeds/rss
+ title: CoinDesk
+ - url: https://rss.app/feeds/adBHvrEfXuYMNzbH.xml
+ title: Stripe Newsroom
+ - url: https://rss.app/feeds/jDOEbpJeIbZTukgR.xml
+ title: Web3 News
+
+ - type: rss
+ title: Crypto & Web3
+ style: detailed-list
+ limit: 25
+ collapse-after: 8
+ feeds:
+ - url: https://rss.app/feeds/wiGtpLZuOjLgKlC4.xml
+ title: Watcher Guru
+ - url: https://rss.app/feeds/FXaMUoJgdqhPAKaV.xml
+ title: "@AltcoinDaily"
+ - url: https://rss.app/feeds/pci0tnfa7vBgkJmm.xml
+ title: "@coinbureau"
+ - url: https://rss.app/feeds/BlE1VwSSmicg51Y7.xml
+ title: "@naruto11eth"
+ - url: https://rss.app/feeds/zpBYRBsqtN6cVBe7.xml
+ title: "@onechancefreedm"
+ - url: https://rss.app/feeds/DFPARMmEVkKY3q67.xml
+ title: "@Pirat_Nation"
+
+ - type: group
+ widgets:
+ - type: reddit
+ show-thumbnails: true
+ subreddit: wallstreetbets
+ - type: reddit
+ show-thumbnails: true
+ subreddit: technology
+
+ - type: videos
+ style: grid-cards
+ collapse-after-rows: 2
+ title: Finance
+ channels:
+ - UCAeAB8ABXGoGMbXuYPmiu2A # The Swedish Investor
+ - UCvSXMi2LebwJEM1s4bz5IBA # New Money
+ - UCV6KDgJskWaEckne5aPA0aQ # Graham Stephan
+ - UCAzhpt9DmG6PnHXjmJTvRGQ # Federal Reserve
+
+ - type: videos
+ style: grid-cards
+ collapse-after-rows: 2
+ title: Startups
+ channels:
+ - UCcefcZRL2oaA_uBNeo5UOWg # Y Combinator
+ - UCllx7jOjBL794FK67jtb5Og # Dalton + Michael
+ - UCxIJaCMEptJjxmmQgGFsnCg # How to Start a Startup
+ - UCQrZfl1FeCN9c71yjOzWVRw # Startup Archive
+ - UCtieZ1nS_tpjGEama6Kjxcg # Steve Jobs Archive
+ - UCm_WkN0wg49-eG4SymAQ_4g # Harvard Innovation Labs
+ - UCSGc7c1yKxo-Uhz5_oivrfg # The Startup Club by Slidebean
+ - UCGq-a57w-aPwyi3pW7XLiHw # The Diary Of A CEO
diff --git a/config/markets/right.yml b/config/markets/right.yml
new file mode 100644
index 0000000..d7b05ef
--- /dev/null
+++ b/config/markets/right.yml
@@ -0,0 +1,36 @@
+# Markets right rail — the financial press, chatter, and founder pods
+- size: small
+ widgets:
+ - type: rss
+ title: Press
+ limit: 30
+ collapse-after: 10
+ feeds:
+ - url: https://www.ft.com/technology?format=rss
+ title: Financial Times
+ - url: https://feeds.a.dj.com/rss/RSSMarketsMain.xml
+ title: Wall Street Journal
+ - url: https://rss.app/feeds/adBHvrEfXuYMNzbH.xml
+ title: Stripe Newsroom
+
+ - type: rss
+ title: Chatter
+ limit: 15
+ collapse-after: 5
+ feeds:
+ - url: https://rsshub.app/twitter/user/geiger_capital
+ title: Geiger Capital
+ - url: https://rsshub.app/twitter/user/autismcapital
+ title: "@autismcapital"
+
+ - type: rss
+ title: Founder Pods
+ limit: 12
+ collapse-after: 4
+ feeds:
+ - url: https://rsshub.app/youtube/user/%40AcquiredFM
+ title: Acquired
+ - url: https://rsshub.app/youtube/user/@20vc
+ title: 20VC
+ - url: https://rsshub.app/youtube/user/@founderspodcast1
+ title: Founders
diff --git a/config/news/main.yml b/config/news/main.yml
deleted file mode 100644
index 0aa9123..0000000
--- a/config/news/main.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-- size: full
- widgets:
- # Top Headlines
- - $include: ./widgets/headlines.yml
- # Community Discussions
- - $include: ./widgets/reddit.yml
- # Videos
- - $include: ./widgets/youtube.yml
-
-
diff --git a/config/news/widgets/headlines.yml b/config/news/widgets/headlines.yml
deleted file mode 100644
index 792b5c0..0000000
--- a/config/news/widgets/headlines.yml
+++ /dev/null
@@ -1,51 +0,0 @@
-# Front page — newspaper sections as clean tabs.
-# detailed-list gives the headline + blurb + section look of a printed page.
-- type: group
- widgets:
- - type: rss
- title: Front Page
- style: detailed-list
- limit: 15
- collapse-after: 6
- feeds:
- - url: https://www.techmeme.com/feed.xml
- title: Techmeme
- - url: https://www.ft.com/technology?format=rss
- title: Financial Times
- - url: https://feeds.a.dj.com/rss/RSSMarketsMain.xml
- title: Wall Street Journal
-
- - type: rss
- title: Tech
- style: detailed-list
- limit: 20
- collapse-after: 6
- feeds:
- - url: https://www.techmeme.com/feed.xml
- title: Techmeme
- - url: https://terminaltrove.com/new.xml
- title: Terminal Trove
- - url: https://rss.app/feeds/_tBKt0Q2vzII4baWl.xml
- title: Product Hunt
-
- - type: rss
- title: Markets
- style: detailed-list
- limit: 20
- collapse-after: 6
- feeds:
- - url: https://feeds.a.dj.com/rss/RSSMarketsMain.xml
- title: Wall Street Journal
- - url: https://www.ft.com/technology?format=rss
- title: Financial Times
-
- - type: rss
- title: Crypto
- style: detailed-list
- limit: 20
- collapse-after: 6
- feeds:
- - url: https://rss.app/feeds/wiGtpLZuOjLgKlC4.xml
- title: Watcher Guru
- - url: https://rss.app/feeds/rb0smDdeyhIkusel.xml
- title: Crypto Fundraising
diff --git a/config/news/widgets/reddit.yml b/config/news/widgets/reddit.yml
deleted file mode 100644
index a606e5d..0000000
--- a/config/news/widgets/reddit.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-# Community Discussions
-- type: split-column
- max-columns: 3
- widgets:
- - type: reddit
- show-thumbnails: true
- subreddit: commandline
- - type: reddit
- show-thumbnails: true
- subreddit: ethereum
- - type: reddit
- show-thumbnails: true
- subreddit: golang
- - type: reddit
- show-thumbnails: true
- subreddit: hyprland
- - type: reddit
- show-thumbnails: true
- subreddit: ipfs
- - type: reddit
- show-thumbnails: true
- subreddit: libp2p
- - type: reddit
- show-thumbnails: true
- subreddit: LinuxCirclejerk
- - type: reddit
- show-thumbnails: true
- subreddit: niri
- - type: reddit
- show-thumbnails: true
- subreddit: omarchy
- - type: reddit
- show-thumbnails: true
- subreddit: selfhosted
- - type: reddit
- show-thumbnails: true
- subreddit: termux
- - type: reddit
- show-thumbnails: true
- subreddit: unixporn
-
diff --git a/config/news/widgets/youtube.yml b/config/news/widgets/youtube.yml
deleted file mode 100644
index f9afb48..0000000
--- a/config/news/widgets/youtube.yml
+++ /dev/null
@@ -1,94 +0,0 @@
-- type: group
- widgets:
- # Podcasts & Commentary
- - type: videos
- style: grid-cards
- collapse-after-rows: 2
- title: Pop-Culture
- channels:
- - UCzQUP1qoWDoEbmsQxvdjxgQ # PowerfulJRE
- - UCJIfeSCssxSC_Dhc5s7woww # Lex Clips
- - UC5PstSsGrRwj2o6asQpC4Rg # Flagrant 2
- - UCKrpnfpTwncQ050VFXcVkuQ # Network State Podcast
- - UC7oPkqeHTwuOZ5CZ-R9f-6w # Triggernometry
- - UCIHdDJ0tjn_3j-FS7s_X1kQ # Valuetainment
-
- # Programming & Tech
- - type: videos
- style: grid-cards
- collapse-after-rows: 2
- title: Programming
- channels:
- - UCUyeluBRhGPCW4rPe_UvBZQ # ThePrimeTime
- - UCjSEJkpGbcZhvo0lr-44X_w # TechHut
- - UCXuqSBlHAE6Xw-yeJA0Tunw # Linus Tech Tips
- - UCs6KfncB4OV6Vug4o_bzijg # Techlore
- - UCTwxaBjziKfy6y_uWu30orAby # BugBytes
- - UCYeiozh-4QwuC1sjgCmB92w # DevOps Toolbox
- - UCsBjURrPoezykLs9EqgamOA # Angular Firebase
- - UC-mTIBh__DzAqW495JHXy5A # The Coding Gopher
- - UC2WHjPDvbE6O328n17ZGcfg # ForrestKnight
- - UCsUalyRg43M8D60mtHe6YcAD # Honeypot
- - UCgfe2ooZD3VJPB6aJAnuQng # cloud
- - UCdjsUXJ3QawK4O5L1kqqsew # IPFS
- - UC3Wn3dABlgESm8Bzn8Vamgg # Sideprojects
- - UCtMVHI3AJD4Qk4hcbZnI9ZQ # SomeOrdinaryGamers
- - UCNJ1Ymd5yFuUPtn21xtRbbw # AI Explained
- - UCutCcajxhR33k9UR-DdLsAQ # Systems Innovation
-
- # Startups & Business
- - type: videos
- style: grid-cards
- collapse-after-rows: 2
- title: Startups
- channels:
- - UCcefcZRL2oaA_uBNeo5UOWg # Y Combinator
- - UCllx7jOjBL794FK67jtb5Og # Dalton + Michael
- - UCxIJaCMEptJjxmmQgGFsnCg # How to Start a Startup
- - UCQrZfl1FeCN9c71yjOzWVRw # Startup Archive
- - UCtieZ1nS_tpjGEama6Kjxcg # Steve Jobs Archive
- - UCm_WkN0wg49-eG4SymAQ_4g # Harvard Innovation Labs
- - UCSGc7c1yKxo-Uhz5_oivrfg # The Startup Club by Slidebean
- - UCGq-a57w-aPwyi3pW7XLiHw # The Diary Of A CEO
-
- # AI & Futurism
- - type: videos
- style: grid-cards
- collapse-after-rows: 2
- title: Futurism
- channels:
- - UCawZsQWqfGSbCI5yjkdVkTA # Matthew Berman
- - UCZFipeZtQM5CKUjx6grh54g # Isaac Arthur
- - UCR9sFzaG9Ia_kXJhfxtFMB # melodysheep
- - UCSeuZvDGosq1zC6NqgqGo-Q # merlin
- # Finance
- - type: videos
- style: grid-cards
- collapse-after-rows: 2
- title: Finance
- channels:
- - UCAeAB8ABXGoGMbXuYPmiu2A # The Swedish Investor
- - UCvSXMi2LebwJEM1s4bz5IBA # New Money
- - UCV6KDgJskWaEckne5aPA0aQ # Graham Stephan
- - UCAzhpt9DmG6PnHXjmJTvRGQ # Federal Reserve
-
-
- # Science, History & Education
- - type: videos
- style: grid-cards
- collapse-after-rows: 2
- title: Education
- channels:
- - UCHnyfMqiRRG1u-2MsSQLbXA # Veritasium
- - UCsXVk37bltHxD1rDPwtNM8QL # Kurzgesagt – In a Nutshell
- - UCxqAWLTk1CmBvZFPzeZMd9A # Domain of Science
- - UCR2uRTQ53V_egXKFflMMaaw # Artem Kirsanov
- - UCeUJFQ0D9qs6aVNyUt9fkeQ # The Armchair Historian
- - UC5Dw9TFdbPJoTDMSiJdIQT # Whatifalthist
- - UC0NCSdGglnmdWg-qHALhu1w # History102
- - UCpCSAcbqs-sjEVfk_hMfY9w # MajorPrep
- - UCmdugCMpC7BawYGwkRs5drQ # PhiloNautica
- - UC4gHARRmw40kcLZgINlTK_g # Religion Camp
- - UCPPrhcXtGR2aMoxrPJRKPLg # Para Bellum
- - UCQUnqaW8Q33siyLYhisN7HQ # Antidote
- - UCXzw-OdotBUcNA9yhuYQBw # Awesome
diff --git a/config/news/left.yml b/config/schedule/left.yml
similarity index 64%
rename from config/news/left.yml
rename to config/schedule/left.yml
index 6b5a262..bcbdbbb 100644
--- a/config/news/left.yml
+++ b/config/schedule/left.yml
@@ -1,11 +1,12 @@
-# Left rail — weather corner, work agenda, world clocks
+# Schedule left rail — the day at a glance
- size: small
widgets:
+ - type: calendar
+ first-day-of-week: sunday
- type: weather
location: Ashburn, Virginia, United States
- units: imperial # alternatively "metric"
- hour-format: 12h # alternatively "24h"
- - $include: ./widgets/ical-work.yml
+ units: imperial
+ hour-format: 12h
- type: clock
hour-format: 12h
timezones:
diff --git a/config/schedule/main.yml b/config/schedule/main.yml
new file mode 100644
index 0000000..4b37204
--- /dev/null
+++ b/config/schedule/main.yml
@@ -0,0 +1,8 @@
+# Schedule main — agenda side by side, then active project activity
+- size: full
+ widgets:
+ - type: split-column
+ widgets:
+ - $include: ./widgets/ical-work.yml
+ - $include: ./widgets/ical-personal.yml
+ - $include: ./widgets/graph.yml
diff --git a/config/schedule/right.yml b/config/schedule/right.yml
new file mode 100644
index 0000000..d60fc6e
--- /dev/null
+++ b/config/schedule/right.yml
@@ -0,0 +1,9 @@
+# Schedule right rail — running task lists
+- size: small
+ widgets:
+ - type: to-do
+ title: Today
+ id: today
+ - type: to-do
+ title: Projects
+ id: projects
diff --git a/config/schedule/widgets/graph.yml b/config/schedule/widgets/graph.yml
new file mode 100644
index 0000000..83ab8f0
--- /dev/null
+++ b/config/schedule/widgets/graph.yml
@@ -0,0 +1,19 @@
+# GitHub contribution graph (served by the glance-github-graph compose service).
+# ponytail: must use the service name, not localhost, from inside the container.
+- type: extension
+ title: Active Projects
+ url: http://glance-github-graph:8080/graph/prdlk
+ allow-potentially-dangerous-html: true
+ parameters:
+ background-color: "#1d2025" # cell background
+ primary-color: "#f3afaf" # cell foreground
+ svg-height: 150 # height for graph svg
+ show-months: true # show months on the graph
+ show-weekdays: true # show weekdays on the graph
+ font-size: 9 # size of weekdays & months text on graph
+
+ # if true, it will transition the hue from background
+ # to primary color per the number of commits.
+ # otherwise it will just use the background hue for
+ # 0 commits and the foreground hue for all others
+ transition-hue: false
diff --git a/config/schedule/widgets/ical-personal.yml b/config/schedule/widgets/ical-personal.yml
new file mode 100644
index 0000000..4d03496
--- /dev/null
+++ b/config/schedule/widgets/ical-personal.yml
@@ -0,0 +1,76 @@
+- type: custom-api
+ title: Personal Events
+ cache: 15m
+ url: http://glances-ical-api:8076/events
+ parameters:
+ url: https://calendar.google.com/calendar/ical/prnk28%40gmail.com/public/basic.ics
+ limit: 5
+ template: |
+ {{ $events := .JSON.Array "events" }}
+ {{ $count := len $events }}
+ {{ $limit := 3 }}
+
+ {{ if eq $count 0 }}
+
+ No entries found.
+
+ {{ end }}
+
+
+
+ {{ range $i, $e := $events }}
+ {{ $ongoing := $e.Bool "ongoing" }}
+ {{ if $ongoing }}
+ {{ $start := $e.String "start" | parseTime "rfc3339" }}
+ {{ $end := $e.String "end" | parseTime "rfc3339" }}
+ {{ $name := $e.String "name" }}
+ {{ $url := $e.String "url" }}
+ -
+
+
+
+ {{ if $url }}
+
{{ $name }}
+ {{ else }}
+
{{ $name }}
+ {{ end }}
+
{{ $start | formatTime "Mon, 02 Jan 2006" }}
+
+
+
+ ends
+
+
+
+ {{ end }}
+ {{ end }}
+
+
+
+ {{ $shown := 0 }}
+
+ {{ range $i, $e := $events }}
+ {{ $ongoing := $e.Bool "ongoing" }}
+ {{ if not $ongoing }}
+ {{ $start := $e.String "start" | parseTime "rfc3339" }}
+ {{ $name := $e.String "name" }}
+ {{ $url := $e.String "url" }}
+ -
+
+
+
+ {{ if $url }}
+
{{ $name }}
+ {{ else }}
+
{{ $name }}
+ {{ end }}
+
{{ $start | formatTime "Mon, 02 Jan 2006" }}
+
+
+
+
+
+ {{ $shown = add $shown 1 }}
+ {{ end }}
+ {{ end }}
+
diff --git a/config/schedule/widgets/ical-work.yml b/config/schedule/widgets/ical-work.yml
new file mode 100644
index 0000000..e3c3077
--- /dev/null
+++ b/config/schedule/widgets/ical-work.yml
@@ -0,0 +1,76 @@
+- type: custom-api
+ title: Work Schedule
+ cache: 15m
+ url: http://glances-ical-api:8076/events
+ parameters:
+ url: https://calendar.google.com/calendar/ical/prad%40sonr.io/public/basic.ics
+ limit: 5
+ template: |
+ {{ $events := .JSON.Array "events" }}
+ {{ $count := len $events }}
+ {{ $limit := 3 }}
+
+ {{ if eq $count 0 }}
+
+ No entries found.
+
+ {{ end }}
+
+
+
+ {{ range $i, $e := $events }}
+ {{ $ongoing := $e.Bool "ongoing" }}
+ {{ if $ongoing }}
+ {{ $start := $e.String "start" | parseTime "rfc3339" }}
+ {{ $end := $e.String "end" | parseTime "rfc3339" }}
+ {{ $name := $e.String "name" }}
+ {{ $url := $e.String "url" }}
+ -
+
+
+
+ {{ if $url }}
+
{{ $name }}
+ {{ else }}
+
{{ $name }}
+ {{ end }}
+
{{ $start | formatTime "Mon, 02 Jan 2006" }}
+
+
+
+ ends
+
+
+
+ {{ end }}
+ {{ end }}
+
+
+
+ {{ $shown := 0 }}
+
+ {{ range $i, $e := $events }}
+ {{ $ongoing := $e.Bool "ongoing" }}
+ {{ if not $ongoing }}
+ {{ $start := $e.String "start" | parseTime "rfc3339" }}
+ {{ $name := $e.String "name" }}
+ {{ $url := $e.String "url" }}
+ -
+
+
+
+ {{ if $url }}
+
{{ $name }}
+ {{ else }}
+
{{ $name }}
+ {{ end }}
+
{{ $start | formatTime "Mon, 02 Jan 2006" }}
+
+
+
+
+
+ {{ $shown = add $shown 1 }}
+ {{ end }}
+ {{ end }}
+
diff --git a/config/shared/rates.yml b/config/shared/rates.yml
new file mode 100644
index 0000000..7aa5a88
--- /dev/null
+++ b/config/shared/rates.yml
@@ -0,0 +1,62 @@
+# Macro rates box (St. Louis Fed / FRED).
+# ponytail: an $include'd file must be a bare YAML sequence, so no shared anchor
+# here — the three widgets repeat a static template. Don't add a `define:` key.
+- type: custom-api
+ title: Secured Financing Rate
+ cache: 12h
+ url: https://api.stlouisfed.org/fred/series/observations?series_id=SOFR&api_key=${FRED_API_KEY}&file_type=json&sort_order=desc&limit=2
+ template: |
+ {{ $latest := .JSON.Float "observations.0.value" }}
+ {{ $previous := .JSON.Float "observations.1.value" }}
+ {{ $lastObserve := .JSON.String "observations.0.date" }}
+ {{ $change := sub $latest $previous }}
+
+
+
+
{{ printf "%+.2f" $change }}%
+
+
+
+
+- type: custom-api
+ title: Federal Funds Rate
+ cache: 12h
+ url: https://api.stlouisfed.org/fred/series/observations?series_id=FEDFUNDS&api_key=${FRED_API_KEY}&file_type=json&sort_order=desc&limit=2
+ template: |
+ {{ $latest := .JSON.Float "observations.0.value" }}
+ {{ $previous := .JSON.Float "observations.1.value" }}
+ {{ $lastObserve := .JSON.String "observations.0.date" }}
+ {{ $change := sub $latest $previous }}
+
+
+
+
{{ printf "%+.2f" $change }}%
+
+
+
+
+- type: custom-api
+ title: Real GDP
+ cache: 12h
+ url: https://api.stlouisfed.org/fred/series/observations?series_id=A191RL1Q225SBEA&api_key=${FRED_API_KEY}&file_type=json&sort_order=desc&limit=2
+ template: |
+ {{ $latest := .JSON.Float "observations.0.value" }}
+ {{ $previous := .JSON.Float "observations.1.value" }}
+ {{ $lastObserve := .JSON.String "observations.0.date" }}
+ {{ $change := sub $latest $previous }}
+
+
+
+
{{ printf "%+.2f" $change }}%
+
+
+
diff --git a/config/technology/left.yml b/config/technology/left.yml
new file mode 100644
index 0000000..5566342
--- /dev/null
+++ b/config/technology/left.yml
@@ -0,0 +1,30 @@
+# Technology left rail — tools & launches
+- size: small
+ widgets:
+ - type: rss
+ title: Terminal Trove
+ limit: 15
+ collapse-after: 6
+ feeds:
+ - url: https://terminaltrove.com/new.xml
+ title: Terminal Trove
+ - type: rss
+ title: Product Hunt
+ limit: 15
+ collapse-after: 6
+ feeds:
+ - url: https://rss.app/feeds/_tBKt0Q2vzII4baWl.xml
+ title: Product Hunt
+ - type: rss
+ title: Dev Blogs
+ limit: 15
+ collapse-after: 6
+ feeds:
+ - url: https://github.blog/feed/
+ title: GitHub Blog
+ - url: https://rsshub.app/anthropic/research
+ title: Anthropic Research
+ - url: https://openai.com/news/rss.xml
+ title: OpenAI News
+ - url: https://rss.app/feeds/Q5ElsNVbwLHZhUPm.xml
+ title: Cloudflare Blog
diff --git a/config/technology/main.yml b/config/technology/main.yml
new file mode 100644
index 0000000..ef52112
--- /dev/null
+++ b/config/technology/main.yml
@@ -0,0 +1,80 @@
+# Technology main — Techmeme cards, community tabs, programming videos
+- size: full
+ widgets:
+ - type: rss
+ title: Techmeme
+ style: horizontal-cards
+ limit: 12
+ feeds:
+ - url: https://www.techmeme.com/feed.xml
+ title: Techmeme
+ hide-description: true
+
+ - type: rss
+ title: Ship Log
+ style: detailed-list
+ limit: 20
+ collapse-after: 6
+ feeds:
+ - url: https://hnrss.org/show
+ title: Show HN
+ - url: https://rsshub.app/github/trending/daily/any
+ title: GitHub Trending
+ - url: https://rss.app/feeds/y4Wby7sxFhCINQvr.xml
+ title: Starred Repos
+ - url: https://rss.app/feeds/Nw0aq77nQjy57K2X.xml
+ title: "@thdxr"
+
+ - type: group
+ define: &sub
+ type: reddit
+ show-thumbnails: true
+ collapse-after: 8
+ widgets:
+ - subreddit: commandline
+ <<: *sub
+ - subreddit: golang
+ <<: *sub
+ - subreddit: selfhosted
+ <<: *sub
+ - subreddit: tui
+ <<: *sub
+ - subreddit: hyprland
+ <<: *sub
+ - subreddit: niri
+ <<: *sub
+ - subreddit: omarchy
+ <<: *sub
+ - subreddit: unixporn
+ <<: *sub
+ - subreddit: termux
+ <<: *sub
+ - subreddit: LinuxCirclejerk
+ <<: *sub
+ - subreddit: ethereum
+ <<: *sub
+ - subreddit: ipfs
+ <<: *sub
+ - subreddit: libp2p
+ <<: *sub
+
+ - type: videos
+ style: grid-cards
+ collapse-after-rows: 2
+ title: Programming
+ channels:
+ - UCUyeluBRhGPCW4rPe_UvBZQ # ThePrimeTime
+ - UCjSEJkpGbcZhvo0lr-44X_w # TechHut
+ - UCXuqSBlHAE6Xw-yeJA0Tunw # Linus Tech Tips
+ - UCs6KfncB4OV6Vug4o_bzijg # Techlore
+ - UCTwxaBjziKfy6y_uWu30orAby # BugBytes
+ - UCYeiozh-4QwuC1sjgCmB92w # DevOps Toolbox
+ - UCsBjURrPoezykLs9EqgamOA # Angular Firebase
+ - UC-mTIBh__DzAqW495JHXy5A # The Coding Gopher
+ - UC2WHjPDvbE6O328n17ZGcfg # ForrestKnight
+ - UCsUalyRg43M8D60mtHe6YcAD # Honeypot
+ - UCgfe2ooZD3VJPB6aJAnuQng # cloud
+ - UCdjsUXJ3QawK4O5L1kqqsew # IPFS
+ - UC3Wn3dABlgESm8Bzn8Vamgg # Sideprojects
+ - UCNJ1Ymd5yFuUPtn21xtRbbw # AI Explained
+ - UCutCcajxhR33k9UR-DdLsAQ # Systems Innovation
diff --git a/config/technology/right.yml b/config/technology/right.yml
new file mode 100644
index 0000000..6f551d4
--- /dev/null
+++ b/config/technology/right.yml
@@ -0,0 +1,16 @@
+# Technology right rail — self-hosting board + futurism deep dives
+- size: small
+ widgets:
+ - type: reddit
+ subreddit: selfhosted
+ limit: 7
+ style: vertical-cards
+ - type: videos
+ style: vertical-list
+ collapse-after: 4
+ title: Futurism
+ channels:
+ - UCawZsQWqfGSbCI5yjkdVkTA # Matthew Berman
+ - UCZFipeZtQM5CKUjx6grh54g # Isaac Arthur
+ - UCR9sFzaG9Ia_kXJhfxtFMB # melodysheep
+ - UCSeuZvDGosq1zC6NqgqGo-Q # merlin