xmonad 0.17.1 → 0.17.2
raw patch · 10 files changed
+150/−149 lines, 10 filesdep ~mtldep ~unix
Dependency ranges changed: mtl, unix
Files
- CHANGES.md +7/−1
- INSTALL.md +1/−1
- man/xmonad.1 +50/−51
- man/xmonad.1.html +76/−73
- src/XMonad/Config.hs +1/−0
- src/XMonad/Core.hs +7/−1
- src/XMonad/Main.hs +1/−0
- src/XMonad/Operations.hs +2/−1
- tests/Properties/Stack.hs +0/−10
- xmonad.cabal +5/−11
CHANGES.md view
@@ -1,6 +1,12 @@ # Change Log / Release Notes -## 0.17.1 (September 3, 2021)+## 0.17.2 (April 2, 2023)++### Bug Fixes++ * Fixed the build with GHC 9.6.++## 0.17.1 (September 3, 2022) ### Enhancements
INSTALL.md view
@@ -101,7 +101,7 @@ out a tagged release, e.g.: ``` console-$ git clone --branch v0.17.1 https://github.com/xmonad/xmonad+$ git clone --branch v0.17.2 https://github.com/xmonad/xmonad $ git clone --branch v0.17.1 https://github.com/xmonad/xmonad-contrib ```
man/xmonad.1 view
@@ -1,10 +1,10 @@-.\" Automatically generated by Pandoc 2.5+.\" Automatically generated by Pandoc 2.9.2.1 .\" .TH "XMONAD" "1" "27 October 2021" "Tiling Window Manager" "" .hy .SH Name .PP-xmonad \- Tiling Window Manager+xmonad - Tiling Window Manager .SH Description .PP \f[I]xmonad\f[R] is a minimalist tiling window manager for X, written in@@ -36,27 +36,27 @@ emphasis on correctness and robustness. Internal properties of the window manager are checked using a combination of static guarantees provided by the type system, and-type\-based automated testing.+type-based automated testing. A benefit of this is that the code is simple to understand, and easy to modify. .SH Usage .PP \f[I]xmonad\f[R] places each window into a \[lq]workspace\[rq]. Each workspace can have any number of windows, which you can cycle-though with mod\-j and mod\-k.+though with mod-j and mod-k. Windows are either displayed full screen, tiled horizontally, or tiled vertically.-You can toggle the layout mode with mod\-space, which will cycle through+You can toggle the layout mode with mod-space, which will cycle through the available modes. .PP-You can switch to workspace N with mod\-N.-For example, to switch to workspace 5, you would press mod\-5.+You can switch to workspace N with mod-N.+For example, to switch to workspace 5, you would press mod-5. Similarly, you can move the current window to another workspace with-mod\-shift\-N.+mod-shift-N. .PP When running with multiple monitors (Xinerama), each screen has exactly 1 workspace visible.-mod\-{w,e,r} switch the focus between screens, while shift\-mod\-{w,e,r}+mod-{w,e,r} switch the focus between screens, while shift-mod-{w,e,r} move the current window to that screen. When \f[I]xmonad\f[R] starts, workspace 1 is on screen 1, workspace 2 is on screen 2, etc.@@ -67,115 +67,115 @@ xmonad has several flags which you may pass to the executable. These flags are: .TP-.B \[en]recompile+\[en]recompile Recompiles your \f[I]xmonad.hs\f[R] configuration .TP-.B \[en]restart+\[en]restart Causes the currently running \f[I]xmonad\f[R] process to restart .TP-.B \[en]replace+\[en]replace Replace the current window manager with xmonad .TP-.B \[en]version+\[en]version Display version of \f[I]xmonad\f[R] .TP-.B \[en]verbose\-version+\[en]verbose-version Display detailed version of \f[I]xmonad\f[R] .SS Default keyboard bindings .TP-.B mod\-shift\-return+mod-shift-return Launch terminal .TP-.B mod\-p+mod-p Launch dmenu .TP-.B mod\-shift\-p+mod-shift-p Launch gmrun .TP-.B mod\-shift\-c+mod-shift-c Close the focused window .TP-.B mod\-space+mod-space Rotate through the available layout algorithms .TP-.B mod\-shift\-space+mod-shift-space Reset the layouts on the current workspace to default .TP-.B mod\-n+mod-n Resize viewed windows to the correct size .TP-.B mod\-tab+mod-tab Move focus to the next window .TP-.B mod\-shift\-tab+mod-shift-tab Move focus to the previous window .TP-.B mod\-j+mod-j Move focus to the next window .TP-.B mod\-k+mod-k Move focus to the previous window .TP-.B mod\-m+mod-m Move focus to the master window .TP-.B mod\-return+mod-return Swap the focused window and the master window .TP-.B mod\-shift\-j+mod-shift-j Swap the focused window with the next window .TP-.B mod\-shift\-k+mod-shift-k Swap the focused window with the previous window .TP-.B mod\-h+mod-h Shrink the master area .TP-.B mod\-l+mod-l Expand the master area .TP-.B mod\-t+mod-t Push window back into tiling .TP-.B mod\-comma+mod-comma Increment the number of windows in the master area .TP-.B mod\-period+mod-period Deincrement the number of windows in the master area .TP-.B mod\-shift\-q+mod-shift-q Quit xmonad .TP-.B mod\-q+mod-q Restart xmonad .TP-.B mod\-shift\-slash+mod-shift-slash Run xmessage with a summary of the default keybindings (useful for beginners) .TP-.B mod\-question+mod-question Run xmessage with a summary of the default keybindings (useful for beginners) .TP-.B mod\-[1..9]+mod-[1..9] Switch to workspace N .TP-.B mod\-shift\-[1..9]+mod-shift-[1..9] Move client to workspace N .TP-.B mod\-{w,e,r}+mod-{w,e,r} Switch to physical/Xinerama screens 1, 2, or 3 .TP-.B mod\-shift\-{w,e,r}+mod-shift-{w,e,r} Move client to screen 1, 2, or 3 .TP-.B mod\-button1+mod-button1 Set the window to floating mode and move by dragging .TP-.B mod\-button2+mod-button2 Raise the window to the top of the stack .TP-.B mod\-button3+mod-button3 Set the window to floating mode and resize by dragging .SH Examples .PP@@ -188,7 +188,7 @@ .SH Customization .PP xmonad is customized in your \f[I]xmonad.hs\f[R], and then restarted-with mod\-q.+with mod-q. You can choose where your configuration file lives by .IP "1." 3 Setting \f[C]XMONAD_DATA_DIR,\f[R] \f[C]XMONAD_CONFIG_DIR\f[R], and@@ -201,14 +201,13 @@ Note that, in this case, xmonad will use \f[C]XDG_DATA_HOME\f[R] and \f[C]XDG_CACHE_HOME\f[R] for its data and cache directory respectively. .PP-You can find many extensions to the core feature set in the xmonad\-+You can find many extensions to the core feature set in the xmonad- contrib package, available through your package manager or from xmonad.org (https://xmonad.org). .SS Modular Configuration .PP-As of \f[I]xmonad\-0.9\f[R], any additional Haskell modules may be-placed in \f[I]\[ti]/.xmonad/lib/\f[R] are available in GHC\[cq]s-searchpath.+As of \f[I]xmonad-0.9\f[R], any additional Haskell modules may be placed+in \f[I]\[ti]/.xmonad/lib/\f[R] are available in GHC\[cq]s searchpath. Hierarchical modules are supported: for example, the file \f[I]\[ti]/.xmonad/lib/XMonad/Stack/MyAdditions.hs\f[R] could contain: .IP@@ -220,7 +219,7 @@ .fi .PP Your xmonad.hs may then import XMonad.Stack.MyAdditions as if that-module was contained within xmonad or xmonad\-contrib.+module was contained within xmonad or xmonad-contrib. .SH Bugs .PP Probably.
man/xmonad.1.html view
@@ -7,74 +7,75 @@ <meta name="author" content="" /> <meta name="dcterms.date" content="2021-10-27" /> <title>XMONAD(1) Tiling Window Manager</title>- <style type="text/css">- code{white-space: pre-wrap;}- span.smallcaps{font-variant: small-caps;}- span.underline{text-decoration: underline;}- div.column{display: inline-block; vertical-align: top; width: 50%;}- </style>- <style type="text/css">-a.sourceLine { display: inline-block; line-height: 1.25; }-a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; }-a.sourceLine:empty { height: 1.2em; }-.sourceCode { overflow: visible; }-code.sourceCode { white-space: pre; position: relative; }-div.sourceCode { margin: 1em 0; }-pre.sourceCode { margin: 0; }-@media screen {-div.sourceCode { overflow: auto; }-}-@media print {-code.sourceCode { white-space: pre-wrap; }-a.sourceLine { text-indent: -1em; padding-left: 1em; }-}-pre.numberSource a.sourceLine- { position: relative; left: -4em; }-pre.numberSource a.sourceLine::before- { content: attr(title);- position: relative; left: -1em; text-align: right; vertical-align: baseline;- border: none; pointer-events: all; display: inline-block;- -webkit-touch-callout: none; -webkit-user-select: none;- -khtml-user-select: none; -moz-user-select: none;- -ms-user-select: none; user-select: none;- padding: 0 4px; width: 4em;- color: #aaaaaa;- }-pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }-div.sourceCode- { }-@media screen {-a.sourceLine::before { text-decoration: underline; }-}-code span.al { color: #ff0000; font-weight: bold; } /* Alert */-code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */-code span.at { color: #7d9029; } /* Attribute */-code span.bn { color: #40a070; } /* BaseN */-code span.bu { } /* BuiltIn */-code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */-code span.ch { color: #4070a0; } /* Char */-code span.cn { color: #880000; } /* Constant */-code span.co { color: #60a0b0; font-style: italic; } /* Comment */-code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */-code span.do { color: #ba2121; font-style: italic; } /* Documentation */-code span.dt { color: #902000; } /* DataType */-code span.dv { color: #40a070; } /* DecVal */-code span.er { color: #ff0000; font-weight: bold; } /* Error */-code span.ex { } /* Extension */-code span.fl { color: #40a070; } /* Float */-code span.fu { color: #06287e; } /* Function */-code span.im { } /* Import */-code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */-code span.kw { color: #007020; font-weight: bold; } /* Keyword */-code span.op { color: #666666; } /* Operator */-code span.ot { color: #007020; } /* Other */-code span.pp { color: #bc7a00; } /* Preprocessor */-code span.sc { color: #4070a0; } /* SpecialChar */-code span.ss { color: #bb6688; } /* SpecialString */-code span.st { color: #4070a0; } /* String */-code span.va { color: #19177c; } /* Variable */-code span.vs { color: #4070a0; } /* VerbatimString */-code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */+ <style>+ code{white-space: pre-wrap;}+ span.smallcaps{font-variant: small-caps;}+ span.underline{text-decoration: underline;}+ div.column{display: inline-block; vertical-align: top; width: 50%;}+ div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}+ ul.task-list{list-style: none;}+ pre > code.sourceCode { white-space: pre; position: relative; }+ pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }+ pre > code.sourceCode > span:empty { height: 1.2em; }+ code.sourceCode > span { color: inherit; text-decoration: inherit; }+ div.sourceCode { margin: 1em 0; }+ pre.sourceCode { margin: 0; }+ @media screen {+ div.sourceCode { overflow: auto; }+ }+ @media print {+ pre > code.sourceCode { white-space: pre-wrap; }+ pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }+ }+ pre.numberSource code+ { counter-reset: source-line 0; }+ pre.numberSource code > span+ { position: relative; left: -4em; counter-increment: source-line; }+ pre.numberSource code > span > a:first-child::before+ { content: counter(source-line);+ position: relative; left: -1em; text-align: right; vertical-align: baseline;+ border: none; display: inline-block;+ -webkit-touch-callout: none; -webkit-user-select: none;+ -khtml-user-select: none; -moz-user-select: none;+ -ms-user-select: none; user-select: none;+ padding: 0 4px; width: 4em;+ color: #aaaaaa;+ }+ pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }+ div.sourceCode+ { }+ @media screen {+ pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }+ }+ code span.al { color: #ff0000; font-weight: bold; } /* Alert */+ code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */+ code span.at { color: #7d9029; } /* Attribute */+ code span.bn { color: #40a070; } /* BaseN */+ code span.bu { } /* BuiltIn */+ code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */+ code span.ch { color: #4070a0; } /* Char */+ code span.cn { color: #880000; } /* Constant */+ code span.co { color: #60a0b0; font-style: italic; } /* Comment */+ code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */+ code span.do { color: #ba2121; font-style: italic; } /* Documentation */+ code span.dt { color: #902000; } /* DataType */+ code span.dv { color: #40a070; } /* DecVal */+ code span.er { color: #ff0000; font-weight: bold; } /* Error */+ code span.ex { } /* Extension */+ code span.fl { color: #40a070; } /* Float */+ code span.fu { color: #06287e; } /* Function */+ code span.im { } /* Import */+ code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */+ code span.kw { color: #007020; font-weight: bold; } /* Keyword */+ code span.op { color: #666666; } /* Operator */+ code span.ot { color: #007020; } /* Other */+ code span.pp { color: #bc7a00; } /* Preprocessor */+ code span.sc { color: #4070a0; } /* SpecialChar */+ code span.ss { color: #bb6688; } /* SpecialString */+ code span.st { color: #4070a0; } /* String */+ code span.va { color: #19177c; } /* Variable */+ code span.vs { color: #4070a0; } /* VerbatimString */+ code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */ </style> </head> <body>@@ -83,16 +84,18 @@ <p class="author"></p> <p class="date">27 October 2021</p> </header>-<nav id="TOC">+<nav id="TOC" role="doc-toc"> <ul> <li><a href="#name">Name</a></li> <li><a href="#description">Description</a></li>-<li><a href="#usage">Usage</a><ul>+<li><a href="#usage">Usage</a>+<ul> <li><a href="#flags">Flags</a></li> <li><a href="#default-keyboard-bindings">Default keyboard bindings</a></li> </ul></li> <li><a href="#examples">Examples</a></li>-<li><a href="#customization">Customization</a><ul>+<li><a href="#customization">Customization</a>+<ul> <li><a href="#modular-configuration">Modular Configuration</a></li> </ul></li> <li><a href="#bugs">Bugs</a></li>@@ -238,8 +241,8 @@ <p>You can find many extensions to the core feature set in the xmonad- contrib package, available through your package manager or from <a href="https://xmonad.org">xmonad.org</a>.</p> <h2 id="modular-configuration">Modular Configuration</h2> <p>As of <em>xmonad-0.9</em>, any additional Haskell modules may be placed in <em>~/.xmonad/lib/</em> are available in GHC’s searchpath. Hierarchical modules are supported: for example, the file <em>~/.xmonad/lib/XMonad/Stack/MyAdditions.hs</em> could contain:</p>-<div class="sourceCode" id="cb1"><pre class="sourceCode haskell"><code class="sourceCode haskell"><a class="sourceLine" id="cb1-1" title="1"><span class="kw">module</span> <span class="dt">XMonad.Stack.MyAdditions</span> (function1) <span class="kw">where</span></a>-<a class="sourceLine" id="cb1-2" title="2"> function1 <span class="ot">=</span> <span class="fu">error</span> <span class="st">"function1: Not implemented yet!"</span></a></code></pre></div>+<div class="sourceCode" id="cb1"><pre class="sourceCode haskell"><code class="sourceCode haskell"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true"></a><span class="kw">module</span> <span class="dt">XMonad.Stack.MyAdditions</span> (function1) <span class="kw">where</span></span>+<span id="cb1-2"><a href="#cb1-2" aria-hidden="true"></a> function1 <span class="ot">=</span> <span class="fu">error</span> <span class="st">"function1: Not implemented yet!"</span></span></code></pre></div> <p>Your xmonad.hs may then import XMonad.Stack.MyAdditions as if that module was contained within xmonad or xmonad-contrib.</p> <h1 id="bugs">Bugs</h1> <p>Probably. If you find any, please report them to the <a href="https://github.com/xmonad/xmonad/issues">bugtracker</a></p>
src/XMonad/Config.hs view
@@ -1,5 +1,6 @@ {-# OPTIONS_GHC -fno-warn-missing-signatures -fno-warn-orphans #-} {-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-} ----------------------------------------------------------------------------- -- | -- Module : XMonad.Config
src/XMonad/Core.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE FlexibleInstances #-}@@ -44,9 +45,10 @@ import qualified Control.Exception as E import Control.Applicative ((<|>), empty) import Control.Monad.Fail+import Control.Monad.Fix (fix) import Control.Monad.State import Control.Monad.Reader-import Control.Monad (void)+import Control.Monad (filterM, guard, liftM2, void, when) import Data.Semigroup import Data.Traversable (for) import Data.Time.Clock (UTCTime)@@ -451,7 +453,11 @@ x where nullStdin = do+#if MIN_VERSION_unix(2,8,0)+ fd <- openFd "/dev/null" ReadOnly defaultFileFlags+#else fd <- openFd "/dev/null" ReadOnly Nothing defaultFileFlags+#endif dupTo fd stdInput closeFd fd
src/XMonad/Main.hs view
@@ -27,6 +27,7 @@ import qualified Data.Set as S import Control.Monad.Reader import Control.Monad.State+import Control.Monad (filterM, guard, unless, void, when) import Data.Maybe (fromMaybe, isJust) import Data.Monoid (getAll)
src/XMonad/Operations.hs view
@@ -70,9 +70,10 @@ import qualified Data.Set as S import Control.Arrow (second)+import Control.Monad.Fix (fix) import Control.Monad.Reader import Control.Monad.State-import Control.Monad (void)+import Control.Monad (forM, forM_, guard, join, unless, void, when) import qualified Control.Exception as C import System.IO
tests/Properties/Stack.hs view
@@ -1,9 +1,5 @@-{-# LANGUAGE CPP #-} {-# LANGUAGE ScopedTypeVariables #-}--#ifdef VERSION_quickcheck_classes {-# LANGUAGE GeneralizedNewtypeDeriving #-}-#endif module Properties.Stack where @@ -15,13 +11,11 @@ import Data.Maybe -#ifdef VERSION_quickcheck_classes import Data.Proxy import Test.QuickCheck.Classes ( Laws (lawsTypeclass, lawsProperties), Proxy1 (Proxy1), foldableLaws, traversableLaws, )-#endif -- The list returned by index should be the same length as the actual@@ -65,7 +59,6 @@ where _ = xs :: [Int] -#ifdef VERSION_quickcheck_classes -- Check type class laws of 'Data.Foldable.Foldable' and 'Data.Traversable.Traversable'. newtype TestStack a = TestStack (Stack a) deriving (Eq, Read, Show, Foldable, Functor)@@ -82,6 +75,3 @@ p = Proxy :: Proxy TestStack format laws = [ ("Stack: " <> lawsTypeclass laws <> ": " <> name, prop) | (name, prop) <- lawsProperties laws ]-#else-prop_laws_Stack = []-#endif
xmonad.cabal view
@@ -1,5 +1,5 @@ name: xmonad-version: 0.17.1+version: 0.17.2 synopsis: A tiling window manager description: xmonad is a tiling window manager for X. Windows are arranged automatically to tile the screen without gaps or overlap, maximising@@ -27,7 +27,7 @@ Ondřej Súkup, Paul Hebble, Shachaf Ben-Kiki, Siim Põder, Tim McIver, Trevor Elliott, Wouter Swierstra, Conrad Irwin, Tim Thelion, Tony Zorman maintainer: xmonad@haskell.org-tested-with: GHC == 8.4.4 || == 8.6.5 || == 8.8.4 || == 8.10.7 || == 9.0.2 || == 9.2.2+tested-with: GHC == 8.6.5 || == 8.8.4 || == 8.10.7 || == 9.0.2 || == 9.2.7 || == 9.4.4 || == 9.6.1 category: System homepage: http://xmonad.org bug-reports: https://github.com/xmonad/xmonad/issues@@ -54,8 +54,6 @@ default: False manual: True -flag quickcheck-classes- library exposed-modules: XMonad XMonad.Config@@ -83,7 +81,7 @@ default-language: Haskell2010 -- Keep this in sync with the oldest version in 'tested-with'- if impl(ghc > 8.4.4)+ if impl(ghc > 8.6.5) ghc-options: -Wno-unused-imports if flag(pedantic)@@ -96,7 +94,7 @@ default-language: Haskell2010 -- Keep this in sync with the oldest version in 'tested-with'- if impl(ghc > 8.4.4)+ if impl(ghc > 8.6.5) ghc-options: -Wno-unused-imports if flag(pedantic)@@ -125,15 +123,11 @@ hs-source-dirs: tests build-depends: base , QuickCheck >= 2+ , quickcheck-classes >= 0.4.3 , X11 , containers , xmonad default-language: Haskell2010-- if flag(quickcheck-classes) && impl(ghc > 8.5)- -- no quickcheck-classes in LTS-12- -- GHC 8.4 and lower needs too much boilerplate (Eq1, Show1, …)- build-depends: quickcheck-classes >= 0.4.3 if flag(pedantic) ghc-options: -Werror