Update to version 94

That version includes compatibility with GNOME 47, so we can
drop the downstream backports.

Resolves: RHEL-56037
This commit is contained in:
Florian Müllner 2024-08-26 15:30:54 +02:00
parent 41c9de0f18
commit 8546e2793c
No known key found for this signature in database
5 changed files with 211 additions and 473 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
/gnome-shell-extension-dash-to-dock-92.tar.gz
/gnome-shell-extension-dash-to-dock-94.tar.gz

View File

@ -7,7 +7,7 @@
#%%global commit_date 20240320
Name: gnome-shell-extension-dash-to-dock
Version: 92
Version: 94
Release: %autorelease
#Release: %%autorelease -e %%{commit_date}git%%{commit_short}
Summary: Dock for the Gnome Shell by micxgx@gmail.com
@ -37,8 +37,6 @@ Requires: gnome-shell-extension-common
Requires: libdbusmenu-gtk3
%endif
Patch: post-v92.patch
%description
This extension enhances the dash moving it out of the overview and
transforming it in a dock for an easier launching of applications

View File

@ -1,418 +0,0 @@
From a3f37c23ce8f210b10c396922367f63f52ea0c85 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
Date: Sun, 5 May 2024 18:23:44 +0200
Subject: [PATCH 1/9] locations: Ask again for password on encryption failures
This sadly requires parsing the error strings since there are not good
APIs yet, but that's how upstream handles this too, so let's accept it
for now.
See: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3300
---
locations.js | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/locations.js b/locations.js
index bf20de8..85d71e2 100644
--- a/locations.js
+++ b/locations.js
@@ -656,6 +656,12 @@ class MountableVolumeAppInfo extends LocationAppInfo {
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.FAILED))
this._notifyActionError(action, e.message);
+ if (action === 'mount' && this._isEncryptedMountError(e)) {
+ delete this._currentAction;
+ operation.close();
+ return this.launchAction(action);
+ }
+
if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) {
logError(e, 'Impossible to %s removable %s'.format(action,
removable.get_name()));
@@ -669,6 +675,39 @@ class MountableVolumeAppInfo extends LocationAppInfo {
operation.close();
}
}
+
+ _isEncryptedMountError(error) {
+ // FIXME: we will always get G_IO_ERROR_FAILED from the gvfs udisks
+ // backend, see https://bugs.freedesktop.org/show_bug.cgi?id=51271
+
+ if (!error.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.FAILED))
+ return false;
+
+ // cryptsetup
+ if (error.message.includes('No key available with this passphrase'))
+ return true;
+
+ // udisks (no password)
+ if (error.message.includes('No key available to unlock device'))
+ return true;
+
+ // libblockdev wrong password opening LUKS device
+ if (error.message.includes('Failed to activate device: Incorrect passphrase'))
+ return true;
+
+ // cryptsetup returns EINVAL in many cases, including wrong TCRYPT password/parameters
+ if (error.message.includes('Failed to load device\'s parameters: Invalid argument') ||
+ error.message.includes(`Failed to load device's parameters: ${GLib.strerror(22 /* EINVAL */)}`))
+ return true;
+
+ // cryptsetup returns EPERM when the TCRYPT header can't be decrypted
+ // with the provided password/parameters.
+ if (error.message.includes('Failed to load device\'s parameters: Operation not permitted') ||
+ error.message.includes(`Failed to load device's parameters: ${GLib.strerror(1 /* EPERM */)}`))
+ return true;
+
+ return false;
+ }
});
const TrashAppInfo = GObject.registerClass({
--
2.45.2
From 57c0ce0021541b24ba857ff9c1dee5c930cfcd1e Mon Sep 17 00:00:00 2001
From: Sergio Costas Rodriguez <sergio.costas@canonical.com>
Date: Sun, 12 May 2024 20:53:17 +0200
Subject: [PATCH 2/9] Fix communication with DING
The extension state naming has changed from gnome shell 45 to
gnome shell 46, so the code to notify margins to DING wasn't
being able to detect when an extension was active, and so it
didn't prevent to put icons below the dock.
This patch fixes it.
---
desktopIconsIntegration.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/desktopIconsIntegration.js b/desktopIconsIntegration.js
index e637501..6412a87 100644
--- a/desktopIconsIntegration.js
+++ b/desktopIconsIntegration.js
@@ -153,7 +153,8 @@ export class DesktopIconsUsableAreaClass {
_sendMarginsToExtension(extension) {
// check that the extension is an extension that has the logic to accept
// working margins
- if (extension?.state !== ExtensionUtils.ExtensionState.ENABLED)
+ if ((extension?.state !== ExtensionUtils.ExtensionState.ENABLED) &&
+ (extension?.state !== ExtensionUtils.ExtensionState.ACTIVE))
return;
const usableArea = extension?.stateObj?.DesktopIconsUsableArea;
--
2.45.2
From e37e32519578d300d00bb49308c831171fd2ad26 Mon Sep 17 00:00:00 2001
From: Sergio Costas Rodriguez <sergio.costas@canonical.com>
Date: Thu, 16 May 2024 15:30:00 +0200
Subject: [PATCH 3/9] Apply changes in all cases
---
desktopIconsIntegration.js | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/desktopIconsIntegration.js b/desktopIconsIntegration.js
index 6412a87..c1d4677 100644
--- a/desktopIconsIntegration.js
+++ b/desktopIconsIntegration.js
@@ -63,6 +63,10 @@ import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js';
const IDENTIFIER_UUID = '130cbc66-235c-4bd6-8571-98d2d8bba5e2';
export class DesktopIconsUsableAreaClass {
+ _checkIfExtensionIsEnabled(extension) {
+ return ((extension?.state === ExtensionUtils.ExtensionState.ENABLED) || (extension?.state === ExtensionUtils.ExtensionState.ACTIVE));
+ }
+
constructor() {
const Me = Extension.lookupByURL(import.meta.url);
this._UUID = Me.uuid;
@@ -75,7 +79,7 @@ export class DesktopIconsUsableAreaClass {
// If an extension is being enabled and lacks the
// DesktopIconsUsableArea object, we can avoid launching a refresh
- if (extension.state === ExtensionUtils.ExtensionState.ENABLED) {
+ if (this._checkIfExtensionIsEnabled(extension)) {
this._sendMarginsToExtension(extension);
return;
}
@@ -153,8 +157,7 @@ export class DesktopIconsUsableAreaClass {
_sendMarginsToExtension(extension) {
// check that the extension is an extension that has the logic to accept
// working margins
- if ((extension?.state !== ExtensionUtils.ExtensionState.ENABLED) &&
- (extension?.state !== ExtensionUtils.ExtensionState.ACTIVE))
+ if (!this._checkIfExtensionIsEnabled(extension))
return;
const usableArea = extension?.stateObj?.DesktopIconsUsableArea;
--
2.45.2
From 28e64a9b144ea52c5d941f603c6c4b591b976417 Mon Sep 17 00:00:00 2001
From: Sergio Costas Rodriguez <sergio.costas@canonical.com>
Date: Thu, 16 May 2024 15:32:24 +0200
Subject: [PATCH 4/9] Fix style
---
desktopIconsIntegration.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/desktopIconsIntegration.js b/desktopIconsIntegration.js
index c1d4677..ca07747 100644
--- a/desktopIconsIntegration.js
+++ b/desktopIconsIntegration.js
@@ -64,7 +64,8 @@ const IDENTIFIER_UUID = '130cbc66-235c-4bd6-8571-98d2d8bba5e2';
export class DesktopIconsUsableAreaClass {
_checkIfExtensionIsEnabled(extension) {
- return ((extension?.state === ExtensionUtils.ExtensionState.ENABLED) || (extension?.state === ExtensionUtils.ExtensionState.ACTIVE));
+ return (extension?.state === ExtensionUtils.ExtensionState.ENABLED) ||
+ (extension?.state === ExtensionUtils.ExtensionState.ACTIVE);
}
constructor() {
--
2.45.2
From 88a11606366f83a23898893b497d4861640b3de3 Mon Sep 17 00:00:00 2001
From: Sergio Costas Rodriguez <sergio.costas@canonical.com>
Date: Mon, 24 Jun 2024 17:38:46 +0200
Subject: [PATCH 5/9] Don't show error messages when disabling
Since the destroy() function can be called several times, it is
paramount to don't call objects that have been freed in
previous calls.
---
docking.js | 2 +-
notificationsMonitor.js | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/docking.js b/docking.js
index 23ffd34..fc60768 100644
--- a/docking.js
+++ b/docking.js
@@ -2551,7 +2551,7 @@ export class DockManager {
this._appSwitcherSettings = null;
this._oldDash = null;
- this._desktopIconsUsableArea.destroy();
+ this._desktopIconsUsableArea?.destroy();
this._desktopIconsUsableArea = null;
this._extension = null;
DockManager._singleton = null;
diff --git a/notificationsMonitor.js b/notificationsMonitor.js
index c9060e1..c8b4088 100644
--- a/notificationsMonitor.js
+++ b/notificationsMonitor.js
@@ -50,7 +50,7 @@ export class NotificationsMonitor {
destroy() {
this.emit('destroy');
- this._signalsHandler.destroy();
+ this._signalsHandler?.destroy();
this._signalsHandler = null;
this._appNotifications = null;
this._settings = null;
--
2.45.2
From 55f8310f4f9d19e4fef90df82b3cf6d8a1cf8e0a Mon Sep 17 00:00:00 2001
From: Sergio Costas <sergio.costas@canonical.com>
Date: Mon, 1 Jul 2024 05:23:40 +0200
Subject: [PATCH 6/9] UDENG-3111: allow to disable an icon in the dock during
updates (#2240)
* UDENG-3111: allow to disable an icon in the dock during updates
For the new RAA we need to be able to mark an icon as "disabled"
while it is being updated. The current Unity LauncherAPI
(https://wiki.ubuntu.com/Unity/LauncherAPI) doesn't support
this, so this patch adds an extra option for this.
https://docs.google.com/document/d/1--DgBRl6AqNiyjW_luOjl1dDzsIZPlF0Ukc7INW9_XQ
---
appIconIndicators.js | 9 +++++++++
appIcons.js | 11 +++++++++++
launcherAPI.js | 1 +
3 files changed, 21 insertions(+)
diff --git a/appIconIndicators.js b/appIconIndicators.js
index e38510d..448b76b 100644
--- a/appIconIndicators.js
+++ b/appIconIndicators.js
@@ -739,6 +739,10 @@ class UnityIndicator extends IndicatorBase {
remoteEntry,
'urgent-changed',
(sender, {urgent}) => this.setUrgent(urgent),
+ ], [
+ remoteEntry,
+ 'updating-changed',
+ (sender, {updating}) => this.setUpdating(updating),
], [
notificationsMonitor,
'changed',
@@ -759,6 +763,7 @@ class UnityIndicator extends IndicatorBase {
this._notificationBadgeBin = null;
this._hideProgressOverlay();
this.setUrgent(false);
+ this.setUpdating(false);
this._remoteEntry = null;
super.destroy();
@@ -1018,6 +1023,10 @@ class UnityIndicator extends IndicatorBase {
else
delete this._isUrgent;
}
+
+ setUpdating(updating) {
+ this._source.updating = updating;
+ }
}
diff --git a/appIcons.js b/appIcons.js
index 3c66c8e..b06aa02 100644
--- a/appIcons.js
+++ b/appIcons.js
@@ -106,6 +106,10 @@ const DockAbstractAppIcon = GObject.registerClass({
'urgent', 'urgent', 'urgent',
GObject.ParamFlags.READWRITE,
false),
+ 'updating': GObject.ParamSpec.boolean(
+ 'updating', 'updating', 'updating',
+ GObject.ParamFlags.READWRITE,
+ false),
'windows-count': GObject.ParamSpec.uint(
'windows-count', 'windows-count', 'windows-count',
GObject.ParamFlags.READWRITE,
@@ -187,6 +191,13 @@ const DockAbstractAppIcon = GObject.registerClass({
}
});
+ this.connect('notify::updating', () => {
+ const icon = this.icon._iconBin;
+ if (this.updating)
+ icon.set_opacity(128);
+ else
+ icon.set_opacity(255);
+ });
this._urgentWindows = new Set();
this._progressOverlayArea = null;
this._progress = 0;
diff --git a/launcherAPI.js b/launcherAPI.js
index cf08c38..e4e1c11 100644
--- a/launcherAPI.js
+++ b/launcherAPI.js
@@ -160,6 +160,7 @@ const launcherEntryDefaults = Object.freeze({
count: 0,
progress: 0,
urgent: false,
+ updating: false,
quicklist: null,
'count-visible': false,
'progress-visible': false,
--
2.45.2
From 9270a6e723b40ce5cd8403aae0e2a2268f405a7c Mon Sep 17 00:00:00 2001
From: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Tue, 28 May 2024 17:05:58 +0800
Subject: [PATCH 7/9] docking: Fix allocation failure in GNOME 47 that
completely broke the shell
Since this._container no longer exists (gnome-shell@b58119d5c6?) in
GNOME 47, allocating the entire overview would fail and the shell was
non-functional.
Fixes:
```
Gjs-CRITICAL **: 17:10:01.720: JS ERROR: TypeError: actor is undefined
findIndexForActor@resource:///org/gnome/shell/ui/layout.js:992:22
findMonitorForActor@resource:///org/gnome/shell/ui/layout.js:999:26
_prepareMainDash/<@file:///home/dan/.local/share/gnome-shell/extensions/dash-to-dock@micxgx.gmail.com/docking.js:2233:52
@resource:///org/gnome/shell/ui/init.js:21:20
```
---
docking.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docking.js b/docking.js
index fc60768..531aed6 100644
--- a/docking.js
+++ b/docking.js
@@ -2230,7 +2230,7 @@ export class DockManager {
const oldPostAllocation = this._runPostAllocation;
this._runPostAllocation = () => {};
- const monitor = Main.layoutManager.findMonitorForActor(this._container);
+ const monitor = Main.layoutManager.findMonitorForActor(container);
const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor.index);
const startX = workArea.x - monitor.x;
const startY = workArea.y - monitor.y;
--
2.45.2
From ec21858636fd4488893c0caa2c810bc3e1d345b1 Mon Sep 17 00:00:00 2001
From: Andrew Skalski <2379988+Voltara@users.noreply.github.com>
Date: Mon, 1 Jul 2024 09:41:29 -0400
Subject: [PATCH 8/9] Fix window selected from preview not getting focus
Fixes #1972
---
windowPreview.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/windowPreview.js b/windowPreview.js
index 75459b5..2e939af 100644
--- a/windowPreview.js
+++ b/windowPreview.js
@@ -645,8 +645,8 @@ class WindowPreviewMenuItem extends PopupMenu.PopupBaseMenuItem {
}
activate() {
- this._getTopMenu().close();
Main.activateWindow(this._window);
+ this._getTopMenu().close();
}
_onDestroy() {
--
2.45.2
From dd35fb149050c412278c4db3dc4e6e40bff78d76 Mon Sep 17 00:00:00 2001
From: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Fri, 5 Jul 2024 12:05:06 +0800
Subject: [PATCH 9/9] metadata.json: Enable support for gnome-shell 47 (#2248)
Closes: https://github.com/micheleg/dash-to-dock/issues/2246
---
metadata.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/metadata.json b/metadata.json
index f205087..1e99ff2 100644
--- a/metadata.json
+++ b/metadata.json
@@ -1,7 +1,8 @@
{
"shell-version": [
"45",
- "46"
+ "46",
+ "47"
],
"uuid": "dash-to-dock@micxgx.gmail.com",
"name": "Dash to Dock",
--
2.45.2

View File

@ -1 +1 @@
SHA512 (gnome-shell-extension-dash-to-dock-92.tar.gz) = 3939954f416f63f7a9bf8d3110c092daf0dab9f3018e5f92ef30885f0f1caee19132ea559f396bc7b170db9df141a95ab8bf3bc8fa7870e91c1e5c976cc26eb9
SHA512 (gnome-shell-extension-dash-to-dock-94.tar.gz) = 10eef60349d19018f87f4d5a7d69e0a2ddd02d68281ff1f3d73bc2d6311a6e6a4f759bdf16f0b9917913905481600378d46b65b08812122e48cc4941f28521b9

View File

@ -56,11 +56,20 @@
#dashtodockContainer.bottom #dash .dash-item-container .overview-tile:ltr:last-child,
#dashtodockContainer.bottom #dash .dash-item-container .overview-tile:rtl:first-child {
padding-right: 0; }
#dashtodockContainer.bottom #dash .dash-item-container .app-well-app.running .overview-icon {
#dashtodockContainer.bottom #dash .dash-item-container .app-well-app.updating,
#dashtodockContainer.bottom #dash .dash-item-container .show-apps.updating,
#dashtodockContainer.bottom #dash .dash-item-container .overview-tile.updating {
opacity: 0.5; }
#dashtodockContainer.bottom #dash .dash-item-container .app-well-app.running .overview-icon,
#dashtodockContainer.bottom #dash .dash-item-container .overview-tile.running .overview-icon {
background-image: none; }
#dashtodockContainer.bottom #dash .dash-item-container .app-well-app.focused .overview-icon {
#dashtodockContainer.bottom #dash .dash-item-container .app-well-app.focused .overview-icon,
#dashtodockContainer.bottom #dash .dash-item-container .overview-tile.focused .overview-icon {
background-color: rgba(238, 238, 238, 0.2); }
#dashtodockContainer.bottom #dash .dash-item-container .app-well-app .app-well-app-running-dot {
#dashtodockContainer.bottom #dash .dash-item-container .app-well-app .app-well-app-running-dot,
#dashtodockContainer.bottom #dash .dash-item-container .app-well-app .app-grid-running-dot,
#dashtodockContainer.bottom #dash .dash-item-container .overview-tile .app-well-app-running-dot,
#dashtodockContainer.bottom #dash .dash-item-container .overview-tile .app-grid-running-dot {
margin-bottom: 2px; }
#dashtodockContainer.bottom #dash .dash-item-container > StButton {
transition-duration: 250;
@ -124,11 +133,20 @@
#dashtodockContainer.bottom.shrink #dash .dash-item-container .overview-tile:ltr:last-child,
#dashtodockContainer.bottom.shrink #dash .dash-item-container .overview-tile:rtl:first-child {
padding-right: 0; }
#dashtodockContainer.bottom.shrink #dash .dash-item-container .app-well-app.running .overview-icon {
#dashtodockContainer.bottom.shrink #dash .dash-item-container .app-well-app.updating,
#dashtodockContainer.bottom.shrink #dash .dash-item-container .show-apps.updating,
#dashtodockContainer.bottom.shrink #dash .dash-item-container .overview-tile.updating {
opacity: 0.5; }
#dashtodockContainer.bottom.shrink #dash .dash-item-container .app-well-app.running .overview-icon,
#dashtodockContainer.bottom.shrink #dash .dash-item-container .overview-tile.running .overview-icon {
background-image: none; }
#dashtodockContainer.bottom.shrink #dash .dash-item-container .app-well-app.focused .overview-icon {
#dashtodockContainer.bottom.shrink #dash .dash-item-container .app-well-app.focused .overview-icon,
#dashtodockContainer.bottom.shrink #dash .dash-item-container .overview-tile.focused .overview-icon {
background-color: rgba(238, 238, 238, 0.2); }
#dashtodockContainer.bottom.shrink #dash .dash-item-container .app-well-app .app-well-app-running-dot {
#dashtodockContainer.bottom.shrink #dash .dash-item-container .app-well-app .app-well-app-running-dot,
#dashtodockContainer.bottom.shrink #dash .dash-item-container .app-well-app .app-grid-running-dot,
#dashtodockContainer.bottom.shrink #dash .dash-item-container .overview-tile .app-well-app-running-dot,
#dashtodockContainer.bottom.shrink #dash .dash-item-container .overview-tile .app-grid-running-dot {
margin-bottom: 2px; }
#dashtodockContainer.bottom.shrink #dash .dash-item-container > StButton {
transition-duration: 250;
@ -200,11 +218,20 @@
#dashtodockContainer.bottom.extended #dash .dash-item-container .overview-tile:ltr:last-child,
#dashtodockContainer.bottom.extended #dash .dash-item-container .overview-tile:rtl:first-child {
padding-right: 0; }
#dashtodockContainer.bottom.extended #dash .dash-item-container .app-well-app.running .overview-icon {
#dashtodockContainer.bottom.extended #dash .dash-item-container .app-well-app.updating,
#dashtodockContainer.bottom.extended #dash .dash-item-container .show-apps.updating,
#dashtodockContainer.bottom.extended #dash .dash-item-container .overview-tile.updating {
opacity: 0.5; }
#dashtodockContainer.bottom.extended #dash .dash-item-container .app-well-app.running .overview-icon,
#dashtodockContainer.bottom.extended #dash .dash-item-container .overview-tile.running .overview-icon {
background-image: none; }
#dashtodockContainer.bottom.extended #dash .dash-item-container .app-well-app.focused .overview-icon {
#dashtodockContainer.bottom.extended #dash .dash-item-container .app-well-app.focused .overview-icon,
#dashtodockContainer.bottom.extended #dash .dash-item-container .overview-tile.focused .overview-icon {
background-color: rgba(238, 238, 238, 0.2); }
#dashtodockContainer.bottom.extended #dash .dash-item-container .app-well-app .app-well-app-running-dot {
#dashtodockContainer.bottom.extended #dash .dash-item-container .app-well-app .app-well-app-running-dot,
#dashtodockContainer.bottom.extended #dash .dash-item-container .app-well-app .app-grid-running-dot,
#dashtodockContainer.bottom.extended #dash .dash-item-container .overview-tile .app-well-app-running-dot,
#dashtodockContainer.bottom.extended #dash .dash-item-container .overview-tile .app-grid-running-dot {
margin-bottom: 2px; }
#dashtodockContainer.bottom.extended #dash .dash-item-container > StButton {
transition-duration: 250;
@ -276,11 +303,20 @@
#dashtodockContainer.bottom.extended.shrink #dash .dash-item-container .overview-tile:ltr:last-child,
#dashtodockContainer.bottom.extended.shrink #dash .dash-item-container .overview-tile:rtl:first-child {
padding-right: 0; }
#dashtodockContainer.bottom.extended.shrink #dash .dash-item-container .app-well-app.running .overview-icon {
#dashtodockContainer.bottom.extended.shrink #dash .dash-item-container .app-well-app.updating,
#dashtodockContainer.bottom.extended.shrink #dash .dash-item-container .show-apps.updating,
#dashtodockContainer.bottom.extended.shrink #dash .dash-item-container .overview-tile.updating {
opacity: 0.5; }
#dashtodockContainer.bottom.extended.shrink #dash .dash-item-container .app-well-app.running .overview-icon,
#dashtodockContainer.bottom.extended.shrink #dash .dash-item-container .overview-tile.running .overview-icon {
background-image: none; }
#dashtodockContainer.bottom.extended.shrink #dash .dash-item-container .app-well-app.focused .overview-icon {
#dashtodockContainer.bottom.extended.shrink #dash .dash-item-container .app-well-app.focused .overview-icon,
#dashtodockContainer.bottom.extended.shrink #dash .dash-item-container .overview-tile.focused .overview-icon {
background-color: rgba(238, 238, 238, 0.2); }
#dashtodockContainer.bottom.extended.shrink #dash .dash-item-container .app-well-app .app-well-app-running-dot {
#dashtodockContainer.bottom.extended.shrink #dash .dash-item-container .app-well-app .app-well-app-running-dot,
#dashtodockContainer.bottom.extended.shrink #dash .dash-item-container .app-well-app .app-grid-running-dot,
#dashtodockContainer.bottom.extended.shrink #dash .dash-item-container .overview-tile .app-well-app-running-dot,
#dashtodockContainer.bottom.extended.shrink #dash .dash-item-container .overview-tile .app-grid-running-dot {
margin-bottom: 2px; }
#dashtodockContainer.bottom.extended.shrink #dash .dash-item-container > StButton {
transition-duration: 250;
@ -351,11 +387,20 @@
#dashtodockContainer.top #dash .dash-item-container .overview-tile:ltr:last-child,
#dashtodockContainer.top #dash .dash-item-container .overview-tile:rtl:first-child {
padding-right: 0; }
#dashtodockContainer.top #dash .dash-item-container .app-well-app.running .overview-icon {
#dashtodockContainer.top #dash .dash-item-container .app-well-app.updating,
#dashtodockContainer.top #dash .dash-item-container .show-apps.updating,
#dashtodockContainer.top #dash .dash-item-container .overview-tile.updating {
opacity: 0.5; }
#dashtodockContainer.top #dash .dash-item-container .app-well-app.running .overview-icon,
#dashtodockContainer.top #dash .dash-item-container .overview-tile.running .overview-icon {
background-image: none; }
#dashtodockContainer.top #dash .dash-item-container .app-well-app.focused .overview-icon {
#dashtodockContainer.top #dash .dash-item-container .app-well-app.focused .overview-icon,
#dashtodockContainer.top #dash .dash-item-container .overview-tile.focused .overview-icon {
background-color: rgba(238, 238, 238, 0.2); }
#dashtodockContainer.top #dash .dash-item-container .app-well-app .app-well-app-running-dot {
#dashtodockContainer.top #dash .dash-item-container .app-well-app .app-well-app-running-dot,
#dashtodockContainer.top #dash .dash-item-container .app-well-app .app-grid-running-dot,
#dashtodockContainer.top #dash .dash-item-container .overview-tile .app-well-app-running-dot,
#dashtodockContainer.top #dash .dash-item-container .overview-tile .app-grid-running-dot {
margin-bottom: 2px; }
#dashtodockContainer.top #dash .dash-item-container > StButton {
transition-duration: 250;
@ -419,11 +464,20 @@
#dashtodockContainer.top.shrink #dash .dash-item-container .overview-tile:ltr:last-child,
#dashtodockContainer.top.shrink #dash .dash-item-container .overview-tile:rtl:first-child {
padding-right: 0; }
#dashtodockContainer.top.shrink #dash .dash-item-container .app-well-app.running .overview-icon {
#dashtodockContainer.top.shrink #dash .dash-item-container .app-well-app.updating,
#dashtodockContainer.top.shrink #dash .dash-item-container .show-apps.updating,
#dashtodockContainer.top.shrink #dash .dash-item-container .overview-tile.updating {
opacity: 0.5; }
#dashtodockContainer.top.shrink #dash .dash-item-container .app-well-app.running .overview-icon,
#dashtodockContainer.top.shrink #dash .dash-item-container .overview-tile.running .overview-icon {
background-image: none; }
#dashtodockContainer.top.shrink #dash .dash-item-container .app-well-app.focused .overview-icon {
#dashtodockContainer.top.shrink #dash .dash-item-container .app-well-app.focused .overview-icon,
#dashtodockContainer.top.shrink #dash .dash-item-container .overview-tile.focused .overview-icon {
background-color: rgba(238, 238, 238, 0.2); }
#dashtodockContainer.top.shrink #dash .dash-item-container .app-well-app .app-well-app-running-dot {
#dashtodockContainer.top.shrink #dash .dash-item-container .app-well-app .app-well-app-running-dot,
#dashtodockContainer.top.shrink #dash .dash-item-container .app-well-app .app-grid-running-dot,
#dashtodockContainer.top.shrink #dash .dash-item-container .overview-tile .app-well-app-running-dot,
#dashtodockContainer.top.shrink #dash .dash-item-container .overview-tile .app-grid-running-dot {
margin-bottom: 2px; }
#dashtodockContainer.top.shrink #dash .dash-item-container > StButton {
transition-duration: 250;
@ -495,11 +549,20 @@
#dashtodockContainer.top.extended #dash .dash-item-container .overview-tile:ltr:last-child,
#dashtodockContainer.top.extended #dash .dash-item-container .overview-tile:rtl:first-child {
padding-right: 0; }
#dashtodockContainer.top.extended #dash .dash-item-container .app-well-app.running .overview-icon {
#dashtodockContainer.top.extended #dash .dash-item-container .app-well-app.updating,
#dashtodockContainer.top.extended #dash .dash-item-container .show-apps.updating,
#dashtodockContainer.top.extended #dash .dash-item-container .overview-tile.updating {
opacity: 0.5; }
#dashtodockContainer.top.extended #dash .dash-item-container .app-well-app.running .overview-icon,
#dashtodockContainer.top.extended #dash .dash-item-container .overview-tile.running .overview-icon {
background-image: none; }
#dashtodockContainer.top.extended #dash .dash-item-container .app-well-app.focused .overview-icon {
#dashtodockContainer.top.extended #dash .dash-item-container .app-well-app.focused .overview-icon,
#dashtodockContainer.top.extended #dash .dash-item-container .overview-tile.focused .overview-icon {
background-color: rgba(238, 238, 238, 0.2); }
#dashtodockContainer.top.extended #dash .dash-item-container .app-well-app .app-well-app-running-dot {
#dashtodockContainer.top.extended #dash .dash-item-container .app-well-app .app-well-app-running-dot,
#dashtodockContainer.top.extended #dash .dash-item-container .app-well-app .app-grid-running-dot,
#dashtodockContainer.top.extended #dash .dash-item-container .overview-tile .app-well-app-running-dot,
#dashtodockContainer.top.extended #dash .dash-item-container .overview-tile .app-grid-running-dot {
margin-bottom: 2px; }
#dashtodockContainer.top.extended #dash .dash-item-container > StButton {
transition-duration: 250;
@ -571,11 +634,20 @@
#dashtodockContainer.top.extended.shrink #dash .dash-item-container .overview-tile:ltr:last-child,
#dashtodockContainer.top.extended.shrink #dash .dash-item-container .overview-tile:rtl:first-child {
padding-right: 0; }
#dashtodockContainer.top.extended.shrink #dash .dash-item-container .app-well-app.running .overview-icon {
#dashtodockContainer.top.extended.shrink #dash .dash-item-container .app-well-app.updating,
#dashtodockContainer.top.extended.shrink #dash .dash-item-container .show-apps.updating,
#dashtodockContainer.top.extended.shrink #dash .dash-item-container .overview-tile.updating {
opacity: 0.5; }
#dashtodockContainer.top.extended.shrink #dash .dash-item-container .app-well-app.running .overview-icon,
#dashtodockContainer.top.extended.shrink #dash .dash-item-container .overview-tile.running .overview-icon {
background-image: none; }
#dashtodockContainer.top.extended.shrink #dash .dash-item-container .app-well-app.focused .overview-icon {
#dashtodockContainer.top.extended.shrink #dash .dash-item-container .app-well-app.focused .overview-icon,
#dashtodockContainer.top.extended.shrink #dash .dash-item-container .overview-tile.focused .overview-icon {
background-color: rgba(238, 238, 238, 0.2); }
#dashtodockContainer.top.extended.shrink #dash .dash-item-container .app-well-app .app-well-app-running-dot {
#dashtodockContainer.top.extended.shrink #dash .dash-item-container .app-well-app .app-well-app-running-dot,
#dashtodockContainer.top.extended.shrink #dash .dash-item-container .app-well-app .app-grid-running-dot,
#dashtodockContainer.top.extended.shrink #dash .dash-item-container .overview-tile .app-well-app-running-dot,
#dashtodockContainer.top.extended.shrink #dash .dash-item-container .overview-tile .app-grid-running-dot {
margin-bottom: 2px; }
#dashtodockContainer.top.extended.shrink #dash .dash-item-container > StButton {
transition-duration: 250;
@ -642,11 +714,20 @@
#dashtodockContainer.left #dash .dash-item-container .show-apps:last-child,
#dashtodockContainer.left #dash .dash-item-container .overview-tile:last-child {
padding-bottom: 0; }
#dashtodockContainer.left #dash .dash-item-container .app-well-app.running .overview-icon {
#dashtodockContainer.left #dash .dash-item-container .app-well-app.updating,
#dashtodockContainer.left #dash .dash-item-container .show-apps.updating,
#dashtodockContainer.left #dash .dash-item-container .overview-tile.updating {
opacity: 0.5; }
#dashtodockContainer.left #dash .dash-item-container .app-well-app.running .overview-icon,
#dashtodockContainer.left #dash .dash-item-container .overview-tile.running .overview-icon {
background-image: none; }
#dashtodockContainer.left #dash .dash-item-container .app-well-app.focused .overview-icon {
#dashtodockContainer.left #dash .dash-item-container .app-well-app.focused .overview-icon,
#dashtodockContainer.left #dash .dash-item-container .overview-tile.focused .overview-icon {
background-color: rgba(238, 238, 238, 0.2); }
#dashtodockContainer.left #dash .dash-item-container .app-well-app .app-well-app-running-dot {
#dashtodockContainer.left #dash .dash-item-container .app-well-app .app-well-app-running-dot,
#dashtodockContainer.left #dash .dash-item-container .app-well-app .app-grid-running-dot,
#dashtodockContainer.left #dash .dash-item-container .overview-tile .app-well-app-running-dot,
#dashtodockContainer.left #dash .dash-item-container .overview-tile .app-grid-running-dot {
margin-bottom: 2px; }
#dashtodockContainer.left #dash .dash-item-container > StButton {
transition-duration: 250;
@ -706,11 +787,20 @@
#dashtodockContainer.left.shrink #dash .dash-item-container .show-apps:last-child,
#dashtodockContainer.left.shrink #dash .dash-item-container .overview-tile:last-child {
padding-bottom: 0; }
#dashtodockContainer.left.shrink #dash .dash-item-container .app-well-app.running .overview-icon {
#dashtodockContainer.left.shrink #dash .dash-item-container .app-well-app.updating,
#dashtodockContainer.left.shrink #dash .dash-item-container .show-apps.updating,
#dashtodockContainer.left.shrink #dash .dash-item-container .overview-tile.updating {
opacity: 0.5; }
#dashtodockContainer.left.shrink #dash .dash-item-container .app-well-app.running .overview-icon,
#dashtodockContainer.left.shrink #dash .dash-item-container .overview-tile.running .overview-icon {
background-image: none; }
#dashtodockContainer.left.shrink #dash .dash-item-container .app-well-app.focused .overview-icon {
#dashtodockContainer.left.shrink #dash .dash-item-container .app-well-app.focused .overview-icon,
#dashtodockContainer.left.shrink #dash .dash-item-container .overview-tile.focused .overview-icon {
background-color: rgba(238, 238, 238, 0.2); }
#dashtodockContainer.left.shrink #dash .dash-item-container .app-well-app .app-well-app-running-dot {
#dashtodockContainer.left.shrink #dash .dash-item-container .app-well-app .app-well-app-running-dot,
#dashtodockContainer.left.shrink #dash .dash-item-container .app-well-app .app-grid-running-dot,
#dashtodockContainer.left.shrink #dash .dash-item-container .overview-tile .app-well-app-running-dot,
#dashtodockContainer.left.shrink #dash .dash-item-container .overview-tile .app-grid-running-dot {
margin-bottom: 2px; }
#dashtodockContainer.left.shrink #dash .dash-item-container > StButton {
transition-duration: 250;
@ -778,11 +868,20 @@
#dashtodockContainer.left.extended #dash .dash-item-container .show-apps:last-child,
#dashtodockContainer.left.extended #dash .dash-item-container .overview-tile:last-child {
padding-bottom: 0; }
#dashtodockContainer.left.extended #dash .dash-item-container .app-well-app.running .overview-icon {
#dashtodockContainer.left.extended #dash .dash-item-container .app-well-app.updating,
#dashtodockContainer.left.extended #dash .dash-item-container .show-apps.updating,
#dashtodockContainer.left.extended #dash .dash-item-container .overview-tile.updating {
opacity: 0.5; }
#dashtodockContainer.left.extended #dash .dash-item-container .app-well-app.running .overview-icon,
#dashtodockContainer.left.extended #dash .dash-item-container .overview-tile.running .overview-icon {
background-image: none; }
#dashtodockContainer.left.extended #dash .dash-item-container .app-well-app.focused .overview-icon {
#dashtodockContainer.left.extended #dash .dash-item-container .app-well-app.focused .overview-icon,
#dashtodockContainer.left.extended #dash .dash-item-container .overview-tile.focused .overview-icon {
background-color: rgba(238, 238, 238, 0.2); }
#dashtodockContainer.left.extended #dash .dash-item-container .app-well-app .app-well-app-running-dot {
#dashtodockContainer.left.extended #dash .dash-item-container .app-well-app .app-well-app-running-dot,
#dashtodockContainer.left.extended #dash .dash-item-container .app-well-app .app-grid-running-dot,
#dashtodockContainer.left.extended #dash .dash-item-container .overview-tile .app-well-app-running-dot,
#dashtodockContainer.left.extended #dash .dash-item-container .overview-tile .app-grid-running-dot {
margin-bottom: 2px; }
#dashtodockContainer.left.extended #dash .dash-item-container > StButton {
transition-duration: 250;
@ -850,11 +949,20 @@
#dashtodockContainer.left.extended.shrink #dash .dash-item-container .show-apps:last-child,
#dashtodockContainer.left.extended.shrink #dash .dash-item-container .overview-tile:last-child {
padding-bottom: 0; }
#dashtodockContainer.left.extended.shrink #dash .dash-item-container .app-well-app.running .overview-icon {
#dashtodockContainer.left.extended.shrink #dash .dash-item-container .app-well-app.updating,
#dashtodockContainer.left.extended.shrink #dash .dash-item-container .show-apps.updating,
#dashtodockContainer.left.extended.shrink #dash .dash-item-container .overview-tile.updating {
opacity: 0.5; }
#dashtodockContainer.left.extended.shrink #dash .dash-item-container .app-well-app.running .overview-icon,
#dashtodockContainer.left.extended.shrink #dash .dash-item-container .overview-tile.running .overview-icon {
background-image: none; }
#dashtodockContainer.left.extended.shrink #dash .dash-item-container .app-well-app.focused .overview-icon {
#dashtodockContainer.left.extended.shrink #dash .dash-item-container .app-well-app.focused .overview-icon,
#dashtodockContainer.left.extended.shrink #dash .dash-item-container .overview-tile.focused .overview-icon {
background-color: rgba(238, 238, 238, 0.2); }
#dashtodockContainer.left.extended.shrink #dash .dash-item-container .app-well-app .app-well-app-running-dot {
#dashtodockContainer.left.extended.shrink #dash .dash-item-container .app-well-app .app-well-app-running-dot,
#dashtodockContainer.left.extended.shrink #dash .dash-item-container .app-well-app .app-grid-running-dot,
#dashtodockContainer.left.extended.shrink #dash .dash-item-container .overview-tile .app-well-app-running-dot,
#dashtodockContainer.left.extended.shrink #dash .dash-item-container .overview-tile .app-grid-running-dot {
margin-bottom: 2px; }
#dashtodockContainer.left.extended.shrink #dash .dash-item-container > StButton {
transition-duration: 250;
@ -921,11 +1029,20 @@
#dashtodockContainer.right #dash .dash-item-container .show-apps:last-child,
#dashtodockContainer.right #dash .dash-item-container .overview-tile:last-child {
padding-bottom: 0; }
#dashtodockContainer.right #dash .dash-item-container .app-well-app.running .overview-icon {
#dashtodockContainer.right #dash .dash-item-container .app-well-app.updating,
#dashtodockContainer.right #dash .dash-item-container .show-apps.updating,
#dashtodockContainer.right #dash .dash-item-container .overview-tile.updating {
opacity: 0.5; }
#dashtodockContainer.right #dash .dash-item-container .app-well-app.running .overview-icon,
#dashtodockContainer.right #dash .dash-item-container .overview-tile.running .overview-icon {
background-image: none; }
#dashtodockContainer.right #dash .dash-item-container .app-well-app.focused .overview-icon {
#dashtodockContainer.right #dash .dash-item-container .app-well-app.focused .overview-icon,
#dashtodockContainer.right #dash .dash-item-container .overview-tile.focused .overview-icon {
background-color: rgba(238, 238, 238, 0.2); }
#dashtodockContainer.right #dash .dash-item-container .app-well-app .app-well-app-running-dot {
#dashtodockContainer.right #dash .dash-item-container .app-well-app .app-well-app-running-dot,
#dashtodockContainer.right #dash .dash-item-container .app-well-app .app-grid-running-dot,
#dashtodockContainer.right #dash .dash-item-container .overview-tile .app-well-app-running-dot,
#dashtodockContainer.right #dash .dash-item-container .overview-tile .app-grid-running-dot {
margin-bottom: 2px; }
#dashtodockContainer.right #dash .dash-item-container > StButton {
transition-duration: 250;
@ -985,11 +1102,20 @@
#dashtodockContainer.right.shrink #dash .dash-item-container .show-apps:last-child,
#dashtodockContainer.right.shrink #dash .dash-item-container .overview-tile:last-child {
padding-bottom: 0; }
#dashtodockContainer.right.shrink #dash .dash-item-container .app-well-app.running .overview-icon {
#dashtodockContainer.right.shrink #dash .dash-item-container .app-well-app.updating,
#dashtodockContainer.right.shrink #dash .dash-item-container .show-apps.updating,
#dashtodockContainer.right.shrink #dash .dash-item-container .overview-tile.updating {
opacity: 0.5; }
#dashtodockContainer.right.shrink #dash .dash-item-container .app-well-app.running .overview-icon,
#dashtodockContainer.right.shrink #dash .dash-item-container .overview-tile.running .overview-icon {
background-image: none; }
#dashtodockContainer.right.shrink #dash .dash-item-container .app-well-app.focused .overview-icon {
#dashtodockContainer.right.shrink #dash .dash-item-container .app-well-app.focused .overview-icon,
#dashtodockContainer.right.shrink #dash .dash-item-container .overview-tile.focused .overview-icon {
background-color: rgba(238, 238, 238, 0.2); }
#dashtodockContainer.right.shrink #dash .dash-item-container .app-well-app .app-well-app-running-dot {
#dashtodockContainer.right.shrink #dash .dash-item-container .app-well-app .app-well-app-running-dot,
#dashtodockContainer.right.shrink #dash .dash-item-container .app-well-app .app-grid-running-dot,
#dashtodockContainer.right.shrink #dash .dash-item-container .overview-tile .app-well-app-running-dot,
#dashtodockContainer.right.shrink #dash .dash-item-container .overview-tile .app-grid-running-dot {
margin-bottom: 2px; }
#dashtodockContainer.right.shrink #dash .dash-item-container > StButton {
transition-duration: 250;
@ -1057,11 +1183,20 @@
#dashtodockContainer.right.extended #dash .dash-item-container .show-apps:last-child,
#dashtodockContainer.right.extended #dash .dash-item-container .overview-tile:last-child {
padding-bottom: 0; }
#dashtodockContainer.right.extended #dash .dash-item-container .app-well-app.running .overview-icon {
#dashtodockContainer.right.extended #dash .dash-item-container .app-well-app.updating,
#dashtodockContainer.right.extended #dash .dash-item-container .show-apps.updating,
#dashtodockContainer.right.extended #dash .dash-item-container .overview-tile.updating {
opacity: 0.5; }
#dashtodockContainer.right.extended #dash .dash-item-container .app-well-app.running .overview-icon,
#dashtodockContainer.right.extended #dash .dash-item-container .overview-tile.running .overview-icon {
background-image: none; }
#dashtodockContainer.right.extended #dash .dash-item-container .app-well-app.focused .overview-icon {
#dashtodockContainer.right.extended #dash .dash-item-container .app-well-app.focused .overview-icon,
#dashtodockContainer.right.extended #dash .dash-item-container .overview-tile.focused .overview-icon {
background-color: rgba(238, 238, 238, 0.2); }
#dashtodockContainer.right.extended #dash .dash-item-container .app-well-app .app-well-app-running-dot {
#dashtodockContainer.right.extended #dash .dash-item-container .app-well-app .app-well-app-running-dot,
#dashtodockContainer.right.extended #dash .dash-item-container .app-well-app .app-grid-running-dot,
#dashtodockContainer.right.extended #dash .dash-item-container .overview-tile .app-well-app-running-dot,
#dashtodockContainer.right.extended #dash .dash-item-container .overview-tile .app-grid-running-dot {
margin-bottom: 2px; }
#dashtodockContainer.right.extended #dash .dash-item-container > StButton {
transition-duration: 250;
@ -1129,11 +1264,20 @@
#dashtodockContainer.right.extended.shrink #dash .dash-item-container .show-apps:last-child,
#dashtodockContainer.right.extended.shrink #dash .dash-item-container .overview-tile:last-child {
padding-bottom: 0; }
#dashtodockContainer.right.extended.shrink #dash .dash-item-container .app-well-app.running .overview-icon {
#dashtodockContainer.right.extended.shrink #dash .dash-item-container .app-well-app.updating,
#dashtodockContainer.right.extended.shrink #dash .dash-item-container .show-apps.updating,
#dashtodockContainer.right.extended.shrink #dash .dash-item-container .overview-tile.updating {
opacity: 0.5; }
#dashtodockContainer.right.extended.shrink #dash .dash-item-container .app-well-app.running .overview-icon,
#dashtodockContainer.right.extended.shrink #dash .dash-item-container .overview-tile.running .overview-icon {
background-image: none; }
#dashtodockContainer.right.extended.shrink #dash .dash-item-container .app-well-app.focused .overview-icon {
#dashtodockContainer.right.extended.shrink #dash .dash-item-container .app-well-app.focused .overview-icon,
#dashtodockContainer.right.extended.shrink #dash .dash-item-container .overview-tile.focused .overview-icon {
background-color: rgba(238, 238, 238, 0.2); }
#dashtodockContainer.right.extended.shrink #dash .dash-item-container .app-well-app .app-well-app-running-dot {
#dashtodockContainer.right.extended.shrink #dash .dash-item-container .app-well-app .app-well-app-running-dot,
#dashtodockContainer.right.extended.shrink #dash .dash-item-container .app-well-app .app-grid-running-dot,
#dashtodockContainer.right.extended.shrink #dash .dash-item-container .overview-tile .app-well-app-running-dot,
#dashtodockContainer.right.extended.shrink #dash .dash-item-container .overview-tile .app-grid-running-dot {
margin-bottom: 2px; }
#dashtodockContainer.right.extended.shrink #dash .dash-item-container > StButton {
transition-duration: 250;
@ -1178,7 +1322,9 @@
#dashtodockContainer.dashtodock #dash .dash-background {
background: #303030; }
#dashtodockContainer.dashtodock .progress-bar {
#dashtodockContainer.dashtodock .progress-bar,
.overview-tile .progress-bar,
.icon-grid .progress-bar {
/* Customization of the progress bar style. The possible elements
* are:
*
@ -1223,12 +1369,19 @@
* -progress-bar-background: 204, 204, 204, 1.0
* -progress-bar-border: 230, 230, 230, 1.0
* -progress-bar-line-width: 1
* -progress-bar-top-offset: undefined
* -progress-bar-valign: 1.0
*/
-progress-bar-track-background: rgba(0, 0, 0, 0.45);
-progress-bar-track-border: rgba(0, 0, 0, 0.7);
-progress-bar-background: white;
-progress-bar-border: white; }
#overview .progress-bar,
.apps-scroll-view .progress-bar {
-progress-bar-top-offset: 0;
-progress-bar-valign: 0.8; }
#dashtodockContainer.top #dash .placeholder,
#dashtodockContainer.bottom #dash .placeholder {
width: 32px;
@ -1252,12 +1405,16 @@
border-color: rgba(0, 0, 0, 0.1);
transition-duration: 500ms; }
#dashtodockContainer .number-overlay {
#dashtodockContainer .number-overlay,
.overview-tile .number-overlay,
.icon-grid .number-overlay {
color: white;
background-color: rgba(0, 0, 0, 0.8);
text-align: center; }
#dashtodockContainer .notification-badge {
#dashtodockContainer .notification-badge,
.overview-tile .notification-badge,
.icon-grid .notification-badge {
color: white;
background-color: red;
padding: 0.2em 0.5em;