A few questions

Feb 14, 2012 at 6:51 PM


First of all kudos to you for that awesome window manager! :)

Today I tinkered a little around with it and stumbled upon a few issues:

1. I want the taskbar to be visible at startup. So I just copied




from the 3-Hotkeys.rb and 'translated' it into the Python counterpart




But Windawesome complains:

System.NullReferenceException: Object reference not set to an instance of an object.
   at Windawesome.Windawesome.ToggleTaskbarVisibility()

(Full log: http://pastie.org/3382914)

2. I wanted to hide the Bar at the top and found a Hide method in the source code.

Thus I added


to the end of 1-General Settings.py. Now, that doesn't work nor does it throw an error.

3. Windawesome disables the minimize/restore animations by default. Is there any way to re-enable them?

4. awesome has a keygrabber function which temporarily grabs _all_ key events. Is there any simple way to do that in Windawesome? I want to make something like the chain key combos in Emacs and the buffer key combos in vi(m). ^_^

Thanks in advance,



Feb 14, 2012 at 9:48 PM


Thanks for the good words. :) I actually had to use a dictionary for "kudos" - I didn't know that word existed. :D

On to the questions:

1. You could add "showWindowsTaskbar = True" to each of the workspace constructors and it will be shown by default.

2. Again, as in 1), the Workspace constructor takes parameters for that. It actually takes a list of bars to show at the top and a list of bars to show at the bottom. You could just remove/move around anything you want. The interface is this:

public Workspace(Monitor monitor, ILayout layout,
IEnumerable<IBar> barsAtTop = null,
IEnumerable<IBar> barsAtBottom = null,
string name = "", bool showWindowsTaskbar = false,
bool repositionOnSwitchedTo = false)

So you could just customize as you want.

3. This is in the general configuration. You can do: "config.ShowMinimizeMaximizeRestoreAnimations = True" in the general config file (alongside the other config... stuff).

4. I'm not exactly sure what you mean. Could you elaborate, please, and give examples?


Feb 15, 2012 at 6:49 PM
Edited Feb 15, 2012 at 6:50 PM

Hey, thanks for the fast reply!

Alien282 wrote:


Thanks for the good words. :) I actually had to use a dictionary for "kudos" - I didn't know that word existed. :D


Sorry I'm no native speaker and thought this word was more common. :P

1. and 3. worked like a charm. :)

2. Okay, I wasn't clear but I wanted to toggle it with a keybinding. So I also tried


config.Workspaces[0].barsAtTop = [config.Bars[1]]


(so that I could toggle the content of barsAtTop) but it threw an error: barsAtTop is read-only.

Then I tried to make a kind of pointer to an array, i.e.


testWorkspaces = []
config.Workspaces = Enumerable.ToArray[Workspace]([
	Workspace(windawesome.monitors[0], FloatingLayout(), testWorkspaces)
testWorkspaces = [config.Bars[1]]


...didn't work nor threw an error. Hope you understand what I was attempting to do. ^_^

4. awesome has a keygrabber API -> http://awesome.naquadah.org/doc/api/modules/keygrabber.html

In short: While the keygrabber runs it will invoke a (user-defined) function on every key-event with the modifiers, the key and the  type of keyevent as arguments. If the return value is true it will keep on grabbing else it will stop. Pretty simple.

Now what I did in awesome with that API was I used the keygrabber to create a mode where I could use vi-style key combos - i.e. gg or cw. I did that with RegExps.

My question is if that was possible in Windawesome with some simple code, too? I have absolutely no experience in C# and .NET. :P



Feb 16, 2012 at 4:43 PM


I'm not a native speaker either, so that's probably the reason I didn't know the word. :D

Unfortunately there isn't a way to hide a bar once it is shown. I had it once but many things changed/improved since then and I still haven't sat down to implement it. Sorry about that. In some future version perhaps... :)

About this keygrabber thing - there isn't such a thing in Windawesome, but I would suggest you look at AutoHotkey - I'm pretty sure you can do something like what you want with it... maybe even easily. :) It won't be integrated with Windawesome, unfortunately, but you could do general stuff with it - resize windows, etc. I think implementing such a thing from scratch is a pretty complicated task, so I don't want to undertake it. :)

Please do shout if there are more things you don't like/don't work. :)


Feb 18, 2012 at 11:08 AM

Okay, thanks! I'll look into AutoHotkey. :)

Happy Hacking,