Merge pull request #133438 from figsoda/sx-module

nixos/sx: init
This commit is contained in:
Ryan Mulligan 2021-08-24 09:33:07 -07:00 committed by GitHub
commit e02fbd0065
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 49 additions and 1 deletions

View file

@ -182,7 +182,7 @@
</para>
</listitem>
</itemizedlist>
<itemizedlist spacing="compact">
<itemizedlist>
<listitem>
<para>
<link xlink:href="https://docs.fluidd.xyz/">fluidd</link>, a
@ -191,6 +191,14 @@
<link linkend="opt-services.fluidd.enable">fluidd</link>.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/earnestly/sx">sx</link>,
a simple alternative to both xinit and startx for starting a
Xorg server. Available as
<link linkend="opt-services.xserver.displayManager.sx.enable">services.xserver.displayManager.sx</link>
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-21.11-incompatibilities">

View file

@ -58,6 +58,8 @@ subsonic-compatible api. Available as [navidrome](#opt-services.navidrome.enable
- [fluidd](https://docs.fluidd.xyz/), a Klipper web interface for managing 3d printers using moonraker. Available as [fluidd](#opt-services.fluidd.enable).
- [sx](https://github.com/earnestly/sx), a simple alternative to both xinit and startx for starting a Xorg server. Available as [services.xserver.displayManager.sx](#opt-services.xserver.displayManager.sx.enable)
## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
- The `paperless` module and package have been removed. All users should migrate to the

View file

@ -1036,6 +1036,7 @@
./services/x11/display-managers/sddm.nix
./services/x11/display-managers/slim.nix
./services/x11/display-managers/startx.nix
./services/x11/display-managers/sx.nix
./services/x11/display-managers/xpra.nix
./services/x11/fractalart.nix
./services/x11/hardware/libinput.nix

View file

@ -0,0 +1,37 @@
{ config, lib, pkgs, ... }:
with lib;
let cfg = config.services.xserver.displayManager.sx;
in {
options = {
services.xserver.displayManager.sx = {
enable = mkEnableOption "sx pseudo-display manager" // {
description = ''
Whether to enable the "sx" pseudo-display manager, which allows users
to start manually via the "sx" command from a vt shell. The X server
runs under the user's id, not as root. The user must provide a
~/.config/sx/sxrc file containing session startup commands, see
sx(1). This is not automatically generated from the desktopManager
and windowManager settings. sx doesn't have a way to directly set
X server flags, but it can be done by overriding its xorgserver
dependency.
'';
};
};
};
config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.sx ];
services.xserver = {
exportConfiguration = true;
displayManager = {
job.execCmd = "";
lightdm.enable = mkForce false;
};
logFile = mkDefault null;
};
systemd.services.display-manager.enable = false;
};
}