Since this page was getting so long, I decided to break it up. Please update any referring links accordingly.
Table of Contents:
To the main page.
My original plan was to run as many cross-platform applications on Windows as I could, so I could eventually run the same applications on Linux, FreeBSD, Reactos and other operating systems. Unfortunately, this isn't as easy to do as it sounds. Attempting to run a newer operating system on a low resource computer such as my Sony laptop, one becomes severely limited in the applications the machine can execute in a timely and useful manner. I started a search for lightweight, fast-loading and possibly still portable applications to replace some of the applications I had working on more modern machines. I was surprised by just how difficult that search would be.
From my experiences with building Open Source applications (typically ported from Linux) on my Windows machine, I know building many of these programs is no easy issue. While Unix was originally built on the concept of do one small job well, many of the applications today are built on a chain of libraries that have to be compiled and installed properly and with the correct versions or they absolutely won't build. One of the things I like about using low resource machines is that there's a necessity to some degree to return to the original Unix concept to do each job with efficient, well-designed software. However, when you're switching over from your favorite applications on another machine, you're going to want the same programs or similar, user-friendly replacements. This page chronicles my luck in locating replacements for some of my favorite applications and what cross-platform applications run well on low resource machines.
I can break the uses of my computer into 3 major categories: writing, creating and playing multimedia, programming. An older laptop combined with a more modern operating system is probably not the best choice of a platform to do many of these types of jobs with. However, since my laptop previously ran multimedia applications under Windows 98 and ME and had the room and the speed to get the job done, I decided I was going to forge ahead and try to get as much as I could running on an up-to-date Open Source operating system. I also specifically looked for lightweight applications that would run cross-platform even on non Open Source systems such as Windows. The idea is not to be tied to any one operating system in order to get a task done effectively.
I have not included links to sites to download many of the programs I'm recommending. The main reason is that links change often, making it hard to keep up with them. If you're looking for these programs, first check if they're available with the disk or media you installed your Open Source operating system from or at a repository for your distribution. Next, check Sourceforge. Many of the applications are available there. GUI libraries such as fltk, lesstif, sdl, fox toolkit, sdl and qt have links to applications that make use of their interfaces at their web sites. Check these web sites for links to some of the applications mentioned or for other suggestions. Finally, some of the programs I'll mention were located by looking up software suggestions found in forums using a search engine or simply using a search engine and checking for an application that meets certain criteria.
To try out the applications, if they don't come as executables available for Windows or packages ready for your particular Open Source distribution, you can build from source code. You'll need to decompress and extract any compressed or archived files with tools like 7zip, p7zip, gzip, bzip2, tar or bsdtar, zip and explodepkg. For users on POSIX compatible operating systems, check your system's man pages on these tools for more details. You'll also find documentation for many of these programs on the Internet. Most applications build with the commands
make install. Windows users can try these commands with mingw and msys. FreeBSD has its own make utility. To use the GNU version of the make utility that most applications are designed to work with, you need to specify gmake on BSD systems instead. Most applications come with README and INSTALL files which usually detail if any specialized compiling and building procedures are needed.
If you have trouble building (compiler errors), check if there is a patch available or if other users have listed similar problems and have a fix or work-around. The Debian packages and FreeBSD ports sites are good locations to find patches. Linux From Scratch has good documentation on building and patching applications. You can check my patches for changes I needed to make to get some of these programs running. Also, be sure to check the web site where you downloaded the program and in some cases, sites related to the program's GUI, such as the fltk web site wiki. When I got stuck, I used a search engine to see if users received similar errors and what work-arounds they recommended. This was extremely helpful in getting some of the programs to build successfully.
Some of the basics when getting started on any system will be compression and decompression utilities to access applications that are saved in a compressed format. I like Info-zip's zip and unzip utilities. They're command line tools, but they work on a wide variety of platforms. 7zip gives a GUI front end to compression. I believe 7zip only works on Windows. There is a command line version called 7za. The POSIX port of that utility can be found at Sourceforge and the project is called p7zip. Other standard command line tools of this nature are bzip2, gzip, lzma, xz, tar. I personally prefer the BSD licensed version of tar to the GNU licensed version. Windows users can find a basic-bsdtar based on the BSD licensed version of tar as the MinGW site.
I use grep for searching files both on Windows and Linux. You can find a Windows port that includes a -d feature to search directories. On POSIX compatible systems, most grep utilities have the -r feature which can do this. For a search and replace tool, gsar is a promising command line program that can do the job. There's a copy of it at Sourceforge in the gnuwin32 project. The source compiles on Linux as well as on Windows. There's a Windows executable for download too.
I use hjsplit on Windows for all my file splitting. I found a command line version that's compatible called lxsplit. It's available at Sourceforge and works on Linux. It should probably work on Windows and FreeDOS as well.
One of the first things I wanted to get running on my laptop was Dosbox. If Dosbox worked, that would immediately increase the number of applications I could run. While you can still usually run DOS programs fine on Windows, some may no longer work on your Windows system either. Also, you'll find running fullscreen in a command prompt very difficult to do in later versions of Windows like Vista and 7. Dosbox handles fullscreen mode by pressing Alt-Enter as usual or by adding the information to the configuration file. Dosbox runs on Windows, Linux, FreeBSD and can keep your DOS programs working even when your modern operating system is unable to still run them on its own. You can use Dosbox to run DOS applications such as WordPerfect or Word. These are both high powered word processing systems that can format publications for print. Yet, both probably take up less space and resources than more modern word processing alternatives because they were written for machines that just did not have the capabilities they do today. I find the DOS version of WordPerfect in Dosbox works better than the version that was written specifically for Linux and it's easier to set up and run too. There are other free DOS word processing utilities that should work as well in Dosbox. If you're trying to print in Dosbox, print to a file in Postscript format and then bring up the file outside of Dosbox with another program in order to print it. You can use a later version of ghostscript (that offers command line access through GSWin32c -dSAFER -dBATCH) in Windows or gv on POSIX or other similar tools to print. You may be able to use a program that monitors for file creation to have it automatically print. There's also a patch/variant of Dosbox that allows printing through a serial port. Besides word processing applications, you can also find some interesting graphics applications in DOS such as pictview. You can run some music applications that no longer work outside of Dosbox because they're designed for older sound hardware such as a specific Soundblaster card. Check out some sites that still have DOS software, such as Free Software for DOS and you should find plenty of legacy applications to choose from and try out on Dosbox. Not everything will work, but there's a large array of programs that do.
I don't want to rehash the information already available at my Recipes for Music on your PC page. I will mention that the absolute essentials for music on my machine are abc2midi, abcm2ps, timidity and if possible, audacity or a decent wave file editor. The first 3 run on practically any machine. There's even an older version of Timidity that runs on FreeDOS. Audacity is resource intensive. If you just need the sound recording feature, look into sox, flrec (GUI front end for sox recording using FLTK on Linux) and gramofile. Some lighter wave editing alternatives are ecasound and snd which can be run from the command line. Snd also has a graphical interface. Other possible alternatives are mhwaveedit and sweep, ecawave and xwave. If you're going to record while simultaneously playing audio files, you really need the hardware to do so. You're looking at turning your PC into a digital audio workstation (DAW). Along with your computer system, you'll need an audio card (not to be confused with a sound card) or enough processing power to run a program like winjack or jack. (Audacity has functionality to record while playing built in too.)
Basic music creation is covered by the abc notation utilities. You'll probably want midicomp at the FreePats site as well to edit midi files in text format. Timidity can play midi and midi Karaoke files. It can generate wave files from your midi files so that you can record them to a CD. I also recently found out that it can play mod files. Audacity can play most other sound file formats such as wave. However, if you want to play audio files in ac3 format, you'll want to look into a multimedia player. Later versions of Audacity have added ac3 import/export as well as limited midi import/export. Audacity is a full-fledged sound recording tool and audio editor. I also like MilkyTracker for mod file playback. It is the best sounding mod player I've heard on a PC, although Timidity is quite good too. MilkyTracker can be used to create your own music. For music normalization and getting rid of pops and clicks, check out gramofile and normalize. Gramofile was designed to help convert records to digital format and provides recording tools. Sox is a great tool for converting sound formats and can record, play and create sounds. On Posix systems, I found the aumix, umix, alsamixergui programs very useful for raising or lowering audio volume. If you want a tray icon for volume like Windows users have, check out volumeicon.
For Windows users, I want to mention Media Player Classic (which plays video and ac3 files as well as audio) and the real alternative player and quick time alternative player which make use of it.
Again, I don't want to go over what I've covered in my Recipes for Video on your PC page. If you want to create custom DVDs strictly with only Open Source resources, at a bare minimum, you'll need tools for the following. You need a program to copy and demux files from a DVD created by a stand alone DVD recorder. You'll need a basic editing program. You'll need an authoring program and you'll need something to write the DVD ISO file to an actual DVD. For copying files and demuxing, the one Open Source cross-platform program I know of is vstrip. There's also ProjectX for demuxing, but it's not lightweight and requires the Java runtime environment to be installed. For DVD authoring, all the Open Source tools I've seen make use of the command line tool dvdauthor. The only cross-platform GUI authoring tool I've found is DVDStyler. If you find others, I'd be interested in hearing about it. I've found mpeg2schnitt invaluable on Windows for basic MPEG2 clipping and editing. It's also great for locating where to place chapter marks which you may want to know later on when you get to the authoring stage. While mpeg2schnitt is Open Source, unfortunately, it's Windows specific. It does work under Wine though. Having searched the list of DVD tools for Linux at the VideoHelp web site, I did find a possible replacement that is Linux specific. It was the only program of its kind that compiled on my DeLi Linux machine. It's called gopchop. You may be able to write DVDs directly from your authoring tool, but I prefer to check ISO files in a multimedia player like vlc or mplayer first. Once you're happy with your authored ISO file, you can write it to a disk using cdrtools. Programs like XCDRoast (or K3B if you have the machine power) on Posix compatible machines or Infrarecorder, cdrtfe or ableburn on Windows give you a nice GUI front end to get the job done.
For audio video playback, there are four alternatives I like. I use both vlc and mplayer on Windows. The program mencoder which comes with mplayer is a very useful tool for converting between file formats such as MPEG to AVI and back. These tools are available on most Posix compatible operating systems as well. There's even a command line version of mplayer that works on FreeDOS. One can usually compile mplayer, vlc and/or xine to work in Framebuffer mode on Linux using libraries like SDL and/or DirectFB. I've tried out flxine which is a FTLK front end for the xine media library and Goggles which is a Fox Toolkit front end for the Ogle DVD player. Flxine is lightweight and includes a nice visualization tool. Another front end for xine that only requires X libraries is xine-ui. There is a port of xine to Windows, but I haven't had too much luck using it with my particular video card. Same goes for the Cygwin version of xine. Windows users might also want to check out Media Player Classic - Home Cinema. It's a fork of Media Player Classic with some new features and displays video as well as handling playback of several file types.
Another route for getting video to your computer is to record it directly to your hard drive (rather than have an external recorder). You'll need some kind of external hardware such as a specialized video card or device connected via USB or firewire that will let you record video input to your computer directly to your hard drive. Personally, I don't use this technique, but you can try Kino on Linux or VirtualDubMod or VirtualVCR on Windows for this purpose. VirtualDubMod is a variant of VirtualDub that includes support for opening/editing files in MPEG format. I find this ability convenient and therefore prefer it to VirtualDub. However, VirtualDub seems to be more actively supported than VirtualDubMod. Unfortunately, none of the variants of VirtualDub seem to have support for writing MPEG files at this point. One can use Avisynth to make a video file look like an AVI file so it can be opened and edited with any program that supports AVI though.
I'm still looking into locating Open Source DVD backup tools similar to DVD Rebuilder (a Windows program). If you want to backup videos you already own (as the disks can go bad and become worthless) or you've recorded video files on your hard drive too large to fit on your DVD, you'll need a tool of this kind. So far, most of the programs that do this on Linux need desktop libraries. Some of them use a command line tool called transcode which I've had no luck getting to build on DeLi Linux and I haven't found a port of for Windows. I did notice some programs use a command line tool called vamps. I managed to get vamps to build on Linux and Windows. Will have to see if it's useable on its own or if there's a nice cross-platform front end for it. Another option, if you've created a DVD ISO that's too large to fit on your DVD disk is to leave parts out with a tool like VobBlanker. Haven't found a working tool like VobBlanker for Linux yet though. A last option is to cut large files into more manageable sizes with something like gopchop or mpeg2schnitt and then author, create menus and put together several DVDs from one video with DVDStyler.
I wanted to find a way to convert MPEG2 audio (ac3) files to WAV and back. I used Besweet on Windows, but it's not Open Source and it's not portable. Another popular alternative is ffmpeg (which mencoder uses in some cases). It can convert between different audio file types. However, it has some deficiencies when converting certain types of files such as ac3. So, aften and a52dec are probably the best choices to look into for this type of audio conversion. Aften comes with choice of GUI front end on Windows machines.
If a program needs an AVI file as input, as mentioned, Avisynth can make other file formats such as MPEG look like AVI. Command line tools like mencoder and ffmpeg can convert between various video file formats. There's a cross-platform GUI for ffmpeg called winff for those who prefer to avoid the command line.
The main Open Source program most people recommend for graphics editing in place of a program like Photoshop is Gimp. I really don't find Gimp as useful to me as Photoshop. In fact, I hardly ever use Gimp. The only feature I really use and have found very user friendly is its ability to apply effects to text and create graphics from that. Gimp will run on a low end system, but it's pretty resource intensive and uses up a lot of disk space. I wanted to find some smaller alternatives. The name that came up most when looking for low resource graphics programs was mtpaint. At first, I thought it might be a paint program alternative, but it has bitmap graphics editing features like a photo editor as well. It even has support for animated GIFs and screen shots. Another alternative graphics editor is nathive. It does require Python to run on a system though. For something even lighter, take a look at flphoto. It's written using the FLTK GUI libraries. I like the red eye feature and the file size clipping capabilities. However, the PNG format only appears to work for me when I use the built in FLTK libraries rather than the system libraries. I use I.mage on Windows. I like its ability to easily edit at the pixel level. However, it doesn't appear to run as well on Linux as on Windows, at least not for me. I'd like to get a build from source on FreeBSD, but haven't had any luck at this so far. If anyone gets the source code to compile successfully on any system, please let me know. Another graphics editing program I've seen recommended for Linux is fotoxx. Mirage is also often recommended. Like nathive, it requires Python. I've run Viewnior on Linux and FreeBSD. It offers some simple graphics editing functionality as well. I recently found a program called RawTherapee. It's a nice replacement for some of the special effects graphics editing functionality provided by programs like Photoshop and Gimp.
I'm still looking for a decent replacement for the color utility Photoshop and the freeware 2 Pic program offer. They let you see various color tints on the same photo and pick the one you like best. If you've found an Open Source graphics program with similar functionality, please let me know.
Other alternatives to Gimp are Cinepaint, Imagemagick and Graphicsmagick. I believe Cinepaint was, at one time, a fork of Gimp. It headed in an interesting new direction using FLTK in the Glasgow version as its front end. This could make it a helpful, lightweight alternative for graphics editing. The project porting Cinepaint from GTK+ to FLTK is still in the developmental stage and I haven't seen any active development lately. It may be difficult to find executables or even latest source outside of Sourceforge's cvs system. Imagemagick and Graphicsmagick are both very powerful graphics editing and format conversion tools. Graphicsmagick is a fork of Imagemagick that aimed for stability. The biggest difference between the two that I see is that Graphicsmagick tries to use one program as an interface and Imagemagick uses several. Both are command line tools and other graphics programs often use one of these tools on the back end. You really don't need both on your machine, so pick one that works best with the other applications on your system. Debian provides a compatibility layer so you can use GraphicsMagick as a drop in replacement for ImageMagick, so their basic funcionality is fairly close. I did a search on front ends specifically designed for Imagemagick, but did not turn up anything really useful and lightweight. If anyone finds anything other than the display program that comes with Imagemagick, I'd be interested to hear about it. I'm considering creating my own using the user interface tools I'm working with for my LM BLD system.
There are several graphics programs that provide a thumbnail and large picture view of your graphics files. I'm not a big fan of this type of application, but judging by the number of implementations I've seen, others are. On POSIX systems, there are gpicview, gtksee, xzgv, xfi, geeqie (lastest fork of GQview), viewnior. All of these are somewhat lightweight and don't require any special desktop libraries (just GTK+ and/or X Windows libraries). I've managed to get Viewnior to build on FreeBSD, but had to remove a few things from the configure file and install by hand. It builds on Windows, but doesn't run properly and is having issues with finding files and directories. Haven't been able to debug it further. For Windows, there's a port of GQview called GQview-win. The flphoto program also presents graphics in this type of format and works on Linux and Windows. One quick note about GQview, Geeqie, GQview-win. Each offers the option to call other graphics programs, so you can use it as a front end to other graphics editing tools like Imagemagick and mtpaint.
For a quick graphics viewer, I happen to like picaxo. It works on Linux and FreeBSD using the SDL library and there's a standalone Cygwin port of the program for Windows. If you have Framebuffer support, it should run without X. It has problems with dense bitmaps though. It's best useful for viewing small graphics files. Neonview is also an interesting option. It builds on POSIX machines and, with some patching, works on Windows as well. Another interesting graphics file viewer is gliv which uses GTK+ and OpenGL and does a nice job on rendering graphics. I've done some searches, but really haven't been able to find much else in the way of cross-platform for quick file viewers. I wasn't able to get gliv to build on Windows. Too many X dependencies. I did try out pho and was able to get it working on Windows and POSIX systems. Other graphics programs for Linux (and FreeBSD) I'd like to mention are feh, scrot and gozer. They're lightweight graphics tools built on imlib2. The feh program lets you change the look of your desktop's background as well as letting you view graphics. The other two programs are for screen capture and text to graphics conversion. If you want to view graphics outside of X Windows on a POSIX compliant machine without framebuffer support, so far, the only real option I've been able to get working on my FreeBSD machine is zgv. It's definitely worth trying out as a quick command line viewer on systems that support the libsvga library. If you can't get libsvga working on your machine, there's a sdl option for machines that could make use of directfb. Am investigating if zgv with sdl will port to Windows.
Several graphics programs including viewnior and flphoto (on POSIX only), pho and zgv provide slideshow options. However, I really like Perigee Slideshow. It's specifically designed to display slideshows and gives several display options and effects. It uses SDL which means it may work in Framebuffer mode without X Windows. It's lightweight and it also works equally well on Windows machines.
For taking screenshots, Fox Toolkit comes with a program called Shutterbug. Also, scrot, Imagemagick's (or Graphicmagick's) import and mtpaint offer that feature. Another nice utility is gpe-screenshot. I've been working on writing a script that combines a program that can take a screenshot with a program like photocrop and then sends the results to a photo editor. Theoretically, it could work in Framebuffer mode without needing X. It could also run on Windows and I have a working script using Autohotkey for that platform. If you want some serious desktop video capturing, check out Camstudio on Windows. I'm still looking for a similar program for Linux. Xvidcap seems to be one alternative on some versions of Linux. The recordmydesktop program may be another option worth trying. So far, neither work properly on my desktop machine. You can also script Imagemagick's import to take successive screen shots and use Imagemagick to convert that into a movie if you're dealing with a low resource computer that can't handle more standard applications to do this.
I've searched for graphics editing options that would make a good, easy to use replacement for a program like paint on Windows. I think grafx2 could work well. It's been ported to a wide variety of platforms. Both xpaint and gpaint might be useful on some systems too.
I'm still looking for an icon editor that can handle transparent backgrounds. I use OpenWatcom's Image Editor on Windows. There's a port of OpenWatcom to Linux, but I couldn't find a working version of the Image Editor on Linux. You may also be interested in command line tools like giftrans and netpbm. If you want a command line tool for creating animated GIFs, check out gifsicle.
I've covered bitmap graphics, but what about vector graphics editors? There are basically two major formats, the xfig style format which has been around a long time on Linux and the SVG format which is a vector format created by the W3C for use with applications such as web browsers. For xfig format on X Windows, there's the program called xfig. If you want a more lightweight xfig style editor on a system that supports X Windows, check out figurine at Sourceforge. It also builds with Cygwin. On Windows, the only option I've seen is Winfig. For SVG, sodipodi and inkscape are both cross-platform editors. I've read that sodipodi is a lighter application than inkscape, so it may make a good choice. However, the inkscape project is more up-to-date and actively supported. There's been some recent work done on antipaint which is an FLTK drawing application. Am hoping to look into it further.
Another interesting set of graphics applications converts files to graphics drawings in Postscript, SWF or other formats. I've tried GLE, libswf and xml2swf. GLE is a nice tool for drawing graphs and charts. Other cross-platform format conversion programs that may be of interest are a2ps and enscript (available at Sourceforge as part of gnuwin32 project) which convert text or other input to Postscript output.
I find less a great tool for viewing files from the command line quickly or searching for a string in a particular file. You can pipe the output of a program to less and use less to page through it similar to more. Unlike more, you can page up and down with less. It can also be used as an alternate pager for man pages. I've recently found out about lesspipe which creates a bash script to work with less. It'll add functionality to less such as viewing what files are in an archive or viewing any readable text in an executable. It can make use of other tools like xpdf to display text representation for files of a more graphical nature like PDFs, postscript files and some graphics formats.
Once you create Postscript, PDF or other files for viewing and output to a printer, you'll probably want a good program to view them with. Ghostscript is probably the most well known Open Source Postscript tool. There are AFPL and GNU GPL licensed versions. I tend to use the GNU version if possible. Ghostscript can convert Postscript to PDF format and back again. It can also be used for viewing Postscript and PDF files directly if you don't mind a lot of command line typing or setting up scripts for it. Ghostview was the original Postscript viewer with Ghostscript. There are several options now. Gsview works with Ghostscript on Windows, but it also works on Linux and other systems. Later versions display an advertisement asking if you want to register and pay for the software or not. There's a variant of Ghostview on Linux and BSD called gv which can display both Postscript and PDF files. You need a version of Ghostscript that's compatible with X Windows to use it. Later versions of Ghostscript on Windows have some built in support for viewing Postscript files. Typing GSWin32c -dSAFER -dBATCH and the name of the Postscript file can be used to page through viewing of that file. For PDF viewing on Windows, there's an Open Source program called Sumatra. There's even a portable apps version available for it. I've read that xpdf on POSIX systems was the first Open Source third party alternative for a PDF reader. It became the basis of several other PDF viewers, including earlier versions of Sumatra. The rendering part of the code was used to create the Poppler library which many other Open Source PDF viewer applications use. The xpdf viewer makes use of the X Windows and lesstif GUI libraries. There are xpdf command line utilities as well which can do things like convert a PDF to text output. There are ports of the xpdf command line tools to Windows in the gnuwin32 archive. There are even ports to DOS. Another Linux option that works with GTK+ 2 is ePDFView. I've been pretty happy using gv on Linux and would recommend giving Sumatra a try on Windows if you want a strictly Open Source solution. I've also heard about Evince which is another GTK+ 2 based PDF viewer that uses Poppler. It's cross-platform and works on both POSIX and Windows systems. If you want PDFs embedded in a Firefox browser, you can use Evince with a Firefox plugin. I have to mention my latest favorite in PDF viewers and that's mupdf. It has practically everything I need and is lightweight. If you prefer a more graphical interface over keystrokes, go with some of the previous solutions such as Sumatra and gv. Actually, later versions of Sumatra are based on some of mupdf's code. If you want something that loads PDF files in a decent amount of time on low resource systems, mupdf is the best solution I've found to date. Both mupdf and Sumatra have Firefox plugins for embedding PDF files in a browser on Windows. However, they only work with certain versions of Firefox. Since Firefox has been updating versions rapidly it makes it hard for plugins to keep up and continue working on newer versions. I haven't heard any news of plugins working on POSIX machines other than possibly being able to use Evince.
A friend sent me some graphics in cbr format. Hadn't even heard of cbr format before that, but it seems it's a series of graphics files in a zipped (cbz) or with cbr files, the rar'd format. I've read that it's become common for presenting comic book like material. (Check archive.org for several Open Source and public domain comic book files.) You can also zip your own graphics files into one file to save disk space. I looked all over for a viewer that would handle this format and run on DeLi Linux without needing a bunch of screen and desktop libraries to do it and couldn't find one. I even tried scanreader based on qiv which works only with X Windows, but neither program compiled on my machine using DeLi Linux. I finally decided to try the format out on Windows and while looking for viewers that would run on Windows, I ran across Comical at Sourceforge. Of the various viewers I tried on Windows, I liked the look of it the most. Plus, it wasn't an interpreted program, so it could run faster than viewers designed using an interpreted language. Comical works on top of wxWidgets and after I installed wxWidgets 2.6 on DeLi Linux to get DVDStyler running, I thought I might as well make use of the GUI library. I had no problem getting Comical running on DeLi Linux and viewing cbz files with it. Most versions of Linux come with a later version of wxWidgets which may present some problems when trying to build Comical. I have some patches I wrote just to get it up and working with a later version of wxWidgets. I contacted the author of the project a while back and was told a new update for this program is supposed to be in the works. It would be nice to see an update or possibly a fork of the program to fix some of the library issues that have cropped up since the last update. In the meantime, there are patches available from various distributions to work around the issues. I've seen some distributions use the free version of unrar library instead of the version of the library that's available with the comical source code. That might interfere with opening some rar files in certain instances, but it does keep the program more in line with free software licensing. I've created a patch for Windows users so comical will store its settings to an ini file instead of the registry for users who like their applications more portable.
I have recently found another cross-platform comic book viewer option using XBMC. However, comical provides more functionality such as one or two page view and ability to rotate an image. I've also looked at qcomicbook on Linux. It's very similar to comical, but uses the qt 4 libraries. It might port to Windows using MinGW, but I haven't had any luck with this option yet. If you want a fast, cross-platform cbz viewer, comical is the best choice I've found so far.
I use less for quick file viewing, but when I need to do some quick command line file editing, I need a good text editor. Emacs and vi are classics found on most operating systems, but I like something a little more user-friendly. I started using pico which is the editor that came with the pine e-mail software. Due to licensing issues with pine, a program based on pico with Open Source licensing was created. It was called nano. Unlike pico, it included the ability to edit more than one file at once. However, I often find it easier to just edit one file at a time. A version of pico under a new Open Source license is now available with alpine too. If you need a quick command line editor without starting X Windows, nano is great for the job. It works on Windows, FreeDOS and many other operating systems. (Pico does too.)
One thing I absolutely have to have on my computer to get any work done is a decent programming editor. I've used different editors over the years, but when I find one I like, I usually stick with it for a while. I've gotten so used to certain key combinations with certain editors, that for me to switch editors, I need to find one that has good key mapping functionality. My current favorite programming editor is SciTE. I used PFE before that, but it was not Open Source, so once it was no longer being regularly updated, any little bugs in it could not be fixed. SciTE has been able to do everything I did with PFE and more. This was one of the programs I had to have working on an Open Source operating system or I'd be wasting too much time trying to switch my laptop over to the operating system. Luckily, I was able to get it to compile and build on the POSIX systems I've tried although I did have some issues which I've mentioned on my patches page.
I pretty much use SciTE for everything from quick edits of files on the command line to all my basic editing needs to typing up documents that will eventually be formatted for printing in a full-fledged word processor. I've even started to replace my word processor with SciTE using a markup language to format documents. You can run SciTE from the command line in Windows as long as it's in your environment path. On Linux and FreeBSD, I put together a shell (named scite, placed in /usr/local/bin) and use it to run SciTE more easily from the command line in an X terminal window:
#!/bin/bash /usr/local/SciTE $1 $2 $3 $4 $5 $6 $7 $8 $9 &
One can also try substituting $# or $* instead of specifying several possible command line arguments by hand. I haven't needed the script on Debian, because they name the program scite not SciTE, so no issues with using lower case letters on a case sensitive file system.
I've customized my version of SciTE quite a bit. It can call ABC notation programs or context help. It runs various lua scripts for special functions. I also have api files for certain programming languages that work in conjunction with SciTE. There are lots of extras for programming languages, but one piece that I felt was missing was more support for working with documents (similar to a word processor). SciTE already understands output in the format of compiler errors from gnu and mingw compiler suites (as well as some other popular compilers and tools). I thought that might be a good way to further extend SciTE's functionality. So, after searching for various options for a spell checker, I finally added one myself using this method. You can check out the code for it and other techniques to spell check or work with documents at my page on SciTE Tips.
The final piece of the text editing puzzle is a full-fledged word-processor. If you're going to print a publication such as a 'zine or want to do any kind of specialized print formatting (disk covers, greeting cards, flyers), you really need a good word processor. I've become partial to WordPerfect over the years and won't even use other commercial word processors in place of it, so it's hard to find a decent Open Source equivalent. There are cross-platform Open Source alternatives, such as Libre Office (a fork of Open Office), Abiword, Lyx and Scribus. However, I have not been able to make the switch to any of them. I have found myself starting to use Libre Office's ability on Windows to create a document and print it as a fax. Both Libre Office and Abiword can open Word documents (that editors sometimes send me). Now I don't have to write back and tell editors to send documents in another format, but I do still write back and tell them their format is not portable and I do not have Word on my home computer. I've found Libre Office more user friendly, but Abiword has some nice features such as spelling and grammar check ability, plus it's more lightweight than Libre Office or Open Office. I know a 'zine editor who uses Lyx to format her 'zine publications, so I know Lyx is up to the job. Believe it or not, I've found it easier to install and get Lyx working on Windows than Linux. Most of the major word processors running on X Windows make use of some desktop libraries which proves to be an issue if you're limited in hard drive space and other resources. One other lightweight office suite option I've heard of, but haven't had time to try out on Linux yet is Siag Office. The lightest console based application I could find for word processing would be an application such as wordgrinder.
There is another option for word processing when your end goal is to produce a decent output for the printer. The option is exemplified by a program like Lyx where you have an editor on the front end and formatting libraries or programs on the back end such as Latex. As I mentioned, Lyx is pretty resource intensive. So is Latex on its own. It takes up quite a lot of drive space. However, if one could find the right formatting language (similar to Latex) which would do the job and not take up too many resources, you could use your favorite text editor as a word processor as well. A couple of text formatting alternatives to Latex are groff and Yodl. The ideal to me would be an XML based formatting markup system that can be converted into formats like Postscript and PDF. Docbook and DITA are both XML systems that are supposed to be useable for creating books. Even LibreOffice's and OpenOffice's Open Document format is an archive of XML based files. The main problem with the XML standards I've seen so far is that there aren't a lot of tools to use to go from the XML format to the desired output format. There are tools for XSL FO that use XSLT on XML for conversion to other formats. However, the only Open Source applications I could find for that method were Java based and I wanted something that would run faster than Java and wouldn't require a virtual machine on my system to work. I also find many of the XML book standards overly complex. Docbook and even DITA contain hundreds of XML tags. Memorizing and using them by hand in a text editor could take a while.
I considered creating the documents in HTML in my text editor (or you could use a GUI HTML editor like Kompozer or Amaya). Then, I could use a decent web browser to print the documents. There are a couple of drawbacks to this approach. HTML is not a typesetting language. It's supposed to be viewable on a wide variety of operating systems and browser programs and to hopefully degrade gracefully when a browser doesn't support a particular feature. It's not meant to place objects in exact locations on screen (or printer). Still, if one is using CSS and working with the same browser so that it renders the same way when you print it, creating documents in HTML could be an option. However, finding a lightweight browser that can still handle CSS and a recent version of XHTML or HTML, could be harder than trying to find a lightweight word processor. If you want the latest CSS media features such as counters and targets to references page numbers to create indexes with, you'll have even less luck. Further processing, such as a HTML to Postscript program like the Perl html2ps script, might be one way to get around the browser option. However, CSS support is not very complete in any of the script programs I've tried. Wkhtmltopdf is the most promising Open Source option I've found so far and it now works without X Windows running, but does still require several libraries and dependencies to work including QT (or a modified version of QT) and webkit. There are also programs like a2ps and enscript which convert certain document formats to Postscript. SciTE currently uses a2ps to print documents on Linux and I read of at least one SciTE user who had substituted enscript for a2ps when printing. SciTe can output documents to some other formats such as PDF. Lua scripts are available to allow SciTE to output a document to ODT (Open Document) and provide more options as well. By the way, once you get a file to postscript or PDF, it's fairly easy to switch between the two using ghostscript to convert formats.
For now, I'm sort of cheating. While I have a cross-platform solution, it's not Open Source. I've just stuck with my favorite application WordPerfect whenever I need serious document formatting and/or translating to Postscript. The DOS version works just fine in Dosbox or on some versions of Windows. As a matter of fact, it works better than the free Linux version that is available. I'm also slowly switching to writing more documents in a text editor and using XHTML plus CSS for formatting. I would definitely be interested to hear if there are other low resource options for word processing that could be used in formatting and producing publications. If anyone finds a better method of going from XML (XHTML and CSS or any other XML variant) to Postscript and or PDF, please let me know.
While I may not have been able to find a good Open Source word processor that I liked, there are plenty of great tools that work along with any word processor or editor to help you create better documents. Diction and Style are two such tools that let you check your document for things beyond just spelling. There's a copy of them at the gnuwin32 project at Sourceforge among other places. The version there compiles on Windows and Linux. The wc program (word count) is another handy tool. Most Linux distributions include this. There's a copy with msys too. Plus, you'll find various variants and code examples for it on the Internet.
I use my DOS WordPerfect dictionary more outside of the editor than inside, especially when I want to look up the spelling of a word phonetically. I've come across a really nice Open Source alternative for word lookup. It's called StarDict. It not only provides the ability to find words in a dictionary, but can also be used as a thesaurus or encyclopedia or language translation tool depending on the dictionary files you select to use with it. StarDict is available in a variety of versions. There's the current one that works on Windows or Linux with Gnome libraries. It can be configured when you build it to work with GTK+ 2 only and avoid using any Gnome libraries. There's an older portable apps version which I used to use on Windows available at Sourceforge as the stardictportabl project. There's a portable apps version of StarDict available with the StarDict project at the Google Code site. There's even a lighter weight command line version called sdcv at Sourceforge. It still requires GTK+ 2, but compiles on both Windows and POSIX systems (including the Mac). There are several non-GTK+ alternatives that will let you view StarDict formatted dictionaries. I am currently looking into using some of them instead. You can find dictionaries at the StarDict project's wiki at Google Code and even at the xdxf project at Sourceforge. I really like the idea of the xdxf project to provide dictionaries in XML format and to be able to convert to various dictionary formats such as the one StarDict uses. However, I've had very little luck in getting the xdxf conversion tool to build. StarDict does come with some nice command line conversion tools of its own though. You can create dictionaries in a tabbed format or in Babylon format and convert them to StarDict format. That means you can create your own custom dictionary files. I've tried this trick to create a simplified style manual in Babylon format and to convert it to StarDict format. Look for stardict-editor and stardict-tools at the StarDict web site to help with the conversion. I'm currently looking into porting a later version of stardict-editor to Windows.
I'd love to find a rhyming dictionary in StarDict format as well. If anyone comes across such a dictionary (already in StarDict format) or a word list for rhymes that can be converted to a Babylon format or something similar, please let me know. I've only run across two other Open Source projects so far that offer rhyming tools. There's a project at Sourceforge called Rhyme. There's also Steve Hanov's rhyming dictionary. Haven't had a chance to look at the source code yet, but he builds his dictionary using resources from the public domain Moby project, so this might make a very interesting alternative.
I usually use grep to find a string in a file. You can also use
grep -r on a POSIX system to have it search subdirectories. To find a filename with a certain string, there are several alternatives, but, on Linux, I just use something like
find / | grep string. For those who like a GUI interface when finding a string, check out searchmonkey. I saw it recommended by several people discussing lightweight application alternatives. It's not that small, but doesn't require special libraries either (beyond QT 4 screen library). It builds and works on Linux, FreeBSD, Cygwin and Windows.
I find a decent file downloading program invaluable, especially if you're downloading big files from the Internet on a slow connection and get cut off in the middle. A decent downloading tool can not only speed download times, but also start up where it left off if it's interrupted during a download. I've used several freeware applications on Windows. The alt.comp.freeware site usually has some great recommendations in this area. However, I wanted an Open Source download program. The one I'd heard about on Linux was prozilla and it compiled fine with no issues on DeLi Linux. I tried some others after that on DeLi Linux and none of them compiled successfully. There is a GUI front end for prozilla written in fltk. However, with this plus, you also notice the drawback of this program. It hasn't been maintained in a while. I needed to make some modifications to the front end to get it to compile with the latest version of fltk. I usually prefer more actively supported programs, but as long as it builds and it gets the job done, I always have the source to tinker with if I need to. There is another command line option that looks more promising and appears to be more actively maintained. It's called aria2. As an added plus it's also cross-platform portable.
The other file downloading program I find invaluable on Windows is httrack. This program is useful if you want to download several files from a web site or back-up a web site you're developing from the Internet to your local computer. Luckily, this program is cross-platform portable and it compiled fine on my machine with DeLi Linux. The Windows version provides a GUI, but the Linux version appears to be command line only. I did notice a curses front end someone had created for it though. WebHTTrack offers a web based GUI for httrack similar to the Windows GUI.
I like lynx and sometimes use it on Windows to check my web pages, but the version that came with DeLi Linux 0.7.2 seemed very buggy. I downloaded a program called links and built it (with no problems). It's a lot like lynx. It also has a command line option of
-g that will let it show graphics. There's also a version of links for Windows. If you want an enhanced version of lynx, check it out.
I've been using Foxmail for years on Windows. It's lightweight, easy to use. The only drawback, it's not Open Source. I set out to find an Open Source alternative. It was not as easy an endeavour as I would have thought. I've heard a lot of recommendations for Thunderbird, so I downloaded and attempted to switch over to a portable apps version of the program. I didn't like the interface as much as Foxmail. I didn't find it as user friendly and the search feature didn't seem as nice. I also couldn't tell if my messages were going out in ASCII format like I wanted or in HTML. If you want an e-mail program that can create HTML formatted messages, then Thunderbird becomes a good option. However, for a lightweight, low resource replacement to Foxmail, it wasn't working. I briefly checked out Claws-Mail which is an extended version of Sylpheed, thinking that anything with extensions and added features had to be better than the original. However, I finally ended up trying Sylpheed which is what many light Linux distributions recommend (and for good reason). I was impressed by the developer's philosophy when designing this project. The purpose was not to use a lot of plug-ins and add a lot of features that would require rebuilding to get them working. That meant any additional functionality had to be added with external programs, but that works well with the Unix philosophy of getting small programs that each do one job well. The author also did a fine job of making sure the program was well-tested and debugged on Windows and Linux. The only drawback I found was that I had trouble mapping multiple e-mail addresses to the correct, separate file locations (e-mail boxes), but I think it can be done once you get the hang of the settings for the program. Another function I find annoying is that I have to click on an e-mail before it comes up. I can't just scroll through to it. All in all, this is the closest Open Source alternative I've been able to find for Foxmail. It is much bigger than Foxmail, but it contains some extra features like optional access to Usenet newsgroups and the ability to convert mail to and from formats like those used by Thunderbird. You can even use your favorite editor program when creating/editing e-mail messages.
Another e-mail client that I've used in the past on various Freenets is pine. The Open Source version is available as alpine and it compiles and builds well and supports a variety of platforms. The user interface isn't quite as fancy as a full-fledged GUI. It's written in curses. I've read that it also provides Usenet newsgroup access. If it's not too hard too configure, it should make a fine e-mail client option.
If you want to read Usenet Newsgroups, you'll need a reader. As I mentioned, some of the e-mail programs come with this functionality. However, their options are usually not as advanced as those of a stand-alone newsreader. One stand-alone cross-platform option is tin. There's a port using Cygwin available for Windows and it runs on Linux, FreeBSD and Unix variants. Similar to pine for e-mail, tin was one newsreader option that various Freenets offered. Like alpine (pine), it's fairly easy to use. It also has a curses interface. If your e-mail client isn't what you want in a newgroup reader or you don't want to mix your e-mails and your newsgroups, tin is certainly worth checking out.
Many newer, high powered browsers offer built in or add on RSS reader options. For instance, Firefox has the Sage add on. However, as I noted, low resource systems may have trouble running high powered browsers. So I went looking for a stand alone, low resource solution. I checked for command line and curses based RSS reader tools. Many tools were built in interpreted languages and I wanted to avoid them due to speed issues. I found some curses RSS readers, but many were no longer actively supported. I was able to get nrss to compile and build on DeLi Linux. It needs wget and curl, which most Linux distributions probably already have. The program uses ncurses and is not actively developed but is still somewhat supported by its developer. It can handle Atom 1.0 as well as RSS 2.0 formats. It builds on Linux, but wasn't designed for other systems like Windows. Some other curses options are newsbeuter and snownews.
Trillian was a great solution for a chat program on Windows. It handled not only irc, but different types of chat options like MSN and AIM. It was nice having all the protocol options in one program, especially when your friends insist on using a particular protocol and won't settle for just basic irc. I started looking for Open Source alternatives to Trillian and did not find as many options as I would have liked, especially for low resource systems. I checked portable apps and found two chat clients, Miranda and Pidgin. Of the two, Pidgin is cross-platform, but it takes a lot of hard drive space, crashes immediately and will not run at all on DeLi Linux and always crashes and will not run certain protocols even on my Windows machine. I've found Miranda far more stable on Windows and it does everything I need in a chat program. It's currently what I use for chat on Windows. I haven't found a version of it for Linux though. Some of the smaller Linux distributions use ayttm for the same purpose. Ayttm also has a Windows port which makes it an interesting cross-platform option. However, the Windows port at Sourceforge doesn't appear to have been updated in a while. If anyone has other Open Source chat clients they'd like to recommend, please share the information.
If you can't find an all in one program that suits your needs, you can look at programs that offer less protocols, but are more efficient on low resource systems. The same developers that created dmenu and dwm have a minimalist irc client called irc it (ii). They've also created another minimalist irc client called sic. One can also use XChat for irc on POSIX and Windows machines. Another program for low resource systems is naim. It uses a ncurses interface and provides AIM, IRC and a few other chat options. Programs like weechat and centerim may prove useful. Another option that might be worth checking out is Irssi which works on Linux and FreeBSD, but has a more limited version for Windows too. It can be used for IRC connections or in conjunction with another program, BitlBee. BitlBee is an application that reaches other chat networks through an IRC client.
I wanted an option to replace the old Windows (3.1) calendar program on Linux and FreeBSD. I like the way it showed the month, any special activities for a day and set alarms to remind me of them. I tried xcalendar that works with X Windows. It was very similar to the calendar program, but I found it hard to tell if anything special was slated for a day without clicking on the day. If you'd like something similar but with more features, check out plan. It's another X Windows program. It can also be used in a server mode to keep track of calendar events for multiple users. One more option for alerting of special events is the command line program remind. I tried fltdj which is a program called The Daily Journal and uses fltk for a screen library. Looks very promising as a calendar and reminder program. It works well on Linux and FreeBSD. It can also be built on Windows using msys and runs fine as long as you set an environment variable for it. I also thought gpe-calendar looked worth checking out.
I tried lcal and pcal. They're command line programs that output to Postscript. These make nice printed calendars. The documentation with pcal mentions some other features, like adding personal notes to the calendar or even setting alarms with cron and some scripts. This might just be the alternative that I'm looking for to use in place of my old calendar program. Both also compile and build on Windows and DOS.
There is a curses based program called calcurse that provides a calendar and place for notes and todo list. It outputs to a format useable by pcal.
We've switched to Google Mail at work and it supports icalendar format. Searching for a tool that could handle that, I came across Sunbird portable (the portableapps version of Sunbird). It was developed by the people who brought you Firefox and Thunderbird. I'm told most people prefer their calendars integrated with their e-mail system, so Sunbird has been replaced and is no longer actively supported. However, a stand-alone, portable (offline) program is just what I wanted to work in conjunction with Google Mail. As long as it's Open Source, I can always support any changes I need to make for myself if necessary.
If you need a todo list program, hyperlist builds on POSIX systems. It also lets you add date related information to your list. It uses the SDL libraries. There's a Windows executable if you want to try it out there as well.
Some interesting programs in this category which compile satisfactorily on a low resource Linux system such as DeLi Linux are xearth and sunclock 1.5. I'm still checking if there are any other interesting astronomy programs that don't require a lot of libraries to build. The command line program hebcal builds fine on Linux and can give you time of sunset in your area. The program starplot 0.95.3 lets you view locations of stars relative to each other and uses a GTK+ 2 interface. I haven't tried using it on Windows, but it does compile on Windows as well as POSIX systems if you apply a few patches. I also found gstar which uses a command line program starchart and puts a GTK+ 1 front end on it. You can use just the command line piece of gstar or there's a later version of starchart available at Sourceforge. There is also a way to get Gstar to build against GTK+ 2. Starchart is a nice little program that shows star charts in Postscript. Haven't figured out how to tell what constellations are currently in my evening sky from any of these yet though. If anyone knows of a way to do that with these or other light programs, please let me know. I've also recently found an astronomy application designed for a hand-held device. It uses SDL, so I was able to get it to port to Windows without too much trouble and my guess is that it should compile without any serious issues on POSIX systems. It's called nightsky. It looks like a very promising application. You need to move the cursor directly over a constellation or star in order to see the names. It would be really interesting to see if it could be used in conjunction with starchart. One should be able to locate a constellation of interest with nightsky and view constellation related information and any planets in the vicinity with starchart.
The two big Open Source astronomy programs are Stellarium and Celestia. If you'd like to try some lighter weight alternatives to Celestia that use OpenGL (Mesa libraries), check out openuniverse and ssystem. They're no longer maintained, but they don't need all the resources Celestia does.
One other program that looks nice on the desktop and that compiles and runs fine on FreeBSD, Linux and Cygwin is xfireworks. The xfireworks program really isn't chart related, it's not even useful, but it's definitely one of those programs that make it worthwhile turning the laptop on and running FreeBSD on it. It's just nice to look at.
Speaking of fishy programs, I got wmfishtime to build and work. It shows a clock and some fish and is a dockable app. There are some applications that display (or can be set to hide and display) in the Fluxbox or Openbox slit (along any side of the desktop). Doesn't look like it's easy to turn these dockable apps off once they're running (unless you use a program like lxtask), and some of them just don't work on DeLi Linux with uclibc or build on some systems because the code is incompatible or out-of-date, but a few of them, like this one, are pretty nice. There are some patches to wmfishtime at the Debian site that switch it from GTK+ 1 to GTK+2 libraries and give a digital clock option.
I finally found a nice program that's designed specifically to be a clock and even includes alarm features. That would be dclock. It just needs the X Windows libraries to build. Now I can't help wondering if there's an Open Source alternative to the Windows 3.1 clock program that would work well on newer Windows machines. I did get dclock working under Cygwin. I also have several patches to convert from K&R C to ANSI C and deal with confusingly named files that only differ by case.
If you'd like to contact me with any suggestions for applications or settings or any fixes for information on this page or my other Open Source related pages or any other tips on working with Open Source, I'd be interested in hearing from you. I'm especially interested in hearing what console and lightweight applications you may have found that can be used as alternatives to GTK+ or heavier GUI based software. If you have questions of your own and are using Linux or a BSD system, I do recommend you check any forums there may be for the distribution you're running. It's been very useful for me so far to do so. Also, check your favorite search engines if you need more help. Please do share any suggestions for light or useful applications if you have any. I'll be updating these pages to share with interested readers as I learn more information.
To the main page.