Commit Graph

43 Commits

Author SHA1 Message Date
Don Stewart
0928bb484a Constrain layout messages to be members of a Message class
Using Typeables as the only constraint on layout messages is a bit
scary, as a user can send arbitrary values to layoutMsg, whether they
make sense or not: there's basically no type feedback on the values you
supply to layoutMsg.

Folloing Simon Marlow's dynamically extensible exceptions paper, we use
an existential type, and a Message type class, to constrain valid
arguments to layoutMsg to be valid members of Message.

That is, a user writes some data type for messages their layout
algorithm accepts:

  data MyLayoutEvent = Zoom
                     | Explode
                     | Flaming3DGlassEffect
                     deriving (Typeable)

and they then add this to the set of valid message types:

  instance Message MyLayoutEvent

Done. We also reimplement the dynamic type check while we're here, to
just directly use 'cast', rather than expose a raw fromDynamic/toDyn.

With this, I'm much happier about out dynamically extensible layout
event subsystem.
2007-05-04 08:16:49 +00:00
Spencer Janssen
72e7bed426 Handle empty layout lists 2007-05-04 04:56:44 +00:00
Don Stewart
d0ef78e5c3 refactoring, style, comments on new layout code 2007-05-04 02:36:18 +00:00
David Roundy
ea1134db26 add support for extensible layouts. 2007-05-03 14:47:50 +00:00
Don Stewart
f0df95da72 comments. and stop tracing events to stderr 2007-05-03 07:58:21 +00:00
Spencer Janssen
08e514b28f Add Config.hs-boot, remove defaultLayoutDesc from XConf 2007-04-30 16:26:47 +00:00
Spencer Janssen
ecbff364c9 Comment only 2007-04-30 16:16:35 +00:00
Spencer Janssen
1e83de8cde Comment only 2007-04-30 16:15:11 +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
Don Stewart
bf0f487ca4 add 8 new QC tests, including tests of the layout algorithm 2007-04-19 04:08:33 +00:00
Spencer Janssen
2b6a5d25b6 WindowSet is better than WorkSpace 2007-04-19 01:54:30 +00:00
Don Stewart
b765cc9706 Parameterise StackSet by two index types, rather than breaking abstraction 2007-04-19 01:27:05 +00:00
Don Stewart
85a20da22c clean up tiling code a teensy bit, and comment on the interaction between focus, master, and cycling direction between the modes 2007-04-11 08:07:47 +00:00
Don Stewart
3e7b23030c clean up only 2007-04-11 06:56:07 +00:00
Don Stewart
c490333d12 Statically distinguish Workspace and Screen indices 2007-04-11 06:04:56 +00:00
Jason Creighton
0c95f0c143 moved screen <-> workspace mapping from XMonad to StackSet 2007-04-10 06:27:31 +00:00
Spencer Janssen
83600d109e Simplify rot 2007-04-09 22:35:00 +00:00
Spencer Janssen
a99841e554 Remove unused 'screen' field 2007-04-09 07:35:10 +00:00
Spencer Janssen
8c88e102b4 Document XState fields 2007-04-09 07:34:14 +00:00
Don Stewart
a0f7df2fa6 Use -funbox-strict-fields, rather than UNPACK pragmas. cleaner code. 2007-04-09 07:23:02 +00:00
Spencer Janssen
3a592d2df8 Use Tall and Wide for split screen layouts. This should be less confusing. 2007-04-03 05:06:10 +00:00
Jason Creighton
3b36be5055 vertical (master area on top) tiling 2007-04-03 04:06:58 +00:00
Spencer Janssen
4b91b535ff Comment typo. 2007-04-02 21:46:05 +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
hughes
1909c353b7 Merged things together with dons changes. 2007-04-01 02:18:46 +00:00
hughes
10a0e21e00 Vertical/horizontal split, and resizability. 2007-04-01 01:47:06 +00:00
Don Stewart
93cf0950e8 formatting fixes. the style is getting a bit dodgy in some places... 2007-04-01 00:28:03 +00:00
daniel
5ae3c6a1fc first shot at allowing click to focus windows 2007-03-28 10:15:40 +00:00
hughes
4fc3448186 Workspace-specific layouts 2007-03-26 15:02:13 +00:00
daniel
5bd9a74b5a Allow dynamic width in tiling mode 2007-03-21 05:42:45 +00:00
Spencer Janssen
e0584a008d Initial tiling support. 2007-03-20 07:18:12 +00:00
Jason Creighton
437167d34c changed type of getScreenInfo in Graphics.X11.Xinerama 2007-03-20 04:42:53 +00:00
Jason Creighton
bb43b2ad6f basic xinerama support (depends on Graphics.X11.Xinerama in X11-extras) 2007-03-17 23:49:04 +00:00
Spencer Janssen
2506e901f1 -Wall police 2007-03-16 02:22:01 +00:00
Spencer Janssen
851857bd41 Actually fix the zombie issue. 2007-03-13 23:59:31 +00:00
Spencer Janssen
835f054d79 Sloppy typos in spawn. 2007-03-13 21:50:09 +00:00
Spencer Janssen
8aad6658bc Fix forking issues, add unix dependency. 2007-03-13 15:33:10 +00:00
Don Stewart
11bb12cc31 catch exceptions in spawn, so failing to fork won't kill the wm 2007-03-12 06:26:12 +00:00
Don Stewart
5398895bf4 comments, move isRoot into XMonad 2007-03-12 01:23:50 +00:00
Don Stewart
2365e68c6a general refactor, and call xerrorhandler to ignore certain undetectable issues 2007-03-11 10:26:53 +00:00
Don Stewart
5ddd9351dc XMonad 2007-03-10 07:01:52 +00:00