https://github.com/aylur/gnim
Convenience libraries for GNOME JavaScript (GJS).
https://github.com/aylur/gnim
gjs gnome-extension gtk jsx
Last synced: 6 months ago
JSON representation
Convenience libraries for GNOME JavaScript (GJS).
- Host: GitHub
- URL: https://github.com/aylur/gnim
- Owner: Aylur
- License: mit
- Created: 2024-12-04T14:00:00.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-13T20:41:30.000Z (6 months ago)
- Last Synced: 2025-06-13T21:28:27.856Z (6 months ago)
- Topics: gjs, gnome-extension, gtk, jsx
- Language: TypeScript
- Homepage: https://aylur.github.io/gjsx/
- Size: 316 KB
- Stars: 13
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Gnim
Library which brings JSX and reactivity to GNOME JavaScript.
If you are not already familiar with GJS and GObject, you should read
[gjs.guide](https://gjs.guide/) first.
This library provides:
- [JSX and reactivity](https://aylur.github.io/gnim/jsx) for both Gtk
Applications and Gnome extensions
- [GObject decorators](https://aylur.github.io/gnim/gobject) for a convenient
and type safe way for subclassing GObjects
- [DBus decorators](https://aylur.github.io/gnim/dbus) for a convenient and type
safe way for implementing DBus services and proxies.
## Obligatory Counter Example
```tsx
function Counter() {
const [counter, setCounter] = createState(0)
function increment() {
setCounter((v) => v + 1)
}
return (
c.toString())} />
Increment
)
}
```
## Example apps using Gnim
- [icon-theme-browser](https://github.com/Aylur/icon-theme-browser)
## Credits
- [JU12000](https://github.com/JU12000) for suggesting the name Gnim
- [Azazel-Woodwind](https://github.com/Azazel-Woodwind) for a lot of early testing