GNOME Shell Extensions

Introduction

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

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