Commit Graph

596 Commits

Author SHA1 Message Date
Adam Vogt
d82bfc6baf adjust an import to fix the build 2015-03-10 18:24:03 +00:00
Adam Vogt
e4fde08a0a merge conflicts in X.L.Spacing
I should have just applied Anton Pirogov March 4 patch.
2015-03-10 18:20:46 +00:00
anton.pirogov
0857f71938 Added messages to adjust the gap dynamically 2015-03-04 08:25:20 +00:00
Adam Vogt
80348bb4b7 X.L.Spacing needs -XPatternGuards now 2015-03-10 18:12:48 +00:00
anton.pirogov
20e69af48b Added messages to adjust the gap dynamically 2015-03-03 21:01:43 +00:00
benweitzman
19860e2fa0 BinarySpacePartition downstream changes
Pulled in changes from my repo for this layout on github (https://github.com/benweitzman/BinarySpacePartition)
Includes a new mode for resizing windows in a more intuitive way, also contains a bug fix that was preventing users from
resiving a window up.

Includes changes from github users egasimus (Adam Avramov) and SolitaryCipher (Nick)
2014-11-10 20:22:59 +00:00
Anton Vorontsov
201c25e7a4 X.L.Master: Add FixMaster layout modifier
This layout modifier is useful for the case if you desire to add a master
pane that has fixed width (it's fixed even if there is just one window
opened). Especially nice feature if you don't want to have too wide
terminal in a master pane.

The layout is implemented as an addition to Master layout, so it reuses
most of the code.
2014-12-20 01:13:39 +00:00
Felix Crux
6c410a8a00 Layout.Spacing: Outer window edges now get as much spacing as inner ones
Layout.Spacing applies a customizable amount of space around the outside of each
window. At window edges where two windows meet, the total distance between them
is therefore twice the customized value (one space value from each window). At
the edge of the screen, however, the spacing is only applied once. This results
in uneven amounts of spacing and differently-sized gaps on the screen.

This patch extends the Spacing layout to include a further gap all around the
edge of the screen, thus making all spaces around windows equal in size.
2014-12-19 22:36:46 +00:00
Anton Vorontsov
27f4d5dafe Implement proper handling of dynamically changing hostname
The module implements a proper way of finding out whether the window is
remote or local.

Just checking for a hostname and WM_CLIENT_MACHINE being equal is often
not enough because the hostname is a changing subject (without any
established notification mechanisms), and thus WM_CLIENT_MACHINE and the
hostname can diverge even for a local window.

This module solves the problem. As soon as there is a new window created,
we check the hostname and WM_CLIENT_MACHINE, and then we cache the result
into the XMONAD_REMOTE property.

Notice that XMonad itself does not know anything about hostnames, nor does
it have any dependency on Network.* modules. For this module it is not a
problem: you can provide a mean to get the hostname through your config
file (see usage). Or, if you don't like the hassle of handling dynamic
hostnames (suppose your hostname never changes), it is also fine: this
module will fallback to using environment variables.
2014-09-01 07:21:58 +00:00
Anton Vorontsov
b2a885fe5a Add Stoppable layout for power saving
This module implements a special kind of layout modifier, which when
applied to a layout, causes xmonad to stop all non-visible processes. In a
way, this is a sledge-hammer for applications that drain power. For
example, given a web browser on a stoppable workspace, once the workspace
is hidden the web browser will be stopped.

Note that the stopped application won't be able to communicate with X11
clipboard. For this, the module actually stops applications after a
certain delay, giving a chance for a user to complete copy-paste sequence.
By default, the delay equals to 15 seconds, it is configurable via
'Stoppable' constructor.

The stoppable modifier prepends a mark (by default equals to "Stoppable")
to the layout description (alternatively, you can choose your own mark and
use it with 'Stoppable' constructor). The stoppable layout (identified by
a mark) spans to multiple workspaces, letting you to create groups of
stoppable workspaces that only stop processes when none of the workspaces
are visible, and conversely, unfreezing all processes even if one of the
stoppable workspaces are visible.

To stop the process we use signals, which works for most cases. For
processes that tinker with signal handling (debuggers), another
(Linux-centric) approach may be used. See
https://www.kernel.org/doc/Documentation/cgroups/freezer-subsystem.txt
2014-09-01 07:21:41 +00:00
Devin Mullins
babbd208a6 XMonad.Config.Prime, a do-notation for config
Note that the use of RebindableSyntax is because of the need to vary the
layoutHook type throughout the config. The alternative, using the existential
Layout type, was rejected because it required TemplateHaskell in order to look
nice, and TemplateHaskell is not portable.

I've tried to make a version of (>>) that also worked on normal monads, but
have had no luck as of yet. Maybe some intrepid soul can add it later.
2014-09-14 06:48:28 +00:00
Adam Vogt
c9b63a8f40 remove trailing whitespace in L.BinarySpacePartition 2014-05-01 01:19:43 +00:00
Adam Vogt
fb7ca05a63 replace Bound with the equivalent Direction2D 2014-05-01 01:15:40 +00:00
Adam Vogt
fcf0545475 remove unused extension in BSP 2014-05-01 01:14:55 +00:00
benweitzman
ec56f2c47c Add BinarySpacePartition layout 2014-04-30 20:58:48 +00:00
Adam Vogt
6a2ad3f1ee Remove unneeded context with the IfMax layout instance
Extra constraints on instances are about as useful as -XDataTypeContexts
2014-04-22 22:11:05 +00:00
nrujac
e2ff50687e Adding side tabs and replacing TabbarLocation with Direction2D. 2014-02-19 20:08:11 +00:00
nrujac
0f6bed2ff7 Add side tabs to the tabbed layout. 2014-02-13 21:52:47 +00:00
Daniel Wagner
35ed0601f4 expose and document X.L.IndependentScreens.marshallSort 2014-01-28 21:28:44 +00:00
Ilya Portnov
f10a18670a IfMax-Layout
This adds a new ("conditional") layout, IfMax, which simply runs one layout, if there are <= N windows, and else runs another layout.
2013-12-01 07:26:34 +00:00
Liyang HU
fd23bd692b XMonad.Actions.UpdatePointer: generalise updatePointer 2013-07-30 07:10:07 +00:00
Daniel Wagner
0f1b6fb772 use Data.Default wherever possible, and deprecate the things it replaces 2013-05-28 01:39:09 +00:00
Daniel Wagner
daa2731d3d eliminate references to defaultConfig 2013-05-28 00:58:25 +00:00
Daniel Wagner
0287b2861c minimal change needed to get xmonad-contrib to build with xmonad's data-default patch 2013-05-28 00:10:40 +00:00
Francesco Ariis
e8259ebd43 Remove unneeded XSync call in Layout.ShowWName 2013-05-17 15:33:41 +00:00
Adam Vogt
546b582a3d Fix module name in comment of X.L.Fullscreen 2013-05-14 21:57:27 +00:00
Adam Vogt
eae925fc29 Remove unnecessary contexts from L.MultiToggle 2013-02-17 16:33:56 +00:00
gopsychonauts
faa61bbbab Generalises modWorkspace to take any layout-transforming function
modWorkspace already was capable of modifying the layout with an arbitrary
layout -> layout function, but its original type restricted it such that it
could only apply a single LayoutModifier; this was often inconvenient, as for
example it was not possible simply to compose LayoutModifiers for use with
modWorkspace.

This patch also reimplements onWorkspaces in terms of modWorkspaces, since with
the latter's less restrictive type this is now possible.
2013-05-01 15:14:25 +00:00
Daniel Wagner
469ff726a4 warning police 2013-05-02 01:27:00 +00:00
Daniel Wagner
e11d97137e XMonad.Config.Dmwit 2013-05-02 01:21:32 +00:00
Daniel Wagner
a56a135313 minor fixes to the haddock markup in X.L.IndependentScreens 2013-04-11 19:38:49 +00:00
Daniel Wagner
faf0997881 add whenCurrentOn to X.L.IndependentScreens 2013-04-08 22:52:51 +00:00
Paul Fertser
7dda5f976f Allow to specify the initial gaps' states in X.L.Gaps 2013-02-22 07:22:32 +00:00
Adam Vogt
a33f355232 Update L.TrackFloating.useTransient example code
Suggest useTransient goes to the right of trackFloating which is the
configuration actually tested.
2013-01-12 04:12:39 +00:00
Adam Vogt
ced8f5e0f0 Adapt ideas of issue 306 patch to a new modifier in L.TrackFloating 2013-01-12 03:57:01 +00:00
Adam Vogt
de84dfef0d Remove trailing whitespace. 2012-11-09 01:41:56 +00:00
Adam Vogt
3fa51ed656 Use Control.Exception.catch explitly to avoid warnings
The base that comes with ghc-7.6.1 no longer includes Prelude.catch;
so these modules were changed so that there is no warning for

import Prelude hiding (catch)

At the same time these changes should be compatible with older GHCs,
since the catch being has never been the one in the Prelude.
2012-11-09 01:35:06 +00:00
Adam Vogt
1716ffd9d0 Rename variables "state" to avoid warnings about shadowing
XMonad core re-exports Control.Monad.State, which includes
a function "state" if you happen to use mtl-2. Since there's
a chance xmonad still works with mtl-1 avoid imports like:

import XMonad hiding (state)
2012-11-09 01:23:16 +00:00
Adam Vogt
e776260133 Rename variable in L.Minimize to avoid shadowing.
This "state" is new with a newer mtl.
2012-11-09 00:34:10 +00:00
daedalusinfinity
4da5da430e Added smart spacing to the spacing module
Added smart spacing to the spacing module, which adds spacing to all windows,
except to windows on singleton workspaces.
2012-09-23 03:45:27 +00:00
Daniel Wagner
2a6709ff5c refer to the new name 'handleEventHook' instead of the old name 'eventHook' in X.L.Fullscreen documentation 2012-06-18 18:10:03 +00:00
Adam Vogt
f09a61f5f5 Minor haddock formatting for X.L.OnHost and X.A.DynamicWorkspaceOrder 2012-04-28 19:45:52 +00:00
Adam Vogt
1a735f04e3 Remove trailing whitespace. 2012-04-28 19:40:48 +00:00
allbery.b
c691988bbf XMonad.Layout.OnHost allows host-specific modifications to a layout, which
is otherwise very difficult to do.  Similarly to X.L.PerWorkspace, it provides
onHost, onHosts, modHost, and modHosts layout modifiers.  It attempts to do
smart hostname comparison, such that short names will be matched with short
names and FQDNs with FQDNs.

This module currently requires that $HOST be set in the environment.
You can use System.Posix.Env.setEnv to do so in xmonad.hs if need be.
(Properly, this should be done via the network library, but I'm trying to
avoid adding that dependency.)  An alternative would be to shell out to
get the name, but that has considerable portability hurdles.
2012-03-20 03:09:12 +00:00
Jens Petersen
328293a0a8 narrower BorderResize rectangles placed within border edges
Change the border resize rectangles to be narrower and only extend
  inside the window not outside.  Most window managers just seem to use
  the border decoration area for starting resizes which is often just 1 pixel
  wide but as a compromise the width is now 2 pixels (before it was 10!).
  The rectangles are now placed symmetrically within the border and window.
  This seems to work ok with PositionStoreFloat for the Bluetile config.
2012-03-14 06:47:03 +00:00
Daniel Wagner
69d2e0a873 bump X11 dependency so that noModMask is available 2012-03-16 00:03:02 +00:00
crodjer
e2bb57bd63 ShowWName: Increase horizontal padding for flash
Currently the flash window width leaves a very small amount of padding. This
patch adds some extra horizontal width, governed by text width and length.
2012-03-05 16:45:17 +00:00
Rohan Jain
4feb4fb058 ShowWName flash window background color
While calling paintAndWrite for flash window, the background color from config
should also be passed on as window background in addition to as text background
color. Otherwise the window color gets set to the default black which shows up
when text cannot span whole of the window.

This issue becomes visible when the font size is considerably large or even in
small size with truetype fonts.
2012-03-06 06:52:24 +00:00
crodjer
3f39d34994 ShowWName: Fix flash location by screen rectangle
In case of using this hook with multiple monitors, the Tag flash was not
following the screen's coordinates. This patch shifts the new window created for
flash according to the Rectangle defined by the screen.
2012-03-05 16:12:40 +00:00
Steffen Schuldenzucker
807d356743 L.WorkspaceDir: cleanup redundant {definitions,imports} 2012-02-29 11:21:24 +00:00