
Workspaces for Mac 1.0 - emkaka
http://www.apptorium.com/workspaces
======
git-pull
I designed tmuxp ([https://tmuxp.git-pull.com](https://tmuxp.git-pull.com)) to
pretty much deliver the CLI version of a workspace using tmux
([https://tmux.github.io/](https://tmux.github.io/)). Works cross platform
(Linux, BSD, macOS).

And it's been doing the trick for years. Prior to building the tmux workspace,
it even can call a bootstrap script
([https://github.com/tony/tmuxp/blob/master/bootstrap_env.py](https://github.com/tony/tmuxp/blob/master/bootstrap_env.py))
to check for and install dependencies.

When a tmuxp session file
([https://github.com/tony/tmuxp/blob/master/.tmuxp.yaml](https://github.com/tony/tmuxp/blob/master/.tmuxp.yaml))
is loaded, it automatically can source the user into virtualenvs, launch file
watchers, and so on.

Saves so much time.

Since most software projects involve the same flow (installing packages
locally for the project, launching a test runner.)

Other things that help keeping it cross platform are using Makefile and
commands conforming to POSIX
([https://github.com/tony/tmuxp/blob/master/Makefile](https://github.com/tony/tmuxp/blob/master/Makefile)).
So when bringing up a list of files for entr (a file watcher
[http://entrproject.org/](http://entrproject.org/)) to run commands when files
are saved, use posix find arguments only. Use $(MAKE) for recursive calls
([https://www.gnu.org/software/make/manual/html_node/Recursion...](https://www.gnu.org/software/make/manual/html_node/Recursion.html)).

~~~
eridius
I tried using tmuxp last week and there was a very bizarre lack that
completely killed its use for me. Specifically, while you can set a start
directory for the session and for the window, nowhere in the docs could I find
a way to set the start directory for a pane. And that's a problem because I
really don't want all of my panes to be set up with a visible `cd
path/to/folder` at the top.

So I ended up just writing a quick shell script that set up my environment
using regular tmux commands.

------
khedster
The problem this app is working on is a real pain point for me. My current
solution is to use multi user accounts on my mac (roughly one for each use
context I have), leave everything open, and fast user switch between the
accounts. This works well enough and has the advantage of lots of isolation
between contexts, but the overhead of creating and setting up a new user
account is too much to have more than a couple of these (I'd love to have one
per project). One advantage of the example of this level of isolation -- I
setup my mail program in each account to only be setup for the mail accounts
relevant to that context so I only get mail notifications for the context I'm
focused on.

I'm strongly in favor of some innovation in this space, but this app's
solution (and other, window management type solutions) I don't think has
enough isolation between contexts for me.

~~~
mikecsh
I've often pondered this myself.

Windows has traditionally been a Window/document-centric OS where the primary
object of interaction is a window (e.g. alt-tab would swap between individual
Windows).

macOS has traditionally been an application-centric OS, one tabs between
Applications.

What I would love to see is a project-centric system, where I can tab between
projects and have all the relevant applications and documents appear and
disappear with it.

~~~
egypturnash
Turn on multiple desktops. One project per desktop. Command-arrow between
desktops.

~~~
andy_ppp
An app can only be on one desktop - instead it should be on multiple spaces
but filtered by project, right files open etc.

~~~
stephenr
Are you sure about that? I'm pretty sure I've had safari windows on multiple
desktops.

~~~
matanrubin
Yes, you can have multiple Safari windows and place each one in a different
virtual desktop.

The main issue I have with this setup is Cmd-Tab doesn't handle multiple
windows of the same app that well. If I have multiple Safari windows in
different desktops, it would basically just (randomly?) pick one and open it
when I Cmd-Tab into Safari.

I really wish Cmd-Tab would be constrained to the desktop I'm currently
using... Anybody has a solution for this issue?

~~~
ggus
I think HyperSwitch
[[http://hyperswitch.bahoom.com/](http://hyperswitch.bahoom.com/)] can do
that?

~~~
herrvogel-
+1 for HyperSwitch. I have the standard cmd-tab for applications, alt-tab
switches between all windows on the current virtual desktop and alt-` switches
between all windows of the current application (across all virtual desktops).

------
kylec
I really like this idea, though the implementation is obviously still a 1.0.
What I would _love_ is for the program to be able to automatically scan all
the windows I have open and save their current state, then quit/hide them when
switching into a new workspace. This would solve a big problem I have: I
frequently have lots of open windows that I would _like_ to close and remove
to start working on something else, but I still need to do something with
them. With software that is able to save and switch to different workspaces on
command, I could jump right into working without having to deal with those
things first. Then, when I'm done, I can just pop the stack and get back all
my windows from before I started working.

If you can do that, and do that well, I'll pay you a lot more than $5.99.

------
BinaryIdiot
Sounds interesting but it was hard for me to figure out exactly what it did
based on the website (and based on the comments here it seems I'm not alone).

I'd like to suggest putting more screenshots up showing how to use it as well
as a video.

~~~
ranebo
They must have been listening, there is a video on the main page now.

Basically a bookmark manager for the apps/folders you use, allowing you to
restore everything in a click or two.

I specified a terminal and two VSCode windows each set with different project
directories and it loaded perfectly. Will purchase.

Feature request: Would like the ability to choose fullscreen/specific space
for each application.

~~~
maroonblazer
How did you specify the two VSCode windows each set with different project
directories? I wanted to do this too but the "Open with" drop-down in
"Advanced" settings only showed four apps, none of which were VSCode.

I'd also love to be able to give it a window of tabs in Chrome or Firefox and
have it open all of those in one window. Perhaps there's already a way but it
wasn't obvious to me.

EDIT: I kept reading the comments and found the VSCode solution. You add
VSCode first and then specify a folder to open.

~~~
AlexKaul
You might also want to try Freeter ([https://freeter.io](https://freeter.io)).
It can do all of these.

------
mtrpcic
This looks like it could be a great productivity tool, but I'm not exactly
sure how it works based on the screenshot.

* Does it just remember which files/apps were open for a given name, and when I click that name in the list it opens those apps?

* Does it close my other apps when I do this, to only keep one "workspace" active?

* Can I set it to open each Workspace in a specific OSX "Spaces" space? (THIS would be the killer feature, imo)

~~~
cyberferret
I had pretty much the same questions as you - that landing page does a
terrible job of explaining exactly what it is that this app does.

Here is my 'use case'. Whenever I want to work on one of my mobile or web
apps, I set up my environment to open TWO terminal windows within my working
folder (one for normal CLI commands, one for IRB or other specific console),
perhaps run up a local web server for testing, SSH into the staging server,
and load up the local preview URL in at least two installed browsers for
testing. Sometimes XCode or Atom/VSCode too with the proper project loaded up.
Oh, and opening my BitBucket and Confluence pages to the right project would
also help a great deal.

Having to do this sometimes multiple times per day for different projects I am
working on can get tedious, so I am hoping that this app could automate a lot
of this with a single click, but I don't know from that landing page whether
it even comes close to this.

[EDIT - I notice they have added a video to the landing page now which
explains what it does and how it works in an infinitely better way. And from
that, it DOES look like it will meet my needs above!]

~~~
cwisecarver
You might want to try tmuxinator
([https://github.com/tmuxinator/tmuxinator](https://github.com/tmuxinator/tmuxinator)).

~~~
cyberferret
That's a nice solution. Probably a little more 'manual' setup up front, but
looks like it will do what I need it to once the config files are created, so
I appreciate the heads up.

------
mjsweet
As a freelancer working on multiple projects at one time I find task switching
between different projects to be time consuming and often quite frustrating.

The cognitive load needed to task shift takes time and may take up to 20
minutes to get my head into the task, not to mention setting up my session for
the client project. Then when I need to shift back to another project I have
to start over. Most of my time is spent digging through finder and opening
files.

This app, even in it's early stages will save me a lot of money... the AUD$10
is worth it - you could charge more. I have tinkered with spaces in the past
to do this as well as thought about (hellish thought) using multiple user
account and fast switch between them... nothing has worked quite right.

I think this would be particularly useful for digital agencies. Allowing fast
switching between projects. It would be particularly useful if there was
workspaces or "projects" were shareable with teams in those environments too.
Easily pickup where another team member left off... an enterprise option
maybe?

Saving window state is useful, but I find using SizeUp to move things around
after it has loaded is probably enough. Also, I tend to move between my
eternal monitor and laptop screen only quite regularly, so I'm not sure how
window management would work in those scenarios.

The big thing though is to be able to close a workspace... I can see in
comments you are working on this for a later release. It's not the end of the
world right now - closing everything I don't need open is easy and doesn't
require a whole lot of thought.

For now you have nailed the biggest use case for my daily workflow after
window management with SizeUp... opening a folder of resources with the click
of a button!

Bravo!

~~~
tptacek
Strong agree. I think the author of this app is on to something potentially
big, and should price according to where they want this thing to go.

If this thing could manage filesystem workspace dependencies and keep them in
encrypted DMGs (not hard!), I'd pay a lot for it --- more than I would for
Microsoft Office.

~~~
maccard
Could you elaborate on "filesystem workspace dependencies" ?

------
alexchantavy
It would be a dream scenario for me to be able to _version_ between contexts -
maybe each workspace is a virtual machine/container-like entity under the hood
and you're able to save snapshots of _all_ the state in there.

------
lholden
For whatever reason images of the old Workplace Shell (OS/2) popped through my
mind when I read the title. Had me imaging a weird WPS for MacOS. (Much like
the Workplace Shell for Windows from way back in the day ).

------
cmpb
This looks like it scratches the same itch (in GUI land) that Desk[1]
scratches (in terminal land).

[1] [https://github.com/jamesob/desk](https://github.com/jamesob/desk)

~~~
sanswork
I use tmux to do something similar which I got from thoughtbots training site
I think it was.

I have a script called just c with the following:

\------

name=$1

if !(tmux has-session -t "$name" 2> /dev/null); then

    
    
      tmux start                     \;\
    
        set -g set-remain-on-exit on \;\
    
        new-session -d -s $name
    
      tmux source-file "$HOME/.tmux.conf"
    
      tmux source-file "$HOME/.tmux/profiles/$name.tmuxrc"
    

fi

tmux attach -t $name

\-----

Then I cp a tmux profile from a template depending on the project
language/framework into profiles and rename the directories in it then I can
just do `c project` in the future to have everything started up.

------
mikewhy
I love this sort of program. I've been using Control Plane [1] for a few
years. It's nowhere near as pretty as this, but you can automatically switch
contexts with sources like time, Bluetooth devices, location, wi-fi hotspots,
even shell scripts.

[1]: [https://www.controlplaneapp.com](https://www.controlplaneapp.com)

------
istefanovics
Check out Freeter. [https://freeter.io](https://freeter.io)

------
itwy
It's very basic. I can tell it to run Visual Studio Code but I can't tell it
to open a specific project using Visual Studio Code.

I can't tell it to open the terminal and activate a Python virtual environment
(let alone open Visual Studio Code built-in terminal and activate the env).

~~~
colept
I wonder if you could tell it to open a Workflow automation and have the
automation perform that - would be nice.

~~~
striking
If you save an Automator workflow as an app, anything can launch it. Including
this.

------
racl101
Downloaded the Demo.

It's kind of buggy.

After defining my first work space (and I did mine with two tasks to open
websites), I ran the workspace, it only did the first task (open one website),
and then for some reason the prompt telling me that I'm using a demo and that
I haven't paid for it pops up right away which is annoying cause duh! Of
course I haven't paid for it, I'm evaluating it.

And after that I can't bring back focus to the application and it doesn't
appear on the menu. So I had to restart it by killing the app process on
Activity Monitor.

Ok, I thought I'd try it again, maybe this time it won't trouble me asking me
to pay for it before I've evaluated it, same thing.

Not off to a good start here.

I'm using MacOS Sierra (10.12.4).

------
hellbreaker
Opening applications isn't the pain point for me. Its resize and moving
windows. i3wm completely solves this problem already. It would be great if
someone ported it over to OSX.

~~~
rdavis
I also love i3wm but there are a few tiling window managers available on macOS
[0] [1]. Not as easy to use as i3 last time I tried them however that was a
while ago and they definitely deserve another shot.

[0] [https://github.com/koekeishiya/kwm](https://github.com/koekeishiya/kwm)

[1] [https://github.com/ianyh/Amethyst](https://github.com/ianyh/Amethyst)

~~~
iak8god
Thanks for posting these.

I _really_ like jigish's Slate[1] for this (maybe I'm just too lazy to switch)
but sadly it's not being maintained, and I just noticed that neither is
mattr-'s fork[2] as of this month.

[1] [https://github.com/jigish/slate](https://github.com/jigish/slate) [2]
[https://github.com/mattr-/slate](https://github.com/mattr-/slate)

~~~
tjl
Hammerspoon [1] is the suggested replacement. It's pretty good and has a lot
of flexibility.

[1] [http://www.hammerspoon.org](http://www.hammerspoon.org)

------
27182818284
This looks useful...maybe? It is kind of hard to tell what exactly it does.
Reopens all my old windows?

~~~
emkaka
It opens all the files, folder, apps, websites, terminal (with given
directory) which you define. You can chose which resources should be open
automatically when you click START.

~~~
rusinov
All of it and even more could be done with Automator.

~~~
ralmeida
Or by hand. Does not mean there's no value in a streamlined solution.

------
hysan
Two questions:

1\. Does this remember or allow me to configure the Desktop(s) that I had
those programs opened on?

2\. Is there a shortcut to close all of the programs it opened for a
workspace?

~~~
emkaka
Not yet / not yet.

We're planning such features for future versions.

~~~
hysan
Cool. I'll be keeping my eye on this then.

------
microcolonel
I built something like this into my window manager one time, but I found it
basically pointless, given how easy and flexible it is to just open the
applications myself. If I did serious work on macOS instead of Linux and
OpenBSD, I'd probably want a tool like this. They really should put a video or
a screenshot roll right at the top of the page, instead of their stupid logo
which nobody cares about.

------
pwython
Looks great. I'd love to specify window locations though, so I don't have to
manually position everything after they launch.

------
adamnemecek
Perfect, I've been looking for this exact thing for a while

------
desireco42
Not exactly the same, but inspired by Alan Kay talk, I am trying to symlink
desktop to different folders, so that I can decide I work on something, have a
context, then make a new folder and do something else.

I animated gif or video would help people understand what this is.

------
stackptr
It's a little buggy but I can definitely see the potential. I freelance
several web projects and while each stack is thankfully quite similar,
switching contexts requires me to open a terminal with a few tabs, running
whatever servers and test runners there are, and an editor and a browser with
the project in question.

I think starting a workspace is only half the battle here, though. Considering
how I switch from work to play -- it's mostly just app minimization and open
the browser window I use for leisure reading. For me, the ideal here would be
to find a way to preserve state of each workspace so that I can hop between
each but not have to trouble myself with management

~~~
emkaka
If you find any bug, please send us a message via contact form
[http://apptorium.com/contact](http://apptorium.com/contact)

------
maliker
I do a poor mans version of this all the time by keeping all files for a
project in a folder. .url files for links, copies of emails, .sh scripts for
terminals, aliases to other folders and files, etc. But this looks like a more
polished approach.

~~~
oneeyedpigeon
I think this is a great idea; I was wondering what benefits Workspaces gives
over this approach. Obviously, it's a bit more polished, but there are
significant downsides: yet another app to install, what about its data format
- is it open?

From what I can tell, the `open` command doesn't accept any parameters
relating to desktop/window placement. I wish it would, that could then be very
powerful.

~~~
maliker
I agree that window placement would be a killer feature. Organizing windows by
location speeds things up a lot for me.

There have been some neat 'ZUI' approaches to this. Like the Raskin app
([https://www.youtube.com/watch?v=44u0OFWVt0s](https://www.youtube.com/watch?v=44u0OFWVt0s)).

------
mpweiher
I am always surprised again and again, though I shouldn't be, how we are
slowly and painfully creeping towards recreating the Smalltalk experience, for
example the image.

Did you know that, behind the scenes, macOS (and presumably iOS as well as
other operating systems) create a single-file version of the myriad dylibs
that are required for most applications? And that apps that link against these
individual libs then instead get that big (it's YUUUGE!) combined library
mapped into their address space? Without this optimization towards a single
image, application launch performance would be wholly unacceptable.

------
jorjordandan
Tried it out works great! Opens sublime text and Hyper to the correct folder
and open my site all at once. If it integrated with Magnet so you could set up
exactly where it opens, that would be incredible. Also, the ability to run a
command in Hyper when it loads would be cool, for example if you could 'npm
start' automatically. I'll definitely buy!

EDIT - actually if you could set it up to run some hotkeys or typing after
each application load you could do both these things very easily.

------
emkaka
Thanks for your feedback! Sorry I did not reply. It's caused of answer limit -
I answered too fast as it appeared.

A simple video has been added as well as our introduction image. I hope it
helps. It's quite hard to describe that app.

This is the first version, we have lots of ideas for the future. And our todo
list includes choosing space, window position, size and ability to close other
apps or close apps from the running workspace.

------
AlexKaul
Here is how I solved the problem of switching between multiple
projects/workflows: [https://hackernoon.com/how-i-hacked-my-
workflow-45e328ad8d9b](https://hackernoon.com/how-i-hacked-my-
workflow-45e328ad8d9b)

TL;DR Try Freeter: [https://freeter.io](https://freeter.io)

------
WM6v
I want to be able to go in to "work mode" by clicking a button (typing a
command). How would you go about writing a script on MacOS that you can run to
open your "work mode" programs? Preferably on different virtual desktops and
set window sizes? For example: Slack and Mail on one desktop, Chrome with
specified tabs on another.

------
sgt
I'm giving the trial a go. I was happy to see that multiple web sites opened
up as tabs and not as separate windows. I would like to see that it can
authenticate to certain web sites on its own (in cases where Chrome already
knows the password), but I am not sure if it's technically possible from your
app's point of view.

------
egypturnash
So here's another way to do this for free

Turn on multiple desktops

Put all the windows from one project on this desktop

Leave all these windows open when you decide to stop working on the project
and switch to another desktop

Maybe put a unique, project-appropriate image on each desktop

Price: free

I guess it breaks if some projects require using apps that don't play well
with your CPU or network or something? Maybe?

------
kilroy123
This is what I've been wanting for a while. I started doing some of this using
tmux and a chrome extension. I want to easily be able to switch between
projects.

My dream:

* Open chrome and the last saved session for that project.

* Open terminal and restore that last session. (can with tmux)

* Open sublime text with the project and the last session restored.

* Open any other apps

------
pkamb
$7 is way too cheap!

~~~
HHad3
I think that the price is fair: Apple's Automator, even shell scripts with the
OS-supplied "open" command, provide significantly more functionality for
quickly setting up a workspace. This tool's worth is the convenience of not
having to write such an automator/shell script by hand.

------
bhhaskin
This is pretty neat! I hate having to open everything if I change projects or
tasks.

------
analogmemory
Love this idea. With multiple clients (30+) this is great for pulling up all
the correct apps/files/folders :)

One thing that'd be awesome would be to run a command after opening a folder
in iTerm

~~~
dangero
How do you manage that many clients and what do you do for them?

------
vermooten
Is there a Windows equivalent? (I have to use it at work.)

------
jmuguy
If you could also make this launch into a particular Chrome user profile (I
keep a separate one for development work) that would be excellent.

------
anamexis
Does it support native split full screen? That seems to be missing in pretty
much all of the mac window managers to date.

~~~
eridius
Workspaces doesn't appear to be a window manager.

------
kelvie
Didn't Plasma/KDE have this for ages?

The last time I used it, it was buggy as hell (long-time KDE user here).

~~~
terminalcommand
I believe workspaces are present from KDE4 on.

Also, you can achieve the same functionality in i3, i3 can remember the
positions of the open windows. But you need to write a script to open the
corresponding applications and identify them to i3, so windows can be
"swallowed".

However workspaces on KDE were magnificent. They remembered state between
applications too. I only used KDE4 workspaces -FreeBSD does not yet support
Plasma- and was fairly satisfied.

------
AJRF
Option to load each work node into a BSP tree that handled window management
on load would be nice.

------
arvinsim
I really thought that this was possible before using just OSX scripts.

At least an app exists for it now.

------
euroclydon
I don't get the email part? Email is typically managed by the email server.

~~~
emkaka
If you're using e-mail client such as Mail app, you can drop important e-mails
there.

------
saagarjha
Looks interesting; I have a Hammerspoon script that does something similar.

~~~
flanbiscuit
I was doing this with pure AppleScript a few years ago but when I changed jobs
from a startup/single-product company to an client based agency then my
workspace changed often enough that I found I didn't use it anymore

------
yuchi
Very interesting. Some docs would help in evaluating it.

~~~
mdoyle13
agreed!

------
du_bing
Hi, I find this useful, is there any other choice?

------
DevKoala
I wish I could have this for window locations.

~~~
emkaka
We're planning it in future versions

~~~
iak8god
This is a neat tool. I bought a license yesterday and finally got a chance to
play around with it.

If you're taking requests: I'd really love the ability to specify a script to
run when opening Terminal. Both by specifying a location for an external shell
script, but also by having the ability to just toss a few commands together in
your interface.

And the window position thing above would be amazing.

------
adamking
Looks cool! I'll check it out.

------
revicon
How does this compare to AWS Workspaces?
[https://aws.amazon.com/workspaces/](https://aws.amazon.com/workspaces/)

~~~
flurdy
They share the same product name, but otherwise not really related?

One is for organising your local machine's desktops in workspaces per project,
other is remote desktops via a cloud provider.

