Skip to content

ferologics/pi-system-theme

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pi-system-theme

A Pi extension that syncs Pi's theme with system appearance (dark/light mode) on macOS, Linux, and Windows.

Behavior

  • Dark appearance -> darkTheme
  • Light appearance -> lightTheme

Detection backends:

# macOS
/usr/bin/defaults read -g AppleInterfaceStyle

# Linux (GNOME-compatible)
gsettings get org.gnome.desktop.interface color-scheme
# fallback: gsettings get org.gnome.desktop.interface gtk-theme

# Windows
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize" /v AppsUseLightTheme

If detection fails or returns an unknown value, the extension keeps the current Pi theme unchanged.

Defaults (works out of the box)

No config is required.

  • darkTheme: dark
  • lightTheme: light
  • pollMs: 2000

Configuration file (global only)

Path:

  • ~/.pi/agent/system-theme.json

The extension stores only overrides in this file. If all values match defaults, the file is removed.

Example:

{
    "darkTheme": "rose-pine",
    "lightTheme": "rose-pine-dawn"
}

Interactive command

Use /system-theme to open a small settings menu and edit:

  1. dark theme name
  2. light theme name
  3. poll interval (ms)

Choose Save and apply to persist overrides and apply immediately.

Notes

  • This extension acts on macOS, Linux, and Windows (darwin, linux, win32).
  • Linux support currently depends on GNOME-compatible gsettings keys (color-scheme, with gtk-theme fallback).
  • Windows support reads AppsUseLightTheme from HKCU\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize.
  • In headless modes without theme support (for example -p print mode), the extension stays idle.
  • If your current theme is custom and darkTheme/lightTheme are still default (dark/light), the extension does nothing to avoid overriding your setup. Configure /system-theme to opt into syncing.
  • If a configured theme name does not exist, Pi keeps the current theme and logs a warning.

Install

From npm (standalone package):

pi install npm:pi-system-theme

From git:

pi install git:github.com/ferologics/pi-system-theme

Or from local source while developing:

pi -e /path/to/pi-system-theme/index.ts

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors