ianyh on app-monitoring
After being forced off linux and missing xmonad; I am very, very happy about amethyst. with a config file it is almost totally there for me.
one thing I am missing is being able to have a "virtual" space per monitor. my mental model would be to have e.g. "coding on space 1", "work browser space 2", "chat space 3" etc. and I could throw those spaces to whichever monitor I wanted; typically having "coding-space(1) on main monitor" and "browser-space(2)" on secondary monitor; but sometimes swapping out the browser monitor for chat-space-3 (or something).
in osx; the spaces seem to either be, all monitors together for each space, or individual spaces per monitor, but they are bound to the monitor; so I can't throw "space 1" to an arbitrary monitor.
unclear if this is my not fully understanding the tool; or a feature not implemented, or no one else does it this way, etc.
i have adapted by still using the same mental model but now my "coding space" is across all the monitors simultaneously. this is mostly okay but less flexible.
ideally (for me) there would be another layer of abstraction within amethyst to work around the way osx treats spaces; with amethyst having some notion of a virtual monitor; allowing "screens" to be thrown between (or simply assigned to) virtual monitors, and then virtual monitors could be thrown between the real osx Spaces.
after looking I don't think it solves my core problem. the issue still remains that spaces are bound to "real" monitors. if I have two monitors; with separate spaces for each monitor, and a total of 6 spaces. osx will bind spaces One Two and Three to one of the monitors; and Four Five and Six to the other. In this example, we can only see at most one space at a time from each monitor; which is the crux of the problem.
So, if I have all of my "coding stuff" on space 1; and my "work browser" on space 2; in the above setup they could never been side by-side without swapping everything per-window to a space on the other monitor.
The core difference from xmonad (to my memory at least) is that when I switch to the equivalent of a "space" in xmonad, the "space" will take the place of the currently focused screen. wheras with amethsyt on osx; when I switch to a new space it will always just swap out the old one at the same monitor.
Thanks; I appreciate you taking the time to respond. I have been playing with it a tiny bit to see what things may be piggybacked on to minimize lift/maximize using the OS the way it wants to be used.
I am not sure if it is something that can be controlled via Amethsyst; but by changing which monitor is the primary monitor (the UI way of doing this is moving the white menu bar from one display to another in the System Preferences -> Display menu); I get behavior which could be exploited to get roughly the behavior I am looking for. It would really only work in a two monitor setup; or the third monitor would be out of scope for space-throwing.
So I guess two questions:
I ask #2 because I noticed I actually can move spaces from one monitor to another; it is just the active space cannot be moved. However, if the primary display is moved (while each monitor has a separate space) the active space will move from the old primary display to the new primary display (they will swap).
pkill Amethyst; rm ~/Library/Preferences/com.amethyst.Amethyst.plist; open -a Amethyst, but wondered if there was a nicer way. 🙂
If I look at
/Applications/Amethyst.app/Contents/Resources/default.amethyst , I only see 4 layouts in the config file:
"layouts": [ "tall", "wide", "fullscreen", "column" ],
Is there any reason why not to add all the layouts to this config file, such as what was done in this PR: https://github.com/ianyh/Amethyst/pull/1307/files ?