## 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](https://astal.dev/)

## 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

[Readme](/content/Aylur/astal#readme-ov-file/index.html)

## License

[LGPL-2.1 license](/content/Aylur/astal#LGPL-2.1-1-ov-file/index.html)

## Contributing

[Contributing](/content/Aylur/astal#contributing-ov-file/index.html)

## 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](/content/Aylur/astal/commit/350acc910be7c1b80c6a293bd3e02ed65154909a "feat(quarrel/index.html): 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'](/content/Aylur/astal/commit/671d4229c798834190a50fb8b8d8addd19b529e9 "fix(nix/index.html): 'wrapGAppsHook' has been renamed") | 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 |
