Astal
Astal is a collection of libraries written in Vala and C, designed to serve as the foundation for both lightweight widgets and fully-featured desktop shells. It handles the backend logic, so you can focus entirely on building the frontend.
To get started read the wiki
About
Building blocks for creating custom desktop shells
Topics
[gtk](/content/topics/gtk "Topic: gtk"/index.html) [widget](/content/topics/widget "Topic: widget"/index.html) [linux-desktop](/content/topics/linux-desktop "Topic: linux-desktop"/index.html) [unixporn](/content/topics/unixporn "Topic: unixporn"/index.html)
Resources
License
Contributing
Repository files navigation
Folders and files
| Name | Last commit message | Last commit date |
|---|---|---|
| [.github](/content/Aylur/astal/tree/main/.github "github"/index.html) | [fix: docs ci](/content/Aylur/astal/commit/80f73639d11c8585eada2a983b0e83d36d9aef69 "fix: docs ci"/index.html) | 1 hour agoApr 30, 2026 |
| [docs](/content/Aylur/astal/tree/main/docs "docs"/index.html) | [docs: fix favicon](/content/Aylur/astal/commit/67ddc83e0bdbda6de7f6f15e4fbc5d6b9d2d1b18 "docs: fix favicon"/index.html) | 31 minutes agoApr 30, 2026 |
| [examples](/content/Aylur/astal/tree/main/examples "examples"/index.html) | [chore: migrate docs](/content/Aylur/astal/commit/de4edd2917d009fe36798825ea0b0d0a04303a08 "chore: migrate docs"/index.html) | 2 hours agoApr 30, 2026 |
| [lang](/content/Aylur/astal/tree/main/lang "lang"/index.html) | [fix(nix): | |
pkgs.system -> pkgs.stdenv.hostPlatform.system](/content/Aylur/astal/commit/c37f63f515d49508220131681fd58dbef2e9154f "fix(nix/index.html): pkgs.system -> pkgs.stdenv.hostPlatform.system") |
5 months agoNov 26, 2025 | |
| [lib](/content/Aylur/astal/tree/main/lib "lib"/index.html) | feat(quarrel): parse signal and special flag | 2 days agoApr 28, 2026 |
| [nix](/content/Aylur/astal/tree/main/nix "nix"/index.html) | [chore: migrate docs](/content/Aylur/astal/commit/de4edd2917d009fe36798825ea0b0d0a04303a08 "chore: migrate docs"/index.html) | 2 hours agoApr 30, 2026 |
| [.gitattributes](/content/Aylur/astal/blob/main/.gitattributes "gitattributes"/index.html) | [Update .gitattributes](/content/Aylur/astal/commit/95c6d6dbaf0eaa71a17abf02c20bfca7371956c1 "Update .gitattributes"/index.html) | 10 months agoJun 27, 2025 |
| [.gitignore](/content/Aylur/astal/blob/main/.gitignore "gitignore"/index.html) | [Make mpris lib fully async](/content/Aylur/astal/commit/a8e2862bc76daffb3e9bcb6bcebb9232dc46b96c "Make mpris lib fully async #406"/index.html) | 6 months agoOct 4, 2025 |
| [CHANGELOG.md](/content/Aylur/astal/blob/main/CHANGELOG.md "CHANGELOG.md"/index.html) | [add changelog](/content/Aylur/astal/commit/3e6c7eeb1c96b5afba82f5fdc2ab35c78f383b38 "add changelog"/index.html) | 2 years agoNov 23, 2024 |
| [CONTRIBUTING.md](/content/Aylur/astal/blob/main/CONTRIBUTING.md "CONTRIBUTING.md"/index.html) | [chore: migrate docs](/content/Aylur/astal/commit/de4edd2917d009fe36798825ea0b0d0a04303a08 "chore: migrate docs"/index.html) | 2 hours agoApr 30, 2026 |
| [LICENSE](/content/Aylur/astal/blob/main/LICENSE "LICENSE"/index.html) | [switch to LGPLv2.1](/content/Aylur/astal/commit/1e230baa86c08df8347eed29fcdf90f13173b263 "switch to LGPLv2.1"/index.html) | 2 years agoJul 26, 2024 |
| [README.md](/content/Aylur/astal/blob/main/README.md "README.md"/index.html) | [chore: migrate docs](/content/Aylur/astal/commit/de4edd2917d009fe36798825ea0b0d0a04303a08 "chore: migrate docs"/index.html) | 2 hours agoApr 30, 2026 |
| [flake.lock](/content/Aylur/astal/blob/main/flake.lock "flake.lock"/index.html) | fix(nix): 'wrapGAppsHook' has been renamed to/replaced by 'wrapGAppsH' | 6 months agoNov 1, 2025 |
| [flake.nix](/content/Aylur/astal/blob/main/flake.nix "flake.nix"/index.html) | [feat: libquarrel](/content/Aylur/astal/commit/d401e66969e7625fa19d63a10ab5fdb957e53746 "feat: libquarrel"/index.html) | 4 days agoApr 26, 2026 |
| [uncrustify.cfg](/content/Aylur/astal/blob/main/uncrustify.cfg "uncrustify.cfg"/index.html) | [Make mpris lib fully async](/content/Aylur/astal/commit/a8e2862bc76daffb3e9bcb6bcebb9232dc46b96c "Make mpris lib fully async #406"/index.html) | 6 months agoOct 4, 2025 |
| [vercel.json](/content/Aylur/astal/blob/main/vercel.json "vercel.json"/index.html) | [docs: add analytics](/content/Aylur/astal/commit/6fb7847f61cb1b7eed6c468f91816aa0e2a7d481 "docs: add analytics"/index.html) | 53 minutes agoApr 30, 2026 |