Add a little more text and context to your GNOME user experience: Window icon & title, custom clock, user/host name, and lock screen message.
Creates a top bar “context” button with the focused window’s icon and title, or an app grid icon if no window is focused. Optionally shows a clock with advanced display options, the user and/or host name on the system menu button, and a notification message on the lock screen.
The context button can function both as a toggle from desktop to apps, windows, and back to desktop when clicked, and as an app menu when activated using the secondary mouse button, long-press, or a keyboard shortcut.
- A minimum width can make the context button easier to click and touch. In the preferences, under Advanced, Context Button, set Minimum Width to a value such as 384 px.
- Instead of the window title, the current app name can be displayed on the context button. In the preferences, under Advanced, Context Button, set Title Type to App. It's also possible to not display a title and only show the app icon.
- A keyboard shortcut can be set for opening the app menu. In the preferences, under Advanced, Context Button, click on Keyboard Shortcut and press the key combination that you want to use, such as Super+C. See below for use of the assistant ("Copilot") key. To handle the Super key (or "overlay" key) in the same way as clicks on the button for toggling from desktop to apps, etc., in the preferences under Advanced, Context Button, enable Super Key.
- The look of the app menu with an Open Windows submenu can be applied to menus in the app grid and the dash as well. In the preferences, under Advanced, Context Button, App Menu, set Patch App Menu to Everywhere.
- The context button's cycle can be reversed. In the preferences, under Advanced, Context Button, Behavior, disable both Show Windows on Click (when showing apps) and Show Desktop on Click (when showing windows). The starting point when the button is clicked while on the desktop is always to show apps.
- If you prefer monochrome icons, the saturation can be reduced and/or a symbolic icon style applied. In the preferences, under Advanced, Context Button, set Saturation to either 0% or one of the special values -2 or -3 for symbolic icon style and 100% or 0% saturation, respectively. Not all icons have a symbolic style and the saturation also applies to the title which may contain emojis. With symbolic icons, a smaller icon size might look better, such as 16 px to match the indicators on the system menu button. The icon size can be changed in the preferences under Advanced, Context Button, Components.
- For the custom clock, the number style can be changed. In the preferences, under Advanced, Custom Clock, Extra, set Numeral System to a value such as mathsanb (for a bold font) or segment (for a segmented display style).
- The custom clock uses Intl.DateTimeFormat to format the date and time. If you want to customize the formatting further than is possible using the preferences, the arguments provided to Intl.DateTimeFormat can be overridden. In the preferences, under Advanced, Custom Clock, Extra, set Time Locale to a language tag and/or, following a comma, a JSON object for overriding the locale options. For example,
en-GB, { "day": "2-digit" }to use English (UK) locale and always use two digits for the day of month. Providing a value for Time Locale without a language tag (e.g., just a comma) means that the runtime's default locale will be used. In the JSON object, using a null value means that an existing option will be removed.
Go to Context + Window Title and click on Install. If you have Extension Manager (Flathub link; Debian/Ubuntu package gnome-shell-extension-manager), this should work without installing a browser extension or connector.
Run make install.
Install a release .zip using gnome-extensions install followed by the release file name. Use -f to overwrite an existing extension.
All settings are accessible through the preferences UI.
To list all settings and their current values in the terminal, run:
gsettings --schemadir ~/.local/share/gnome-shell/extensions/[email protected]/schemas list-recursively org.gnome.shell.extensions.context-window-title
For information about the settings, see the schema and values.
To set a value, e.g., multiple keyboard shortcuts for the app menu:
gsettings --schemadir ~/.local/share/gnome-shell/extensions/[email protected]/schemas set org.gnome.shell.extensions.context-window-title context-window-title-menu-keybinding "['<Super>c','<Shift><Super>TouchpadOff', '<Shift><Super>F23', 'Assistant']"
This should assign both Super+C and the assistant ("Copilot") key as keyboard shortcuts for the app menu (using different variants of the assistant key, as it might be recognized differently depending on GNOME and system versions). However, in the preferences UI, only a single keyboard shortcut can be set and viewed.
Add your language to po/LINGUAS and then run make languages. Modify the generated .po file. Use gnome-shell for reference.
See the GJS guide for creating extensions.
Linting and formatting: npm install --save-dev eslint @eslint/js prettier. Then run make eslint and make prettier.
Updating strings for translation: make strings
Copyright © 2026 Erik Isaksson. Licensed under GNU General Public License, version 2 or later.
