Building Budgie Desktop
Build Dependencies
budgie-desktop has a number of build dependencies that must be present before attempting configuration. The names are different depending on distribution. The following is a list of pkg-config dependencies currently required to build Budgie from source.
- accountsservice >= 23.13.9
- alsa-lib >= 1.2.14
- budgie-screensaver (or gnome-screensaver on Debian / Ubuntu)
- budgie-session
- gee-0.8 >= 0.20.0
- gio-2.0 >= 2.86.0
- gio-unix-2.0 >= 2.86.0
- gnome-desktop-3.0 >= 44.0
- gnome-settings-daemon >= 44.0
- gobject-2.0 >= 2.86.0
- gstreamer-1.0
- gtk+-3.0 >= 3.24.0
- ibus-1.0 >= 1.5.10
- libcanberra-devel
- libnotify >= 0.8
- libpeas2 >= 2.2.0
- libpulse >= 2
- libxfce4windowing
- meson
- magpie 0.9.x
- polkit-agent-1 >= 0.110
- polkit-gobject-1 >= 0.110
- upower-glib >= 0.99.0
- uuid
And:
- gtk-doc (For documentation building from git only)
- sassc (to build theming)
- vala >= 0.56.0
Please ensure you install budgie-screensaver before configuration. If you are on a Debian-based system, ensure you are install gnome-screensaver.
Run-time dependencies
budgie-desktop requires/recommends the following to be installed:
- zenity (to display mutter based dialogs)
- dconf-cli (to handle resetting of dconf)
- xdotool (lock keys applet)
Installing Build Dependencies
- Arch
- Debian / Ubuntu
- Fedora non-Atomic
- Solus
sudo pacman -S --needed base-devel git
sudo pacman -S --needed accountsservice budgie-session budgie-screensaver gnome-settings-daemon gtk-layer-shell ibus intltool libgee libpeas-2 libxfce4windowing meson magpie-wm sassc vala zenity
sudo apt install build-essential git
Enable software sources in your apt sources list then install the dependencies
sudo apt build-dep budgie-desktop
The manual method for dependency installation is:
sudo apt install build-essential git
sudo apt install gnome-settings-daemon-dev gtk-doc-tools intltool libaccountsservice-dev libasound2-dev
libgnome-desktop-3-dev libcanberra-dev libgee-0.8-dev libgstreamer1.0-dev
libgtk-3-dev libibus-1.0-dev libmagpie-0-dev libpeas-dev libpolkit-agent-1-dev libpulse-dev libupower-glib-dev
libxfce4windowing-dev meson ninja-build sassc uuid-dev valac
sudo dnf install accountsservice-devel alsa-lib-devel budgie-screensaver budgie-session desktop-file-utils gettext git glib2-devel gnome-desktop3-devel gnome-settings-daemon-devel gsettings-desktop-schemas-devel gstreamer1-devel gtk-doc gtk3-devel ibus-devel intltool json-glib-devel libcanberra-devel libpeas2-devel libX11-devel libXtst-devel libgee-devel libgudev-devel libnotify-devel libpeas1-devel libuuid-devel libwacom-devel libxfce4windowing-devel meson magpie-devel polkit-devel pulseaudio-libs-devel sassc upower-devel vala
sudo eopkg it accountsservice-devel alsa-lib-devel gtk-doc gnome-settings-daemon-devel gstreamer-1.0-devel ibus-devel libcanberra-devel libgee-devel libgnome-desktop-devel libnotify-devel libpeas-2-devel libwnck-devel libxfce4windowing-devel magpie-devel pulseaudio-devel sassc upower-devel vala ccache -c system.devel
Cloning the repository
git clone https://github.com/buddiesofbudgie/budgie-desktop.git
cd budgie-desktop
git submodule update --init
Configuring
- Arch
- Debian / Ubuntu
- Solus
- All Other Distributions
cd budgie-desktop
meson setup build --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
cd budgie-desktop
meson build --prefix=/usr --libdir=/usr/lib -Dwith-gnome-screensaver=true
Solus has special requirements and mandates the use of stateless XDG paths, as well as using the OS default CFLAGS:
cd budgie-desktop
meson --prefix /usr --libdir /usr/lib64 --sysconfdir /etc -Dwith-stateless=true build --buildtype plain
cd budgie-desktop
meson build --prefix=/usr --sysconfdir=/etc
Building
ninja -j$(($(getconf _NPROCESSORS_ONLN)+1)) -C build
Note: When building a distro package, please ensure you use:
meson build --prefix=/usr --sysconfdir=/etc --buildtype plain
This ensures your distro flags are respected.
Installing
sudo ninja install -C build