Live data from Hacker News

A GTK4 SSH-askpass in Zig

xn--gckvb8fzb.com

11–20 of 28 posts

Re: A GTK4 SSH-askpass in Zig

#12
post #5

These implementations really need to also include fingerprint sensor support

PAM really needs to be ravamped and support for (among other things) running multiple stacks in par@llel added. This way you could ask for a password OR a fingerprint

Keypassxc does it perfectly.

Re: A GTK4 SSH-askpass in Zig

#13

Nice, I just use lxqt-openssh-askpass, but I am on X11. A lighter alternative (for single-text input) would be FLTK. Version 1.4 is really nice, with Wayland support, and they even draw custom window decorations on GNOME. Both Cairo and FLTK should be able to compile with -X; not sure, though, about the status of the Zig bindings.

fltk is c++ based which makes language bindings significantly harder in general. gtk is c based which worked out really well in that aspect.

Re: A GTK4 SSH-askpass in Zig

#14

Earlier quoted context omitted.

PAM really needs to be ravamped and support for (among other things) running multiple stacks in par@llel added. This way you could ask for a password OR a fingerprint

Keypassxc does it perfectly.

Everyone doing parallel biometric and password authentication on Linux today is either running two PAM stacks in parallel (which is meta-policy that kind of defeats the purpose of PAM) or just bypassing PAM entirely.

Re: A GTK4 SSH-askpass in Zig

#15
Noticed that when I build this it ends up with direct linking against a half-dozen libraries it doesn't actually use, at least on Ubuntu. Fixed it by replacing the linking commands with this:

    exe_mod.linkSystemLibrary("gtk-4", .{ .use_pkg_config = .no });
    exe_mod.linkSystemLibrary("gobject-2.0", .{});
In my case, at least, this doesn't change the full library tree because gtk-4 still links against all of the libraries that are removed from this binary's list, but it does mean that programs which calculate dependencies, like dpkg-shlibdeps, won't report spurious "required" dependencies when analyzing the binary.

When building on Ubuntu 26.04, the binary no longer directly links against lib{pango, cairo, pangocairo, cairo-gobject, harfbuzz, gdk_pixbuf, graphene, gio, vulkan}.

Can't create an account on the site so I figured I'd post this here. If you're going for absolute minimalism this seems like another step in the right direction for anyone building on a more 'gratuitous' GTK build (such as Ubuntu's)

Re: A GTK4 SSH-askpass in Zig

#16
post #13

Nice, I just use lxqt-openssh-askpass, but I am on X11. A lighter alternative (for single-text input) would be FLTK. Version 1.4 is really nice, with Wayland support, and they even draw custom window decorations on GNOME. Both Cairo and FLTK should be able to compile with -X; not sure, though, about the status of the Zig bindings.

fltk is c++ based which makes language bindings significantly harder in general. gtk is c based which worked out really well in that aspect.

Sure, you need to wrap it in C, but there is also `cfltk` that is maintained and used in Rust bindings. Btw., the difference in memory usage is huge with GTK4. FLTK hello world is ~10M, GTK3 is ~15M, GTK4 is 40M! With Cairo rendering, it's about 30M, but still a lot.

Re: A GTK4 SSH-askpass in Zig

#17
post #9

Whenever someone writes "with hand-written bindings" I read "will stop working 8 minutes after the next release"

There are tools to generate bindings. They probably meant it as a marker of quality.

And in languages like zig or odin which are quite similar to C in many ways, writing bindings to C code really isn’t bad. It is so easy that I decided to write my own bindings in Odin to sqlite - bindings exist but it really was so very easy that I didn’t want to bring in a generator or another dependency.

Re: A GTK4 SSH-askpass in Zig

#18
post #13

Earlier quoted context omitted.

fltk is c++ based which makes language bindings significantly harder in general. gtk is c based which worked out really well in that aspect.

Sure, you need to wrap it in C, but there is also `cfltk` that is maintained and used in Rust bindings. Btw., the difference in memory usage is huge with GTK4. FLTK hello world is ~10M, GTK3 is ~15M, GTK4 is 40M! With Cairo rendering, it's about 30M, but still a lot.

ah neat, I wasn't aware that cfltk was already used by rust.

Re: A GTK4 SSH-askpass in Zig

#19
post #13

Earlier quoted context omitted.

fltk is c++ based which makes language bindings significantly harder in general. gtk is c based which worked out really well in that aspect.

Sure, you need to wrap it in C, but there is also `cfltk` that is maintained and used in Rust bindings. Btw., the difference in memory usage is huge with GTK4. FLTK hello world is ~10M, GTK3 is ~15M, GTK4 is 40M! With Cairo rendering, it's about 30M, but still a lot.

GTK4 memory usage is ludicrous

Re: A GTK4 SSH-askpass in Zig

#20
post #5

These implementations really need to also include fingerprint sensor support

PAM really needs to be ravamped and support for (among other things) running multiple stacks in par@llel added. This way you could ask for a password OR a fingerprint

I'm vaguely considering rewriting PAM in Rust. It's definitely something that would benefit from Rust's extra security and the code quality isn't that great. Nor is the UX. What "among other things" were you thinking of?
Post reply on HN