Use tuigreet as greeter for Hyprland and Gnome sessions

I needed to make a custom gnome desktop to start gnome with
XDG_SESSION_TYPE=wayland dbus-run-session .../gnome-session

See: https://github.com/apognu/tuigreet?tab=readme-ov-file#desktop-environments
main
Christian Ott 2 years ago
parent 10bddd9ec8
commit c15ecb2f45
  1. 5
      configuration.nix
  2. 4
      flake.nix
  3. 32
      greeter.nix

@ -43,11 +43,12 @@
# Enable the X11 windowing system. # Enable the X11 windowing system.
services.xserver.enable = true; services.xserver.enable = true;
programs.hyprland.enable = true;
# Enable the GNOME Desktop Environment. # Enable the GNOME Desktop Environment.
services.xserver.displayManager.gdm.enable = true; services.xserver.displayManager.gdm.enable = false;
services.xserver.desktopManager.gnome.enable = true; services.xserver.desktopManager.gnome.enable = true;
services.fprintd.enable = true; services.fprintd.enable = true;
# Configure keymap in X11 # Configure keymap in X11
# services.xserver.xkb.layout = "us"; # services.xserver.xkb.layout = "us";

@ -24,8 +24,12 @@
}; };
in { in {
nixosConfigurations.nix-fw16 = lib.nixosSystem { nixosConfigurations.nix-fw16 = lib.nixosSystem {
specialArgs = {
inherit pkgs-unstable;
};
modules = [ modules = [
./configuration.nix ./configuration.nix
./greeter.nix
nixos-hardware.nixosModules.framework-16-7040-amd nixos-hardware.nixosModules.framework-16-7040-amd
home-manager.nixosModules.home-manager { home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;

@ -0,0 +1,32 @@
{ config, pkgs, pkgs-unstable, lib, ... }:
let
tuigreet = "${pkgs-unstable.greetd.tuigreet}/bin/tuigreet";
hyprland-session = "${pkgs-unstable.hyprland}/share/wayland-sessions";
# https://github.com/bytemouse/config/blob/48d9be51a9666c9b62f4b8e84322b9d892ee0aea/modules/gnome.nix#L11
gnome-script = pkgs.writeShellScriptBin "gnome-script" ''
export XDG_SESSION_TYPE=wayland
${pkgs.dbus}/bin/dbus-run-session ${pkgs.gnome.gnome-session}/bin/gnome-session
'';
gnome-desktop = pkgs.makeDesktopItem {
name = "gnome-desktop";
desktopName = "Gnome Desktop";
exec = "${gnome-script}/bin/gnome-script";
terminal = true;
};
in {
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${tuigreet} --time --remember --greeting Hoi! --remember-session --sessions ${hyprland-session}:${gnome-desktop}/share/applications";
user = "greeter";
};
};
};
environment.systemPackages = with pkgs-unstable; [ greetd.tuigreet ];
}
Loading…
Cancel
Save

Powered by TurnKey Linux.