I use the venerable Awesome WM to manage tiled window layouts across a couple of screens. My configuration has a few goodies, but in general it follows a familiar pattern with a bar across the top with information about my keyboard layout, the tag situation, active windows, a system tray, and a clock.

current horizontal layout

For a while now I've had in mind that vertical screen real estate is too valuable to waste on this usage. It's not too bad on my desktop where I have multiple monitors and the bar is only on one of them (and I can rotate the displays!), but every time I use my 11" laptop I find myself wishing those 23 pixels were taken out of the width rather than the height of my screen.

What I would like to do is simply rotate the entire layout, text direction and all, and place it along the right edge sort of like this:

mock-up of desired vertical layout

When I've experimented with this in the past, all I've been able to achieve is a bar on that edge with items stacked it it vertically, but each item's orientation was still horizontal and obviously things like the task bar section did not play very nicely that way. I think I'm okay with the rotated text (and even tray icons) if I could just spin the whole thing.

Is this possible? If so, how?


1 Answer 1


A vertical wibox is possible, I used one with 3.4 since years and had to recreate setup with 3.5. Based on this mailing list discussion, here a short example with widgets re-ordered for my own needs, including margins to introduce spacing between widgets:

 -- Create the wibox
mywibox[s] = awful.wibox({ position="left",orientation="north", screen = s })

-- Widgets that are aligned to the bottom
local bottom_layout = wibox.layout.fixed.horizontal()
if s == 1 then bottom_layout:add(wibox.widget.systray()) end

-- Now bring it all together (with the tasklist in the middle)
local layout = wibox.layout.align.horizontal()

-- Rotate
-- http://comments.gmane.org/gmane.comp.window-managers.awesome/9676
local rotate = wibox.layout.rotate()

-- Widgets from top to bottom
local wibox_layout = wibox.layout.fixed.vertical()


When adjusting widget placements, reload configuration with Mod+Ctrl+r

To rotate systray, this code may do the trick (I did not test it)

if s == 1 then
   local systray = wibox.widget.systray()

You can find a base configuration for Awesome 3.5 at https://github.com/ymartin59/awesome-vertical-wibox

  • Thanks this is fantastic. After years of wishful thinking all my systems now have vertical bars and I love it. My implementation starts with your first version and I've been fiddling with different ways of configuring it from there. Your tweaks since then are also nice, but I think I'm going to play with using pop-ups for things like the run box. Ever tried that? Are your full configs somewhere?
    – Caleb
    Commented Jul 30, 2016 at 7:52
  • No yet. For "run box", I just discovered "menubar" (mod+p) when documenting shortcuts with keydoc: awesome.naquadah.org/wiki/Menubar Commented Aug 2, 2016 at 9:22
  • @Caleb Here is almost (I clean up too custom elements) my vertical-wibox configuration published... Do not hesitate to contribute with ideas or code ! Commented Sep 19, 2016 at 9:50
  • @Caleb / YvesMartin I know this is a lot to ask but are you still using this and did you port it to awesome 4, by any chance ? Commented Oct 29, 2018 at 15:44
  • @NikanaReklawyks I am still using a vertical layout, and yes I have it working in Awesome 4.2. You can review my dotfilles to see how I'm currently doing it.
    – Caleb
    Commented Nov 8, 2018 at 10:34

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .