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
signature.asc
Description: OpenPGP digital signature