When you first start using Linux, it is hard to tell where applications are installed, and how to start them. To shed a little light on this topic, I am going to use unixcw, cw (command-line application), and cwcp (graphical application) as example packages (RPM distributions bundle all the application into a single UnixCW package). The environment for this discussion is a laptop running Linux Mint, an Ubuntu derivate, which is a Debian derivative. Since the laptop only has 256 MiB of memory, I am using the Xfce desktop. The eye-candy of KDE and Gnome is nice, but takes a heavy toll on memory resources.
The unixcw package contains a shared library (libcw.so) that implements Morse code functions. A Linux shared library is similar to a DLL in Microsoft Windows. The cw and cwcp applications use this shared library. If you install cw or cwcp, the Synaptic Package Manager (sticking with Debian for this article) automatically installs unixcw.
How do you know what files were installed? After installing the package, you can highlight the package, and click the Properties icon in Synaptic. If you click the Installed Files tab, you will see a list of directories and files. If you are not familiar with the Linux file structure, the information looks a little daunting. However, here are a few clues:
Programs are usually stored in /usr/bin
Libraries are in /usr/lib
Manual pages are in /usr/share/man
Additional documentation and samples files should be installed in /usr/share/doc/packagename, but may be under /usr/share/
For this article, I am only going to cover the programs installed and the manual pages. This will give you enough to get started with using the installed applications.
Starting with unixcw, we know that it installs two libraries in /usr/lib and has two man (only in version 2.3-6 of unixcw) pages. Actually, the two man pages are the same. The difference is one is lowercase and the other is in uppercase. Since these manual pages are in section 7, we can read them by entering either
man 7 cw
man 7 CW
in a terminal window. Yes, it is a command-line. This is actually an interesting manual page, as it gives a good chart of CW codes. If you are wondering how to get out of a manual page, just press the q key. The space bar move you forward a page, and pressing the h key gives you help.
While we are working with the command-line, we might as well discuss the cw package. This package contains two programs: cw and cwgen, with corresponding man pages. The /usr/share/cw directory contains some test files. The cw program sounds Morse code characters through the console speaker, or sound card. It has different options for controlling speed, tone, and lots more. Since the manual page is in section 1, you only need to type
to learn about the command. The Examples section is a useful starting point for playing with the command. If you just enter the cw command with no options, input comes from the keyboard. You type a line, and when you press the Return key, the command echoes what you typed, and you hear Morse code from the speakers. To end the program properly, you need to type CTRL+D. You can end most programs with CTRL+C, but this key sequence causes a soft kill that may not save files.
The cwgen program generates groups of random characters. The default is to generate 128 groups of five characters, with no repeats. The programs cw and cwgen follow the Unix/Linux philosophy that each program is to perform a single task, and do it well. We can then tie the output of one program to the input of another program as follows:
cwgen -g 10 | cw -w 15
where cwgen generates 10 groups of 5 characters and send them to cw, which echoes the input and generates Morse code to the speakers at 15 wpm. Command-line may look complicated, but it is also very flexible. The morse package is another code practice practice package. I don’t particularly like the morse progam, but package also includes the QSO program, which generates random QSOs. We can use it as follows:
QSO | cw -w 15
Yes, there are graphical Morse code practice packages. I have tested cwcp on the Micron laptop, but for some reason version the current version xcwcp fails installation under Debian. It does, however, install and work correctly under openSuse. So why many of the graphical ham programs not appear in the KDE, Gnome, Xfce menus. The problem is that they should appear under Apps/Ham Radio. Since the sub-menu does not exist, they don’t appear under any menu. The hamradiomenus package should create the correct sub-menu, but it doesn’t work correctly. Under openSuse, ham applications appear under Internet/Ham Radio. The package menu configuration file tells the menu manager where to place the application. However, you can start any graphical program from a terminal window, just by entering the program name on the command-line. For example, just enter cwcp, and a graphical window opens for the application.
What the Linux community needs is a larger amateur radio community that is willing to work together to insure that ham applications comply to Linux standards for portability. At the this time, there are a lot of individual and small group efforts generating applications, and small groups working to make those applications available under different distributions. The missing element is a unified group that helps insure consistency across distributions.