Installing the Xaw3D Libraries
After months of being stuck in my CLI (Command Line Interface) mode, I finally broke down and installed X11R6 on my Linux machine. It's nothing to write home about, really, just a 386/40 which three years ago was state of the art. Oh well. At least I have graphics and can finally see the neat pictures on the Star Trek: Voyager WWW site. It also gave me a chance to put my mouse to work after it collected months of dust.
Taking the defaults that XFree 3.1.1 gave me, I found myself inside fvwm and its Motif-like interface, wishing that other programs also had a Motif-like interface. Motif has many advantages, but the drawback is that it costs money that many of us don't have (yet). One of the features that Motif provides is a 3-D interface for buttons and other portions of a window known as widgets. These widgets are designed such that the developer of the software determines what widgets to use and how they work, and the end user is allowed to change how the widgets are displayed. This is similar to the way that X without Motif works now.
To make your screen more 3-D like, there is a drop-in replacement for the Athena Widget set called Xaw3D. The Athena Widgets define how the scroll bars on the side of the screen work. By default, the widgets make the scroll bar for a program like xedit look like what you see in Figure 1. Functional, yet somewhat bland.
The replacement 3-D libraries make xedit look more like Figure 2. You'll notice three areas where Xaw3D has made its presence known. The buttons on the top of the window, the scroll bar on the left, and the three section markers on the top right-hand area.
You can get the 3-D widgets in most of the popular Linux FTP sites, including sunsite.unc.edu as /pub/linux/libs/X/libXaw3d_X11R6.tar.gz. There are also libraries for Xfree 2.1 along with the Xaw3d sources in the same directory.
The installation is pretty straightforward, but you have to be root. There are instructions in the libXaw3d_X11R6.readme file. Tar and uncompress the libXaw3d_X11R6.tar.gz file with:
tar -zxvC / -f libXaw3d_X11R6.tar.gz
then update the shared libraries:
The -C tells tar to untar in the root directory. Since the tar file contains the directory structure to put the libs in usr/X11R5/lib, the -C / will place the file in the correct directory without having to move it all around. Note that this will replace the libXaw.so.6.0 file that already exists there, so you may want to back it up. The ldconfig will update the file links for you, so you don't need to make the common mistake of erasing the library by using the ln command incorrectly.
Once this library is installed, this will only affect dynamically linked libraries. There are other packages available in the same directories as above that provide the libraries for statically-linked programs, should you need them: Most users probably won't.
The next time you start X-Windows, you'll notice changes in the scroll bar and other widgets that normally use the Xaw set. You can also make changes to the appearance of these widgets, using the ~/.Xdefaults file to configure Xaw.
You can use the *shadowWidth resource to change how each widget displays itself, and you can see the results of your changes by merely saving the file to ~/.Xdefaults and then starting up a new program that uses scroll bars or buttons that are statically linked. Two good examples for this are xterm and xedit.
The *Label*shadowWidth resource defines the depth of the label widgets to make them appear 3-D. You can add a shadow by setting this number, for example, to 2.
One of the best ways, however, to figure out what each widget does is to borrow someone else's configuration. Michael K. Johnson was kind enough to provide me with a copy of his .Xdefaults, and I've made my own revisions, which are shown in Figure 3.
! For Xaw3d! gives everything that Motif look to it. Sort of.*background: LightSkyBlue*Form.background: grey90*TransientShell*Dialog.background: bisque3*Command.background: gray80*Menubutton.background: gray80*ScrollbarBackground: gray60*Scrollbar*background: gray70*Scrollbar*width: 16 *Scrollbar*height: 16*Scrollbar*shadowWidth: 2*Scrollbar*cursorName: top_left_arrow! You can change the above to all kinds of icons, including gumby.! Find out what icons are available by looking in! /usr/include/X11/cursorfont.h - be sure to strip off the XC_*Scrollbar*pushThumb: false*ShapeStyle: Rectangle*beNiceToColormap: false*shadowWidth: 2! The above defines all shadowwidths to 2. *Label*shadowWidth: 2! The above overrides the definition from a few lines above for Label! widgets.*SmeBSB*shadowWidth: 2*highlightThickness: 0*topShadowContrast: 20*bottomShadowContrast: 40! The above two lines define how the shadows appear on the top and! bottom of the widgets. The higher the number, the lighter it is. This! particular setting makes the top and left sides darker than the! bottom and right sides. Figure 3. File .Xdefaults
Pulldown menus can have the *SmeBSB*shadowWidth resource set, which will change the display of pull-down menus.
For more help on how the resources or Athena Widgets work, look at the man pages for the various standard X applications (such as xterm or xedit).
Mark Komarinski graduated from Clarkson University (in very cold Potsdam, NY) with a degree in computer science and technical communication. He now lives in Troy, NY, spending much of his free time working for the Department of Veterans Affairs where he is a programmer.
|Dynamic DNS—an Object Lesson in Problem Solving||May 21, 2013|
|Using Salt Stack and Vagrant for Drupal Development||May 20, 2013|
|Making Linux and Android Get Along (It's Not as Hard as It Sounds)||May 16, 2013|
|Drupal Is a Framework: Why Everyone Needs to Understand This||May 15, 2013|
|Home, My Backup Data Center||May 13, 2013|
|Non-Linux FOSS: Seashore||May 10, 2013|
- RSS Feeds
- Dynamic DNS—an Object Lesson in Problem Solving
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Using Salt Stack and Vagrant for Drupal Development
- New Products
- A Topic for Discussion - Open Source Feature-Richness?
- Validate an E-Mail Address with PHP, the Right Way
- Drupal Is a Framework: Why Everyone Needs to Understand This
- What's the tweeting protocol?
- Tech Tip: Really Simple HTTP Server with Python
- BASH script to log IPs on public web server
4 hours 25 min ago
8 hours 1 min ago
- Reply to comment | Linux Journal
8 hours 33 min ago
- All the articles you talked
10 hours 57 min ago
- All the articles you talked
11 hours 26 sec ago
- All the articles you talked
11 hours 1 min ago
15 hours 26 min ago
- Keeping track of IP address
17 hours 17 min ago
- Roll your own dynamic dns
22 hours 30 min ago
- Please correct the URL for Salt Stack's web site
1 day 1 hour ago
Enter to Win an Adafruit Pi Cobbler Breakout Kit for Raspberry Pi
It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Pi Cobbler Breakout Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- 5-21-13, Prototyping Pi Plate Kit: Philip Kirby
- Next winner announced on 5-27-13!
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?