I blame my lack of posts here on the lack of people bugging me to write posts here. I don’t wake up in the afternoon, put on my developer capris, drink five cups of coffee, and then immediately think “I should write a blog post”. No, I do the rest of those things, fire up GDB, and then emerge from a debugging fugue sometime the following day wondering what happened.
A while ago, I promised roadmap postage. Given that I just pushed out a huge dump of commits from E19 into master, this seems like an apt time for talking a bit about what’s coming in the E19 release. Let’s start with the main things first:
- New compositor / window manager
As some of you may know, E17 was in development for a little while. What you may not know is that it did not have a composite module for the entire duration of that development cycle. Given that, as I’ve said before, the E17 compositor was much like the outboard motor of compositors, it’s safe to say that there was a lot of work to be done to properly integrate it. E18 was a step in the right direction, but it was a very small and timid step: basically the outboard motor got some duct tape strapped around it to hold it on better.
With E19, the compositor is completely integrated with the rest of the architecture. This lets us do neat things like treat clients (regardless of whether they’re X or Wayland) as regular canvas objects. Moving/resizing/restacking canvas objects is much easier than doing the same for “windows”! It also makes it a lot easier to do some other things like bring back the E16 pager or do some slightly more advanced move/resize/flip effects, such as those provided by the desksanity module. More on this, as well as some demos and screenshots, in future posts.
- Better Wayland integration
HTML5Wayland is the future, and we must appease our non-X overlords. Wayland support in E18 was…interesting, to say the least, and E19 makes it much simpler. There’s still a bunch of work to be done here before I would call it completely usable, but it does work without crashing right now, and that’s 90% of the battle.
That’s it. Those are the only main features which were needed for a release of E19. There are a number of other goodies besides these two, but I would have been fine with releasing nothing else. What other features are planned in this release? Here’s some of the things which have already been done in core:
- Compositor config is no longer a module
- E16-like live pager
- Desk flip animations can be handled externally
- Move/resize animations can be handled externally
- Custom (non-system) desklock passwords
- Desklock visuals are now handled by modules
- PIN-style desklock
- New config option: Raise on revert focus
- XPRESENT extension support
I’ve still got one more noteworthy-but-totally-sekrit feature that I’m planning on adding before release, and it’s also very likely that Davide Andreoli’s PackageKit module will be merged within the next week given previous community demand, my own positive code review, and its tiny code size (918 lines wtfisthisheromodule). After that, I’ll probably be closing the feature window sometime in February which will start up another release marathon. Didn’t I just do a major release? Overlapping development cycles are confusing.