diff options
-rw-r--r-- | nixos/modules/module-list.nix | 1 | ||||
-rw-r--r-- | nixos/modules/programs/wayland/wayfire.nix | 48 |
2 files changed, 49 insertions, 0 deletions
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index f7acbb59dc2c1..e4e5fa97608a4 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -264,6 +264,7 @@ ./programs/wayland/river.nix ./programs/wayland/sway.nix ./programs/wayland/waybar.nix + ./programs/wayland/wayfire.nix ./programs/weylus.nix ./programs/wireshark.nix ./programs/xastir.nix 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; + }; + }; +} |