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.

1- Bootloader: LILO vs EXTLINUX

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

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.

7- Sound System: ALSA VS PulseAudio

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.

9- Status Bar vs Panel: slstatus vs LXPanel

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.

10- File Manager: ranger VS PCManFM

There really isn’t much competition here. ranger is one of the fastest and lightest CLI file managers (along with coreutils) and PCManFM dominates the lightweight category of GUI file managers.

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.

15- Image Viewer: QIV VS GPicView VS feh

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.

17- Web Browser: Qupzilla VS Otter

These two 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? “. True they have some dependencies related to qt5 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 lighter than qupzilla but it’s still under heavy development.

18- PDF Reader: ePDFView VS MuPDF

ePDFView is convenient lightweight pdf reader for GNU/Linux. It’s so small it weighs less than 200 kilobytes. However, it’s not the fastest. That title goes to MuPDF which is not so light (package is around ~20 megabytes) but is the fastest pdf reader available for GNU/Linux. MuPDF controls may be annoying to some users as well.

19- Audio Player: cmus VS DeaDBeef VS Audacious

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 the lighter one (but not by much). However, I’ve encountered several problems while trying deadbeef. Audio files that had.m4a or.aac extension were unplayable and crashed the player. On the other hand, my experience with audacious was super smooth and it played whatever I through at it as long as it had audio.

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.

21- Text Editor: e3 VS GNU nano VS Leafpad VS Vim

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.

22- Screen Capture Tool: maim vs scrot VS gnome-screenshot

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.

23- Screen Recording Tool: recordMyDesktop VS SimpleScreenRecorder VS Green Recorder

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

26- BitTorrent Client: Transmission

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.

29- IRC Client: irssi VS XChat

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.

30- HTTP Server: Lighttpd or NGINX

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

33- C/C++ IDE: Geany VS QtCreator

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.


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.




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.



@S0me0ne, Thanks for your feedback and for the awesome suggestions! Updated the list above to include several lightweight applications.

emerge -eva


vote for:











@emerge -eva, Thanks for your suggestions! List has been updated to include ranger the CLI file manager and cmus the CLI audio player.



Download manager: aria2, simply the best… Window Manager: JWM Web Browser: Seamonkey Great article and site!



@Denethor, cool suggestions!

Thanks for the positive feedback, glad you liked the articles and the website!



Great article!

What about web browsers? Any recommendations?



@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!



Great! qutebrowser sounds like a really good option :D



@gomo, glad you liked it!



My favourite is calcurse - calendar in terminal.



@Guest, thanks for your suggestion!

Leigh J


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.



@Leigh J, thanks for your suggestion, many readers will find this useful!

Leave A Comment

Become a Patron

If you liked the website and wanted to keep it up and running while remaining ads free then kindly consider supporting DOTSLASHLINUX on Patreon.


A huge thank you to all DOTSLASHLINUX patrons:

Crosby Smith (1st Patron)

Recommended Distributions

Gentoo Linux Void Linux Arch Linux

Upcoming Articles

  • Best QEMU and KVM Configuration for Windows Guests on Linux Hosts