Skip to content

Releases: Aylur/ags

v2.2.1

28 Dec 10:40
Compare
Choose a tag to compare

Fixes

  • fix path resolutions when running ags run with default .config/ags argument
  • feat: --root flag which can be used in meson and other build tools where cd is not an option

Full Changelog: v2.2.0...v2.2.1

v2.2.0

28 Dec 00:47
bb963ed
Compare
Choose a tag to compare

What's Changed

  • --src and --tsconfig flag of the run and bundle commands are deprecated, use --define instead
  • type resolution of the astal package has been moved to package.json
  • templates have been updated to use a package.json
  • gtk4 support
  • gtk4 template

Full Changelog: v2.0.1...v2.2.0

v2.0.1

14 Nov 13:30
Compare
Choose a tag to compare

Hotifx for ags init --directory flag
Full Changelog: v2.0.0...v2.0.1

v2.0.0

13 Nov 23:25
Compare
Choose a tag to compare

After a lot of work, here is the release of AGS v2.

The core functionality of AGS has been reimplemented from scratch in Vala and C and was named Astal.
Services are now standalone libraries and can be cherry picked. Most of them also include a cli tool
to make them even more versatile. For example they could be paired with Eww.

I was debating whether to keep this project alive or move everything into Astal, but as Astal
was starting to get feature complete I realized what made AGS easy to use was missing. Namely
Astal in TypeScript/JavaScript requires a build step and it was not very convenient to just get started with.

Turns out there are quite a few things to consider when bundling and setting up a project especially when someone is not familiar with the mess of js tooling. So I repurposed AGS to act as a scaffolding tool for Astal projects written in TS/JS, while features are
done in Astal, bundling is outsourced to AGS.

Astal vs AGS v1

New features are:

  • TypeScript support ootb
  • JSX
  • widget fixes
    • EventBox hover, and hover-lost signals will now correctly work even when they are at the edge of a window.
    • Setting the size or the icon if an Icon widget will no longer flicker.
  • no more globals like App, Service and Utils
  • no more Service.import or resource:///com/github/aylur/ags, simply import from astal or gi://LibName
  • Service is no longer a thing, for "custom services" just simply subclass GObject.Object
  • instead of Service.register you can now use decorators
  • the cli client no longer uses dbus, which should be it a lot more faster
  • the cli client is a lot more powerful
    • there is no need for setting variables and functions global to then access them on cli
    • you can define a requestHandler which handles messages coming from the cli

AGS v2 bundler

This project is simply meant to be an esbuild distribution.

Currently it has a few plugins builtin:

  • importing .css will inline it in as a string
  • importing .scss will transpile them and inline it as a string
  • importing .blp will compile them and inline the xml as a string
  • importing something with inline: prefix will inline the file's contents as a string

Since Astal is a library it lost App.configDir.
The goal of these plugins is to be able to bundle everything into a single
executable and avoiding having to refer to files outside the script.
In cases where you still have to refer to the source dir, AGS defines a global SRC variable.

You can:
Setup a starter project with ags init
Generate types when adding new libs with ags types
Bundle the script with ags bundle
And run a project without bundling with ags run

Checkout the Astal website and the new AGS website

Special thanks to

  • kotontrion for writing some of the libraries and overall helping around
  • tokyoB0t for polishing the Lua lib and Lua docs
  • Xoores for being a subscriber on ko-fi from the beginning
  • and everyone else who contributed

I've never really said thanks for donators before, so I'd also like to thank now everyone who donated

  • awsumatt
  • Jas Singh
  • eXia
  • johndoe42
  • kotontrion
  • Rubén L
  • Francois Rigaut
  • Keule2
  • The_Branch_Manager
  • Keil Miller Jr
  • Grosheth
  • Iain
  • Harija
  • magic

and especially:

  • JNC
  • Chris Phillips

Also thanks to everyone that picked up Astal while being developed and reported bugs either on Discord or Github.

v1.8.2

29 Apr 14:52
Compare
Choose a tag to compare

Features

  • Calendar.detail
  • SpinButton.range
  • SpinButton.increments
  • Network.frequency
  • recursive Utils.monitorFile
  • add: Network.vpn
  • add write and writeAsync to Utils.subprocess (#388)

Fixes

  • compiles with typescript >= 5.0.4
  • DrawingArea.draw-fn
  • hyprland: active client empty on window close
  • dispose signal on Variable
  • skip unnecessary value setting in Utils.derive and Utils.merge
  • properly log errors from Variables
  • adjust Hyprland socket (#398)

Breaking Changes

  • Stream.is_muted corresponds to actual mute state
  • Utils.exec returns stderr on error

New Contributors

Full Changelog: v1.8.0...v1.8.2

v1.8.0

03 Mar 13:45
Compare
Choose a tag to compare

Features

  • add: Utils.watch
  • custom hookable objects
  • add: App.config
  • impove widget subclasses
    • Calendar.on_day_selected
    • ColorButton.on_color_set
    • DrawingArea.draw_fn
    • FileChooserButton.on_file_set
    • FontButton.on_font_set
    • LevelBar.vertical
    • LevelBar.bar_mode
    • Separator.vertical
    • SpinButton.on_value_changed
    • Spinner starts based on visibility
    • Switch.on_activate
    • ToggleButton.on_toggled
  • print notification daemons's name when its already running

Fixes

  • Widget.attribute assign falsy values
  • Overlay child type

Breaking Changes

  • revert: hyprland service: workspace and monitor signal emit number
  • types: Label's and Icon's Props type renamed to LabelProps, IconProps
  • deprecate: default export config object in favor of App.config

Full Changelog: v1.7.7...v1.8.0

v1.7.7

22 Feb 12:35
Compare
Choose a tag to compare

Features

  • App.addIcons, App.gtkTheme, App.cursorTheme, App.iconTheme
  • add: Notifications.clearDelay
  • add MprisPlayer.track_album
  • add MprisPlayer.metadata
  • add Widget.keybind
  • App.applyCss takes stylesheets, and an optional reset parameter

Fixes

  • prepend icons from config instead of append
  • Network.wifi.enabled signal
  • Utils.merge connect to notify signal

Breaking Changes

  • deprecate: Window.popup

New Contributors

  • @qxb3 made their first contribution in #305

Full Changelog: v1.7.6...v1.7.7

v1.7.6

16 Feb 01:25
Compare
Choose a tag to compare

Breaking Changes

  • hyprland service: workspace and monitor signal emit number
  • hyprland service: deprecate sendMessage, introduce message and messageAsync
  • Variable: value check on setter, force on setValue
  • Utils.monitorFile() no longer takes the type (file or directory) parameter. It will monitor each accordingly without specifying it.
  • add: Stack.children
  • deprecate: Stack.items

What's Changed

  • Utils.writeFileSync
  • add Utils.merge, Utils.derive
  • add Binding.as alias for Binding.transform

Fixes

  • Stack.add_named
  • Scrollable destroy child on destroy event

New Contributors

Full Changelog: v1.7.4...v1.7.6

v1.7.4

31 Jan 15:30
Compare
Choose a tag to compare

Breaking Changes

  • subclassing of gtk widgets #272
  • move config options to their service instances #420

What's Changed

New Contributors

Full Changelog: v1.6.3-beta...v1.7.4

v1.6.3-beta

23 Dec 00:15
d1835ca
Compare
Choose a tag to compare

What's Changed

  • feat: Service.bind and Variable.bind
  • feat: AgsWidget.register
  • export Widget.createCtor utility
  • add: Applications.reload
  • add: Utils.idle
  • use GLib.shell_parse_argv on Utils.execAsync

Fixes

New Contributors

Full Changelog: v1.5.5-beta...v1.6.3-beta