This one of the most understated reasons.
This one of the most understated reasons.
Of course it's more complicated than that, but it's not impossible, since the foundation is already there.
There is simply not enough rich app activity information for the session manager to do smart management.
Compare it to what iOS and Android apps report about themseleves and the conditions they are forced to run in (such as being arbitrarily killed and restarted).
Obviously the Linux kernel is perfectly able to sit in a stack like this (see: Android), it's the XDG standards which are not well suited for this.
I don't want to add yet another standard because the best part of the standards is there is too much to choose from.
It's a matter of signaling, though, and if we improve the signaling, we can build upon it.
Again, it's not a simple task (I dug into GNOME's compositor for two weeks just to find a note saying "Errm, we didn't implement this to X11 specs and it does funny things on touchscreens. If somebody can do this all over, we'd be glad. KTHXBYE"), and we were developing something for touch screens, albeit huge ones.
Well, I won't go into details today, maybe later.
That's the incredibly hard part - not having some random package run a cron job every 10 seconds because it was easier for the developer to do it.
And Linux developers get incredibly angry - keeping grudges for decades - if you try to add systems that enforce power saving behavior necessary for devices to last a whole day.
This is where the difference between Android/iOS and Linux distros lies in practice. And people are still - even on HN - incredibly angry at Android for not letting them destroy the battery anymore.