One thing I've wanted for a while now is a lightweight collection of desktop applications. Since my preference is for cross-platform software, it would be nice to work with applications that don't lock you into a particular system. So, you could use them with X or Wayland or nano-x or even in framebuffer mode. Operating systems like XFDOS showed you can put together a desktop collection that not only works on Linux or Windows but would even port to platforms like FreeDOS.

I'm aware the average post on desktop software considers XFCE or LXQT lightweight and most people prefer the larger GUIs such as Qt or GTK+. I'd like to see an alternative that uses more minimal GUIs. TinyCore Linux does a nice job of using FLTK programs. EDE (Equinox Desktop Environment) was an interesting concept but their separate theme library meant FLTK programs needed to be forked to support their themes. There are few enough FLTK programs out there, so wanting forks of them just made it harder to find programs for that desktop.

I've looked at various lightweight GUIs and graphics libraries and the best candidates seem to be FLTK, SDL and Raylib. nuklear seems like it would be a great option, but there aren't a lot of useful desktop style programs written for it. Also, noticed some annoying screen effects on one of the platforms it supported using scrolling. Fox Toolkit was popular at one point. However, the API diverged and some programs were built for one version while others worked on a different one. That decreased what was usable. I feel FLTK is better supported and has a more stable API than Fox Toolkit. Some systems use older versions of GTK such as GTK 1.2 or GTK 2. Amigo Linux had a great collection of working GTK 1.2 applications. The main drawback to GTK 1.2 is lack of internationalization support. I'd be very curious to hear if other projects are still trying to keep these options alive and if so, what applications are working with them.

FLTK is already a cross-platform library. With the nano-x backend, it can work on any platform nano-x can support. With the switch to 1.4, FLTK made it easier to work on backend support. I've been attempting to get a SDL2 backend working with FLTK. That would allow it to work anywhere SDL2 can including in framebuffer mode. SDL is highly portable. Unfortunately, applications for it might be for 1.2.x or 2 or now even 3. I'm trying to update applications so they'll work on later versions of SDL without losing the flexibility of working on older ones as well. SDL is a graphics library. It's hard to find good support for GUI applications using it. I've tried several GUI libraries built on SDL. None of them are what I'm looking for plus very few have any desktop style applications built with them. PDCurses has a SDL2 backend. It had a SDL backend and I worked on adding SDL2 and SDL_ttf support. So, if you don't mind the look of text user inteface style programs, you can run ncurses/pdcurses applications using SDL. Raylib with RayGUI is a lot newer alternative than the others. It's used more for games than desktop applications. However, it has a lot of potential.

With portability goals and minimal GUI libraries in mind, let's talk about what types of applications you can find on a system like this. First, there are enough command line applications using ncurses that you could probably do most things you want to do on a desktop. However, it would be nice to have more than just would you can also run in console. With SDL, there's support for reader software like sdlbook and bard. The sdlbook program uses the mupdf library and djvulibre as backends and can support any format those libraries do. The bard program is a minimal ebook reader with text-to-speech support using flite. I have been working on a fork of the last GPL'd version of mupdf. While it does not offer ebook or HTML support, it does offer a stable API. I've added cbr support and modified cbz support to use SumatraPDF's LGL'd unarr library. I added SVG support with nanosvg. I'm working on adding support for other graphics such as GIF using stb. So with these programs, there's good coverage for reader programs.

While mupdf can be used to view graphics, I also like picaxo which can support any image format that SDL_image can handle including SVG. However, it's nice to be able to do more than view graphics in a desktop environement. The grafx2 and lodepaint seem like the best options for this. Tuxpaint could be another alternative. Personally, I really like I.mage. While there was some work done to add SDL support to the GUI, it was never completed. I don't think SDL has enough GUI support to replace the Win32 or GTK backends but FLTK might. I'd love to see some interest in trying to get I.mage working with FLTK. There are other graphics editors out there that work in lightweight environments but those are the ones I found most promising.

Audio is harder to find support for. flsox is a cute lightweight, FLTK based application. However, it would be nice to have a decent audio editor. I have several command line wave utilities and one used conio to draw the waveform. I added support to use SDL in place of conio on systems where conio wasn't readily available. Fox Toolkit had a nice audio editor called Rezound, but that would require using yet another GUI library. So, the best option I've been able to find to date is apcstudio. It uses FLTK. I found the original rather unstable but I switched around some of the C++ types to ones that were more readily available cross-platform and it seems more stable now. The one drawback I noticed is that it only displays one waveform which works fine for mono formats but not for waveforms with right and left channels. Was wondering if a command line tool could be used to split the waveform into right and left channel waveforms and then each could be edited separately. Then, a command line tool could reintegrate them. It would be nice to try to get apcstudio debugged and see if people think there are any features missing that might be easy to add. Audio playback is a little easier to support. Programs like Timidity++ and Milkytracker are nice options to have. Multimedia players are also easier to support on lightweight desktops. Some have versions that run in framebuffer. I happen to really like the flvlc and flxine front ends to popular multimedia libraries.

Other useful desktop applications usually include a calculator like flcalc and may include a calendar or pim like fltdj. xdiskusage is a nice FLTK based GUI front end for du. diffh gives a graphical view of diff that's viewable in many browsers. I typically don't use file managers but I prefer the two pane variety if I use one. The SDL based fm program offers a nice, cross-platform portable file manager.

The biggest gap is office suite style software such as a word processor and spreadsheet. While there are some ncurses based spreadsheets, the FLTK based sprsht program makes a nice alternative to console applications. There are some FLTK based editors and even a few SDL ones. I personally prefer using a programming editor over a word processor. Many programming editors support custom extensions. I use SciTE and with lua scripting and it's ability to run applications, I'm able to incorporate hunspell for spell checking. Unfortunately, SciTE requires a heavyweight GUI. It could be built with an older version of GTK but that would require adding another GUI to support. I've looked for options that also use the scintilla editing widget. The best alternative I could find was Fxite (which would require Fox Toolkit) or textadept which can be built with pdcurses. The fldev program is a lightweight FLTK based programming editor. It's no replacement for SciTE but it was able to work as a GUI front end to gdb at one point. It would be nice to restore that functionality in a cross-platform compatible way. The wordgrinder program is console based but seems to be the most word processor like of various text user interface options. If one wanted to incorporate the TV libraries, there are even more console based text editor applications that could be potential options. I still haven't come up with a clear solution. Would be interested to hear what others would think could make a suitable lightweight GUI editor/word processor.

Communications programs are also a key area and this also a huge gap for lightweight GUI alternatives. There are mail clients like FLTK based FlMail and hermail. I happen to be a big fan of Slypheed. To get it working in a more lightweight environment would involve using an older version of GTK. An option that has a lot of potential is to get the FLTK based Postoffice program working again. Maybe a command line or library based (possibly curl) implementation of SMTP and POP3 could be added to the Postoffice program. I have been able to get it to build on later versions of FLTK and worked on trying to make the interface more stable. The main thing missing at this point is to make the mail protocols more up-to-date and cross-platform. There are several very popular ncurses based email clients as well. Browser options include Netrider, Fifth, D+ and Dillo. While none of these is a perfect solution, they do give some minimal browsing support. An SDL based Gemini browser could also make a useful option. There is a very nice FLTK based RSS reader. However, it's just a reader and requires another program like curl to download the RSS feeds and make them available. Putty has command line options for ssh and sftp.

Have I forgotten anything? What else would a good lightweight desktop require? Is anyone besides me interested in a lightweight desktop like this? Feel free to continue this discussion on Mastodon: https://fosstodon.org/@lmemsm I'd love to get a project going to provide an ultra lightweight, highly portable desktop alternative that's not tied down to any particular display server, windowing systems or operating system. If anyone wants to test out some of these applications or brainstorm how to improve them, please let me know.
I covered SDL based applications. Now, I'd like to cover FLTK based applications for desktops and/or productivity.

While there isn't as much FLTK application development going on as I would like, there are some projects that specialize in using FLTK. TinyCore Linux is probably the most well-known Linux project that uses several FLTK applications. Nanolinux is based on TinyCore but uses nano-x as a lightweight alternative to X Windows. The developer of NanoLinux uses mainly FLTK applications and has modified and updated several FLTK applications to give them new life. He's also created some of his own where good alternatives did not exist. The Equinox Desktop Environment also uses FLTK, but it typically requires another EDE specific library along with FLTK support. Also, EDE users don't always look for FLTK applications for their desktops. Some will typically use anything they consider lightweight (whether it really is lightweight or not). A few mobile devices use FLTK as their main GUI. Users of those systems have developed some interesting applications for their devices.

There are several versions of FLTK. Applications may work with one version and not another. I've spent a lot of time searching for applications and porting applications to the latest version. I did try to update the FLTK software links list at the official FLTK web site with information on what worked with the latest version of FLTK and with information on newer FLTK applications, but was unable to add some of the newer, more interesting FLTK applications out there. So, this is my definitive list at this point in time of the best FLTK applications available. For more information on FLTK and applications, see also http://www.distasis.com/cpp/scrlib.htm#fltk

I'm sure I haven't covered everything and as mentioned, check NanoLinux and Tiny Core Linux for more FLTK based applications. I'm always looking for new, portable, lightweight FLTK based applications. If you know of something I may have missed or you're working on a new FLTK based project, please contact me.

Utilities

xdiskusage
Shows disk usage. Works on POSIX systems with du command. I have patches to port this to Windows.
http://xdiskusage.sourceforge.net/

flcalc
Calculator. The FLTK web site link includes information on some of my patches to get it to build successfully as well as link to the original source code.
https://www.fltk.org/links.php?V47+Qflcalc

fldiff
Graphical diff program.
https://www.fltk.org/links.php?V227+Qfldiff

xRecurseDiff
Traverse directories and find file differences. Some of it was based on fldiff.
https://sourceforge.net/projects/xrecursediff/

fpwdman
Password manager. I ported this to work with the latest versions of FLTK and tinyxml2. It's interesting, but at this point, I'd prefer a Keepass compatible password manager. I'm looking into chkpass as a lightweight alternative for password management.
https://sourceforge.net/projects/fpwdman/

Communications

prozgui for prozilla
Fast file downloader. I have patches for building and to port this to Windows. I use a version based on GNU GPLv2 development instead of the GNU GPLv3 development.
https://launchpad.net/prozgui

flchat
IRC client. Based on MegaIRC, but with a lot of cleanup. I have patches to add gettext/libintl support. This is the best option for IRC using FLTK that I've found to date.
https://sourceforge.net/projects/nanolinux/

kashyyyk
This has good potential as a threaded IRC client. It can handle multiple connections. I could get it to build on Windows either with patches or a build of MinGW with POSIX instead of Windows native threading support. It needs some work on storing IRC connections. Doesn't seem to remember any connections once you leave the application.
https://sourceforge.net/projects/kashyyyk/?source=directory

Browsers

There are two webkit based browsers for FLTK. That's great news for FLTK applications users. What's not so great is that they don't port well to non-POSIX systems. If you want the most lightweight webkit based browser (and webkit browsers are not by nature lightweight), I'd go with either of these options instead of the many other webkit ports out there.

Netrider
I was able to get the original version of netrider to port to Windows and a Windows version of it is available at Sourceforge. However, when I upgraded the version of my MinGW compiler, I was no longer able to build netrider. Seems the webkit developers took some shortcuts in the older code that really weren't up to C++ standards. Netrider upgraded to a later version of webkit (which fixed the compiler issue), but the newer version was never ported to Windows.
https://sourceforge.net/projects/netrider/

Fifth
This was never ported to Windows although it might be easier to port that the latest version of Netrider. It uses makefiles created by the developer instead of cmake.
http://fifth-browser.sourceforge.net/

DPlus
When people talk about FLTK based web browsers, Dillo always comes up. However, Dillo is the opposite of what I think of when I think about portable code. One developer decided to fork Dillo and make it more structured and easier to port. He's really done a wonderful job on cleaning up the code. I'd recommend this browser over Dillo if you're interested in doing anything with the source code or need a lightweight HTML viewer for FLTK. DPlus is also the lightest browser I could find that could display output from diffh properly. Most console browsers like lynx had trouble rendering the color differences in the output.
https://sourceforge.net/projects/dplus-browser/

DPlusUI
While this is meant as a utility rather than a web browser, I used DPlus as the starting point for my HTML/CSS based dialog replacement.
http://www.distasis.com/cpp/lmbld.htm#lmbldui

Mail clients

flmail
The developer of Nanolinux wrote a nice, basic, stable e-mail client. (He also reused part of my Open Source POP3 e-mail code.)
https://sourceforge.net/projects/nanolinux/

Postoffice
This has a lot of potential. It took a long while to get it to build with the latest version of FLTK and it's still kind of buggy. I also needed to update helper libraries fl_toggletree and fleditor to work with the latest FLTK. The interface is a lot of like sylpheed and foxmail. I would love to see some new development on this and would be happy to help update it.
ftp://linuxmafia.com/faq/Mail/muas.html

hermail
There was a nice, very basic, stable e-mail client at Sourceforge. Doesn't appear to be available from there any longer.

RSS reader
Gautier's RSS reader
This one has a lot of potential. It has an attractive user interface that's easy to work with. However, it does have the ability to sort RSS posts at this point at time. It needs to be used in conjunction with a script and tools like curl to download the RSS feeds. It's basically just a reader. It uses SQLLite to store the RSS data so it can potentially provide fast access to RSS posts. I'd love to see some further development done on this project.
https://michaelgautiertechnology.wordpress.com/2015/10/09/gautier-rss-app-technology/

AV

flvlc
Cross-platform VLC based media player.
https://sourceforge.net/projects/flvlc/

flxine
Unfortunately, this only works on POSIX systems so far. I have been able to build it on Cygwin as well as BSD and several Linux systems. This might be portable to more platforms using nano-x (and possibly SDL as the backend for nano-x), but I did not get very far in investigating this option. It is my favorite xine front end and is more lightweight than many of the other xine front end options. It provides a variety of features including a nice visualization component for use while playing music.
https://www.fltk.org/links.php?V199+Qflxine

Audio

flrec
Simple Audio recorder and player based on Sox. I have done some work to port this one to Windows.
http://matteolucarelli.altervista.org/flrec/index_en.htm

Fl_MIDIKeyboard
Midi keyboard.
https://github.com/ncassetta/Fl_MIDIKeyboard

PaulStretch
Audio effects program to stretch sounds.
http://hypermammut.sourceforge.net/paulstretch/

APCStudio
After more than one try to get this to build with the latest version of FLTK, I finally managed to get this working. It's a nice, lightweight audio editor. It doesn't display multiple tracks like Audacity. It does not have good support for playing or recording wave files. It's basically just a wave file editor. Was considering using libsox or another Open Source sound library to add support for playing wave files.
https://www.fltk.org/links.php?V204+Qapcstudio

There is a fork of FLTK called NTK. It isn't as portable as FLTK and requires POSIX/X Windows support. A suite of audio applications were created with it.

Graphics

Rendera
This is a great, lightweight graphics editor. I really like this one.
https://github.com/Mortis69/rendera
https://sourceforge.net/projects/rendera/

PhotoColoring
Specialized graphics editor for coloring old photos.
https://sourceforge.net/projects/photocoloring/

Other graphics and drawing options include Antipaint and Cinepaint. Antipaint was updated to work with the lastest version of FLTK and to improve portability by the developer of Nanolinux. You'll find it at the Nanolinux web site. At one point Cinepaint decided to port their project from GTK to FLTK. You'll find some older versions with some FLTK support and utilities. However, the FLTK port is not actively developed.

Productivity

fltdj
The Daily Journal is a Personal Information Manager (PIM). It has several nice features including the ability to set alarms to remind you of appointments. I use one of the older versions (0.7) which ports well to newer versions of FLTK and, per my recommendation, so does NanoLinux.
https://www.fltk.org/links.php?V386+Qfltdj

tux_todo
Simple todo list. Haven't used it in a while, but if you're looking for a todo list program, it's an option.
https://www.fltk.org/links.php?V76+Qtux_todo

PDF/Ebook Readers

SpRead
A functional, basic PDF viewer and archived image viewer. I really like this one. It requires a compiler with later C++ support to build. Needs minimal dependencies, mainly libarchive and poppler. While poppler isn't as fast as mupdf at rendering, this still works pretty fast.
https://github.com/muranoya/SpRead

flviewer
Image viewer with plugin support for mupdf and poppler.
https://github.com/madrat-/flviewer

There's also flaxpdf which is optimized for efficiency and uses mupdf. However, it's not at all portable to non-POSIX systems.

I tried BDReader as well but there are a lot of dependencies involved in building this.
https://sourceforge.net/projects/bdreader/

File managers

I don't use any of these and personally prefer the SDL based file manager mentioned earlier. However, they're nice lightweight GUI file managers. I'm sure there are a few others not mentioned below as well.

mfm
http://sg67.altervista.org/mfm/

fluff
https://sites.google.com/site/lockmoorecoding/downloads/fluff

Other POSIX only FLTK applications

flsynclient
GUI front end for synaptics touchpad controls.
http://matteolucarelli.altervista.org/flsynclient/index_en.htm

alsamixergui
FLTK ALSA Mixer front end.
https://packages.debian.org/jessie/alsamixergui

Editors

I've yet to find a FLTK based editor I really like. For now, I'm still using SciTE, Fxite and nano.

I would love to find a Scintilla based FLTK editor. The closest I've found is https://github.com/cyantreeguo/Fl_Scintilla

There are many FLTK editor controls out there, including the one used by Postoffice.

Nanolinux offers flwriter.

The most interesting editor option I've found so far is fldev. There's a link to the original at https://www.fltk.org/links.php?V235+Qfldev and further development by the developer of NanoLinux at https://sourceforge.net/projects/fldev/ The main drawback is that it only opens one file at a time. The original author began to add support to use it as a debugger in conjunction with gdb. I'd love to get that support working properly and in a cross-platform manner and have been experimenting with it as time allows.

flabc is an editor specifically designed for ABC notation, but it appears to be a stable, well-written editor and may be useful for other editing purposes.
While libSDL is typically used for games, there are some applications that can be used to replace common desktop and productivity applications. I'll list the ones I've found here. If you have other alternatives, please let me know.

I've been working on simplifying the applications I typically use on Linux so that they can run in framebuffer mode using DirectFB or Nano-x instead or requiring X Windows. I'm always looking for portable applications, so I can run them on any system I'm using (at home or at work) whether it's Linux or FreeBSD or Windows or something else. I'd love to hear from others with similar goals.

The list just covers libSDL applications. They all built with SDL 1.2.x and I'm creating or locating ports to SDL 2.x as well. I haven't listed SDL based applications that use PDCurses or OpenGL/TinyGL. There are enough of those to warrant their own lists. More information on SDL applications and other screen libraries is available at: http://www.distasis.com/cpp/scrlib.htm#sdl I've posted some of the patches/build scripts for my SDL 2.x ports and will add more over time. You can find them from the archive link at: http://www.distasis.com/cpp/lmbld.htm

URLs are accurate as of when this was posted. However, they can change over time. You can use a search engine or archive.org wayback tool to find pages that have been moved or backups of older versions of pages.

Font viewers:

sfontview
Good for picking what font you want to work with quickly.
http://distro.ibiblio.org/puppylinux/sources/s/

sdl_unifontview
Let's you see all the characters in the font, so you can check if there's support for specific characters needed for internationalization.
https://github.com/mkiever/sdl_unifontview

Epub reader:

Bard
Includes text to speech capabilities using Festival Lite.
http://festvox.org/bard

PDF viewer:

SDLBook
I've been trying to put together a SDL based PDF viewer based on mupdf for a while now. Looks like someone beat me to it. SDLBook is a lightweight reader that can handle any formats mupdf and djvulibre libraries can.
https://github.com/rofl0r/SDLBook
https://codeberg.org/rofl0r/SDLBook

I assume SDLBook is designed for the latest version of mupdf. I backported it to mupdf 1.1 which was the last GNU GPL licensed version of mupdf. The latest versions of mupdf have epub support. While the 1.1 version does not include epub support, I've added cbr support using libunarr from sumatrapdf. The library handles cbr and cbz format. I also use nanosvg for SVG graphics.

Gemini browser:

Nemini
There are a few SDL based Gemini viewers, but I really like this one. It's very portable and fairly easy to build from source.
https://github.com/neonmoe/nemini

There are also SDL based web browsers such as a fork of links that uses SDL as a back end.

Word Processors:

There are a series of SDL based text editors that use a core of common code with some variations in order to port to various handheld devices. Tried building and running, but it's hard to work with since it expects an on screen keyboard rather than a real physical keyboard.
http://texteditors.org/cgi-bin/wiki.pl?search=GameConsoleFamily

Left
Haven't tried it yet, but this looks promising.
https://git.sr.ht/~rabbits/left

File Manager:

fm
Completely SDL based, two pane file manager.
https://www.raspberrypi.org/forums/viewtopic.php?f=9&t=1616

Graphics:

picaxo
Lightweight, fast graphics viewer.
http://gigi.nullneuron.net/comp/picaxo/

perigee
Slideshow viewer.
http://jstanley.pingerthinger.com/slideshow.html

grafx2
Graphics editor.
http://pulkomandy.tk/projects/GrafX2

lodepaint
Painting program and image editor.
https://sourceforge.net/projects/lodepaint/

sdl_svg
Older SVG library. Includes a simple SVG viewer.
http://www.linuxmotors.com/SDL_svg/

nanosvg
Supports SVG rendering and is not tied to a particular screen library. I built a simple SDL SVG viewer with it. If you're looking for SVG support for SDL, this is the best option I've found to date. (Looks like other SDL developers agree since it's been added to SDL2_image.)
https://github.com/memononen/nanosvg

photocrop
http://burningsmell.org/photocrop/

xtopng
http://burningsmell.org/xtopng/

fische
http://26elf.at/category/fische/

Tuxpaint and lunapaint are also SDL options for graphics editors, but I'm not currently using either of them.

Audio:

Milkytracker
Mod player. Can also create music.
http://milkytracker.titandemo.org/

wavetool
The project has a simple, lightweight wave file viewer. I added support so that it works with SDL in place of some of the other graphics options it used.
http://tph.tuwien.ac.at/~oemer/wavetools.html

sdl-widgets
Sample audio applications.
http://members.chello.nl/w.boeke/SDL-widgets/

AV players:

flxplay
https://www.libsdl.org/projects/flxplay/

theoraplay
http://hg.icculus.org/icculus/theoraplay/

webm-player
Unfortunately no one's added sound support yet.
https://github.com/doublec/webm-player

playvpx
http://www.philhassey.com/blog/2012/02/02/how-to-create-and-play-ivf-vp8-webm-libvpx-video-in-opengl/

GPS:

sdlmap
https://github.com/jhawthorn/sdlmap

PSP-Maps
https://github.com/deeice/PSP-Maps

Productivity:

Hyperlist
https://web.archive.org/web/20120630103356/http://www.zahniser.net/software/hyperlist

Astronomy:

nightsky
https://sourceforge.net/projects/nightsky/

Emulators:

DOSBox
http://www.dosbox.com/

8086tiny
http://8086tiny.freeforums.net/
http://jaybertsoftware.weebly.com/8086-tiny-plus.html

XRoar
http://www.6809.org.uk/xroar/

March 2026

S M T W T F S
1234567
891011121314
15161718192021
22232425262728
29 3031    

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 30th, 2026 02:03 pm
Powered by Dreamwidth Studios