Discussion:
[xmonad] Floating Terminator moves 1px everytime
Jeroen Budts
2016-04-23 19:54:25 UTC
Permalink
Hi all,

I started experimenting with xmonad as the window manager for XFCE a
few days ago (having used the default xfwm4 for several years), so I'm
very new to xmonad, Haskell and tiling window managers in general.

I use Terminator as my terminal, but i have configured it so I can use
it 'quake-style': with xfwm4 it appears over my other windows when I
press <F12> and disappears when pressing <F12> again.

To simulate this same behavior in xmonad I configured Terminator to
always float. This works, but every time I hide and open the Terminator
window again it moves 1 pixel to the right and bottom. Initially it is
to the left edge of the screen and just below the xfce-panel, but after
using it a few times there is a 'gap' between the edge of the screen and
terminator and between xfce-panel and terminator.
I have no idea what is causing this, any help would be much appreciated :)

Here is my xmonad.hs config:

import XMonad
import XMonad.Config.Xfce
import XMonad.Layout.Spacing
import XMonad.Hooks.ManageDocks

myLayout = spacing 5 $ layoutHook xfceConfig

myManageHook = composeAll
[ className =? "Terminator" --> doFloat
, className =? "Thunderbird" --> doShift "1"
, className =? "Firefox" --> doShift "2"
, className =? "Spotify" --> doShift "9"
, className =? "Banshee" --> doShift "9"]

main = xmonad xfceConfig
{ modMask = mod4Mask
, terminal = "xfce4-terminal"
, layoutHook = myLayout
, manageHook = myManageHook <+> manageHook xfceConfig <+>
manageDocks -- uses default too
, focusedBorderColor = "#2d5682"
, borderWidth = 3
}

Thx for any help!
Jeroen
--
website: http://budts.be/ - twitter: @teranex
___________________________________
Registered Linux User #482240 - GetFirefox.com - ubuntu.com
Brandon Allbery
2016-04-23 20:04:35 UTC
Permalink
Post by Jeroen Budts
I use Terminator as my terminal, but i have configured it so I can use
it 'quake-style': with xfwm4 it appears over my other windows when I
press <F12> and disappears when pressing <F12> again.
To simulate this same behavior in xmonad I configured Terminator to
always float. This works, but every time I hide and open the Terminator
window again it moves 1 pixel to the right and bottom. Initially it is
to the left edge of the screen and just below the xfce-panel, but after
using it a few times there is a 'gap' between the edge of the screen and
terminator and between xfce-panel and terminator.
I have no idea what is causing this, any help would be much appreciated :)
There's several places where xmonad doesn't track the window border
properly with respect to the window (the border is actually *within* the
window and so enlarges it by borderWidth pixels on each side). Worse, some
of the places that do this unconditionally use the default borderWidth, so
you can't even configure just that window to have no borders to work around
it. I'm still tracking down all the places this happens, but one known one
is hard to fix (it's doing that default borderWidth thing because nothing
else has had a chance to run yet, and you can't run it afterward because it
has to set the default position/size early for the ManageHook to work.
Nasty chicken-and-egg situation.)

However, in this case you may want to use a better simulation of the
quake-like behavior instead: XMonad.Util.NamedScratchpad. I have a couple
of terminals and various other windows configured as NamedScratchpad
windows and they stay where they're put.
--
brandon s allbery kf8nh sine nomine associates
***@gmail.com ***@sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net
Jakob Schöttl
2016-04-23 20:16:21 UTC
Permalink
Oh, I did not know about XMonad.Util.NamedScratchpad. Nice Tip Brandon.

I use termite as drop-down terminal together with tdrop. That also
works, like this:
https://plus.google.com/+JakobSchöttl/posts/7Yif4Z1zp2E

Jakob
Post by Jeroen Budts
I use Terminator as my terminal, but i have configured it so I can use
it 'quake-style': with xfwm4 it appears over my other windows when I
press <F12> and disappears when pressing <F12> again.
To simulate this same behavior in xmonad I configured Terminator to
always float. This works, but every time I hide and open the Terminator
window again it moves 1 pixel to the right and bottom. Initially it is
to the left edge of the screen and just below the xfce-panel, but after
using it a few times there is a 'gap' between the edge of the screen and
terminator and between xfce-panel and terminator.
I have no idea what is causing this, any help would be much appreciated :)
There's several places where xmonad doesn't track the window border
properly with respect to the window (the border is actually *within*
the window and so enlarges it by borderWidth pixels on each side).
Worse, some of the places that do this unconditionally use the default
borderWidth, so you can't even configure just that window to have no
borders to work around it. I'm still tracking down all the places this
happens, but one known one is hard to fix (it's doing that default
borderWidth thing because nothing else has had a chance to run yet,
and you can't run it afterward because it has to set the default
position/size early for the ManageHook to work. Nasty chicken-and-egg
situation.)
However, in this case you may want to use a better simulation of the
quake-like behavior instead: XMonad.Util.NamedScratchpad. I have a
couple of terminals and various other windows configured as
NamedScratchpad windows and they stay where they're put.
--
brandon s allbery kf8nh sine nomine associates
unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net
_______________________________________________
xmonad mailing list
http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad
Loading...