Can't login with wayland using sddm with fish shell

When I try to login with wayland it doesn’t work, X11 works. On bash or zsh shell everything works fine.

Is anything logged in the journal: journalctrl --boot

My guess would be that all the stuff in /etc/profile.d/, such as /etc/profile.d/desktop-data.sh has no fish equivalent. After installing fish I see no changes to that folder. Maybe wayland needs one of these to run.

Output of:

journalctrl --boot
vas. 26 21:31:47 localhost.localdomain systemd-xdg-autostart-generator[1724]: /home/jonas/.config/autostart/io.crow_translate.CrowTranslate.desktop:2: Unknown key name 'Actions' in section 'Desktop Entry', ignoring.
vas. 26 21:31:47 localhost.localdomain systemd-xdg-autostart-generator[1724]: /home/jonas/.config/autostart/io.crow_translate.CrowTranslate.desktop:24: Unknown section 'Desktop Action TranslateSelectedText'. Ignorin>
vas. 26 21:31:47 localhost.localdomain systemd-xdg-autostart-generator[1724]: /home/jonas/.config/autostart/io.crow_translate.CrowTranslate.desktop:31: Unknown section 'Desktop Action SpeakSelection'. Ignoring.
vas. 26 21:31:47 localhost.localdomain systemd-xdg-autostart-generator[1724]: /home/jonas/.config/autostart/io.crow_translate.CrowTranslate.desktop:38: Unknown section 'Desktop Action SpeakTranslatedSelection'. Igno>
vas. 26 21:31:47 localhost.localdomain systemd-xdg-autostart-generator[1724]: /home/jonas/.config/autostart/io.crow_translate.CrowTranslate.desktop:45: Unknown section 'Desktop Action StopSpeaking'. Ignoring.
vas. 26 21:31:47 localhost.localdomain systemd-xdg-autostart-generator[1724]: /home/jonas/.config/autostart/io.crow_translate.CrowTranslate.desktop:52: Unknown section 'Desktop Action Open'. Ignoring.
vas. 26 21:31:47 localhost.localdomain systemd-xdg-autostart-generator[1724]: /home/jonas/.config/autostart/io.crow_translate.CrowTranslate.desktop:59: Unknown section 'Desktop Action CopyTranslatedSelection'. Ignor>
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Queued start job for default target Main User Target.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Created slice User Application Slice.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Created slice User Core Session Slice.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Started EOS update notifier runs periodically (weekly) and soon after a reboot.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Started Optimize Git repositories data.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Started Optimize Git repositories data.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Started Optimize Git repositories data.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Started Daily Cleanup of User's Temporary Directories.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Reached target Paths.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Reached target Timers.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Starting D-Bus User Message Bus Socket...
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Listening on Socket to launch DrKonqi for a systemd-coredump crash.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Listening on PipeWire PulseAudio.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Listening on PipeWire Multimedia System Socket.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Starting Create User's Volatile Files and Directories...
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Listening on D-Bus User Message Bus Socket.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Finished Create User's Volatile Files and Directories.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Reached target Sockets.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Reached target Basic System.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Started PipeWire Multimedia Service.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Started Multimedia Service Session Manager.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Started PipeWire PulseAudio.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Reached target Main User Target.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Startup finished in 150ms.
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Starting D-Bus User Message Bus...
vas. 26 21:31:47 localhost.localdomain systemd[1718]: Started D-Bus User Message Bus.
vas. 26 21:31:47 localhost.localdomain pipewire[1727]: mod.rt: Can't find org.freedesktop.portal.Desktop. Is xdg-desktop-portal running?
vas. 26 21:31:47 localhost.localdomain pipewire[1727]: mod.rt: found session bus but no portal
vas. 26 21:31:47 localhost.localdomain pipewire-pulse[1729]: mod.rt: Can't find org.freedesktop.portal.Desktop. Is xdg-desktop-portal running?
vas. 26 21:31:47 localhost.localdomain pipewire-pulse[1729]: mod.rt: found session bus but no portal
vas. 26 21:31:47 localhost.localdomain wireplumber[1728]: Can't find org.freedesktop.portal.Desktop. Is xdg-desktop-portal running?
vas. 26 21:31:47 localhost.localdomain wireplumber[1728]: found session bus but no portal
vas. 26 21:31:47 localhost.localdomain sddm-helper[1734]: pam_kwallet5: final socket path: /run/user/1000/kwallet5.socket
vas. 26 21:31:48 localhost.localdomain pipewire[1727]: mod.rt: RTKit error: org.freedesktop.DBus.Error.AccessDenied
vas. 26 21:31:48 localhost.localdomain pipewire[1727]: mod.rt: could not set nice-level to -11: Permission denied
vas. 26 21:31:48 localhost.localdomain pipewire-pulse[1729]: mod.rt: RTKit error: org.freedesktop.DBus.Error.AccessDenied
vas. 26 21:31:48 localhost.localdomain pipewire-pulse[1729]: mod.rt: could not set nice-level to -11: Permission denied
vas. 26 21:31:48 localhost.localdomain wireplumber[1728]: RTKit error: org.freedesktop.DBus.Error.AccessDenied
vas. 26 21:31:48 localhost.localdomain wireplumber[1728]: could not set nice-level to -11: Permission denied
vas. 26 21:31:48 localhost.localdomain wireplumber[1728]: RTKit error: org.freedesktop.DBus.Error.AccessDenied
vas. 26 21:31:48 localhost.localdomain wireplumber[1728]: could not make thread 1742 realtime using RTKit: Permission denied
vas. 26 21:31:48 localhost.localdomain pipewire[1727]: mod.rt: RTKit error: org.freedesktop.DBus.Error.AccessDenied
vas. 26 21:31:48 localhost.localdomain pipewire[1727]: mod.rt: could not make thread 1744 realtime using RTKit: Permission denied
vas. 26 21:31:48 localhost.localdomain pipewire-pulse[1729]: mod.rt: RTKit error: org.freedesktop.DBus.Error.AccessDenied
vas. 26 21:31:48 localhost.localdomain pipewire-pulse[1729]: mod.rt: could not make thread 1745 realtime using RTKit: Permission denied
vas. 26 21:31:48 localhost.localdomain wireplumber[1728]: SPA handle 'api.alsa.acp.device' could not be loaded; is it installed?
vas. 26 21:31:48 localhost.localdomain wireplumber[1728]: Failed to create 'api.alsa.acp.device' device
vas. 26 21:31:48 localhost.localdomain dbus-daemon[1732]: [session uid=1000 pid=1732] Activating via systemd: service name='org.freedesktop.impl.portal.PermissionStore' unit='xdg-permission-store.service' requested >
vas. 26 21:31:48 localhost.localdomain systemd[1718]: Starting sandboxed app permission store...
vas. 26 21:31:48 localhost.localdomain dbus-daemon[1732]: [session uid=1000 pid=1732] Successfully activated service 'org.freedesktop.impl.portal.PermissionStore'
vas. 26 21:31:48 localhost.localdomain systemd[1718]: Started sandboxed app permission store.
vas. 26 21:32:02 localhost.localdomain wireplumber[1728]: SPA handle 'api.alsa.acp.device' could not be loaded; is it installed?
vas. 26 21:32:02 localhost.localdomain wireplumber[1728]: Failed to create 'api.alsa.acp.device' device
vas. 26 21:32:30 localhost.localdomain systemd[1718]: Started app-flatpak-com.spotify.Client-2804.scope.
vas. 26 21:33:06 localhost.localdomain sudo[3641]: pam_kwallet5(sudo:auth): pam_kwallet5: pam_sm_authenticate
vas. 26 21:33:06 localhost.localdomain sudo[3641]: pam_kwallet5(sudo:auth): pam_kwallet5: Couldn't get password (it is empty)
vas. 26 21:33:09 localhost.localdomain sudo[3641]:    jonas : TTY=pts/1 ; PWD=/home/jonas ; USER=root ; COMMAND=/usr/bin/journalctl --boot
vas. 26 21:33:09 localhost.localdomain sudo[3641]: pam_kwallet5(sudo:setcred): pam_kwallet5: pam_sm_setcred
vas. 26 21:33:09 localhost.localdomain sudo[3641]: pam_unix(sudo:session): session opened for user root(uid=0) by jonas(uid=1000)
vas. 26 21:33:09 localhost.localdomain sudo[3641]: pam_kwallet5(sudo:session): pam_kwallet5: pam_sm_open_session
vas. 26 21:33:09 localhost.localdomain sudo[3641]: pam_kwallet5(sudo:session): pam_kwallet5: not a graphical session, skipping. Use force_run parameter to ignore this.
vas. 26 21:33:13 localhost.localdomain sudo[3641]: pam_unix(sudo:session): session closed for user root
vas. 26 21:33:13 localhost.localdomain sudo[3641]: pam_kwallet5(sudo:session): pam_kwallet5: pam_sm_close_session
vas. 26 21:33:13 localhost.localdomain sudo[3641]: pam_kwallet5(sudo:setcred): pam_kwallet5: pam_sm_setcred

And otput of /etc/profile.d/desktop-data.sh

jonas@localhost ~> sudo cat /etc/profile.d/desktop-data.csh 
#
# Set the default mouse cursor theme for X11
# therefore find out if this is a local or remote
# display and set the cursor theme only for the
# local system
#
if ( -r /etc/sysconfig/windowmanager) then
    set location=""
    set line=""
    if ( ${?DISPLAY} ) then
        set location="`echo $DISPLAY | sed 's/:[^:]*//'`"
        set line="`echo $DISPLAY | sed 's/[^:]*:/:/'`"
    endif
    if ( ${%location} == 0 ) then
        # local connection
        switch ( $line )
        case \:0:
           # console
           set location=local
           breaksw
        case \:0.0:
           # console
           set location=local
           breaksw
        default:
           # other displays
           set location=local
           breaksw
        endsw
    endif
    if ( "$location" == "local" ) then
        eval `sed -n -e 's/^\(X_MOUSE_CURSOR\) *=/set \1=/p' < /etc/sysconfig/windowmanager`
        if ( "$X_MOUSE_CURSOR" != "" ) then
                setenv XCURSOR_THEME "$X_MOUSE_CURSOR"
                unset XCURSOR_THEME
        endif
    endif
    unset location
    unset line
endif
jonas@localhost ~> 

I would compare the journal of a normal login (bash for example) to one with fish. It does look like there are errors log during the session startup - but are they normal for any shell. The way to tell is to make a comparison.

The content of the /etc/profile.d script isn’t useful. What I was trying to communicate in my first post is that each kind of shell, sh, csh, and in you case fish, will probably need a bunch of profile.d scripts to run on login to setup the session. It doesn’t appear that there are any fish scripts in profile.d, so you’d need to figure out how to address that issue. So you would need to com to grips with the minute details of how the session gets setup and how to do that with fish. It may be that someone has figured this out - perhaps use google.

It would be more practical to just have a bash login run fish when it’s done setting up the session. Easier still, set up a konsole profile that runs fish instead of /usr/bin/bash. Unless you really want to dig deep into how a session gets started, these are probably the two options I would recommend you explore.