122 Commits

Author SHA1 Message Date
Jason Creighton
b46a449baf ignore numlock/capslock on mouse bindings 2007-06-01 01:51:37 +00:00
Don Stewart
777cf28bdf clean up mouse code a bit 2007-05-31 08:53:08 +00:00
Jason Creighton
3cb64d7461 first shot at a floating layer
This is a first attempting at a floating layer:

mod-button1: move window
mod-button2: swapMaster
mod-button3: resize window

mod-t: make floating window tiled again

Moving or resizing a window automatically makes it floating.

Known issues:

Hard to manage stacking order. You can promote a window to move it to the top,
(which you can do with mod-button2) but it should be easier than that.

Moving a window by dragging it to a different Xinerama screen does not move it
to that workspace.

Code is ugly.
2007-05-31 04:47:33 +00:00
Don Stewart
0cca848c54 be sure to reset the gap list on rescreen 2007-05-28 03:18:35 +00:00
Don Stewart
c613073cb6 support per-screen gap settings. you can have different gaps on individual screens now 2007-05-28 03:15:01 +00:00
Don Stewart
1d2c5ca35a Use (Int,Int,Int,Int) for arbitrary gaps on any side of the screen 2007-05-28 02:51:35 +00:00
Don Stewart
bb4bd97c87 mod-b, toggle on or off the status bar gap 2007-05-27 12:59:28 +00:00
Don Stewart
fdc6af5faa clean Main.hs slightly 2007-05-27 07:21:06 +00:00
Don Stewart
3202fa0673 refactor using whenX 2007-05-22 04:31:16 +00:00
Spencer Janssen
07a354e5a3 Add preliminary randr support 2007-05-22 04:02:28 +00:00
Spencer Janssen
a9d7b7ef49 Experimental support for a beefier restart. 2007-05-21 19:46:53 +00:00
Spencer Janssen
b59d4d1dc0 Make screen info dynamic: first step to supporting randr 2007-05-21 15:27:59 +00:00
Jason Creighton
02073c547b s/workspace/windowset/ 2007-05-21 04:03:30 +00:00
Don Stewart
77e46027ed HEADS UP: Rewrite StackSet as a Zipper
In order to give a better account of how focus and master interact, and
how each operation affects focus, we reimplement the StackSet type as a
two level nested 'Zipper'. To quote Oleg:

    A Zipper is essentially an `updateable' and yet pure functional
    cursor into a data structure. Zipper is also a delimited
    continuation reified as a data structure.

That is, we use the Zipper as a cursor which encodes the window which is
in focus. Thus our data structure tracks focus correctly by
construction! We then get simple, obvious semantics for e.g. insert, in
terms of how it affects focus/master. Our transient-messes-with-focus
bug evaporates. 'swap' becomes trivial.

By moving focus directly into the stackset, we can toss some QC
properties about focus handling: it is simply impossible now for focus
to go wrong. As a benefit, we get a dozen new QC properties for free,
governing how master and focus operate.

The encoding of focus in the data type also simplifies the focus
handling in Operations: several operations affecting focus are now
simply wrappers over StackSet.

For the full story, please read the StackSet module, and the QC
properties.

Finally, we save ~40 lines with the simplified logic in Operations.hs

For more info, see the blog post on the implementation,

    http://cgi.cse.unsw.edu.au/~dons/blog/2007/05/17#xmonad_part1b_zipper
2007-05-20 07:00:53 +00:00
Spencer Janssen
72e7bed426 Handle empty layout lists 2007-05-04 04:56:44 +00:00
Jason Creighton
b5ed587f2e use anyKey constant instead of magic number 2007-05-04 01:50:43 +00:00
David Roundy
ea1134db26 add support for extensible layouts. 2007-05-03 14:47:50 +00:00
Spencer Janssen
b63e8c029e Use updated refreshKeyboardMapping. Requires latest X11-extras 2007-05-03 03:20:40 +00:00
Spencer Janssen
08e514b28f Add Config.hs-boot, remove defaultLayoutDesc from XConf 2007-04-30 16:26:47 +00:00
Spencer Janssen
5d086df912 Add XConf for values that don't change. 2007-04-30 05:47:15 +00:00
Jason Creighton
bdbca84bcd configurable border colors
This also fixes a bug where xmonad was assuming a 24-bit display, and just
using, eg, 0xff0000 as an index into a colormap without querying the X server
to determine the proper pixel value for "red".
2007-04-30 04:38:59 +00:00
Jason Creighton
90b4eb607c avoid grabbing all keys when a keysym is undefined
XKeysymToKeycode() returns zero if the keysym is undefined. Zero also happens
to be the value of AnyKey.
2007-04-28 18:00:46 +00:00
Jason Creighton
767bc68acf Ignore numlock and capslock in keybindings 2007-04-24 01:33:57 +00:00
Spencer Janssen
70a87063d1 Clear numlock bit 2007-04-24 01:03:52 +00:00
Jason Creighton
0d47f6299f use prefixed record names in latest X11-extras 2007-04-19 03:22:44 +00:00
Jason Creighton
0c95f0c143 moved screen <-> workspace mapping from XMonad to StackSet 2007-04-10 06:27:31 +00:00
Spencer Janssen
71b897b595 Remove redundant parens 2007-04-09 07:38:36 +00:00
Spencer Janssen
a99841e554 Remove unused 'screen' field 2007-04-09 07:35:10 +00:00
Don Stewart
0ba47579c9 replace multiple gets with a single get and record bind 2007-04-04 01:05:24 +00:00
Spencer Janssen
93be71bb88 Revert to the old layout code. 2007-04-02 04:51:14 +00:00
Alec Berryman
df4bda60ff Remove trailing spaces, no content changed 2007-04-01 14:45:39 +00:00
Alec Berryman
b3fc66b15b Fix type error in dimensions field of XState record for 64-bit systems
Fallout from Int->CInt conversion.
2007-04-01 14:42:29 +00:00
hughes
10a0e21e00 Vertical/horizontal split, and resizability. 2007-04-01 01:47:06 +00:00
Spencer Janssen
3303b4a101 Move safeFocus from Main to Operations 2007-03-31 01:00:24 +00:00
Jason Creighton
e743ef0c2d removed refocus; moved functionality to setFocus 2007-03-31 00:34:42 +00:00
Jason Creighton
207bd516e1 refactored "focus changed" code into "refocus" 2007-03-30 03:54:54 +00:00
Spencer Janssen
ce99fce902 Fix refreshKeyboardMapping issues. Requires the latest X11-extras 2007-03-28 21:57:53 +00:00
daniel
5ae3c6a1fc first shot at allowing click to focus windows 2007-03-28 10:15:40 +00:00
Spencer Janssen
18a1fe776d Compatibility with CInt'ified X11 2007-03-28 07:14:36 +00:00
hughes
4fc3448186 Workspace-specific layouts 2007-03-26 15:02:13 +00:00
daniel
cb4e6d86a1 Extra config: defaultLayout 2007-03-26 07:42:34 +00:00
daniel
929d9c784a minor aesthetic changes 2007-03-26 07:33:39 +00:00
Jason Creighton
0bb51dae3d added Config.lhs and moved most things in Main.hs into Operations.hs to enable this 2007-03-26 05:13:41 +00:00
Jason Creighton
d9a6abede0 Xinerama focus bug (couldn't focus on current workspace) 2007-03-25 20:37:02 +00:00
Jason Creighton
ec344fa383 restart (simple exec(), no state saved) 2007-03-23 02:37:38 +00:00
Spencer Janssen
41c2dd3fbf Add promote. Makes the focused window the master 2007-03-22 22:23:33 +00:00
Spencer Janssen
f98c9f8902 I like 1%2 split. Maintainer's prerogative :) 2007-03-21 07:06:49 +00:00
Spencer Janssen
418b6a87d9 Add defaultLeftWidth in the configuration section 2007-03-21 06:58:07 +00:00
daniel
5bd9a74b5a Allow dynamic width in tiling mode 2007-03-21 05:42:45 +00:00
Spencer Janssen
ebdf6bef14 GHC 6.4 compatibility. 2007-03-21 04:52:11 +00:00