---
aliases: [/en/sys/openbsd/gnome/]
categories: ['OpenBSD','System','X11']
date: 2021-07-24T20:00:00+02:00
description: "How to install, set and use Gnome on OpenBSD!"
draft: false
tags: ['OpenBSD','Gnome']
title: "OpenBSD: Gnome"
translationKey: "openbsd-gnome"
---
## Description
**Gnome** is one Desktop Environment, available on OpenBSD.
⇒ Environnement:
* OpenBSD: 6.9 → 7.1
----
In this tutorial, I assume that OpenBSD has just been freshly installed,
and that everything has to be done.
## Installation
Usual: `# pkg_add gnome gnome-extras`
Some dependancies are installed, like **avahi**, **consolekit2**, **dbus**,
**samba**, **sane-backend**, and many more.
## Configuration
The Gnome3 environment works differently from other desktop environments.
Don't try to set up personal files **profile**, **.kshrc**, or even **.xsession**;
they will not be taken into your account when starting and using Gnome.
### Daemons
If during the OpenBSD installation you have activated **xenodm** — *the
default X Display Manager* — disable it!
```sh
# rcctl disable xenodm
# rcctl stop xenodm
```
After, active **gdm**, the session manager, and all needed daemons.
```sh
# rcctl enable multicast messagebus avahi_daemon gdm
# rcctl start multicast messagebus avahi_daemon gdm
```
### Limits
As wrote on the pkg-readme file, limits are not enough to execute correctly
Gnome.
Let's do it right:
- create a "gnome" login class, and add your user to this class
Modify the `/etc/login.conf` file to add:
```cfg
gnome:\
:datasize-cur=1024M:\
:tc=default:
```
---
⇒ OpenBSD ≤ 7.0 : gdm will be missing file descriptors.
* create a "gdm" login class, and expand it to the xenodm.
```cfg
gdm:\
:tc=xenodm:
```
And, modify your user:
```sh
# usermod -L gnome user
```
*(where 'user' is your userid…)*
----
Voila!
It's enough to run correctly Gnome.
Think to restart your session or the machine.
Now, let's go a little further in the configuration, like setting the French
language, *or yours*, and others useful tips.
### Language
To manage your language — *mine is FR* — you need to modify the `/etc/gdm/locale.conf`
file, as:
```cfg
# $OpenBSD: locale.conf,v 1.4 2014/01/08 14:07:48 ajacoutot Exp $
#
# Mimics Linux's /etc/locale.conf.
# See locale(1) for a list of supported locales (`locale -a`).
# OpenBSD setlocale(3) does not handle LANG
#LANG="en_US.UTF-8"
LC_CTYPE="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
```
*If you do not make this change, and if you have a password with accented
characters in your language, according to the keyboard settings during the
OpenBSD installation, you will not be able to log in, because gdm uses
English by default*.
----
Think to restart gdm.
### Power Management
To use the suspend and hibernate features, you need to active the **apmd**
daemon:
```sh
# rcctl enable apmd
# rcctl set apmd flags -A
# rcctl start apmd
```
### Printing
To print, install Cups:
```sh
# pkg_add cups cups-filters cups-libs foomatic-db gutenprint
```
Start both services **cupsd**, and **cups_browsed** — *this second is useful
to detect printers on network using Bonjour broadcast messages, as Avahi*.
```sh
# rcctl enable cupsd cups_browsed
# rcctl start cups cups_browsed
```
L'administration peut se faire au-travers des paramètres **Imprimantes**,
voire de l'interface web de Cups, disponible depuis l'URL http://localhost:631,
ou des outils **cupsctl**, **lpadmin**.
You can administrate by the Printing Parameters, the webui of Cups,
*available on http://localhost:631*, or by tools as **cupsctl**, **lpadmin**.
### LibreOffice
The **gnome-documents** manager does not support Office types documents.
Install the **unoconv** package!
## Tips
### Keyboard
#### Display Desktop
⇒ Don't try to hide all windows to show just the desktop, the option is
not activated by default!
Open Parameters > Keyboard. Into the **Navigate windows** section, search
"Minimize all windows". Click on and set the desired key combination, like
the Super + D keys.
### Random Wallpaper
This feature does not exist by default!
I provide two scripts to implement this feature, on my Gitlab:
[WallpaperManager](https://framagit.org/hucste/tools/tree/master/OpenBSD/Gnome3/WallpaperManager)
Read the instructions to install and use it.
### PF
I've not discuted about firewall rules, but here is an example:
⇒ Cups :
```cfg
pass in on egress proto tcp from egress:network to egress port 631 flags S/SA modulate state
```
⇒ Avahi :
```cfg
pass proto udp from any to 224.0.0.251 port mdns allow-opts
pass inet6 proto udp from any to ff02::fb port mdns allow-opts
pass proto udp from any to 239.255.255.250 port ssdp allow-opts
pass inet6 proto udp from any to { ff02::c, ff05::c, ff08::c } port ssdp allow-opts
```
Of course, it's up to you!
## Troubleshooting
**GDM** refuse to start!
Directly, read the daemon log file, or even that of the messages log:
```sh
# grep gdm /var/log/daemon
```
### Gdm: Couldn't connect to system bus:
Into both files, **daemons**, **messages**, you have the equivalent of this
message:
```log
Jul 23 09:38:14 og3 gdm[56941]: Gdm: Couldn't connect to system bus: Could not connect: No such file or directory
```
Probably, this is because the **messagebus** service is not activated and started.
Have you activated all the services as written at the beginning of this article‽
## Documentations
* the differents pkg-readme files:
- /usr/local/share/doc/pkg-readmes/gnome
- /usr/local/share/doc/pkg-readmes/gnupg
- /usr/local/share/doc/pkg-readmes/samba
- /usr/local/share/doc/pkg-readmes/sane-backends
- and others…
----
Voila!
----