Commit Graph

161 Commits

Author SHA1 Message Date
AndersonTorres
7b6ad60ab4 hackedbox: init at 0.8.5.1 2022-08-08 03:30:35 -03:00
pennae
93c57a9884
Merge pull request #185056 from pennae/option-docs-md
nixos/*: more option docs conversions
2022-08-05 17:36:49 +02:00
sternenseemann
53b33eee25 nixos/xmonad: don't reference nonexistent package sets in docs 2022-08-04 14:29:05 +02:00
sternenseemann
531ff521d4 nixos/xmonad: rename NIX_GHC env var to XMONAD_GHC
Upstream XMonad was using our xmonad patch file for their flake build to
support our nixos module. This would of course break the build upstream
if the version we patched and their master branch diverged. We
[discussed] that it'd make sense to upstream the environment var code.
In the process it seemed sensible to rename the NIX_GHC variable as
well, since it isn't really Nix-specific – it's just a way to set the
GHC binary to execute. This change has been [implemented] upstream in an
unreleased version of xmonad now – meaning we'll be able to drop the
xmonad patch soon!

This also clarifies the situation in nixpkgs a bit: NIX_GHC is easy to
confuse with the environment variable used in the ghcWithPackages
wrapper where it is used to set an alternative prefix for a GHC-wrapper
for applications trying to discover it via e.g. ghc-paths. It is an
implementation detail in this context, as it is in the case of the
xmonad module. Since they are different implementations doing different
things, different names also make sense.

[discussed]: 36d5761b3e
[implemented]: 23f36d7e23
2022-08-04 14:29:05 +02:00
pennae
61e93df189 nixos/*: automatically convert option docs to MD
once again using nix-doc-munge (69d080323a)
2022-08-03 22:46:41 +02:00
pennae
6b13dd0e9e
Merge pull request #183491 from pennae/automatic-md-conversions
treewide: automatically md-convert option descriptions
2022-08-02 02:15:30 +02:00
pennae
2e751c0772 treewide: automatically md-convert option descriptions
the conversion procedure is simple:

 - find all things that look like options, ie calls to either `mkOption`
   or `lib.mkOption` that take an attrset. remember the attrset as the
   option
 - for all options, find a `description` attribute who's value is not a
   call to `mdDoc` or `lib.mdDoc`
 - textually convert the entire value of the attribute to MD with a few
   simple regexes (the set from mdize-module.sh)
 - if the change produced a change in the manual output, discard
 - if the change kept the manual unchanged, add some text to the
   description to make sure we've actually found an option. if the
   manual changes this time, keep the converted description

this procedure converts 80% of nixos options to markdown. around 2000
options remain to be inspected, but most of those fail the "does not
change the manual output check": currently the MD conversion process
does not faithfully convert docbook tags like <code> and <package>, so
any option using such tags will not be converted at all.
2022-07-30 15:16:34 +02:00
AndersonTorres
bef8e4df1d fvwm3: nixos module 2022-07-28 22:28:41 -03:00
AndersonTorres
2617a00699 fvwm: rename nixos module to fvwm2 2022-07-28 22:28:39 -03:00
Dominik Xaver Hörl
34a1ff28e0 nixos/xmonad: adjust example to reflect v0.17.0 update of xmonad 2022-05-19 18:10:55 +02:00
Jonathan Ringer
f8002a6687
nixos/qtile: expose package option 2022-04-05 12:11:27 -07:00
Jonathan Ringer
c2828e8479
nixos/qtile: expose unwrapped package to systemPackages 2022-04-05 10:43:15 -07:00
ivanbrennan
6c72deb51b nixos/xmonad: update example config
Update the example config to show a working example for xmonad 0.17.0, which
added an argument to the `launch` function and adjusted the location of the
recompiled binary.
2022-01-19 20:31:05 -05:00
ivanbrennan
a3ea1bc599 nixos/xmonad: enableConfiguredRecompile
Commit 9a5b5d9fe858f33f7f5ce0870be2b8a38516a1d4 added Haskell
dependencies (GHC and packages) to the xmonad binary's environment even
if xmonad had been preconfigured (via the "config" option). The intent
was to enable one-off recompiling using a local config file (e.g.
~/.config/xmonad/xmonad.hs), so the user can get quick feedback while
developing their config.

While this works, it may not be a common use-case, and it requires some
careful crafting in xmonad.hs itself. On top of that, it significantly
increases the size of the closure.

Given all that, commit b69d9d3c23 removed
GHC and packages from the binary's environment.

But there are still those among us who want to be able to recompile from
a preconfigured xmonad, so let's provide a way to opt-into configured
recompilation.
2022-01-18 00:04:15 -05:00
Janne Heß
5015aeab6f
nixos/xmonad: Type the last option 2021-12-07 18:36:11 +01:00
Jules Aguillon
b69d9d3c23 xmonad: Don't add ghc to the closure when 'config' is set
When 'services.xserver.windowManager.xmonad.config' is not null, the
restart feature won't work by default and is not desirable unless
specific care is made, as explained by the documentation.

I think it's reasonable to not include the haskell dependencies in the
environment by default. That reduces the size of my system by 2GB.
2021-10-30 21:32:58 +02:00
Naïm Favier
2ddc335e6f
nixos/doc: clean up defaults and examples 2021-10-04 12:47:20 +02:00
Aaron Andersen
186df90343
Merge pull request #135108 from p3psi-boo/master
clfswm: support custom package
2021-09-01 15:45:18 -04:00
p3psi
9e507a9314 clfswm: support custom package
Fix example

Remove example
2021-09-01 21:27:37 +08:00
Romanos Skiadas
a41302fea6 nixos: Improve awesome wm example
use a useful example instead of a package that doesn't seem to exist
2021-08-22 00:17:50 +03:00
Jonathan Ringer
4867ebd8c5 nixos/qtile: update start command 2021-08-21 08:10:30 -07:00
Johannes Arnold
39f65ee33d nixos/mlvwm: init at 0.9.3 2021-07-29 01:19:05 +02:00
kat witch
89d2723820
nixos/fvwm: gestures -> enableGestures as of #118256 2021-06-27 22:17:15 +01:00
Jan Tojnar
468cb5980b gnome: rename from gnome3
Since GNOME version is now 40, it no longer makes sense to use the old attribute name.
2021-05-08 09:47:42 +02:00
Sandro
122a2df9a7
Merge pull request #119259 from romildo/upd.e16 2021-04-13 01:23:27 +02:00
José Romildo Malaquias
728c4f81b8 nixos/e16: add e16 module 2021-04-12 16:31:48 -03:00
Sandro
512e44abb1
Merge pull request #101852 from takagiy/init-wmderland 2021-04-12 16:44:46 +02:00
Aaron Andersen
5473527775
Merge pull request #111312 from fdietze/patch-2
herbstluftwm: Add option to specify package
2021-02-09 20:13:03 -05:00
Felix Dietze
5a827051aa herbstluftwm: Add option to specify package 2021-02-09 08:51:21 -01:00
takagiy
875e1f0853 nixos/wmderland: init at 2020-07-17 2021-02-06 02:36:52 +09:00
Fritz Otlinghaus
91b0341b53
Revert "nixos/xmonad: add haskellPackages type" 2021-02-01 16:59:07 +01:00
Sandro
a68c03eb14
Merge pull request #111451 from helsinki-systems/xmonad
nixos/xmonad: add haskellPackages type
2021-01-31 15:22:06 +01:00
Fritz Otlinghaus
37f575cd7e
nixos/xmonad: add haskellPackages type 2021-01-31 12:57:14 +01:00
Fritz Otlinghaus
234f4fe5c4
nixos/exwm: add loadScript type 2021-01-31 12:55:40 +01:00
Bas van Dijk
8ac4b251c8
nixos: use functionTo to prevent evaluation errors while merging
Without this patch merging options like
services.xserver.windowManager.xmonad.extraPackages
results in the evaluation error:

  error: value is a list while a set was expected, at nixpkgs/lib/options.nix:77:23

With this patch we get the desired merging behaviour that just concatenates the
resulting package lists.

(cherry picked from commit 6e99f9fdecb1f28308c8e0aed0fc851737354864)

Co-Authored-By: Silvan Mosberger <contact@infinisil.com>
2021-01-24 17:18:37 +01:00
Michael Raskin
01372e6624
Merge pull request #109066 from michael-p-m-white/reenable-working-clfswm
Reenable working clfswm
2021-01-14 14:14:56 +00:00
adisbladis
4003f8cbc7
treewide: emacsPackages -> emacs.pkgs & emacsWithPackages -> emacs.pkgs.withPackages
The previous names are now aliases and shouldn't be used anywhere inside nixpkgs.
2021-01-13 17:13:10 +01:00
Michael White
952f2c76e0 nixos/clfswm: Restore working quicklisp package 2021-01-11 17:19:50 -07:00
Ivan
b90c5cb703
XMonad: configured recompile (#107696)
* nixos/xmonad: xmonad config w/ghc+xmessage

When the "config" option isn't set, we use xmonad-with-packages to
provide xmonad with runtime access to an isolated ghc, ensuring it can
recompile and exec a user's local config (e.g. $HOME/.xmonad/xmonad.hs)
regardless of which ghc (if any) is on PATH.

When the "config" option is set, however, we compile a configured xmonad
executable upfront (during nixos-rebuild), and prior to this commit, it
was not provided with runtime access to an isolated ghc.

As a result, with the "config" option set, it was not possible
to recompile and exec a user's local config unless there was a
compatible version of ghc on PATH with the necessary packages (xmonad,
xmonad-contrib, etc.) in its package database. Adding such a ghc to
environment.systemPackages, e.g.

  (haskellPackages.ghcWithPackages (ps: with ps; [xmonad xmonad-contrib]))

is problematic because it adds both ghc and an unconfigured xmonad to
PATH, e.g.

  $ ls -l $(which xmonad ghc)
  lrwxrwxrwx ... /run/current-system/sw/bin/ghc -> /nix/store/...-ghc-8.10.2-with-packages/bin/ghc
  lrwxrwxrwx ... /run/current-system/sw/bin/xmonad -> /nix/store/...-ghc-8.10.2-with-packages/bin/xmonad

Having the unconfigured xmonad on PATH is particularly bad because
restarting xmonad will dump the user into the unconfigured version, and
if no local config exists (e.g. in $HOME/.xmonad/xmonad.hs), they'll be
left in this unconfigured state.

In this commmit, we give the configured xmonad runtime access to ghc
like xmonad-with-packages does for the unconfigured version. The aim
is to allow the user to switch between the nixos module's config and a
local config (e.g. $HOME/.xmonad/xmonad.hs) at will, so they can try out
config changes without performing a nixos-rebuild.

Since the xmonad on PATH is the configured executable, there's no
danger a user could unwittingly restart into the unconfigured version,
and because xmonad will refuse to recompile when no local config
exists, there's no danger a user could unwittingly recompile into an
unconfigured version.

Given that a local config exists, the recompile/restart behavior depends
on two factors:
- which entry point is used
  * 'XMonad.xmonad' (default)
  * 'XMonad.launch' (recommended in "config" option description)
- what operation is triggered (i.e. via mod+q)
  * `spawn "xmonad --recompile && xmonad --restart"` (default)
  * `restart "xmonad" True`
  * custom function

If the default 'XMonad.xmonad' entrypoint and default mod+q operation
are used, hitting mod+q will compile and exec the local config, which
will remain in use until next time the display manager is restarted.

If the entrypoint is changed to 'XMonad.launch' but mod+q left with its
default operation, hitting mod+q will have no visible effect. The logs
(as seen by running `journalctl --identifier xmonad --follow`) will show
an error,
  X Error of failed request:  BadAccess (attempt to access private resource denied)
which indicates that the shell was unable to start xmonad because
another window manager is already running (namely, the nixos-configured
xmonad).
https://wiki.haskell.org/Xmonad/Frequently_asked_questions#X_Error_of_failed_request:_BadAccess_.28attempt_to_access_private_resource_denied.29

Changing the mod+q operation to `restart "xmonad" True` (as recommended
in the "config" option's description) will allow a restart of the
nixos-configured xmonad to be triggeredy by hitting mod+q.

Finally, if the entrypoint is 'XMonad.launch', mod+q has been
bound to `restart "xmonad" True` and another key bound to a custom
recompile/restart function (e.g. `compileRestart` as shown in the
"config" option example), the user can switch between the nixos module's
config and their local config, with the custom key switching to the
local config and mod+q switching back.

* nixos/xmonad: refactor let binding

* nixos/xmonad: refactor (eliminate duplicate code)

* nixos/xmonad: install man pages

Prior to this commit, man pages were not installed if the "config"
option was set.

* nixos/xmonad: comment grammar fixups

* nixos/xmonad: writeStateToFile in example config

Calling writeStateToFile prior to recompiling and restarting allows
state (workspaces, etc.) to be preserved across the restart.

* nixos/xmonad: add ivanbrennan to maintainers

* nixos/xmonad: adjust compileRestart example

* nixos/xmonad: add missing import to example config
2020-12-28 17:27:36 +01:00
Ryan Mulligan
cb42d08df2
Merge pull request #62104 from Vizaxo/master
nixos/exwm: allow custom Emacs load script
2020-11-28 18:47:21 -08:00
zowoq
dbbd289982 nixos/*: fix indentation 2020-11-23 08:42:51 +10:00
Dominik Xaver Hörl
7389407490 nixos/xmonad: add lassulus and xaverdh as maintainers 2020-10-12 21:00:43 +02:00
Dominik Xaver Hörl
206c668d7f nixos/xmonad: improve module docs 2020-10-12 14:48:07 +02:00
Dominik Xaver Hörl
67eb45ddce xmonad: put the correct xmonad binary in PATH 2020-10-10 13:20:04 +02:00
Dominik Xaver Hörl
10ecd1f45b nixos/xmonad: allow passing compile time options to ghc invocation 2020-09-07 20:16:25 +02:00
Dominik Xaver Hörl
15d87cb81c nixos/xmonad: allow passing command line arguments 2020-09-07 19:25:45 +02:00
Kurt Robert Rudolph
c54beb953d nixos/xmonad: Fix behavior of config opt
Prior to this change, the `config` option (which allows you define the
haskell configuration for xmonad in your configuration.nix instead of
needing something in the home directory) prevents desktop manager
resources from starting. This can be demonstrated by configuring the
following:

```
  services.xserver = {
    displayManager.defaultSession = "xfce+xmonad";
    displayManager.lightdm.enable = true;

    desktopManager.xterm.enable = false;
    desktopManager.xfce.enable = true;
    desktopManager.xfce.enableXfwm = false;
    desktopManager.xfce.noDesktop = true;

    windowManager.xmonad = {
      enable = true;
      enableContribAndExtras = true;
      extraPackages = haskellPackages: [
        haskellPackages.xmonad-contrib
        haskellPackages.xmonad-extras
        haskellPackages.xmonad
      ];
      config = ''
        import XMonad
        import XMonad.Config.Xfce
        main = xmonad xfceConfig
               { terminal = "terminator"
               , modMask = mod4Mask }
      '';
    };
  };
```

and after user log in, search for xfce processes `ps aux | grep xfce`.
You will not find xfce processes running until after the xmonad process is killed.

The bug prevents utilities included with the desktopManager,
(e.g. powerManagement, session logout, etc.)
from working as expected.
2020-08-10 19:17:54 -07:00
Jörg Thalheim
ba930d8679
nixos/modules: remove trailing whitespace
This leads to ci failure otherwise if the file gets changed.
git-blame can ignore whitespace changes.
2020-08-07 14:45:39 +01:00
AndersonTorres
1c2c0b2eb8 lwm: init at 1.2.4
lwm is a lightweight window manager
2020-05-13 21:32:54 -03:00
AndersonTorres
43ce2a5219 berry: init at 0.1.5
berry is a small window manager for X11
2020-05-13 21:32:54 -03:00