1# Astal {#astal} 2 3Astal is a collection of building blocks for creating custom desktop shells. 4 5## Bundling {#astal-bundling} 6 7Bundling an Astal application is done using the `ags` tool. You can use it like this: 8 9```nix 10ags.bundle { 11 pname = "hyprpanel"; 12 version = "1.0.0"; 13 14 src = fetchFromGitHub { 15 #... 16 }; 17 18 # change your entry file (default is `app.ts`) 19 entry = "app.ts"; 20 21 dependencies = [ 22 # list here astal modules that your package depends on 23 # `astal3`, `astal4` and `astal.io` are automatically included 24 astal.apps 25 astal.battery 26 astal.bluetooth 27 28 # you can also list here other runtime dependencies 29 hypridle 30 hyprpicker 31 hyprsunset 32 ]; 33 34 # GTK 4 support is opt-in 35 enableGtk4 = true; 36 37 meta = { 38 #... 39 }; 40} 41``` 42 43You can also pass all other arguments that are supported by `stdenv.mkDerivation`.