There’s an app for that!

Courting the Daemon, part 4.

It’s safe to say that for a computer to be truly useful, it needs applications. An efficient operating system, like FreeBSD, is a great thing to have, even if it can be tricky to set up and configure. The bragging rights for taming such a technological tiger are noteworthy. And a fancy looking graphical user interface is fun to look at, with the ability to generate satisfying “ooos and aahs” when shown off. But such accolades ring hollow the moment someone says “Yes, but can I use your computer to check email? Or work on my documents?”

An industrial-strength operating system, and a lean, mean user interface aren’t much good if the computer doesn’t have applications that allow it do the things it was ultimately intended for: the Internet, manipulating documents, storing and managing important data, developing new software, and even playing games.

Fortunately, there are thousands of applications for UNIX-derived open source operating systems, including FreeBSD. Once again, the best place for a FreeBSD user to start looking is the ports tree. What follows are the applications I like to use. Different people like different things, so when you start setting up your own system, let your own personal needs and interest be your guide, and don’t take my suggestions as gospel.

File system tools

I make heavy use of graphical file managers. Back in the days of Windows 3.1, I used File Manager more frequently than Program Manager. For a time, I even used a graphical version of XTree Gold as my shell. With later iterations of Windows, I used a File Explorer window to access and manage most of my stuff. I just tend to do better if I can picture my files as being in a “folder” that I can open and pull from. These graphical file managers are designed for such work.


Dolphin
Dolphin is an integrated component of the KDE desktop environment.
Dolphin is the default file manager for the KDE desktop, but it can be executed from Window Maker. Most of KDE’s key functions are integrated within Dolphin, so by using this file manager, most of KDE’s features are available, even when the KDE window manager isn’t running.


XFile Explorer

/usr/ports/x11-fm/xfe/

This is an older file manager, that looks like the Windows Explorer. I use this when I need to execute specialized commands on files or file groups. It doesn’t have the same set of core features that Dolphin does, but it does support customized shell commands by means of a nifty command line editor.


Midnight Commander

/usr/ports/misc/mc/

This one is seriously old school. I discovered this old stalwart during my Linux days. It’s a semi-clone of an old DOS utility called Norton Commander, and it can be run entirely from the command line. It makes file maintenance very easy, by linking some complex file and directory commands to the function keys. As such, some otherwise lengthy or tedious file management tasks become a breeze. I often use this one when I’m not using the graphical environment, or from within an existing terminal session. I also have a customized script for running Midnight Commander within a dedicated X-windows terminal.

Productivity applications

These are the meat and potatoes of my work station.


LibreOffice

/usr/ports/editors/libreoffice/

This is a fully-featured office suite, which is something that no workstation should be without. It is intended to work like any other integrated office suite, like Microsoft Office, Lotus Office, or Polaris, and in my experience it works very well. It has a word processor, spreadsheet, presentation editor, database manager, and a utility for drawing charts and graphs. It can import and export files from any number of commercial programs, and works very well with other x-windows programs. The learning curve can be rather steep, because many of the controls are in unexpected places, but once you get used to this, LibreOffice will become a trusted friend. Best of all, this one is free, with support for many different languages.


Gimp

/usr/ports/graphics/gimp/

The name means “GNU Image Manipulation Program,” but the jokes still abound. Gimp is a full scale graphics manipulation program on par with Photoshop, and is completely open source. It’s primary purpose is for retouching raster images and scanned photographs, but optional plugins and extensions are available to let it handle just about every graphics format in existence.


Emacs

/usr/ports/editors/emacs/

This is a UNIX world classic, and a very handy program to have around. It is essentially a text editor, but it can be customized and scripted in an almost infinite variety of ways, making it useful for a variety of complex tasks. It makes a useful companion to other text manipulation programs. I don’t use Emacs very often, but it has proven to a useful tool to have available.

Internet

This is the last category I’m going to look at for now. In this day and age a computer that can’t access the Internet is little more than a paperweight. Fortunately there are many Internet applications, both commercial and open source, for every operating system around. FreeBSD is no exception. In fact, much of the Internet’s infrastructure was built on servers running versions of UNIX, which is the direct ancestor of FreeBSD.


Konqueror
Konqueror is an integrated component of the KDE desktop environment.
Konqueror started out as the file manager for KDE, which was later expanded into a lightweight web browser. Dolphin is now the primary file manager for the KDE environment, but Konqueror is still provided as a file viewer and web browser. One of its strengths is that it can be customized in a number of different ways. It doesn’t always do well with web sites that use a lot of scripting or style sheets, but for most others it does very well.


Dillo

/usr/ports/www/dillo2/

I actually have a few different web browsers available, because I like to see how this site looks on different browsers. My wife also does some freelance and volunteer web work, so she also likes to see how sites look on different browsers. This one is a very light weight and very fast browser, and is optimized for viewing text-heavy sites. It doesn’t do well with script heavy sites, and even sites with frames tend to balk. This site doesn’t look very good in Dillo, largely because WordPress makes heavy use of frames. But even so Dillo is great for browsing discussion forums and message boards. And it has one really nice feature for web developers: an HTML bug tracker. Along the lower margin there is an icon of a beetle, which when clicked will indicate the number of bugs in the HTML code, and what line the bug is on.


Opera

/usr/ports/www/opera/

This is what I call a middle-weight browser. It can handle most scripts and HTML style sheets, but sites that rely heavily on Flash and other graphical features sometimes buckle. Even so, this is a good, reliable browser that can handle pretty much anything you throw at it. It is also surprisingly fast, all things considered.


Firefox

/usr/ports/www/firefox/

The big guns. This is one of the most wide spread browsers in use, and is one of the industry standards. This is actually my default browser, even with the high memory requirement. If it’s on the Internet, this heavyweight can handle it.


Thunderbird

/usr/ports/mail/thunderbird/

This is my email client of choice. It can handle multiple email addresses over multiple servers, and it can be configured to behave in a variety of ways. Thunderbird also allows for the viewing of NNTP newsgroups, if you can still find any. This program is tied to the Mozilla group, which also handles Firefox. But there have been some changes at Mozilla, so the future of Thunderbird may be in question.


That pretty much covers the core of my FreeBSD system. I have added and changed things over time, and I’m often looking to try new things. As my needs and interests change, I’m sure to find other wonderful things in the world of open source software.

Presenting Window Maker

Courting the Daemon, part 3

amanda

Compared to some of the x-window clients out there, Window Maker is a lightweight. Some have even called it antiquated. But just because something has been around for a while doesn’t mean it’s no longer useful. Granted, in the world of computers, software doesn’t age well. But there are exceptions to this rule, and Window Maker is one of them.

Unlike one of the desktop environment clients, like KDE or GNOME, Window Maker doesn’t create a virtual “desk” for the user. Window Maker is basically just a GUI for the Unix environment. A better comparison may be with Microsoft Windows 3.11. That old version of Windows was a GUI for the DOS (or DOS-based) system underneath, and it wasn’t trying to be anything else. Windows 95 and later, by comparison, created and managed a virtual desk, in much the same way the Macintosh GUI does. (The success of Microsoft Windows in this area is a topic of constant debate.)

You may ask why I chose to go with such an “old school” GUI client when there are more powerful ones available. Truth be told, I like Window Maker’s simple interface and design, and that simplicity is one of its greatest strengths. Unix, FreeBSD and Linux have all changed considerably over the last two decades. Window Maker has changed very little, and it still runs beautifully. The core design is versatile enough that with only minor updates it can still run with the best of them. The same can’t be said for many other x-window clients.

As for power, I didn’t give up a single kilobyte, because Window Maker gets along very well with KDE and it’s brethren. If you are using one of the environment clients, and still want or need the features it provides, then I have good news: you probably won’t have to give up anything! There is a good chance that Window Maker can manage them. For example, KDE’s file manager, Dolphin, is the backbone of KDE’s desktop environment. Most of KDE’s core file management functions are integrated within Dolphin, and I have found that this is where most of KDE’s power lies. I frequently run Dolphin as a client application from Window Maker, and it runs perfectly. So even when the KDE window manager isn’t running, most of KDE’s best features are easily available as options within the Dolphin file manager. I haven’t done extensive testing, but I have found that GNOME Files, the file manager for GNOME, and Thunar from XFCE, all run well as client programs within Window Maker.

Onward.

Most official sources for Window Maker include either a Linux instillation package (*rpm or *deb), or a tarball. I first used Window Maker back in my Linux days, and remembered the instillation being fairly straightforward. Users of the BSD series have the option of shaking the port tree, which is what I did:

/usr/ports/x11-wm/windowmaker/
/usr/ports/x11-wm/wmakerconf/

The first port is the only one you really need. Wmakerconf is a newer tool that adds and refines some configuration options. It isn’t essential, but it has some good uses, and it can’t hurt to have it available. Use the regular “make install clean” routine to install both programs.

One could also use the package instillation route:

pkg install x11-wm/windowmaker
pkg install x11-wm/wmakerconf

Personally, I would recommend going with the port tree “make install clean” method. Package installations usually provide a pre-compiled binary executable. For many application this is fine, but window managers tend to draw on a wide variety of system resources, and a packaged binary may not be the best for your system. By using the port method, you are more likely to get an executable that is tailored to your particular system. It takes a little longer than using a package, but it’s worth the extra effort.

When I first launched Window Maker, it looked something like this:

wm1

Note how Spartan the work space is when compared to one of the environment clients. This may be a bit intimidating at first, especially for someone who is used to seeing task bars and icons all over the place. But don’t worry. The configuration tool, called the preferences utility, can make things look better in a hurry.

I’ll talk about this utility in more detail further down, but the ability to change icon sizes is one of the many options it provides. The first thing I did was expand the size of the dock icons (the guys along the bottom and right margins) so that I could actually see them without squinting. Size can be set to something very small, like 8 pixels across, to something ridiculously large like 256 pixels. I just tried different sizes until I found one that my eyes agreed with.

In the upper left corner is the pager. As with most window managers, Window Maker can support multiple work spaces. The means of cycling through your work spaces, often called the pager app, is the paper clip icon. Clicking on this icon will allow you to add, remove, and name work spaces however you want. I usually keep my system between four and eight work spaces, but I understand that one can go as high as 64.

Now that I had the window manager working largely the way I wanted, I could start adding functionality to my custom system. The first thing I wanted was a good terminal program. FreeBSD is, at the end of the day, a variant Unix system, and that means it’s largely driven by a command line. I’m not going to get into the religious wars of command lines versus graphical interfaces. I’m just stating the facts as I see them: the best features of FreeBSD frequently require a command line interface. Fortunately, there are a number of choices in this area. KDE comes with one called Konsole, and Xterm is the “old reliable” of the X-Windows world. Both of these are fine, but I wanted one with some special options for customization. For this I chose RXVT. I had used this terminal program before, and there is even a variation for the Microsoft Windows world which I have in my Windows partition.

wm2

This is what a default RXVT terminal looks like. Like any terminal client, it provides a command prompt and very little else. Unix technology has it’s roots in the computer systems of the late 1950’s, where everything was done using a basic text screen. This echo is still apparent in most x-terminals. But again, the best features of Unix are usually tied to the command line. There are many users, especially Unix power users, who control their entire system through x-terminals, and rarely use the features of the GUI. Get to know the command line. It will become your trusted friend.

Getting back to RXVT, it offers a variety of options for screen geometry, colors, fonts, backgrounds images, and so on. It also has several variations, each with different features. The one I chose included unicode support, and is called “urxvt.” I wanted unicode support because sometimes I need to access my work computer from home, where I often deal with materials in non-Western languages in conjunction with on-line translation utilities. Unicode is a must for such work.

rxvt

URXVT in action, showing some of the options for colors, background images, and fonts. I’ve only scratched the surface of the various options this program has.

RXVT on the ports tree:

/usr/ports/x11/rxvt/

The version I use is:

/usr/ports/x11/rxvt-unicode/

Now that I had a good means of using the command line, I started to add some more features to my Window Maker install. One of the more useful features of Window Maker is what is called the “dock.” A lot of window managers feature a “dock,” which first appeared on the NextStep window manager (I think). It has been incorporated in many GUI systems since then. Even the Macintosh and Windows 10 GUI systems use a form of dock. Almost any application can be attached to the dock, but I prefer to restrict mine to system monitoring tools.

I shook the ports tree and installed these dock applications:

Window Maker network monitor

/usr/ports/net/wmnd/

Window Maker weather

/usr/ports/misc/wmweather+/

wmtime

/usr/ports/x11-clocks/wmtime/

wmmoonclock

/usr/ports/astro/wmmoonclock/

Some of my dock apps, like the clock and the network monitor, have obvious practical use. Others, like the weather reporter and the moon clock, are just for fun.

For other dock applications, visit the dock apps web site for ideas. Or, search “dock apps” in your favorite search engine. There are literally hundreds of dock-able apps out there, so if you know what you’re looking for, you’ll probably find something that will work.

One word of caution for FreeBSD users: before downloading a tarball or instillation package for a dock app, find out if it has been included in the ports tree. Over the years, many of them have been included. If the one you’re looking for is on the tree, then save yourself some trouble and install it from there. It eliminates a lot of guess work, especially when program library files and supporting utilities enter the mix.

Once I had my dock apps in place, I went back to the preferences utility. This utility provides a wide variety of options. It is usually built into the application menu by default (right click on the work space to see the menu), or it has an icon in the dock. This icon usually looks like the Window Maker logo with a wrench or screwdriver over it:

But in case it isn’t in either of these locations, it can usually be found at:

/usr/local/GNUstep/Applications/WPrefs.app/WPrefs

Failing that, the command line tool grep should find it in short order.

Explore the options within the preferences utility, and experiment. Just about every physical characteristic of the GUI can be customized in one way or another, so have fun with it. After such a session of experimentation, I managed to make my work space look exactly the way I wanted it. The result was something like this:

wm3

So now I had my own, personalized FreeBSD workstation. Now it was time to actually get to work. For that, I needed to start bringing in applications!


Some Window Maker links:

Opening the X-Window

Courting the Daemon, part 2.

X-Windows logo

Oy.

There are almost two dozen different X-Window clients available for users of FreeBSD, Linux, and Unix, all with their own strengths and weaknesses. Advocates of the various window managers have engaged in religious wars with other advocates, all trying to determine whose window manager has the biggest pointer.

I’m not going to get into that, at least not in any depth. Personally, I don’t see the point (no pun intended). Not all users work the same way. Even Microsoft and Apple know this, so they allow for customization of their GUI clients. Granted, they generally don’t provide as many options as X-Windows, but they provide enough for most users to work with.

So to the various advocates of the various window managers, I must say this: use the one you like, and be happy. One of the best things about the world of open source software is that users can customize things as they see fit, up to and including the character of their GUI.

That being said, there is something I want to quickly look at, which has surfaced in recent years within the FreeBSD community. That is, should FreeBSD have its own, dedicated X-window client?

When I entered the world of FreeBSD, I had some experience with X-Windows during my Linux experiments, so I knew something about their various characteristics. My first FreeBSD instillation was PC-BSD version 1.5 (“Edison”), and it came with KDE-3.1 as the standard X-Window client.

KDE-3.1 looked and felt like a Windows or Macintosh interface. This is to say it was very similar to what I was accustomed at the time, so I was able to get to work fairly quickly. I didn’t want to spend a lot of time learning a new interface and/or figuring out how to do the most basic of tasks. I was, after all, using an operating system that I wasn’t familiar with, and I knew from my Linux experience that Unix-derived systems are not easy to grasp. However, I was able to start using my system, and largely it was because of KDE. I found I could use KDE to accomplish most tasks, while learning the Unix-based underpinnings on my own time and at my own pace. KDE turned out to be a good teaching mechanism.

Granted, KDE isn’t the only desktop environment available, and I’m not sure it’s even the best. But for someone coming from a Windows or Macintosh environment, it’s familiar and easy to learn. When PC-BSD got started, it was probably the best choice available for training new users in the FreeBSD operating system. At the time, one of the developers said that one of the big motivations behind PC-BSD was to make FreeBSD more accessible to new users. That was the case for me, and it was largely because the GUI was easy to work with. Over time I became more comfortable with the FreeBSD system that lurks below the PC-BSD dressing, and eventually I was able to do some of the more complex Unix tricks that the old pros do all the time. Newbies don’t remain newbies forever, after all. Eventually I settled on the WindowMaker window manager, which when compared to KDE is minimalist.

But even so, KDE is still available should the need arise. And there are other desktop environment clients, like XFCE, Gnome and LXDE, which provide a Windows or Macintosh style environment. For a newbie, this is a good thing, and I highly recommend one of those for such users. For example, my Windows 8.1 instillation recently flaked out (surprise surprise…) and it may be some time before I can repair it. This caused problems for my nine-year old daughter, as she sometimes uses my computer when I’m at work. I set up an account for her on my FreeBSD instillation, and it defaults to KDE 4.1. As far as I know, she’s had no trouble figuring out how to find what she needs to find. I suspect she doesn’t care about KDE 4.1’s shortcomings, just so long as she can find Firefox and play Animal Jam or access PBS Kids. As for my wife, she just wants a selection of web browsers, and access to a word processor (she’s a freelance writer and web developer). KDE 4.1 to set to deliver those as well. Additional Unix experience is helpful, but not necessary.

So to bring this back to point, should FreeBSD (in it’s various forms) have its own, dedicated X-window client, as opposed to one of the carry overs from Solaris or Linux? Personally, I don’t think so. New users are going to want a GUI client that can get them up and running easily, and help familiarize them with the new environment. KDE, XFCE and Gnome can all do that. New users should be allowed to get the basics down on their own time, and at their own pace. The training wheels can come off when the time comes.

Does FreeBSD need a GUI client that targets advances users? Absolutely not. Advanced users are going to make their own choices and customize their system to their liking no matter what the initial GUI looks like. Some even develop their own X-windows client! So I don’t think there is much point to having a standard GUI for FreeBSD, because users aren’t likely to retain it! In fact, standardizing such things runs counter to the whole philosophy of open source computing, and most hackers aren’t likely to suffer such a restriction.

So now that I’ve gotten my editorial out of the way, let’s look at my window manager of choice…


Addendum:

PC-BSD is endorsing, and contributing to a new desktop environment X-client called Lumina. It’s still under development, but it looks like it would also be a good teaching and transition tool for new users. At a quick glance, Lumina seems to have a more Macintosh-like feel to it. New users from the Apple orchard should feel right at home.


Related links:

  • Xorg home page
  • Window managers for X
  • FreeBSD project