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.

127 comments

david avatar

It looks great!

Johnathan Bubs avatar

It’s great!

Michael Horne avatar

Looks very good – clean, modern, slick.

Eric Johnson avatar

I’m impressed! It looks incredibly clean and modern. Nice job!

Roger avatar

I like its simplicity… but looks like it will take a long time to replace Raspbian default desktop as there isn’t X11 support.

Marco Barisione avatar

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.

Marco Bax avatar

Looks really good and responsive ! Keep up the good work :)

Tom W avatar

To me, Maynard = makes of wine gums. Seems oddly appropriate, somehow.

Liz Upton avatar

On the whole, we prefer Jelly Babies.

Kemp avatar

Breaking news: Raspberry Pi Foundation endorses Jelly Babies over Wine Gums. Maynards reported to be countering with budget priced raspberry pie kit.

Ric.colasanti avatar

Three things.
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!
https://www.youtube.com/watch?v=B-xG3D8OMQk

don isenstadt avatar

this will be great when released … thanks for sharing the progress info..

CaptainofSpray avatar

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.

RoboticGolem avatar

Can’t wait to see the finished product! Great progress so far!

Tim avatar

That really is amazing. The low overhead on the window manager makes me want to port it to ubuntu.

James Hughes avatar

There are instructions for running it on other platforms in the Wiki…

dan3008 avatar

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

Chuckaluphagus avatar

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.

Piotr avatar

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.

James Hughes avatar

The point is that the more you can offload to the GPU the faster the overall performance.

daniels avatar

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.

Marco Barisione avatar

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.

Piotr avatar

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 :)

Drentsoft avatar

That sure is real pretty :) Really looking forward to trying this out.

ian avatar

looks good,

could the internal “spirit” engine (HVS) be used from python for other purposes?

James Hughes avatar

Yes, you can access the dispmanx C library from Python, which uses the HVS.

3xBackup's avatar

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 &

Manjot Chana avatar

That looks majorly impressive guys! Excellent work!

Ed avatar

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?

Ed avatar

(I applaud the effort, by the way, and look very much forward to the release!)

James Hughes avatar

An interesting point, and one I would be interested to know the reasoning behind.

Eben Upton avatar

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.

David Gee avatar

Doesn’t the Qt toolkit support Wayland? If so, RazorQt night be a possible alternative to Maynard.

Marco Barisione avatar

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.

Ed avatar

Thanks all.

Martin avatar

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..

fanoush avatar

lxde and razor-qt merged some time ago, why not go the QT way?

Mark Adams avatar

Very cool looking desktop:)

bertwert avatar

THIS LOOKS AWESOME!!!

Hove avatar

“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!

Marco Barisione avatar

I said super/windows when I first edited the video, but then it sounded too geeky ;)

Bill Stephenson avatar

That is sweet. Really looking forward to this.

Thanks for the update, and keep up the great work!

Peter Ryan avatar

Looks brilliant!

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?

Marco Barisione avatar

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)

Peter Ryan avatar

Should I post the bug there, or is it more likely a Wayland (or something else) problem?

Pekka Paalanen avatar

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.

Thanks,
pq

AndrewS avatar

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

Peter Ryan avatar

Thanks for that – overscan_scale=1 gets things visible!

Andy avatar

This is great, I love it!

Not to be picky, but this got me thinking; how’s that DSI-port display going?
Andy

Aaron avatar

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

Aaron avatar
IrishFramboise (AlanMc) avatar

Très joli! Strength to strength indeed. More power to your pibow!

Evan Black avatar

This looks amazing! Is there any chance of this working with an open-source version of the VideoCore IV driver?

daniels avatar

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.

Marco Barisione avatar

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.

Solenoid avatar

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…

Liz Upton avatar

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.

john avatar

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.

Phil Olynyk avatar

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…

daniels avatar

Yeah, one of our guys was ex-DEC quite a while ago, hence the choice of particular town-near-the-Mass-Pike.

Kris avatar

yes, “may-ned” is the way we pronounced it in DEC days,

ned avatar

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.

daniels avatar

Are you starting it from a local terminal/VT, or over SSH? The latter won’t work.

ned avatar

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.

Looks nice.

Marco Barisione avatar

Weird, libpam-xdg-support takes care of setting the right stuff. Is that package installed?

zoel avatar

it’s so laggy but perfect progress, I’ve been waiting for final version. I hope the navigation bar can move any positions

Hussam Al-Hertani avatar

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 ?

KZL avatar

Amazing !

Does it able for using with touchscreen ?

Joe avatar

Any idea for the stable version ETA?
I’m still climbing the geek ladder and can’t deal with a buggy beta version.

JoBe avatar

Wow, it looks awesome! gimme :)

Jeff Ledger avatar

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. :)

islamike avatar

It’s tempting me to change my Windows Desktop for that. Just seen it and will experiment with it…..
It so Looks Awesome.

Kirk avatar

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?

Marco Barisione avatar

Sorry, but I really don’t understand what you mean. “X11 modules in the gpu machine code instead of the main cpu’s code”?

James Hughes avatar

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!

Charlie avatar

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.

daniels avatar

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.

Kirk avatar

PS: The video demo looks super. Not knowcking the work thus far, just asking.

Austin Hanna avatar

Looks amazing! This is something I would use a lot!

Saeron avatar

There are a form to use vnc to test wayland?

tim avatar

When is it coming out?

tim avatar

Where can I get it?

Scot avatar

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?

daniels avatar

Yep, it’ll work perfectly on a desktop machine which is otherwise capable of running Wayland/Weston.

Rasp User avatar

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 avatar

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 93.93.128.223.
Hope you can solve it.

Rasp User avatar

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://93.93.128.223/setup-maynard.sh? Could I edit my router to let me.

Thanks Rasp User

Rasp User avatar

Thanks for the help ton. The firewall in my router was blocking it so I managed to tweak the settings to make it work.

Anchit Mishra avatar

hey!, it looks awesome! might someday beat windows 8.1 even!

Mike avatar

It will beat mac to.

Mike avatar

Sweet! I hope it comes out soon. Do you know when it will come out?

Jim Tix avatar

How do you download it?

Please Help

Rasp User avatar

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.

Jim Tix avatar

Thanks a lot!

Rasp User avatar

Glad. I could be some help to you

Ian Binnie avatar

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.

James Hughes avatar

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.

sac avatar

How can I help or contribute (maybe by porting more packages/applications)?

daniels avatar

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. :)

Mattias Eliasson avatar

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…

Matthias Weiß avatar

Very nice!
Will it be scalable? Can i use your desktop for example for embedded-Displays with a small res (320×240 for example)?

daniels avatar

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 …

ric96 avatar

PURE AWESOME O_O !!!!

Paul Tansom avatar

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 :)

Scot avatar

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.

Brian avatar

Oh Yea!
This is great! And it even works on my trusty old Model B Rev A.
Really looking forward to the first release.

horace avatar

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.

James Hughes avatar

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.

Marco Barisione avatar

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.

frank avatar

is Touchscreen Support include the kernel?

Marco Barisione avatar

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.

mrpi64 avatar

Heck, that’s awesome!

su610 avatar

very very good.
clean
modern….

Andy Crofts avatar

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…”
(Groan!)

anonymous avatar

Wow, I’m so excited! It’s like a lightweight GNOME 3!

Anthony Quebec avatar

Please tell us when it will going to release these!
It might be helpful for making a rental pc

Frowneyfox avatar

Really Looks great, but will this mean raspien will take up more space?

James Hughes avatar

Probably, but release is a while away, and you can always delete it if you don’t need it.

Bill Stephenson avatar

Wow!

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!

Tom E avatar

Anyone know what we can hope for wrt Qt/ OpenGL widget support?

Runfish avatar

Hey there,

Any upcoming news about this wonderful GUI ?

Peace

James Hughes avatar

Any relevant news will almost always be posted on the blog when it becomes available. So at the moment, no.

sam avatar

No commits in the public repo since may :-(
https://github.com/raspberrypi/maynard/commits/master

ks4 avatar

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 )

tul avatar

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

Charlie avatar

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?

su avatar

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?

Comments are closed