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.

The average post on desktop software typically considers XFCE or LXQT lightweight and most people often 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 in my opinion are 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. I also noticed some annoying screen effects on one of the platforms it supported when I was using the scroll bars. Fox Toolkit was popular at one point. However, the API wasn't stable and some programs were built for one version while others worked on a different one. That decreased the total number of programs that were 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 these GUI toolkits.

FLTK is already a cross-platform library. With the nano-x backend, it can work on any platform nano-x can support. With the update to version 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 target 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 exactly 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 interface style programs, you can run ncurses/PDCurses compatible applications using SDL and PDCurses.

Raylib with RayGUI is a 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 that would work 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 options than just the ones you could also currently run in console mode.

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 experimenting with 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 using 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 applications.

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. Another lightweight viewer is Perigee slideshow which can let you see several graphics in a sequence using slideshow transitions. While it already has a Win32 front end, I created a cross-platform GUI front end for it using FLTK. It's nice to be able to do more than view graphics in a desktop environment. The grafx2 and lodepaint programs seem like great options for editing graphics. Tuxpaint could be another alternative. Personally, I really like I.mage. While there was some work done to add SDL support to the GUI library I.mage uses, it was never completed. I don't think SDL alone is enough to replace the Win32 or GTK backends but FLTK might be able to do the job. I'd love to see some interest in trying to get I.mage working with FLTK. While there are other graphics editors out there that work in lightweight environments, those are the ones I found most promising.

Audio is harder to find support for. The flsox program is a cute, lightweight, FLTK based application. It can play and record audio, but it would be nice to have a decent audio editor. I have several command line wave utilities I've been experimenting with. 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 source code rather unstable on many platforms 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. I 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 again afterwards. 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. It's easier to find audio playback software than audio editing software. Programs like Timidity++ and Milkytracker are nice options to have. Multimedia players are also easy to find for 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 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 do 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 with lua scripting and its ability to execute external applications. I've been able to incorporate hunspell for spell checking into customizable programming editors such as SciTE. Unfortunately, SciTE requires a heavyweight GUI. It could be built with an older version of GTK but that would require adding another GUI to my list of desktop GUI libraries 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 another key area. There is also a huge gap for lightweight GUI alternatives in this space. There are mail clients like FLTK based FlMail and hermail. I happen to be a big fan of Sylpheed. 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 portable. 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. A 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.

LM Ports

May. 19th, 2020 09:00 am
I've mentioned my build system before. I've been trying to find a good way to share the programs I've compiled for Windows, Linux, AIX, Android, etc. However, I still haven't found a good method to do so. Rather than continuing to wait until I find the perfect solution, I've decided to try a temporary solution that's very basic.

I've already been uploading the build scripts to the archive link at my LM Ports page ( http://www.distasis.com/cpp/lmports.htm ). I'm going to start adding some executables and libraries for Windows. I don't have an automated installation program at this point, so some manual work needs to be done to get programs to run. In order to run a program, you will need all the dependencies. So, you need to download the tarball (has txz extension) with the program you're interested in plus the tarballs with the dependency libraries aka dlls. The bldepend.txt file in the build script has a list of what dependencies are needed to build a program or library. The depends.txt file in the tarball package has a list of all the dlls needed for the program to run. Pick a directory on your system. ( I use \mingw\msys\ ) Unpack the required tarballs to the same directory (holding the executable program and libraries/dlls). ( This puts the programs and dlls in \mingw\msys\opt\bin ) Programs like 7zip, 7za, gzip, bsdtar can be used to unpack tarballs. You can run them from the command line or the msys bash shell. If it's a program with a GUI, you can also create a shortcut or run from the file explorer.

I use some tricks to make programs more portable including a couple of specialized libraries and some patches so that the programs don't have to run from the directory they're built for. I don't have those libraries uploaded and ready to share yet. For now, I'm using the standard libintl instead of my modified version. So, internationalization probably won't work well until I can switch to my libraries.

While I'm not interested in changing package managers/build systems, I'm open to suggestions on better/easier ways to make the programs available/accessible to people. The plan was to eventually put together an ISO with several programs and a GUI front-end plus more documentation on how the programs work, but I'm not far enough along in the project to do so yet.

It's a lot of work to try to port programs and keep the build scripts up-to-date. I've just been doing this for myself. So, don't expect any official support on the project. However, I would like to share some of the results with others in the chance that it might be useful to someone besides myself now. If you'd like to encourage the project or get more involved, you're welcome to do so from the CppDesign mailing list ( http://www.distasis.com/connect.htm ). I have Windows builds for several command line utilities, SDL, FLTK and pdcurses based programs and even an X Windows port.
Let's talk about Free and Open Source games. I thought I covered some of these when I discussed programs that work with various GUIs such as SDL and FLTK. However, looks like I left many out of my lists. So, here are some games I've found interesting. They're cross-platform and don't require a ton of resources to build and run. So, they should work fine on low resource or older machines as well as the newer ones. I tend to prefer educational games, but there should still be a good mix of different types of games in the list. If you have other lightweight cross-platform favorites, I would be interested to hear about them. You're welcome to discuss the topic of C/C++ games further on the CPPDesign mailing list ( https://groups.yahoo.com/neo/groups/CppDesign/info ).

I have patches for several of these to fix bugs such as memory leaks and to add support for later versions of libraries. Some of my patches are available online. If you're interested in others that I have not uploaded yet, you can let me know via the CppDesign mailing list.


FLTK BASED GAMES


Checkers and sudoku come with FLTK as examples.


fltkmm

Mastermind game. This is one of the more lightweight versions of Mastermind that I could find that's still intuitive to play. There are some ncurses/PDCurses alternatives and some SDL alternatives, but I haven't found any I like yet.

I have patches to make this work with the latest version of the FLTK library.

https://www.muquit.com/muquit/software/fltkmm/fltkmm.html


wordsearch

I've been able to port this to DOS using DJGPP. It also works fine on Windows, Linux and BSD.

https://web.archive.org/web/20120104214117/http://agtoys.sourceforge.net/wordsearch/wordsearch-2.2.html

qubix

While this ports without modifications to several platforms using Nano-X support for FLTK, I've been experimenting with patches and a port to use OpenGL/PicoGL as an alternative GUI. The program was originally written for a system that had Display Postscript support so it ports very easily to a graphics API like OpenGL.

https://www.fltk.org/links.php?V153+Q


npuzzle

http://jlehtinen.net/agenda/


SDL BASED GAMES


SDL is great toolkit for games and there are several nice games that work with it. Many of the games I've listed were written for SDL 1.2.x. I have patches in various states to get them working with version 2.x as well.


lpairs

http://lgames.sourceforge.net/LPairs/


scramble, hangman, concentration, torrent

These games are by the same author and use a similar back-end. I've made a library out of the shared code and am in the process of debugging ports to SDL 2.x.


pong

A copy of the original source and my SDL 2.x patches are available from the archive link at:
http://www.distasis.com/cpp/lmports.htm
Was also able to get this working for Android, but it requires a tablet with a keyboard.


drac

Basic solitaire card game.

I have patches for porting this to SDL 2.x as well. Was also able to get this working on Android systems.

https://github.com/ricoz/drac/


yahtzee

Works with SDL, ncurses/pdcurses or via command line. I have patches for using this with SDL 2.x.

https://www.muppetlabs.com/~breadbox/software/yahtzee.html


dual-n-back

This is a game, but it's also supposed to help improve memory.

https://sourceforge.net/projects/dualnbacklite/


tuxmath

A copy of the source and my SDL 2.x patches plus several memory and bug fixes and some modificiations for library updates are available from the archive link at:
http://www.distasis.com/cpp/lmports.htm
My patched version runs on Windows as well as Linux/BSD. The original source crashed on Windows.


Emilia pinball

I have patches porting this to SDL 2.x. I also improved Allegro support enough to build on DOS with DJGPP. I have an alternative build that works with SDL and picogl for systems that may not have easy access to an OpenGL library or mesa.

https://sourceforge.net/projects/pinball/


jooleem

I was looking for a bejeweled style game and this was the only one I found so far that I really liked.

https://sourceforge.net/projects/jooleem/


eremit

http://www.murga-linux.com/puppy/viewtopic.php?t=8724


anagramarama

https://github.com/Anagramarama/anagramarama


ReMined

https://sourceforge.net/projects/remined/


sopwith

http://sdl-sopwith.sourceforge.net/


PDCURSES/NCURSES/BSDCURSES GAMES


There should be several good games in this category but so far I just have one on my list. Please feel free to recommend your favorites in this category.


starlanes

This started out as a game written in BASIC with a few variants available. The version mentioned here is a variant that's been ported to C.

https://web.archive.org/web/20191230071944/http://www.barnsdle.demon.co.uk/game/starlanes.html


WIN32 GAMES


To make WIN32 applications work cross-platform, you'll need nano-x or winelib. The win32api is available with Open Source compilers such as MinGW on Windows sytems.


pyramid

This is a public domain solitaire-style card game. I'm currently working on converting this to run with SDL/OpenGL as the backend (instead of Win32) so I can more quickly and easily port it to other systems such as Android. It will make a nice test case for the GUI library I'm working on. If anyone's interested in status of the port, feel free to contact me about it.

http://jdmcox.com/
It's fun to discover new lightweight applications. They work well on newer computer systems as well as older or slower computers and low resource machines like many mobile devices. You can run more of them at once. If they're not well-known, they can actually be more secure sometimes (using the security through obscurity principle). I also personally prefer portable applications. That way, you can use the same programs on any operating system. You don't have to relearn new programs for each system you work with.

It can be quite a challenge to find new lightweight applications. I've read several threads on forums where users post their favorite lightweight applications. Many truly are not lightweight by standards that take into consideration memory usage, lines of code, compilation time and/or number of dependencies (libraries).

One way to find lightweight applications is to look for programs built with lightweight GUIs. I've seen a few comparisons of GUI performance. This one is particularly good because it tests the various GUIs and gives statistics:
https://www.pismotek.com/brainout/content/gui-toolkit-resources.php
I was rather surprised by the SDL2 results. Generally, the time it takes to build a GUI from source is one good indication of complexity. FLTK and SDL both build quickly from source compared to the other GUI frameworks mentioned. So, I was surprised that SDL2 scored so badly on the memory usage tests. I'd be curious to know if SDL 1.2.x (which many systems still use) would show a large improvement. Another surprise was how well Tcl/Tk did in the tests. I typically think interpreted languages have worse performance than compiled ones. It would be interesting to see some statistics on response times for similar applications created with these GUIs.

I often go through various source repositories such as Sourceforge, github, etc. looking for code written using specific user interfaces in order to find new and interesting applications. Standard search engines are another way to search for programs. The user interfaces I'm personally most interested in at this point are FLTK, pdcurses/ncurses, SDL and command line programs. These types of applications are typically more lightweight or designed to do one thing well. Know of any other lightweight GUIs or TUIs (text user interfaces)? Please share your recommendations and why you like them.

There are some nice blogs for finding and discussing minimalistic (or in some cases maximalistic) programs. Unfortunately, many are no longer very active. Some favorites are:
https://kmandla.wordpress.com/
https://inconsolation.wordpress.com/
https://web.archive.org/web/20160304000554/http://www.jaredandcoralee.com/CLIapps.html
http://macrofig.blogspot.com/

If you know of others, I'd love to hear about them.

One can also look for lightweight distributions and see what programs they have in their repositories or read their forums for more suggestions. Some of the interesting distributions to check are TinyCore Linux (uses several FLTK programs), Nanolinux (uses more interesting FLTK programs), Rogue Class Linux (uses several SDL programs), Puppy Linux, AntiX (Debian based), INX ( http://inx.maincontent.net/ ), Absolute Linux (Slackware based), 4MLinux ( https://sourceforge.net/projects/linux4m/ ), OLPC. Typically DSL and Puppy get mentioned when people list lightweight Open Source systems. There's been no active development on DSL in a long time and the forums are very quiet. I also found Puppy a little too resource intensive on one of my older machines. FreeBSD performed much better on that system. Puppy Linux has some interesting discussions in their forums.

Linux systems that work in framebuffer mode using DirectFB, nano-x and other alternatives also typically contain many interesting, unusual and lightweight applications. Nanolinux and Rogue Class Linux are in this category.

One can also look at operating systems and development projects that use more lightweight C libraries (such as uclibc and musl). Those projects typically gravitate to choosing lightweight applications, command line and console based programs and lightweight tools like Busybox and Toybox.

Alternative operating systems often offer interesting lightweight application choices. Syllable and Haiku often use SDL programs and other lightweight applications that are easier to port to those systems. Systems like Minix and ELKS are also interesting to investigate. Minix 3 uses a lot of the programs that BSD systems do, but earlier versions of Minix include some interesting alternatives. XFDOS includes many interesting FLTK applications. Plan 9 is interesting as well, but not many of the programs used on this system have been ported to other systems. Another good place to look for unusual applications is on mobile devices.
Here are some application lists from Syllable and Agenda:
https://sites.google.com/site/syllablesoftware/
http://agtoys.sourceforge.net/

I'd love to find more places to discuss lightweight applications. If you've written an article on the topic, please share it. If you know of a good blog, forum, mailing list or other resource, please let me know ( http://www.distasis.com/connect.htm ). If you'd like to discuss your favorite C/C++ applications further, you're welcome to check out the mailing list: https://groups.io/g/distasis I had a mailing list on Yahoo Groups called CppDesign, but Yahoo is no longer supporting mailing lists. So, the new list on Groups.io replaces my old lists on Yahoo Groups.
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.

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. 31st, 2026 02:55 am
Powered by Dreamwidth Studios