Preview the upcoming Maynard desktop
Some of you will be aware that we’ve been working on a new, more responsive and more modern desktop experience for the Raspberry Pi. We thought you might like an update on where we are with the project.
The chip at the heart of the Raspberry Pi, BCM2835, contains an extremely powerful and flexible hardware video scaler (HVS), which can be used to assemble a stack of windows on the fly for output to the screen. In many ways the HVS resembles the sprite engines you may remember from 8- and 16-bit computers and games consoles from the Commodore 64 onward, with each window treated as a separate translated and scaled “sprite” on top of a fixed background.
The Wayland compositor API gives us a way to present the HVS to applications in a standards-based way. Over the last year we’ve been working with Collabora to implement a custom backend for the Weston reference compositor which uses the HVS to assemble the display. Last year we shipped a technology demonstration of this, and we’ve been working hard since then to improve its stability and performance.
The “missing piece” required before we can consider shipping a Wayland desktop as standard on the Pi is a graphical shell. This is the component that adds task launching and task switching on top of the raw compositor service provided by Wayland/Weston. The LXDE shell we ship with X on the Pi doesn’t support Wayland, while those shells that do (such as GNOME) are too heavyweight to run well on the Pi. We’ve therefore been working with Collabora since the start of the year to develop a lightweight Wayland shell, which we’ve christened Maynard (maintaining the tradition of New England placenames). While it’s some distance from being ready for the prime time, we though we’d share a preview so you can see where we’re going.
Packages for Raspbian are available (this is a work in progress, so you won’t be able to replace your regular Raspbian desktop with this for general use just yet, and you’ll find that some features are slow, and others are missing). Collabra have made a Wiki page with compilation instructions available: and there’s a Git repository you can have a poke around in too.
It looks great!
Looks very good – clean, modern, slick.
I’m impressed! It looks incredibly clean and modern. Nice job!
I like its simplicity… but looks like it will take a long time to replace Raspbian default desktop as there isn’t X11 support.
The X11 support for most apps is easy. XWayland is the Wayland component that does that. It’s disabled in our release because we used a slightly older Wayland with a non-particularly good XWayland and it wasn’t worth getting that to work. When we will update Wayland things will be easier.
Looks really good and responsive ! Keep up the good work :)
To me, Maynard = makes of wine gums. Seems oddly appropriate, somehow.
On the whole, we prefer Jelly Babies.
Breaking news: Raspberry Pi Foundation endorses Jelly Babies over Wine Gums. Maynards reported to be countering with budget priced raspberry pie kit.
First. This is a fabulous project. the Pi just goes from strength to strength.
Second. Thank you for the wine gum reference.
Third. I pologise for all for releasing this mind worm
Maynards Wine Gums – Set the Juice Loose!
this will be great when released … thanks for sharing the progress info..
Looks to be very fast, as fast on the Pi as Mint Cinnamon is on my 3.6 GHz desktop. We like fast in anything, especially in anything for the Pi.
Can’t wait to see the finished product! Great progress so far!
That really is amazing. The low overhead on the window manager makes me want to port it to ubuntu.
There are instructions for running it on other platforms in the Wiki…
ooo? I’m going to have to take a look. I’m making a slim version of ubuntu and want a better desktop than lxde lol
I’m very pleased to see this. This is the software project for the Pi that interests me most.
Thanks very much for providing the update.
So there will be a responsive desktop shell that still will get lagged when you launch not so lightweigh desktop application :) It probably be great for plain apps though.
The point is that the more you can offload to the GPU the faster the overall performance.
Well, not as badly. In the X11 model, apps were in charge of movement and sent every position to the X server; under Wayland this is done entirely in the compositor. So that should be much more responsive.
We are also doing work to make applications faster. We worked a lot on the browser with very good results and still quite a few areas to optimise. We are also looking at making application startup faster.
All I’m saying is that it will be good untill you starts one of the other apps that just have to have more CPU processing power. There is a thin red line there :)
That sure is real pretty :) Really looking forward to trying this out.
could the internal “spirit” engine (HVS) be used from python for other purposes?
Yes, you can access the dispmanx C library from Python, which uses the HVS.
I know very little about Wayland, I’m sure that I’ll learn more when I see it in the wild. Just curious how you launch a remote application on a bigger beefier machine and set your display back to your local client. A long time ago before security was important, it used to be:
localclientshostname ~$ xhost +remoteservershostname
localclientshostname ~$ rsh -l username remoteservershostname
remoteservershostname ~$ export DISPLAY=localclientshostname:0.0
remoteservershostname ~$ /usr/X11/bin/xclock &
These days it is more like:
ssh -Y username@remoteservershostname /usr/bin/xclock &
Or if you are very lucky (and can avoid enabling use of xwd):
ssh -X username@remoteservershostname /usr/bin/xclock &
That looks majorly impressive guys! Excellent work!
So *apparently* it was just as much or more work to amend/extend an existing graphical shell like LXDE than it was to write (yet another) one from scratch. Is that fair, or were there other considerations?
(I applaud the effort, by the way, and look very much forward to the release!)
An interesting point, and one I would be interested to know the reasoning behind.
That’s correct. We couldn’t find another shell that made sense to modify – it’s pretty early days for Wayland, and most of the shell work has been done at the high end rather than in the embedded/low-power space.
Doesn’t the Qt toolkit support Wayland? If so, RazorQt night be a possible alternative to Maynard.
Yes. LXDE uses GTK2 that, being abandoned, doesn’t support Wayland. So it would need to be ported to GTK3 first.
Then normal apps tend to work on Wayland if the toolkit does. Desktop environments, on the other hand, use directly X a lot so they need a lot of work to be ported.
Note that Maynard is not done from scratch. It uses Weston that is the reference compositor and window manager for Wayland.
fyi LXDE is being ported to QT as GTK3+ was found lacking, also with this change Wayland/Weston will be used, but it could be a year or two before it is fully usable, so toolate even for Raspbian Jessie..
lxde and razor-qt merged some time ago, why not go the QT way?
Very cool looking desktop:)
THIS LOOKS AWESOME!!!
“The Windows key triggers the overview effect”
I don’t have a windows key – I did long ago, but it’s now covered with a perfectly fitting Raspberry Pi key sticker!
I said super/windows when I first edited the video, but then it sounded too geeky ;)
That is sweet. Really looking forward to this.
Thanks for the update, and keep up the great work!
One snag with testing this that I also had with the previous Weston demos was that they completely ignore the overscan settings in my /boot/config.txt. Is that like to be fixed?
Hm, and that works in X? I can open a bug about it (or feel free to do it if you prefer, see https://github.com/raspberrypi/maynard/issues)
Should I post the bug there, or is it more likely a Wayland (or something else) problem?
Indeed, Weston does not change the video mode, nor read any information from /boot/config.txt and so far also does not use the “tvservice” to find out the real parameters of the display like refresh rate.
I simply do not know yet if or how I should account for the overscan settings. Currently Weston simply uses the full screen area that DispmanX offers. I would have assumed that already accounted for overscan settings, but apparently not?
You might want to file a Weston bug about this.
Might be worth experimenting with the overscan_scale parameter in config.txt that’s talked about here http://www.raspberrypi.org/forums/viewtopic.php?f=67&t=15700
Thanks for that – overscan_scale=1 gets things visible!
This is great, I love it!
Not to be picky, but this got me thinking; how’s that DSI-port display going?
CPC had a prototype version of this on display at the Manchester jamboree.
See here for more details from RasPi.tv -http://raspi.tv/2014/raspberry-pi-official-7-inch-dsi-prototype-preview
Sorry, here is a working link (hopefully) http://raspi.tv/2014/raspberry-pi-official-7-inch-dsi-prototype-preview
Très joli! Strength to strength indeed. More power to your pibow!
This looks amazing! Is there any chance of this working with an open-source version of the VideoCore IV driver?
Well, this is unaffected by the OpenGL ES / EGL source release, since it doesn’t use them at all. It optionally can (see the GitHub issue), but the open driver would require some small porting before it worked.
The main part of the VideoCore used here is the HVS through the DispManX API, which is not (yet?) opened. But if it were, we could use it.
Like Daniel says no EGL here. In the future we may end up using EGL for accelerated compositing in the browser. It could have a good effect on videos in particular as you could play video smoothly without having to copy frames around and it would be fast even with elements overlapping the video.
Excellent progress, I’ve been waiting for an update about that.
I have a question though: does this mean VNC won’t be possible with Wayland? Maybe there’s a replacement I don’t know about…
Not without a certain amount of work, the way things are at the moment. It’s not technically impossible to do, but it’s not something that’s high on our list of priorities at the moment.
Pronouncing Maynard (trivia) – In the town of Maynard, Massachusetts, I’ve always heard it pronounced “may – nard’, (almost but not quite “may nerd”, soft ‘n’) but at a talk (coincidently just a few miles from Maynard MA) with the New England born author Joyce Maynard, she pronounced her name “ma ‘nard” (like “ma”, as in Mom, and “nard” to rhyme with ‘hard’, with a strong ‘n’).
BTW Maynard MA was the headquarters of DEC, Digital Equipment Company, whose first PDP computers were probably not as fast as today’s Raspberry Pi.
I wondered how long it would take for the DEC connection to come up. My first job out of Uni. I still have my ID card around somewhere, employee #6xxx something. Headquaters was in an old woolens mill, and the river still ran through the basement, suitably channeled.
I don’t know the cycle time for the PDP-1, but for the PDP-8/I it was 1.5 microseconds per instruction, as I recall. That was probably the first mass produced minicomputer, with a factory in Carlton Place, Ontario that had semi-automatic wire-wrapping machines for the backplanes. Sorry, I don’t have any pictures.
BTW, the First Prize in sales contests was always a week in Maynard, Mass; second prize was two weeks…
Yeah, one of our guys was ex-DEC quite a while ago, hence the choice of particular town-near-the-Mass-Pike.
yes, “may-ned” is the way we pronounced it in DEC days,
Just tried the instructions on the Collabora website (setup-maynard.sh), all went fine, but after the boot, when typing in maynard I get:-
weston-launch:Permission denied. You should either:
– enable systemd session support for weston-launch
– or add yourself to the ‘weston-launch’ group.
I tried ‘sudo addgroup pi weston-launch’ and got:-
The user ‘pi’ is already a member of ‘weston-launch’.
Unfortunately I have no idea what “enable systemd session support” means or how I would go about doing that.
I’m using raspbian, up to date using the usual apt-get etc command
sudo maynard just hides an error message but it says something about XDG_RUNTIME_DIR not being set.
About to go round in circles methinks so I’ll stop and ask for directions.
Are you starting it from a local terminal/VT, or over SSH? The latter won’t work.
Nope, from local shell. It seems that XDG_RUNTIME_DIR is set to /run/pi, which seems ok.
I had to perform several apt-get upgrade / update / dist-upgrade before everything was fully up to date but still the same problems.
Maybe I need to run rpi-update, but I can’t anymore because of SSL issues. “gnutls: A TLS warning alert…”
Ok, fixed that using sudo UPDATE_SELF=0 rpi-update.
Still the same problem but it gave me a clue…
Finally fixed : sudo XDG_RUNTIME_DIR=/home/pi maynard.
To quit maynard – ctrl-alt-backspace to kill it.
Weird, libpam-xdg-support takes care of setting the right stuff. Is that package installed?
it’s so laggy but perfect progress, I’ve been waiting for final version. I hope the navigation bar can move any positions
Thats awesome news! Can’t wait to have this as the default Desktop environment on the Raspberry Pi.
Just one question, will we still be able to do X11 forwarding over SSH & VNC e.t.c ?
Does it able for using with touchscreen ?
Any idea for the stable version ETA?
I’m still climbing the geek ladder and can’t deal with a buggy beta version.
Wow, it looks awesome! gimme :)
Just tried this myself. The Desktop itself is very responsive and quick. The apps on the other hand… Combine this with some light-weight apps and we’re in business.
I was interesting however to see epiphany almost run a youtube video at a watchable speed. :)
It’s tempting me to change my Windows Desktop for that. Just seen it and will experiment with it…..
It so Looks Awesome.
Why not just compile the X11 modules in the gpu machine code instead of the main cpu’s code, and not WRITE a total new system, just finish the original job of converting for THIS chip’s native instruction set? What point did I miss, that we must reinvent the wheel?
Sorry, but I really don’t understand what you mean. “X11 modules in the gpu machine code instead of the main cpu’s code”?
Because the GPU runs at 250Mhz, and would be slower than the ARM for the same oprations. It’s using the HW accelerated graphics that makes things fast, and that need to be done from the ARM.
That, and porting X to a different architecture is a nightmare job!
What about running frequently used but non-essential background tasks on the GPU if the main CPU is under heavy load? In a heavy usage scenario it’d be like adding 250 MHz to the overall speed. Not sure how practical that is for a Raspberry Pi, but I do recall Apple bragging about something like that a while back.
The problem isn’t the speed of executing the X11 instruction code, it’s that its entire architecture is founded upon doing things which fundamentally cannot provide you with good performance.
Nor is Wayland a ‘total new system’; it’s been around from 2008, and has very strong support from Intel, GENIVI, Red Hat, GNOME, and others.
PS: The video demo looks super. Not knowcking the work thus far, just asking.
Looks amazing! This is something I would use a lot!
There are a form to use vnc to test wayland?
When is it coming out?
Where can I get it?
Wow. Thats the best Linux desktop I’ve seen so far (though I haven’t really looked) And looks better than windows from what I can see. Can this run on desktops?
Yep, it’ll work perfectly on a desktop machine which is otherwise capable of running Wayland/Weston.
I tried downloading and got this message
pi@raspberrypi ~ $ sudo wget http://raspberrypi.collabora.co.uk/setup-maynard.sh–2014-04-21 02:41:39– http://raspberrypi.collabora.co.uk/setup-maynard.sh
Resolving raspberrypi.collabora.co.uk (raspberrypi.collabora.co.uk)… 192.168.1.8
Connecting to raspberrypi.collabora.co.uk (raspberrypi.collabora.co.uk)|192.168.1.8|:80… failed: Connection refused.
Help Please, THX
Ton van Overbeek
The host name raspberrypi.collabora.co.uk in your case resolves to internet address 192.168.1.8. Addresses of the type 192.168.xx.xx are on your local network at home/work. Obviously your router/firewall/Pi does not allow access to sites outside your home/work network.
To check, see if you can reach e.g. http://www.google.com.
Are you running iptables on your pi?
Anyway for me raspberrypi.collabora.co.uk resolves to 220.127.116.11.
Hope you can solve it.
Thanks. I can sure can reach google. I can also reach this site. I don’t know what iptables is so I don’t know if I’m running it. Would it work if I went wget http://18.104.22.168/setup-maynard.sh? Could I edit my router to let me.
Thanks Rasp User
Thanks for the help ton. The firewall in my router was blocking it so I managed to tweak the settings to make it work.
hey!, it looks awesome! might someday beat windows 8.1 even!
It will beat mac to.
Sweet! I hope it comes out soon. Do you know when it will come out?
How do you download it?
Go to http://raspberrypi.collabora.co.uk/maynard.html for instructions on how to download it. One thing you need to do is go into raspi-config accessed using sudo raspi-config and change the boot settings to boot to the non-graphical os.
Thanks a lot!
Glad. I could be some help to you
I downloaded Maynard to give it a go. My initial reactions were that it seemed to take forever to start, and applications also seemed to start slowly.
I know it is early days, so I didn’t mind that many of the entries in my menu didn’t work, but couldn’t find how to exit!! I eventually open a terminal and did a reboot.
While I would welcome any extra speed, if I can’t have a Dock I will stick with the old (I am one who abandoned Ubuntu when they went to Unity).
On restarting with the old startx, it looked OK, but all the entries in the “Other” menu seem to have changed. They all got larger, and the Pi Store icon now takes up 1/4 of the screen.
App start up time is something that cannot be accelerated by the GPU as it’s not graphics related (and by apps you need to include maynard itself). Once running, a lot of the graphical heavy lifting is now done by the GPU.
How can I help or contribute (maybe by porting more packages/applications)?
Hmm. The problem with applications is that most of them require GTK+3, which isn’t included in Raspbian; supporting this becomes a bit of a struggle. However, you could certainly host a separate repository containing GTK+3 versions of applications, which should work just fine under Wayland.
Either that, or if you wanted to help out with shell development, we totally welcome contributions – see the GitHub page. :)
What about Qt applications? It’s a framework that actually targets embedded system so it should be better for this than Gtk3 and there are a lot of Qt applications. For example VLC which are of great importance…
Will it be scalable? Can i use your desktop for example for embedded-Displays with a small res (320×240 for example)?
We haven’t tested it going down that low, but to be honest you’d probably struggle. It’s definitely doable in a technical sense, though …
PURE AWESOME O_O !!!!
This is what’s missing from modern computing. Keeping a fairly standard hardware platform and pushing it to the limits over time. Back in the days of the good old Micro Computer I’m sure you got the same improvement in performance over time from programmers getting to know the hardware and pushing it more, as you do now from upgrading to new hardware. A good chunk of the performance of new hardware seems to be lost to programmers anticipating the next generation of upgrades too.
I’m sure there’s a middle ground, and being able to upgrade without scrapping your back catalogue of software the way you had to, upgrading from a BBC Micro to an Amiga or whatever, is an advantage of the current way. I guess that’s one of the many strengths of Linux and other open source software :)
Actually it does still happen, just in a more limited space. Game consoles are the best example I know of, on the PS3 and Xbox360 developers have been pushing the limits for 8 years! Just look at Halo 3 v.s. Halo 4! Massive improvement on the same hardware.
This is great! And it even works on my trusty old Model B Rev A.
Really looking forward to the first release.
wow, it looks very promising.
you put a lot of effort into software. that’s great!
but i wonder… will this whole work have to start anew, once a new raspberrypi comes out in a few years? or does broadcom have downwards compatible SOCs and videocores where your current work can be reused?
it would be a pity if after the release of a new raspberrypi there again was a 2-3 years period in which the desktop has to be made faster and so on.
The Maynard desktop is built on top of Wayland, so actually already works on multiple platforms. So as long as the platform has a Wayland port, the desktop will work. So there should be decent forward compatibility for any future Pi’s.
Most of the work is not platform-dependant.
Some optimisations are specific to ARMv6 and to the Pi, but that’s unavoidable if you want to squeeze as much as possible from the HW.
For this specfic case, Maynard is *completly* independent from the Pi and runs perfectly on my x86-64 computer.
Some of the wayland work we did is specific to the Pi and that’s the reason why you get such smooth animations.
is Touchscreen Support include the kernel?
A colleague tried it with a touch screen, but unfortunately our GTK copy doesn’t really deal with it.
There were also a few calibration issues.
Heck, that’s awesome!
very very good.
Well done, WAANTT!!!
(Gotta say, watching the video on my ancient PC reminded me of the old joke about a man and his wife sitting on a sofah, watching TV.
Suddenly an advert for a Hi-res TV comes on.
“Cor,look at the resolution on that! Much better than our telly…”
Wow, I’m so excited! It’s like a lightweight GNOME 3!
Please tell us when it will going to release these!
It might be helpful for making a rental pc
Really Looks great, but will this mean raspien will take up more space?
Probably, but release is a while away, and you can always delete it if you don’t need it.
I finally got a chance to play with this today and you all have done some amazing work. It’s coming together very nice. My web apps ran just fine in the new browser, which is also coming along great.
You got me chomping at the bit for more!
Anyone know what we can hope for wrt Qt/ OpenGL widget support?
Any upcoming news about this wonderful GUI ?
Any relevant news will almost always be posted on the blog when it becomes available. So at the moment, no.
No commits in the public repo since may :-(
I can’t launch maynard, when I enter : sudo maynard I got message which says ‘ it.org/wiki/specifications/basedir-specis not set’ and nothing else
(I installed Maynard with this script http://raspberrypi.collabora.co.uk/maynard.html )
Great work! – thank you for this.
My vision is to have many raspis as terminal server clients connecting to my server via xRDP. Things works fine in our pure linux driven network so far except of the video performance under lxde as we know. So here is my vote to implement remmina as the next appliacation with the wayland-api. If there is anything I could do to support this, please tell me. Or might there be a better concept / solution? thank you. -thomas
I ran the script to install Maynard on my Raspberry Pi. It started replacing a huge list of what appear to be core system libraries. Um… Is this going to have a noticeable effect on the current standard desktop?
The motivation of this project is moot.
LXDE completed the transition to Qt5, and now they’re looking at Wayland support in a near future.
Do you really think you can complete a decent DE before they get Wayland support?