Skip to content

Instantly share code, notes, and snippets.

@Wincohax
Last active December 7, 2025 20:41
Show Gist options
  • Select an option

  • Save Wincohax/13cf5efa4a771521ec958541f028ca65 to your computer and use it in GitHub Desktop.

Select an option

Save Wincohax/13cf5efa4a771521ec958541f028ca65 to your computer and use it in GitHub Desktop.
How to Setup cosmic-greeter as Display Manager

Why?

While I was trying to setup my cosmic session I wanted to use Cosmic Greeter as my Display manager because I wanted to test it out and give my own feedback/report any bugs I could find.

However I didn't find any guide on how to do it plus there's little to no clue on how to set it up and it took me 2 days to figure it out.

That's why I write this quick guide.

How does Cosmic Greeter work? (ig)

Cosmic greeter by itself doesn't work it needs a Compositor (in this case Cosmic-Comp (obviously)) to actually run.

That's why we have to use Greetd to make it work it is actually pretty simple.

(Btw you should already know that this is pretty much alpha software so everything can be subject to change).

Actual Guide

(By following this guide I'm assuming you already installed cosmic with its deps and using systemd cuz ye)

Step 1: Setup greetd

Greetd config file should be by default at

/etc/greetd/config.toml

in the config file we need to have 2 things into account.

command = "whateveruhavebydefault"

and

user = "whateveruhavebydefault"

in command we are going to make Cosmic-comp to run Cosmic-greeter like this (path may be relative):

command = "cosmic-comp /bin/cosmic-greeter"

and in user we need to put a user that is AT LEAST in the video group (For example: By default on Arch whenever u install cosmic it creates a user called "cosmic-greeter")

You can check real quick if you have it by just typing

cat /etc/passwd

so in this case we will put cosmic-greeter as the user.

user = "cosmic-greeter"

After that you can save the file and enable greetd.

Step 2: Enable greetd

First disable any Display manager you have (For Example sddm)

systemctl disable sddm.service

Then enable greetd

systemctl enable greetd.service

Reboot and you should have Cosmic-greeter good to go.

Thanks to:

System76: for building the future of the Linux desktop.

Me: for being in pain

(Written on August 7th 2024 || Last edited on April 15th 2025)

@naul06
Copy link

naul06 commented Nov 1, 2025

The cosmic-greeter.toml greetd config is in the git repository, and should have been included in your distribution's cosmic-greeter package.

There is a problem with this, though, that is that greetd only works when the file is called config.toml, as far as my testing goes. Otherwise, it fails and exits with a generic error.

@brendanrankin
Copy link

brendanrankin commented Nov 19, 2025

Well...at least with the latest Fedora beta "stuff", there's systemd support. Though it makes use of greetd, it's a bit better than worrying about things manually. As I switch between Cosmic and Gnome, frequently...this is nice. Here's the content of that systemd service for "Cosmic Greeter" (at /usr/lib/systemd/system/cosmic-greeter.service):
<===
[Unit]
Description=COSMIC Greeter
After=systemd-user-sessions.service plymouth-quit-wait.service cosmic-greeter-daemon.service
After=[email protected]
Conflicts=[email protected]
Wants=cosmic-greeter-daemon.service

[Service]
Type=simple
ExecStart=greetd --config /etc/greetd/cosmic-greeter.toml
IgnoreSIGPIPE=no
SendSIGHUP=yes
TimeoutStopSec=30s
KeyringMode=shared
Restart=always
RestartSec=1
StartLimitBurst=5
StartLimitInterval=30

[Install]
Alias=display-manager.service
===>

and, here's the toml file that service references:
<===
[terminal]
vt = "1"

[general]
service = "cosmic-greeter"

[default_session]
command = "cosmic-greeter-start"
===>

Now, all I do when I want to switch between GDM and "greetd/Cosmic Greeter", I just enable/disable the respective systemd services using systemctl...as per usual (on a "modern-ish" Linux anyway).

Cheers!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment