Windows that start on a different space aren't managed
Xnomad won't manage windows that are on a different space than the one it was started on from. This means for Xnomad to be fully useful, you have to launch it before all your other applications. (And if you want to reconfigure and restart Xnomad, you may have to first quit all open applications, and/or move them to the desktop where you will launch Xnomad.)
Example:
- Go to Desktop 1
- Start xnomad via Terminal.app
- As expected, windows on Desktop 1 (ie the first space) become tiled, and respond to xnomad commands. (eg if I click a window and then press my mod key cntrl+option+return, then that window will jump over the the "main area")
- Go to Desktop 2
- Unexpectedly, none of the windows have been tiled, and none of the windows response to xnomad command
- Open a new window on Desktop 2 (either launch a new application or create a new window in an existing one), and that window does get managed by xnomad.
This is on commit 02537c7985e417c86d803c6f7529bf074e5ccd9d (Apr 10). OS versiion 10.8.2.
I've been exploring WindowManager.tq, where it detects windows on startup, and so far can't find a fix. One theory is that app[#AXWindows] only returns windows on the current space. (I don't think it's that NSWorkspace sharedWorkspace runningApplications only returns applications on the current space, but I could have made a mistake there.)
Your theory is correct. Windows on different spaces are neither hidden, shown nor minimized. I haven't found a way to deal with this. It annoys me as well.
I've mostly been using Windows lately, but I took a stab at this a little a while back. Here's what I got so far:
https://github.com/ryguasu/xnomad/commit/multiple_workspace_experiment
Basic idea is to check for new applications/windows every time you switch spaces.
This probably isn't the best fix, but I don't remember my least favorite part. Maybe that it added flicker when switching screens?
One thing that also needs to be improved is supporting windows/applications attached to "All Desktops", rather than just a particular desktop. Eventually there should probably be a separate window list for each space, so an "All Desktops" window can have different ranks on different spaces.
Building/running xnomad as an app allows it to manage windows in all spaces.
leonardt, the problem is not that it can't manage windows on all spaces; but that when you start it, it will only register the windows on the current space. Any windows created after that are fine.