Releases: thiagokokada/hyprland-go
v0.4.0
What's Changed
- Errcheck in examples by @thiagokokada in #40
- Hyprland 0.44.1 by @thiagokokada in #41
- request: have monitor command return disabled monitors by @mniehe in #42
New Contributors
Full Changelog: v0.3.0...v0.4.0
Error handling improvements
This version brings multiple improvements to error handling.
There is a small breaking change though: hyprland.ValidationError
is now hyprland.ErrorValidation
, and it is not a custom error type anymore, instead being derived from errors.New
. It means you can't cast to this error anymore, but now you can just use errors.Is
or errors.As
if you want to capture and treat this error in some special way.
What's Changed
- request_types: ValidationError -> ErrorValidation by @thiagokokada in #37
- request: improve error handling in RawRequest() defer by @thiagokokada in #38
- Add errcheck linter, fix issues by @thiagokokada in #39
Full Changelog: v0.2.0...v0.3.0
Some minor clean-ups
This release has a small breaking change in RawRequest()
, that will not automatically append /j
anymore before the request. For those that doesn't know, /j
is the way to request a JSON response from Hyprland IPC (equivalent of passing -j
to hyprctl
), so if for some reason you were relying on this behavior, you will need to change your scripts to append /j
manually.
Also, this release drop supports for Go 1.20 so we can use cmp.Ordered
and min/max
.
What's Changed
- flake: add examples/events as sub-package by @thiagokokada in #28
- event.Receive() optimisations by @thiagokokada in #30
- request: do not append '/j' in RawRequest() by @thiagokokada in #31
- event/event.go: fix panic when the event becomes too small by @thiagokokada in #32
- request: make 'j/' prefix for requests optional by @thiagokokada in #33
- Drop Go 1.20 support by @thiagokokada in #34
- request: refactor prepareRequests() by @thiagokokada in #36
Full Changelog: v0.1.1...v0.2.0
Bug fix
What's Changed
- event/event: reset read deadline by @thiagokokada in #27
Full Changelog: v0.1.0...v0.1.1
Revamped event API
This is the first release that is doing breaking changes, so I think it is appropriate to bump the mid version for the first time. There are no breaking changes in request API though.
For the breaking changes:
event.NewEventClient()
renamed toevent.NewClient()
andevent.MustEventClient()
renamed toevent.MustClient()
to make the API more symmetric (e.g.: same as the requests API)event.Receive()
now receives actx
(context) parameter, that allows proper cancellation if neededevent.Subscribe()
is now a method ofEventClient
struct, and also receives a context
What's Changed
- Improve event testing by @thiagokokada in #18
- request_test: check the Hyprland version in NixOS test VM by @thiagokokada in #19
- event: create subscribeOnce to allow testing loop handling by @thiagokokada in #20
- Add event.Close() by @thiagokokada in #21
- Refactor event API by @thiagokokada in #22
- helpers: add GetSocket() by @thiagokokada in #23
- helpers/helpers_test: add test for when HYPRLAND_INSTANCE_SIGNATURE is unset by @thiagokokada in #24
- Refactor event API again by @thiagokokada in #25
- event/event_test: add TestSubscribe by @thiagokokada in #26
Full Changelog: v0.0.4...v0.1.0
Add initial support for events
Events support is added and is basically a port from https://github.com/labi-le/hyprland-ipc-client in its own namespace and some small changes.
What's Changed
- request: refactor prepareRequest code by @thiagokokada in #15
- Import event from hyprland-ipc-client by @thiagokokada in #16
- Simplify event api by @thiagokokada in #17
Full Changelog: v0.0.3...v0.0.4
[RETRACT] Add initial support for events
Events support is added and is basically a port from https://github.com/labi-le/hyprland-ipc-client in its own namespace and some small changes.
What's Changed
- request: refactor prepareRequest code by @thiagokokada in #15
- Import event from hyprland-ipc-client by @thiagokokada in #16
Full Changelog: v0.0.2...v0.0.3
Initial support for Hyprland 0.42
This release brings initial support for Hyprland 0.42, since at least one command (e.g.: Clients()
) broke in the previous release.
Keep in mind that the support is initial though: I didn't go through the Hyprland 0.42 changelog yet to see if there is any missing commands. Open an issue if you want some specific missing command to be implemented.
What's Changed
- .github/nix: upload coverage from testVm by @thiagokokada in #5
- examples/hyprtabs: fix typo in comment by @thiagokokada in #6
- request_types: add ValidationError by @thiagokokada in #7
- flake: enable benchmarks in VM by @thiagokokada in #8
- flake: nixosTest -> runNixOSTest by @thiagokokada in #9
- request: implement SwitchXkbLayout by @thiagokokada in #10
- README: add benchmarks results from hyprtabs.sh by @thiagokokada in #11
- examples/hyprctl: avoid unnecessary append in usage by @thiagokokada in #12
- Support new fullscreen state by @yasamari in #13
- Support hyprland 0.42 by @thiagokokada in #14
Full Changelog: v0.0.1...v0.0.2
v0.0.1
What's Changed
- This first alpha quality release implements most of
hyprctl
commands. A few of them are still missing, but we already implement more commands than https://github.com/labi-le/hyprland-ipc-client
Full Changelog: https://github.com/thiagokokada/hyprland-go/commits/v0.0.1