Commit graph

180 commits

Author SHA1 Message Date
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 6e99f9fdec)

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
AndersonTorres 6aeaa1019c yeahwm: init at 0.3.5
yeahwm is a small window manager for X11, inspired by evilwm
2020-05-13 21:32:54 -03:00
AndersonTorres 58a93ee62d smallwm: init at 2020-02-28 2020-05-13 21:32:54 -03:00
AndersonTorres 44d90b0619 tinywm: init at 2014-04-22
A tiny window manger for X11
2020-05-08 15:29:25 -03:00
worldofpeace 60a1732276
Revert "nixos/none: remove" 2020-04-02 04:07:18 -04:00
worldofpeace af6d2c822c nixos/none: remove
This windowManager and desktopManager doesn't even have
an option to use it. git history suggests to me that there's no way anyone
finds this useful anymore.
2020-04-01 21:25:05 -04:00
Jan Tojnar 8dc5ff7dcf
nixos/displayManager: deprecate separate options for default wm/dm
The upstream session files display managers use have no concept of sessions being composed from
desktop manager and window manager. To be able to set upstream session files as default
session, we need a single option. Having two different ways to set default session would be confusing,
though, so we decided to deprecate the old method.

We also created separate script for each session, just like we already had a separate desktop
file for each one, and started using displayManager.sessionPackages mechanism to make the
session handling more uniform.
2019-12-15 04:16:20 +01:00
ft 1390ed10e7 nixos/widnow-managers/xmonad: fix systemd identifier for xmonad 2019-10-19 16:36:29 -07:00
Michał Krzysztof Feiler 00633a3e13
nixos/window-managers: add cwm to imports
as per request from @romildo under #70035 https://github.com/NixOS/nixpkgs/pull/70035#pullrequestreview-298166798
2019-10-08 17:48:09 +00:00
Michał Krzysztof Feiler d9a7c51016
nixos/cwm: init
Added windowManager cwm, basing on the module for dwm.
2019-09-29 23:26:08 +02:00
Silvan Mosberger 478e7184f8
nixos/modules: Remove all usages of types.string
And replace them with a more appropriate type

Also fix up some minor module problems along the way
2019-08-31 18:19:00 +02:00
Vizaxo 47aa44ba37 nixos/exwm: allow custom Emacs load script
Add config option services.xserver.windowManager.exwm.loadScript,
which is passed to Emacs (as the -l option) to load after the user's init file.
2019-05-27 02:18:42 +01:00
Markus Schneider c30bd387d2 leftwm: enable service 2019-05-26 01:27:04 +09:00
Franz Pletz 5fa8cd257a
Merge pull request #51206 from krebs/xmonad-config
xmonad service: add .config option
2019-05-24 18:37:55 +00:00
Maximilian Bosch a1ffabe4de
nixos/window-managers/i3: write config file to /etc/i3/config
The default config of i3 provides a key binding to reload, so changes
take effect immediately:

```
bindsym $mod+Shift+c reload
```

Unfortunately the current module uses the store path of the `configFile`
option. So when I change the config in NixOS, a store path will be
created, but the current i3 process will continue to use the old one,
hence a restart of i3 is required currently.

This change links the config to `/etc/i3/config` and alters the X
startup script accordingly so after each rebuild, the config can be
reloaded.
2019-04-26 21:12:52 +02:00
Christian Kögler 9f7f16cd7b nixos dwm: start user installed dwm if available
dwm has no configuration file. The user has to install his own version.
2019-03-11 20:18:08 +01:00
lassulus 3eefc0b909 xmonad service: add .config option 2018-12-15 14:50:20 +01:00
Jan Tojnar 69c47a3d91
nixos/metacity: switch to gnome3.metacity 2018-08-09 17:36:47 +02:00
Jörg Thalheim e9ff0f9448
Merge pull request #43863 from volth/unused4
[bot] nixos/*: remove unused arguments in lambdas
2018-07-21 16:39:08 +01:00
volth 2e979e8ceb [bot] nixos/*: remove unused arguments in lambdas 2018-07-20 20:56:59 +00:00
volth 6d2857a311 [bot] treewide: remove unused 'inherit' in let blocks 2018-07-20 19:38:19 +00:00
tilpner 903292a2d8
nixos/awesome: Add noArgb option
Add option to disable client transparency support in awesome,
which greatly improves performance in my setup
(and presumably will in some others).
2018-06-13 19:47:26 +02:00
Arcadio Rubio García efde5fefb3 nixos: stumpwm: switch from package marked as broken to working quicklisp package (#40501) 2018-05-14 18:37:53 +02:00
Milo b405a6537c nixos/bspwm: spawn bpswm process in the background and properly set waiPID (#39707) 2018-04-30 17:03:05 +00:00
Maximilian Bosch 5caa22fe0a Revert restrictive validation behavior for DM/WM defaults in the X module
The original idea behind this change (described in ticket #11064) was to
improve the assertions to avoid that users of the X server accidentally
forget to configure a DM or WM.

However this caused several issues with setups that require X, but no DM
or WM. The keymap testcases became instable as well as now disabling DMs
needs to be done explicitly.
(see https://github.com/NixOS/nixpkgs/pull/31268#issuecomment-347080036)

In the end the idea behind the change and #11064 was obviously a
mistake, so reverting it completely for now should be fine.
2018-03-28 20:34:05 +02:00
Andreas Wiese c7e1dff94e nixos/window-managers: actually add evilwm to default.nix
Commit 1f2b938 introduced a module for evilwm as a window-manager, but
did not actually add this module to window-manager's default.nix which
renders it useless.
2018-03-15 10:22:53 +01:00
rnhmjoj c946c101d6
avoid package attributes starting with a digit 2018-01-16 21:13:16 +01:00
Uli Schlachter 5465d6f7de awesome: Use --search instead of $LUA_PATH/$LUA_CPATH
Instead of polluting the environment with environment variables which
are inherited by processes spawned from awesome, use the command line
argument "--search" to add things to the search path.

cc #33169
2018-01-02 17:24:56 +00:00
Andreas Wiese f5f601a7f2 nixos/evilwm: allow enabling evilwm through services.xserver.windowManager.evilwm.* 2017-11-20 07:50:28 +01:00
Maximilian Bosch 410f0f0db2
services.xserver: fix apply of default DM/WM
This is needed to pick the first enabled DM/WM
if the default is `none`
2017-11-07 12:18:24 +01:00
Graham Christensen 128cdeffd0
compiz: drop 2017-08-30 06:59:20 -04:00
Silvan Mosberger 7bc42a8971
xmonad service: add defaultText to extraPackages to fix rendering in docs 2017-08-08 01:14:58 +02:00
Alexander V. Nikolaev ff52233bca qtile: Fix using qtile together with desktop
Funny bug, which prevent qtile to co-exists with desktop manager
(or program pretending to be DE)
2017-05-31 18:37:47 +03:00
Eric Sagnes 92bb3e8b9b i3: fix runtime dependencies
Fixes #25633.
2017-05-10 02:42:44 +02:00
Alexey Shmalko b8e71f2969 Merge pull request #24651 from edanaher/add-fvwm-window-manager
fvwm module: init; now fvwm can be used as an xserver.windowManager
2017-04-06 16:29:28 +03:00
Evan Danaher 7a38b0858f fvwm module: init; now fvwm can be used as an xserver.windowManager 2017-04-05 11:12:46 -04:00
sternenseemann fd3a99633b 2bwm: init at 0.2 2017-03-30 19:21:27 +02:00
Franz Pletz 9536169074
nixos/treewide: remove boolean examples for options
They contain no useful information and increase the length of the
autogenerated options documentation.

See discussion in #18816.
2017-03-17 23:36:19 +01:00
Anders Papitto 3d963c3e8f herbstluftwm module: add configFile option
based on the equivalent for i3
2017-02-21 05:46:13 +01:00
Joachim F a6f392abd6 Merge pull request #20385 from ericsagnes/feat/i3-refactor
i3 module: refactor
2016-11-23 05:11:14 +01:00
Eric Sagnes 8ea1e93537 i3 module: refactor 2016-11-14 00:58:49 +09:00
Eric Sagnes 293da497c3 bspwm module: refactor 2016-11-14 00:41:05 +09:00
Chris Darnell 137ce58317 bspwm-unstable: init at 2016-09-30 2016-10-16 01:28:11 -04:00
Jörg Thalheim 0a42f98eac
awesome: fix LUA_PATH for luaModules
lua modules can be also within share/ within a package.
Previously only lib/ was included
2016-09-18 19:18:03 +02:00
Tuomas Tynkkynen 8877efa65b treewide: Fix output references to gnome.GConf 2016-08-23 04:52:57 +03:00
Tuomas Tynkkynen d3705faa56 treewide: Use makeLibraryPath in LD_LIBRARY_PATHs 2016-08-23 00:14:00 +03:00
Ram Kromberg 3800bb5017 motif: init at 2.3.6 2016-07-28 01:33:45 +03:00
AndersonTorres 0f6c79d561 pekwm: init at 0.1.17 2016-07-09 22:26:24 -03:00
obadz 0243ccfbff i3 & xfce modules: add extraSessionCommands for WM-specific user-defined xsession lines
Could be extended to other window managers/desktops as well
2016-06-19 23:52:14 +01:00
Franz Thoma 688d7cd3a6 i3-gaps: add as window manager
Closes #15917
2016-06-16 14:26:17 +01:00
Mitchell Pleune 571e9b5f1f bspwm: add _JAVA_AWT_WM_NONREPARENTING=1
bspwm is not in java's internal list of non-reparrenting
window managers. See https://awesomewm.org/wiki/Problems_with_Java
2016-05-03 17:46:48 -04:00
Vladimír Čunát ab15a62c68 Merge branch 'master' into closure-size
Beware that stdenv doesn't build. It seems something more will be needed
than just resolution of merge conflicts.
2016-04-01 10:06:01 +02:00
Joachim Fasting e891e50946 nixos: disable the clfswm window manager module 2016-03-19 15:52:18 +01:00
Vladimír Čunát 09af15654f Merge master into closure-size
The kde-5 stuff still didn't merge well.
I hand-fixed what I saw, but there may be more problems.
2016-03-08 09:58:19 +01:00
José Romildo Malaquias 82e12688a2 jwm: window manager module addition 2016-03-07 16:07:13 -03:00
Brian McKenna f3d6e9ec71 exwm service: init 2016-03-06 09:04:51 +11:00
Maxwell e50da7ee6a bspwm: add startThroughSession & sessionScript option
Add ability to do a more traditional bspwm startup (using the bspwm-session
script provided by nixpkgs.bspwm) as an alternative to directly starting
sxhkd & bspwm

Also added the ability to specify a custom startup script, instead of
relying on the provided bspwm-session
2016-03-01 17:29:15 -05:00
Eelco Dolstra f3d94cfc23 Revert "Add the tool "nixos-typecheck" that can check an option declaration to:"
This reverts commit cad8957eab. It
breaks NixOps, but more importantly, such major changes to the module
system really need to be reviewed.
2016-03-01 20:52:06 +01:00
Mitchell Pleune b5ee64410d x11 service: bspwm limit sxhkd freqency
add '-f 100' as an argument to sxhkd to keep it from flooding bspwm

add SXHKD_SHELL=/bin/sh to help default to a faster shell than what may
be set in $SHELL (example: with zsh)
2016-02-29 08:40:18 -05:00
Thomas Strobel cad8957eab Add the tool "nixos-typecheck" that can check an option declaration to:
- Enforce that an option declaration has a "defaultText" if and only if the
   type of the option derives from "package", "packageSet" or "nixpkgsConfig"
   and if a "default" attribute is defined.

 - Enforce that the value of the "example" attribute is wrapped with "literalExample"
   if the type of the option derives from "package", "packageSet" or "nixpkgsConfig".

 - Warn if a "defaultText" is defined in an option declaration if the type of
   the option does not derive from "package", "packageSet" or "nixpkgsConfig".

 - Warn if no "type" is defined in an option declaration.
2016-02-29 01:09:00 +01:00
Brian McKenna 7d91ee54c9 openbox: fix copy/paste typo in config 2016-02-24 22:54:08 +11:00
Vladimír Čunát d039c87984 Merge branch 'master' into closure-size 2016-02-14 08:33:51 +01:00
Eric Sagnes f03ce60bd2 i3service: remove dmenu and i3 from env packages 2016-02-08 13:31:03 +09:00
Vladimír Čunát ae74c356d9 Merge recent 'staging' into closure-size
Let's get rid of those merge conflicts.
2016-02-03 16:57:19 +01:00
Tuomas Tynkkynen 40ef23e7ed treewide: Mass replace 'xorg.libXext}/lib' to refer the 'out' output 2016-01-24 10:03:37 +02:00
Tuomas Tynkkynen 5d52f55426 treewide: Mass replace 'xorg.libX11}/lib' to refer the 'out' output 2016-01-24 10:03:37 +02:00
Eric Sagnes 0dd8e03308 i3 service: added i3status and dmenu dependency 2016-01-19 09:32:49 +09:00
Robin Gloster 4a0692a5fb types: remove references to new packageSet
Reverts part of a04a7272aa

packageSet is slated to be introduced in #11866 but currently causes
evalation errors.

/cc @ts468
2016-01-17 19:49:38 +00:00
Thomas Strobel a04a7272aa Add missing 'type', 'defaultText' and 'literalExample' in module definitions
- add missing types in module definitions
- add missing 'defaultText' in module definitions
- wrap example with 'literalExample' where necessary in module definitions
2016-01-17 19:41:23 +01:00
Emery 952563d620 WindowLab: initial pkg at 1.40
http://nickgravgaard.com/windowlab/
2015-12-30 11:10:30 +01:00
Arseniy Seroka 86c3f435d1 Merge pull request #11415 from zenhack/dwm-wm
xserver: dwm as a window manager
2015-12-05 13:49:45 +03:00
Moritz Ulrich ff66ac9dd0 Fix evaluation after merge of #11450. 2015-12-04 15:40:47 +01:00
AndersonTorres 2955b2fcf4 Getting rid of mkOption in NixOS window manager modules
Now the default way to define NixOS window manager modules is to use
mkEnableOption to describe the module itself.
In this commit, all files on nixos/modules/services/x11/window-managers
are changed.
2015-12-04 07:38:23 -02:00
Ian Denhardt 8edd15d175 xserver: dwm as a window manager 2015-12-03 21:37:55 -05:00
Timofei Kushnir 8b1fc9ca75 wmii.nix: fix module args 2015-12-01 09:08:20 +03:00
Lengyel Balázs 162542bf8f fix: ihaskell's and xmonad's dependence on haskell-ng 2015-11-13 19:14:40 +01:00
Robert Glossop 5623e1b145 Add the CLFSWM window manager 2015-11-08 18:49:40 -05:00
Arseniy Seroka 42eabf1c4a Revert "i3wm: Add debug & logging options" 2015-10-27 13:40:04 +03:00
Guillaume Maudoux eb46e0fc72 i3wm: Add debug & logging options 2015-10-26 22:33:11 +01:00
Kovacsics Robert (NixOS-SSD2) 553e7d49ff wmii service: refactor to use wmii_hg 2015-09-03 12:58:11 +02:00
Kamil Chmielewski 2cf8d9b0ef xserver: qtile as windowManager 2015-07-30 07:31:53 +02:00
Arseniy Seroka adedca45d5 Merge pull request #8994 from AndersonTorres/icewm
IceWM: 1.3.8 -> 1.3.10
2015-07-26 20:04:54 +03:00