Nano Banana Pro
Agent skill for nano-banana-pro
This document provides guidance for AI agents on how to interact with this repository, which contains an AGS v3 shell configuration (see: [GitHub: Aylur/ags](https://https://github.com/aylur/ags)) with status bar, launcher, and other widgets, as well as an accompanying flake for NixOS. The languages
Sign in to like and favorite skills
This document provides guidance for AI agents on how to interact with this repository, which contains an AGS v3 shell configuration (see: GitHub: Aylur/ags) with status bar, launcher, and other widgets, as well as an accompanying flake for NixOS. The languages used are primarily TypeScript, as well as some Nix.
AGS is a scaffolding CLI tool for Astal + Gnim projects. Astal is a set of libraries written in Vala/C that makes writing a Desktop Shell easy. Gnim is a library which introduces JSX to GJS. GJS is a JavaScript runtime built on Firefox's SpiderMonkey JavaScript engine and the GNOME platform libraries, the same runtime GNOME Shell runs on.
Look at the top-level
README.md for general information abut this project.
/@girs: Contains the generated GJS types for the Astal, GNOME, etc. libraries used in this project. Useful for looking up what's available to import using gi:// imports. DO NOT MODIFY MANUALLY./components: Contains the custom components (i.e., the building blocks) of the shell. This contains the majority of the code of this project./theme: Contains the theme files for the shell, written in SCSS./util: Contains utility functions and helpers, written in TypeScript./widgets: Contains some types and wrapper components for built-in GTK widgets, such as GtkBox, GtkButton, etc. Only rarely needs changes or additions.IMPORTANT: Each of these directories (except
/@girs) has a README.md file with more information about the contents and usage of the respective directory. Please read them before making changes in any of these directories.
Note: Non-Nix commands like
tsc or biome are only available inside the dev shell!
nix build (builds the shell using flake.nix).nix develop (enters development environment with AGS).Inside the dev shell, you can use the following commands:
biome check . (lints with Biome).biome format --write . (formats code).tsc (TypeScript type checking).@girs types: ags types -d "<path-to-this-repo>", e.g. ags types -d "/home/gian/Code/gian-reto/adw-shell". Rarely needed, as the types are already generated in the @girs directory and regeneration is only needed when the used libraries in flake.nix change.ags run to test the shell. This command blocks indefinitely and is not suitable for agentic coding.IMPORTANT: Although AGS / Gnim uses JSX, it is not React! It works nothing like React and has nothing in common with React other than the JSX syntax, much like something like Solid JS. DO NOT use React idioms or patterns in your code. Use the Gnim API as documented.
.ts files when complex.createState, createBinding, createComputed for reactive state.gi:// namespace (e.g., gi://AstalBattery).