diff options
author | Aylur <[email protected]> | 2024-05-29 21:36:48 +0200 |
---|---|---|
committer | Aylur <[email protected]> | 2024-05-29 21:36:48 +0200 |
commit | cfe3244e61207d4d761f2522546cb2bfb1c539f3 (patch) | |
tree | 21728fe7e1469ab9cfd0fc501e079641d43eb6a4 | |
parent | 776fc8093272ad29c20dfbcf8b7dfedfbc9bb2aa (diff) |
update readme
-rw-r--r-- | README.md | 50 |
1 files changed, 29 insertions, 21 deletions
@@ -4,13 +4,14 @@ > WIP: everything is subject to change The main goal of this project is to further abstract gtk bindings in higher level -languages with custom state management mechanisms namely in javascript (gjs, node), -lua (lua-lgi) and python (pygobject) +languages with custom state management mechanisms, namely in javascript (gjs, node), +lua (lua-lgi) and python (pygobject). -libastal, which is the library written in Vala, comes with -a few widgets built on top of gtk3 and -tools to execute external binaries and store their output -it also comes with a builtin cli client +`libastal`, which is the library written in Vala, +comes with a few widgets built on top of gtk3 and +tools to execute external binaries and store their output. +It also comes with a builtin cli client to send messages to the running +processes through a socket. ## Developing @@ -21,7 +22,7 @@ bash meson-install.sh # non nix nix develop .#astal # nix ``` -python and lua should be stright forward, have a look at sample.py and sample.lua +python and lua should be stright forward, just run the interpreter for javascript do @@ -35,10 +36,10 @@ npm run build -- --watch ## Gtk abstractions `Variable` and `Binding` objects and a function that turns widget constructors -into ones that can take `Binding` objects as parameters are added ontop of gtk bindings -this mechanism takes care of all state management one would need +into ones that can take `Binding` objects as parameters are added on top +of gtk bindings. This mechanism takes care of all state management one would need. -This works the same in js/lua/python, its just demonstrated in js +This works the same in js/lua/python, but demonstrated in js ```javascript // this example will work with Variable<string> @@ -121,7 +122,7 @@ astal --instance-name my-instance "message was sent from cli" ## Lower level languages -As said before, the main goal is to make js/lua/python dx better, but libastal +As said before, the main goal is to make js/lua/python DX better, but libastal can be used in **any** language that has bindings for glib/gtk. `Binding` is not implemented in Vala, but in each language, because they are language specific, and it doesn't make much sense for lower @@ -146,7 +147,7 @@ templates and examples instead to get started with development. - [x] pollfn (interval, closure) - [x] watch (string) - [x] watchv (string[]) - - [ ] ?observe (object, signal, closure) + - ~~[ ] observe (object, signal, closure)~~ - Time - [x] interval - [x] timeout @@ -163,12 +164,12 @@ templates and examples instead to get started with development. - few additional widgets - [x] window widget with gtk-layer-shell - [x] box with children prop - - [ ] button with abstract signals for button-event + - [x] button with abstract signals for button-event - [ ] ?custom calendar like gtk4 - [x] centerbox - [ ] circularprogress - - [ ] eventbox - - [ ] icon + - [x] eventbox + - [x] icon - [ ] overlay - [ ] scrollable/viewport - [ ] slider @@ -209,11 +210,18 @@ templates and examples instead to get started with development. ## TODO - docs -- consider moving each language into separate repo - - I want to keep these at one place until I'm sure all of them works as expected +- ~~consider moving each language into separate repo~~ - support jsx -- make sure conventions like the casing of names are followed for each language - - I constantly switched between 4 languages they might be off - + - [x] gjs - port services from ags into Vala - - and add more + - [x] [applications](https://github.com/astal-sh/apps) + - [ ] audio + - [ ] bluetooth + - [ ] greetd + - [ ] hyprland ipc client + - [ ] mpris + - [ ] network + - [ ] sway ipc client + - [x] [notifications](https://github.com/astal-sh/notifd) + - [ ] upower (battery, powerprofiles) + - [x] [systemtray](https://github.com/astal-sh/tray) |