| Copyright | (c) 2010 & 2013 Adam Vogt 2011 Willem Vanlint |
|---|---|
| License | BSD-style (see xmonad/LICENSE) |
| Maintainer | vogt.adam@gmail.com |
| Stability | unstable |
| Portability | unportable |
| Safe Haskell | None |
| Language | Haskell2010 |
XMonad.Layout.TrackFloating
Description
Provides layout modifier UseTransientFor: when a float has focus and is
WM_TRANSIENT_FOR a tile, run the underlying layout as if that tile had focus.
Synopsis
- trackFloating :: l a -> ModifiedLayout TrackFloating l a
- useTransientFor :: l a -> ModifiedLayout UseTransientFor l a
- type TrackFloating = FocusTracking
- data UseTransientFor a
Usage
Apply to your layout in a config like:
main = xmonad (def{
layoutHook = trackFloating (useTransientFor
(noBorders Full ||| Tall 1 0.3 0.5)),
...
})useTransientFor and trackFloating can be enabled independently. For
example when the floating window sets WM_TRANSIENT_FOR, such as libreoffice's
file->preferences window, optionA will have the last-focused window magnified
while optionB will result magnify the window that opened the preferences
window regardless of which tiled window was focused before.
import XMonad.Layout.Magnifier import XMonad.Layout.TrackFloating underlyingLayout = magnifier (Tall 1 0.3 0.5) optionA = trackFloating underlyingLayout optionB = trackFloating (useTransientFor underlyingLayout)
For other layout modifiers
It also corrects focus issues for full-like layouts inside other layout modifiers:
import XMonad.Layout.IM import XMonad.Layout.Tabbed import XMonad.Layout.TrackFloating import XMonad.Layout.Reflect
gimpLayout = withIM 0.11 (Role "gimp-toolbox") $ reflectHoriz
$ withIM 0.15 (Role "gimp-dock") (trackFloating simpleTabbed)Interactions with some layout modifiers (ex. decorations, minimizing) are unknown but likely unpleasant.
trackFloating :: l a -> ModifiedLayout TrackFloating l a #
Deprecated: Use X.L.FocusTracking.focusTracking.
Runs another layout with a remembered focus, provided:
- the subset of windows doesn't include the focus in XState
- it was previously run with a subset that included the XState focus
- the remembered focus hasn't since been killed
useTransientFor :: l a -> ModifiedLayout UseTransientFor l a #
When focus is on the tiled layer, the underlying layout is run with focus on the window named by the WM_TRANSIENT_FOR property on the floating window.
Exported types
type TrackFloating = FocusTracking #
Deprecated: Use X.L.FocusTracking.FocusTracking.
data UseTransientFor a #