# 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