Build from source
Use this on a system that has no package for Gnoblin. You build Gnoblin from a release tarball or a Git checkout, try it in a window, then add a login session.
make builds into build/stage inside the source directory and installs nothing. make install copies the build
to /usr/local/lib/gnoblin. After that, you can delete the source directory.
Prerequisites
Install these with your package manager:
- A C/C++ compiler and GNU Make
- Python 3, CMake, Meson and Ninja
tarandxz- Git, if you build from a Git checkout
- The development libraries that Gnoblin needs, including GLib,
GTK4, libadwaita,
PipeWire, xdg-desktop-portal and
gsettings-desktop-schemas
python3 scripts/check-build-deps.py checks the library versions. The versions Gnoblin builds against are listed in the
pinned versions file. On Fedora,
scripts/install-fedora-build-deps.sh installs them. On Debian and Ubuntu,
scripts/install-debian-build-deps.sh --with-test-tools installs them. When the release has a Meson that is too old
for Mutter, this script also installs a newer Meson from PyPI into /opt/gnoblin-meson. See
platform support for the systems that Gnoblin builds on.
When the system libraries are older than the ones Gnoblin is built against, some features are not available. The platform support page lists them.
To build without Gnoblin's portal backend, run ./build.sh --without-portal instead of make. You then need no
GTK4 or libadwaita.
1. Get the source
Download gnoblin-*-source.tar.xz from the Gnoblin releases,
then build it:
tar -xf gnoblin-*-source.tar.xz
cd gnoblin-[0-9]*/
makeTo build the development code instead, use Git:
git clone https://github.com/kierandrewett/gnoblin.git
cd gnoblin
makeRun make as your normal user.
2. Try it in a window
From a Wayland desktop, after make:
make previewA nested Gnoblin window opens with a terminal. It needs no root access and changes nothing on your system. Close the terminal to end the preview. See Devkit if it does not open.
3. Add a login session
Install these with your package manager first:
xdg-desktop-portaland WirePlumberdconf, so your settings survive logoutdbus-toolson Fedora, ordbuson Arch Linux
Then run:
make installmake install asks for sudo and installs:
- Gnoblin, in
/usr/local/lib/gnoblin - The
gnoblinandgnoblinctlcommands, in/usr/local/bin - The Gnoblin login entry and the manual pages
Install a desktop shell and log in. Run gnoblin --version to check the
installed version.
Gnoblin reads these desktop settings for idle and lock timing:
| Setting | What it does |
|---|---|
org.gnome.desktop.session idle-delay |
Seconds before the session goes idle. 0 turns it off |
org.gnome.desktop.screensaver lock-enabled |
true locks the screen when the session goes idle |
org.gnome.desktop.screensaver lock-delay |
Seconds to wait before it locks |
For X11 applications, install Xwayland with your package manager.
Build options
Add these settings after the command, for example make JOBS=4:
| Setting | Default | What it does |
|---|---|---|
PREFIX |
/usr/local/lib/gnoblin |
Where make install puts Gnoblin. Use the same value for make and make install |
JOBS |
number of processors | Number of parallel compilation jobs |
DEVKIT |
1 |
0 skips the nested viewer that make preview needs |
make clean deletes the build directory. An installed copy stays.
To leave out the portal backend or X11 application support, or to see what a build would do, run ./build.sh --help
for the flags.
Update
For a Git checkout:
git pull --ff-only
make
make installFor a release tarball, download the newer tarball, extract it into a new directory, and run make and
make install there. Log out and back in to use the new version.
Remove
Log in to another session first. Then remove the files that make install created:
sudo rm -f /usr/local/bin/gnoblin /usr/local/bin/gnoblinctl
sudo rm -f /usr/share/man/man1/gnoblin.1 /usr/share/man/man1/gnoblinctl.1
sudo rm -f /usr/share/wayland-sessions/gnoblin.desktop
sudo rm -f /usr/share/xdg-desktop-portal/portals/gnoblin.portal /usr/share/xdg-desktop-portal/gnoblin-portals.conf
sudo rm -f /usr/share/dbus-1/services/org.freedesktop.impl.portal.desktop.gnoblin.service
sudo rm -f /usr/lib/systemd/user/gnoblin-session.target /usr/lib/systemd/user/gnoblin-idle.service
sudo rm -f /usr/lib/systemd/user/xdg-desktop-portal-gnoblin.service
sudo rm -rf /usr/local/lib/gnoblinIf you set another PREFIX, remove that directory instead of /usr/local/lib/gnoblin. Your shell and your
configuration stay.
See source development to rebuild one component.