1{ config, lib, pkgs, ... }:
2
3with lib;
4
5let
6 cfg = config.services.xserver.windowManager.fvwm;
7 fvwm = pkgs.fvwm.override { gestures = cfg.gestures; };
8in
9
10{
11
12 ###### interface
13
14 options = {
15 services.xserver.windowManager.fvwm = {
16 enable = mkEnableOption "Fvwm window manager";
17
18 gestures = mkOption {
19 default = false;
20 type = types.bool;
21 description = "Whether or not to enable libstroke for gesture support";
22 };
23 };
24 };
25
26
27 ###### implementation
28
29 config = mkIf cfg.enable {
30 services.xserver.windowManager.session = singleton
31 { name = "fvwm";
32 start =
33 ''
34 ${fvwm}/bin/fvwm &
35 waitPID=$!
36 '';
37 };
38
39 environment.systemPackages = [ fvwm ];
40 };
41}