Commit e240f8bd authored by K900's avatar K900
Browse files

Merge remote-tracking branch 'origin/master' into staging-next

parents 02cfa48f c27ef746
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -252,6 +252,7 @@ in {
    services.xserver.displayManager.sddm = {
      package = kdePackages.sddm;
      theme = mkDefault "breeze";
      wayland.compositor = "kwin";
      extraPackages = with kdePackages; [
        breeze-icons
        kirigami
+87 −44
Original line number Diff line number Diff line
{ config, lib, pkgs, ... }:

with lib;
let
  xcfg = config.services.xserver;
  dmcfg = xcfg.displayManager;
@@ -14,6 +13,12 @@ let

  iniFmt = pkgs.formats.ini { };

  inherit (lib)
    concatMapStrings concatStringsSep getExe
    attrNames getAttr optionalAttrs optionalString
    mkRemovedOptionModule mkRenamedOptionModule mkIf mkEnableOption mkOption mkPackageOption types
    ;

  xserverWrapper = pkgs.writeShellScript "xserver-wrapper" ''
    ${concatMapStrings (n: "export ${n}=\"${getAttr n xEnv}\"\n") (attrNames xEnv)}
    exec systemd-cat -t xserver-wrapper ${dmcfg.xserverBin} ${toString dmcfg.xserverArgs} "$@"
@@ -38,12 +43,21 @@ let
      DefaultSession = optionalString (dmcfg.defaultSession != null) "${dmcfg.defaultSession}.desktop";

      DisplayServer = if cfg.wayland.enable then "wayland" else "x11";
    } // optionalAttrs (cfg.wayland.compositor == "kwin") {
      GreeterEnvironment = concatStringsSep " " [
        "LANG=C.UTF-8"
        "QT_WAYLAND_SHELL_INTEGRATION=layer-shell"
      ];
      InputMethod = ""; # needed if we are using --inputmethod with kwin
    };

    Theme = {
      Current = cfg.theme;
      ThemeDir = "/run/current-system/sw/share/sddm/themes";
      FacesDir = "/run/current-system/sw/share/sddm/faces";
    } // optionalAttrs (cfg.theme == "breeze") {
      CursorTheme = "breeze_cursors";
      CursorSize = 24;
    };

    Users = {
@@ -69,7 +83,7 @@ let
      SessionDir = "${dmcfg.sessionData.desktops}/share/wayland-sessions";
      CompositorCommand = lib.optionalString cfg.wayland.enable cfg.wayland.compositorCommand;
    };
  } // lib.optionalAttrs dmcfg.autoLogin.enable {
  } // optionalAttrs dmcfg.autoLogin.enable {
    Autologin = {
      User = dmcfg.autoLogin.user;
      Session = autoLoginSessionName;
@@ -83,6 +97,34 @@ let
  autoLoginSessionName =
    "${dmcfg.sessionData.autologinSession}.desktop";

  compositorCmds = {
    kwin = concatStringsSep " " [
      "${lib.getBin pkgs.kdePackages.kwin}/bin/kwin_wayland"
      "--no-global-shortcuts"
      "--no-kactivities"
      "--no-lockscreen"
      "--locale1"
    ];
    # This is basically the upstream default, but with Weston referenced by full path
    # and the configuration generated from NixOS options.
    weston =
      let
        westonIni = (pkgs.formats.ini { }).generate "weston.ini" {
          libinput = {
            enable-tap = xcfg.libinput.mouse.tapping;
            left-handed = xcfg.libinput.mouse.leftHanded;
          };
          keyboard = {
            keymap_model = xcfg.xkb.model;
            keymap_layout = xcfg.xkb.layout;
            keymap_variant = xcfg.xkb.variant;
            keymap_options = xcfg.xkb.options;
          };
        };
      in
      "${getExe pkgs.weston} --shell=kiosk -c ${westonIni}";
  };

in
{
  imports = [
@@ -206,24 +248,16 @@ in
      wayland = {
        enable = mkEnableOption "experimental Wayland support";

        compositor = mkOption {
          description = lib.mdDoc "The compositor to use: ${lib.concatStringsSep ", " (builtins.attrNames compositorCmds)}";
          type = types.enum (builtins.attrNames compositorCmds);
          default = "weston";
        };

        compositorCommand = mkOption {
          type = types.str;
          internal = true;

          # This is basically the upstream default, but with Weston referenced by full path
          # and the configuration generated from NixOS options.
          default = let westonIni = (pkgs.formats.ini {}).generate "weston.ini" {
              libinput = {
                enable-tap = xcfg.libinput.mouse.tapping;
                left-handed = xcfg.libinput.mouse.leftHanded;
              };
              keyboard = {
                keymap_model = xcfg.xkb.model;
                keymap_layout = xcfg.xkb.layout;
                keymap_variant = xcfg.xkb.variant;
                keymap_options = xcfg.xkb.options;
              };
            }; in "${pkgs.weston}/bin/weston --shell=kiosk -c ${westonIni}";
          default = compositorCmds.${cfg.wayland.compositor};
          description = lib.mdDoc "Command used to start the selected compositor";
        };
      };
@@ -247,8 +281,6 @@ in
      }
    ];

    services.xserver.displayManager.job.execCmd = "exec /run/current-system/sw/bin/sddm";

    security.pam.services = {
      sddm.text = ''
        auth      substack      login
@@ -293,30 +325,41 @@ in
      uid = config.ids.uids.sddm;
    };

    environment.etc."sddm.conf".source = cfgFile;
    environment.pathsToLink = [
    environment = {
      etc."sddm.conf".source = cfgFile;
      pathsToLink = [
        "/share/sddm"
      ];
      systemPackages = [ sddm ];
    };

    users.groups.sddm.gid = config.ids.gids.sddm;

    environment.systemPackages = [ sddm ];
    services.dbus.packages = [ sddm ];
    systemd.tmpfiles.packages = [ sddm ];
    services = {
      dbus.packages = [ sddm ];
      xserver = {
        displayManager.job.execCmd = "exec /run/current-system/sw/bin/sddm";
        # To enable user switching, allow sddm to allocate TTYs/displays dynamically.
        tty = null;
        display = null;
      };
    };

    systemd = {
      tmpfiles.packages = [ sddm ];

      # We're not using the upstream unit, so copy these: https://github.com/sddm/sddm/blob/develop/services/sddm.service.in
    systemd.services.display-manager.after = [
      services.display-manager = {
        after = [
          "systemd-user-sessions.service"
          "getty@tty7.service"
          "plymouth-quit.service"
          "systemd-logind.service"
        ];
    systemd.services.display-manager.conflicts = [
        conflicts = [
          "getty@tty7.service"
        ];

    # To enable user switching, allow sddm to allocate TTYs/displays dynamically.
    services.xserver.tty = null;
    services.xserver.display = null;
      };
    };
  };
}
+2 −2
Original line number Diff line number Diff line
@@ -19,12 +19,12 @@
}:
stdenv.mkDerivation rec {
  pname = "vdr-markad";
  version = "3.4.12";
  version = "3.4.13";

  src = fetchFromGitHub {
    repo = "vdr-plugin-markad";
    owner = "kfb77";
    sha256 = "sha256-yc/zWMGzsfZl3n+Qt5Se2duo3jwntCWaYq1yACsrPzM=";
    sha256 = "sha256-pDnziIWX6deBXuVIN7w6F6TdYDCcEO6MSaUIMB63uAg=";
    rev = "V${version}";
  };

+7 −0
Original line number Diff line number Diff line
{ buildDunePackage
, lib
, fetchFromGitHub
, fetchpatch
, which
, ocsigen_server
, lwt_react
@@ -26,6 +27,12 @@ buildDunePackage rec {
    hash = "sha256-REOyxwnQqWOKywVYwN/WP22cNKZv5Nv0OpFVbNBPJN8=";
  };

  # Compatibility with tyxml 4.6.x
  patches = fetchpatch {
    url = "https://github.com/ocsigen/eliom/commit/9a6adcce3959a37b971890999331335d07f4f732.patch";
    hash = "sha256-rgsqohSAHHljvag3c+HNGEgW9qwmqPq8qfTpX6vVKtg=";
  };

  nativeBuildInputs = [
    which
  ];
+7 −2
Original line number Diff line number Diff line
{ lib, fetchurl, buildDunePackage, js_of_ocaml, js_of_ocaml-ppx, lwd, tyxml }:
{ lib, fetchurl, fetchpatch, buildDunePackage, js_of_ocaml, js_of_ocaml-ppx, lwd, tyxml }:

buildDunePackage {
  pname = "tyxml-lwd";

  inherit (lwd) version src;

  # Compatibility with latest Tyxml (4.6.x)
  patches = fetchpatch {
    url = "https://github.com/let-def/lwd/commit/7f3364ec593b5ccf0d0294b97bcd1e28e4164691.patch";
    hash = "sha256-W1HjExZxDKRwsrB9ZTkvHTMKO0K5iZl+FrNqPs6BPGU=";
  };

  minimalOCamlVersion = "4.08";
  duneVersion = "3";

  buildInputs = [ js_of_ocaml-ppx ];
  propagatedBuildInputs = [ js_of_ocaml lwd tyxml ];
Loading