I had to use "free -m" as it didn't recognize your command.
It comes out even lower at 136MB!
Ok... final tweaks
But, before I continue it's really important to stress, this is NOT a suitable substitute for Ubuntu Mate on any machine strong enough to run Ubuntu Mate. But, it IS an excellent solution (in my opinion) for very weak/old machines that would otherwise be obsolete.
That being said:
Openbox window manager
PcManFM file manager running desktop management. So, a full fledged desktop environment (no longer any need for Nitrogen wallpaper manager).
Tint2 Panel running as two panels - top and bottom. Mate-like set up, minus a mate-like menu.
Openbox applications-menu accessible via right-click anywhere on any of the two tint2 panels. Menu is very easily customizable via a menu editor called Obmenu
Compton (because I consider compositing as an essential)
I've dropped Tilda auto-starting in order to shave off a few MBs.
Comes in at a standing start of 144MB.
I will, as requested by another user, compose an instructional for this setup and post on here sometime over the course of this week.
After using Openbox in my spare time over the last few days in a VM, I have begun to get used to it’s work-flow and have stopped trying to hide its limitations by trying to get it to mimic other OS’s and, instead, accept and work with its virtues.
To that end, I have settled with one Tint2 panel, showing only the clock, the system tray and task buttons.
The menu is the standard right-click one provided by Openbox, customized with Obmenu. It is right-click-able anywhere on the desktop including the Tint2 panel.
I have found lightweight system-tray versions of the following items I consider extremely useful/essential:
Network manager applet = wicd-gtk
Volume control applet= volti
sound device switching applet = indicator-sound-switcher
Calendar on left or right click of panel clock = gsimplecal
That’s basically it. It is a fully functioning GUI workspace and will do it’s job its job perfectly adequately on extremely old/weak machines.
See video below:
With all the necessary bells and whistles attached, Ram usage at login is 177MB.
This is what I will base my instructions on.
Just managed to shave 7MB off by changing the login manager from LXDM to Slim
So, coming in at 170MB now.
Now, for he next step, just think what you will gain if you accept dropping entirely the stacked windows concept and move to a tile-base WM. I’ll wager, you can get it down to 100MB on i3 on that setup.
Edit: hmm… scratch that. Tiling WMs are not a viable option on a tablet.
Just tried out i3. I found the workflow a bit off-putting. But, I could certainly get used to it. However, in terms of resource consumption it used about 10MBs more RAM than my current openbox setup (currently running at 138MB). So, no real resource gain and a setback in workflow familiarity.
I then tried out a little program called x-tile, which is a tile manager designed to run inside openbox. This was actually very nice to use, whilst still leaving me with the openbox right-click main menu. But, it has to be autostarted and running in the background to be able to assign shortcut keys to on-the-fly various tiling options. Running x-tile in the background took the RAM consumption (in conjunction with using Tint2 panel) up into the 160MB region.
So, given that x-tile is so good, I decided to try openbox with just x-tile and not having Tint2 panel running. As it turned out, this is a reasonably usable setup. I would need to assign something like the Windows super-key to bring up the openbox menu since, if the screen is full of open tiled windows, there is nowhere available to right-click the openbox menu to open. But, that should be doable I would have thought.
But, the main problem with x-tile is that when it is running in the background and without Tint2 running, RAM consumtion is around 148MB. So, again, slightly greater resource consumtion in return for a slightly reduced familiariy of workflow (at least for me).
So, for me, the following is just about the optimal balance between light resource consumption and workflow. The basic setup is:
That all comes in at 138MB on the RAM immediately after landing in openbox.
I have just thought of something…
Since x-tile running in the background takes up more RAM than desirable, but is otherwise a potentially very usable alternative to tint2 panel, I am wondering if I could set up little scripts (executable either via the openbox menu or by assigned hot-keys) which would start x-tile, apply the given tiling command, and then exit x-tile. This way, x-tile only uses RAM at the specific point of applying the tiling function. Otherwise, it consumes nothing.
The kind of script I am imagining should be a doddle to knock up and would take the form:
The above would load x-tile, quad tile all windows and then close x-tile.
I know that the tiling choice persists after x-tile is cloed cos I have done that already for other reasons when testing.
Openbox with compton, but without x-tile (except when specifically carrying out a task) or tint2, comes in around 117MB.
So, I guess I will have to try that out.
Ok, just tested that out.
openbox with comton and nitrogen but nothing esle, comes in at around 117MB.
running x-tile, applying the tiling option, then exiting x-tile, but leaving the newly tiled windows in place, works and also leaves the RAM, both prior to and following the x-tile action, unchanged at around 117MB.
I may be about to be won over by tiling window management…
It’s actually better than I thought
x-tile does not need to be loaded into the background. The command to use it to tile windows loads it at that moment and then it closes as soon as the tiling action is completed.
So, I just have it as a top level menu entry in my open box menu with the command “x-tile g” - which tiles all open windows in a grid. there are several other tiling options which i can make available in the same way. Also, i can set them all up to super-key binding as well. I have already set up a key binding for opening the open-box menu. which is necessary with when there is no Tint2 panel since, ordinarily, the right click menu is not available over an open window because of the open window’s own context menu taking precedence.
So running at 117MB now with compositing, wallpaper management and a perfectly usable “desktop”
That was a somewhat circuitous journey from wishing to produce an ultra lightweight “desktop” environment that still, to some extent, mimicked the classic desktop metaphor I am so familiar with, to eventually recognizing and embracing the virtues of a minimal, uncluttered windows manager like Openbox.
Having spent several days messing around with various bells and whitsles, I am now just using vanilla openbox with a conky clock and date. The only addititonal functionality has been added by x-tile. Other than that it’s fine as it is.
Final tally is 117MB from standing start.
It’s a very good number. To go lower than that you would have to run a different kernel I guess. Probably tens of MBs could be saved by that. However this is not a research project but you wanting something lightweight for old hardware. Did you try it on hardware?
Hi Mrtribute. I will be installing it on my Acer ONE notepad sometime today.
How’s your project going Steve?
So… I have been messing about a bit and have come up with a new version
It can be run in three different modes:
Mode 1) Vanilla Openbox, but with a customised menu. This comes in at 127M
Mode 2) Openbox with two Tint2 panels and a panel menu (using the cutomised Openbox menu), but with no desktop management. This comes in around 150M
Mode 3) Openbox with two Tint2 panels, a panel menu and desktop management by PcManFM. This comes in around 172M
These are all running off the same installation.
I am aiming to have a multiple-choice menu option whereby the whole system can, at a single click, be restarted in each of these three modes.
Here is a video of mode 2 and 3
and here is a video of mode 1
Is the minimum memory requirement just purely academical, or you do have some stringent reason to go with the lowest possible value? The way Linux manages memory (particularly in low memory hardware in the presence of a swap file) means you can actually lax your current requirements considerably.
Whatever your reason, however you need to get a bit more technical, Steve. These values you are reporting are not telling the whole story. One of the secrets to squeeze the most memory of your system is not changing programs based on immediate reporting, but learning about the different properties of your programs so you can better judge if a program is in fact utilizing less memory that it is being reported to you, or if on the other hand it is hiding memory from you.
vmstatoutput. two useful options are
cat proc/meminfo, which you should do 3x, once before you start X and redirecting to a file so you can inspect later, another in your GUI startup programs list (also redirecting to a file) and another some 30 seconds after logging in to your GUI.
freeand you don’t need your GUI task manager either.
If you can start reporting those, we can start looking at values that will give hints on where to optimize memory or where a program that is reporting 20MB is being in fact just as memory conservative as another saying it is only using 5MB.
On the one hand, this is merely entertainment for me. I’m just a bit of a nerd.
At the same time, memory and information-processing power is an issue on some of my devices and I also have friends who would benefit. I do understand about how the measure of Ram usage I have used is very rough. But, as a rough and ready approximation, it’s good enough for my needs. That is to say, I am pretty confident that this setup is just about as skinny as I can get it. Or, at least, the vanilla Openbox one is. The only way to beat that would be to change the underlying Distro. So, for example, if I use pure Debian, Openbox immediately drops another 10-15MBs. But, for greater convenience, I have used the Ubuntu base.
The other two modes are, perhaps, only slightly lower than LXDE in terms of Ram consumption and so the difference is sufficiently slight that it begs the question of why bother?
For me, the answer is the menu. Which takes me back to the thing I mentioned at the beginning of this thread. The LXDE menu has always been a pain for me to edit. The config file is horrible to edit and the only GUI menu editor available, “lxmed”, is absolutely terrible. It does not allow for the creation of menus and sub menus. But, of the one thing it does do, which is the creation of launchers, it is very unreliable and crashes regularly. The truth is, if I could have ever have managed to get to grips with the LXDE menu config file, I would probably never have been motivated to go down this little rabbit hole i have just done. But, as it is, in terms of getting to grips with that config file, I am too thick or lazy or both.
Don’t misunderstand me, there is nothing particularly wrong with the LXDE initial, out of the box, menu structure and, if one is likely to only install a smallish list of typical programs, then it’s good enough. But, I always like to have a very specific menu architecture. No particularly good reason. Just…again…I’m a bit of a nerd.
So, this is the main reasons why this works for me because of it being the Openbox menu and with that menu being editable by Obmenu, which allows for complete and easy edit-ability of that menu. The fact it is slightly lighter than even LXDE is a welcome bonus and I have certainly aimed for that, Though, that is only half of the story.
However, I am happy I’m happy to make the VM available to you or anyone else to test it more thoroughly if they wish to.
Or, alternatively, give a list of commands to input when running them, and I’m happy to report the results back on here.
Regarding ps_mem, this was not available. Nor was it in the repos. So, I would be grateful if you could give me some advice on how to install that.
Looks like you’re all having fun creating something new ️
Some other projects you might want to look at are http://fluxbox.org/ and vala-panel. Vala Panel is available in Ubuntu since 17.10 Alpha 2 and I packaged it as part of the work to get Global Menu working. Vala Panel is a desktop agnostic lightweight panel.
I really need to write the tutorial on python package installation and setting up a local python environment that is isolated from the system python. I promised it a while ago and have yet to fulfill. But I’m feeling too lazy to do it just yet.
So, instead here is the MacGyver way:
$ wget https://github.com/pixelb/ps_mem/raw/master/ps_mem.py $ sudo mv ps_mem.py /usr/local/bin/ $ sudo chmod 755 /usr/local/bin/ps_mem.py
This installs ps_mem. To run it you need
ps_mem makes use of system facilities that are only available through elevated privileges.
You may also want to save the following into a new file called
ps_umem or whatever you prefer:
#!/bin/bash for i in $(ps -e -o user= | sort | uniq); do printf '%-20s%10s\n' $i $(sudo ps_mem --total -p $(pgrep -d, -u $i)) done
Save the file in your
~/.local/bin/ directory and make it executable with
$ chmod 755 ~/.local/bin/ps_umem. If this directory is not in your
PATH, add it. This script will also give you a per-user rundown of your system memory consumption.
Just installed Lubuntu 17.10 and logged into an Openbox session, installed vala-panel and am running it right now. It’s outstanding looking Martin.
Very nice menu structure. Though, I have yet to figure out how to edit it.
All running at around 170MB on the Ram. So nice and light as well.
Can you point me to how to edit the menu Martin?