Theme Controller is an Obsidian community plugin that can switch themes on a schedule and edit theme CSS properties with snapshot-based rollback.
- Switch themes automatically based on time ranges you define.
- Refresh and detect installed community themes from your vault.
- Apply the matching rule immediately with a command or settings action.
- Edit theme CSS custom properties from inside Obsidian.
- Create snapshots before changes, restore older versions, or roll back to a chosen base snapshot.
- Pin frequently used properties with sticky shortcuts while editing.
Apply theme for current timeRefresh installed theme list
- Open Settings -> Community plugins -> Theme Controller.
- Add one or more time rules.
- Pick the theme for each time range.
- Use Apply current rule now to test the result.
- Open the built-in theme editor to adjust CSS variables and save overrides.
- Create snapshots before larger edits so you can restore or roll back later.
Start time is inclusive and end time is exclusive. Overlapping rules are detected and shown as warnings in settings.
The theme editor scans editable theme files in .obsidian/themes, loads CSS custom properties, and lets you:
- search properties by name or value
- edit text and color values
- save overrides back to the selected theme
- create labeled snapshots
- set a base snapshot
- restore a snapshot or roll back to the base version
Copy these files into your vault:
main.jsmanifest.jsonstyles.css
Target folder:
<Vault>/.obsidian/plugins/theme-switcher/
Then reload Obsidian and enable Theme Controller in Settings -> Community plugins.
npm install
npm run devProduction build:
npm run buildLint:
npm run lint- Plugin ID:
theme-switcher - Name:
Theme Controller - Version:
1.0.1 - Minimum Obsidian version:
0.15.0 - Desktop only:
false
- The plugin is designed for local use inside your vault.
- Theme editing works on installed theme files that Obsidian can access locally.
- If no editable theme files are found, install at least one community theme first.