after moving to i3 I find it hard to look back. the level of customization I can do with a tiling WM (also dwm, xmonad etc) is just insane. Makes more sense to me since most of the tools I use are lightweight, e.g. suckless (surf), a complete process tree after login now consists of:
?─┬─?───i3-wrapper───i3
├─sh───xautolock
├─sh───unclutter
├─sh───dunst───2*[{dunst}]
├─sh───i3bar───sh───python───{python}
├─sh───x-terminal-emul─┬─3*[bash]
│ ├─bash───pstree
│ └─6*[{x-terminal-emul}]
└─systemd─┬─at-spi-bus-laun─┬─dbus-daemon
│ └─3*[{at-spi-bus-laun}]
├─at-spi2-registr───2*[{at-spi2-registr}]
├─dbus-daemon
├─dconf-service───2*[{dconf-service}]
├─dirmngr
├─gconfd-2
├─gvfs-udisks2-vo───2*[{gvfs-udisks2-vo}]
├─gvfsd─┬─gvfsd-trash───2*[{gvfsd-trash}]
│ └─2*[{gvfsd}]
├─gvfsd-metadata───2*[{gvfsd-metadata}]
├─pulseaudio───2*[{pulseaudio}]
└─tracker-store───4*[{tracker-store}]
$> sudo smem -c pss -t | tail -1
606032
^^^^ as commenter below pointed out this includes processes from other users. the correct figure is smem -c pss -t | tail -1
220678
Use compton if you need some bells+whistles (transparency). If you want to get rid of X.org and use Wayland[0] just use sway[1] instead as drop-in replacement for i3.[0] The real story behind Wayland and X: https://www.youtube.com/watch?v=GWQh_DmDLKQ
(all of them are ridiculous sizes considering something like Windows NT 4 needs 16MB of RAM for the entire system and applications to run while providing a ton of functionality out of the box, but still even relatively your setup looks to use a lot of memory)
smem -c pss -t | tail -1
220678
EDIT: reply inline to @Crinus because rate limitation:no this is only current user because hidepid on proc in fstab
proc /proc proc defaults,hidepid=2 0 0More ridiculous could be a full GUI OS on a machine witch less RAM, like an Amiga 1000/500 or a early Macs.
I do not expect current versions to be easy to run even in 32MB (although i've heard - but didn't verify - that Xorg can be configured and built from source to use as little as 600KB) but i'm curious where those hundreds of MBs go even for something like Xorg + Window Maker.
just an idea of what happens if I were to install konqueror on a non-kde system:
sudo apt-get install konqueror
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
baloo-kf5 catdoc dolphin kactivities-bin kactivitymanagerd
keditbookmarks kfind kimageformat-plugins kinit kio
kio-extras kio-extras-data kpackagelauncherqml
kpackagetool5 kwayland-data kwayland-integration
libdbusmenu-qt5-2 libdolphinvcs5 libfam0 libhfstospell10
libkf5activities5 libkf5archive5 libkf5attica5
libkf5auth-data libkf5auth5 libkf5baloo5 libkf5balooengine5
libkf5baloowidgets-bin libkf5baloowidgets5
libkf5bookmarks-data libkf5bookmarks5 libkf5codecs-data
libkf5codecs5 libkf5completion-data libkf5completion5
libkf5config-bin libkf5config-data libkf5configcore5
libkf5configgui5 libkf5configwidgets-data
libkf5configwidgets5 libkf5coreaddons-data
libkf5coreaddons5 libkf5crash5 libkf5dbusaddons-bin
libkf5dbusaddons-data libkf5dbusaddons5
libkf5declarative-data libkf5declarative5 libkf5dnssd-data
libkf5dnssd5 libkf5doctools5 libkf5filemetadata-bin
libkf5filemetadata-data libkf5filemetadata3
libkf5globalaccel-bin libkf5globalaccel-data
libkf5globalaccel5 libkf5globalaccelprivate5
libkf5guiaddons5 libkf5i18n-data libkf5i18n5
libkf5iconthemes-bin libkf5iconthemes-data
libkf5iconthemes5 libkf5idletime5 libkf5itemviews-data
libkf5itemviews5 libkf5jobwidgets-data libkf5jobwidgets5
libkf5js5 libkf5kcmutils-data libkf5kcmutils5
libkf5kdelibs4support-data libkf5kdelibs4support5
libkf5kdelibs4support5-bin libkf5khtml-bin libkf5khtml-data
libkf5khtml5 libkf5kiocore5 libkf5kiofilewidgets5
libkf5kiogui5 libkf5kiontlm5 libkf5kiowidgets5
libkf5kirigami2-5 libkf5konq6 libkf5newstuff-data
libkf5newstuff5 libkf5newstuffcore5
libkf5notifications-data libkf5notifications5
libkf5package-data libkf5package5 libkf5parts-data
libkf5parts-plugins libkf5parts5 libkf5pty-data libkf5pty5
libkf5quickaddons5 libkf5service-bin libkf5service-data
libkf5service5 libkf5solid5 libkf5solid5-data
libkf5sonnet5-data libkf5sonnetcore5 libkf5sonnetui5
libkf5textwidgets-data libkf5textwidgets5 libkf5wallet-bin
libkf5wallet-data libkf5wallet5 libkf5waylandclient5
libkf5widgetsaddons-data libkf5widgetsaddons5
libkf5windowsystem-data libkf5windowsystem5
libkf5xmlgui-bin libkf5xmlgui-data libkf5xmlgui5
libkwalletbackend5-5 libminizip1 libphonon4qt5-4
libpolkit-qt5-1-1 libpoppler-qt5-1 libqt5quickcontrols2-5
libqt5quicktemplates2-5 libqt5script5 libqt5texttospeech5
libqt5waylandclient5 libqt5waylandcompositor5
libqt5webengine-data libqt5webenginecore5
libqt5webenginewidgets5 libre2-5 libssh-4 libvoikko1
phonon4qt5 phonon4qt5-backend-vlc
qml-module-org-kde-kirigami2 qml-module-org-kde-newstuff
qml-module-qtqml-models2 qml-module-qtquick-controls2
qml-module-qtquick-templates2 qtwayland5 sonnet-plugins
Suggested packages:
tk | wish dolphin-plugins konq-plugins fam voikko-fi
phonon4qt5-backend-gstreamer hspell
The following NEW packages will be installed:
baloo-kf5 catdoc dolphin kactivities-bin kactivitymanagerd
keditbookmarks kfind kimageformat-plugins kinit kio
kio-extras kio-extras-data konqueror kpackagelauncherqml
kpackagetool5 kwayland-data kwayland-integration
libdbusmenu-qt5-2 libdolphinvcs5 libfam0 libhfstospell10
libkf5activities5 libkf5archive5 libkf5attica5
libkf5auth-data libkf5auth5 libkf5baloo5 libkf5balooengine5
libkf5baloowidgets-bin libkf5baloowidgets5
libkf5bookmarks-data libkf5bookmarks5 libkf5codecs-data
libkf5codecs5 libkf5completion-data libkf5completion5
libkf5config-bin libkf5config-data libkf5configcore5
libkf5configgui5 libkf5configwidgets-data
libkf5configwidgets5 libkf5coreaddons-data
libkf5coreaddons5 libkf5crash5 libkf5dbusaddons-bin
libkf5dbusaddons-data libkf5dbusaddons5
libkf5declarative-data libkf5declarative5 libkf5dnssd-data
libkf5dnssd5 libkf5doctools5 libkf5filemetadata-bin
libkf5filemetadata-data libkf5filemetadata3
libkf5globalaccel-bin libkf5globalaccel-data
libkf5globalaccel5 libkf5globalaccelprivate5
libkf5guiaddons5 libkf5i18n-data libkf5i18n5
libkf5iconthemes-bin libkf5iconthemes-data
libkf5iconthemes5 libkf5idletime5 libkf5itemviews-data
libkf5itemviews5 libkf5jobwidgets-data libkf5jobwidgets5
libkf5js5 libkf5kcmutils-data libkf5kcmutils5
libkf5kdelibs4support-data libkf5kdelibs4support5
libkf5kdelibs4support5-bin libkf5khtml-bin libkf5khtml-data
libkf5khtml5 libkf5kiocore5 libkf5kiofilewidgets5
libkf5kiogui5 libkf5kiontlm5 libkf5kiowidgets5
libkf5kirigami2-5 libkf5konq6 libkf5newstuff-data
libkf5newstuff5 libkf5newstuffcore5
libkf5notifications-data libkf5notifications5
libkf5package-data libkf5package5 libkf5parts-data
libkf5parts-plugins libkf5parts5 libkf5pty-data libkf5pty5
libkf5quickaddons5 libkf5service-bin libkf5service-data
libkf5service5 libkf5solid5 libkf5solid5-data
libkf5sonnet5-data libkf5sonnetcore5 libkf5sonnetui5
libkf5textwidgets-data libkf5textwidgets5 libkf5wallet-bin
libkf5wallet-data libkf5wallet5 libkf5waylandclient5
libkf5widgetsaddons-data libkf5widgetsaddons5
libkf5windowsystem-data libkf5windowsystem5
libkf5xmlgui-bin libkf5xmlgui-data libkf5xmlgui5
libkwalletbackend5-5 libminizip1 libphonon4qt5-4
libpolkit-qt5-1-1 libpoppler-qt5-1 libqt5quickcontrols2-5
libqt5quicktemplates2-5 libqt5script5 libqt5texttospeech5
libqt5waylandclient5 libqt5waylandcompositor5
libqt5webengine-data libqt5webenginecore5
libqt5webenginewidgets5 libre2-5 libssh-4 libvoikko1
phonon4qt5 phonon4qt5-backend-vlc
qml-module-org-kde-kirigami2 qml-module-org-kde-newstuff
qml-module-qtqml-models2 qml-module-qtquick-controls2
qml-module-qtquick-templates2 qtwayland5 sonnet-plugins
0 upgraded, 147 newly installed, 0 to remove and 0 not upgraded.
Need to get 72.7 MB of archives.
After this operation, 310 MB of additional disk space will be used.
Do you want to continue? [Y/n]1. Konqueror is basically the Swiss army knife of KDE. No wonder it pulls in everything and the kitchen sink.
2. You present an intimidatingly large package list to make your point, but that list is that long 'because KDE Frameworks (formerly known as kdelibs) is now deliberately packaged in a lot of tiny pieces to reduce the amount of libraries that an average application needs to pull in.
And in practice applications do not use one or two of them, they use several of them and those libraries bring in several others, etc like spaghetti (so you have Konsole relying on Phonon as mentioned in another reply).
Edit. Or KCachegrind, okteta
Auxiliary stuff you leave at the background (e.g. an IM or music player) tend to have multiple applications and you can always find an alternative.
There are exceptions of course but they can be limited in general.
And chances are you want to avoid the latter stuff for the former stuff, it isn't like RAM exists to be unused (even for file caching). In other words, if i run a heavy program as a primary task then there is even more of a reason to want auxiliary programs to be lightweight so that this program will have more resources for itself.
(Also as an extra bonus, sometimes as a programmer i want the primary programs - IDE - to be lightweight themselves since i want the resources to be available for the program i am working on)