Tech Tip: Use gxmessage for Displaying GUI Messages from Scripts
There are many dialog programs out there, Zenity, Kdialog, xdialog, etc. I love programs like these. They make it so easy to spice up a shell script with a little GUI action. Today I'm going to go look at a dialog program called gxmessage.
I just recently got a Nokia N900 (Every Linux user should get one) and while playing with it I found that a few programs on it were calling gxmessage to create a user interface. I found that it seemed to have a number of options and seemed easy to use. So I jumped on to my laptop and did a search through the repositories for it. I found it in a package called "gmessage". To install it just do the following:
sudo aptitude install gmessage
You can use this one line code to produce a GUI dialog with buttons:
gxmessage -center \ -buttons "This is my button":1,"This is my other button":2 \ -title "This is my dialog BOX" 'Linux is great!!!'
One of the nice features that gxmessage has, that some others don't, is the ability to choose the size of the dialog box using the "-geometry" switch.
gxmessage -center \ -buttons "This is my button":1,"This is my other button":2 \ -geometry 190x80 \ -title "This is my dialog BOX" 'Linux is great!!!'
Gxmessage will restrict you from making your dialog to0 small for the componets you have placed in it. For example, if you set the geometry to 10x10 and the dialog needs at lest 100x50 to display all your buttons and messages it will override your 10x10 and default to 100x50.
For each button you create you can asign it a numeric value which is indicated by placeing a colon after the buttons message followed by the numeric value you wish to asign to it. You can then grab the value of the button being pressed and use it to continue your script. Here is a short example:
#!/bin/bash gxmessage -center \ -buttons "Yes":1,"Of Course":2 \ -geometry 290x80 \ -title "Linux Journal Question" 'Does Shawn Powers ROCK?' answer=$? case "$answer" in 1) gxmessage -center "You said 'YES'" ;; *) gxmessage -center "I agree, Of Course." ;; esac
I've only touched the surface here of what you can do with gxmessage, look through the man pages for more.
|Android Candy: Copay—the Next-Generation Bitcoin Wallet||Sep 03, 2015|
|The True Internet of Things||Sep 02, 2015|
|September 2015 Issue of Linux Journal: HOW-TOs||Sep 01, 2015|
|September 2015 Video Preview||Sep 01, 2015|
|Using tshark to Watch and Inspect Network Traffic||Aug 31, 2015|
|Where's That Pesky Hidden Word?||Aug 28, 2015|
- Using tshark to Watch and Inspect Network Traffic
- Problems with Ubuntu's Software Center and How Canonical Plans to Fix Them
- The True Internet of Things
- September 2015 Issue of Linux Journal: HOW-TOs
- Android Candy: Copay—the Next-Generation Bitcoin Wallet
- Firefox Security Exploit Targets Linux Users and Web Developers
- Where's That Pesky Hidden Word?
- Concerning Containers' Connections: on Docker Networking
- A Project to Guarantee Better Security for Open-Source Projects
- Doing Astronomy with Python