diff options
Diffstat (limited to 'nixos/modules/services/x11/window-managers/compiz.nix')
-rw-r--r-- | nixos/modules/services/x11/window-managers/compiz.nix | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/nixos/modules/services/x11/window-managers/compiz.nix b/nixos/modules/services/x11/window-managers/compiz.nix new file mode 100644 index 000000000000..209401f26468 --- /dev/null +++ b/nixos/modules/services/x11/window-managers/compiz.nix @@ -0,0 +1,63 @@ +{ config, pkgs, ... }: + +with pkgs.lib; + +let + + cfg = config.services.xserver.windowManager.compiz; + xorg = config.services.xserver.package; + +in + +{ + + options = { + + services.xserver.windowManager.compiz = { + + enable = mkOption { + default = false; + description = "Enable the Compiz window manager."; + }; + + renderingFlag = mkOption { + default = ""; + example = "--indirect-rendering"; + description = "Pass the <option>--indirect-rendering</option> flag to Compiz."; + }; + + }; + + }; + + + config = mkIf cfg.enable { + + services.xserver.windowManager.session = singleton + { name = "compiz"; + start = + '' + # Start Compiz using the flat-file configuration backend + # (ccp). + export COMPIZ_PLUGINDIR=${config.system.path}/lib/compiz + export COMPIZ_METADATADIR=${config.system.path}/share/compiz + ${pkgs.compiz}/bin/compiz ccp ${cfg.renderingFlag} & + + # Start GTK-style window decorator. + ${pkgs.compiz}/bin/gtk-window-decorator & + ''; + }; + + environment.systemPackages = + [ pkgs.compiz + pkgs.compiz_ccsm + pkgs.compiz_plugins_main + pkgs.compiz_plugins_extra + pkgs.libcompizconfig # for the "ccp" plugin + ]; + + environment.pathsToLink = [ "/lib/compiz" "/share/compiz" ]; + + }; + +} |