Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 5f594c6a7c5e
Choose a base ref
...
head repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 765afd38fa13
Choose a head ref
  • 3 commits
  • 3 files changed
  • 2 contributors

Commits on Jan 18, 2020

  1. gdm: refactor to properly handle wayland sessions

    Elyhaka authored and Elyhaka committed Jan 18, 2020
    Copy the full SHA
    d18ac2b View commit details

Commits on Jan 19, 2020

  1. nixos/gnome3: add gnome-shell to systemd.packages

    This actually gets added via xdg.portal having gnome-shell.
    However, that could change and it still for sure should be here.
    worldofpeace committed Jan 19, 2020
    Copy the full SHA
    c6022f7 View commit details
  2. Merge pull request #76985 from Elyhaka/gdm_hides_gnome

    gdm: refactor to properly handle wayland sessions
    worldofpeace authored Jan 19, 2020
    Copy the full SHA
    765afd3 View commit details
12 changes: 9 additions & 3 deletions nixos/modules/services/x11/desktop-managers/gnome3.nix
Original file line number Diff line number Diff line change
@@ -144,7 +144,7 @@ in
services.gnome3.core-shell.enable = true;
services.gnome3.core-utilities.enable = mkDefault true;

services.xserver.displayManager.sessionPackages = [ pkgs.gnome3.gnome-session ];
services.xserver.displayManager.sessionPackages = [ pkgs.gnome3.gnome-session.sessions ];

environment.extraInit = ''
${concatMapStrings (p: ''
@@ -249,11 +249,17 @@ in
services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
services.telepathy.enable = mkDefault true;

systemd.packages = with pkgs.gnome3; [ vino gnome-session ];
systemd.packages = with pkgs.gnome3; [
gnome-session
gnome-shell
vino
];

services.avahi.enable = mkDefault true;

xdg.portal.extraPortals = [ pkgs.gnome3.gnome-shell ];
xdg.portal.extraPortals = [
pkgs.gnome3.gnome-shell
];

services.geoclue2.enable = mkDefault true;
services.geoclue2.enableDemoAgent = false; # GNOME has its own geoclue agent
4 changes: 4 additions & 0 deletions nixos/modules/services/x11/display-managers/gdm.nix
Original file line number Diff line number Diff line change
@@ -174,6 +174,10 @@ in
"f /run/gdm/.config/gnome-initial-setup-done 0711 gdm gdm - yes"
];

# Otherwise GDM will not be able to start correctly and display Wayland sessions
systemd.packages = with pkgs.gnome3; [ gnome-session gnome-shell ];
environment.systemPackages = [ pkgs.gnome3.adwaita-icon-theme ];

systemd.services.display-manager.wants = [
# Because sd_login_monitor_new requires /run/systemd/machines
"systemd-machined.service"
11 changes: 11 additions & 0 deletions pkgs/desktops/gnome-3/core/gnome-session/default.nix
Original file line number Diff line number Diff line change
@@ -6,6 +6,8 @@ stdenv.mkDerivation rec {
pname = "gnome-session";
version = "3.34.2";

outputs = ["out" "sessions"];

src = fetchurl {
url = "mirror://gnome/sources/gnome-session/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb";
@@ -50,6 +52,15 @@ stdenv.mkDerivation rec {
--suffix XDG_CONFIG_DIRS : "${gnome3.gnome-settings-daemon}/etc/xdg"
'';

# We move the GNOME sessions to another output since gnome-session is a dependency of
# GDM itself. If we do not hide them, it will show broken GNOME sessions when GDM is
# enabled without proper GNOME installation.
postInstall = ''
mkdir $sessions
moveToOutput share/wayland-sessions "$sessions"
moveToOutput share/xsessions "$sessions"
'';

passthru = {
updateScript = gnome3.updateScript {
packageName = "gnome-session";