This question comes up time and again. This article will attempt to provide a bit of an opinion, if nothing else.
This article is a VERY SKETCHY overview of MY OWN OPINIONS on lightweight GNU/Linux distros. I will be the last to deny the possibility that I am ENTIRELY WRONG ABOUT EVERYTHING. If your favorite is not represented here, DON’T PANIC. Send me a note and I’ll check it out. 🙂
- DE- Desktop Environment (includes panels, window managers, docks, etc.)
- WM- Window Manager (software to enable running GUI programs, no docks, bars, panels, etc. included)
First, what’s old?
For clarity’s sake we’ll divide them into several categories. The most common benchmarks for measuring a computer’s speed and ability are RAM quantity and CPU speed.
RAM CPU SPEED AGE GROUP
64-256 MB 100-450 MHz, single core Ancient
256-768 MB 500-900 MHz, single core Elderly
1-1.5 GB 1-2 GHz, single core Senior
1.5-2 GB 1-2 GHz, dual core Middle Aged
Since this is my article I will start with my perennial favorite, Debian.
For someone wanting stability and to go back to the “roots” of many of today’s popular OS’s, the Debian Project is the ideal distro. Debian comes in three flavors; Stable, Testing, and Unstable. All come with the Gnome desktop environment. While Stable (as of this writing) can probably be used with Elderly computers, the other two will likely run best on Middle Aged and up.
Then there are the Debian deriviatives:
First and foremost (in my mind) is Crunchbang. Based on a minimal Debian Stable system, it uses Openbox and Tint2 for a very lightweight but extremely elegant desktop. Crunchbang is solid, reliable, and looks fantastic on top of it. Recommended for Elderly up.
antiX is Debian Testing based and uses Fluxbox and Icewm which put it in the same catagory as Crunchbang; good for Elderly on up.
MEPIS uses KDE and therefore is best for Middle Aged.
Ubuntu is Debian based and is easy to install and use.
Vanilla Ubuntu has outdistanced these computers in terms of optimal performance. Since we aren’t talking minimum requirements, we’ll be generous with resources for each distro.
There are several official Ubuntu derivatives (we’ll only look at the main ones)
- (and the upcoming Gn[ou]buntu)
Kubuntu is too heavy for anything older than Middle Aged. Yes, it will probably run, but not well, and certainly not optimally.
Gn[ou]buntu (the name has yet to be confirmed) using pure Gnome shell, would likely be in the same catagory as Kubuntu/Ubuntu.
Xubuntu and Lubuntu use the XFCE and LXDE desktop environments, respectively. Of these LXDE/Lubuntu is arguably the lighter. Pure XFCE is probably as lightweight as LXDE, but Xubuntu comes with many Gnome apps, which, while often more polished than their lightweight counterparts, take a toll in speed.
There are the unofficial Ubuntu derivatives, such as
- Bodhi Linux
- Linux Mint
Bodhi Linux is Ubuntu with the Enlightenment desktop environment. Enlightenment is very lightweight and can be customized to look very polished. It has graphical tools for all configurations and has a built in lightweight compositing manager.
WattOS utilizes the OpenBox window manager, and focuses on low power consumption. The project however appears to be more or less dormant.
Linux Mint is a popular distro that uses MATE (a Gnome 2 fork), Cinnamon (a Gnome 3 derivative), KDE, and XFCE. Cinnamon and KDE can be considered in roughly the same category, as can XFCE and MATE.
Then there are the tiny distros.
- Tiny Core
- Puppy Linux
Tiny Core is a unique system that loads only a completely base system by default. The user customizes it by adding software “modules” that the OS loads at boot, thus keeping computing requirements at an absolute minimum. TC loads itself into the RAM upon boot and runs from RAM; persistent changes can be saved. This makes it a poor choice for REALLY RAM poor machines, however; 64 MB should be the absolute minimum.
Tiny Core is BUILT for Ancient computers.
DSL is similar to TC but is easier to install straight to a HDD. It supports a number of lightweight WMs, such as Icebox, Fluxbox, Icewm, and JWM. DSL is best for Ancient computers as well.
Puppy Linux aims at being a complete GUI solution for old PC’s. It is built from scratch and comes with a large suite of software. It runs quite well on high-end Ancient to Elderly computers.
Slitaz uses a very slick, useful amalgamation of DE and WM components to create a very good looking and easy-on-the-hardware interface. This is a fine distro and is perfect for all Elderly computers.
You’ve probably figured out by now that DE/WM is easily the most influential part of any operating system’s relative “weight”. Pick your DE or WM wisely and nearly all distros will function more or less the same, the one exception being on Ancient computers.
My personal recommendation? If it’s ancient, run a CLI only system on it. 😈
Any distro using Gnome comes with gnome-control-center, which includes a dandy GUI utility for setting mouse speed. Unfortunately, in the systems I’ve primarily run (Debian and Ubuntu) I’ve not found it to be effective in any instance.
Every GUI app in GNU/Linux has CLI roots, right? So I found xinput and figured out how to use it.
First, run just
to get a list of all connected devices. Mine looked like this:
cortman's Pip-Boy ~$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech G500 id=10 [slave pointer (2)]
⎜ ↳ Logitech G500 id=11 [slave pointer (2)]
⎜ ↳ HID 0a5c:4503 id=15 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=17 [slave pointer (2)]
⎜ ↳ Microsoft Bluetooth Mobile Keyboard 6000 id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ USB2.0 UVC WebCam id=9 [slave keyboard (3)]
↳ HID 0a5c:4502 id=14 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=16 [slave keyboard (3)]
↳ Toshiba input device id=18 [slave keyboard (3)]
The one I was interested in was the Logitech G500 gaming mouse. For some reason it has two ID’s. I have not looked into this or figured out why it does. I used #10, and all seemed to be working fine, so I didn’t explore further.
To change the sensitivity/acceleration, use the command
The syntax is as follows
xinput --set-ptr-feedback "device_id" accelNum accelDenom threshold
In my case I set it to
xinput --set-ptr-feedback "10" 30 5 2
As far as what these numbers actually signify, I’ll quote the man page:
By default the pointer (the on-screen representation of the pointing
device) will go `acceleration’ times as fast when the device travels
more than `threshold’ mickeys (i.e. would-be pixels) in 10 ms, includ‐
ing a small transition range. This way, the pointing device can be used
for precise alignment when it is moved slowly, yet it can be set to
travel across the screen in a flick of the wrist when desired. One or
both parameters for the m option can be omitted, but if only one is
given, it will be interpreted as the acceleration. If no parameters or
the flag ‘default’ is used, the system defaults will be set.
By this I take it that the first number (accelNum) is the actual speed number. At 10 my mouse was painfully slow; I think that’s pretty much the bottom of the threshold (but it doesn’t hurt to play around a bit).
The second number (accelDenom) is the multiplier used to calculate acceleration, i.e., the larger the number the faster it will accelerate relative to how fast you move the mouse suddenly.
The third number (threshold) tells, as the man page explains, how many pixels the device must move in a given time to accelerate.
Ways to make this persistent? As inelegant as it sounds, at this point it seems as though simply creating a script with this command and adding it to your startup programs is probably the simplest way to do it. I’ve seen talk of adding it to udev but they seem rather problematic. I may look into this more later.
I run Debian Wheezy, and that’s what I used to test and run this fix.
For any who’ve been frustrated by a lack of response from the GUI mouse tool, this is a pretty surefire way to fix it!