Floating Terminator moves 1px everytime

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Floating Terminator moves 1px everytime

Jeroen Budts
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



_______________________________________________
xmonad mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad

signature.asc (836 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Floating Terminator moves 1px everytime

Brandon Allbery
On Sat, Apr 23, 2016 at 3:54 PM, Jeroen Budts <[hidden email]> wrote:
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
[hidden email]                                  [hidden email]
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net

_______________________________________________
xmonad mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad
Reply | Threaded
Open this post in threaded view
|

Re: Floating Terminator moves 1px everytime

Jakob Schöttl
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

Am 23.04.2016 um 22:04 schrieb Brandon Allbery:
On Sat, Apr 23, 2016 at 3:54 PM, Jeroen Budts <[hidden email]> wrote:
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
[hidden email]                                  [hidden email]
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net


_______________________________________________
xmonad mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad


_______________________________________________
xmonad mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad