From 9d0fd62cb281c7ed4da7b41bf6d2214990d2c81c Mon Sep 17 00:00:00 2001 From: a5ob7r <12132068+a5ob7r@users.noreply.github.com> Date: Thu, 3 Nov 2022 14:39:28 +0900 Subject: [PATCH 01/29] Fix compatibilities with mtl 2.3.1 No longer the version of mtl re-exports Control.Monad, Control.Monad.Fix and Data.Monoid modules, so we need to import them directly instead. --- src/XMonad/Core.hs | 3 ++- src/XMonad/Main.hs | 1 + src/XMonad/Operations.hs | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/XMonad/Core.hs b/src/XMonad/Core.hs index e8e610d..de4a9a7 100644 --- a/src/XMonad/Core.hs +++ b/src/XMonad/Core.hs @@ -44,9 +44,10 @@ import Control.Exception (fromException, try, bracket_, throw, finally, SomeExce 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) diff --git a/src/XMonad/Main.hs b/src/XMonad/Main.hs index 0bc0137..3f6ba73 100644 --- a/src/XMonad/Main.hs +++ b/src/XMonad/Main.hs @@ -27,6 +27,7 @@ import qualified Data.Map as M 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) diff --git a/src/XMonad/Operations.hs b/src/XMonad/Operations.hs index 6d9ab5e..7e614fc 100644 --- a/src/XMonad/Operations.hs +++ b/src/XMonad/Operations.hs @@ -70,9 +70,10 @@ import qualified Data.Map as M 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 From faf5cf7b273705134886f08870a380eef828c96b Mon Sep 17 00:00:00 2001 From: a5ob7r <12132068+a5ob7r@users.noreply.github.com> Date: Sat, 5 Nov 2022 00:11:06 +0900 Subject: [PATCH 02/29] Fix compatibilities with unix 2.8.0.0 The version of unix removes the 3rd Maybe FileMode argument of openFd, so we need to handle this breaking change using a MIN_VERSION macro. The argument is integrated with the OpenFileFlags argument and the integrated value in defaultFileFlags is Nothing, so there's no difference between the two function calls. --- src/XMonad/Core.hs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/XMonad/Core.hs b/src/XMonad/Core.hs index de4a9a7..982d555 100644 --- a/src/XMonad/Core.hs +++ b/src/XMonad/Core.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE CPP #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE FlexibleInstances #-} @@ -452,7 +453,11 @@ xfork x = io . forkProcess . finally nullStdin $ do 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 From f2c9c75f671d6c49f633f73a0be03f2b2579676b Mon Sep 17 00:00:00 2001 From: Tomas Janousek Date: Sun, 30 Oct 2022 20:22:35 +0000 Subject: [PATCH 03/29] ci: Add hlint workflow The "haskell/actions/hlint-run" GitHub Action produces annotations which GitHub shows in the code diff, in addition to just failing the workflow when there are any suggestions. Also, now it runs in parallel to the other workflows. Related: https://github.com/xmonad/xmonad-contrib/issues/669 Related: https://github.com/xmonad/xmonad-contrib/commit/dd26fcc3f1c5ff16399e860502be10c4ada37b8a --- .github/workflows/hlint.yaml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/workflows/hlint.yaml diff --git a/.github/workflows/hlint.yaml b/.github/workflows/hlint.yaml new file mode 100644 index 0000000..a63bd26 --- /dev/null +++ b/.github/workflows/hlint.yaml @@ -0,0 +1,22 @@ +name: hlint + +on: + push: + pull_request: + +jobs: + hlint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: 'Set up HLint' + uses: haskell/actions/hlint-setup@v2 + with: + version: '3.4.1' + + - name: 'Run HLint' + uses: haskell/actions/hlint-run@v2 + with: + path: '.' + fail-on: status From 2324d2120233e18221503b46be081a2d78049f39 Mon Sep 17 00:00:00 2001 From: Tomas Janousek Date: Sun, 30 Oct 2022 20:28:22 +0000 Subject: [PATCH 04/29] ci: Bump haskell-ci --- .github/workflows/haskell-ci-hackage.patch | 4 ++-- .github/workflows/haskell-ci.yml | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/haskell-ci-hackage.patch b/.github/workflows/haskell-ci-hackage.patch index cc45e22..36240f8 100644 --- a/.github/workflows/haskell-ci-hackage.patch +++ b/.github/workflows/haskell-ci-hackage.patch @@ -49,8 +49,8 @@ set in GitHub repository secrets. ${CABAL} -vnormal check - name: haddock run: | -- $CABAL v2-haddock $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all -+ $CABAL v2-haddock $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH --haddock-for-hackage --builddir $GITHUB_WORKSPACE/haddock all +- $CABAL v2-haddock --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all ++ $CABAL v2-haddock --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH --haddock-for-hackage --builddir $GITHUB_WORKSPACE/haddock all - name: unconstrained build run: | rm -f cabal.project.local diff --git a/.github/workflows/haskell-ci.yml b/.github/workflows/haskell-ci.yml index 59d3f46..8414c85 100644 --- a/.github/workflows/haskell-ci.yml +++ b/.github/workflows/haskell-ci.yml @@ -8,9 +8,9 @@ # # For more information, see https://github.com/haskell-CI/haskell-ci # -# version: 0.14.3 +# version: 0.15.20221009 # -# REGENDATA ("0.14.3",["github","cabal.project"]) +# REGENDATA ("0.15.20221009",["github","cabal.project"]) # name: Haskell-CI on: @@ -26,7 +26,7 @@ on: jobs: linux: name: Haskell-CI - Linux - ${{ matrix.compiler }} - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 timeout-minutes: 60 container: @@ -74,10 +74,10 @@ jobs: apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 if [ "${{ matrix.setup-method }}" = ghcup ]; then mkdir -p "$HOME/.ghcup/bin" - curl -sL https://downloads.haskell.org/ghcup/0.1.17.5/x86_64-linux-ghcup-0.1.17.5 > "$HOME/.ghcup/bin/ghcup" + curl -sL https://downloads.haskell.org/ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 > "$HOME/.ghcup/bin/ghcup" chmod a+x "$HOME/.ghcup/bin/ghcup" - "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" - "$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0 + "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false) + "$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false) apt-get update apt-get install -y libx11-dev libxext-dev libxinerama-dev libxrandr-dev libxss-dev else @@ -85,9 +85,9 @@ jobs: apt-get update apt-get install -y "$HCNAME" libx11-dev libxext-dev libxinerama-dev libxrandr-dev libxss-dev mkdir -p "$HOME/.ghcup/bin" - curl -sL https://downloads.haskell.org/ghcup/0.1.17.5/x86_64-linux-ghcup-0.1.17.5 > "$HOME/.ghcup/bin/ghcup" + curl -sL https://downloads.haskell.org/ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 > "$HOME/.ghcup/bin/ghcup" chmod a+x "$HOME/.ghcup/bin/ghcup" - "$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0 + "$HOME/.ghcup/bin/ghcup" install cabal 3.6.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false) fi env: HCKIND: ${{ matrix.compilerKind }} @@ -163,7 +163,7 @@ jobs: - name: cache (tools) uses: actions/cache@v2 with: - key: ${{ runner.os }}-${{ matrix.compiler }}-tools-c0dbbd39 + key: ${{ runner.os }}-${{ matrix.compiler }}-tools-cae21cc2 path: ~/.haskell-ci-tools - name: install cabal-plan run: | @@ -249,7 +249,7 @@ jobs: ${CABAL} -vnormal check - name: haddock run: | - $CABAL v2-haddock $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH --haddock-for-hackage --builddir $GITHUB_WORKSPACE/haddock all + $CABAL v2-haddock --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH --haddock-for-hackage --builddir $GITHUB_WORKSPACE/haddock all - name: unconstrained build run: | rm -f cabal.project.local From f53db042856fb7e8ef1bf142a67aed2245b667fa Mon Sep 17 00:00:00 2001 From: Tomas Janousek Date: Sun, 30 Oct 2022 20:28:54 +0000 Subject: [PATCH 05/29] ci: Drop hlint from haskell-ci workflow As we have a separate hlint workflow now, this is no longer needed. Related: https://github.com/xmonad/xmonad-contrib/issues/669 Related: https://github.com/xmonad/xmonad-contrib/commit/7cee1915169d24f38bed30b641e554dd5de59bdc --- .github/workflows/haskell-ci.yml | 15 --------------- cabal.haskell-ci | 5 ----- 2 files changed, 20 deletions(-) diff --git a/.github/workflows/haskell-ci.yml b/.github/workflows/haskell-ci.yml index 8414c85..693883d 100644 --- a/.github/workflows/haskell-ci.yml +++ b/.github/workflows/haskell-ci.yml @@ -160,11 +160,6 @@ jobs: - name: update cabal index run: | $CABAL v2-update -v - - name: cache (tools) - uses: actions/cache@v2 - with: - key: ${{ runner.os }}-${{ matrix.compiler }}-tools-cae21cc2 - path: ~/.haskell-ci-tools - name: install cabal-plan run: | mkdir -p $HOME/.cabal/bin @@ -174,12 +169,6 @@ jobs: rm -f cabal-plan.xz chmod a+x $HOME/.cabal/bin/cabal-plan cabal-plan --version - - name: install hlint - run: | - if [ $((HCNUMVER >= 90000 && HCNUMVER < 90200)) -ne 0 ] ; then HLINTVER=$(cd /tmp && (${CABAL} v2-install -v $ARG_COMPILER --dry-run hlint --constraint='hlint >=3.4 && <3.5' | perl -ne 'if (/\bhlint-(\d+(\.\d+)*)\b/) { print "$1"; last; }')); echo "HLint version $HLINTVER" ; fi - if [ $((HCNUMVER >= 90000 && HCNUMVER < 90200)) -ne 0 ] ; then if [ ! -e $HOME/.haskell-ci-tools/hlint-$HLINTVER/hlint ]; then echo "Downloading HLint version $HLINTVER"; mkdir -p $HOME/.haskell-ci-tools; curl --write-out 'Status Code: %{http_code} Redirects: %{num_redirects} Total time: %{time_total} Total Dsize: %{size_download}\n' --silent --location --output $HOME/.haskell-ci-tools/hlint-$HLINTVER.tar.gz "https://github.com/ndmitchell/hlint/releases/download/v$HLINTVER/hlint-$HLINTVER-x86_64-linux.tar.gz"; tar -xzv -f $HOME/.haskell-ci-tools/hlint-$HLINTVER.tar.gz -C $HOME/.haskell-ci-tools; fi ; fi - if [ $((HCNUMVER >= 90000 && HCNUMVER < 90200)) -ne 0 ] ; then mkdir -p $CABAL_DIR/bin && ln -sf "$HOME/.haskell-ci-tools/hlint-$HLINTVER/hlint" $CABAL_DIR/bin/hlint ; fi - if [ $((HCNUMVER >= 90000 && HCNUMVER < 90200)) -ne 0 ] ; then hlint --version ; fi - name: checkout uses: actions/checkout@v2 with: @@ -239,10 +228,6 @@ jobs: - name: tests run: | $CABAL v2-test $ARG_COMPILER $ARG_TESTS $ARG_BENCH all --test-show-details=direct - - name: hlint - run: | - if [ $((HCNUMVER >= 90000 && HCNUMVER < 90200)) -ne 0 ] ; then (cd ${PKGDIR_xmonad} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 src) ; fi - if [ $((HCNUMVER >= 90000 && HCNUMVER < 90200)) -ne 0 ] ; then (cd ${PKGDIR_xmonad} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 .) ; fi - name: cabal check run: | cd ${PKGDIR_xmonad} || false diff --git a/cabal.haskell-ci b/cabal.haskell-ci index 90b2aca..8c62418 100644 --- a/cabal.haskell-ci +++ b/cabal.haskell-ci @@ -5,11 +5,6 @@ apt: libxrandr-dev libxss-dev -hlint: True -hlint-job: 9.0.2 -hlint-yaml: .hlint.yaml -hlint-version: ==3.4.* - github-patches: .github/workflows/haskell-ci-hackage.patch From 572d02d8e87587ed36e4c4d8944f3614927a0298 Mon Sep 17 00:00:00 2001 From: Tomas Janousek Date: Sun, 30 Oct 2022 20:37:48 +0000 Subject: [PATCH 06/29] ci: Replace deprecated GHA set-output command See https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/ --- .github/workflows/stack.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stack.yml b/.github/workflows/stack.yml index 7ad175c..7142157 100644 --- a/.github/workflows/stack.yml +++ b/.github/workflows/stack.yml @@ -59,7 +59,7 @@ jobs: # date is prefixed with an epoch number to let us manually refresh the # cache when needed. This is a workaround for https://github.com/actions/cache/issues/2 run: | - echo "::set-output name=date::1-$(date +%Y-%m)" + date +date=1-%Y-%m >> $GITHUB_OUTPUT - name: Cache Haskell package metadata uses: actions/cache@v2 From dc48e9e9c9698056b5c78f0e5a9f5a352be9bb78 Mon Sep 17 00:00:00 2001 From: Tomas Janousek Date: Sun, 30 Oct 2022 20:53:39 +0000 Subject: [PATCH 07/29] ci: Drop GHC installation via apt The apt repo hosting these packages has been unmaintained for quite a while, and we've excluded ~/.stack/programs from the cache long time ago, so we can just let stack handle the installation. It's not much slower than installing via apt, and even if it was, some matrix jobs need to use the slow path anyway. Related: 9fce3805fcf2 ("ci: Use system GHC in Stack to not waste GH Actions cache space") Related: 7d10e470d71d ("ci: Avoid caching GHC") --- .github/workflows/stack.yml | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/.github/workflows/stack.yml b/.github/workflows/stack.yml index 7142157..cd18610 100644 --- a/.github/workflows/stack.yml +++ b/.github/workflows/stack.yml @@ -12,16 +12,11 @@ jobs: fail-fast: false matrix: include: - - resolver: lts-12 - ghc: 8.4.4 - - resolver: lts-14 - ghc: 8.6.5 - - resolver: lts-16 - ghc: 8.8.4 - - resolver: lts-18 - ghc: 8.10.7 - - resolver: lts-19 - ghc: 9.0.2 + - resolver: lts-12 # GHC 8.4 + - resolver: lts-14 # GHC 8.6 + - resolver: lts-16 # GHC 8.8 + - resolver: lts-18 # GHC 8.10 + - resolver: lts-19 # GHC 9.0 steps: - name: Clone project @@ -44,14 +39,6 @@ jobs: libxss-dev \ # - - name: Install GHC - # use system ghc (if available) in stack, don't waste GH Actions cache space - continue-on-error: true - run: | - set -ex - sudo apt install -y ghc-${{ matrix.ghc }} - echo /opt/ghc/${{ matrix.ghc }}/bin >> $GITHUB_PATH - - name: Refresh caches once a month id: cache-date # GHA writes caches on the first miss and then never updates them again; From 98e5d1583d73681955a841cc80a080d15560269c Mon Sep 17 00:00:00 2001 From: Tomas Janousek Date: Sun, 30 Oct 2022 21:09:09 +0000 Subject: [PATCH 08/29] ci: Bump actions/{checkout,cache} to v3 This gets rid of the deprecation warnings about https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/ --- .github/workflows/generatemanpage.yml | 2 +- .github/workflows/nix.yml | 2 +- .github/workflows/packdeps.yml | 2 +- .github/workflows/stack.yml | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/generatemanpage.yml b/.github/workflows/generatemanpage.yml index 40b6f4c..b40176e 100644 --- a/.github/workflows/generatemanpage.yml +++ b/.github/workflows/generatemanpage.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Clone project - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Install dependencies run: | diff --git a/.github/workflows/nix.yml b/.github/workflows/nix.yml index 348e64d..d649b4a 100644 --- a/.github/workflows/nix.yml +++ b/.github/workflows/nix.yml @@ -20,6 +20,6 @@ jobs: experimental-features = nix-command flakes access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} - name: Clone project - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Build run: nix build --print-build-logs diff --git a/.github/workflows/packdeps.yml b/.github/workflows/packdeps.yml index d05b1d4..636b7be 100644 --- a/.github/workflows/packdeps.yml +++ b/.github/workflows/packdeps.yml @@ -13,7 +13,7 @@ jobs: steps: - name: Clone project - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Setup Haskell uses: haskell/actions/setup@v1 with: diff --git a/.github/workflows/stack.yml b/.github/workflows/stack.yml index cd18610..f24b382 100644 --- a/.github/workflows/stack.yml +++ b/.github/workflows/stack.yml @@ -20,7 +20,7 @@ jobs: steps: - name: Clone project - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Prepare apt sources run: | @@ -49,13 +49,13 @@ jobs: date +date=1-%Y-%m >> $GITHUB_OUTPUT - name: Cache Haskell package metadata - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.stack/pantry key: stack-pantry-${{ runner.os }}-${{ steps.cache-date.outputs.date }} - name: Cache Haskell dependencies - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: | ~/.stack/* From 4806b51a23f394fcdd90a702dfa25decaacf340a Mon Sep 17 00:00:00 2001 From: Tomas Janousek Date: Sun, 30 Oct 2022 21:09:09 +0000 Subject: [PATCH 09/29] ci: Bump cachix/install-nix-action to v18 This gets rid of the deprecation warnings about https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/ --- .github/workflows/nix.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nix.yml b/.github/workflows/nix.yml index d649b4a..8f8a716 100644 --- a/.github/workflows/nix.yml +++ b/.github/workflows/nix.yml @@ -12,7 +12,7 @@ jobs: contents: read steps: - name: Install Nix - uses: cachix/install-nix-action@v13 + uses: cachix/install-nix-action@v18 with: install_url: https://nixos-nix-install-tests.cachix.org/serve/i6laym9jw3wg9mw6ncyrk6gjx4l34vvx/install install_options: '--tarball-url-prefix https://nixos-nix-install-tests.cachix.org/serve' From 67267b73463d2343be39563e0203d93f85e36ad7 Mon Sep 17 00:00:00 2001 From: Tomas Janousek Date: Sun, 30 Oct 2022 21:36:23 +0000 Subject: [PATCH 10/29] ci: Add GHC 9.4 to tested-with matrix (haskell-ci workflow) (Also bump 9.2 to 9.2.4) --- .github/workflows/haskell-ci.yml | 9 +++++++-- xmonad.cabal | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/haskell-ci.yml b/.github/workflows/haskell-ci.yml index 693883d..7adf874 100644 --- a/.github/workflows/haskell-ci.yml +++ b/.github/workflows/haskell-ci.yml @@ -35,9 +35,14 @@ jobs: strategy: matrix: include: - - compiler: ghc-9.2.2 + - compiler: ghc-9.4.2 compilerKind: ghc - compilerVersion: 9.2.2 + compilerVersion: 9.4.2 + setup-method: ghcup + allow-failure: false + - compiler: ghc-9.2.4 + compilerKind: ghc + compilerVersion: 9.2.4 setup-method: ghcup allow-failure: false - compiler: ghc-9.0.2 diff --git a/xmonad.cabal b/xmonad.cabal index 15d4e0a..1d2733c 100644 --- a/xmonad.cabal +++ b/xmonad.cabal @@ -27,7 +27,7 @@ author: Spencer Janssen, Don Stewart, Adam Vogt, David Roundy, Jason 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.4.4 || == 8.6.5 || == 8.8.4 || == 8.10.7 || == 9.0.2 || == 9.2.4 || == 9.4.2 category: System homepage: http://xmonad.org bug-reports: https://github.com/xmonad/xmonad/issues From 4931bc4e418c49c5d441277f3bcecc906c4f4699 Mon Sep 17 00:00:00 2001 From: Tomas Janousek Date: Sun, 30 Oct 2022 21:48:36 +0000 Subject: [PATCH 11/29] X.Config: Appease -Werror=type-equality-requires-operators MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GHC 9.4 complains: The use of ‘~’ without TypeOperators will become an error in a future GHC release. --- src/XMonad/Config.hs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/XMonad/Config.hs b/src/XMonad/Config.hs index 793096e..ace588a 100644 --- a/src/XMonad/Config.hs +++ b/src/XMonad/Config.hs @@ -1,5 +1,6 @@ {-# OPTIONS_GHC -fno-warn-missing-signatures -fno-warn-orphans #-} {-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE TypeOperators #-} ----------------------------------------------------------------------------- -- | -- Module : XMonad.Config From dd1e02555e8b482b6a1f4644a13c61bf7258086b Mon Sep 17 00:00:00 2001 From: Tomas Janousek Date: Sun, 30 Oct 2022 23:01:41 +0000 Subject: [PATCH 12/29] ci: Fix docs tarball MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit haskell-ci by default passes --haddock-all to cabal v2-haddock, which builds docs for all components and the …-docs.tar.gz tarball ends up containing the docs for the last component, which happens to be tests. We need the tarball to contain the library docs, for upload to Hackage. Fixes: 25a4ed69da9c ("ci: Bump haskell-ci") --- .github/workflows/haskell-ci-hackage.patch | 4 ++-- .github/workflows/haskell-ci.yml | 2 +- cabal.haskell-ci | 3 +++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/haskell-ci-hackage.patch b/.github/workflows/haskell-ci-hackage.patch index 36240f8..cc45e22 100644 --- a/.github/workflows/haskell-ci-hackage.patch +++ b/.github/workflows/haskell-ci-hackage.patch @@ -49,8 +49,8 @@ set in GitHub repository secrets. ${CABAL} -vnormal check - name: haddock run: | -- $CABAL v2-haddock --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all -+ $CABAL v2-haddock --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH --haddock-for-hackage --builddir $GITHUB_WORKSPACE/haddock all +- $CABAL v2-haddock $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all ++ $CABAL v2-haddock $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH --haddock-for-hackage --builddir $GITHUB_WORKSPACE/haddock all - name: unconstrained build run: | rm -f cabal.project.local diff --git a/.github/workflows/haskell-ci.yml b/.github/workflows/haskell-ci.yml index 7adf874..3021902 100644 --- a/.github/workflows/haskell-ci.yml +++ b/.github/workflows/haskell-ci.yml @@ -239,7 +239,7 @@ jobs: ${CABAL} -vnormal check - name: haddock run: | - $CABAL v2-haddock --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH --haddock-for-hackage --builddir $GITHUB_WORKSPACE/haddock all + $CABAL v2-haddock $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH --haddock-for-hackage --builddir $GITHUB_WORKSPACE/haddock all - name: unconstrained build run: | rm -f cabal.project.local diff --git a/cabal.haskell-ci b/cabal.haskell-ci index 8c62418..c0828fe 100644 --- a/cabal.haskell-ci +++ b/cabal.haskell-ci @@ -12,3 +12,6 @@ raw-project optimization: False package xmonad flags: +pedantic + +-- avoid --haddock-all which overwrites *-docs.tar.gz with tests docs +haddock-components: libs From 202fecf7bab8e49025bfa8d5d6f91bf11858e837 Mon Sep 17 00:00:00 2001 From: Tony Zorman Date: Fri, 18 Nov 2022 19:12:06 +0100 Subject: [PATCH 13/29] ci: Update to GHC 9.2.5 + A new stackage LTS is out with GHC 9.2.5, so test for this. + Update the haskell-ci jobs accordingly from 9.2.4. --- .github/workflows/haskell-ci.yml | 8 ++++---- .github/workflows/stack.yml | 1 + xmonad.cabal | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/haskell-ci.yml b/.github/workflows/haskell-ci.yml index 3021902..2715295 100644 --- a/.github/workflows/haskell-ci.yml +++ b/.github/workflows/haskell-ci.yml @@ -8,9 +8,9 @@ # # For more information, see https://github.com/haskell-CI/haskell-ci # -# version: 0.15.20221009 +# version: 0.15.202211107 # -# REGENDATA ("0.15.20221009",["github","cabal.project"]) +# REGENDATA ("0.15.202211107",["github","cabal.project"]) # name: Haskell-CI on: @@ -40,9 +40,9 @@ jobs: compilerVersion: 9.4.2 setup-method: ghcup allow-failure: false - - compiler: ghc-9.2.4 + - compiler: ghc-9.2.5 compilerKind: ghc - compilerVersion: 9.2.4 + compilerVersion: 9.2.5 setup-method: ghcup allow-failure: false - compiler: ghc-9.0.2 diff --git a/.github/workflows/stack.yml b/.github/workflows/stack.yml index f24b382..e169cd4 100644 --- a/.github/workflows/stack.yml +++ b/.github/workflows/stack.yml @@ -17,6 +17,7 @@ jobs: - resolver: lts-16 # GHC 8.8 - resolver: lts-18 # GHC 8.10 - resolver: lts-19 # GHC 9.0 + - resolver: lts-20 # GHC 9.2 steps: - name: Clone project diff --git a/xmonad.cabal b/xmonad.cabal index 1d2733c..1fb5a7a 100644 --- a/xmonad.cabal +++ b/xmonad.cabal @@ -27,7 +27,7 @@ author: Spencer Janssen, Don Stewart, Adam Vogt, David Roundy, Jason 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.4 || == 9.4.2 +tested-with: GHC == 8.4.4 || == 8.6.5 || == 8.8.4 || == 8.10.7 || == 9.0.2 || == 9.2.5 || == 9.4.2 category: System homepage: http://xmonad.org bug-reports: https://github.com/xmonad/xmonad/issues From a16541b834b5b90762f9ee0e81e6c92d8bc3e4af Mon Sep 17 00:00:00 2001 From: Tony Zorman Date: Fri, 18 Nov 2022 19:17:04 +0100 Subject: [PATCH 14/29] ci: Drop support for GHC 8.4 Debian stable is not on 8.6, which was always our guide as to which GHC versions we want to support. In particular, this lets us get rid of all the quickcheck-classes special treatment. Related: https://github.com/xmonad/xmonad/commit/400730fe3b8aab8e7f9403215c88b37e44fe7a66 --- .github/workflows/haskell-ci.yml | 5 ----- .github/workflows/stack.yml | 1 - stack.yaml | 7 ------- tests/Properties/Stack.hs | 10 ---------- xmonad.cabal | 14 ++++---------- 5 files changed, 4 insertions(+), 33 deletions(-) diff --git a/.github/workflows/haskell-ci.yml b/.github/workflows/haskell-ci.yml index 2715295..1b54726 100644 --- a/.github/workflows/haskell-ci.yml +++ b/.github/workflows/haskell-ci.yml @@ -66,11 +66,6 @@ jobs: compilerVersion: 8.6.5 setup-method: hvr-ppa allow-failure: false - - compiler: ghc-8.4.4 - compilerKind: ghc - compilerVersion: 8.4.4 - setup-method: hvr-ppa - allow-failure: false fail-fast: false steps: - name: apt diff --git a/.github/workflows/stack.yml b/.github/workflows/stack.yml index e169cd4..36bdcd1 100644 --- a/.github/workflows/stack.yml +++ b/.github/workflows/stack.yml @@ -12,7 +12,6 @@ jobs: fail-fast: false matrix: include: - - resolver: lts-12 # GHC 8.4 - resolver: lts-14 # GHC 8.6 - resolver: lts-16 # GHC 8.8 - resolver: lts-18 # GHC 8.10 diff --git a/stack.yaml b/stack.yaml index 2ec4a08..99ffada 100644 --- a/stack.yaml +++ b/stack.yaml @@ -6,13 +6,6 @@ packages: extra-deps: - X11-1.10 -flags: - xmonad: - # stack doesn't support automatic flags - # https://cabal.readthedocs.io/en/latest/cabal-package.html#resolution-of-conditions-and-flags - # https://github.com/commercialhaskell/stack/issues/1313#issuecomment-157259270 - quickcheck-classes: false - nix: packages: - zlib diff --git a/tests/Properties/Stack.hs b/tests/Properties/Stack.hs index f85ca3e..a833ce1 100644 --- a/tests/Properties/Stack.hs +++ b/tests/Properties/Stack.hs @@ -1,9 +1,5 @@ -{-# LANGUAGE CPP #-} {-# LANGUAGE ScopedTypeVariables #-} - -#ifdef VERSION_quickcheck_classes {-# LANGUAGE GeneralizedNewtypeDeriving #-} -#endif module Properties.Stack where @@ -15,13 +11,11 @@ import qualified XMonad.StackSet as S (filter) 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 @@ prop_differentiate xs = 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 @@ prop_laws_Stack = format (foldableLaws p) <> format (traversableLaws p) p = Proxy :: Proxy TestStack format laws = [ ("Stack: " <> lawsTypeclass laws <> ": " <> name, prop) | (name, prop) <- lawsProperties laws ] -#else -prop_laws_Stack = [] -#endif diff --git a/xmonad.cabal b/xmonad.cabal index 1fb5a7a..3943666 100644 --- a/xmonad.cabal +++ b/xmonad.cabal @@ -27,7 +27,7 @@ author: Spencer Janssen, Don Stewart, Adam Vogt, David Roundy, Jason 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.5 || == 9.4.2 +tested-with: GHC == 8.6.5 || == 8.8.4 || == 8.10.7 || == 9.0.2 || == 9.2.5 || == 9.4.2 category: System homepage: http://xmonad.org bug-reports: https://github.com/xmonad/xmonad/issues @@ -54,8 +54,6 @@ flag pedantic default: False manual: True -flag quickcheck-classes - library exposed-modules: XMonad XMonad.Config @@ -83,7 +81,7 @@ library 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 @@ executable xmonad 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 @@ test-suite properties 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 From 30103efbc844ba822a9f6a97735521eec0550ad8 Mon Sep 17 00:00:00 2001 From: Tomas Janousek Date: Sun, 27 Nov 2022 17:37:40 +0000 Subject: [PATCH 15/29] ci: Update to GHC 9.4.3 --- .github/workflows/haskell-ci.yml | 4 ++-- xmonad.cabal | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/haskell-ci.yml b/.github/workflows/haskell-ci.yml index 1b54726..3bbd15a 100644 --- a/.github/workflows/haskell-ci.yml +++ b/.github/workflows/haskell-ci.yml @@ -35,9 +35,9 @@ jobs: strategy: matrix: include: - - compiler: ghc-9.4.2 + - compiler: ghc-9.4.3 compilerKind: ghc - compilerVersion: 9.4.2 + compilerVersion: 9.4.3 setup-method: ghcup allow-failure: false - compiler: ghc-9.2.5 diff --git a/xmonad.cabal b/xmonad.cabal index 3943666..74c63bc 100644 --- a/xmonad.cabal +++ b/xmonad.cabal @@ -27,7 +27,7 @@ author: Spencer Janssen, Don Stewart, Adam Vogt, David Roundy, Jason 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.6.5 || == 8.8.4 || == 8.10.7 || == 9.0.2 || == 9.2.5 || == 9.4.2 +tested-with: GHC == 8.6.5 || == 8.8.4 || == 8.10.7 || == 9.0.2 || == 9.2.5 || == 9.4.3 category: System homepage: http://xmonad.org bug-reports: https://github.com/xmonad/xmonad/issues From 86bb4d2a2106297513fb285209273c19b95d6142 Mon Sep 17 00:00:00 2001 From: Tomas Janousek Date: Sun, 27 Nov 2022 17:17:15 +0000 Subject: [PATCH 16/29] ci: Bump actions/* to v3 in haskell-ci workflow This gets rid of the deprecation warnings about https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/ --- .github/workflows/haskell-ci-dependabot.patch | 23 +++++++++++++++++++ .github/workflows/haskell-ci-hackage.patch | 4 ++-- .github/workflows/haskell-ci.yml | 8 +++---- cabal.haskell-ci | 1 + 4 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/haskell-ci-dependabot.patch diff --git a/.github/workflows/haskell-ci-dependabot.patch b/.github/workflows/haskell-ci-dependabot.patch new file mode 100644 index 0000000..2f4db72 --- /dev/null +++ b/.github/workflows/haskell-ci-dependabot.patch @@ -0,0 +1,23 @@ +Bump some GitHub Actions versions to prevent Dependabot from opening pull +requests every time we regenerate the haskell-ci workflow. + +--- .github/workflows/haskell-ci.yml.orig ++++ .github/workflows/haskell-ci.yml +@@ -190,7 +190,7 @@ jobs: + chmod a+x $HOME/.cabal/bin/cabal-plan + cabal-plan --version + - name: checkout +- uses: actions/checkout@v2 ++ uses: actions/checkout@v3 + with: + path: source + - name: autoreconf +@@ -231,7 +231,7 @@ jobs: + $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all + cabal-plan + - name: cache +- uses: actions/cache@v2 ++ uses: actions/cache@v3 + with: + key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }} + path: ~/.cabal/store diff --git a/.github/workflows/haskell-ci-hackage.patch b/.github/workflows/haskell-ci-hackage.patch index cc45e22..2e551ce 100644 --- a/.github/workflows/haskell-ci-hackage.patch +++ b/.github/workflows/haskell-ci-hackage.patch @@ -57,12 +57,12 @@ set in GitHub repository secrets. $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all + - name: upload artifacts (sdist) + if: matrix.upload -+ uses: actions/upload-artifact@v2 ++ uses: actions/upload-artifact@v3 + with: + path: ${{ github.workspace }}/sdist/*.tar.gz + - name: upload artifacts (haddock) + if: matrix.upload -+ uses: actions/upload-artifact@v2 ++ uses: actions/upload-artifact@v3 + with: + path: ${{ github.workspace }}/haddock/*-docs.tar.gz + - name: hackage upload (candidate) diff --git a/.github/workflows/haskell-ci.yml b/.github/workflows/haskell-ci.yml index 3bbd15a..b866e81 100644 --- a/.github/workflows/haskell-ci.yml +++ b/.github/workflows/haskell-ci.yml @@ -170,7 +170,7 @@ jobs: chmod a+x $HOME/.cabal/bin/cabal-plan cabal-plan --version - name: checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: path: source - name: initial cabal.project for sdist @@ -210,7 +210,7 @@ jobs: $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all cabal-plan - name: cache - uses: actions/cache@v2 + uses: actions/cache@v3 with: key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }} path: ~/.cabal/store @@ -241,12 +241,12 @@ jobs: $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all - name: upload artifacts (sdist) if: matrix.upload - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: path: ${{ github.workspace }}/sdist/*.tar.gz - name: upload artifacts (haddock) if: matrix.upload - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: path: ${{ github.workspace }}/haddock/*-docs.tar.gz - name: hackage upload (candidate) diff --git a/cabal.haskell-ci b/cabal.haskell-ci index c0828fe..9a7a6bc 100644 --- a/cabal.haskell-ci +++ b/cabal.haskell-ci @@ -6,6 +6,7 @@ apt: libxss-dev github-patches: + .github/workflows/haskell-ci-dependabot.patch .github/workflows/haskell-ci-hackage.patch raw-project From 9cb13bdd3d4ad387c199a580f1e2bdf82f6a6abe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Janou=C5=A1ek?= Date: Sun, 20 Nov 2022 14:13:54 +0100 Subject: [PATCH 17/29] ci: Configure dependabot to keep GH Actions up to date --- .github/dependabot.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..5ace460 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" From 099233812ec2884884d8eda1feecbeedc885f5d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 27 Nov 2022 17:18:18 +0000 Subject: [PATCH 18/29] build(deps): bump haskell/actions from 1 to 2 Bumps [haskell/actions](https://github.com/haskell/actions) from 1 to 2. - [Release notes](https://github.com/haskell/actions/releases) - [Commits](https://github.com/haskell/actions/compare/v1...v2) --- .github/workflows/packdeps.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/packdeps.yml b/.github/workflows/packdeps.yml index 636b7be..712441d 100644 --- a/.github/workflows/packdeps.yml +++ b/.github/workflows/packdeps.yml @@ -15,7 +15,7 @@ jobs: - name: Clone project uses: actions/checkout@v3 - name: Setup Haskell - uses: haskell/actions/setup@v1 + uses: haskell/actions/setup@v2 with: # packdeps doesn't build with newer as of 2021-10 ghc-version: '8.8' From a9866836d9678632ce791640b8732b93d107279b Mon Sep 17 00:00:00 2001 From: Tomas Janousek Date: Thu, 1 Dec 2022 11:51:57 +0000 Subject: [PATCH 19/29] ci: Drop ppa:hvr/ghc Breaks `apt update` on the ubuntu-22.04 runner, which is what ubuntu-latest resolves to these days. Fixes: 3977a7a4e2d4 ("ci: Drop GHC installation via apt") --- .github/workflows/stack.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/stack.yml b/.github/workflows/stack.yml index 36bdcd1..7c18a95 100644 --- a/.github/workflows/stack.yml +++ b/.github/workflows/stack.yml @@ -22,15 +22,10 @@ jobs: - name: Clone project uses: actions/checkout@v3 - - name: Prepare apt sources - run: | - set -ex - sudo add-apt-repository -y ppa:hvr/ghc - sudo apt update -y - - name: Install C dependencies run: | set -ex + sudo apt update -y sudo apt install -y \ libx11-dev \ libxext-dev \ From 57b715972bf27a35a983c1d3dac8c2dca8330f03 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 1 Dec 2022 11:57:12 +0000 Subject: [PATCH 20/29] man: Update --- man/xmonad.1 | 101 ++++++++++++++++--------------- man/xmonad.1.html | 149 +++++++++++++++++++++++----------------------- 2 files changed, 126 insertions(+), 124 deletions(-) diff --git a/man/xmonad.1 b/man/xmonad.1 index 660c5d1..991ea47 100644 --- a/man/xmonad.1 +++ b/man/xmonad.1 @@ -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 @@ featureful window manager in less than 1200 lines of code, with an 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 @@ and visible workspaces are swapped. 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 @@ exec xmonad .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 @@ Creating \f[I]xmonad.hs\f[R] in \f[C]XDG_CONFIG_HOME\f[R]. 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 @@ module XMonad.Stack.MyAdditions (function1) where .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. diff --git a/man/xmonad.1.html b/man/xmonad.1.html index a5b7e2b..ad0e5c3 100644 --- a/man/xmonad.1.html +++ b/man/xmonad.1.html @@ -7,74 +7,75 @@ XMONAD(1) Tiling Window Manager - - @@ -83,16 +84,18 @@ code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warni

27 October 2021

-