[xmonad] Issue 316 in xmonad: AvoidStruts gives wrong window heights with vertically stacked screens

codesite-noreply at google.com codesite-noreply at google.com
Mon Sep 28 12:43:09 EDT 2009


Status: New
Owner: ----

New issue 316 by vogt.adam: AvoidStruts gives wrong window heights with  
vertically stacked screens
http://code.google.com/p/xmonad/issues/detail?id=316

What steps will reproduce the problem?
1. Use two xinerama screens arranged one --above the other (by xrandr),
with avoidstruts as the default layout
2. Place one xmobar at the top of each screen

What is the expected output? What do you see instead?
Windows on one screen are given heights in excess of the original screen
height. This crashes some applications or makes them very slow.

What version of the product are you using? On what operating system?
contrib built from darcs, as of April 20, 2009 (nothing has changed to that
code since, however).  I don't have an xinerama setup anymore to test this  
(1)

On Arch Linux

Are you using an xmonad.hs?  Please attach it and the output of "xmonad
--recompile".

xinitrc:

  #!/bin/sh
  xmobar -x 0 &
  xmobar -x 1 &
  exec xmonad

xmonad.hs

  import XMonad
  import XMonad.Hooks.ManageDocks

  main = xmonad defaultConfig { manageHook = manageDocks
                              , layoutHook = avoidStruts $ layoutHook
defaultConfig }


xmobarrc: no xmobarrc, built from darcs to accept the -x flag, but that
could be done with separate config files.

Please provide any additional information below.

Attached is what I investigated and sent to Joachim Breitner (the struts
values which cause the failure), but he referred me to xmonad@

Speculation(2) : The avoidStruts code considers the origin of each screen
to be (0,0), when it is (0,800). Then it applies the struts that refer to
dimensions below the current screen, leading to Word16 underflow. Perhaps
ManageDocks should ignore struts that cover areas outside of the current X
screen, and also subtract off the current screen origin from the struts
that do fall within the screen.

(1) LayoutScreens may be of use here
(2) likely wrong since avoidStruts works correctly with horizontally
arranged screens

Attachments:
	debugging  1.4 KB

--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings


More information about the xmonad mailing list