Best Lightweight Software/Applications for GNU/Linux
Firas Khalil Khana | 23/03/2017
In this article I’ll be listing some of the lightest applications the GNU/Linux world has to offer, some of which you may know and some not. These applications will not only be lightweight but will not sacrifice that much convenience for the performance and low memory footprint they offer.
I’ll start from ground up, and by that I mean from the bootloader to userspace.
LILO is the lightest bootloader currently available. It’s development was discontinued in Dec. 2015 , but it still works perfectly fine with ext4 filesystems. The configuration file is very straightforward and it requires updating so don’t you forget to update LILO once you’re done editing its configuration file.
It also has another limitation, that is you can’t use more than one initrd. So if you had your microcode updates in an initrd, they won’t work with LILO, but don’t worry DOTSLASHLINUX has guides on booting without an initrd and building microcode updates directly into the kernel.
On the other hand, EXTLINUX is another flavor of Syslinux the lightweight bootloader. It has a simple configuration, supports
ext2, ext3, ext4, BTRFS, NTFS, FAT12, FAT16, FAT32, XFS, UFS and FFS and it doesn’t require updating once you’re done with editing its configuration file, which is impressive once you start to count the number of times you forgot to update your GRUB or LILO config.
2- Kernel: Custom Kernel
DOTSLASHLINUX has an extensive series on how to configure your Linux kernel, kindly check the following
The Linux Kernel Configuration Guide Part 1 - Introduction.
3- initrd/initramfs : None
Yes, you can boot without an initrd/initramfs. Kindly check our article
Booting the Linux Kernel Without an initrd/initramfs.
“Hold your horses… What about the intel/amd microcode updates that boost my processor’s performance?” Well, I never said that you needed an initrd to use them. You can easily build them directly into the linux kernel. How you ask? Kindly follow our guide on
Building Intel CPU Microcode Updates Directly into the Linux Kernel.
After the boot process finished, it’s time to choose a shell and here’s where it gets tough. You see DASH or (Debian Almquist shell) is a modern POSIX implementation of sh and is 4x times faster then BASH. It also uses very minimal resources and has an overall low memory footprint. Since it’s a POSIX compliant shell built for efficiency, you’ll find the arrow keys not working and instead spitting out
^[[A ^[[B ^[[C ^[[D ^[[7~ ^[[8~
and you won’t have a history file of your previous shell commands.
So if you’re that type of person that loves minimalism and speed and can type long shell commands repeatedly without errors then go with DASH. On the other hand, if you prefer having a life… I mean a history of your commands, tab prediction at the price of some overhead then choose BASH.
5- Display Servers: Xorg VS Wayland
We have a tie here why? Well I’d pick a tie over flame wars any day! “Xorg is outdated, bloated with old unnecessary code…” we get that and we all hope that wayland will replace it one day. If wayland is working for you then stick with it, otherwise (and for the sake of this article) go for xorg.
6- Starting X Server: xinit
Yes, you do not need a display/login manager to start your Xorg server. You can easily use xinit and its frontend startx instead. You can even automate startx to start once you’ve logged in.
Here’s DOTSLASHLINUX’s guide to do that
Starting Xorg Server Using xinit.
There isn’t much comparison here as ALSA is a device driver, an interface between sound hardware and the kernel. Using ALSA alone is lighter than pulseaudio. Late versions of alsa support sound from multiple applications using the plugin dmix which is enabled by default. PulseAudio is a sound server built on top of alsa and can control sound coming from multiple applications unlike alsa which doesn’t have this functionality.
If you wanted a basic configuration file to use on laptops with PCH/HDMI sound cards, kindly check DOTSLASHLINUX’s custom ALSA configuration
Basic ALSA Configuration.
8- Window Manager: dwm VS Openbox
DWM isn’t only a tiled window manager for X, it’s a dynamic one as well but the reason why I chose dwm is that it’s highly configurable, does what it needs to do perfectly well and super fast! Can’t it get any better!
Here’s DOTSLASHLINUX’s custom dwm configuration
Best dwm Configuration.
On the other hand, openbox is the de facto stacked window manager for lightweight GNU/Linux distros. It’s heavier than dwm, but it’s for those who absolutely can’t use or hate tiled window managers.
slstatus is the lightest status bar, it was made and should be used with dwm. Here’s DOTSLASHLINUX’s custom slstatus configuration
Best slstatus Configuration.
If you’re into openbox then LXPanel is your friend. Yes, LXPanel is lighter than fbpanel, pypanel, tint2… you name it! How come? Out of the box it has a workspace switcher, minimize-all-windows button, volume plugin, battery plugin, networking plugin, cpu/ram usage plugin, temperature plugin, date/time plugin…etc.
Overall it has a significantly lower memory footprint than other panels using the same plugins.
GNU Core Utilities and ranger are considered the fastest and lightest CLI file managers. Moving on to GUI file managers, worker is considered the lightest of the bunch followed by xfe then PCManFM.
11- Desktop Manager: None VS PCManFM
PCManFM can be used to manage the desktop. You can easily organize your icons on your desktop in a neat grid provided by PCManFM. You can also operate on your desktop as you would normally do inside a folder in a file manager.
12- Application Launcher: dmenu
Lightest application launcher available. It was originally developed to be used with dwm, but it can be used with any window manager. You can map it to a keyboard shortcut.
13- Terminal Emulator: rxvt-unicode (urxvtd & urxvtc)
Some may argue and say that st is lighter or that lxterminal is better, but if you’re only going to run a single instance of a terminal emulator without needing the support for scrolling back up then go with st… Otherwise, you can heavily benefit from urxvt. Once you get the daemon (urxvtd) running, you can open for example 100 clients (urxvtc) and the memory footprint would roughly stay the same. Try opening 100 tabs in lxterminal or opening 100 instances of st and measure its memory usage and see for yourself…
Here’s DOTSLASHLINUX’s custom urxvt configuration for least memory footprint
Configuring rxvt-unicode (urxvt).
14- Network Manager: ConnMan
Connman is lighter than both NetworkManager and WICD. It supports wifi connection via wpa_supplicant, bluetooth via bluez, automatically manages wired connections and supports the usage of proxies and VPNs. The only drawback to it is that there’s no official applet for it and the currently available applets are either old, slow or lacking some features.
It’s a matter of preference and easiness of use as all of these are lightweight image viewers with feh being the lightest and intended mainly for console users (can also set desktop wallpapers).
qiv comes next being the lightest and fastest GUI image viewer. However, qiv’s controls may be hard to learn for some users. On the other hand, gpicview has a simple GTK GUI that many users will prefer.
16- Desktop Background Wallpaper Setter: hsetroot VS feh
hsetroot is lighter than feh as feh depends on imlib2 (which is probably installed everywhere), but nevertheless these are some extremely lightweight background wallpapers setters for your desktop.
These three are the lightest “usable” web browsers with a GUI available on GNU/Linux. You may be wondering that “If they were so lightweight then why is my package manager pulling lots of dependencies?”. It’s true that they have some dependencies related to Qt5, QtWebEngine and QtWebKit, but once they’re installed, they’re much lighter than your mainstream browsers. They’re even lighter than midori which is considered a lightweight gtk web browser.
Otter is considered the lightest but still has lots of bugs and probably won’t fit your needs. Then comes qutebrowser and QupZilla with qutebrowser being slightly lighter. Both are based on the newer QtWebEngine. If you love Vim then qutebrowser is what you’re looking for, otherwise QupZilla is the perfect choice for traditional users.
ePDFView and qpdfview are both lightweight convenient pdf readers for GNU/Linux. They’re both extremely small; however, they’re not the fastest. That title goes to MuPDF which is not so light (with a package/port size close to ~20 megabytes) but is the fastest pdf reader available for GNU/Linux. Although its controls may be annoying and hard to learn for some users.
cmus is considered an extrememly lightweight CLI audio player. However, if you found its shortcuts hard to memorize (which is highly unlikely), then mpd+ncmpcpp (which is also a lightweight CLI audio player that has a visualizer) will suit you better.
DeaDBeef is slightly lighter than Audacious. However, I’ve encountered several problems when trying deadbeef. Audio files that had .m4a or .aac extensions were unplayable and caused the player to crash. On the other hand, my experience with audacious was super smooth and it played every audio-containing file I threw at it.
20- Video Player: mpv
Some may argue that mplayer is lighter, that is true but only slightly. Mpv plays all video formats known to man-kind and it uses less cpu resources than both mplayer and vlc. It also supports VAAPI (Video Acceleration API) and VDPAU (Video Decode and Presentation API) which can significantly reduce its cpu usage (VAAPI) and its gpu usage (VDPAU) making it the fastest, most powerful and least resource hungry video player on GNU/Linux.
Here’s DOTSLASHLINUX’s custom mpv configuration for maximum performance and maximum powersaving
Optimal mpv Configuration.
e3 is the lightest and is written in assembly. Nano and e3 are for when you’re inside a terminal or in a tty, and leafpad’s when you’re not. However, I’d pick e3/nano over leafpad any day any time.
There’s also Vim, which is the lightest extensible text editor out there. I mainly use Vim for everything and in fact this whole website was coded inside Vim. If you’re interested, kindly check this
Best Vim Configuration and Plugins for Web Development.
MAIM or (MAke IMage) is a lightweight screen capture tool that utilizes imlib2 to take screenshots. Just fire up a terminal and type:
maim imagename.format
and a screenshot of your desktop with the name and format that you specified will be saved in the current directory that you’re in. It has some nice options and can be mapped to a given keyboard shortcut.
You also have scrot which requires imlib2 but is also considered lightweight, and gnome-screenshot which despite being related to the GNOME project doesn’t pull many GNOME dependencies.
Recordmydesktop is slightly lighter than simplescreenrecorder but doesn’t have as many options as it does. Unless you have a good reason not to choose simplescreenrecorder, go with recordmydesktop. Green recorder is a new screen recorder claiming to be simple and functional, it’s also the first screen recorder to support Wayland display server on GNOME session.
24- Screen Auto Locking Tool: xautolock
25- Console Auto Locking Tool: vlock
Available for CLI usage and has two GUI flavors (GTK & QT), transmission is a lightweight bittorrent client available for GNU/Linux.
27- Archive Manager: xarchiver
Xarchiver supports
7-zip, arj, bzip2, gzip, rar, lha, lzma, lzop, deb, rpm, tar and zip.
28- Process Viewer: htop
Htop is an interactive process viewer for GNU/Linux. It supports mouse usage in terminal or tty through GPM (General Purpose Mouse or Console Mouse Support). It also monitors your cpu usage, memory usage, battery…etc.
If you’re in a terminal emulator or in a tty use irssi, otherwise use xchat. The only downside to irssi is that it’s limited by the terminal emulator it was launched in and since many terminals don’t support right to left languages (and if they did the text doesn’t appear properly), you may want to choose xchat to talk in languages other than English.
True lighttpd is the lightest available http server out there for GNU/Linux, but nginx outperforms it under heavy load.
31- FTP Server: vsftpd
Very Secure FTP Daemon (or vsftpd for short) is a tiny, stable and secure FTP daemon for GNU/Linux. It has a simple configuration file and is super fast.
32- Voice Chat Server & Client: Murmur & Mumble
I was really shocked by the high quality of murmur (server) and mumble (client). I definitely recommend it for gamers, work offices, local use…etc
Geany is for GTK users and has poor autocompletion support (it can be extended using ctags but it’s still not enough). On the other hand, qt creator albeit being used to create Qt applications, it can be used as a C/C++ IDE and it’s a fast one indeed. It has an awesome autocompletion. To me it’s a revamped code::blocks with a better GUI.
34- Download Manager: GNU Wget or uGet
Wget something when you’re in a terminal or a tty, uGet it when not.
CONCLUSION
I hope you’ve enjoyed this article. This list of applications will be constantly updated and new entries will be added (that is if I found another lightweight yet convenient application for GNU/Linux). If you think I missed an application that you think is lightweight, then please let us know in the comments section below.
16 Comments
S0me0ne
13/10/2017
Good list, a few personal choices: File manager: ranger or coreutils. Image viewer: meh. Screen capture tool: scrot. Auto lock screen: xautolock. Note taking: hnb. Set up wallpaper: hsetroot.
DOTSLASHLINUX
13/10/2017
@S0me0ne, Thanks for your feedback and for the awesome suggestions! Updated the list above to include several lightweight applications.
emerge -eva
22/10/2017
vote for:
media-sound/mpd
media-sound/ncmpcpp
sys-apps/dstat
app-misc/figlet
app-misc/toilet
app-misc/mc
app-misc/worker
mail-client/claws-mail
DOTSLASHLINUX
23/10/2017
@emerge -eva, Thanks for your suggestions! List has been updated to include ranger the CLI file manager and cmus the CLI audio player.
Denethor
30/10/2017
Download manager: aria2, simply the best… Window Manager: JWM Web Browser: Seamonkey Great article and site!
DOTSLASHLINUX
31/10/2017
@Denethor, cool suggestions!
Thanks for the positive feedback, glad you liked the articles and the website!
gomo
31/10/2017
Great article!
What about web browsers? Any recommendations?
DOTSLASHLINUX
31/10/2017
@gomo, thanks for your kind words!
As for lightweight web browsers, the thing is, if you already have the QT framework installed then you can choose one of the following:
1-QupZilla which is a solid choice
2-Otter which is still under development but is extremely lightweight.
3-qutebrowser if you love Vim :D
If not then go either with FireFox and SeaMonkey or Chromium and disable all unnecessary USE flags. I know they aren’t considered lightweight, but if you picked the correct USE flags they’ll perform better. You can opt for Midori which is much inferior to the 3 I’ve mentioned earlier but conisdered somewhat lightweight.
Hope that helps! Let me know if you have any more questions!
gomo
01/11/2017
Great! qutebrowser sounds like a really good option :D
DOTSLASHLINUX
01/11/2017
@gomo, glad you liked it!
Guest
02/11/2017
My favourite is calcurse - calendar in terminal.
DOTSLASHLINUX
02/11/2017
@Guest, thanks for your suggestion!
Leigh J
10/11/2017
With a minimal setup I guess most people would choose not to use a Dock, but if they fancy one then I’ve found Plank to be very light as well as good looking, and DockbarX also seems like a good choice.
DOTSLASHLINUX
10/11/2017
@Leigh J, thanks for your suggestion, many readers will find this useful!
oldgaro
15/12/2017
27- Archive Manager: atool
Just type “aunpack” in any format and it is extracted! haha
DOTSLASHLINUX
15/12/2017
@oldgaro, that’s cool, but I thought atool is unmaintained (you can correct me on that one). Either way, thanks for your nice suggestion!
Leave A Comment