pi-system-theme
v0.4.0
Published
Sync Pi theme with macOS light/dark appearance
Maintainers
Readme
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 AppsUseLightThemeIf 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:darklightTheme:lightpollMs: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:
- dark theme name
- light theme name
- 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
gsettingskeys (color-scheme, withgtk-themefallback). - Windows support reads
AppsUseLightThemefromHKCU\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize. - In headless modes without theme support (for example
-pprint mode), the extension stays idle. - If your current theme is custom and
darkTheme/lightThemeare still default (dark/light), the extension does nothing to avoid overriding your setup. Configure/system-themeto 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-themeFrom git:
pi install git:github.com/ferologics/pi-system-themeOr from local source while developing:
pi -e /path/to/pi-system-theme/index.ts