I'm using Arch Linux and I run greetd as a login manager.
I'm using Sway as a backend for gtkgreet and I also use Sway as my primary user session.
When I enter an incorrect password it segfaults, with a correct one it doesn't.
This is my current greetd config:
/etc/greetd/config.toml:
[terminal]
vt = 1
[default_session]
command = "sway-greetd"
user = "greeter"
/etc/greetd/environments:
start-sway
start-i3
bash
/etc/greetd/sway-config:
# Monitor configuration
set $output_mode 1920x1080@144Hz
output DP-1 mode $output_mode
output DP-2 mode $output_mode
# Disable laptop screen when closed
set $laptop eDP-1
bindswitch --reload --locked lid:on output $laptop disable
bindswitch --reload --locked lid:off output $laptop enable
# `-l` activates layer-shell mode. Notice that `swaymsg exit` will run after gtkgreet.
exec "GTK_THEME=Arc-Dark gtkgreet -l; swaymsg exit"
bindsym Mod4+shift+e exec swaynag \
-t warning \
-m 'What do you want to do?' \
-b 'Poweroff' 'systemctl poweroff' \
-b 'Reboot' 'systemctl reboot'
include /etc/sway/config.d/*
/usr/local/bin/sway-greetd:
#!/bin/sh
export XDG_SESSION_TYPE=wayland
export XDG_SESSION_DESKTOP=sway
export XDG_CURRENT_DESKTOP=sway
systemd-cat --identifier=sway-greetd-session sway --config /etc/greetd/sway-config "$@"
Currently, there's only one file under /etc/sway/config.d which is 50-systemd-user.conf and it's provided by the Arch Linux's package:
# sway does not set DISPLAY/WAYLAND_DISPLAY in the systemd user environment
# See FS#63021
# Adapted from xorg's 50-systemd-user.sh, which achieves a similar goal.
exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK
exec hash dbus-update-activation-environment 2>/dev/null && \
dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK