[xmonad] "Park" windows in a named group automatically
Allen S. Rout
asr at ufl.edu
Wed Jul 11 21:30:26 CEST 2012
On 07/09/2012 04:22 PM, Klaas van Schelven wrote:
> Hi all,
>
>
> "Park my current state to 'Project A'"
> set up new stuff to deal with the interruption
> park the new stuff in "Helping coworker"
> go back to "Project A"
>
> I'd love to hear a solution for this, even if it's not exactly along the
> lines of what I just described.
My response to this turns your use-case on its head.
For background, I have four screens, which I internally think of as "the
communications screen" (extreme left), "the web screen" (extreme right)
and "The project screens" (center two).
myWorkspaces = ["p1","p2","p3","p4","p5","p6","p7","p8","p9","p0",
"mail","web","chrome",
"Sysedit","dir",
"tsmmon","tsmshell","tsmsess",
"osgadmin", "todo", "rdesk", "IM",
"acroread",
"doc1e","doc1d",
"doc2e","doc2d",
"doc3e","doc3d",
"doc4e","doc4d",
"doc5e","doc5d",
"doc6e","doc6d",
"doc7e","doc7d",
"doc8e","doc8d",
"doc9e","doc9d",
"doc0e","doc0d",
"dd1","dd2" ]
So I've got a few named project configurations i.e. "Mess with TSM":
mail : tsmmon : tsmsess : web
which I access via:
((modm .|. shiftMask, xK_a ),
do {
windows (viewOnScreen 0 "tsmmon" ) >>
windows (viewOnScreen 1 "tsmsess" ) >>
windows (viewOnScreen 2 "mail" ) >>
windows (viewOnScreen 3 "web" )
} )
and then I have "Mess with project N"
[whatever] : doc[N]e : doc[N]d : [whatever]
.. Note, that this just replaces the center two screens.
((modm .|. controlMask, xK_5 ),
do {
windows (viewOnScreen 0 "doc5e" ) >>
windows (viewOnScreen 1 "doc5d" )
} )
and then I have ad-hoc numbered screens as usual
-- mod-[1..9], Switch to workspace N
-- mod-shift-[1..9], Move client to workspace N
--
[((m .|. modm, k), windows $ f i)
| (i, k) <- zip (XMonad.workspaces conf) ([xK_1 .. xK_9 ] ++ [xK_0])
, (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
And then I have the ultimate ad-hockery: grid-select some workspace
and put it 'here'.
, ((modm, xK_s), gridselectWorkspace defaultGSConfig
W.greedyView )
So: in your case, my development environment is tweaked in the
'project 1' space. Client calls, I bring up 'project 2', and set
things up so I can answer them. Then I go back to 'project 1' later.
.. You can go a long way towards this by just thinking to yourself:
'My dev environment consists of WS 8 on the left, ws 9 on the right'.
Then once you've finished a distraction, put WS8 on the left, 9 on the
right, and you're done.
- Allen S. Rout
More information about the xmonad
mailing list