From d9f707f79563673576f31c0195f5b85a5ce92067 Mon Sep 17 00:00:00 2001 From: rewine Date: Sun, 16 Jul 2023 23:11:54 +0800 Subject: nixos/wayfire: init --- nixos/modules/programs/wayland/wayfire.nix | 48 ++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 nixos/modules/programs/wayland/wayfire.nix (limited to 'nixos/modules/programs') diff --git a/nixos/modules/programs/wayland/wayfire.nix b/nixos/modules/programs/wayland/wayfire.nix new file mode 100644 index 0000000000000..d0b280e3940fc --- /dev/null +++ b/nixos/modules/programs/wayland/wayfire.nix @@ -0,0 +1,48 @@ +{ config, lib, pkgs, ...}: +let + cfg = config.programs.wayfire; +in +{ + meta.maintainers = with lib.maintainers; [ rewine ]; + + options.programs.wayfire = { + enable = lib.mkEnableOption (lib.mdDoc "Wayfire, a wayland compositor based on wlroots."); + + package = lib.mkPackageOptionMD pkgs "wayfire" { }; + + plugins = lib.mkOption { + type = lib.types.listOf lib.types.package; + default = with pkgs.wayfirePlugins; [ wcm wf-shell ]; + defaultText = lib.literalExpression "with pkgs.wayfirePlugins; [ wcm wf-shell ]"; + example = lib.literalExpression '' + with pkgs.wayfirePlugins; [ + wcm + wf-shell + wayfire-plugins-extra + ]; + ''; + description = lib.mdDoc '' + Additional plugins to use with the wayfire window manager. + ''; + }; + }; + + config = let + finalPackage = pkgs.wayfire-with-plugins.override { + wayfire = cfg.package; + plugins = cfg.plugins; + }; + in + lib.mkIf cfg.enable { + environment.systemPackages = [ + finalPackage + ]; + + services.xserver.displayManager.sessionPackages = [ finalPackage ]; + + xdg.portal = { + enable = lib.mkDefault true; + wlr.enable = lib.mkDefault true; + }; + }; +} -- cgit 1.4.1