5

I have a shell script which installs a program in RedHat. I need to add a GUI for entering some parameters so that it looks like an installation wizard . I tried Xdialog, Zenity, and Yad, but they each only support a single data input per window; I need to display all the steps in a single window. What can I use to do that?

2
  • If they aren't ran concurrently shouldn't the dialogs be displayed one after another? (eg. zenity; zenity)
    – nikitautiu
    Sep 10, 2012 at 7:58
  • Yes, it should not. Need to display all in one window and redraw it . Sep 10, 2012 at 8:05

4 Answers 4

3

Bash wasn't realy designed with this kind of persistence in mind. Nonetheless you need to use full-blown GTK. You could either code your GUI in an actual programming language (C, C++, Python, etc) designing with a bash interface in mind like some D-Bus or other IPC mechanism to communicate with the running application.

Or you could code GTK directly in Bash with the use of a some binding such as http://www.gtk-server.org

EDIT: Just an opinion, but the second option feels like a bit of an overkill to me.

1
  • 1
    As far as IPC goes D-Bus is a bit too much for a simple application, I suggest using pipes.
    – nikitautiu
    Sep 11, 2012 at 5:45
2

Not a GUI solution, however it may be very usefull for you. Try such things as whiptail or dialog. It can even display a progress of current installation, and all will be within one console window.

Some pictures.

1
  • whiptail and dialog were chosen first . Focus on them . Sep 11, 2012 at 5:36
1

The best choice http://code.google.com/p/gtkdialog/

2
  • 1
    Can you add some more details for future users? Sep 13, 2012 at 8:37
  • I still study with library . but if my experience is useful. I will add more details . Sep 13, 2012 at 13:42
1

The reason shell script not providing full fledged UI is that the response of the UI will be slow since shell script is composed of script files rather than the binaries. The solution is to use python (or any other language ) to create front end UI and then call the scripts within it.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .