opensourceprojects.dev

A broadsheet for software that doesn't ask for your email

FlashSpace replaces macOS Spaces with instant, hotkey-driven virtual workspaces
GitHub RepoImpressions2

Project Description

View on GitHub

Stop Waiting for macOS Animations: FlashSpace Gives You Instant Virtual Workspaces

You know that half-second delay when you swipe between macOS Spaces? The one that feels like an eternity when you're deep in flow and just need to get to your terminal? If you've ever found yourself mashing hotkeys and waiting for animations to catch up, you've probably wished for something faster. That's exactly what FlashSpace aims to fix—it's a virtual workspace manager for macOS that replaces native Spaces with instant, hotkey-driven switching.

FlashSpace is an open-source macOS utility that lets you define your own workspaces, assign apps to them, and switch between them without any of the native animation lag. It's built for people who live in their keyboards and can't stand waiting on their OS.

What It Does

FlashSpace works by letting you create virtual workspaces and assign specific apps to each one. Every workspace is tied to a specific display, and when you switch to a workspace, FlashSpace immediately brings up the assigned apps while hiding everything else on that display. The key detail here is that workspaces can be switched independently on each display—so if you're running a multi-monitor setup, you're not locked into switching everything at once.

The setup process is straightforward: you move all your apps to a single macOS space per display, create a workspace, assign apps to it, pick a display, set a hotkey, and you're done. When you press that hotkey, your assigned apps appear instantly. No swipe animations, no waiting.

Under the hood, it's a native macOS app written for macOS 14.0 and later. It requires "Displays have separate Spaces" to be enabled in your system settings, which makes sense given how it manages per-display workspaces.

Why It's Cool

What makes FlashSpace interesting isn't just the core switching speed—it's the depth of features packed around that central idea. Here's what stands out:

Space Control and Workspace Switcher. You get a preview of all your workspaces and a quick switcher using Option + Tab. It's like having a visual overview and a keyboard shortcut in one tool, which covers both the "I need to see everything" and "I just need to get there now" workflows.

Focus detection and management. FlashSpace can activate a workspace when you focus an app, and it includes a focus manager for switching between apps using just your keyboard. Combined with the cursor manager that auto-centers your cursor in the active window, it's a complete keyboard-first workflow.

Flexible configuration. You're not forced into a single way of doing things. The app supports configuration through both a GUI and config files, and it accepts JSON, YAML, and TOML formats. There's also a CLI for interacting with the app programmatically—a nice touch for people who like to script their setup.

Dynamic display assignment. Beyond just assigning a workspace to a fixed display, there's a dynamic mode that adapts based on your current setup. That's useful if you frequently plug and unplug external monitors.

Integration-friendly. It works with SketchyBar, has a Raycast extension (created by a community contributor), and supports Picture-in-Picture windows as floating elements. The floating apps feature lets you keep certain apps visible across all workspaces, which is great for things like messaging apps or music players.

Profiles and gestures. You can switch between different configurations quickly, and customize trackpad swipe gestures to trigger workspace actions. The menu bar icon is configurable per workspace, showing either an icon or text.

The project values are refreshingly clear: performance, simplicity, reliability, and staying out of your way. That "invisible" principle really shows in the design—the goal is for the tool to feel like your workspace is just responding instantly, not like you're using a separate app.

How to Try It

Getting started is simple. First, make sure you're on macOS 14.0 or later and that you've enabled "Displays have separate Spaces" in your Desktop & Dock settings.

If you use Homebrew, installation is a single command:

brew install flashspace

If you prefer downloading a binary directly, check the releases page on GitHub. There's also an option to build from source if you'd rather compile it yourself.

Once installed, the workflow is:

  1. Move all your apps to a single macOS space per display.
  2. Create a workspace.
  3. Assign apps to it.
  4. Assign a display (or use dynamic mode).
  5. Set a hotkey for activation.
  6. Repeat for other workspaces.
  7. Switch between them with your hotkeys.

If you want the same app in multiple workspaces, you can use the floating apps feature or add the app to multiple workspaces from the main app window. You can find the full instructions and source code at the GitHub repository.

Final Thoughts

FlashSpace is a well-crafted solution for a specific annoyance that macOS power users have dealt with for years. It's not trying to be a full window manager—it's focused on doing one thing (fast workspace switching) and doing it thoroughly. The feature list is substantial, but everything ties back to that core goal of speed and keyboard-driven control.

This is best for developers and power users who live in a few apps, use multiple monitors, and value keyboard shortcuts over mouse gestures. If you've ever felt like macOS Spaces animations were slowing you down, this is worth a try. The Homebrew installation makes it painless to test, and the config file support means you can dial it in exactly how you like it.

Follow @githubprojects for more developer tools and open source projects.

Back to Projects
Project ID: a5b4253d-ff56-4dbd-901f-d224015ee5fdLast updated: August 26, 2026 at 02:48 AM