GNOME Shell Extensions

Introduction

GNOME Shell's UI and extensions are written in GJS, which is JavaScript bindings for the GNOME APIsopen in new window.

JavaScript is a prototype-based language, which means that extensions can modify the UI and behaviour of GNOME Shell while it is running. This is what is known as "monkey-patching".

Overview

The basics of extensions

Anatomy

What an extension is made of

Imports and Modules

How to use imports and modules

Architecture

GNOME Shell Architecture

Development

Creating

Creating an extension

Preferences

Creating a preferences window

Translations

How add multi-lingual support an extension

Debugging

How to debug an extension

Upgrading

How to upgrade extensions across Shell versions

GNOME Shell 40

Porting Extensions to GNOME Shell 40

Review Guidelines

Guidelines for developers who would like their extensions distributed on egoopen in new window

Review Guidelines

GNOME Shell Extensions Review Guidelines

Last Updated: 10/6/2021, 8:35:20 PM
Contributors: Evan Welsh, Andy Holmes, Javad Rahmatzadeh, Just Perfection