# Install libhandy with Homebrew, dnf, MacPorts, Nix, pacman, apt, zypper

Building blocks for modern adaptive GNOME apps. Version 1.8.3 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:libhandy
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install libhandy
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install libhandy
```

  Evidence: MacPorts ports tree: gnome/libhandy/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- dnf (92%):

```sh
sudo dnf install libhandy
```

  Evidence: Fedora Rawhide package metadata: libhandy from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#libhandy
```

  Evidence: nixpkgs package indexes: pkgs/by-name/li/libhandy/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S libhandy
```

  Evidence: Arch Linux sync databases: libhandy from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- Ubuntu apt (92%):

```sh
sudo apt install gir1.2-handy-0.0
```

  Evidence: Ubuntu 24.04 LTS package indexes: gir1.2-handy-0.0 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz

- zypper (92%):

```sh
sudo zypper install glade-catalog-libhandy
```

  Evidence: openSUSE Tumbleweed package metadata: glade-catalog-libhandy from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

## Package facts

- **Package key:** brew:libhandy
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/libhandy>
- **Version:** 1.8.3
- **Source summary:** Building blocks for modern adaptive GNOME apps
- **Homepage:** <https://gitlab.gnome.org/GNOME/libhandy>
- **Repository:** <https://gitlab.gnome.org/GNOME/libhandy>
- **Upstream docs:** <https://gnome.pages.gitlab.gnome.org/libhandy/doc/main>
- **License:** LGPL-2.1-or-later
- **Source archive:** <https://gitlab.gnome.org/GNOME/libhandy/-/archive/1.8.3/libhandy-1.8.3.tar.gz>
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- handy-1-demo (cli)
- handy-1-demo (alias)

## Dependencies

- at-spi2-core
- cairo
- fribidi
- gdk-pixbuf
- gettext
- glib
- gtk+3
- harfbuzz
- pango

## Build dependencies

- gettext
- gobject-introspection
- meson
- ninja
- pkgconf
- vala

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, monterey, sonoma, ventura, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.8.3
- Local data: ok
- Upstream repository: https://gitlab.gnome.org/GNOME/libhandy
- info: No package-manager update timestamp was available.
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

Libhandy is Purism and GNOME's GTK 3 widget library for adaptive applications, especially interfaces that need to work on both desktop windows and phone-sized screens. It is historically important because it bridged Librem 5 mobile work, mainstream GNOME applications, and the later GTK 4-era libadwaita direction.

### Project history

Purism's June 10, 2021 retrospective says Libhandy was created after experiments with mobile-specific and adaptive widgets showed that GTK developers needed a library they could include without modifying GTK itself. The name reflects Handy, the German word for a mobile phone, and the upstream README states the library's aim as helping develop mobile-device UI using GTK/GNOME.

The NEWS file records version 0.81.0 migrating the project to GNOME GitLab, archiving the previous source.puri.sm project, switching CI to GNOME infrastructure, and publishing reference documentation through GNOME GitLab Pages. The same release made documentation and Glade catalog installation parallel-installable with libhandy 0.0, a packaging-friendly move during API transition.

### Adoption history

Libhandy began as part of Purism's Librem 5 effort, but Purism described it as quickly gaining popularity among GNOME application developers and being used by both third-party GNOME apps and core apps such as Settings, Files, and Web. It became an unofficial high-level widget layer above GTK before the GTK 4 work was redirected into libadwaita.

The batch input lists packages for Homebrew, Fedora, MacPorts, Nix, Arch, Ubuntu, and openSUSE, showing that Libhandy's adaptive-widget role crossed from phone-oriented development into general distribution packaging.

### How it is used

Developers use Libhandy to add adaptive GTK 3 widgets such as leaflet, carousel, view switcher, preferences, deck, flap, keypad, and other interface pieces. The handy-1-demo executable is the package-level demonstration surface for trying those widgets.

### Why package nerds care

Libhandy is a rare dependency whose history explains a platform transition: it made GNOME-on-phone work practical without forking the desktop ecosystem, then informed libadwaita as GTK 4 arrived. For package maintainers, it is also a compatibility library for GTK 3 applications that adopted adaptive GNOME UI patterns before moving to libadwaita.

### Timeline

- 2018: Purism and GNOME contributors were actively using Libhandy widgets for adaptive Librem 5 application work.
- Version 0.81.0: The project migrated to GNOME GitLab and started publishing reference documentation with GNOME GitLab Pages.
- Version 1.0.0: The NEWS file marked the 1.0 API line with no extra release-note changes.
- 2021-06-10: Purism described Libhandy's creation, GNOME adoption, and its relationship to libadwaita.

### Related projects

- GTK 3 is the toolkit targeted by Libhandy.
- GNOME applications such as Settings, Files, and Web are named by Purism as adopters of Libhandy-style adaptive UI work.
- libadwaita is the GTK 4-era successor direction described by Purism for GNOME's high-level adaptive widgets.
- The Librem 5 and Phosh ecosystem supplied much of the original mobile GNOME pressure that made Libhandy useful.

### Sources

- <https://formulae.brew.sh/formula/libhandy>
- <https://gitlab.gnome.org/GNOME/libhandy>
- <https://gitlab.gnome.org/GNOME/libhandy/-/raw/main/NEWS>
- <https://gitlab.gnome.org/GNOME/libhandy/-/raw/main/README.md>
- <https://gnome.pages.gitlab.gnome.org/libhandy/doc/main>
- <https://puri.sm/posts/making-a-platform-adaptive-for-everyone/>


## Security Notes

library-like package without higher-risk signals.

- **Geiger risk:** green / low
- library-like package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** libhandy
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Nix - libhandy: normalized package name match | nixpkgs package indexes: pkgs/by-name/li/libhandy/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - gir1.2-handy-0.0 - 0.0.13-3build2: normalized package name match | Ubuntu 24.04 LTS package indexes: gir1.2-handy-0.0 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | GObject introspection files for libhandy | https://source.puri.sm/Librem5/libhandy
- Ubuntu apt - handy-0.0-examples - 0.0.13-3build2: normalized package name match | Ubuntu 24.04 LTS package indexes: handy-0.0-examples from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Example programs for libhandy | https://source.puri.sm/Librem5/libhandy
- Ubuntu apt - libhandy-0.0-0 - 0.0.13-3build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libhandy-0.0-0 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Library with GTK widgets for mobile phones | https://source.puri.sm/Librem5/libhandy
- Ubuntu apt - libhandy-0.0-dev - 0.0.13-3build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libhandy-0.0-dev from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Development files for libhandy | https://source.puri.sm/Librem5/libhandy
- dnf - libhandy - 1.8.3-10.fc45: normalized package name match | Fedora Rawhide package metadata: libhandy from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Building blocks for modern adaptive GNOME apps | https://gitlab.gnome.org/GNOME/libhandy
- dnf - libhandy-devel - 1.8.3-10.fc45: normalized package name match | Fedora Rawhide package metadata: libhandy-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Development files for libhandy | https://gitlab.gnome.org/GNOME/libhandy
- pacman - libhandy - 1.8.3-2: normalized package name match | Arch Linux sync databases: libhandy from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | GTK 3 UI elements for mobile devices | https://gitlab.gnome.org/GNOME/libhandy
- zypper - glade-catalog-libhandy - 1.8.3-2.2: normalized package name match | openSUSE Tumbleweed package metadata: glade-catalog-libhandy from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Glade catalog for libhandy | https://gitlab.gnome.org/GNOME/libhandy
- zypper - libhandy-1-0 - 1.8.3-2.2: normalized package name match | openSUSE Tumbleweed package metadata: libhandy-1-0 from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | A GTK+ library to develop UI for mobile devices | https://gitlab.gnome.org/GNOME/libhandy
- zypper - libhandy-devel - 1.8.3-2.2: normalized package name match | openSUSE Tumbleweed package metadata: libhandy-devel from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Source and header files for libhandy | https://gitlab.gnome.org/GNOME/libhandy
- zypper - libhandy-lang - 1.8.3-2.2: normalized package name match | openSUSE Tumbleweed package metadata: libhandy-lang from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Translations for package libhandy | https://gitlab.gnome.org/GNOME/libhandy
- zypper - typelib-1_0-Handy-1_0 - 1.8.3-2.2: normalized package name match | openSUSE Tumbleweed package metadata: typelib-1_0-Handy-1_0 from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Introspection bindings for libhandy | https://gitlab.gnome.org/GNOME/libhandy
- MacPorts - libhandy: normalized package name match | MacPorts ports tree: gnome/libhandy/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [cairo](https://www.automicvault.com/pkg/brew/cairo/) - Runtime dependency declared by Homebrew.
- [fribidi](https://www.automicvault.com/pkg/brew/fribidi/) - Runtime dependency declared by Homebrew.
- [gdk-pixbuf](https://www.automicvault.com/pkg/brew/gdk-pixbuf/) - Runtime dependency declared by Homebrew.
- [gettext](https://www.automicvault.com/pkg/brew/gettext/) - Runtime dependency declared by Homebrew.
- [glib](https://www.automicvault.com/pkg/brew/glib/) - Runtime dependency declared by Homebrew.
- [gtk+3](https://www.automicvault.com/pkg/brew/gtk-3/) - Runtime dependency declared by Homebrew.
- [harfbuzz](https://www.automicvault.com/pkg/brew/harfbuzz/) - Runtime dependency declared by Homebrew.
- [gobject-introspection](https://www.automicvault.com/pkg/brew/gobject-introspection/) - Build dependency declared by Homebrew.
- [meson](https://www.automicvault.com/pkg/brew/meson/) - Build dependency declared by Homebrew.
- [ninja](https://www.automicvault.com/pkg/brew/ninja/) - Build dependency declared by Homebrew.
- [evince](https://www.automicvault.com/pkg/brew/evince/) - Popular package that depends on this formula.
- [gitg](https://www.automicvault.com/pkg/brew/gitg/) - Popular package that depends on this formula.
- [gtk4](https://www.automicvault.com/pkg/brew/gtk4/) - Shares av.db curated category or tags: cli, developer-tools, gnome, gtk, widgets.
- [libadwaita](https://www.automicvault.com/pkg/brew/libadwaita/) - Shares av.db curated category or tags: adaptive-ui, cli, developer-tools, gnome, gtk.
- [blueprint-compiler](https://www.automicvault.com/pkg/brew/blueprint-compiler/) - Shares av.db curated category or tags: cli, developer-tools, gnome, gtk.
- [cdk](https://www.automicvault.com/pkg/brew/cdk/) - Shares av.db curated category or tags: c-library, cli, developer-tools, widgets.
- [ghex](https://www.automicvault.com/pkg/brew/ghex/) - Shares av.db curated category or tags: cli, developer-tools, gnome, gtk.
- [glade](https://www.automicvault.com/pkg/brew/glade/) - Shares av.db curated category or tags: cli, developer-tools, gnome, gtk.
- [gnome-builder](https://www.automicvault.com/pkg/brew/gnome-builder/) - Shares av.db curated category or tags: cli, developer-tools, gnome, gtk.
- [gspell](https://www.automicvault.com/pkg/brew/gspell/) - Local package facts share a topical domain. Shared terms: at-spi2-core, cairo, cli, core, developer.
- [libdazzle](https://www.automicvault.com/pkg/brew/libdazzle/) - Local package facts share a topical domain. Shared terms: at-spi2-core, cairo, cli, core, developer.

## Combined YAML source

View the package source record on GitHub. [combined/libhandy.yml](https://github.com/automic-vault/db/blob/main/combined/libhandy.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
