Skip to content

Port Extensions to GNOME Shell 46 ​

Metadata ​

TIP

There were no relevant changes to metadata.json in GNOME 46.

Extension ​

TIP

There were no relevant changes to extension.js in GNOME 46.

GNOME Shell ​

appDisplay ​

ui/appDisplay.js/FolderIcon now uses overview-tile app-folder style class instead of app-well-app app-folder.

And the edit icon for ui/appDisplay.js/AppFolderDialog folder name entry now uses icon-button style class instead of edit-folder-button.

Also app-well-app style class renamed to overview-tile and app-well-app-running-dot renamed to app-grid-running-dot for ui/appDisplay.js/AppIcon.

Calendar ​

ui/calendar.js/Calendar uses calendar-day-heading instead of calendar-day calendar-day-heading style class for weekday labels.

CtrlAtlTab ​

ui/ctrlAltTab.js/CtrlAltTabManager uses shell-focus-windows-symbolic icon instead of focus-windows-symbolic.

WorldClocksSection ​

ui/dateMenu.js/WorldClocksSection's header now uses no-world-clocks style class name when no world clocks have been set by the user.

WeatherSection ​

ui/dateMenu.js/WeatherSection now uses no-location style class name when the weather location can not be retrieved.

MessagesIndicator ​

ui/dateMenu.js/MessagesIndicator now uses messages-indicator style class name.

Message ​

Since the message list has been changed on GNOME Shell 46, ui/messageList.js/Message has new header (ui/messageList.js/MessageHeader) and time label (ui/messageList.js/TimeLabel).

Also ui/messageList.js/Message has datetime getter and setter for the time label.

The message box under message header has message-box style class name.

MessageTray ​

ui/messageTray.js/NotificationPolicy has new static newForApp() method that can create a new policy for the app.

ui/messageTray.js/Notification has new iconName getter and setter.

The new ui/messageTray.js/getSystemSource() allows you to get a system notification source that Main.notify() and most Shell notifications use.

PopupMenu ​

ui/popupMenu.js/Ornament enum added new NO_DOT to have less ambiguous symbols for radio options. This ornament will use ornament-dot-checked-symbolic and ornament-dot-unchecked-symbolic icons.

ui/popupMenu.js/Switch is using switch-on-symbolic and switch-off-symbolic icons for on and off.

Screenshot ​

Since session mode can disallow the screencast (sessionMode.allowScreencast), ui/screenshot.js/UIMode enum added new SCREENSHOT_ONLY.

Also, ui/screenshot.js/ScreenshotUI has new screenshot-taken and closed signals.

New Keybindings ​

New keybindings added in ui/windowManager/WindowManager since GNOME Shell 46 using new key bindings for opening a new instance of pinned applications (Super + Ctrl + Number).

BackgroundAppMenuItem close icon ​

The style class for background app menu item close button changed from close-button to icon-button.

Keyboard Model Configuration Support ​

Since keyboard model configuration support has been added (xkb-model), ui/status/keyboard.js/InputSourceSystemSettings has new getter and setter for keyboardModel and emitting keyboard-model-changed when the keyboard mode is getting changed.

ExtensionState ​

misc/extensionUtils.js/ExtensionState enum renamed some of the states:

OldNew
ENABLEDACTIVE
DISABLEDINACTIVE
DISABLINGDEACTIVATING
ENABLINGACTIVATING

St.Bin Expand Properties ​

St.Bin and all sub classes like Button, QuickSettingsItem, ... now only expand according to its expand properties (x-expand and y-expand), not when the alignment is set to Clutter.ActorAlign.FILL.

St.Button ​

St.Button label now defaults to plain text not Pango markup.

Clutter.cairo Hellpers ​

GNOME Shell 46 dropped Clutter.cairo helpers. If you are using Clutter.cairo_set_source_color() in St.DrawingArea, cairo.Context can use setSourceColor() instead (cr.setSourceColor()).

Meta.Barrier.display ​

Meta.Barrier.display is now deprecated. To get the backend barrier you can use global.backend which returns Meta.Barrier.backend.

Shell.BlurEffect ​

The sigma in Shell.BlurEffect should be replaced by radius. Since the sigma value is radius / 2.0, the radius value will be sigma * 2.0.

GJS ​

Clutter.Container ​

Clutter.Container was removed. To feature test you can do:

js
if (Clutter.Container === undefined) {
    console.log('No Clutter Container');
}

Clutter.Container.add_actor() and Clutter.Container.remove_actor() are deprecated and you should use Clutter.Actor.add_child() and Clutter.Actor.remove_child() instead.

So, instead of actor-added and actor-removed signals you can use child-added and child-removed.

Gio.UnixInputStream ​

Gio.UnixInputStream is moved to GioUnix and you should use GioUnix.InputStream instead.

MIT Licensed | GJS, A GNOME Project