(Showcase) Introducing TWO New Plugins for Context Switching: `Theme by Folder` and `Context Workspaces`

Hi everyone,

Today, I’m excited to introduce two new plugins I’ve built, both designed to solve one common problem: making your Obsidian workspace intelligently adapt to your current task.

1. The Simple Solution: obsidian-theme-by-folder

First, for those who want a simple, focused solution, I created obsidian-theme-by-folder.

Its job is simple but powerful: it automatically switches your theme (and light/dark mode) just by navigating to a specific folder. This is perfect if you just want a clear visual separation between your “Work” projects and your “Personal” notes without any complex setup.

2. The Power Solution: Context Workspaces

While building theme-by-folder, I realized we could take this concept much further. What if, instead of just switching the theme based on a folder, we could switch the entire environment—all tabs, panes, AND the theme—all tied to an abstract “Space”?

This led me to build the second plugin: Context Workspaces.

This is a complete workspace toolkit built on Obsidian’s powerful core Workspaces API that fully embraces this idea. It lets you:

  • Build “Spaces”: Create dedicated zones for each of your projects (like “Work,” “Study,” “Writing”), managed from a clean sidebar UI with drag-and-drop.
  • Switch Instantly: Cycle through all your spaces with hotkeys for a fluid, fast workflow.
  • Auto-Save (Live Mode): Automatically saves your tabs and layout when you switch away, so you always pick up right where you left off.
  • Reset (Snapshot Mode): Use it for templates that reset to a perfectly clean state every time you load them.
  • And of course… Per-Space Themes: The original concept, now fully integrated. Assign any theme and light/dark mode to each individual Space. When you switch your context, everything (your tabs, panes, and theme) changes instantly.

How to Choose & Call for Feedback

So today, I’m offering two solutions for you.

One very important note: Please choose only one, as these two plugins should NOT be used at the same time. Context Workspaces already includes all the theme-switching functionality of theme-by-folder (but tied to Spaces instead of folders). Running both simultaneously will cause them to conflict over theme control.

  • If your needs are simple and you just want folder-based theme switching, please use theme-by-folder.
  • If you want a total environment-switching solution that manages your entire workflow (including themes), please use Context Workspaces.

Both plugins are brand new, but especially Context Workspaces is in active development. This means you might encounter some bugs, but it also means many more features are planned!

I would be incredibly grateful for your feedback. If you find any issues or have ideas for new features (especially for Context Workspaces), please don’t hesitate to open an issue on GitHub. Your contributions are what will help shape and stabilize these tools.


How to Install

1. Theme by Folder (Simple Solution)

2. Context Workspaces (Power Solution)

  • Availability: This plugin is new and in beta. The easiest way to install and get updates is with BRAT.
  • How (via BRAT):
    1. Install BRAT (Beta Reviewers Auto-update Tester) from the Community Plugin browser.
    2. Go to BRAT’s settings and add the beta plugin: jinmugo/obsidian-context-workspaces
  • GitHub (for Feedback & Issues): https://github.com/JinmuGo/obsidian-context-workspace
2 Likes

You know, if Context Workspaces could have a folder or group of notes selected or ‘pinned’ to a context workspace, some of the plugins that use AI Providers could allow you to tap in arbitrary ad-hoc context for chat interfaces. I use fabric-ai context/sessions and Telos a lot, so that’s what immediately came to mind when seeing this thread.

That’s an excellent idea. So, the suggestion is to pin specific notes or folders to the workspace and let AI plugins reference that as a dynamic context. That’s a very interesting approach from a technical standpoint. I will seriously look into the feasibility of implementing this. Thank you for the suggestion!

I am very intrigued by the idea, can’t wait to play around with it!