From b80eeb9e006e0616e98a6d348102c7c93fe83a03 Mon Sep 17 00:00:00 2001
From: nils <nilspe@proton.me>
Date: Fri, 17 Jan 2025 13:15:16 +0100
Subject: [PATCH] Added login-manager for gentoo

---
 .../graphical-session/login-manager.md        | 99 +++++++++++++++++++
 1 file changed, 99 insertions(+)

diff --git a/docs/gentoo-desktop-setup/graphical-session/login-manager.md b/docs/gentoo-desktop-setup/graphical-session/login-manager.md
index e69de29..ca78d96 100644
--- a/docs/gentoo-desktop-setup/graphical-session/login-manager.md
+++ b/docs/gentoo-desktop-setup/graphical-session/login-manager.md
@@ -0,0 +1,99 @@
+A login manager is a small graphical interface providing a nice login screen for getting into a graphical session. In this guide it is assumed that River will be used as window manager and as such it will also be used as the backend for the login manager. Before emerging the necessary packages first add some USE flags for river and keywords for `gtkgreet`:
+
+``` title="/etc/portage/package.use/river"
+gui-wm/river X
+gui-libs/wlroots X
+x11-libs/libxkbcommon X
+media-libs/libepoxy X
+media-libs/libglvnd X
+media-libs/mesa X
+```
+
+``` title="/etc/portage/package.accept_keywords/gtkgreet"
+gui-apps/gtkgreet ~amd64
+```
+
+Then emerge River and the `greetd` components:
+
+```
+root@host:~# emerge -av river gtkgreet greetd display-manager-init swaybg
+```
+
+Now `greetd` has to be configured to launch River with `gtkgreet`. Besides that styling `gtkgreet` can be done using css files and GTK themes and using this configuration a wallpaper which resides at `/etc/greetd/current_wallpaper.png`.
+
+``` title="/etc/greeld/config.toml"
+[terminal]
+vt = 7
+
+[default_session]
+command = "river -c /etc/greetd/river.init -no-xwayland"
+user = "greetd"
+```
+
+``` title="/etc/greetd/river.init"
+#!/bin/sh
+
+riverctl spawn "swaybg -m fill -i /etc/greetd/current_wallpaper.png"
+riverctl spawn "GTK_THEME='Orchis-Dark-Compact' gtkgreet -l -s /etc/greetd/gtkgreet.css; riverctl exit"
+```
+
+``` title="/etc/greetd/gtkgreet.css"
+@import url("/etc/greetd/wal/colors-waybar.css");
+
+* { 
+	color: @foreground;
+	background-color: transparent;
+	font-family: "Roboto";
+}
+
+box#body {
+	padding: 10px;
+	background-color: @background;
+	border-radius: 2px;
+}
+```
+
+
+
+``` title="/etc/greetd/environments"
+dbus-run-session -- river
+bash
+```
+
+``` title="/etc/greetd/wal/colors-waybar.css"
+@define-color foreground #c3c4c7;
+@define-color background #121320;
+@define-color cursor #c3c4c7;
+
+@define-color color0 #121320;
+@define-color color1 #5D629A;
+@define-color color2 #6E729D;
+@define-color color3 #7E82A9;
+@define-color color4 #9698AB;
+@define-color color5 #9195BC;
+@define-color color6 #9EA1C0;
+@define-color color7 #c3c4c7;
+@define-color color8 #5e6073;
+@define-color color9 #5D629A;
+@define-color color10 #6E729D;
+@define-color color11 #7E82A9;
+@define-color color12 #9698AB;
+@define-color color13 #9195BC;
+@define-color color14 #9EA1C0;
+@define-color color15 #c3c4c7;
+```
+
+Finally configure `display-manager` to start `greetd` upon boot:
+
+``` title="/etc/conf.d/display-manager"
+CHECKVT=7
+DISPLAYMANAGER="greetd"
+```
+
+Then enable the `display-manager` service to start on boot:
+
+```
+root@host:~# rc-update add display-manager default
+```
+
+> Before enabling the `display-manager` service it is recommend to simply first start it ones to see if it works.