Atomic Workstation

On Friday at 16:45 (Turing – G29) by Kalev Lember

Linux distributions have been traditionally put together from individual packages. In case of Fedora it’s RPM packages. They have served us well, but they also have a number of shortcomings: with small individual components the testing matrix explodes when we have to consider different package versions, and upgrading such systems is often irreversable.

In this talk I will lay out a plan how we are going to put together an atomic base system in Fedora Workstation with flatpaks for individual applications. I will demo the latest progress we’ve made and show a great many screenshots.

Bringing GNOME home to Ubuntu

On Sunday at 14:00 (Turing – G29) by Tim Lunn

I am a co-founder and technical lead of Ubuntu GNOME, with our goal to bring a pure GNOME experience to Ubuntu some might wonder where that might be heading given the recently annouced decision for Canonical to drop Unity and switch to GNOME. This will bring a new set of challenges for the Ubuntu GNOME team, while our distro will not likely exist as a seperate entity and we will merge development resources with the Canonical desktop team, we will remain as a community team to avoid the possible distinction between community and Canonical may getting blurred.

I will open my talk with a brief history of the Ubuntu GNOME project, why we started it and what our goals were. We started the project with goal of bring pure gnome-shell to Ubuntu. At the time GNOME 3 was incredibly broken on both Ubuntu and Debian to the the point of being unusable. We managed to get things into really good shape over the years but there have been challenges, mostly relating to the co-existence with Unity, and having to maintain large patch delta’s to work with Unity also.

Then comes the exciting stuff what is the future of GNOME on Ubuntu, where does the Ubuntu GNOME team stand in the future? Canonical are already showing some resistance towards core components of the GNOME stack, for example things like tracker and gdm. What part will Ubuntu GNOME play in pushing our visions into the core Ubuntu Future GNOME desktop? I can’t be incredibly specific on this at this point we are still in discussions with Canonical teams at this stage, but all should be clear by GUADEC. This should fill the bulk of my talk, I see exciting oppurtunities ahead and some more challenges going forward before we can get Canonical aligned with GNOME. I will discuss these in detail during my talk.

Building a secure desktop with GNOME technologies

On Sunday at 11:30 (Hopper – G44) by Matthew Garrett

The move towards Wayland and container-isolated application deployment brings a range of security benefits. But broad isolation isn’t enough – we still need fine-grained control over access to resources, otherwise it’s still practical for a single compromised application to leak significant quantities of personal data.

This presentation will examine existing application isolation mechanisms and identify cases where they fall short. It will then go on to cover existing kernel technologies that allow us to provide even stronger restrictions and control, and how it’s possible for us to build environments that provide high levels of security without forcing users to give up the freedom to run whatever software they want.

Building interfaces from the future

On Sunday at 10:30 (Hopper – G44) by Tobias Bernard

Animations are the future of interface design. They enable developers to make interfaces more understandable by offloading processes from the user’s brain to the screen. However, in many cases animations are simply added as transitions between independently designed screens. This can result in animations contradicting each other spatially. I co-wrote an article about why this is a problem [1] and outlined a solution: Designing semantic components which change over time, and then using these to compose interfaces.

Even though the industry seems to largely agree that this is the way forward, there are very few interfaces implementing these ideas. I believe the main reason for this is that the current generation of layout technologies is built for static layouts with strict hierarchies. This makes it prohibitively difficult to build interfaces where components move fluidly between different states.

I will show some interface prototypes I built and explain why they were so difficult to implement with current technology. Finally, I will outline some ideas for a better layout API, to make building awesome, fluid interfaces from the future more feasible.

[1] https://alistapart.com/article/motion-with-meaning-semantic-animation-in-interface-design

Building your GNOME app anywhere with Meson

On Saturday at 10:00 (Turing – G29) by Nirbheek Chauhan

With the new contribution workflow enabled by GNOME Builder, it is now trivially easy for newcomers to clone a project, build it, and hack on it.

This talk is about how you can use Meson’s subprojects and wrapdb to have a very similar experience on any operating system with just Meson and git.

At the same time, this feature is also distro-friendly since all this machinery can be turned off with a single option, telling Meson to only use dependencies provided by the system.

Continuous: Past, Present, and Future

On Saturday at 12:15 (Turing – G29) by Emmanuele Bassi

Since 2012, a service in the GNOME infrastructure has been constantly building GNOME modules, committing the result to Ostree, and running automated tests on the whole OS. From a single Git commit to a full blown virtual machine in a matter of minutes. This service is called GNOME Continuous, our own continuous integration and delivery pipeline.

Continuous has been the major driver to improve the quality of the whole GNOME project: for developers, by building their work; for designers, by providing a bootable VM to perform design iteration and QA; to newcomers, by ensuring that tools like jhbuild would be more reliable; to distributors and OSVs, who could ensure their products would be based on a reliable set of components.

In this presentation we will talk about how Continuous came to be, thanks to the work of Colin Walters; how it works; what are the goals of a CI/CD pipeline like Continuous; and where do we go from here.

Decentralised open communication with Matrix.org

On Saturday at 11:30 (Hopper – G44) by Matthew Hodgson

Matrix.org is a relatively new open standard for decentralised realtime communication – providing an open global network (including end-to-end encryption) that links together communication silos such as Slack, IRC, Gitter, Telegram, XMPP etc. Matrix has gained some popularity in the GNOME developer community since GIMPNet was bridged into the wider Matrix ecosystem in March (https://mail.gnome.org/archives/desktop-devel-list/2017-March/msg00033.html), and meanwhile Matrix’s goals of entirely open source and democratised communication are quite aligned with the ethos of the GNOME project.

This talk will be a formal introduction and demonstration of the Matrix ecosystem, its APIs and spec, its clients/servers/bridges/bots, its end-to-end encryption, its goals and its current status, as given by the project lead.

Different ways of outreaching newcomers

On Friday at 16:45 (Hopper – G44) by Julita Inca

Due to the amount of bugs in several GNU/Linux projects such as GNOME or Fedora, good volunteers and new contributors are crucial to fix them and make the projects better.
I emphasized the phrase good volunteers and new good contributors because is not only to have a positive willing to do things here.
Many other factors besides the knowledge of the project are fundamental, like interaction, usability, English skills, GNOME style in programming and following the pattern of designing.
In my local community I have encountered many pros and cons during almost six years of promoting the Fedora and GNOME projects in universities and social events. During my talk I will share those different experiences and the vulnerabilities and improvements I faced in the way.

Ding dong, GdkWindow is dead

On Sunday at 16:45 (Hopper – G44) by Carlos Garnacho

GTK+4 is getting more generic and simple, and less X11-centric. This talk will cover what this means for GtkWidget development, and the main differences with GTK+3.

Dreaming of a better home media experience

On Friday at 14:45 (Hopper – G44) by Arun Raghavan

We find ourselves in a world where there are an increasing number of ecosystems of computing devices and appliances that (try to) work seamlessly together to allow people to listen and watch what they want, when, where and how they want to in their homes — on their TVs, tablets, through multi-room speakers, and so on.

We’ve made some headway in enabling these in GNOME — via the Sharing panel, and the massive amount of plumbing underneath it — but there is a huge gap between what we have, and where I think we need to be.

So this talk is in three parts:

1. Where we are — both in terms of the user experience (Sharing) and the software stack (Rygel, GUPnP, PulseAudio, GStreamer)

2. Where I’d like us to be — what kinds of connectivity do we want to enable? Is it possible to do this with commodity hardware?


3. How we can get there — existing pieces to build on top of, missing pieces of the stack to add, and tying it together in a way users can “get”

Fantastic Layouts And Where To Find Them

On Saturday at 10:00 (Hopper – G44) by Martin Abente Lahaye

Emeus is a constraint-based layout manager and container widget for GTK+.

Emeus allows programmers and designers to describe the UI in a way that can be more natural from the UI building perspective, more expressive and efficient than stacking boxes inside boxes.

At Endless we have been developing Emeus to provide richer visual experiences in our apps and better tools for engineers and designers to work together.

Here’s what you’ll see in this talk:

* A new way of creating rich layouts for your GTK+ app.
* A display of layouts and widgets that we created at Endless.
* How it brings programmers and designers together.

Flatpak and KDE, and the state of Qt integration in GNOME

On Sunday at 14:00 (Hopper – G44) by Jan Grulich, Martin Bříza

Flatpak is a tool providing new and easy way how to distribute desktop applications. While it is pretty well supported in Gnome, we in KDE have been trying to catch up and offer same experience. In this talk, Jan Grulich will share with you what KDE has been lately up to and what has been accomplished during last year.

Martin Bříza will also cover how we advanced with how well are Qt applications integrated into the overall GNOME experience.

Topics covered will include the state of the Adwaita and Highcontrast themes, new QGnomePlatform (abstract platform theme backend for GNOME) features and Wayland support.

Flatpak status update and future plans

On Friday at 11:30 (Turing – G29) by Alexander Larsson

Flatpak is an application distribution and runtime system that brings sandboxed linux desktop apps to the masses.

This talk will give a status update of the flatpak project and what has happened in this year. It will also talk about new and interesting things happening in the echosystem around flatpak and where we’re going in the future.

GNOME Build Strategies and BuildStream

On Sunday at 12:15 (Turing – G29) by Tristan Van Berkom

In this talk, I will start by outlining our motivations behind creating this new meta build system, based both on the emergence of new distribution models and also lessons learned from existing meta build system implementations.

Then we will briefly explore the abstract and rather simple design of BuildStream: A format and engine for the modeling and processing of pipelines composed of elements which perform mutations on filesystem data from inside an isolated sandbox environment.

Finally we will explore the various use cases of building GNOME modules and outline how we intend to apply this new technology to improve the GNOME Developer experience in various ways.

GNOME Foundation AGM (part 1)

On Saturday at 16:00 (Turing – G29) by GNOME Board

The annual general meeting of the GNOME Foundation: team reports

GNOME Foundation AGM (part 2)

On Saturday at 17:15 (Turing – G29) by GNOME Board

The annual general meeting of the GNOME Foundation: Q&A with the board.

GNOME to 2020 and beyond

On Saturday at 15:00 (Turing – G29) by Neil McGovern

In this talk, I’ll have a look at some of the challenges that GNOME faces at the moment, a brief look into the future, and how we can meet those head on and thrive!

How to get better mileage out of Glade

On Sunday at 16:45 (Turing – G29) by Juan Pablo Ugarte

In this talk we will go trough most of the not so known features of Glade and introduce a refreshed UI which will improve the regular design workflow by replacing the good old tool palette.

The walk trough will include:
– creating custom composite widgets
– a catalog to add support for them
– JavaScript objects in Glade

As a bonus, I might, just might, show my crazy idea to rewrite Glade from scratch for Gtk4, just so that we can discuss it over some beers!

Interns lightning talks

On Friday at 17:15 (Turing – G29) by GSoC and Outreachy Interns

Lightning talks of Google Summer of Code and Outreachy interns

Keynote: The Battle Over Our Technology

On Friday at 14:00 (Turing – G29) by Karen Sandler

Karen’s keynote will take a broad look at ethics in technology, a topic that is fundamental to many of those involved in GNOME and something that becomes ever more relevant as technology and society develop.

LibreOffice and GNOME

On Saturday at 10:30 (Hopper – G44) by Michael Meeks

Come and hear about the latest developments in LibreOffice and see how we continue to make the Linux Desktop and Free Software ever more useful for business users.

Get an update on the awesome work from Caolan polishing our gtk3 and wayland support. Checkout the latest new features in the LibreOfficeKit API – ripe for deeper use in GNOME Documents – and the potential for testing out innovative new GNOME editors here. See LibreOffice Online – inspired by gtk+/broadway – and what it can do
for you.

Also catch random thoughts and demos on whatever seems apposite.

Lightning talks

On Sunday at 17:15 (Turing – G29)

Fast-paced and focused talks on any and all subjects. All talks will be subject to a strict time limit of 5 minutes on stage (including setup). Slides are welcome, but not compulsory.

You will be able to sign up for a lightning talk slot from 11.00AM on Sunday 29th on a signup sheet at the info desk. Talks will be accepted on a first come, first serve basis.

Limited connectivity, Endless apps!

On Friday at 11:30 (Hopper – G44) by Joaquim Rocha

The Endless OS has always been a bit different from regular Linux distros in that it offers an immutable system managed by OSTree and thus has always had an alternative way of installing applications.
It is also one of the first operating systems using Flatpak as the main way of managing applications by the user.

In this talk I will introduce the evolution of the application story in the Endless OS, focusing on the adoption of Flatpak applications and the changes to GNOME Software to integrate it better with the EOS desktop and to improve the UX for Endless’ users.

I will also talk about the problems of shipping apps in a world of very unreliable or nonexistent internet connection and the solutions we implemented to give the best experiences to our users. This talk should be interesting not only for those who want to know more about application management in EOS but also for those who want to know more about how GNOME Software works and the and possibilities it offers with its plugins system.

Modern Javascript in GNOME

On Sunday at 10:00 (Turing – G29) by Philip Chimento

GNOME 3.24 brought a lot of improvements in GJS, the Javascript language bindings for GNOME, that power GNOME Shell, Polari, GNOME Documents, and many other apps.

We moved to a more modern version of the Javascript engine. We gained support for a lot of cool language features that take some of the rough edges off of Javascript’s shady reputation. For GNOME 3.26 we’ll continue this modernizing process, and start improving the developer experience in GJS as well.

Here’s what you’ll see in this talk:
– Cool stuff you never knew you could do in GJS!
– How to modernize your app with ES6 features!
– Debugging, documentation, and other developer tools!
– Sneak peek of what’s to come in 3.26 and how you can help!

Mutter/gnome-shell state of the union

On Saturday at 10:30 (Turing – G29) by Carlos Garnacho, Florian Müllner

Shell present and near future.

Newcomer Genesis Evolution

On Friday at 12:15 (Hopper – G44) by Carlos Soriano, Bastian Ilsø

The newcomer guide is made for newcomers to get started with GNOME development. Bastian Ilso and Carlos Soriano will tell the story of how the newcomer experience changed in the past year and how that had a big impact on newcomer contributions, developer workflow and the image of the GNOME community.
At the end of the talk we will have an open debate about what the next steps should be to improve the experience. What do you think newcomers are looking for? What should the ideal workflow be?

On mice, touchpads and other rodents

On Sunday at 14:45 (Turing – G29) by Peter Hutterer

In the beginning there was a keyboard. Then came the mouse. Then the touchpad, the mouse wheel, the trackpoint, the graphics tablet, the joystick, the touchscreen, the touchpad without buttons but with pressure, the pen tablet with touch, the joysticks with touchpads, the touchpad with trackpoints, the touch-capable mouse, gestures, … it all got rather complicated.

Over the last few years, we had a massive revamp of the input stack on our desktops. This talk is a tour starting with lowest levels of contemporary input devices and their common features and device types, going up through the intermediate levels where we add a lot of the software features (like buttons on a touchpad) to the new bits and pieces we’re adding to X and Wayland to support these features all the way to the application.

Open talk

At different times by to be announced

20 minute slots for talks and discussion panels to be submitted and selected by attendees on-site. This is your chance to present cutting edge developments or anything that did not make it into the normal schedule.

You can propose talks from 11.00, and other attendees will add a vote to the ones that they would like to see. At 15.30, the talk with the most votes will be selected and scheduled, so keep an eye on schedule board!

Please Use GNOME Web

On Friday at 10:30 (Turing – G29) by Michael Catanzaro

The web browser is indisputably the single most important component of any operating system, and GNOME is no exception. Cross-platform browsers like Firefox and Google Chrome work well everywhere, but at the expense of platform integration. Cross-platform browsers cannot deliver a well-integrated user experience comparable to the Microsoft Edge or Safari web browsers. If you haven’t used one of these two browsers recently, you might not even realize what you’re missing on Linux. GNOME Web is the only browser that can seriously hope to provide comparable desktop integration and user experience, but it suffers from lack of users and contributors. Distributions that ship GNOME with Firefox, as well as GNOME contributors that primarily use other browsers, are seriously harming our effort to improve GNOME Web. To improve quality, we need all GNOME hands on deck to test regular daily usage of GNOME Web, report bugs, and attract new users and contributors.

Recipes – Lessons learned from creating a new app

On Sunday at 11:30 (Turing – G29) by Matthias Clasen, Emel Elvin Yildiz

Cooking and recipes is not a new topic for the GNOME community.
All the way back to 2007, the idea of a GNOME cook book was already around (https://wiki.gnome.org/GnomeCookbook). For one reason or another, we never quite got there – but the idea has stuck around, and after Guadec last year, the two of us got together to finally make GNOME recipes a reality.

Our talk will cover the original design goals and the evolution of the design from paper mock-ups and ideas, to refining a raw prototype and to the complete application that we have to today. We will touch on the interaction between design and development and how you can be successful in this even when you have to bridge a 7 hour time differential.

We will take a look ahead at whats coming in 3.26, and how the original design goals are evolving and expanding as we build out the application.

On the technical side, we will explore some of the challenges and lessons learned during the development of recipes, and we will explain how writing this application was useful for developing and refining new technologies such as sandboxes, portals and new build systems. There may be an aside about portability.

Of course, there will be a demo of recipes.

Replacing C library code with Rust: what I learned

On Saturday at 11:30 (Turing – G29) by Federico Mena Quintero

I have been working on replacing the C code in librsvg, GNOME’s SVG rendering library, with Rust. Rust is one of the few high-level languages that actually generates object code, which in turn can be linked into compiled C code.

What started as an experiment in replacing gnarly C code with clean Rust code, eventually turned into a full porting effort. Librsvg’s public API/ABI remain the same as before, and only the internals have Rust code in them. The result is a much safer library with trustworthy code. Not only is the code safe by Rust’s nature; it now has a bunch of unit tests that would have been very cumbersome to write before.

This talk will explore:

* Brief intro to Rust’s benefits and philosophy.

* Tips for replacing C code with Rust.

* Refactorings that are needed in C to replace it with Rust.

* Refactorings that are possible once Rust is in place.

* Going from a codebase with zero unit tests to one that has a bunch of tests!

* Having a mixture of C and Rust code for certain implementation patterns.

* Replacing scary C parsers with safe Rust parsers.

* How Rust clarified my thinking.

* Can distros ship this?

* Should we replace GNOME library code with Rust, in general?

Resurrecting dinosaurs, what can possibly go wrong

On Sunday at 14:45 (Hopper – G44) by Richard Brown

Containerised Application technologies like AppImage, Snappy and Flatpak promise a brave new world for Linux applications, free from the worries of shared libraries and dependency issues. Just one problem, this is a road long travelled before, such as in the application dark ages of Win32 applications and DLLs. And it worked out so wonderfully there… Do we risk a future where, like the resurrected dinosaurs of Jurassic Park, this family of applications will break their containment and start eating our users? This session will try to present a balanced argument about the situation, frankly discussing the benefits promised by these technologies, but highlighting the very real issues and risks their widespread adoption could, and in some cases are, already bringing to the table.

The talk with cover the promised benefits of application containers, such as AppImage, Snappy and Flatpak. It will detail the empowerment of developers who use the technologies, the ability for upstream projects to have a much closer role in delivering their software, and the benefits that brings to both the upstream projects and their users. But as a counter to those benefits, the session will detail some of the risks and responsibilities that come with that technology. The complexities of library integration, the risk of introducing new forms of dependency issues, and the transference of responsibility for those issues, plus security, away from the current Distributions delivering upstream projects towards those upstream projects directly. As a conclusion, the session will present some suggestions to upstream projects adopting these technologies to start them down the road of accepting those responsibilities directly, or working more closely with existing Distribution projects to share the burdens these technologies now provide.

Robustness of GNOME

On Sunday at 12:15 (Hopper – G44) by Jonathan Kang, Chingkai Chu

I’m Jonathan Kang, a GNOME hacker from China. I currently maintain Logs, and contribute to other projects. My copresenter is Chingkai Chu who is a QA engineer at SUSE and he has been focused on Gnome testing and openQA for two years.

We’ll talk about how currently GNOME applications are tested using different technologies. And then introduce the approach of using openQA to test GNOME applications.

Our talk can be divided into three parts:
1. Why should we do quality assurance
– We’ll talk about this from a GNOME hacker and a GNOME QA tester’s view.

2. The current technologies used in GNOME projects for testing
– It’s mainly about the methods GNOME community currently uses to do the testing, like dogtail, glib unit test, gnome continuous and etc.

3. Introduce what I did with openQA for testing my maintained project and discuss the possibility of using it for other projects
– openQA features overview and how we use it in SLE Desktop team
– Gnome automation testing approach using openQA

Seamless integration to hack desktop applications

On Friday at 14:45 (Turing – G29) by Simon Schampijer

In the last months Endless achieved another milestone to allow their users to transition to learners. A new feature has been developed that let’s the user peek at the code that runs an application, modify it and run the new version of that application. A very challenging series of steps has been simplified: the app source will be located and downloaded automatically, then displayed in GNOME Builder and from there it can be explored, modified and run.

The Feature spawns across three core GNOME technologies: the EOS Shell (derivative of the GNOME Shell), Flatpak and GNOME Builder.

The authors aim is that this talk is suitable for a broad audience, hoping to find the right balance between demonstrating the user interaction, talking about design decisions and giving an technical overview of the components involved.

State of the Builder

On Friday at 12:15 (Turing – G29) by Christian Hergert

Another yearly update on what Builder can do for you, what has been added, and how your contribution workflow can be simplified.

Some topics include:

– Making your development setup quick & easy w/ Flatpak
– Profiling your project to find performance issues
– New build systems and integration points for plugin authors
– Debugging your project
– How to quickly start contributing to an existing project


On Friday at 10:30 (Hopper – G44) by Allan Day

This year, GNOME turns 20. Over the course of its history, the project has pioneered new ways of working and has set out a powerful mission for itself: from championing usability and accessibility, to establishing the six month release cycle, GNOME has been at the forefront of Free Software development. However, there are also risks for a project that has been running this long: collective knowledge can be forgotten, and it is easy to lose touch with the beliefs that give a project purpose.

In this talk, I’ll ask the question: what is it that defines the GNOME project? In attempting to provide my own answer, I’ll describe the principles that I think make GNOME so important. I’ll also recount stories from GNOME’s history, and in so doing make a case for what constitutes the project’s folklore. Finally, I’ll ask the question: how do we ensure that, as GNOME looks to the future, the project continues to nurture these traditions?

The History of GNOME

On Saturday at 14:00 (Turing – G29) by Jonathan Blandford

Happy Birthday GNOME! Ever wonder why the project is the way it is? The GNOME project has had a long and exciting ride to this point. I’ll go through some of the early moments of the project that led us to the desktop that we know and love today.

The Inbetweens — why transitions matter.

On Sunday at 10:00 (Hopper – G44) by Jakub Steiner

After spending considerable amount of time prototyping designs for GNOME, over and over again I’ve met with resistance to transitions as being a “waste of CPU/GPU time” and not enjoying a wide acceptance among developers.

I’ll present my case as to why transitions are helpful conveying meaning and spatial awareness.

Tracker – present and future

On Saturday at 12:15 (Hopper – G44) by Carlos Garnacho

Tracker has become a foundation for many core apps. It has provided a common metadata store for applications to share, making all of the data a giant interconnected graph.

However, times change. There’s now initiatives like flatpak that make this interconnected graph more accessory, or even not desirable. This talk will cover the plans to make Tracker a good citizen in the sandboxing world, and what this means for applications.

What’s Coverity static analysis ever done for us?

On Sunday at 10:30 (Turing – G29) by Philip Withnall

Various GNOME modules have been building on Coverity Scan for the last year. Has it been finding legitimate bugs, or ones which people are almost never going to hit? What’s the best way to use static analysis? Why should developers care?

Warning: This talk will contain Jenkins and graphs.