Remix.run Logo
petcat 7 hours ago

I love the resurgence of TUI apps, but I wonder what the definition of "modern TUI" means in these cases. Does it basically mean just not using curses?

Daviey 7 hours ago | parent [-]

It means it has a dependency on X11.

  $ go install github.com/ramonvermeulen/whosthere@latest
  # golang.design/x/clipboard
  clipboard_linux.c:14:10: fatal error: X11/Xlib.h: No such file or directory
    14 | #include <X11/Xlib.h>
       |          ^~~~~~~~~~~~
  compilation terminated.
petcat 6 hours ago | parent | next [-]

Yikes, so it's a "TUI" app... that still requires a display server? So I can't run this TUI over SSH or a virtual terminal. Wondering what the point of a tui is that still requires a gui environment to run?

Daviey 6 hours ago | parent [-]

Sorry, I was unhelpfully flippant. You totally can, and I don't want to distract from the great app that has been shared. This bug was just a compile time issue, which needed X libs to bake in clipboard support which is optional at runtime.

sigmonsays 4 hours ago | parent | prev | next [-]

this stopped me from go installing it too on nixos. I'm not gonna put the effort in to run it.

There should be a build tag to disable clipboard, that'd be the easiest way around this.

Daviey 2 hours ago | parent [-]

Same, I also had the same issue on NixOS :)

fellerts 7 hours ago | parent | prev [-]

That has nothing to do with the UI framework. The X11 dependency comes as part of the clipboard integration (which I'd argue should be optional or even removed). Still, I wouldn't call it modern if Wayland is outright not supported.

rvermeulen98 6 hours ago | parent | next [-]

I think this is only a problem when building from source, right? It is indeed because of the dependency on https://github.com/golang-design/clipboard.

I hesitated a bit bringing in this feature. On one hand, I really like to have clipboard support, on the other hand, I don't like that it requires you to change from static to dynamic linking (and have the x11 dependency).

Maybe I could write an install.sh script for installation that detects the OS and fetches the correct version/tarball from the Github release.

Daviey 6 hours ago | parent [-]

That library isn't going to support Wayland any time soon, and requiring CGO isn't ideal IMO. See this bug, https://github.com/golang-design/clipboard/issues/6

How about this PR? https://github.com/ramonvermeulen/whosthere/pull/29

It switches to using github.com/dece2183/go-clipboard, which supports Mac, Windows, Linux (X11 + Wayland) and Android.

rvermeulen98 5 hours ago | parent [-]

Thanks a lot for your contribution, this is something I will look into in the upcoming days. I totally agree that CGO isn't ideal, I had to make the build/release process also a lot more complicated purely for that clipboard requirement (see GHAs and the different goreleaser files).

On the other hand, I also don't want whosthere to be depended on a fork that isn't maintained anymore. I will think about this trade-off, but I am also interested how others look at this problem.

ok123456 5 hours ago | parent | prev [-]

What's modern about Wayland?