diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
index 3294d6556..4e2c948dc 100644
--- a/js/gdm/loginDialog.js
+++ b/js/gdm/loginDialog.js
@@ -425,13 +425,13 @@ var LoginDialog = GObject.registerClass({
this._settings = new Gio.Settings({ schema_id: GdmUtil.LOGIN_SCREEN_SCHEMA });
- this._settings.connect('changed::%s'.format(GdmUtil.BANNER_MESSAGE_KEY),
+ this._settings.connect(`changed::${GdmUtil.BANNER_MESSAGE_KEY}`,
this._updateBanner.bind(this));
- this._settings.connect('changed::%s'.format(GdmUtil.BANNER_MESSAGE_TEXT_KEY),
+ this._settings.connect(`changed::${GdmUtil.BANNER_MESSAGE_TEXT_KEY}`,
this._updateBanner.bind(this));
- this._settings.connect('changed::%s'.format(GdmUtil.DISABLE_USER_LIST_KEY),
+ this._settings.connect(`changed::${GdmUtil.DISABLE_USER_LIST_KEY}`,
this._updateDisableUserList.bind(this));
- this._settings.connect('changed::%s'.format(GdmUtil.LOGO_KEY),
+ this._settings.connect(`changed::${GdmUtil.LOGO_KEY}`,
this._updateLogo.bind(this));
this._textureCache = St.TextureCache.get_default();
diff --git a/js/gdm/util.js b/js/gdm/util.js
index d310099a6..771cd18fb 100644
--- a/js/gdm/util.js
+++ b/js/gdm/util.js
@@ -572,14 +572,16 @@ var ShellUserVerifier = class {
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
return;
if (!this.serviceIsForeground(serviceName)) {
- logError(e, 'Failed to start %s for %s'.format(serviceName, this._userName));
+ logError(e,
+ `Failed to start ${serviceName} for ${this._userName}`);
this._hold.release();
return;
}
- this._reportInitError(this._userName
- ? 'Failed to start %s verification for user'.format(serviceName)
- : 'Failed to start %s verification'.format(serviceName), e,
- serviceName);
+ this._reportInitError(
+ this._userName
+ ? `Failed to start ${serviceName} verification for user`
+ : `Failed to start ${serviceName} verification`,
+ e, serviceName);
return;
}
this._hold.release();
diff --git a/js/misc/ibusManager.js b/js/misc/ibusManager.js
index 45387877c..55c0d308b 100644
--- a/js/misc/ibusManager.js
+++ b/js/misc/ibusManager.js
@@ -29,9 +29,9 @@ function _checkIBusVersion(requiredMajor, requiredMinor, requiredMicro) {
IBus.MICRO_VERSION >= requiredMicro))
return;
- throw "Found IBus version %d.%d.%d but required is %d.%d.%d"
- .format(IBus.MAJOR_VERSION, IBus.MINOR_VERSION, IBus.MICRO_VERSION,
- requiredMajor, requiredMinor, requiredMicro);
+ throw new Error(`Found IBus version ${
+ IBus.MAJOR_VERSION}.${IBus.MINOR_VERSION}.${IBus.MINOR_VERSION} ` +
+ `but required is ${requiredMajor}.${requiredMinor}.${requiredMicro}`);
}
function getIBusManager() {
diff --git a/js/misc/systemActions.js b/js/misc/systemActions.js
index a45a21c16..48e8d75d8 100644
--- a/js/misc/systemActions.js
+++ b/js/misc/systemActions.js
@@ -162,17 +162,17 @@ const SystemActions = GObject.registerClass({
this._userManager.connect('user-removed',
() => this._updateMultiUser());
- this._lockdownSettings.connect('changed::%s'.format(DISABLE_USER_SWITCH_KEY),
+ this._lockdownSettings.connect(`changed::${DISABLE_USER_SWITCH_KEY}`,
() => this._updateSwitchUser());
- this._lockdownSettings.connect('changed::%s'.format(DISABLE_LOG_OUT_KEY),
+ this._lockdownSettings.connect(`changed::${DISABLE_LOG_OUT_KEY}`,
() => this._updateLogout());
- global.settings.connect('changed::%s'.format(ALWAYS_SHOW_LOG_OUT_KEY),
+ global.settings.connect(`changed::${ALWAYS_SHOW_LOG_OUT_KEY}`,
() => this._updateLogout());
- this._lockdownSettings.connect('changed::%s'.format(DISABLE_LOCK_SCREEN_KEY),
+ this._lockdownSettings.connect(`changed::${DISABLE_LOCK_SCREEN_KEY}`,
() => this._updateLockScreen());
- this._lockdownSettings.connect('changed::%s'.format(DISABLE_LOG_OUT_KEY),
+ this._lockdownSettings.connect(`changed::${DISABLE_LOG_OUT_KEY}`,
() => this._updateHaveShutdown());
this.forceUpdate();
diff --git a/js/misc/util.js b/js/misc/util.js
index bea2cfe85..389fdde28 100644
--- a/js/misc/util.js
+++ b/js/misc/util.js
@@ -22,7 +22,7 @@ const _leadingJunk = '[\\s`(\\[{\'\\"<\u00AB\u201C\u2018]';
const _notTrailingJunk = '[^\\s`!()\\[\\]{};:\'\\".,<>?\u00AB\u00BB\u200E\u200F\u201C\u201D\u2018\u2019\u202A\u202C]';
const _urlRegexp = new RegExp(
- '(^|%s)'.format(_leadingJunk) +
+ `(^|${_leadingJunk})` +
'(' +
'(?:' +
'(?:http|https|ftp)://' + // scheme://
@@ -34,12 +34,12 @@ const _urlRegexp = new RegExp(
'(?:' + // one or more:
'[^\\s()<>]+' + // run of non-space non-()
'|' + // or
- '%s'.format(_balancedParens) + // balanced parens
+ `${_balancedParens}` + // balanced parens
')+' +
'(?:' + // end with:
- '%s'.format(_balancedParens) + // balanced parens
+ `${_balancedParens}` + // balanced parens
'|' + // or
- '%s'.format(_notTrailingJunk) + // last non-junk char
+ `${_notTrailingJunk}` + // last non-junk char
')' +
')', 'gi');
@@ -161,7 +161,7 @@ function trySpawnCommandLine(commandLine) {
} catch (err) {
// Replace "Error invoking GLib.shell_parse_argv: " with
// something nicer
- err.message = err.message.replace(/[^:]*: /, '%s\n'.format(_('Could not parse command:')));
+ err.message = err.message.replace(/[^:]*: /, `${_('Could not parse command:')}\n`);
throw err;
}
@@ -550,7 +550,7 @@ var DBusSenderChecker = class {
throw new GLib.Error(Gio.DBusError,
Gio.DBusError.ACCESS_DENIED,
- '%s is not allowed'.format(invocation.get_method_name()));
+ `${invocation.get_method_name()} is not allowed`);
}
/**
@@ -579,8 +579,8 @@ var Highlighter = class {
if (escapedTerms.length === 0)
return;
- this._highlightRegex = new RegExp('(%s)'.format(
- escapedTerms.join('|')), 'gi');
+ this._highlightRegex = new RegExp(
+ `(${escapedTerms.join('|')})`, 'gi');
}
/**
@@ -604,7 +604,7 @@ var Highlighter = class {
escaped.push(unmatched);
}
let matched = GLib.markup_escape_text(match[0], -1);
- escaped.push('%s'.format(matched));
+ escaped.push(`${matched}`);
lastMatchEnd = match.index + match[0].length;
}
let unmatched = GLib.markup_escape_text(
diff --git a/js/portalHelper/main.js b/js/portalHelper/main.js
index f876a48b1..9f9b98718 100644
--- a/js/portalHelper/main.js
+++ b/js/portalHelper/main.js
@@ -31,6 +31,7 @@ const HTTP_URI_FLAGS =
GLib.UriFlags.PARSE_RELAXED;
const CONNECTIVITY_CHECK_HOST = 'nmcheck.gnome.org';
+const CONNECTIVITY_CHECK_URI = `http://${CONNECTIVITY_CHECK_HOST}`;
const CONNECTIVITY_RECHECK_RATELIMIT_TIMEOUT = 30 * GLib.USEC_PER_SEC;
const HelperDBusInterface = loadInterfaceXML('org.gnome.Shell.PortalHelper');
@@ -110,7 +111,7 @@ class PortalWindow extends Gtk.ApplicationWindow {
this._headerBar.show();
if (!url) {
- url = 'http://%s'.format(CONNECTIVITY_CHECK_HOST);
+ url = CONNECTIVITY_CHECK_URI;
this._originalUrlWasGnome = true;
} else {
this._originalUrlWasGnome = false;
diff --git a/js/ui/accessDialog.js b/js/ui/accessDialog.js
index 7c8d69b80..4c2aa238f 100644
--- a/js/ui/accessDialog.js
+++ b/js/ui/accessDialog.js
@@ -140,7 +140,7 @@ var AccessDialogDBus = class {
let [handle, appId, parentWindow_, title, description, body, options] = params;
// We probably want to use parentWindow and global.display.focus_window
// for this check in the future
- if (appId && '%s.desktop'.format(appId) != this._windowTracker.focus_app.id) {
+ if (appId && `${appId}.desktop` !== this._windowTracker.focus_app.id) {
invocation.return_error_literal(Gio.DBusError,
Gio.DBusError.ACCESS_DENIED,
'Only the focused app is allowed to show a system access dialog');
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index c8f60493d..95bba6402 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -119,7 +119,7 @@ function _findBestFolderName(apps) {
}, commonCategories);
for (let category of commonCategories) {
- const directory = '%s.directory'.format(category);
+ const directory = `${category}.directory`;
const translated = Shell.util_get_translated_folder_name(directory);
if (translated !== null)
return translated;
@@ -870,7 +870,7 @@ var BaseAppView = GObject.registerClass({
if (this._items.has(id))
this._items.get(id).navigate_focus(null, St.DirectionType.TAB_FORWARD, false);
else
- log('No such application %s'.format(id));
+ log(`No such application ${id}`);
}
selectApp(id) {
@@ -1533,7 +1533,7 @@ class AppDisplay extends BaseAppView {
let folders = this._folderSettings.get_strv('folder-children');
folders.forEach(id => {
- let path = '%sfolders/%s/'.format(this._folderSettings.path, id);
+ let path = `${this._folderSettings.path}folders/${id}/`;
let icon = this._items.get(id);
if (!icon) {
icon = new FolderIcon(id, path, this);
@@ -2213,7 +2213,7 @@ class FolderView extends BaseAppView {
let icon = new St.Widget({
layout_manager: layout,
x_align: Clutter.ActorAlign.CENTER,
- style: 'width: %dpx; height: %dpx;'.format(size, size),
+ style: `width: ${size}px; height: ${size}px;`,
});
let subSize = Math.floor(FOLDER_SUBICON_FRACTION * size);
@@ -2221,7 +2221,7 @@ class FolderView extends BaseAppView {
let numItems = this._orderedItems.length;
let rtl = icon.get_text_direction() == Clutter.TextDirection.RTL;
for (let i = 0; i < 4; i++) {
- const style = 'width: %dpx; height: %dpx;'.format(subSize, subSize);
+ const style = `width: ${subSize}px; height: ${subSize}px;`;
let bin = new St.Bin({ style });
if (i < numItems)
bin.child = this._orderedItems[i].app.create_icon_texture(subSize);
@@ -3219,7 +3219,7 @@ var AppIcon = GObject.registerClass({
shellWorkspaceLaunch(params) {
let { stack } = new Error();
- log('shellWorkspaceLaunch is deprecated, use app.open_new_window() instead\n%s'.format(stack));
+ log(`shellWorkspaceLaunch is deprecated, use app.open_new_window() instead\n${stack}`);
params = Params.parse(params, { workspace: -1,
timestamp: 0 });
diff --git a/js/ui/appFavorites.js b/js/ui/appFavorites.js
index 4e372c213..18fc3d020 100644
--- a/js/ui/appFavorites.js
+++ b/js/ui/appFavorites.js
@@ -75,7 +75,7 @@ class AppFavorites {
this.FAVORITE_APPS_KEY = 'favorite-apps';
this._favorites = {};
- global.settings.connect('changed::%s'.format(this.FAVORITE_APPS_KEY), this._onFavsChanged.bind(this));
+ global.settings.connect(`changed::${this.FAVORITE_APPS_KEY}`, this._onFavsChanged.bind(this));
this.reload();
}
diff --git a/js/ui/audioDeviceSelection.js b/js/ui/audioDeviceSelection.js
index 8660663f9..fb78b7922 100644
--- a/js/ui/audioDeviceSelection.js
+++ b/js/ui/audioDeviceSelection.js
@@ -125,7 +125,7 @@ var AudioDeviceSelectionDialog = GObject.registerClass({
let app = Shell.AppSystem.get_default().lookup_app(desktopFile);
if (!app) {
- log('Settings panel for desktop file %s could not be loaded!'.format(desktopFile));
+ log(`Settings panel for desktop file ${desktopFile} could not be loaded!`);
return;
}
diff --git a/js/ui/background.js b/js/ui/background.js
index 9c6a1636d..21359d0a8 100644
--- a/js/ui/background.js
+++ b/js/ui/background.js
@@ -271,7 +271,7 @@ var Background = GObject.registerClass({
this._settings.connect('changed', this._emitChangedSignal.bind(this));
this._colorSchemeChangedSignalId =
- this._interfaceSettings.connect('changed::%s'.format(COLOR_SCHEME_KEY),
+ this._interfaceSettings.connect(`changed::${COLOR_SCHEME_KEY}`,
this._emitChangedSignal.bind(this));
this._load();
diff --git a/js/ui/calendar.js b/js/ui/calendar.js
index 54e8e9f15..953517818 100644
--- a/js/ui/calendar.js
+++ b/js/ui/calendar.js
@@ -16,7 +16,7 @@ var SHOW_WEEKDATE_KEY = 'show-weekdate';
var MESSAGE_ICON_SIZE = -1; // pick up from CSS
-var NC_ = (context, str) => '%s\u0004%s'.format(context, str);
+var NC_ = (context, str) => `${context}\u0004${str}`;
function sameYear(dateA, dateB) {
return dateA.getYear() == dateB.getYear();
@@ -104,26 +104,26 @@ var EventSourceBase = GObject.registerClass({
Signals: { 'changed': {} },
}, class EventSourceBase extends GObject.Object {
get isLoading() {
- throw new GObject.NotImplementedError('isLoading in %s'.format(this.constructor.name));
+ throw new GObject.NotImplementedError(`isLoading in ${this.constructor.name}`);
}
get hasCalendars() {
- throw new GObject.NotImplementedError('hasCalendars in %s'.format(this.constructor.name));
+ throw new GObject.NotImplementedError(`hasCalendars in ${this.constructor.name}`);
}
destroy() {
}
requestRange(_begin, _end) {
- throw new GObject.NotImplementedError('requestRange in %s'.format(this.constructor.name));
+ throw new GObject.NotImplementedError(`requestRange in ${this.constructor.name}`);
}
getEvents(_begin, _end) {
- throw new GObject.NotImplementedError('getEvents in %s'.format(this.constructor.name));
+ throw new GObject.NotImplementedError(`getEvents in ${this.constructor.name}`);
}
hasEvents(_day) {
- throw new GObject.NotImplementedError('hasEvents in %s'.format(this.constructor.name));
+ throw new GObject.NotImplementedError(`hasEvents in ${this.constructor.name}`);
}
});
@@ -222,7 +222,7 @@ class DBusEventSource extends EventSourceBase {
// about the HasCalendars property and would cause an exception trying
// to read it)
if (!e.matches(Gio.DBusError, Gio.DBusError.TIMED_OUT)) {
- log('Error loading calendars: %s'.format(e.message));
+ log(`Error loading calendars: ${e.message}`);
return;
}
}
@@ -390,7 +390,7 @@ var Calendar = GObject.registerClass({
this._weekStart = Shell.util_get_week_start();
this._settings = new Gio.Settings({ schema_id: 'org.gnome.desktop.calendar' });
- this._settings.connect('changed::%s'.format(SHOW_WEEKDATE_KEY), this._onSettingsChange.bind(this));
+ this._settings.connect(`changed::${SHOW_WEEKDATE_KEY}`, this._onSettingsChange.bind(this));
this._useWeekdate = this._settings.get_boolean(SHOW_WEEKDATE_KEY);
/**
@@ -664,13 +664,13 @@ var Calendar = GObject.registerClass({
// Hack used in lieu of border-collapse - see gnome-shell.css
if (row == 2)
- styleClass = 'calendar-day-top %s'.format(styleClass);
+ styleClass = `calendar-day-top ${styleClass}`;
let leftMost = rtl
? iter.getDay() == (this._weekStart + 6) % 7
: iter.getDay() == this._weekStart;
if (leftMost)
- styleClass = 'calendar-day-left %s'.format(styleClass);
+ styleClass = `calendar-day-left ${styleClass}`;
if (sameDay(now, iter))
styleClass += ' calendar-today';
@@ -1029,7 +1029,7 @@ class CalendarMessageList extends St.Widget {
for (let prop of ['visible', 'empty', 'can-clear']) {
connectionsIds.push(
- section.connect('notify::%s'.format(prop), this._sync.bind(this)));
+ section.connect(`notify::${prop}`, this._sync.bind(this)));
}
connectionsIds.push(section.connect('message-focused', (_s, messageActor) => {
Util.ensureActorVisibleInScrollView(this._scrollView, messageActor);
diff --git a/js/ui/components/automountManager.js b/js/ui/components/automountManager.js
index 5f0a8aad5..86c3a824e 100644
--- a/js/ui/components/automountManager.js
+++ b/js/ui/components/automountManager.js
@@ -112,7 +112,7 @@ var AutomountManager = class {
try {
drive.stop_finish(res);
} catch (e) {
- log('Unable to stop the drive after drive-eject-button %s'.format(e.toString()));
+ log(`Unable to stop the drive after drive-eject-button ${e.toString()}`);
}
});
} else if (drive.can_eject()) {
@@ -121,7 +121,7 @@ var AutomountManager = class {
try {
drive.eject_with_operation_finish(res);
} catch (e) {
- log('Unable to eject the drive after drive-eject-button %s'.format(e.toString()));
+ log(`Unable to eject the drive after drive-eject-button ${e.toString()}`);
}
});
}
@@ -208,7 +208,7 @@ var AutomountManager = class {
}
if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.FAILED_HANDLED))
- log('Unable to mount volume %s: %s'.format(volume.get_name(), e.toString()));
+ log(`Unable to mount volume ${volume.get_name()}: ${e.toString()}`);
this._closeOperation(volume);
}
}
diff --git a/js/ui/components/autorunManager.js b/js/ui/components/autorunManager.js
index cc7b41274..f26a2e5f7 100644
--- a/js/ui/components/autorunManager.js
+++ b/js/ui/components/autorunManager.js
@@ -66,7 +66,7 @@ function startAppForMount(app, mount) {
retval = app.launch(files,
global.create_app_launch_context(0, -1));
} catch (e) {
- log('Unable to launch the application %s: %s'.format(app.get_name(), e.toString()));
+ log(`Unable to launch the application ${app.get_name()}: ${e}`);
}
return retval;
@@ -105,7 +105,7 @@ var ContentTypeDiscoverer = class {
try {
contentTypes = mount.guess_content_type_finish(res);
} catch (e) {
- log('Unable to guess content types on added mount %s: %s'.format(mount.get_name(), e.toString()));
+ log(`Unable to guess content types on added mount ${mount.get_name()}: ${e}`);
}
if (contentTypes.length) {
diff --git a/js/ui/components/networkAgent.js b/js/ui/components/networkAgent.js
index 94772c076..1960ad1e7 100644
--- a/js/ui/components/networkAgent.js
+++ b/js/ui/components/networkAgent.js
@@ -216,7 +216,7 @@ class NetworkSecretDialog extends ModalDialog.ModalDialog {
case 'none': // static WEP
secrets.push({
label: _('Key'),
- key: 'wep-key%s'.format(wirelessSecuritySetting.wep_tx_keyidx),
+ key: `wep-key${wirelessSecuritySetting.wep_tx_keyidx}`,
value: wirelessSecuritySetting.get_wep_key(wirelessSecuritySetting.wep_tx_keyidx) || '',
wep_key_type: wirelessSecuritySetting.wep_key_type,
validate: this._validateStaticWep,
@@ -239,7 +239,7 @@ class NetworkSecretDialog extends ModalDialog.ModalDialog {
this._get8021xSecrets(secrets);
break;
default:
- log('Invalid wireless key management: %s'.format(wirelessSecuritySetting.key_mgmt));
+ log(`Invalid wireless key management: ${wirelessSecuritySetting.key_mgmt}`);
}
}
@@ -312,7 +312,7 @@ class NetworkSecretDialog extends ModalDialog.ModalDialog {
});
break;
default:
- log('Invalid EAP/IEEE802.1x method: %s'.format(ieee8021xSetting.get_eap_method(0)));
+ log(`Invalid EAP/IEEE802.1x method: ${ieee8021xSetting.get_eap_method(0)}`);
}
}
@@ -404,7 +404,7 @@ class NetworkSecretDialog extends ModalDialog.ModalDialog {
this._getMobileSecrets(content.secrets, connectionType);
break;
default:
- log('Invalid connection type: %s'.format(connectionType));
+ log(`Invalid connection type: ${connectionType}`);
}
return content;
@@ -648,12 +648,12 @@ var VPNRequestHandler = class {
try {
vpnSetting.foreach_data_item((key, value) => {
- this._stdin.write('DATA_KEY=%s\n'.format(key), null);
- this._stdin.write('DATA_VAL=%s\n\n'.format(value || ''), null);
+ this._stdin.write(`DATA_KEY=${key}\n`, null);
+ this._stdin.write(`DATA_VAL=${value || ''}\n\n`, null);
});
vpnSetting.foreach_secret((key, value) => {
- this._stdin.write('SECRET_KEY=%s\n'.format(key), null);
- this._stdin.write('SECRET_VAL=%s\n\n'.format(value || ''), null);
+ this._stdin.write(`SECRET_KEY=${key}\n`, null);
+ this._stdin.write(`SECRET_VAL=${value || ''}\n\n`, null);
});
this._stdin.write('DONE\n\n', null);
} catch (e) {
@@ -768,7 +768,7 @@ var NetworkAgent = class {
body = _("A password is required to connect to “%s”.").format(connectionSetting.get_id());
break;
default:
- log('Invalid connection type: %s'.format(connectionType));
+ log(`Invalid connection type: ${connectionType}`);
this._native.respond(requestId, Shell.NetworkAgentResponse.INTERNAL_ERROR);
return;
}
@@ -855,7 +855,7 @@ var NetworkAgent = class {
const fileName = plugin.get_auth_dialog();
if (!GLib.file_test(fileName, GLib.FileTest.IS_EXECUTABLE)) {
- log('VPN plugin at %s is not executable'.format(fileName));
+ log(`VPN plugin at ${fileName} is not executable`);
return null;
}
diff --git a/js/ui/components/polkitAgent.js b/js/ui/components/polkitAgent.js
index 5127ab924..eda2e237c 100644
--- a/js/ui/components/polkitAgent.js
+++ b/js/ui/components/polkitAgent.js
@@ -44,7 +44,7 @@ var AuthenticationDialog = GObject.registerClass({
let bodyContent = new Dialog.MessageDialogContent();
if (userNames.length > 1) {
- log('polkitAuthenticationAgent: Received %d '.format(userNames.length) +
+ log(`polkitAuthenticationAgent: Received ${userNames.length} ` +
'identities that can be used for authentication. Only ' +
'considering one.');
}
@@ -193,8 +193,8 @@ var AuthenticationDialog = GObject.registerClass({
// We could add retrying if this turns out to be a problem
log('polkitAuthenticationAgent: Failed to show modal dialog. ' +
- 'Dismissing authentication request for action-id %s '.format(this.actionId) +
- 'cookie %s'.format(this._cookie));
+ `Dismissing authentication request for action-id ${this.actionId} ` +
+ `cookie ${this._cookie}`);
this._emitDone(true);
}
}
diff --git a/js/ui/components/telepathyClient.js b/js/ui/components/telepathyClient.js
index 859a7e64f..90c0cbdf4 100644
--- a/js/ui/components/telepathyClient.js
+++ b/js/ui/components/telepathyClient.js
@@ -114,7 +114,7 @@ var TelepathyComponent = class {
try {
this._client.register();
} catch (e) {
- throw new Error('Could not register Telepathy client. Error: %s'.format(e.toString()));
+ throw new Error(`Could not register Telepathy client. Error: ${e}`);
}
if (!this._client.account_manager.is_prepared(Tp.AccountManager.get_feature_quark_core()))
@@ -282,7 +282,7 @@ class TelepathyClient extends Tp.BaseClient {
await dispatchOp.claim_with_async(this);
this._handlingChannels(account, conn, [channel], false);
} catch (err) {
- log('Failed to Claim channel: %s'.format(err.toString()));
+ log(`Failed to claim channel: ${err}`);
}
}
@@ -702,7 +702,7 @@ var ChatNotification = HAVE_TP ? GObject.registerClass({
if (message.messageType == Tp.ChannelTextMessageType.ACTION) {
let senderAlias = GLib.markup_escape_text(message.sender, -1);
- messageBody = '%s %s'.format(senderAlias, messageBody);
+ messageBody = `${senderAlias} ${messageBody}`;
styles.push('chat-action');
}
diff --git a/js/ui/dateMenu.js b/js/ui/dateMenu.js
index 89289179b..50a9118da 100644
--- a/js/ui/dateMenu.js
+++ b/js/ui/dateMenu.js
@@ -13,7 +13,7 @@ const System = imports.system;
const { loadInterfaceXML } = imports.misc.fileUtils;
-const NC_ = (context, str) => '%s\u0004%s'.format(context, str);
+const NC_ = (context, str) => `${context}\u0004${str}`;
const T_ = Shell.util_translate_time_string;
const MAX_FORECASTS = 5;
@@ -187,15 +187,15 @@ class EventsSection extends St.Button {
const rtl = Clutter.get_default_text_direction() === Clutter.TextDirection.RTL;
if (event.date < this._startDate) {
if (rtl)
- title = '%s%s'.format(title, ELLIPSIS_CHAR);
+ title = `${title}${ELLIPSIS_CHAR}`;
else
- title = '%s%s'.format(ELLIPSIS_CHAR, title);
+ title = `${ELLIPSIS_CHAR}${title}`;
}
if (event.end > this._endDate) {
if (rtl)
- title = '%s%s'.format(ELLIPSIS_CHAR, title);
+ title = `${ELLIPSIS_CHAR}${title}`;
else
- title = '%s%s'.format(title, ELLIPSIS_CHAR);
+ title = `${title}${ELLIPSIS_CHAR}`;
}
return title;
}
@@ -427,8 +427,8 @@ class WorldClocksSection extends St.Button {
const prefix = offsetCurrentTz >= 0 ? '+' : '-';
const text = offsetMinutes === 0
- ? '%s%d'.format(prefix, offsetHours)
- : '%s%d\u2236%d'.format(prefix, offsetHours, offsetMinutes);
+ ? `${prefix}${offsetHours}`
+ : `${prefix}${offsetHours}\u2236${offsetMinutes}`;
return text;
}
@@ -449,7 +449,7 @@ class WorldClocksSection extends St.Button {
_onProxyReady(proxy, error) {
if (error) {
- log('Failed to create GNOME Clocks proxy: %s'.format(error));
+ log(`Failed to create GNOME Clocks proxy: ${error}`);
return;
}
@@ -583,7 +583,7 @@ class WeatherSection extends St.Button {
});
let temp = new St.Label({
style_class: 'weather-forecast-temp',
- text: '%s%d°'.format(tempPrefix, Math.round(tempValue)),
+ text: `${tempPrefix}${Math.round(tempValue)}°`,
x_align: Clutter.ActorAlign.CENTER,
});
diff --git a/js/ui/endSessionDialog.js b/js/ui/endSessionDialog.js
index 9f8bcb1ba..f4227c2e0 100644
--- a/js/ui/endSessionDialog.js
+++ b/js/ui/endSessionDialog.js
@@ -169,7 +169,7 @@ function findAppFromInhibitor(inhibitor) {
} catch (e) {
// XXX -- sometimes JIT inhibitors generated by gnome-session
// get removed too soon. Don't fail in this case.
- log('gnome-session gave us a dead inhibitor: %s'.format(inhibitor.get_object_path()));
+ log(`gnome-session gave us a dead inhibitor: ${inhibitor.get_object_path()}`);
return null;
}
@@ -322,7 +322,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
this._updatesPermission = await Polkit.Permission.new(
'org.freedesktop.packagekit.trigger-offline-update', null, null);
} catch (e) {
- log('No permission to trigger offline updates: %s'.format(e.toString()));
+ log(`No permission to trigger offline updates: ${e}`);
}
}
@@ -662,7 +662,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
if (!sessionId) {
this._loginManager.getCurrentSessionProxy(currentSessionProxy => {
sessionId = currentSessionProxy.Id;
- log('endSessionDialog: No XDG_SESSION_ID, fetched from logind: %d'.format(sessionId));
+ log(`endSessionDialog: No XDG_SESSION_ID, fetched from logind: ${sessionId}`);
});
}
@@ -731,7 +731,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
this._updateInfo = await this._getUpdateInfo();
} catch (e) {
if (this._pkOfflineProxy !== null)
- log('Failed to get update info from PackageKit: %s'.format(e.message));
+ log(`Failed to get update info from PackageKit: ${e.message}`);
this._updateInfo = {
UpdateTriggered: false,
diff --git a/js/ui/extensionDownloader.js b/js/ui/extensionDownloader.js
index a3cfbf3f5..94ba8fad5 100644
--- a/js/ui/extensionDownloader.js
+++ b/js/ui/extensionDownloader.js
@@ -92,7 +92,7 @@ function checkResponse(message) {
const { statusCode } = message;
const phrase = Soup.Status.get_phrase(statusCode);
if (statusCode !== Soup.Status.OK)
- throw new Error('Unexpected response: %s'.format(phrase));
+ throw new Error(`Unexpected response: ${phrase}`);
}
/**
@@ -141,8 +141,7 @@ async function downloadExtensionUpdate(uuid) {
await extractExtensionArchive(bytes, dir);
Main.extensionManager.notifyExtensionUpdate(uuid);
} catch (e) {
- log('Error while downloading update for extension %s: %s'
- .format(uuid, e.message));
+ log(`Error while downloading update for extension ${uuid}: (${e.message})`);
}
}
@@ -174,12 +173,12 @@ async function checkForUpdates() {
'disable-extension-version-validation');
const params = {
shell_version: Config.PACKAGE_VERSION,
- disable_version_validation: versionCheck.toString(),
+ disable_version_validation: `${versionCheck}`,
};
const requestBody = new GLib.Bytes(JSON.stringify(metadatas));
const message = Soup.Message.new('POST',
- '%s?%s'.format(REPOSITORY_URL_UPDATE, Soup.form_encode_hash(params)));
+ `${REPOSITORY_URL_UPDATE}?${Soup.form_encode_hash(params)}`);
message.set_request_body_from_bytes('application/json', requestBody);
let json;
@@ -191,7 +190,7 @@ async function checkForUpdates() {
checkResponse(message);
json = new TextDecoder().decode(bytes.get_data());
} catch (e) {
- log('Update check failed: %s'.format(e.message));
+ log(`Update check failed: ${e.message}`);
return;
}
@@ -207,7 +206,7 @@ async function checkForUpdates() {
await Promise.allSettled(
updates.map(uuid => downloadExtensionUpdate(uuid)));
} catch (e) {
- log('Some extension updates failed to download: %s'.format(e.message));
+ log(`Some extension updates failed to download: ${e.message}`);
}
}
@@ -267,11 +266,11 @@ class InstallExtensionDialog extends ModalDialog.ModalDialog {
this._uuid, dir, ExtensionUtils.ExtensionType.PER_USER);
Main.extensionManager.loadExtension(extension);
if (!Main.extensionManager.enableExtension(this._uuid))
- throw new Error('Cannot enable %s'.format(this._uuid));
+ throw new Error(`Cannot enable ${this._uuid}`);
this._invocation.return_value(new GLib.Variant('(s)', ['successful']));
} catch (e) {
- log('Error while installing %s: %s'.format(this._uuid, e.message));
+ log(`Error while installing ${this._uuid}: ${e.message}`);
this._invocation.return_dbus_error(
'org.gnome.Shell.ExtensionError', e.message);
}
diff --git a/js/ui/extensionSystem.js b/js/ui/extensionSystem.js
index eec3693a4..41a03fdf3 100644
--- a/js/ui/extensionSystem.js
+++ b/js/ui/extensionSystem.js
@@ -43,7 +43,7 @@ var ExtensionManager = class {
try {
disableFile.create(Gio.FileCreateFlags.REPLACE_DESTINATION, null);
} catch (e) {
- log('Failed to create file %s: %s'.format(disableFilename, e.message));
+ log(`Failed to create file ${disableFilename}: ${e.message}`);
}
GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 60, () => {
@@ -161,7 +161,7 @@ var ExtensionManager = class {
if (extension.state != ExtensionState.DISABLED)
return;
- let stylesheetNames = ['%s.css'.format(global.session_mode), 'stylesheet.css'];
+ let stylesheetNames = [`${global.session_mode}.css`, 'stylesheet.css'];
let theme = St.ThemeContext.get_for_stage(global.stage).get_theme();
for (let i = 0; i < stylesheetNames.length; i++) {
try {
@@ -286,7 +286,7 @@ var ExtensionManager = class {
extension.errors = [];
extension.errors.push(message);
- logError(error, 'Extension %s'.format(uuid));
+ logError(error, `Extension ${uuid}`);
this._updateCanChange(extension);
this.emit('extension-state-changed', extension);
}
@@ -301,24 +301,24 @@ var ExtensionManager = class {
[success_, metadataContents] = metadataFile.load_contents(null);
metadataContents = new TextDecoder().decode(metadataContents);
} catch (e) {
- throw new Error('Failed to load metadata.json: %s'.format(e.toString()));
+ throw new Error(`Failed to load metadata.json: ${e}`);
}
let meta;
try {
meta = JSON.parse(metadataContents);
} catch (e) {
- throw new Error('Failed to parse metadata.json: %s'.format(e.toString()));
+ throw new Error(`Failed to parse metadata.json: ${e}`);
}
let requiredProperties = ['uuid', 'name', 'description', 'shell-version'];
for (let i = 0; i < requiredProperties.length; i++) {
let prop = requiredProperties[i];
if (!meta[prop])
- throw new Error('missing "%s" property in metadata.json'.format(prop));
+ throw new Error(`missing "${prop}" property in metadata.json`);
}
if (uuid != meta.uuid)
- throw new Error('uuid "%s" from metadata.json does not match directory name "%s"'.format(meta.uuid, uuid));
+ throw new Error(`uuid "${meta.uuid}" from metadata.json does not match directory name "${uuid}"`);
let extension = {
metadata: meta,
@@ -561,7 +561,7 @@ var ExtensionManager = class {
FileUtils.recursivelyDeleteDir(extensionDir, false);
FileUtils.recursivelyMoveDir(dir, extensionDir);
} catch (e) {
- log('Failed to install extension updates for %s'.format(uuid));
+ log(`Failed to install extension updates for ${uuid}`);
} finally {
FileUtils.recursivelyDeleteDir(dir, true);
}
@@ -569,17 +569,17 @@ var ExtensionManager = class {
}
_loadExtensions() {
- global.settings.connect('changed::%s'.format(ENABLED_EXTENSIONS_KEY),
+ global.settings.connect(`changed::${ENABLED_EXTENSIONS_KEY}`,
this._onEnabledExtensionsChanged.bind(this));
- global.settings.connect('changed::%s'.format(DISABLED_EXTENSIONS_KEY),
+ global.settings.connect(`changed::${DISABLED_EXTENSIONS_KEY}`,
this._onEnabledExtensionsChanged.bind(this));
- global.settings.connect('changed::%s'.format(DISABLE_USER_EXTENSIONS_KEY),
+ global.settings.connect(`changed::${DISABLE_USER_EXTENSIONS_KEY}`,
this._onUserExtensionsEnabledChanged.bind(this));
- global.settings.connect('changed::%s'.format(EXTENSION_DISABLE_VERSION_CHECK_KEY),
+ global.settings.connect(`changed::${EXTENSION_DISABLE_VERSION_CHECK_KEY}`,
this._onVersionValidationChanged.bind(this));
- global.settings.connect('writable-changed::%s'.format(ENABLED_EXTENSIONS_KEY),
+ global.settings.connect(`writable-changed::${ENABLED_EXTENSIONS_KEY}`,
this._onSettingsWritableChanged.bind(this));
- global.settings.connect('writable-changed::%s'.format(DISABLED_EXTENSIONS_KEY),
+ global.settings.connect(`writable-changed::${DISABLED_EXTENSIONS_KEY}`,
this._onSettingsWritableChanged.bind(this));
this._onVersionValidationChanged();
@@ -594,7 +594,7 @@ var ExtensionManager = class {
let uuid = info.get_name();
let existing = this.lookup(uuid);
if (existing) {
- log('Extension %s already installed in %s. %s will not be loaded'.format(uuid, existing.path, dir.get_path()));
+ log(`Extension ${uuid} already installed in ${existing.path}. ${dir.get_path()} will not be loaded`);
return;
}
@@ -605,7 +605,7 @@ var ExtensionManager = class {
try {
extension = this.createExtensionObject(uuid, dir, type);
} catch (e) {
- logError(e, 'Could not load extension %s'.format(uuid));
+ logError(e, `Could not load extension ${uuid}`);
return;
}
this.loadExtension(extension);
diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js
index cff4a6f8e..75df02de6 100644
--- a/js/ui/keyboard.js
+++ b/js/ui/keyboard.js
@@ -555,7 +555,8 @@ var KeyboardModel = class {
}
_loadModel(groupName) {
- let file = Gio.File.new_for_uri('resource:///org/gnome/shell/osk-layouts/%s.json'.format(groupName));
+ const file = Gio.File.new_for_uri(
+ `resource:///org/gnome/shell/osk-layouts/${groupName}.json`);
let [success_, contents] = file.load_contents(null);
const decoder = new TextDecoder();
diff --git a/js/ui/lookingGlass.js b/js/ui/lookingGlass.js
index f2c787478..bff753ec5 100644
--- a/js/ui/lookingGlass.js
+++ b/js/ui/lookingGlass.js
@@ -252,13 +252,7 @@ function objectToString(o) {
// special case this since the default is way, way too verbose
return '';
} else {
- if (o === undefined)
- return 'undefined';
-
- if (o === null)
- return 'null';
-
- return o.toString();
+ return `${o}`;
}
}
@@ -305,7 +299,7 @@ class Result extends St.BoxLayout {
this.add(cmdTxt);
let box = new St.BoxLayout({});
this.add(box);
- let resultTxt = new St.Label({ text: 'r(%d) = '.format(index) });
+ let resultTxt = new St.Label({ text: `r(${index}) = ` });
resultTxt.clutter_text.ellipsize = Pango.EllipsizeMode.END;
box.add(resultTxt);
let objLink = new ObjLink(this._lookingGlass, o);
@@ -345,7 +339,7 @@ var WindowList = GObject.registerClass({
box.add_child(windowLink);
let propsBox = new St.BoxLayout({ vertical: true, style: 'padding-left: 6px;' });
box.add(propsBox);
- propsBox.add(new St.Label({ text: 'wmclass: %s'.format(metaWindow.get_wm_class()) }));
+ propsBox.add(new St.Label({ text: `wmclass: ${metaWindow.get_wm_class()}` }));
let app = tracker.get_window_app(metaWindow);
if (app != null && !app.is_window_backed()) {
let icon = app.create_icon_texture(22);
@@ -403,7 +397,7 @@ class ObjInspector extends St.ScrollView {
let hbox = new St.BoxLayout({ style_class: 'lg-obj-inspector-title' });
this._container.add_actor(hbox);
let label = new St.Label({
- text: 'Inspecting: %s: %s'.format(typeof obj, objectToString(obj)),
+ text: `Inspecting: ${typeof obj}: ${objectToString(obj)}`,
x_expand: true,
});
label.single_line_mode = true;
@@ -438,7 +432,7 @@ class ObjInspector extends St.ScrollView {
link = new St.Label({ text: '' });
}
let box = new St.BoxLayout();
- box.add(new St.Label({ text: '%s: '.format(propName) }));
+ box.add(new St.Label({ text: `${propName}: ` }));
box.add(link);
this._container.add_actor(box);
}
@@ -665,9 +659,9 @@ var Inspector = GObject.registerClass({
this._target = target;
this._pointerTarget = target;
- let position = '[inspect x: %d y: %d]'.format(stageX, stageY);
+ let position = `[inspect x: ${stageX} y: ${stageY}]`;
this._displayText.text = '';
- this._displayText.text = '%s %s'.format(position, this._target);
+ this._displayText.text = `${position} ${this._target}`;
this._lookingGlass.setBorderPaintTarget(this._target);
}
@@ -1176,7 +1170,7 @@ class DebugFlags extends St.BoxLayout {
// Clutter debug flags
for (const [categoryName, props] of CLUTTER_DEBUG_FLAG_CATEGORIES.entries()) {
- this._addHeader('Clutter%s'.format(categoryName));
+ this._addHeader(`Clutter${categoryName}`);
for (const flagName of this._getFlagNames(Clutter[categoryName])) {
if (props.exclude.includes(flagName))
continue;
@@ -1274,7 +1268,7 @@ class LookingGlass extends St.BoxLayout {
inspectButton.connect('clicked', () => {
let inspector = new Inspector(this);
inspector.connect('target', (i, target, stageX, stageY) => {
- this._pushResult('inspect(%d, %d)'.format(Math.round(stageX), Math.round(stageY)), target);
+ this._pushResult(`inspect(${Math.round(stageX)}, ${Math.round(stageY)})`, target);
});
inspector.connect('closed', () => {
this.show();
@@ -1388,8 +1382,9 @@ class LookingGlass extends St.BoxLayout {
// monospace font to be bold/oblique/etc. Could easily be added here.
let size = fontDesc.get_size() / 1024.;
let unit = fontDesc.get_size_is_absolute() ? 'px' : 'pt';
- this.style = 'font-size: %d%s; font-family: "%s";'.format(
- size, unit, fontDesc.get_family());
+ this.style = `
+ font-size: ${size}${unit};
+ font-family: "${fontDesc.get_family()}";`;
}
setBorderPaintTarget(obj) {
@@ -1472,7 +1467,7 @@ class LookingGlass extends St.BoxLayout {
return;
let lines = command.split(';');
- lines.push('return %s'.format(lines.pop()));
+ lines.push(`return ${lines.pop()}`);
let fullCmd = commandHeader + lines.join(';');
@@ -1480,7 +1475,7 @@ class LookingGlass extends St.BoxLayout {
try {
resultObj = Function(fullCmd)();
} catch (e) {
- resultObj = ''.format(e.toString());
+ resultObj = ``;
}
this._pushResult(command, resultObj);
@@ -1499,7 +1494,7 @@ class LookingGlass extends St.BoxLayout {
try {
return this._resultsArea.get_child_at_index(idx - this._offset).o;
} catch (e) {
- throw new Error('Unknown result at index %d'.format(idx));
+ throw new Error(`Unknown result at index ${idx}`);
}
}
diff --git a/js/ui/main.js b/js/ui/main.js
index ce019471b..908688c5a 100644
--- a/js/ui/main.js
+++ b/js/ui/main.js
@@ -303,7 +303,7 @@ function _initializeUI() {
if (sessionMode.currentMode != 'gdm' &&
sessionMode.currentMode != 'initial-setup') {
GLib.log_structured(LOG_DOMAIN, GLib.LogLevelFlags.LEVEL_MESSAGE, {
- 'MESSAGE': 'GNOME Shell started at %s'.format(_startDate),
+ 'MESSAGE': `GNOME Shell started at ${_startDate}`,
'MESSAGE_ID': GNOMESHELL_STARTED_MESSAGE_ID,
});
}
@@ -325,7 +325,7 @@ function _initializeUI() {
let perfModuleName = GLib.getenv("SHELL_PERF_MODULE");
if (perfModuleName) {
let perfOutput = GLib.getenv("SHELL_PERF_OUTPUT");
- let module = eval('imports.perf.%s;'.format(perfModuleName));
+ let module = eval(`imports.perf.${perfModuleName};`);
Scripting.runPerfScript(module, perfOutput);
}
});
@@ -340,7 +340,7 @@ function _handleShowWelcomeScreen() {
}
async function _handleLockScreenWarning() {
- const path = '%s/lock-warning-shown'.format(global.userdatadir);
+ const path = `${global.userdatadir}/lock-warning-shown`;
const file = Gio.File.new_for_path(path);
const hasLockScreen = screenShield !== null;
@@ -368,7 +368,7 @@ async function _handleLockScreenWarning() {
function _getStylesheet(name) {
let stylesheet;
- stylesheet = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/%s'.format(name));
+ stylesheet = Gio.File.new_for_uri(`resource:///org/gnome/shell/theme/${name}`);
if (stylesheet.query_exists(null))
return stylesheet;
@@ -380,7 +380,7 @@ function _getStylesheet(name) {
return stylesheet;
}
- stylesheet = Gio.File.new_for_path('%s/theme/%s'.format(global.datadir, name));
+ stylesheet = Gio.File.new_for_path(`${global.datadir}/theme/${name}`);
if (stylesheet.query_exists(null))
return stylesheet;
@@ -437,19 +437,19 @@ function reloadThemeResource() {
if (_themeResource)
_themeResource._unregister();
- _themeResource = Gio.Resource.load('%s/%s'.format(global.datadir,
- sessionMode.themeResourceName));
+ _themeResource = Gio.Resource.load(
+ `${global.datadir}/${sessionMode.themeResourceName}`);
_themeResource._register();
}
/** @private */
function _loadIcons() {
- _iconResource = Gio.Resource.load('%s/gnome-shell-icons.gresource'.format(global.datadir));
+ _iconResource = Gio.Resource.load(`${global.datadir}/gnome-shell-icons.gresource`);
_iconResource._register();
}
function _loadOskLayouts() {
- _oskResource = Gio.Resource.load('%s/gnome-shell-osk-layouts.gresource'.format(global.datadir));
+ _oskResource = Gio.Resource.load(`${global.datadir}/gnome-shell-osk-layouts.gresource`);
_oskResource._register();
}
@@ -468,7 +468,7 @@ function loadTheme() {
});
if (theme.default_stylesheet == null)
- throw new Error("No valid stylesheet found for '%s'".format(sessionMode.stylesheetName));
+ throw new Error(`No valid stylesheet found for '${sessionMode.stylesheetName}'`);
if (previousTheme) {
let customStylesheets = previousTheme.get_custom_stylesheets();
@@ -503,9 +503,9 @@ function notify(msg, details) {
function notifyError(msg, details) {
// Also print to stderr so it's logged somewhere
if (details)
- log('error: %s: %s'.format(msg, details));
+ log(`error: ${msg}: ${details}`);
else
- log('error: %s'.format(msg));
+ log(`error: ${msg}`);
notify(msg, details);
}
@@ -787,7 +787,7 @@ function _queueBeforeRedraw(workId) {
*/
function initializeDeferredWork(actor, callback) {
// Turn into a string so we can use as an object property
- let workId = (++_deferredWorkSequence).toString();
+ let workId = `${++_deferredWorkSequence}`;
_deferredWorkData[workId] = { actor,
callback };
actor.connect('notify::mapped', () => {
@@ -817,7 +817,7 @@ function initializeDeferredWork(actor, callback) {
function queueDeferredWork(workId) {
let data = _deferredWorkData[workId];
if (!data) {
- let message = 'Invalid work id %d'.format(workId);
+ let message = `Invalid work id ${workId}`;
logError(new Error(message), message);
return;
}
diff --git a/js/ui/messageList.js b/js/ui/messageList.js
index 77672a592..45ebbf53d 100644
--- a/js/ui/messageList.js
+++ b/js/ui/messageList.js
@@ -78,7 +78,7 @@ class URLHighlighter extends St.Label {
if (urlId != -1) {
let url = this._urls[urlId].url;
if (!url.includes(':'))
- url = 'http://%s'.format(url);
+ url = `http://${url}`;
Gio.app_info_launch_default_for_uri(
url, global.create_app_launch_context(0, -1));
@@ -131,7 +131,7 @@ class URLHighlighter extends St.Label {
for (let i = 0; i < urls.length; i++) {
let url = urls[i];
let str = this._text.substr(pos, url.pos - pos);
- markup += '%s%s'.format(str, this._linkColor, url.url);
+ markup += `${str}${url.url}`;
pos = url.pos + url.url.length;
}
markup += this._text.substr(pos);
diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
index de30767e5..562d55636 100644
--- a/js/ui/messageTray.js
+++ b/js/ui/messageTray.js
@@ -229,7 +229,7 @@ var NotificationApplicationPolicy = GObject.registerClass({
this._masterSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.notifications' });
this._settings = new Gio.Settings({
schema_id: 'org.gnome.desktop.notifications.application',
- path: '/org/gnome/desktop/notifications/application/%s/'.format(this._canonicalId),
+ path: `/org/gnome/desktop/notifications/application/${this._canonicalId}/`,
});
this._masterSettings.connect('changed', this._changed.bind(this));
@@ -237,7 +237,7 @@ var NotificationApplicationPolicy = GObject.registerClass({
}
store() {
- this._settings.set_string('application-id', '%s.desktop'.format(this.id));
+ this._settings.set_string('application-id', `${this.id}.desktop`);
let apps = this._masterSettings.get_strv('application-children');
if (!apps.includes(this._canonicalId)) {
@@ -966,7 +966,7 @@ var MessageTray = GObject.registerClass({
add(source) {
if (this.contains(source)) {
- log('Trying to re-add source %s'.format(source.title));
+ log(`Trying to re-add source ${source.title}`);
return;
}
diff --git a/js/ui/mpris.js b/js/ui/mpris.js
index b7cc8ea19..c672dcb90 100644
--- a/js/ui/mpris.js
+++ b/js/ui/mpris.js
@@ -150,7 +150,7 @@ var MprisPlayer = class MprisPlayer {
// so prefer activating the app via .desktop file if possible
let app = null;
if (this._mprisProxy.DesktopEntry) {
- let desktopId = '%s.desktop'.format(this._mprisProxy.DesktopEntry);
+ let desktopId = `${this._mprisProxy.DesktopEntry}.desktop`;
app = Shell.AppSystem.get_default().lookup_app(desktopId);
}
@@ -200,9 +200,9 @@ var MprisPlayer = class MprisPlayer {
if (!Array.isArray(this._trackArtists) ||
!this._trackArtists.every(artist => typeof artist === 'string')) {
if (typeof this._trackArtists !== 'undefined') {
- log(('Received faulty track artist metadata from %s; ' +
- 'expected an array of strings, got %s (%s)').format(
- this._busName, this._trackArtists, typeof this._trackArtists));
+ log(`Received faulty track artist metadata from ${
+ this._busName}; expected an array of strings, got ${
+ this._trackArtists} (${typeof this._trackArtists})`);
}
this._trackArtists = [_("Unknown artist")];
}
@@ -210,9 +210,9 @@ var MprisPlayer = class MprisPlayer {
this._trackTitle = metadata['xesam:title'];
if (typeof this._trackTitle !== 'string') {
if (typeof this._trackTitle !== 'undefined') {
- log(('Received faulty track title metadata from %s; ' +
- 'expected a string, got %s (%s)').format(
- this._busName, this._trackTitle, typeof this._trackTitle));
+ log(`Received faulty track title metadata from ${
+ this._busName}; expected a string, got ${
+ this._trackTitle} (${typeof this._trackTitle})`);
}
this._trackTitle = _("Unknown title");
}
@@ -220,9 +220,9 @@ var MprisPlayer = class MprisPlayer {
this._trackCoverUrl = metadata['mpris:artUrl'];
if (typeof this._trackCoverUrl !== 'string') {
if (typeof this._trackCoverUrl !== 'undefined') {
- log(('Received faulty track cover art metadata from %s; ' +
- 'expected a string, got %s (%s)').format(
- this._busName, this._trackCoverUrl, typeof this._trackCoverUrl));
+ log(`Received faulty track cover art metadata from ${
+ this._busName}; expected a string, got ${
+ this._trackCoverUrl} (${typeof this._trackCoverUrl})`);
}
this._trackCoverUrl = '';
}
diff --git a/js/ui/notificationDaemon.js b/js/ui/notificationDaemon.js
index 954ce8068..c2645586f 100644
--- a/js/ui/notificationDaemon.js
+++ b/js/ui/notificationDaemon.js
@@ -412,10 +412,10 @@ class FdoNotificationDaemonSource extends MessageTray.Source {
return app;
if (appId)
- app = appSys.lookup_app('%s.desktop'.format(appId));
+ app = appSys.lookup_app(`${appId}.desktop`);
if (!app)
- app = appSys.lookup_app('%s.desktop'.format(this.initialTitle));
+ app = appSys.lookup_app(`${this.initialTitle}.desktop`);
return app;
}
@@ -549,7 +549,7 @@ function objectPathFromAppId(appId) {
}
function getPlatformData() {
- let startupId = GLib.Variant.new('s', '_TIME%s'.format(global.get_current_time()));
+ let startupId = GLib.Variant.new('s', `_TIME${global.get_current_time()}`);
return { "desktop-startup-id": startupId };
}
@@ -562,7 +562,7 @@ class GtkNotificationDaemonAppSource extends MessageTray.Source {
if (!GLib.Variant.is_object_path(objectPath))
throw new InvalidAppError();
- let app = Shell.AppSystem.get_default().lookup_app('%s.desktop'.format(appId));
+ let app = Shell.AppSystem.get_default().lookup_app(`${appId}.desktop`);
if (!app)
throw new InvalidAppError();
@@ -738,7 +738,8 @@ var GtkNotificationDaemon = class GtkNotificationDaemon {
source = this._ensureAppSource(appId);
} catch (e) {
if (e instanceof InvalidAppError) {
- invocation.return_dbus_error('org.gtk.Notifications.InvalidApp', 'The app by ID "%s" could not be found'.format(appId));
+ invocation.return_dbus_error('org.gtk.Notifications.InvalidApp',
+ `The app by ID "${appId}" could not be found`);
return;
}
throw e;
diff --git a/js/ui/overview.js b/js/ui/overview.js
index 2a603ba02..bea093572 100644
--- a/js/ui/overview.js
+++ b/js/ui/overview.js
@@ -390,7 +390,7 @@ var Overview = class {
this._shown = false;
this._visibleTarget = false;
this.emit('hiding');
- Main.panel.style = 'transition-duration: %dms;'.format(duration);
+ Main.panel.style = `transition-duration: ${duration}ms;`;
onComplete = () => this._hideDone();
} else {
onComplete = () => this._showDone();
diff --git a/js/ui/padOsd.js b/js/ui/padOsd.js
index 8362b101d..b58e4eeb4 100644
--- a/js/ui/padOsd.js
+++ b/js/ui/padOsd.js
@@ -354,7 +354,7 @@ var PadDiagram = GObject.registerClass({
return '' +
'