Shell bsddialog - seems like a perfect tool for TUI.

https://gitlab.com/alfix/bsddialog

This seems like worthy utility.
Before I dive in to it, has anyone have some experience with it?
I was thinking about building nice TUI to streamline maybe USB or ISO mounting.
Or some configs not covered by bsdconfig utility.
screenshot.png
 
I like dialog, I've sent more time with the Linux version of it, but dialog is quite nice for when I need something that I can use via SSH. As long as you know how to script doing those things, dialog isn't really that hard to use.

Dialog is more or less my go to for the terminal and for most of the rest of it I like Tk when I know that I'm going to be using a full on GUI.
 
The installer dialog program isn't really stack-wise and seems to be not able to determine what's already on screen. I ctrl-c it a lot to start all over to make sure it's not accepting discarded settings. It also could use a screen redraw function. If it exists, I never noticed..
I think it's kept so limited to be compatible with as much as possible systems.
 
I actually have a problem with the dialog in KDE's Konsole when I try to run 'make configure' in ports. Shouldn't it be a nice bsddialog interface? Instead I get some rudimentary crap that won't even respond to my keyboard! Even AI doesn't know what's going on and how to fix this. Could anyone help pls? I'm attaching the screenshot (ugly UI and keystrokes output some jumbled garbage).
 

Attachments

  • Screenshot_20260808_081122.png
    Screenshot_20260808_081122.png
    52.4 KB · Views: 27
Screenshot of konsole running on Mate DE (not KDE plasma), on xorg (not Wayland).
Screenshot_konsole_2026-08-08.png

Note that I've not used sudo nor doas here, simply su'ed to root to show config.
 
Ok, can you please help me then? I'm getting that crappy dialog on KDE Wayland, Konsole, with sudo (I cannot run it without sudo, it hangs if I do - which is weird too).
 
To be honest, I don't even use it because I configure all my options manually in text editor and have BATCH=yes set, but I just want to get to the bottom of it.
 
I've overlooked that you've written
when I try to run 'make configure' in ports
but isn't it whichever make config, make config-recursive or make config-conditional? Following assume it's make config, as make configure is for running configure or equivalent of the build system the port uses, not configuring ports OPTIONS.

Do you have ports-mgmt/portconfig (or ports-mgmt/dialog4ports if your base FreeBSD is the one that is continuously upgraded from multiple major releases) installed?
If not, try installing ports-mgmt/portconfig.

And for ports-mgmt/portconfig, does sudo env PORTCONFIGTHEME="dialog" make config make any difference?
 
I actually have a problem with the dialog in KDE's Konsole when I try to run 'make configure' in ports. Shouldn't it be a nice bsddialog interface? Instead I get some rudimentary crap that won't even respond to my keyboard! Even AI doesn't know what's going on and how to fix this. Could anyone help pls? I'm attaching the screenshot (ugly UI and keystrokes output some jumbled garbage).
Different ASCII table setting in the Terminal app ?
 
but isn't it whichever make config
Oh, thank you so much, /u/T-Aoki, that's what it was. So I have to run sudo make config first, that works now. 💜

And yes, I have portconfig installed, I get a nice menu now by running sudo make config before running make configure.

Now, the general problem for FreeBSD with all of this is that make config only works without extra params passed. I.e. make config shows a nice dialog, but make config -j7 shows a nasty menu that doesn't accept keystrokes. Why is this a problem? Because since many folks try to run make configure -j7 to make configure run fast, the first step (make config), will show a nasty dialog that's not working. The only solution now it seems to run make config first separately, and then run make configure -j7. Can this be fixed? I don't understand why adding -j7 to make config makes it not work.
 
MAKE_JOBS_NUMBER variable nor -j option should be meaningless in case user interaction is required. In these cases, serialization is mutually needed unless additional dialog windows can be spawned (and ports framework does NOT support it).
 
Back
Top