Skip to content

Installation

DreamMaoMao edited this page Aug 29, 2026 · 1 revision

Installation

Dependencies

Build tools: meson, ninja, wayland-scanner (part of wayland), pkg-config.

Libraries:

Package Purpose
cjson JSONC configuration parsing
wayland, wayland-protocols Wayland client protocol
fcft, tllist Font rendering
pixman, cairo 2D drawing
pango Text layout
libpulse PulseAudio volume module
systemd-libs sd-bus (tray DBus)
gdk-pixbuf2 Tray icon decoding
alsa-lib ALSA fallback for volume

Arch

sudo pacman -S --needed meson ninja cjson wayland wayland-protocols \
  fcft tllist pixman cairo pango libpulse systemd-libs gdk-pixbuf2 alsa-lib

Debian / Ubuntu

sudo apt install meson ninja-build libcjson-dev libwayland-dev \
  wayland-protocols libfcft-dev libpixman-1-dev libcairo2-dev \
  libpango1.0-dev libpulse-dev libtllist-dev libsystemd-dev libgdk-pixbuf-2.0-dev \
  libasound2-dev pkg-config

Build

git clone https://github.com/mangowm/mangobar.git
cd mangobar
meson setup build -Dprefix=/usr
ninja -C build
sudo ninja -C build install

If meson.build changes after a git pull, ninja re-runs meson automatically; install any newly added dependencies first.

Note: pamixer / brightnessctl are only needed if your config's click/scroll actions call them.

Nix

Build the package locally with:

nix build .#mangobar
./result/bin/mangobar

Home Manager

The flake exports a Home Manager module. Add it to your flake inputs and enable the user service:

{
  imports = [ inputs.mangobar.homeManagerModules.default ];

  services.mangobar = {
    enable = true;
    systemdTarget = "mango.target";
  };
}

The service starts with graphical-session.target by default. Set systemdTarget to your compositor's user target, such as mango.target. Override services.mangobar.package to use a different mangobar derivation.

Set services.mangobar.settings to generate ~/.config/mangobar/config.jsonc from a Nix attribute set, or use services.mangobar.configFile for an existing JSONC file. These options are mutually exclusive. Changing either configuration restarts the service during Home Manager activation; rebuilding the mangobar package does as well.

services.mangobar.settings = {
  modules-left = [ "workspaces" "layout" "window" ];
  modules-right = [ "cpu" "memory" "clock#time" ];
};

Running

Run mangobar inside a mangowm session. It reads configuration from:

  1. $MANGOBAR_CONFIG
  2. ~/.config/mangobar/config.jsonc

The CSS style file is read from $MANGOBAR_CSS first, then ~/.config/mangobar/style.css.

Clone this wiki locally