Hi all,

For various reasons I'm moving back to Awesome after a couple years of
Xmonad. Unfortunately, having used both models for a while, I rather
prefer the Xmonad approach of sharing the tagset between monitors. (It's
rather more flexible at the cost of increasing the number of keys you
need. Fortunately, there are plenty of those, and even more to come when
I'm done with the main thing that's getting me to switch. :-)) So I'm
trying to emulate it.

(I found the "shared tags" wiki on this topic but was having trouble
getting that to work, so I'm trying an alternative approach for a while
just doing it myself.)


What I'm doing is basically the following.

Call screen A, tag 1 "a1", screen B, tag 1, "b1", etc. (What I'm doing
doesn't depend on this naming but it makes things easier to distinguish.
If you look at my rc.lua, it actually uses 1-1 and 2-1 for those things
because they're easier to build. Later, I hope to get rid of this
duplication.) And for now just pretend that tags are just virtual
desktops and I don't care about tagging a client with multiple tags or
what happens in that case. I definitely do want to use that support (I
missed that feature in Xmonad) but I'll work on it later.

When someone changes to tag A1, what I'd like to do is not just display
A1 as normal but also move all clients from B1 to A1. And then when
someone changes to B3, it will move all clients from A3 to B3. In this
way, each pair of tags A1 & B1, A2 & B2, etc. should act like a single
Xmonad desktop.


However, it's not quite working.

What happens instead is that when I change to A1, I get diagnostic
messages saying it's moving the clients from B1 (the "actually moving a
client" message in my code), and they disappear from B1 and all of the B
tags, but they don't appear on A1. If I then change to B1, the clients
from B1 reappear on B1, and the clients in A1 disappear but do not
appear on B1.

Basically, if I were a magician, I can do half the trick but that's all. :-)


I put my rc.lua at http://pastebin.com/VUmkWHpb. I think there are only
three changes relative to the stock rc.lua that comes packaged with
Ubuntu (Awesome 3.4.11):

 - Changing the tag names from 1 through 9 to 1-1 through 1-9 and 2-1
   through 2-9 (lines 78-86); I think this shouldn't matter but helps
   figuring out what's going on

 - The move_clients_from_other_screens() function (line 298). This does
   the moving things around. In the example of the user changing to A1
   (moving clients from B1 to A1), to_screen=A and tag_number=1. (Of
   course, to_screen is actually a number.)

 - The call to move_clients_from_other_screens() on line 325, from the
   handler of mod-# presses.


If you actually read all that, thank you... and any idea of what's going
on? :-)

Evan


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to