Unverified Commit 77a1c48c authored by Ryan Lahfa's avatar Ryan Lahfa Committed by GitHub
Browse files

Merge pull request #232011 from GaetanLepage/river

nixos/river: init module
parents f7947266 8f421acb
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -10,6 +10,8 @@

<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->

- [river](https://github.com/riverwm/river), A dynamic tiling wayland compositor. Available as [programs.river](#opt-programs.river.enable).

## Backward Incompatibilities {#sec-release-23.11-incompatibilities}

- The latest version of `clonehero` now stores custom content in `~/.clonehero`. See the [migration instructions](https://clonehero.net/2022/11/29/v23-to-v1-migration-instructions.html). Typically, these content files would exist along side the binary, but the previous build used a wrapper script that would store them in `~/.config/unity3d/srylain Inc_/Clone Hero`.
+3 −3
Original line number Diff line number Diff line
@@ -241,7 +241,6 @@
  ./programs/starship.nix
  ./programs/steam.nix
  ./programs/streamdeck-ui.nix
  ./programs/sway.nix
  ./programs/sysdig.nix
  ./programs/system-config-printer.nix
  ./programs/systemtap.nix
@@ -256,7 +255,9 @@
  ./programs/usbtop.nix
  ./programs/vim.nix
  ./programs/wavemon.nix
  ./programs/waybar.nix
  ./programs/wayland/river.nix
  ./programs/wayland/sway.nix
  ./programs/wayland/waybar.nix
  ./programs/weylus.nix
  ./programs/wireshark.nix
  ./programs/xastir.nix
@@ -1310,7 +1311,6 @@
  ./services/x11/window-managers/default.nix
  ./services/x11/window-managers/fluxbox.nix
  ./services/x11/window-managers/icewm.nix
  ./services/x11/window-managers/bspwm.nix
  ./services/x11/window-managers/katriawm.nix
  ./services/x11/window-managers/metacity.nix
  ./services/x11/window-managers/nimdow.nix
+59 −0
Original line number Diff line number Diff line
{
  config,
  pkgs,
  lib,
  ...
}:
with lib; let
  cfg = config.programs.river;
in {
  options.programs.river = {
    enable = mkEnableOption (lib.mdDoc "river, a dynamic tiling Wayland compositor");

    package = mkOption {
      type = with types; nullOr package;
      default = pkgs.river;
      defaultText = literalExpression "pkgs.river";
      description = lib.mdDoc ''
        River package to use.
        Set to `null` to not add any River package to your path.
        This should be done if you want to use the Home Manager River module to install River.
      '';
    };

    extraPackages = mkOption {
      type = with types; listOf package;
      default = with pkgs; [
        swaylock
        foot
        dmenu
      ];
      defaultText = literalExpression ''
        with pkgs; [ swaylock foot dmenu ];
      '';
      example = literalExpression ''
        with pkgs; [
          termite rofi light
        ]
      '';
      description = lib.mdDoc ''
        Extra packages to be installed system wide. See
        [Common X11 apps used on i3 with Wayland alternatives](https://github.com/swaywm/sway/wiki/i3-Migration-Guide#common-x11-apps-used-on-i3-with-wayland-alternatives)
        for a list of useful software.
      '';
    };
  };

  config =
    mkIf cfg.enable (mkMerge [
      {
        environment.systemPackages = optional (cfg.package != null) cfg.package ++ cfg.extraPackages;

        # To make a river session available if a display manager like SDDM is enabled:
        programs.xwayland.enable = mkDefault true;
      }
      (import ./wayland-session.nix { inherit lib pkgs; })
    ]);

  meta.maintainers = with lib.maintainers; [ GaetanLepage ];
}
+29 −34
Original line number Diff line number Diff line
@@ -123,7 +123,9 @@ in {

  };

  config = mkIf cfg.enable {
  config = mkIf cfg.enable
    (mkMerge [
      {
        assertions = [
          {
            assertion = cfg.extraSessionCommands != "" -> cfg.wrapperFeatures.base;
@@ -147,17 +149,10 @@ in {
            "sway/config".source = mkOptionDefault "${cfg.package}/etc/sway/config";
          };
        };
    security.polkit.enable = true;
    security.pam.services.swaylock = {};
    hardware.opengl.enable = mkDefault true;
    fonts.enableDefaultFonts = mkDefault true;
    programs.dconf.enable = mkDefault true;
        # To make a Sway session available if a display manager like SDDM is enabled:
    services.xserver.displayManager.sessionPackages = optionals (cfg.package != null) [ cfg.package ];
    programs.xwayland.enable = mkDefault true;
    # For screen sharing (this option only has an effect with xdg.portal.enable):
    xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-wlr ];
  };
        services.xserver.displayManager.sessionPackages = optionals (cfg.package != null) [ cfg.package ]; }
      (import ./wayland-session.nix { inherit lib pkgs; })
    ]);

  meta.maintainers = with lib.maintainers; [ primeos colemickens ];
}
Loading