Commit Graph

1490 Commits

Author SHA1 Message Date
Tomas Janousek
9813e218b0 Move config binary and GHC intermediate outputs to cacheDir
That's where they belong. As XDG was more or less broken in previous
xmonad releases, we can assume few people use it so now's the best time
to move files around.

For users of `~/.xmonad`, this only causes intermediate outputs (.o,
.hi) to go elsewhere.

Fixes: https://github.com/xmonad/xmonad/issues/178
2021-08-17 10:46:07 +01:00
Tomas Janousek
403e4df624 Use "stack ghc" for recompilation when stack.yaml exists
This makes it unnecessary for users of Stack to use a custom build
script, making installation easier.

Inspired by a similar feature in dyre:
a04be85f60

Fixes: https://github.com/xmonad/xmonad/issues/310
2021-08-17 10:46:07 +01:00
Tomas Janousek
aa35ea1856 Make xmessage handle UTF-8 and export it
This unfortunately breaks xmonad-contrib as several modules define their
own `xmessage` function.

Related: https://github.com/xmonad/xmonad/pull/309
2021-08-17 10:46:07 +01:00
Tomas Janousek
3b6d00ba91 Refactor 'recompile' to be less of a spaghetti-code
This is a preparation for autodetecting stack.yaml and using stack for
recompilation.

Related: https://github.com/xmonad/xmonad/issues/310
2021-08-17 10:46:07 +01:00
Tomas Janousek
befc4bc8d8 github: Drop FUNDING.yml
Replaced with https://github.com/xmonad/.github/blob/main/FUNDING.yml,
which points to xmonad's funding platforms instead of mine.

Related: https://github.com/xmonad/xmonad/pull/295
Related: https://github.com/xmonad/xmonad-contrib/pull/544
2021-08-15 22:27:39 +01:00
Tomas Janousek
6c31aad683 github: Sync ISSUE_TEMPLATE with xmonad-contrib
Related: https://github.com/xmonad/xmonad-contrib/pull/533
2021-08-15 22:25:59 +01:00
Tomas Janousek
3e76270245 ci: Disable optimization in the haskell-ci workflow
Cuts a couple dozen seconds from the build. This was already disabled in
the Stack workflow and we just forgot to put it here as well.

Related: https://github.com/xmonad/xmonad-contrib/pull/580
2021-08-08 11:54:58 +01:00
Tomas Janousek
3a414660fc MAINTAINERS: Link to maintainers' GPG keys
I'm the only one with valid GPG key uploaded to GitHub, it seems. :-/

Fixes: https://github.com/xmonad/xmonad/issues/75
2021-08-08 00:53:36 +01:00
Tomas Janousek
453010bb6d Link to xmonad-docs instead of hackage (fixes some links)
Fixes broken links to X.U.Hacks and X.U.ClickableWorkspaces.
2021-08-07 15:14:12 +01:00
Tomas Janousek
2ac8f0ea27 INSTALL: Fixes to ease inclusion into xmonad-web
Jekyll doesn't do autolinks, so wrap the one bare link in angle
brackets.

Also, link to additional resources for configuring xinitrc/xsession.
2021-08-02 21:36:16 +01:00
Tomas Janousek
ad7288030f TUTORIAL: Fixes to ease inclusion into xmonad-web
Also makes it easier to copy & paste.
2021-08-02 15:09:43 +01:00
Tomas Janousek
206fc918bb ci: Verbose nix build 2021-08-01 22:21:43 +01:00
Tomas Janousek
f5a60f82ee Merge branch 'add-nix-flake' 2021-08-01 22:07:11 +01:00
Ivan Malison
a1ee3b4530 Add comment explaining that I am maintaining flake.nix 2021-08-01 22:06:50 +01:00
Ivan Malison
89218fc57d Add nix github workflow 2021-08-01 22:06:49 +01:00
Ivan Malison
71af4239bd Add a flake.nix file 2021-08-01 22:06:49 +01:00
Tomas Janousek
f1d6316526 Merge branch 'broadcast-destroy-window-events' 2021-07-31 15:25:08 +01:00
Yecine Megdiche
92d01e37a0 Broadcast DestroyWindowEvent to layouts
Some layout and layout modifiers that keep track of some window
properties don't do garbage collection and update their state when
windows are destroyed. By broadcasting this event, it should be easier
for layouts to clean up

Related: https://github.com/xmonad/xmonad-contrib/pull/474
2021-07-31 15:24:31 +01:00
Tomas Janousek
101c7052f4 Merge branch 'install-instructions' 2021-07-29 11:33:19 +01:00
Tomas Janousek
7b7feeca42 INSTALL: Use "console" syntax highlighting for console listings 2021-07-29 11:32:20 +01:00
Tomas Janousek
cbe7ee7c03 INSTALL: Add instructions for cabal-install
Related: https://github.com/xmonad/xmonad/issues/199
Related: https://github.com/xmonad/xmonad/issues/310
2021-07-29 11:32:20 +01:00
Tomas Janousek
8adb8463ab INSTALL: Generalize the instructions a bit
Mention installation from distro; factor preparation/download out of
the Stack section (prep for inclusion of cabal-install section).
2021-07-29 11:32:20 +01:00
Tomas Janousek
256eb29ef1 INSTALL: Add section about launching XMonad as default WM 2021-07-25 10:44:41 +01:00
Tomas Janousek
4ba9c8b8c1 INSTALL: Mention dependencies for a couple common distros 2021-07-25 10:44:41 +01:00
Tomas Janousek
98173777fe INSTALL: Drop indent from code blocks
Makes it easier to copy&paste.
2021-07-25 01:17:40 +01:00
Tomáš Janoušek
05aeef0dc2 Merge pull request #308 from liskin/release-infra
Automate and document releasing to Hackage + couple cleanups
2021-07-25 02:17:21 +02:00
Tomas Janousek
85787ce059 Automate and document releasing to Hackage
Pioneered in https://github.com/xmonad/X11, this adds automation for
Hackage releases and updates MAINTAINERS.md with simplified instruction
for the release procedure.

Related: https://github.com/xmonad/xmonad/issues/75
Related: https://github.com/xmonad/xmonad/issues/264
Related: https://github.com/xmonad/xmonad-contrib/issues/393
2021-07-24 18:13:11 +01:00
Tomas Janousek
d64aeba80f Revise extra-source-files in xmonad.cabal
Ship the new docs, drop tests as these get picked up automatically.
2021-07-24 18:13:11 +01:00
Tomas Janousek
72cbe0667d Revise dependencies a bit
utf8-string isn't needed since d9e3ebf531
(late 2014).

Most of the executable xmonad deps are unnecessary since
307b82a53d (early 2015).

Switch from data-default to data-default-class to avoid bringing in deps
and instances we don't need.
2021-07-24 18:13:11 +01:00
slotThe
af354f7528 Merge pull request #312 from mzrinsky/update-cheatsheet
Add help command to help message
2021-07-03 09:10:02 +02:00
Matt Zrinsky
1a4c95fac8 Add help command to help message.
Attempt to contribute to xmonad,
and add a simple line to the help message,
containing the help command itself.

Fixes xmonad/xmonad#287
2021-07-02 13:58:00 -05:00
slotThe
42d319545b Merge pull request #309 from MuhammedZakir/xmessage-fix
Use printf instead of echo for xmessage help
2021-06-27 08:27:00 +02:00
MuhammedZakir
2e6eb9068d Use printf instead of echo for xmessage help
In some shells—like bash—the entire help message is shown in a single
line because a newline is printed as a literal "\n" character when using
echo.  Some distributions[1] have /bin/sh linked to bash, and so new
users are likely to run into this at some point.

We could fix this by either removing show and explicitly adding an
escaped quotation symbol before and after the string, or by using printf
instead of echo.  The printf solution seems more portable[2] and so I
propose we go with that one.

[1]: f5b9a25cdd/nixos/modules/config/shells-environment.nix (L129-L143)
[2]: https://unix.stackexchange.com/questions/65803/why-is-printf-better-than-echo/#65819
2021-06-27 08:09:33 +02:00
slotThe
13849c6230 INSTALL.md: Mention stack upgrade
Users who are installing stack on systems like Debian stable or Ubuntu
may get really old version of stack—much older than we currently
support.  Thankfully, stack can upgrade itself rather easily with one
single command, so mention that.

Fixes: https://github.com/xmonad/xmonad/issues/303
2021-06-15 10:10:17 +02:00
Tomas Janousek
6a7eb85e84 MAINTAINERS.md: Update xmonad core team, add hall of fame
More or less synced with https://xmonad.org/community.html

Fixes: https://github.com/xmonad/xmonad/issues/248
2021-06-07 10:35:48 +01:00
slotThe
2a3c358533 MAINTAINERS.md: Add slotThe
Related:
  - https://github.com/xmonad/xmonad/issues/75
  - https://github.com/xmonad/xmonad/issues/248
2021-06-07 09:44:29 +02:00
slotThe
28637d0db7 Tutorial: Remove ewmhFullscreen for versions < 0.17
Not released as of xmonad-contrib 0.16.

Related: https://github.com/xmonad/xmonad/issues/307
2021-06-07 08:44:50 +02:00
Tomas Janousek
b14b3ffcec Bump version number (pre-release 0.16.9999)
Merging NewSelect into Choose is a breaking change, bump the version to
let xmonad-contrib depend on it.
2021-06-04 19:03:11 +01:00
Tomáš Janoušek
bbb4a0ef25 Merge pull request #281 from slotThe/NewSelect
Merge X.L.LayoutCombinators.(|||) into X.L.(|||)
2021-06-04 18:22:40 +01:00
slotThe
9db74715f2 X.Layout: Simplify JumpToLayout implementation
The `choose` combinator is very general; much more so than the
combination of `switch`, `swap`, and `passOnM`.

We can thus replace most of the implementation with calls to `choose`
and properly put everything related to `JumpToLayout` under one guard.
Plus, we don't need to define any extra functions that would have to be
tested in some way.

Co-authored-by: Tomas Janousek <tomi@nomi.cz>
2021-06-04 18:17:13 +01:00
slotThe
5b064f474d Update CHANGES.md 2021-06-04 18:17:11 +01:00
slotThe
bffa6dc2ce Merge X.L.LayoutCombinators.(|||) into X.L.(|||)
The functionality of the former are quite handy to have in core and we
can do so with minimal code changes.

The drawbacks of this approach are

  1. We can't merge JumpToLayout into ChangeLayout because people may
     have imported JumpToLayout(..), which we can't simulate with type
     aliases, patterns, and the like.

  2. Because the internal structure of X.L.LayoutCombintors.(|||) is a
     bit different, this creates a regression for people who used
     NextLayoutNoWrap or Wrap in their configs.  We could work around
     this by creating fake instances of these fields in the new
     JumpToLayout constructor and simply not doing anything with them,
     but since this seems like quite an advanced and specific use-case,
     failing fast and hard (as opposed to adding deprecation messages
     and then "silently" not handling these messages) seems preferrable
     here.

Related: https://github.com/xmonad/xmonad-contrib/pull/493
Related: https://github.com/xmonad/xmonad-contrib/issues/116
2021-06-04 18:17:04 +01:00
Tomas Janousek
341dea5907 Call xrrUpdateConfiguration to sync Xlib's view of screen config
Xrandrint.h says:

    /*
     * if a configure notify on the root is recieved, or
     * an XRRScreenChangeNotify is recieved,
     * XRRUpdateConfiguration should be called to update the X library's
     * view of the screen configuration; it will also invalidate the cache
     * provided by XRRScreenConfig and XRRConfig, and force a round trip
     * when next used.  Returns invalid status if not an event type
     * the library routine understand.
     */

If any user code needs that info/cache to be correct, we need to call
this.
2021-06-01 18:45:36 +01:00
Tomas Janousek
676530307b Clean up uses of setClientMessageEvent
In sendRestart, switch to the new setClientMessageEvent' and pass no
data, as no data are expected. Passing currentTime was confusing, as
it's only interpreted as time in some ClientMessage types.

In killWindow, it's the other way around.
2021-06-01 18:41:21 +01:00
Tomas Janousek
09425bbe43 Bump version number (pre-release 0.16.999) 2021-06-01 18:37:19 +01:00
Tomas Janousek
1805666e9d Bump X11 dependency
We have a bunch of open PRs that need features added in X11-1.10.

Related: https://github.com/xmonad/xmonad/pull/274
Related: https://github.com/xmonad/xmonad/pull/273
Related: https://github.com/xmonad/xmonad-contrib/pull/545
Related: https://github.com/xmonad/xmonad-contrib/pull/546
Related: https://github.com/xmonad/xmonad-contrib/pull/399
2021-06-01 18:37:19 +01:00
slotThe
40cd2081da Upcase tutorial file, mention it in README
Related: https://github.com/xmonad/xmonad/pull/278#issuecomment-850717606
2021-05-29 07:41:18 +02:00
slotThe
66514127f3 Merge pull request #278 from slotThe/new-tutorial
Add New Tutorial
2021-05-28 17:43:03 +02:00
slotThe
fdc3bf0484 tutorial.md: Point IRC channel to libera.chat
The reference to the freenode matrix channel is deleted for now; though
it may be added back in later-on, as the matrix team is working towards
bridging Libera.  We may also link the other matrix channel at some
point.

Related: https://github.com/xmonad/xmonad-web/pull/21
2021-05-28 16:52:09 +02:00
slotThe
f97d2527ff tutorial.md: Use logTitles
Ever since 322e06eed9c4b23a465d2857df462b8a2d716246 `ppTitleUnfocused`
does not exist anymore, as it was moved to `X.U.Loggers.logTitles`.
This makes the tutorial aware of that.
2021-05-28 16:52:09 +02:00