A GTK4 SSH-askpass in Zig

(xn--gckvb8fzb.com)

39 points | by surprisetalk 3 hours ago

7 comments

  • DannyBee 1 hour ago
    Whenever someone writes "with hand-written bindings" I read "will stop working 8 minutes after the next release"
  • gen2brain 2 hours ago
    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.
    • zem 2 minutes ago
      fltk is c++ based which makes language bindings significantly harder in general. gtk is c based which worked out really well in that aspect.
  • porridgeraisin 1 hour ago
    I wrap `pinentry` (which is in the dependency trees of gnupg, pacman, gvfs, udisks2 and other software that you can de-facto depend on on desktops) inside my own simple askpass.

      $ cat ~/scripts/pinentry-askpass
      #!/usr/bin/env bash
      
      pinentry <<INPUT | grep '^D ' | cut -c 3-
      SETPROMPT Password:
      GETPIN
      INPUT
    
      $ cat ~/.bashrc | grep ASKPASS
      export SUDO_ASKPASS="$HOME/scripts/pinentry-askpass"
      export SSH_ASKPASS="$SUDO_ASKPASS"
    
    It automatically launches the GTK, TTY, or QT version depending on your environment.

    It's also useful for agents to use sudo, you can write in instructions to tool-call `sudo -A` and you get a GUI popup to enter the password, and the agent continues from there. And since the "prompt" in pinentry can be customised... you can get the agent to set up a temporary askpass, which replaces "Password:" in the prompt with questions like "Can I delete this old log file in /var?" and you enter your password to authorise.

  • hparadiz 2 hours ago
    These implementations really need to also include fingerprint sensor support
    • xnickb 57 minutes ago
      Fingerprint is an authentication mechanism, not an authorization one.
    • quotemstr 1 hour ago
      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
      • hparadiz 8 minutes ago
        Keypassxc does it perfectly.
  • bflesch 2 hours ago
    Love the tab title shenanigans when switching to and from the tab.
  • hackingboy298 1 hour ago
    this is realy good and helpfull information thanks.
  • WD-42 2 hours ago
    Would love to see more projects using gtk and zig. Always nice to have another language option.