diff options
author | Aylur <[email protected]> | 2024-09-11 13:30:43 +0000 |
---|---|---|
committer | Aylur <[email protected]> | 2024-09-11 13:30:51 +0000 |
commit | 137345755c1c02d4766f1788198096013df9080c (patch) | |
tree | 19fdc58f9ba48edd2e2f5121da9ac169ad1651cf | |
parent | 56dd3eb43d218d6099d760f6c0c4956db84c46f2 (diff) |
docs: document libraries
-rw-r--r-- | docs/libraries/apps.md | 3 | ||||
-rw-r--r-- | docs/libraries/auth.md | 97 | ||||
-rw-r--r-- | docs/libraries/battery.md | 88 | ||||
-rw-r--r-- | docs/libraries/bluetooth.md | 90 | ||||
-rw-r--r-- | docs/libraries/hyprland.md | 83 | ||||
-rw-r--r-- | docs/libraries/mpris.md | 88 | ||||
-rw-r--r-- | docs/libraries/network.md | 85 | ||||
-rw-r--r-- | docs/libraries/notifd.md | 90 | ||||
-rw-r--r-- | docs/libraries/powerprofiles.md | 88 | ||||
-rw-r--r-- | docs/libraries/river.md | 79 | ||||
-rw-r--r-- | docs/libraries/tray.md | 83 | ||||
-rw-r--r-- | docs/libraries/wireplumber.md | 85 |
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 +``` + +::: |