summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAylur <[email protected]>2024-09-11 13:30:43 +0000
committerAylur <[email protected]>2024-09-11 13:30:51 +0000
commit137345755c1c02d4766f1788198096013df9080c (patch)
tree19fdc58f9ba48edd2e2f5121da9ac169ad1651cf
parent56dd3eb43d218d6099d760f6c0c4956db84c46f2 (diff)
docs: document libraries
-rw-r--r--docs/libraries/apps.md3
-rw-r--r--docs/libraries/auth.md97
-rw-r--r--docs/libraries/battery.md88
-rw-r--r--docs/libraries/bluetooth.md90
-rw-r--r--docs/libraries/hyprland.md83
-rw-r--r--docs/libraries/mpris.md88
-rw-r--r--docs/libraries/network.md85
-rw-r--r--docs/libraries/notifd.md90
-rw-r--r--docs/libraries/powerprofiles.md88
-rw-r--r--docs/libraries/river.md79
-rw-r--r--docs/libraries/tray.md83
-rw-r--r--docs/libraries/wireplumber.md85
12 files changed, 957 insertions, 2 deletions
diff --git a/docs/libraries/apps.md b/docs/libraries/apps.md
index 85aa8ae..f19a70a 100644
--- a/docs/libraries/apps.md
+++ b/docs/libraries/apps.md
@@ -30,7 +30,7 @@ git clone https://github.com/aylur/astal.git
cd astal/lib/apps
```
-3. clone repo
+3. install
```sh
meson setup build
@@ -44,7 +44,6 @@ instead which most package managers do, set the `prefix` option:
```sh
meson setup --prefix /usr build
-meson install -C build
```
:::
diff --git a/docs/libraries/auth.md b/docs/libraries/auth.md
index 7ad9c14..a699404 100644
--- a/docs/libraries/auth.md
+++ b/docs/libraries/auth.md
@@ -1 +1,98 @@
# Auth
+
+Library and CLI tool for authentication using [pam](https://github.com/linux-pam/linux-pam).
+
+## Installation
+
+1. install dependencies
+
+:::code-group
+
+```sh [<i class="devicon-archlinux-plain"></i> Arch]
+sudo pacman -Syu meson pam gobject-introspection
+```
+
+```sh [<i class="devicon-fedora-plain"></i> Fedora]
+sudo dnf install meson pam-devel gobject-introspection-devel
+```
+
+```sh [<i class="devicon-ubuntu-plain"></i> Ubuntu]
+# Not yet documented
+```
+
+:::
+
+::: warning On NixOS you have to add `astal-auth` to `security.pam`.
+::: code-group
+
+```nix [configuration.nix]
+{
+ security.pam.services.astal-auth = {}
+}
+```
+
+:::
+
+2. clone repo
+
+```sh
+git clone https://github.com/aylur/astal.git
+cd astal/lib/auth
+```
+
+3. install
+
+```sh
+meson setup build
+meson install -C build
+```
+
+:::tip
+Most distros recommend manual installs in `/usr/local`,
+which is what `meson` defaults to. If you want to install to `/usr`
+instead which most package managers do, set the `prefix` option:
+
+```sh
+meson setup --prefix /usr build
+```
+
+:::
+
+## Usage
+
+You can browse the [Auth reference](https://aylur.github.io/libastal/auth).
+
+### CLI
+
+```sh
+astal-auth --password my-password
+```
+
+### Library
+
+:::code-group
+
+```js [<i class="devicon-javascript-plain"></i> JavaScript]
+import Auth from "gi://AstalAuth";
+import Gio from "gi://Gio";
+
+Gio._promisify(Auth.Pam, "authenticate");
+
+await Auth.Pam.authenticate("password")
+ .then(_ => print("authentication sucessful"))
+ .catch(logError);
+```
+
+```py [<i class="devicon-python-plain"></i> Python]
+# Not yet documented
+```
+
+```lua [<i class="devicon-lua-plain"></i> Lua]
+-- Not yet documented
+```
+
+```vala [<i class="devicon-vala-plain"></i> Vala]
+// Not yet documented
+```
+
+:::
diff --git a/docs/libraries/battery.md b/docs/libraries/battery.md
index 2e720a4..4a48b96 100644
--- a/docs/libraries/battery.md
+++ b/docs/libraries/battery.md
@@ -1 +1,89 @@
# Battery
+
+Library and CLI tool for monitoring [upowerd](https://upower.freedesktop.org/) devices.
+
+## Installation
+
+1. install dependencies
+
+:::code-group
+
+```sh [<i class="devicon-archlinux-plain"></i> Arch]
+sudo pacman -Syu meson vala gobject-introspection
+```
+
+```sh [<i class="devicon-fedora-plain"></i> Fedora]
+sudo dnf install meson gcc valac gobject-introspection-devel
+```
+
+```sh [<i class="devicon-ubuntu-plain"></i> Ubuntu]
+sudo apt install meson valac gobject-introspection
+```
+
+:::
+
+::: info
+Although UPower is not a direct build dependency,
+it should be self-explanatory that the daemon is required to be available at runtime.
+:::
+
+2. clone repo
+
+```sh
+git clone https://github.com/aylur/astal.git
+cd astal/lib/battery
+```
+
+3. install
+
+```sh
+meson setup build
+meson install -C build
+```
+
+:::tip
+Most distros recommend manual installs in `/usr/local`,
+which is what `meson` defaults to. If you want to install to `/usr`
+instead which most package managers do, set the `prefix` option:
+
+```sh
+meson setup --prefix /usr build
+```
+
+:::
+
+## Usage
+
+You can browse the [Battery reference](https://aylur.github.io/libastal/battery).
+
+### CLI
+
+```sh
+astal-battery --help
+```
+
+### Library
+
+:::code-group
+
+```js [<i class="devicon-javascript-plain"></i> JavaScript]
+import Battery from "gi://AstalBattery";
+
+const battery = Battery.get_default()
+
+console.log(battery.percentage)
+```
+
+```py [<i class="devicon-python-plain"></i> Python]
+# Not yet documented
+```
+
+```lua [<i class="devicon-lua-plain"></i> Lua]
+-- Not yet documented
+```
+
+```vala [<i class="devicon-vala-plain"></i> Vala]
+// Not yet documented
+```
+
+:::
diff --git a/docs/libraries/bluetooth.md b/docs/libraries/bluetooth.md
index 3f7300f..9aa7de7 100644
--- a/docs/libraries/bluetooth.md
+++ b/docs/libraries/bluetooth.md
@@ -1 +1,91 @@
# Bluetooth
+
+Library for monitoring [bluez](https://www.bluez.org/) over dbus.
+
+## Installation
+
+1. install dependencies
+
+:::code-group
+
+```sh [<i class="devicon-archlinux-plain"></i> Arch]
+sudo pacman -Syu meson vala gobject-introspection
+```
+
+```sh [<i class="devicon-fedora-plain"></i> Fedora]
+sudo dnf install meson gcc valac gobject-introspection-devel
+```
+
+```sh [<i class="devicon-ubuntu-plain"></i> Ubuntu]
+sudo apt install meson valac gobject-introspection
+```
+
+:::
+
+::: info
+Although bluez is not a direct build dependency,
+it should be self-explanatory that the daemon is required to be available at runtime.
+:::
+
+2. clone repo
+
+```sh
+git clone https://github.com/aylur/astal.git
+cd astal/lib/bluetooth
+```
+
+3. install
+
+```sh
+meson setup build
+meson install -C build
+```
+
+:::tip
+Most distros recommend manual installs in `/usr/local`,
+which is what `meson` defaults to. If you want to install to `/usr`
+instead which most package managers do, set the `prefix` option:
+
+```sh
+meson setup --prefix /usr build
+```
+
+:::
+
+## Usage
+
+You can browse the [Bluetooth reference](https://aylur.github.io/libastal/bluetooth).
+
+### CLI
+
+There is no CLI for this library, use the one provided by bluez.
+
+```sh
+bluetoothctl --help
+```
+
+### Library
+
+:::code-group
+
+```js [<i class="devicon-javascript-plain"></i> JavaScript]
+import Bluetooth from "gi://AstalBluetooth";
+
+const bluetooth = Bluetooth.get_default()
+
+console.log(bluetooth.get_devices().map(d => d.name))
+```
+
+```py [<i class="devicon-python-plain"></i> Python]
+# Not yet documented
+```
+
+```lua [<i class="devicon-lua-plain"></i> Lua]
+-- Not yet documented
+```
+
+```vala [<i class="devicon-vala-plain"></i> Vala]
+// Not yet documented
+```
+
+:::
diff --git a/docs/libraries/hyprland.md b/docs/libraries/hyprland.md
index 1a45399..0bc20c4 100644
--- a/docs/libraries/hyprland.md
+++ b/docs/libraries/hyprland.md
@@ -1 +1,84 @@
# Hyprland
+
+Library and CLI tool for monitoring the [Hyprland socket](https://wiki.hyprland.org/IPC/).
+
+## Installation
+
+1. install dependencies
+
+:::code-group
+
+```sh [<i class="devicon-archlinux-plain"></i> Arch]
+sudo pacman -Syu meson vala json-glib gobject-introspection
+```
+
+```sh [<i class="devicon-fedora-plain"></i> Fedora]
+sudo dnf install meson gcc valac json-glib-devel gobject-introspection-devel
+```
+
+```sh [<i class="devicon-ubuntu-plain"></i> Ubuntu]
+sudo apt install meson valac libjson-glib-dev gobject-introspection
+```
+
+:::
+
+2. clone repo
+
+```sh
+git clone https://github.com/aylur/astal.git
+cd astal/lib/hyprland
+```
+
+3. install
+
+```sh
+meson setup build
+meson install -C build
+```
+
+:::tip
+Most distros recommend manual installs in `/usr/local`,
+which is what `meson` defaults to. If you want to install to `/usr`
+instead which most package managers do, set the `prefix` option:
+
+```sh
+meson setup --prefix /usr build
+```
+
+:::
+
+## Usage
+
+You can browse the [Hyprland reference](https://aylur.github.io/libastal/hyprland).
+
+### CLI
+
+```sh
+astal-hyprland # starts monitoring
+```
+
+### Library
+
+:::code-group
+
+```js [<i class="devicon-javascript-plain"></i> JavaScript]
+import Hyprland from "gi://AstalHyprland";
+
+const hyprland = Hyprland.get_default()
+
+console.log(hyprland.get_clients().map(c => c.title))
+```
+
+```py [<i class="devicon-python-plain"></i> Python]
+# Not yet documented
+```
+
+```lua [<i class="devicon-lua-plain"></i> Lua]
+-- Not yet documented
+```
+
+```vala [<i class="devicon-vala-plain"></i> Vala]
+// Not yet documented
+```
+
+:::
diff --git a/docs/libraries/mpris.md b/docs/libraries/mpris.md
index 57a4da6..d277b24 100644
--- a/docs/libraries/mpris.md
+++ b/docs/libraries/mpris.md
@@ -1 +1,89 @@
# Mpris
+
+Library and CLI tool for interacting and monitoring media players
+exposing an mpris interface through dbus.
+
+An alternative for [playerctl](https://github.com/altdesktop/playerctl) that better integrates
+with astal.
+
+## Installation
+
+1. install dependencies
+
+:::code-group
+
+```sh [<i class="devicon-archlinux-plain"></i> Arch]
+sudo pacman -Syu meson vala json-glib gobject-introspection
+```
+
+```sh [<i class="devicon-fedora-plain"></i> Fedora]
+sudo dnf install meson gcc valac json-glib-devel gobject-introspection-devel
+```
+
+```sh [<i class="devicon-ubuntu-plain"></i> Ubuntu]
+sudo apt install meson valac libjson-glib-dev gobject-introspection
+```
+
+:::
+
+2. clone repo
+
+```sh
+git clone https://github.com/aylur/astal.git
+cd astal/lib/mpris
+```
+
+3. install
+
+```sh
+meson setup build
+meson install -C build
+```
+
+:::tip
+Most distros recommend manual installs in `/usr/local`,
+which is what `meson` defaults to. If you want to install to `/usr`
+instead which most package managers do, set the `prefix` option:
+
+```sh
+meson setup --prefix /usr build
+```
+
+:::
+
+## Usage
+
+You can browse the [Mpris reference](https://aylur.github.io/libastal/mpris).
+
+### CLI
+
+```sh
+astal-mpris --help
+```
+
+### Library
+
+:::code-group
+
+```js [<i class="devicon-javascript-plain"></i> JavaScript]
+import Mpris from "gi://AstalMpris";
+
+const spotify = Mpris.Player.new("spotify")
+
+if (spotify.available)
+ console.log(spotify.title)
+```
+
+```py [<i class="devicon-python-plain"></i> Python]
+# Not yet documented
+```
+
+```lua [<i class="devicon-lua-plain"></i> Lua]
+-- Not yet documented
+```
+
+```vala [<i class="devicon-vala-plain"></i> Vala]
+// Not yet documented
+```
+
+:::
diff --git a/docs/libraries/network.md b/docs/libraries/network.md
index 05db335..7f6b883 100644
--- a/docs/libraries/network.md
+++ b/docs/libraries/network.md
@@ -1 +1,86 @@
# Network
+
+Wrapper library over [networkmanager](https://networkmanager.dev/) to better integrate with Astal.
+
+## Installation
+
+1. install dependencies
+
+:::code-group
+
+```sh [<i class="devicon-archlinux-plain"></i> Arch]
+sudo pacman -Syu meson vala networkmanager gobject-introspection
+```
+
+```sh [<i class="devicon-fedora-plain"></i> Fedora]
+sudo dnf install meson gcc valac NetworkManager gobject-introspection-devel
+```
+
+```sh [<i class="devicon-ubuntu-plain"></i> Ubuntu]
+sudo apt install meson valac network-manager-dev gobject-introspection
+```
+
+:::
+
+2. clone repo
+
+```sh
+git clone https://github.com/aylur/astal.git
+cd astal/lib/network
+```
+
+3. install
+
+```sh
+meson setup build
+meson install -C build
+```
+
+:::tip
+Most distros recommend manual installs in `/usr/local`,
+which is what `meson` defaults to. If you want to install to `/usr`
+instead which most package managers do, set the `prefix` option:
+
+```sh
+meson setup --prefix /usr build
+```
+
+:::
+
+## Usage
+
+You can browse the [Network reference](https://aylur.github.io/libastal/network).
+
+### CLI
+
+There is no CLI for this library, use the one provided by networkmanager.
+
+```sh
+nmcli --help
+```
+
+### Library
+
+:::code-group
+
+```js [<i class="devicon-javascript-plain"></i> JavaScript]
+import Network from "gi://AstalNetwork";
+
+const network = Network.get_default()
+
+console.log(network.wifi.ssid)
+```
+
+```py [<i class="devicon-python-plain"></i> Python]
+# Not yet documented
+```
+
+```lua [<i class="devicon-lua-plain"></i> Lua]
+-- Not yet documented
+```
+
+```vala [<i class="devicon-vala-plain"></i> Vala]
+// Not yet documented
+```
+
+:::
diff --git a/docs/libraries/notifd.md b/docs/libraries/notifd.md
index e50a1b6..2ba0b7b 100644
--- a/docs/libraries/notifd.md
+++ b/docs/libraries/notifd.md
@@ -1 +1,91 @@
# Notifd
+
+A [notification daemon](https://specifications.freedesktop.org/notification-spec/latest/) implementation as a library and CLI tool.
+
+## How it works
+
+The first instantiation of the [Notifd](https://aylur.github.io/libastal/notifd/class.Notifd.html) class will become the daemon and every subsequent instantiation will queue up to act as the daemon and will act as a client in the meantime. This means this library can be used throughout multiple processes.
+
+## Installation
+
+1. install dependencies
+
+:::code-group
+
+```sh [<i class="devicon-archlinux-plain"></i> Arch]
+sudo pacman -Syu meson vala gdk-pixbuf2 json-glib gobject-introspection
+```
+
+```sh [<i class="devicon-fedora-plain"></i> Fedora]
+sudo dnf install meson gcc valac gdk-pixbuf2-devel json-glib-devel gobject-introspection-devel
+```
+
+```sh [<i class="devicon-ubuntu-plain"></i> Ubuntu]
+sudo apt install meson valac libgdk-pixbuf-2.0-dev libjson-glib-dev gobject-introspection
+```
+
+:::
+
+2. clone repo
+
+```sh
+git clone https://github.com/aylur/astal.git
+cd astal/lib/notifd
+```
+
+3. install
+
+```sh
+meson setup build
+meson install -C build
+```
+
+:::tip
+Most distros recommend manual installs in `/usr/local`,
+which is what `meson` defaults to. If you want to install to `/usr`
+instead which most package managers do, set the `prefix` option:
+
+```sh
+meson setup --prefix /usr build
+```
+
+:::
+
+## Usage
+
+You can browse the [Notifd reference](https://aylur.github.io/libastal/notifd).
+
+### CLI
+
+```sh
+astal-notifd --help
+```
+
+### Library
+
+:::code-group
+
+```js [<i class="devicon-javascript-plain"></i> JavaScript]
+import Notifd from "gi://AstalNotifd";
+
+const notifd = Notifd.get_default()
+
+notifd.connect("notified", (_, id) => {
+ const n = notifd.get_notification(id)
+ console.log(n.summary, n.body)
+})
+```
+
+```py [<i class="devicon-python-plain"></i> Python]
+# Not yet documented
+```
+
+```lua [<i class="devicon-lua-plain"></i> Lua]
+-- Not yet documented
+```
+
+```vala [<i class="devicon-vala-plain"></i> Vala]
+// Not yet documented
+```
+
+:::
diff --git a/docs/libraries/powerprofiles.md b/docs/libraries/powerprofiles.md
index 153ff12..a722c3d 100644
--- a/docs/libraries/powerprofiles.md
+++ b/docs/libraries/powerprofiles.md
@@ -1 +1,89 @@
# Power Profiles
+
+Library and CLI tool for monitoring [upowerd](https://upower.freedesktop.org/) powerprofiles.
+
+## Installation
+
+1. install dependencies
+
+:::code-group
+
+```sh [<i class="devicon-archlinux-plain"></i> Arch]
+sudo pacman -Syu meson vala json-glib gobject-introspection
+```
+
+```sh [<i class="devicon-fedora-plain"></i> Fedora]
+sudo dnf install meson gcc valac json-glib-devel gobject-introspection-devel
+```
+
+```sh [<i class="devicon-ubuntu-plain"></i> Ubuntu]
+sudo apt install meson valac libjson-glib-dev gobject-introspection
+```
+
+:::
+
+::: info
+Although UPower is not a direct build dependency,
+it should be self-explanatory that the daemon is required to be available at runtime.
+:::
+
+2. clone repo
+
+```sh
+git clone https://github.com/aylur/astal.git
+cd astal/lib/powerprofiles
+```
+
+3. install
+
+```sh
+meson setup build
+meson install -C build
+```
+
+:::tip
+Most distros recommend manual installs in `/usr/local`,
+which is what `meson` defaults to. If you want to install to `/usr`
+instead which most package managers do, set the `prefix` option:
+
+```sh
+meson setup --prefix /usr build
+```
+
+:::
+
+## Usage
+
+You can browse the [PowerProfiles reference](https://aylur.github.io/libastal/powerprofiles).
+
+### CLI
+
+```sh
+astal-power-profiles --help
+```
+
+### Library
+
+:::code-group
+
+```js [<i class="devicon-javascript-plain"></i> JavaScript]
+import PowerProfiles from "gi://AstalPowerProfiles";
+
+const powerprofiles = PowerProfiles.get_default()
+
+console.log(powerprofiles.activeProfile)
+```
+
+```py [<i class="devicon-python-plain"></i> Python]
+# Not yet documented
+```
+
+```lua [<i class="devicon-lua-plain"></i> Lua]
+-- Not yet documented
+```
+
+```vala [<i class="devicon-vala-plain"></i> Vala]
+// Not yet documented
+```
+
+:::
diff --git a/docs/libraries/river.md b/docs/libraries/river.md
index 77a492c..01f6ca4 100644
--- a/docs/libraries/river.md
+++ b/docs/libraries/river.md
@@ -1 +1,80 @@
# River
+
+Library and CLI tool for monitoring the [River Wayland Compositor](https://isaacfreund.com/software/river/).
+
+## Installation
+
+1. install dependencies
+
+:::code-group
+
+```sh [<i class="devicon-archlinux-plain"></i> Arch]
+sudo pacman -Syu meson json-glib gobject-introspection
+```
+
+```sh [<i class="devicon-fedora-plain"></i> Fedora]
+sudo dnf install meson gcc json-glib-devel gobject-introspection-devel
+```
+
+```sh [<i class="devicon-ubuntu-plain"></i> Ubuntu]
+sudo apt install meson libjson-glib-dev gobject-introspection
+```
+
+:::
+
+2. clone repo
+
+```sh
+git clone https://github.com/aylur/astal.git
+cd astal/lib/river
+```
+
+3. install
+
+```sh
+meson setup build
+meson install -C build
+```
+
+:::tip
+Most distros recommend manual installs in `/usr/local`,
+which is what `meson` defaults to. If you want to install to `/usr`
+instead which most package managers do, set the `prefix` option:
+
+```sh
+meson setup --prefix /usr build
+```
+
+:::
+
+## Usage
+
+You can browse the [River reference](https://aylur.github.io/libastal/river).
+
+### CLI
+
+```sh
+astal-river --help
+```
+
+### Library
+
+:::code-group
+
+```js [<i class="devicon-javascript-plain"></i> JavaScript]
+// Not yet documented
+```
+
+```py [<i class="devicon-python-plain"></i> Python]
+# Not yet documented
+```
+
+```lua [<i class="devicon-lua-plain"></i> Lua]
+-- Not yet documented
+```
+
+```vala [<i class="devicon-vala-plain"></i> Vala]
+// Not yet documented
+```
+
+:::
diff --git a/docs/libraries/tray.md b/docs/libraries/tray.md
index 42cf792..5868bd6 100644
--- a/docs/libraries/tray.md
+++ b/docs/libraries/tray.md
@@ -1 +1,84 @@
# Tray
+
+Library for managing the systemtray by implementing the [StatusNotifierItem](https://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/) protocol.
+
+## Installation
+
+1. install dependencies
+
+:::code-group
+
+```sh [<i class="devicon-archlinux-plain"></i> Arch]
+sudo pacman -Syu meson gtk3 gobject-introspection libdbusmenu-gtk3
+```
+
+```sh [<i class="devicon-fedora-plain"></i> Fedora]
+sudo dnf install meson gcc gtk3-devel libdbusmenu-gtk3 gobject-introspection-devel
+```
+
+```sh [<i class="devicon-ubuntu-plain"></i> Ubuntu]
+sudo apt install meson libgtk-3-dev libdbusmenu-gtk3-dev gobject-introspection
+```
+
+:::
+
+2. clone repo
+
+```sh
+git clone https://github.com/aylur/astal.git
+cd astal/lib/tray
+```
+
+3. install
+
+```sh
+meson setup build
+meson install -C build
+```
+
+:::tip
+Most distros recommend manual installs in `/usr/local`,
+which is what `meson` defaults to. If you want to install to `/usr`
+instead which most package managers do, set the `prefix` option:
+
+```sh
+meson setup --prefix /usr build
+```
+
+:::
+
+## Usage
+
+You can browse the [Tray reference](https://aylur.github.io/libastal/tray).
+
+### CLI
+
+```sh
+astal-tray --help
+```
+
+### Library
+
+:::code-group
+
+```js [<i class="devicon-javascript-plain"></i> JavaScript]
+import Tray from "gi://AstalTray"
+
+const tray = Tray.get_default()
+
+console.log(tray.get_items().map(i => i.title))
+```
+
+```py [<i class="devicon-python-plain"></i> Python]
+# Not yet documented
+```
+
+```lua [<i class="devicon-lua-plain"></i> Lua]
+-- Not yet documented
+```
+
+```vala [<i class="devicon-vala-plain"></i> Vala]
+// Not yet documented
+```
+
+:::
diff --git a/docs/libraries/wireplumber.md b/docs/libraries/wireplumber.md
index 4e1d456..e1c9579 100644
--- a/docs/libraries/wireplumber.md
+++ b/docs/libraries/wireplumber.md
@@ -1 +1,86 @@
# Wire Plumber
+
+Wrapper library over [wireplumber](https://pipewire.pages.freedesktop.org/wireplumber/) to better integrate with Astal.
+
+## Installation
+
+1. install dependencies
+
+:::code-group
+
+```sh [<i class="devicon-archlinux-plain"></i> Arch]
+sudo pacman -Syu meson vala wireplumber gobject-introspection
+```
+
+```sh [<i class="devicon-fedora-plain"></i> Fedora]
+sudo dnf install meson gcc valac wireplumber-devel gobject-introspection-devel
+```
+
+```sh [<i class="devicon-ubuntu-plain"></i> Ubuntu]
+# Not yet documented
+```
+
+:::
+
+2. clone repo
+
+```sh
+git clone https://github.com/aylur/astal.git
+cd astal/lib/wireplumber
+```
+
+3. install
+
+```sh
+meson setup build
+meson install -C build
+```
+
+:::tip
+Most distros recommend manual installs in `/usr/local`,
+which is what `meson` defaults to. If you want to install to `/usr`
+instead which most package managers do, set the `prefix` option:
+
+```sh
+meson setup --prefix /usr build
+```
+
+:::
+
+## Usage
+
+You can browse the [Wireplumber reference](https://aylur.github.io/libastal/wireplumber).
+
+### CLI
+
+There is no CLI for this library, use the one provided by wireplumber.
+
+```sh
+wpctl --help
+```
+
+### Library
+
+:::code-group
+
+```js [<i class="devicon-javascript-plain"></i> JavaScript]
+import Wp from "gi://AstalWp";
+
+const audio = Wp.get_default_wp().audio
+
+console.log(audio.volume)
+```
+
+```py [<i class="devicon-python-plain"></i> Python]
+# Not yet documented
+```
+
+```lua [<i class="devicon-lua-plain"></i> Lua]
+-- Not yet documented
+```
+
+```vala [<i class="devicon-vala-plain"></i> Vala]
+// Not yet documented
+```
+
+:::