17 ms·
Show HN: FlashSpace – fast, open-source, macOS Spaces replacement
I've recently launched a new open-source project aimed at enhancing the experience of switching between Spaces/workspaces on macOS. The built-in Spaces feature is often slow and unfriendly. This project is designed to boost your productivity :). Enjoy!
- locusofself 2y agoIs there a similar app for Windows? I work at Microsoft and while I'm allowed to use other OSes it's not really practical.
- deleted 2y ago[deleted]
- freedomben 2y ago[flagged]
- conception 2y agoThis is an interesting question and I think for me open-source on the Mac usually means it’s hard to manage? It might use lots of CLI and config files and libraries and be more Lennox focused. This is fine of course, but I wouldn’t say it’s how you advertise to a Mac user. For me the best Mac apps are made by small focused teams with a passion for the product that they are making with an eye towards customer usability.
- moondev 2y agoFree vs paid subscription
- wojciech-kulik 2y agoYes, it's a perfect thing to include in the title because using just 2 words I can say: - It's free to use - You can request new features, and there is a good chance that they'll be implemented - There is no tracking = full privacy - You can add features on your own if you know the platform - If you learn Swift programming, you can check out the project and learn something from it - If you are willing to become a contributor, you can join
- deleted 2y ago[deleted]
- toddmorey 2y agoI’ve tried a lot of tiling window managers & Spaces replacements and it’s hard to take over that central piece of the OS reliably. There’s always at least one of my critical apps that freaks out. What I want more than anything is just a terminal flag to turn off the dumb animations on the built-in Spaces.
- wojciech-kulik 2y agoYep, tiling window managers usually cause a lot of glitches and you spend more time on fighting with glitches than gaining time using the app. That's why I built FlashSpace with no tiling and annoying taking control over your computer :).
- wojciech-kulik 2y agoAnd the terminal flag is not going to happen. Apple doesn't care ;).
- CharlesW 2y ago> What I want more than anything is just a terminal flag to turn off the dumb animations on the built-in Spaces. You can turn on "Reduce Motion" to change it from a slide to a fast cross-fade.
- anon7000 2y agoI ultimately stopped because the trade off is not being able to see web animations (or most any animations in the OS) most of the time, which isn’t ideal as a web developer.
- lelandfe 2y agoLooks like there's a Chrome command line flag to override it: `--force-prefers-no-reduced-motion`
- nicce 2y ago> You can turn on "Reduce Motion" to change it from a slide to a fast cross-fade. That is just an illusion. Time is the same. Instead, you need to add abstraction on top of CMD + Left/Right keybinds to get fast movement between spaces, for example.
- codecraze 2y agoReally nice. I will give it a try :)
- jameschensmith 2y agoThis looks great! I currently use Aerospace, but your usage of macOS spaces has me curious. 1. Does FlashSpace require disabling SIP? 2. Aerospace documents the limitations of macOS spaces [1]. How does FlashSpace deal with these limitations? 3. Do you have any plans to support file-based configuration? I like syncing my dotfiles between multiple computers. [1]: https://nikitabobko.github.io/AeroSpace/guide#emulation-of-virtual-workspaces https://nikitabobko.github.io/AeroSpace/guide#emulation-of-v...
- wojciech-kulik 2y ago1. No 2. Aerospace has significant performance issues with workspaces. The problem has persisted for over a year, and there are no plans to fix it. That's why I started building FlashSpace - to make it blazingly fast. Which limitation is especially interesting to you? FlashSpace addresses the animation lag, the number of workspaces is unlimited, and you can move apps between workspaces with hot keys. 3. FlashSpace already supports JSON config files which are stored by default in ~/.config/flashspace, so you can easily sync them.
- jameschensmith 2y agoThanks for your response! Regarding question 2, I think my initial understanding of FlashSpace was that it was using the macOS spaces API, which has been known to have its limitations (as documented in the Aerospace docs I shared). Now that I've played around with FlashSpace, I believe it's not using that API. So I think I'm clear on the questions. I really like how FlashSpace plays well with macOS native tabs. One follow-up question I had is how you manage your windows? FlashSpace not managing windows on one hand is really nice for floating windows (e.g., mpv), but in your examples you have all the windows already set up with some gaps around each. Is all that set-up done by dragging windows around with your mouse? I use an accordion layout heavily, and I don't see how I can make it work with FlashSpace.
- wojciech-kulik 2y agoIn the video, I think they were manually dragged. But I also use Rectangle Pro for moving windows around with simple shortcuts (many apps have this feature, another one is Raycast). I don't use tiling managers though. Most of the time they cause too many problems and glitches.
- wrs 2y agoWill this, or anything else, make Safari restore its windows to the spaces they were in when it quit? Chrome does better but only succeeds part of the time. This is so annoying that I’ll consider switching to any browser that does it!
- CharlesW 2y agoHey, are you familiar with Spaces' "Assign apps to spaces" feature? It doesn't have an "assign to Space where last used", but it does let you assign an app to any Space (or every Space). https://support.apple.com/guide/mac-help/work-in-multiple-spaces-mh14112/mac https://support.apple.com/guide/mac-help/work-in-multiple-sp...
- wrs 2y agoI don’t want to assign Safari to a space, I want each Safari window to stay where I put it. It makes no sense for Spaces to assume every window of an app is being used for the same task, especially a browser app.
- deleted 2y ago[deleted]
- shaarmar 2y agoGood timing, I was exploring my options again in this space and settled on aerospace. Will give this a try
- semi-extrinsic 2y agoAny insight on the pros/cons versus yabai?
- Secretmapper 2y agoNot needing to disable SIP is a big one.
- cyberax 2y agoSuper nice! I wish you could add a grid view of the workspaces. I miss TotalSpaces...
- CharlesW 2y agoI wonder if SpaceCapsule (https://spacecapsule.app/ https://spacecapsule.app/) could work with FlashSpace?
- wojciech-kulik 2y agoProbably not, because as far as I can see, it relies on macOS spaces. FlashSpace doesn't use native spaces.
- CharlesW 2y agoSorry, yes, "could" is doing wayyy too much lifting there. I was thinking you could potentially work together on an integration (and/or leverage the existing integration you mention in the README) that would provide the experience @cyberax is looking for. In any case, I'm very excited to try FlashSpace after reluctantly giving up on Spaces! And thank you for linking to SketchyBar as well — it's always great to learn about new, well-regarded power-user utilities.
- user3939382 2y agoWhat’s wrong with TotalSpaces?
- chrisvalleybay 2y agoDoesn't work properly with newer versions of MacOS and requires you to disable SIP.
- cyberax 2y agoThe author disappeared, and the last available version barely works on the modern macOS.
- 2y ago
- rane 2y agoIs this compatible with Amethyst? I want tiling windows but without the delay in switching spaces.
- wojciech-kulik 2y agoJust try it out :D. There is almost no setup required. Basically, the app only shows and hides apps, so it depends on how well Amethyst handles it. FlashSpace is not interruptive - it doesn't actively try restoring your workspace, so there shouldn't be any "fight" between a tiling manager and FlashSpace.
- matanrubin 2y agoThe biggest pain point with macOS spaces is how it handles multiple windows of the same app. It drives me crazy. What is FlashSpace’s approach for solving this?
- wojciech-kulik 2y agoCould you explain what you mean? The app only allows assigning the whole app to a specific workspace. So you can't have one window of the same app in workspace A and another in workspace B. It's done this way because it's the most efficient way so far, but of course I understand that sometimes people may want to have multiple windows in different workspaces. I'm going to investigate a possibility to manage apps on a window-level basis. But macOS is the limitation here, if it's slow then my hands are tied.
- atombender 2y agoNot OP, but the way I use macOS Spaces is to differentiate between work and private. I use Chrome for both, so I have some Chrome windows in my work space, and some in my private space. I do similar things for other apps like iTerm. It's an important feature. I once tried having two different browsers for work/private, but it was a chore to manage which browser I opened links in, so I gave up. My biggest problem with Spaces is that it never remembers which space anything is in. When I reboot, everything is in the wrong space and has to be moved around.
- SebastianKra 2y agoRight click the app icon > options > Assign To > This Desktop Also noteworthy: assign to all desktops. I use this to keep my browser and messaging apps in all spaces.
- maroonblazer 2y agoThat doesn't solve parent's (and my) problem. I have collections of tabs in different windows and I assign those windows to different spaces. Every time I reboot Chrome all windows are assigned to whichever space is active when I launch Chrome. I seem to recall that Chrome used to remember these assignments, so maybe it's not a macOS problem, but rather a Chrome problem...?
- whatever1 2y agoThis is awesome. But Apple needs to get their act together. Window management, specially in multi monitor/ space setups is unbelievably bad. What is the purpose of the dock? It does not tell you what apps have windows visible, preview these windows or inform you where these windows are. Absolute waste of screen real estate. And to add to the injury they seized another 10% of the horizontal space for the even more useless stage manager.
- rplnt 2y agoThey make more money that way, by having terrible desktop ux that needs to be supplemented with dozen of extra apps. Not sure if that was their intention, but they do.
- JSR_FDED 2y agoHow on earth do “they” make more money that way? The support costs of different users on different window management solutions obliterates any small fraction of application sales they earn on the App Store.
- 10729287 2y agoNot sure they are doing extra money because official apps are generally opened by free, community driven, ones, but yeah, this is my main issue with Macos nowadays, official apps are so flawed the os needs to be heavily customed out of the box.
- wojciech-kulik 2y agoTotally agree. I even created a feature request to allow disabling animation when switching between spaces. But I don't have any faith in them. I enabled auto-hiding of the Dock. When I use FlashSpace I don't need to see the dock anymore because I know what is where. I also integrated the number of messages on my Sketchybar, so that I know if there is a new SMS or Slack message without Dock.
- loremm 2y agoNot for speed (that was only allowed in past versions of macos) but even now, you can go Accessibilty -> Reduce motion blur and it at least won't do the horrible slide animation, just fade in and out. The other one made me nauseous if I was doing it so often
- yisonPylkita 2y agoThank you! I've just installed it and so far it works great
- wojciech-kulik 2y agoThank you for the feedback!
- adamredwoods 2y agoI don't use VWS on OSX, because I'm faster without it. Flashspace looks like an improvement (faster), but I don't know if it's how I work. I may try it. The biggest complaint I have, is why doesn't alt-tab work smarter? Here's an example of using alt-tab and window management differently: https://justinnoel.dev/2020/12/22/macplus-software-demo-of-command-tab-plus-and-maxsnap/ https://justinnoel.dev/2020/12/22/macplus-software-demo-of-c...
- fragmede 2y agohttps://alt-tab-macos.netlify.app/ https://alt-tab-macos.netlify.app/
- maleldil 2y agoThis is a good solution. It interacts weirdly with programs that use native tabs (e.g. each Ghostty tab shows up as a separate window), but other than that, coming from other OSs, it works as you'd expect. I tried getting used to the "macOS way", but this is just better.
- deleted 2y ago[deleted]
- donfotto 2y agoThis is much needed on mac os. But why? Back in the day, mac os was supposed to "just work", and linux was for weirdos who had too much time and customized everything. But now, it's the opposite. Vanilla flavor ubuntu just works out of the box. And mac os needs tons of third party customization. Same with external monitors, on mac one needs 3rd party software for properly scaling the UI on a 4k monitor. That's core OS functionality, not something one should need an extension for.
- deleted 2y ago[deleted]
- deleted 2y ago[deleted]
- nayeem3650 2y ago[flagged]
- deleted 2y ago[deleted]
- boronine 2y agoI have been using AeroSpace for this purpose for over a year. I simply disable all the tiling features in the config and only use two shortcuts: switch to workspace and move current window to workspace. It's absolutely essential when working on a small screen. AeroSpace does indeed suffer from a performance issue but this appears to be inherent to the available macOS APIs: https://github.com/nikitabobko/AeroSpace/issues/131 https://github.com/nikitabobko/AeroSpace/issues/131 The way you reproduce it is open Factorio.app and quickly switch between workspaces while the game is loading. FlashSpace seems to suffer from this problem as well based on a quick test. With regards to configuration, I think it's cumbersome to configure shortcuts per workspace. In AeroSpace, every letter and number on the keyboard is automatically a workspace and shortcuts are global. All that said, this is a fantastic tool and I would prefer a tool like this that addresses the pain of macOS workspaces as its primary goal rather than being part of a tiling window manager. EDIT: After more testing it appears that FlashSpace does not support having different windows of the same app on different workspaces, this is a dealbreaker for my workflow :(
- foofoobar 2y agoHow do you disable the AeroSpace tiling, are you just using the floating layout? Can you share your config?
- deleted 2y ago[deleted]
- snippety 2y agoRegarding the performance, the app uses native api to show/hide so I don’t think it is possible to make it faster than it is now. If it lags it’s probably not the app lagging but the system because of the heavy work going on. Btw. I had the same adventure with Aerospace, I disabled whole tiling just to have workspaces, but they become unusable because anything going on on the computer could cause lag like 5 seconds between switching workspaces. And as a developer I often build apps and switch between workapaces.
- gregoriol 2y agoNice work, but I won't use it: the transitions between spaces actually allow me to change focus in my mind; with a direct switch, without any visual indication, it will take a few moments to scan the screen, realise the change and adapt in my mind Also, assigned apps are not how I work: I don't assign a task per space, I assign a project per space, so within many spaces I'll have browser, editor, notes, ... a window of each in each space.
- rpdillon 2y ago>it will take a few moments to scan the screen, realise the change and adapt in my mind I'm consistently astonished at how visual so many people are in their usage of a computer. The array of icons I see folks scanning on their phones to pick and app is like that, but so are Apple's window managers. That's fine, but they don't offer any alternative. I maintain a list of spaces in my mind and have them assigned to numbers. I think this comes from using tmux and screen for so long. I just want my display to instantly teleport me to that space. The idea that they are layed out on a table and have to slide out of view is a weird skeumorphic thing that I wish they would at least allow folks to disable, since it eats keyboard input during the animation. If any other company had done this, people would deride them for the thoughtless design.
- parentheses 2y agoI believe you can turn off all the movement animations and configure the switching time to be near instant using `defaults`
- rpdillon 2y agoSadly, after many hours troubleshooting this, the answer is that you cannot. Even with reduced motion and turning off as much animation as possible, there is a 1,000 millisecond input delay in switching workspaces on Mac. That is a fundamental limitation of the core operating system APIs.
- 2y ago
- marliechiller 2y agoInteresting - does this also manage my app window placement like a tiling window manager? I personally hate having to organise windows rather than just have them fill half my screen without thinking
- kwan11 2y ago[flagged]
- bradyriddle 2y agoThis is SO close to being perfect for what I'm looking for. I just need better support for handling multiple windows of the same app in a workspace. Is there a way to create a workspace manually in the desktop and save it? That would get me most of the way there
- atombender 2y agoI've started trying out this app, and I'm really confused by why it hides applications that are not in the space list. For example, let's say I have defined a "Work" space and assigned iTerm and IntelliJ to it. I open an application like Finder. I hit the keyboard shortcut for "Work". This causes Finder to hide. In other words, it just hides stuff that isn't explicitly assigned to a space or set to be "floating". This will mean that a lot of micromanaging of application lists is required to avoid constantly hiding stuff. Surely applications not explicitly listed could just be preserved as they are?