Added initial post and graphical sections for gentoo

This commit is contained in:
nils 2025-01-13 01:09:14 +01:00
parent 6c4c700d46
commit f76a22ea0b
10 changed files with 113 additions and 0 deletions

View file

@ -0,0 +1,21 @@
Session management is necessary for tracking and giving rights to certain users. For a functional setup install both `elogind` and `turnstile` and enable their corresponding services.
``` shell-session
root@host:~# emerge -av elogind turnstile
root@host:~# rc-update add elogind boot
root@host:~# rc-update add turnstiled dbus
```
Then configure `pam` to allow them to track the user:
``` shell title="/etc/pam.d/system-login"
...
session optional pam_elogind.so
session optional pam_turnstile.so
```
When a user logs in it should now be able to start a graphical session. This should be done with:
``` shell-session
user@host:~$ dbus-run-session -- <window_manager>
```

View file

@ -0,0 +1,12 @@
River is a wayland tiling window manager which is configured only using its `riverctl` interface. It is rather minimal but still remains functional. River is coded using Zig but this is by default masked on Gentoo so first unmask them:
``` title="/etc/portage/package.accept_keywords/zig"
dev-lang/zig ~amd64
app-eselect/eselect-zig ~amd64
```
Then emerge `river` like normal.
``` shell-session
root@host:~# emerge -av river
```

View file

@ -0,0 +1,35 @@
`ccache` is a program which save compiling cache speeding up recompile's of big software. First install it:
```
root@host:~# emerge -av dev-util/ccache
```
And create a configuration file for `ccache`.
``` title="/etc/ccache.conf"
cache_dir = /var/cache/ccache
max_size = 20G
umask = 002
hash_dir = false
compiler_check = %compiler% -dumpversion
compression = true
compression_level = 1
```
Configure `portage` to allow `ccache` for specified packages:
``` title="/etc/portage/env/enable-ccache.conf"
FEATURES="ccache"
CCACHE_DIR="/var/cache/ccache"
```
Then for every package with which you want to use `ccache` add them:
``` title="/etc/portage/package.env/ccache"
sys-kernel/gentoo-kernel enable-ccache.conf
sys-kernel/firefox enable-ccache.conf
...
```

View file

@ -0,0 +1,5 @@
Video drivers are necessary for a graphical session to function. In Gentoo it is as simple as specifying what video card the system uses using USE flags:
``` title="/etc/portage/package.use/00video"
*/* VIDEO_CARDS: -* <amdgpu radeonsi || intel || nvidia>
```

View file

@ -0,0 +1,32 @@
Adding a user to the system is essential for actually using it as a desktop. It is pretty straight forward:
``` shell-session
root@host:~# useradd -m -G <wheel,>plugdev,pipewire -s /bin/bash <username>
root@host:~# passwd <username>
...
passwd: password updated successfully
```
> The `pipewire` group will not exist yet until the corresponding package is installed.
The `wheel` group should ideally only be assigned to one singular admin account. The users in the group are allowed to use the `doas` command to gain root privileges. This is necessary for installing packages and changing system files but not for a normal user.
## Doas
Installing and configuring `doas` should be done like so.
``` title="/etc/portage/package.use/doas"
app-admin/doas persist
```
> This USE flag is necessary when typing the user's password every few seconds gets to annoying.
``` shell-session
root@host:~# emerge -av doas
```
``` title="/etc/doas.conf"
permit persist :wheel as root
```
Now users who are in the `wheel` group are allowed to use the `doas` command to gain root privileges.

View file

View file

@ -96,6 +96,14 @@ nav:
- gentoo-desktop-setup/index.md - gentoo-desktop-setup/index.md
- 'Provisioning': gentoo-desktop-setup/provisioning.md - 'Provisioning': gentoo-desktop-setup/provisioning.md
- 'Installation': gentoo-desktop-setup/installation.md - 'Installation': gentoo-desktop-setup/installation.md
- 'Post installation':
- 'Firmware and drivers': gentoo-desktop-setup/post-install/drivers.md
- 'Swap': gentoo-desktop-setup/post-install/swap.md
- 'Users': gentoo-desktop-setup/post-install/users.md
- 'Graphical session':
- 'Session manager': gentoo-desktop-setup/graphical-session/session-manager.md
- 'Login manager': gentoo-desktop-setup/graphical-session/login-manager.md
- 'Window manager': gentoo-desktop-setup/graphical-session/window-manager.md
- 'Void-desktop setup': - 'Void-desktop setup':
- void-desktop-setup/index.md - void-desktop-setup/index.md