Port Extensions to GNOME Shell 44
Metadata
TIP
There were no relevant changes to metadata.json in GNOME 44.
Extension
TIP
There were no relevant changes to extension.js in GNOME 44.
Preferences
TIP
There were no relevant changes to prefs.js in GNOME 44.
GNOME Shell
GSettings Schema
GNOME Shell 44 can compile the GSettings Schemas file(s) while installing the extension package.
In case you are using your own GSettings Schemas, you MUST only include the schemas/org.gnome.shell.extensions.<schema-id>.gschema.xml file(s) and avoid shipping the gschemas.compiled in the package (if your extension is only supporting GNOME Shell 44 and later).
Background Apps
ui.status.backgroundApps is a new section in quick settings that can show list of the apps running in the background (while the actual window is closed).
BackgroundAppMenuItem will be used for each item in the list. Each item has a close button that can quit the app via D-Bus or sending SIGKILL to the process (in case the D-Bus quit fails).
| Type | Where |
|---|---|
| Direct Access | ui.main.panel.statusArea.quickSettings._backgroundApps |
| Created In | ui.panel.QuickSettings._init() |
| Style class | .background-apps-quick-toggle |
| Style class (item) | .background-app-item |
| Style class (item close button) | .background-app-item .close-button |
QuickToggle and QuickMenuToggle
Use of label for QuickToggle and QuickMenuToggle is deprecated in favor of title and will print a warning when accessed. Additionally, it can not be used as a construct property:
// GNOME 43
const toggle43 = new QuickToggle({ label: 'Feature' });
// GNOME 44
const toggle44 = new QuickToggle({ title: 'Feature' });
// GNOME 43 & 44
const toggle = new QuickToggle();
toggle.label = 'Feature';In addition to title, there is new subtitle property that you can use for showing sub title.
GNOME Shell 44 features a new Background Apps menu in the quick settings menu, which looks different from other quick settings tiles. If you want your toggle above the Background Apps menu, you can move it after adding it with the built-in function:
const QuickSettingsMenu = imports.ui.main.panel.statusArea.quickSettings;
function addQuickSettingsItems(items) {
// Add the items with the built-in function
QuickSettingsMenu._addItems(items);
// Ensure the tile(s) are above the background apps menu
for (const item of items) {
QuickSettingsMenu.menu._grid.set_child_below_sibling(item,
QuickSettingsMenu._backgroundApps.quickSettingsItems[0]);
}
}Unlock dialog
GNOME Shell 44 changed the blur values for unlock dialog (ui.unlockDialog):
| Type | Old Value | New Value |
|---|---|---|
BLUR_BRIGHTNESS | 0.55 | 0.65 |
BLUR_SIGMA | 60 | 45 |
Also, the switch user button is using different style class:
| Old Style Class | New Style Class |
|---|---|
.modal-dialog-button.switch-user-button .button | .login-dialog-button.switch-user-button |
Gtk.IconTheme
If you are using Gtk.IconTheme in extension.js you should use St.IconTheme instead.
For example:
const {St} = imports.gi;
const iconTheme = new St.IconTheme();
if (!iconTheme.get_search_path().includes(ICONS_FOLDER_PATH)) {
iconTheme.append_search_path(ICONS_FOLDER_PATH);
}
iconTheme.rescan_if_needed();Meta.later_add() and Meta.later_remove()
Meta.later_add() and Meta.later_remove() are now Meta.Laters.add() and Meta.Laters.remove(), respectively. Refer to Meta.Laters.
You can get the Meta.Laters from compositor with:
const laters = global.compositor.get_laters();GJS
TIP
There were no relevant changes to GJS in GNOME 44.