Skip to content

Commit

Permalink
nixos.windowmaker: rewrite
Browse files Browse the repository at this point in the history
  • Loading branch information
AndersonTorres committed Aug 20, 2024
1 parent f514641 commit 78e9a99
Showing 1 changed file with 37 additions and 8 deletions.
45 changes: 37 additions & 8 deletions nixos/modules/services/x11/window-managers/windowmaker.nix
Original file line number Diff line number Diff line change
@@ -1,25 +1,54 @@
{ config, lib, pkgs, ... }:

with lib;
{
config,
lib,
pkgs,
...
}:

let
inherit (lib)
mkEnableOption
mkPackageOption
mkOption
literalExpression
mkIf
singleton
;
inherit (lib.types) functionTo listOf package;
cfg = config.services.xserver.windowManager.windowmaker;
in
{
###### interface
options = {
services.xserver.windowManager.windowmaker.enable = mkEnableOption "windowmaker";
services.xserver.windowManager.windowmaker = {
enable = mkEnableOption "windowmaker";
package = mkPackageOption pkgs "windowmaker" { };
dockapps = mkOption {
type = functionTo (listOf package);
default = _: [ ];
defaultText = literalExpression ''
windowmaker: with windowmaker.dockapps; [ ];
'';
description = ''
Extra dockapps available to WindowMaker.
'';
example = literalExpression ''
windowmaker: with windowmaker.dockapps; [
cputnik
wmcube
];
'';
};
};
};

###### implementation
config = mkIf cfg.enable {
environment.systemPackages = [ cfg.package ] ++ cfg.dockapps cfg.package;
services.xserver.windowManager.session = singleton {
name = "windowmaker";
start = ''
${pkgs.windowmaker}/bin/wmaker &
${lib.getExe cfg.package} &
waitPID=$!
'';
};
environment.systemPackages = [ pkgs.windowmaker ];
};
}

0 comments on commit 78e9a99

Please sign in to comment.