Abstract
## Setting the scene - 3min
The complexities of building a desktop environment - all the things involved in delivering such an ambition.
Also covering the background on why we would do this with Go and how it has been a great fit.
## Technologies and Architecture - 5min
This section shows the components and responsibilities in a graphical linux desktop. This is currently X11 based and so will cover the client/server nature of apps, the desktop (login) manager and how the graphics are made available.
As a refresher for anyone not familiar this will also cover responsibilities of the compositor, app switcher and virtual desktop components of a window manager.
## Implementation of the basics - 8min
This is the main technical (code) section of the talk, covering implementation details and how Go modules and projects are set up to collaborate and connect to system services.
Here we look in detail at the APIs and design decisions that come together to deliver such a large project. The main areas of interest are:
- X11 server
- Window manager
- Desktop and widget arrangement
- App / launch / icon handling
- Graphical compositor
Rather than going into serious detail this section will be technical but at an overview level - the main API and code location for people to what to dig in further.
## Integrations - 6min
A good desktop experience depends on the features and system integrations to do all that users expect of their environment.
This section covers standard features like notifications and system tray. I will also show more advanced integrations like login and authentication manage.
Lastly this section covers extension points so that third party apps and features can also integrate.
## App suite for our desktop - 5min
A quick flick through the tools that make a desktop complete - covering:
- system management (screens, wifi)
- utility apps (textedit, terminal, file manager, colour picker)
- productivity (presentation, app editor)
- plus games of course!
## Try it out and contribute - 3min
In this call to action section the audience will be wowed by some very lovely screenshots of the full desktop (transparency, features etc).
Following that the basic instructions on getting started and trying out the main aspects of the project will be shared.
The audience will also be shown how they could contribute to the project and help to deliver a complete Go based desktop environment they deserve :).