From 038f77de5a727c0265a2236659326171a6f5147b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Dec 2015 13:28:08 -0700 Subject: [PATCH 01/12] Reformat the README as proper markdown for GitHub and Hackage --- README | 138 ++++++++++++++++++++++++++++----------------------------- TODO | 5 +++ 2 files changed, 74 insertions(+), 69 deletions(-) diff --git a/README b/README index 445f0aa..8961070 100644 --- a/README +++ b/README @@ -1,116 +1,116 @@ - xmonad : a tiling window manager +# xmonad: A Tiling Window Manager - http://xmonad.org +[xmonad][] is a tiling window manager for X. Windows are arranged +automatically to tile the screen without gaps or overlap, maximising +screen use. Window manager features are accessible from the keyboard: +a mouse is optional. xmonad is written, configured and extensible in +Haskell. Custom layout algorithms, key bindings and other extensions +may be written by the user in config files. Layouts are applied +dynamically, and different layouts may be used on each +workspace. Xinerama is fully supported, allowing windows to be tiled +on several physical screens. - xmonad is a tiling window manager for X. Windows are arranged - automatically to tile the screen without gaps or overlap, maximising - screen use. Window manager features are accessible from the - keyboard: a mouse is optional. xmonad is written, configured and - extensible in Haskell. Custom layout algorithms, key bindings and - other extensions may be written by the user in config files. Layouts - are applied dynamically, and different layouts may be used on each - workspace. Xinerama is fully supported, allowing windows to be tiled - on several physical screens. +## Quick Start -Quick start: + * From hackage: - From hackage: + cabal update + cabal install xmonad xmonad-contrib - cabal update - cabal install xmonad xmonad-contrib + * Alternatively, install development snapshots (from git): - Alternatively install development snapshots (from darcs): - - cabal install http://code.haskell.org/xmonad/xmonad.tar.gz \ - http://code.haskell.org/XMonadContrib/xmc.tar.gz + cabal install http://code.haskell.org/xmonad/xmonad.tar.gz \ + http://code.haskell.org/XMonadContrib/xmc.tar.gz For the full story, read on. -Building: +## Building - Building is quite straightforward, and requires a basic Haskell toolchain. - On many systems xmonad is available as a binary package in your - package system (e.g. on Debian or Gentoo). If at all possible, use this - in preference to a source build, as the dependency resolution will be - simpler. +Building is quite straightforward, and requires a basic Haskell toolchain. +On many systems xmonad is available as a binary package in your +package system (e.g. on Debian or Gentoo). If at all possible, use this +in preference to a source build, as the dependency resolution will be +simpler. - We'll now walk through the complete list of toolchain dependencies. +We'll now walk through the complete list of toolchain dependencies. - * GHC: the Glasgow Haskell Compiler + * GHC: the Glasgow Haskell Compiler You first need a Haskell compiler. Your distribution's package - system will have binaries of GHC (the Glasgow Haskell Compiler), the - compiler we use, so install that first. If your operating system's - package system doesn't provide a binary version of GHC and the - cabal-install tool, you can find an installer for both here: - - http://haskell.org/platform/ + system will have binaries of GHC (the Glasgow Haskell Compiler), + the compiler we use, so install that first. If your operating + system's package system doesn't provide a binary version of GHC + and the `cabal-install` tool, you can install both using the + [Haskell Platform][platform]. It shouldn't be necessary to compile GHC from source -- every common - system has a pre-build binary version. + system has a pre-build binary version. However, if you want to + build from source, the following links will be helpful: - Alternatively you can install from hackage + - GHC: - http://haskell.org/ghc/ - http://haskell.org/cabal/download.html + - Cabal: - * X11 libraries: + * X11 libraries: Since you're building an X application, you'll need the C X11 library headers. On many platforms, these come pre-installed. For others, such as Debian, you can get them from your package manager: - apt-get install libx11-dev libxinerama-dev libxext-dev + $ apt-get install libx11-dev libxinerama-dev libxext-dev ------------------------------------------------------------------------- +## Running xmonad -Running xmonad: +Add: - Add: + exec $HOME/.cabal/bin/xmonad - exec $HOME/.cabal/bin/xmonad +to the last line of your `.xsession` or `.xinitrc` file. - to the last line of your .xsession or .xinitrc file. +## Configuring ------------------------------------------------------------------------- +See the `CONFIG` document. -Configuring: +## XMonadContrib - See the CONFIG document +There are many extensions to xmonad available in the XMonadContrib +(xmc) library. Examples include an ion3-like tabbed layout, a +prompt/program launcher, and various other useful modules. +XMonadContrib is available at: ------------------------------------------------------------------------- + * Latest release: -XMonadContrib + * Git version: - There are many extensions to xmonad available in the XMonadContrib - (xmc) library. Examples include an ion3-like tabbed layout, a - prompt/program launcher, and various other useful modules. - XMonadContrib is available at: +## Other Useful Programs - latest release: http://hackage.haskell.org/package/xmonad-contrib +A nicer xterm replacement, that supports resizing better: - darcs version: darcs get http://code.haskell.org/XMonadContrib + * urxvt: ------------------------------------------------------------------------- +For custom status bars: -Other useful programs: + * dzen: - A nicer xterm replacement, that supports resizing better: + * xmobar: - urxvt http://software.schmorp.de/pkg/rxvt-unicode.html + * taffybar: - For custom status bars: +For a program dispatch menu: - dzen http://gotmor.googlepages.com/dzen - xmobar http://hackage.haskell.org/package/xmobar + * [XMonad.Prompt.Shell][xmc-prompt-shell]: (from [XMonadContrib][]) - For a program dispatch menu: + * dmenu: - dmenu http://www.suckless.org/download/ - gmrun (in your package system) + * gmrun: (in your package system) -Authors: +## Authors - Spencer Janssen - Don Stewart - Jason Creighton + * Spencer Janssen + * Don Stewart + * Jason Creighton + +[xmonad]: http://xmonad.org +[xmonadcontrib]: https://hackage.haskell.org/package/xmonad-contrib +[xmc-prompt-shell]: https://hackage.haskell.org/package/xmonad-contrib/docs/XMonad-Prompt-Shell.html +[platform]: http://haskell.org/platform/ diff --git a/TODO b/TODO index 1b3f644..9c9d9bc 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,8 @@ += General = + +* In the README, should we remove references to snapshots on + code.haskell.org? + = Release management = * generate, and push website haddocks with xmonad-web/gen-docs.sh From 39dc00b16f30e5f0e553f02c22e09620a72823f3 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Dec 2015 13:30:11 -0700 Subject: [PATCH 02/12] Add a file extension to the README file to make GitHub happy --- README => README.md | 0 xmonad.cabal | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename README => README.md (100%) diff --git a/README b/README.md similarity index 100% rename from README rename to README.md diff --git a/xmonad.cabal b/xmonad.cabal index b45817d..5850193 100644 --- a/xmonad.cabal +++ b/xmonad.cabal @@ -17,7 +17,7 @@ license: BSD3 license-file: LICENSE author: Spencer Janssen maintainer: xmonad@haskell.org -extra-source-files: README TODO CONFIG STYLE +extra-source-files: README.md TODO CONFIG STYLE tests/*.hs tests/Properties/*.hs tests/Properties/Layout/*.hs From b5402e76d3878f8845fc6b47df8c562b40955ea5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Dec 2015 13:31:54 -0700 Subject: [PATCH 03/12] Fix some bad formatting --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8961070..ce0499c 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ on several physical screens. ## Quick Start - * From hackage: + * From hackage: cabal update cabal install xmonad xmonad-contrib From bd72c6e1e2b309e019a8cdc120013e1bf8e1b99b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Dec 2015 13:50:20 -0700 Subject: [PATCH 04/12] Add CHANGES.md --- CHANGES.md | 15 +++++++++++++++ xmonad.cabal | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 CHANGES.md diff --git a/CHANGES.md b/CHANGES.md new file mode 100644 index 0000000..acf6fa2 --- /dev/null +++ b/CHANGES.md @@ -0,0 +1,15 @@ +# Change Log / Release Notes + +## 0.12 + + * Compiles with GHC 7.10.2 + + * No longer encodes paths for `spawnPID` + + * The default `manageHook` no longer floats Gimp windows + + * Don't crash when there are fewer workspaces than screens + + * `Query` is now an instance of `Applicative` + + * Various improvements to the example configuration file diff --git a/xmonad.cabal b/xmonad.cabal index 5850193..058aaa5 100644 --- a/xmonad.cabal +++ b/xmonad.cabal @@ -17,7 +17,7 @@ license: BSD3 license-file: LICENSE author: Spencer Janssen maintainer: xmonad@haskell.org -extra-source-files: README.md TODO CONFIG STYLE +extra-source-files: README.md CHANGES.md TODO CONFIG STYLE tests/*.hs tests/Properties/*.hs tests/Properties/Layout/*.hs From 60f472faa29ea855b09283819726c739baf15588 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Dec 2015 16:28:56 -0700 Subject: [PATCH 05/12] Fix a couple of links (darcs -> git) --- CHANGES.md | 2 +- README.md | 2 +- xmonad.cabal | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index acf6fa2..c010a48 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,6 @@ # Change Log / Release Notes -## 0.12 +## 0.12 (?) * Compiles with GHC 7.10.2 diff --git a/README.md b/README.md index ce0499c..1f69903 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ XMonadContrib is available at: * Latest release: - * Git version: + * Git version: ## Other Useful Programs diff --git a/xmonad.cabal b/xmonad.cabal index 058aaa5..4da1f19 100644 --- a/xmonad.cabal +++ b/xmonad.cabal @@ -25,7 +25,7 @@ extra-source-files: README.md CHANGES.md TODO CONFIG STYLE util/GenerateManpage.hs util/hpcReport.sh cabal-version: >= 1.8 -bug-reports: http://code.google.com/p/xmonad/issues/list +bug-reports: https://github.com/xmonad/xmonad/issues build-type: Simple tested-with: @@ -36,8 +36,8 @@ tested-with: data-files: man/xmonad.hs, man/xmonad.1, man/xmonad.1.html source-repository head - type: darcs - location: http://code.haskell.org/xmonad + type: git + location: https://github.com/xmonad/xmonad flag testing description: Testing mode, only build minimal components From 7e287ec8152fa8631b8bc8fde8d72dc40bdad353 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Dec 2015 16:46:16 -0700 Subject: [PATCH 06/12] Revert a typo that wasn't actually a typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1f69903..ce0499c 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ XMonadContrib is available at: * Latest release: - * Git version: + * Git version: ## Other Useful Programs From 73224be21b613c1055af9ad6f8b3d64d44032fd6 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 9 Dec 2015 12:54:14 -0700 Subject: [PATCH 07/12] Bring in entries from https://wiki.haskell.org/Xmonad/Notable_changes_since_0.11 --- CHANGES.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index c010a48..2c456c8 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,14 +2,24 @@ ## 0.12 (?) - * Compiles with GHC 7.10.2 + * Compiles with GHC 7.10.2, 7.8.4, and 7.6.3 + + * Use of [data-default][] allows using `def` where previously you + had to write `defaultConfig`, `defaultXPConfig`, etc. + + * The [setlocale][] package is now used instead of a binding shipped + with xmonad proper allowing the use of `Main.hs` instead of + `Main.hsc` * No longer encodes paths for `spawnPID` * The default `manageHook` no longer floats Gimp windows - * Don't crash when there are fewer workspaces than screens + * Doesn't crash when there are fewer workspaces than screens * `Query` is now an instance of `Applicative` * Various improvements to the example configuration file + +[data-default]: http://hackage.haskell.org/package/data-default +[setlocale]: https://hackage.haskell.org/package/setlocale From eb4ef5b23f44d916796a5026916ba647c43c1b95 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 11 Dec 2015 10:00:53 -0700 Subject: [PATCH 08/12] Update CONFIG instructions: defaultConfig -> def --- CONFIG | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONFIG b/CONFIG index ae49877..f83292b 100644 --- a/CONFIG +++ b/CONFIG @@ -21,7 +21,7 @@ $HOME/.xmonad/xmonad.hs : import XMonad - main = xmonad $ defaultConfig + main = xmonad $ def { borderWidth = 2 , terminal = "urxvt" , normalBorderColor = "#cccccc" From b68ebc797a0838185479c2be6809de441a9b6db1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 11 Dec 2015 10:34:31 -0700 Subject: [PATCH 09/12] Remove references to development snapshots from darcs --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ce0499c..5c4d2da 100644 --- a/README.md +++ b/README.md @@ -17,10 +17,11 @@ on several physical screens. cabal update cabal install xmonad xmonad-contrib - * Alternatively, install development snapshots (from git): + * Alternatively, build from source using the following repositories: - cabal install http://code.haskell.org/xmonad/xmonad.tar.gz \ - http://code.haskell.org/XMonadContrib/xmc.tar.gz + - + + - For the full story, read on. From 30b4ff5e4015d41456cd381b063a1f2376ded0c1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 11 Dec 2015 11:17:26 -0700 Subject: [PATCH 10/12] Update development references (darcs, code.google.com, etc.) * All references to darcs have been updated to git * Most Google Code references have been changed to GitHub * References to specific issues at code.google.com have been left alone * Updated the GenerateManpage.hs to work with the latest version of pandoc --- TODO | 5 ----- man/HCAR.tex | 4 ++-- man/xmonad.1 | 7 +++++-- man/xmonad.1.html | 2 +- man/xmonad.1.markdown | 2 +- util/GenerateManpage.hs | 7 ++++--- 6 files changed, 13 insertions(+), 14 deletions(-) diff --git a/TODO b/TODO index 9c9d9bc..1b3f644 100644 --- a/TODO +++ b/TODO @@ -1,8 +1,3 @@ -= General = - -* In the README, should we remove references to snapshots on - code.haskell.org? - = Release management = * generate, and push website haddocks with xmonad-web/gen-docs.sh diff --git a/man/HCAR.tex b/man/HCAR.tex index 338494a..68d6e6a 100644 --- a/man/HCAR.tex +++ b/man/HCAR.tex @@ -58,9 +58,9 @@ Binary packages of XMonad and XMonadContrib are available for all major Linux di \item Homepage: \url{http://xmonad.org/} -\item Darcs source: +\item Git source: - \texttt{darcs get} \url{http://code.haskell.org/xmonad} + \texttt{git clone} \url{https://github.com/xmonad/xmonad.git} \item IRC channel: \verb+#xmonad @@ irc.freenode.org+ diff --git a/man/xmonad.1 b/man/xmonad.1 index 0eaf383..a932b65 100644 --- a/man/xmonad.1 +++ b/man/xmonad.1 @@ -1,4 +1,7 @@ -.TH xmonad 1 "31 December 2012" xmonad-0.12 "xmonad manual".TH "" "" "" "" "" +.TH xmonad 1 "31 December 2012" xmonad-0.12 "xmonad manual".\" Automatically generated by Pandoc 1.15.1 +.\" +.hy +.TH "" "" "" "" "" .SH Name .PP xmonad \- a tiling window manager @@ -276,4 +279,4 @@ module was contained within xmonad or xmonad\-contrib. .PP Probably. If you find any, please report them to the -bugtracker (http://code.google.com/p/xmonad/issues/list) +bugtracker (https://github.com/xmonad/xmonad/issues) diff --git a/man/xmonad.1.html b/man/xmonad.1.html index ba59b35..2beffdb 100644 --- a/man/xmonad.1.html +++ b/man/xmonad.1.html @@ -160,6 +160,6 @@ function1 = error "function1: Not implemented yet!"

Your xmonad.hs may then import XMonad.Stack.MyAdditions as if that module was contained within xmonad or xmonad-contrib.

Bugs

-

Probably. If you find any, please report them to the bugtracker

+

Probably. If you find any, please report them to the bugtracker

diff --git a/man/xmonad.1.markdown b/man/xmonad.1.markdown index fb30cfc..22564ab 100644 --- a/man/xmonad.1.markdown +++ b/man/xmonad.1.markdown @@ -101,4 +101,4 @@ module was contained within xmonad or xmonad-contrib. Probably. If you find any, please report them to the [bugtracker] [xmonad.org]: http://xmonad.org -[bugtracker]: http://code.google.com/p/xmonad/issues/list +[bugtracker]: https://github.com/xmonad/xmonad/issues diff --git a/util/GenerateManpage.hs b/util/GenerateManpage.hs index b9ac27a..e96d076 100644 --- a/util/GenerateManpage.hs +++ b/util/GenerateManpage.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE FlexibleContexts #-} -- Unlike the rest of xmonad, this file is copyright under the terms of the -- GPL. @@ -12,7 +13,7 @@ -- Format for the docstrings in Config.hs takes the following form: -- -- -- mod-x %! Frob the whatsit --- +-- -- "Frob the whatsit" will be used as the description for keybinding "mod-x" -- -- If the keybinding name is omitted, it will try to guess from the rest of the @@ -34,7 +35,7 @@ import Distribution.PackageDescription import Text.PrettyPrint.HughesPJ import Distribution.Text -import Text.Pandoc -- works with 1.12.4 +import Text.Pandoc -- works with 1.15.x releaseDate = "31 December 2012" @@ -69,7 +70,7 @@ main = do let manHeader = unwords [".TH xmonad 1","\""++releaseDate++"\"",releaseName,"\"xmonad manual\""] - parsed <- readMarkdown def + Right parsed <- readMarkdown def . unlines . replace "___KEYBINDINGS___" keybindings . lines From 4c0717e9cc3eb041319c6ca0fa4909e80640de56 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 11 Dec 2015 11:19:40 -0700 Subject: [PATCH 11/12] Make it easier to update the man page --- xmonad.cabal | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/xmonad.cabal b/xmonad.cabal index 4da1f19..0605532 100644 --- a/xmonad.cabal +++ b/xmonad.cabal @@ -43,6 +43,11 @@ flag testing description: Testing mode, only build minimal components default: False +flag generatemanpage + description: Build the tool for generating the man page + default: False + manual: True + library hs-source-dirs: src exposed-modules: XMonad @@ -94,6 +99,18 @@ executable xmonad if impl(ghc >= 6.12.1) ghc-options: -Wall -fno-warn-unused-do-bind +executable generatemanpage + main-is: GenerateManpage.hs + hs-source-dirs: util + build-depends: base, + Cabal, + pandoc, + pretty, + regex-posix + + if !flag(generatemanpage) + buildable: False + -- note util/hpcReport.sh test-suite properties type: exitcode-stdio-1.0 From 45a78ba802b6a81bab0d4fcd376a2d5b60c22e14 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 14 Dec 2015 13:30:55 -0700 Subject: [PATCH 12/12] Finial tweaks before release --- CHANGES.md | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 2c456c8..0bfa2d5 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,6 @@ # Change Log / Release Notes -## 0.12 (?) +## 0.12 (December 14, 2015) * Compiles with GHC 7.10.2, 7.8.4, and 7.6.3 diff --git a/README.md b/README.md index 5c4d2da..0757fd5 100644 --- a/README.md +++ b/README.md @@ -91,12 +91,12 @@ A nicer xterm replacement, that supports resizing better: For custom status bars: - * dzen: - * xmobar: * taffybar: + * dzen: + For a program dispatch menu: * [XMonad.Prompt.Shell][xmc-prompt-shell]: (from [XMonadContrib][])