~whereswaldon

North Carolina

https://waldon.blog

Freelance engineer working to make portable GUIs easy and pleasant.

I'm one of Gio's two maintainers, and I focus on making the text and widget APIs great.

Some other fun projects:

  • Arbor, a tree-based, decentralizable chat platform
  • gover, an easy way to install and update Go on any *nix system

If you get value out of my work, please consider sponsoring me on Liberapay or GitHub.

I am also available for hire.

~whereswaldon/arbor-dev

Last active 4 months ago

~whereswaldon/arbor-ci

Last active 4 months ago

~whereswaldon/public-inbox

Last active 4 months ago

~whereswaldon/watt-wise-devel

Last active 5 months ago

~whereswaldon/watt-wise-announce

Last active 5 months ago

~whereswaldon/arbor-announce

Last active 2 years ago

~whereswaldon/arbor-infra

Last active 3 years ago

~whereswaldon/pointstar-devel

Last active 4 years ago

~whereswaldon/pointstar-announce

Last active 4 years ago
View more

Recent activity

[PATCH gio] io/input: ensure full event delivery per input event 2 days ago

From Chris Waldon to ~eliasnaur/gio-patches

This commit tries to ensure that if any Gio event resulting from a given user input
event is delivered, the rest of the Gio events from the same user input are delivered
on the same frame.

The alternative could lead to rare cases in which Gio events were entirely dropped
because a subset of the resulting Gio events were delivered before a widget issued
a command.

Fixes: https://todo.sr.ht/~eliasnaur/gio/594
Signed-off-by: Chris Waldon <christopher.waldon.dev@gmail.com>
---
 io/input/router.go                 |  50 +++++-----
 io/input/router_regression_test.go | 152 +++++++++++++++++++++++++++++
 2 files changed, 179 insertions(+), 23 deletions(-)
[message trimmed]

Re: [PATCH gio] app: queue system actions before first call to Event() 3 days ago

From Chris Waldon to ~eliasnaur/gio-patches

It seems that CI failed due to an OOM when trying to install android
dependencies. I do not believe it is related to this change.

[PATCH gio] app: queue system actions before first call to Event() 3 days ago

From Chris Waldon to ~eliasnaur/gio-patches

This commit ensures that attempting to perform a system window action prior
to the first call to Event() does not panic. It adopts a similar strategy to
handling Option() prior to the first call to Event(): make a slice of the arguments
and apply them during window initialization.

Fixes: https://todo.sr.ht/~eliasnaur/gio/593
Signed-off-by: Chris Waldon <christopher.waldon.dev@gmail.com>
---
 app/window.go | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/app/window.go b/app/window.go
index 70f6a359..09fc8dae 100644
--- a/app/window.go
[message trimmed]

Re: [proposal] react liked code organizing style 11 days ago

From Chris Waldon to ~eliasnaur/gio

On Tue, Jun 4, 2024 at 1:05 PM Wenhua Shi <march511@gmail.com> wrote:
>
> Hello everyone,
>
> Gio is awesome. I've been developing tools based on gio. However I
> found that the way I organize codes with gio is somehow exhausting
> compared to modern web development routine.

It seems like you're looking for "declarative UI". This is *possible*
atop Gio, but not provided or implemented by any public package I'm
aware of. Such UI paradigms hide the details of building and
maintaining the state of widgets/layouts. You can definitely build it
if you're so inclined.

Re: handling pointer events in an app.Window 24 days ago

From Chris Waldon to ~eliasnaur/gio

On Tue, May 28, 2024 at 3:25 AM Kurtis Rader <krader@skepticism.us> wrote:
>
> I'm trying to write a trivial program that displays a number and
> decrements it if the app window receives a pointer press event. It
> correctly handles keyboard events but no pointer events are received.
> I'm using Gioui 0.6.0. Most of the examples I found, both on the
> official web site and via Google searches, use patterns that are no
> longer valid (e.g., window.NextEvent()). But even following patterns
> found in documents like
> https://git.sr.ht/~eliasnaur/gio-example/commit/9d695ee result in no
> pointer events being received.
>
> The relevant section of my code is this:
>

Re: [PATCH chat 0/3] Guard against negative list position a month ago

From Chris Waldon to ~gioverse/chat

Thanks much, all applied!

Re: [PATCH gio-example v2] multiwindow: fix livelock in NewWindow a month ago

From Chris Waldon to ~eliasnaur/gio-patches

Applied, thanks!

To git.sr.ht:~eliasnaur/gio-example
   4ca03a6..4aa16fb  main -> main

Re: Camera access for mobile a month ago

From Chris Waldon to ~eliasnaur/gio

On Sat, May 11, 2024 at 4:57 AM do justin <justindo.works@gmail.com> wrote:
>
> Hello,
> I'm Justin Do from Cryptopower. Now we need to access to camera from
> mobile for read QR Code, I see gioui provide camera permission package
> (https://pkg.go.dev/gioui.org@v0.6.0/app/permission/camera), so how do
> we use it to read QR Code?

We do not currently provide a pre-baked package for reading the
camera. That permission package is really just a way for gogio to know
whether your application packaging needs to request camera
permissions. To actually read the camera, you'll need to write some
integration code with the platform. I believe some of this has already
been done by other community members, but I'm failing to locate an

Re: Gio v0.6.0 performance issue a month ago

From Chris Waldon to ~eliasnaur/gio

On Mon, May 6, 2024 at 2:27 PM zhang zj <zhangzj33@gmail.com> wrote:
>
>  I have to point out that memory usage might be misleading as I loaded
> that huge Apple emoji font.
>
> On Tue, May 7, 2024 at 2:20 AM zhang zj <zhangzj33@gmail.com> wrote:
> >
> > Hi Chris,
> >
> > Profiling data is uploaded here:
> > https://github.com/oligo/gioview/issues/1#issuecomment-2096620094

From what I can see, we are spending enormously more time in the Go
runtime and in the native macOS integration code than we previously

Re: Gio v0.6.0 performance issue a month ago

From Chris Waldon to ~eliasnaur/gio

On Mon, May 6, 2024 at 12:57 PM zhang zj <zhangzj33@gmail.com> wrote:
>
> Hi,
>
> Recently I observed some performance issues relating to Gio v0.6.0.
> Someone reported this in my project
> tool(https://github.com/oligo/gioview/issues/1).
> I confirmed that after upgrading from v0.5.0 to v0.6.0, CPU, GPU usage
> and also memory
> usage increased a lot.
>
> In my test app(https://github.com/oligo/gioview/tree/main/example):
>
> CPU: 4% max to 28%