From 5a714eebf8060302f3ffdfb241b41db9ab83a9e9 Mon Sep 17 00:00:00 2001
From: Hirnmoder <19573355+Hirnmoder@users.noreply.github.com>
Date: Wed, 11 Sep 2024 14:59:16 +0200
Subject: [PATCH 01/18] Beautify DTP - Allow hover animation travel below 0% -
Allow hover animation zoom below 100% - Hover highlighting independent of
hover animation - Custom color for hover highlighting - Custom color for
mouse down highlighting - Icon background with rounded corners - Customize
margin for app icons towards screen border and desktop
---
appIcons.js | 295 ++++++++++++------
panel.js | 120 +++----
prefs.js | 181 ++++++++---
...shell.extensions.dash-to-panel.gschema.xml | 26 ++
stylesheet.css | 24 +-
taskbar.js | 130 ++++----
ui/BoxAnimateAppIconHoverOptions.ui | 4 +-
ui/BoxHighlightAppIconHoverOptions.ui | 70 +++++
ui/BoxShowDesktopOptions.ui | 2 +-
ui/SettingsStyle.ui | 77 ++++-
10 files changed, 658 insertions(+), 271 deletions(-)
create mode 100644 ui/BoxHighlightAppIconHoverOptions.ui
diff --git a/appIcons.js b/appIcons.js
index 3aabb50..3cacb3c 100644
--- a/appIcons.js
+++ b/appIcons.js
@@ -30,6 +30,7 @@ import GObject from 'gi://GObject';
import Mtk from 'gi://Mtk';
import Shell from 'gi://Shell';
import St from 'gi://St';
+import Gtk from 'gi://Gtk';
import * as AppDisplay from 'resource:///org/gnome/shell/ui/appDisplay.js';
import * as AppMenu from 'resource:///org/gnome/shell/ui/appMenu.js';
@@ -117,6 +118,9 @@ export const TaskbarAppIcon = GObject.registerClass({
this._previewMenu = previewMenu;
this.iconAnimator = iconAnimator;
this.lastClick = 0;
+ this._appicon_normalstyle = '';
+ this._appicon_hoverstyle = '';
+ this._appicon_pressedstyle = '';
super._init(appInfo.app, iconParams);
@@ -127,7 +131,7 @@ export const TaskbarAppIcon = GObject.registerClass({
if (event.type() == Clutter.EventType.TOUCH_BEGIN) {
// Open the popup menu on long press.
this._setPopupTimeout();
- } else if (this._menuTimeoutId != 0 && (event.type() == Clutter.EventType.TOUCH_END || event.type() == Clutter.EventType.TOUCH_CANCEL)) {
+ } else if (this._menuTimeoutId != 0 && (event.type() == Clutter.EventType.TOUCH_END || event.type() == Clutter.EventType.TOUCH_CANCEL)) {
// Activate/launch the application.
this.activate(1);
this._removeMenuTimeout();
@@ -143,27 +147,27 @@ export const TaskbarAppIcon = GObject.registerClass({
this._removeMenuTimeout();
};
-
+
this._dot.set_width(0);
this._isGroupApps = SETTINGS.get_boolean('group-apps');
-
+
this._container = new St.Widget({ style_class: 'dtp-container', layout_manager: new Clutter.BinLayout() });
- this._dotsContainer = new St.Widget({ layout_manager: new Clutter.BinLayout() });
+ this._dotsContainer = new St.Widget({ style_class: 'dtp-dots-container', layout_manager: new Clutter.BinLayout() });
this._dtpIconContainer = new St.Widget({ layout_manager: new Clutter.BinLayout(), style: getIconContainerStyle(panel.checkIfVertical()) });
this.remove_child(this._iconContainer);
-
+
this._dtpIconContainer.add_child(this._iconContainer);
if (appInfo.window) {
let box = new St.BoxLayout();
- this._windowTitle = new St.Label({
- y_align: Clutter.ActorAlign.CENTER,
- x_align: Clutter.ActorAlign.START,
- style_class: 'overview-label'
+ this._windowTitle = new St.Label({
+ y_align: Clutter.ActorAlign.CENTER,
+ x_align: Clutter.ActorAlign.START,
+ style_class: 'overview-label'
});
-
+
this._updateWindowTitle();
this._updateWindowTitleStyle();
@@ -192,11 +196,12 @@ export const TaskbarAppIcon = GObject.registerClass({
}
this._onAnimateAppiconHoverChanged();
+ this._onAppIconHoverHighlightChanged();
this._setAppIconPadding();
this._setAppIconStyle();
this._showDots();
- this._focusWindowChangedId = global.display.connect('notify::focus-window',
+ this._focusWindowChangedId = global.display.connect('notify::focus-window',
this._onFocusAppChanged.bind(this));
this._windowEnteredMonitorId = this._windowLeftMonitorId = 0;
@@ -207,17 +212,17 @@ export const TaskbarAppIcon = GObject.registerClass({
this._windowEnteredMonitorId = Utils.DisplayWrapper.getScreen().connect('window-entered-monitor', this.onWindowEnteredOrLeft.bind(this));
this._windowLeftMonitorId = Utils.DisplayWrapper.getScreen().connect('window-left-monitor', this.onWindowEnteredOrLeft.bind(this));
}
-
+
this._titleWindowChangeId = 0;
this._minimizedWindowChangeId = 0;
} else {
- this._titleWindowChangeId = this.window.connect('notify::title',
+ this._titleWindowChangeId = this.window.connect('notify::title',
this._updateWindowTitle.bind(this));
this._minimizedWindowChangeId = this.window.connect('notify::minimized',
this._updateWindowTitleStyle.bind(this));
}
-
+
this._scrollEventId = this.connect('scroll-event', this._onMouseScroll.bind(this));
this._overviewWindowDragEndId = Main.overview.connect('window-drag-end',
@@ -227,9 +232,18 @@ export const TaskbarAppIcon = GObject.registerClass({
this._onSwitchWorkspace.bind(this));
this._hoverChangeId = this.connect('notify::hover', () => this._onAppIconHoverChanged());
-
+ if (!this._checkGtkVersion_cssVariables()) {
+ this._hoverChangeId2 = this.connect('notify::hover', () => this._onAppIconHoverChanged_GtkWorkaround());
+ this._pressedChangedId = this.connect('notify::pressed', () => this._onAppIconPressedChanged_GtkWorkaround());
+ }
+
this._dtpSettingsSignalIds = [
SETTINGS.connect('changed::animate-appicon-hover', this._onAnimateAppiconHoverChanged.bind(this)),
+ SETTINGS.connect('changed::animate-appicon-hover', this._onAppIconHoverHighlightChanged.bind(this)),
+ SETTINGS.connect('changed::highlight-appicon-hover', this._onAppIconHoverHighlightChanged.bind(this)),
+ SETTINGS.connect('changed::highlight-appicon-hover-background-color', this._onAppIconHoverHighlightChanged.bind(this)),
+ SETTINGS.connect('changed::highlight-appicon-pressed-background-color', this._onAppIconHoverHighlightChanged.bind(this)),
+ SETTINGS.connect('changed::highlight-appicon-hover-border-radius', this._onAppIconHoverHighlightChanged.bind(this)),
SETTINGS.connect('changed::dot-position', this._settingsChangeRefresh.bind(this)),
SETTINGS.connect('changed::dot-size', this._settingsChangeRefresh.bind(this)),
SETTINGS.connect('changed::dot-style-focused', this._settingsChangeRefresh.bind(this)),
@@ -255,8 +269,14 @@ export const TaskbarAppIcon = GObject.registerClass({
SETTINGS.connect('changed::group-apps-label-font-color-minimized', this._updateWindowTitleStyle.bind(this)),
SETTINGS.connect('changed::group-apps-label-max-width', this._updateWindowTitleStyle.bind(this)),
SETTINGS.connect('changed::group-apps-use-fixed-width', this._updateWindowTitleStyle.bind(this)),
- SETTINGS.connect('changed::group-apps-underline-unfocused', this._settingsChangeRefresh.bind(this))
- ]
+ SETTINGS.connect('changed::group-apps-underline-unfocused', this._settingsChangeRefresh.bind(this)),
+ ];
+
+ if (!this._checkGtkVersion_cssVariables()) {
+ this._dtpSettingsSignalIds += [
+ SETTINGS.connect('changed::highlight-appicon-hover-border-radius', () => this._setIconStyle(this._isFocusedWindow())),
+ ];
+ }
this._progressIndicator = new Progress.ProgressIndicator(this, panel.progressManager);
@@ -269,10 +289,11 @@ export const TaskbarAppIcon = GObject.registerClass({
// Used by TaskbarItemContainer to animate appIcons on hover
getCloneButton() {
- // The source of the clone is this._container,
+ // The source of the clone is this._dtpIconContainer,
+ // which contains the icon but no highlighting elements
// using this.actor directly would break DnD style.
let clone = new Clutter.Clone({
- source: this.child,
+ source: this._dtpIconContainer,
x: this.child.x, y: this.child.y,
width: this.child.width, height: this.child.height,
pivot_point: new Graphene.Point({ x: 0.5, y: 0.5 }),
@@ -293,19 +314,19 @@ export const TaskbarAppIcon = GObject.registerClass({
}
shouldShowTooltip() {
- if (!SETTINGS.get_boolean('show-tooltip') ||
+ if (!SETTINGS.get_boolean('show-tooltip') ||
(!this.isLauncher && SETTINGS.get_boolean("show-window-previews") &&
this.getAppIconInterestingWindows().length > 0)) {
return false;
} else {
- return this.hover && !this.window &&
- (!this._menu || !this._menu.isOpen) &&
+ return this.hover && !this.window &&
+ (!this._menu || !this._menu.isOpen) &&
(this._previewMenu.getCurrentAppIcon() !== this);
}
}
_onAppIconHoverChanged() {
- if (!SETTINGS.get_boolean('show-window-previews') ||
+ if (!SETTINGS.get_boolean('show-window-previews') ||
(!this.window && !this._nWindows)) {
return;
}
@@ -329,7 +350,7 @@ export const TaskbarAppIcon = GObject.registerClass({
this.app.disconnect(this._stateChangedId);
this._stateChangedId = 0;
}
-
+
if(this._overviewWindowDragEndId)
Main.overview.disconnect(this._overviewWindowDragEndId);
@@ -356,6 +377,12 @@ export const TaskbarAppIcon = GObject.registerClass({
if (this._hoverChangeId) {
this.disconnect(this._hoverChangeId);
}
+ if (this._hoverChangeId2) {
+ this.disconnect(this._hoverChangeId2);
+ }
+ if (this._pressedChangedId) {
+ this.disconnect(this._pressedChangedId);
+ }
if (this._scrollEventId) {
this.disconnect(this._scrollEventId);
@@ -415,7 +442,7 @@ export const TaskbarAppIcon = GObject.registerClass({
this.icon.createIcon = (iconSize) => this.app.create_icon_texture(2 * iconSize);
this._iconIconBinActorAddedId = this.icon._iconBin.connect('child-added', () => {
let size = this.icon.iconSize * Utils.getScaleFactor()
-
+
if (this.icon._iconBin.child.mapped) {
this.icon._iconBin.child.set_size(size, size);
} else {
@@ -438,9 +465,59 @@ export const TaskbarAppIcon = GObject.registerClass({
}
}
+ _onAppIconHoverHighlightChanged() {
+ const background_color = SETTINGS.get_string('highlight-appicon-hover-background-color');
+ const pressed_color = SETTINGS.get_string('highlight-appicon-pressed-background-color');
+ const border_radius = SETTINGS.get_int('highlight-appicon-hover-border-radius');
+ if (this._checkGtkVersion_cssVariables()) {
+ this._container.set_style(`--dtp-hover-background-color: ${background_color}; --dtp-hover-border-radius: ${border_radius}px; --dtp-pressed-background-color: ${pressed_color};`);
+ } else {
+ // Some trickery needed to get the same effect
+ const br = `border-radius: ${border_radius}px;`;
+ this._appicon_normalstyle = br;
+ this._container.set_style(this._appicon_normalstyle);
+ this._appicon_hoverstyle = `background-color: ${background_color}; ${br}`;
+ this._appicon_pressedstyle = `background-color: ${pressed_color}; ${br}`;
+ }
+ if (SETTINGS.get_boolean('highlight-appicon-hover')) {
+ this._container.remove_style_class_name('no-highlight');
+ } else {
+ this._container.add_style_class_name('no-highlight');
+ this._appicon_normalstyle = '';
+ this._appicon_hoverstyle = '';
+ this._appicon_pressedstyle = '';
+ }
+ }
+
+ _checkGtkVersion_cssVariables() {
+ // Support for CSS variables will be added in GTK 4.16
+ return Gtk.get_major_version() >= 5 ||
+ (Gtk.get_major_version() == 4 && Gtk.get_minor_version() >= 16);
+ }
+
+ _onAppIconHoverChanged_GtkWorkaround() {
+ if (this.hover && this._appicon_hoverstyle) {
+ this._container.set_style(this._appicon_hoverstyle);
+ } else if(this._appicon_normalstyle) {
+ this._container.set_style(this._appicon_normalstyle);
+ } else {
+ this._container.set_style('');
+ }
+ }
+
+ _onAppIconPressedChanged_GtkWorkaround() {
+ if (this.pressed && this._appicon_pressedstyle) {
+ this._container.set_style(this._appicon_pressedstyle);
+ } else if(this._appicon_normalstyle) {
+ this._container.set_style(this._appicon_normalstyle);
+ } else {
+ this._container.set_style('');
+ }
+ }
+
_onMouseScroll(actor, event) {
let scrollAction = SETTINGS.get_string('scroll-icon-action');
-
+
if (scrollAction === 'PASS_THROUGH') {
return this.dtpPanel._onPanelMouseScroll(actor, event);
} else if (scrollAction === 'NOTHING' || (!this.window && !this._nWindows)) {
@@ -458,7 +535,7 @@ export const TaskbarAppIcon = GObject.registerClass({
Utils.activateSiblingWindow(windows, direction, this.window);
}
}
-
+
_showDots() {
// Just update style if dots already exist
if (this._focusedDots && this._unfocusedDots) {
@@ -467,7 +544,7 @@ export const TaskbarAppIcon = GObject.registerClass({
}
if (!this._isGroupApps) {
- this._focusedDots = new St.Widget({
+ this._focusedDots = new St.Widget({
layout_manager: new Clutter.BinLayout(),
x_expand: true, y_expand: true,
visible: false
@@ -478,23 +555,23 @@ export const TaskbarAppIcon = GObject.registerClass({
this.disconnect(mappedId);
});
} else {
- this._focusedDots = new St.DrawingArea(),
+ this._focusedDots = new St.DrawingArea(),
this._unfocusedDots = new St.DrawingArea();
-
+
this._focusedDots.connect('repaint', () => {
if (!this._dashItemContainer.animatingOut)
// don't draw and trigger more animations if the icon is in the middle of
// being removed from the panel
this._drawRunningIndicator(this._focusedDots, SETTINGS.get_string('dot-style-focused'), true);
});
-
+
this._unfocusedDots.connect('repaint', () => {
if (!this._dashItemContainer.animatingOut)
this._drawRunningIndicator(this._unfocusedDots, SETTINGS.get_string('dot-style-unfocused'), false);
});
-
+
this._dotsContainer.add_child(this._unfocusedDots);
-
+
this._updateWindows();
this._timeoutsHandler.add([T3, 0, () => {
@@ -512,7 +589,7 @@ export const TaskbarAppIcon = GObject.registerClass({
let sizeProp = isHorizontalDots ? 'width' : 'height';
let focusedDotStyle = SETTINGS.get_string('dot-style-focused');
let unfocusedDotStyle = SETTINGS.get_string('dot-style-unfocused');
-
+
this._focusedIsWide = this._isWideDotStyle(focusedDotStyle);
this._unfocusedIsWide = this._isWideDotStyle(unfocusedDotStyle);
@@ -558,7 +635,7 @@ export const TaskbarAppIcon = GObject.registerClass({
this._windowTitle.set_style('font-size: ' + SETTINGS.get_int('group-apps-label-font-size') * fontScale + 'px;' +
'font-weight: ' + fontWeight + ';' +
- (useFixedWidth ? '' : 'max-width: ' + maxLabelWidth + 'px;') +
+ (useFixedWidth ? '' : 'max-width: ' + maxLabelWidth + 'px;') +
'color: ' + fontColor);
}
}
@@ -566,7 +643,7 @@ export const TaskbarAppIcon = GObject.registerClass({
_updateWindowTitle() {
if (this._windowTitle.text != this.window.title) {
this._windowTitle.text = (this.window.title ? this.window.title : this.app.get_name()).replace(/\r?\n|\r/g, '').trim();
-
+
if (this._focusedDots) {
this._displayProperIndicator();
}
@@ -576,8 +653,8 @@ export const TaskbarAppIcon = GObject.registerClass({
_setIconStyle(isFocused) {
let inlineStyle = 'margin: 0;';
- if(SETTINGS.get_boolean('focus-highlight') &&
- this._checkIfFocusedApp() && !this.isLauncher &&
+ if(SETTINGS.get_boolean('focus-highlight') &&
+ this._checkIfFocusedApp() && !this.isLauncher &&
(!this.window || isFocused) && !this._isThemeProvidingIndicator() && this._checkIfMonitorHasFocus()) {
let focusedDotStyle = SETTINGS.get_string('dot-style-focused');
let pos = SETTINGS.get_string('dot-position');
@@ -585,7 +662,7 @@ export const TaskbarAppIcon = GObject.registerClass({
if(!this.window) {
let containerWidth = this._dtpIconContainer.get_width() / Utils.getScaleFactor();
- let backgroundSize = containerWidth + "px " +
+ let backgroundSize = containerWidth + "px " +
(containerWidth - (pos == DOT_POSITION.BOTTOM ? highlightMargin : 0)) + "px;";
if (focusedDotStyle == DOT_STYLE.CILIORA || focusedDotStyle == DOT_STYLE.SEGMENTED)
@@ -598,16 +675,19 @@ export const TaskbarAppIcon = GObject.registerClass({
bgSvg += (this.dtpPanel.checkIfVertical() ? '_2' : '_3');
}
- inlineStyle += "background-image: url('" + EXTENSION_PATH + bgSvg + ".svg');" +
+ inlineStyle += "background-image: url('" + EXTENSION_PATH + bgSvg + ".svg');" +
"background-position: 0 " + (pos == DOT_POSITION.TOP ? highlightMargin : 0) + "px;" +
"background-size: " + backgroundSize;
}
}
let highlightColor = this._getFocusHighlightColor();
- inlineStyle += "background-color: " + cssHexTocssRgba(highlightColor, SETTINGS.get_int('focus-highlight-opacity') * 0.01);
+ inlineStyle += "background-color: " + cssHexTocssRgba(highlightColor, SETTINGS.get_int('focus-highlight-opacity') * 0.01) + ";";
+ if (!this._checkGtkVersion_cssVariables()) {
+ inlineStyle += this._appicon_normalstyle;
+ }
}
-
+
if(this._dotsContainer.get_style() != inlineStyle) {
this._dotsContainer.set_style(inlineStyle);
}
@@ -618,17 +698,30 @@ export const TaskbarAppIcon = GObject.registerClass({
}
_checkIfMonitorHasFocus() {
- return global.display.focus_window &&
+ return global.display.focus_window &&
(!SETTINGS.get_boolean('multi-monitors') || // only check same monitor index if multi window is enabled.
- !SETTINGS.get_boolean('isolate-monitors') ||
+ !SETTINGS.get_boolean('isolate-monitors') ||
global.display.focus_window.get_monitor() === this.dtpPanel.monitor.index);
}
_setAppIconPadding() {
- let padding = getIconPadding(this.dtpPanel.monitor.index);
- let margin = SETTINGS.get_int('appicon-margin');
+ const padding = getIconPadding(this.dtpPanel.monitor.index);
+ const margin = SETTINGS.get_int('appicon-margin');
+ const margin_todesktop = SETTINGS.get_int('appicon-margin-todesktop');
+ const margin_toscreenborder = SETTINGS.get_int('appicon-margin-toscreenborder');
- this.set_style('padding:' + (this.dtpPanel.checkIfVertical() ? margin + 'px 0' : '0 ' + margin + 'px;'));
+ let margin_style = '';
+ const panelPosition = this.dtpPanel.getPosition();
+ if (panelPosition == St.Side.TOP) {
+ margin_style = `${margin_toscreenborder}px ${margin}px ${margin_todesktop}px ${margin}px`;
+ } else if (panelPosition == St.Side.RIGHT) {
+ margin_style = `${margin}px ${margin_toscreenborder}px ${margin}px ${margin_todesktop}px`;
+ } else if (panelPosition == St.Side.LEFT) {
+ margin_style = `${margin}px ${margin_todesktop}px ${margin}px ${margin_toscreenborder}px`;
+ } else {
+ margin_style = `${margin_todesktop}px ${margin}px ${margin_toscreenborder}px ${margin}px`;
+ }
+ this.set_style(`padding: ${margin_style};`);
this._iconContainer.set_style('padding: ' + padding + 'px;');
}
@@ -710,7 +803,7 @@ export const TaskbarAppIcon = GObject.registerClass({
if(!this._isGroupApps) {
if (this.window && (SETTINGS.get_boolean('group-apps-underline-unfocused') || isFocused)) {
let align = Clutter.ActorAlign[position == DOT_POSITION.TOP || position == DOT_POSITION.LEFT ? 'START' : 'END'];
-
+
this._focusedDots.set_size(0, 0);
this._focusedDots[isHorizontalDots ? 'height' : 'width'] = this._getRunningIndicatorSize();
@@ -727,11 +820,11 @@ export const TaskbarAppIcon = GObject.registerClass({
let newFocusedDotsOpacity = 0;
let newUnfocusedDotsSize = 0;
let newUnfocusedDotsOpacity = 0;
-
+
isFocused = this._checkIfFocusedApp() && this._checkIfMonitorHasFocus();
this._timeoutsHandler.add([T6, 0, () => {
- if(isFocused)
+ if(isFocused)
this.add_style_class_name('focused');
else
this.remove_style_class_name('focused');
@@ -744,7 +837,7 @@ export const TaskbarAppIcon = GObject.registerClass({
newFocusedDotsSize = this._containerSize;
newFocusedDotsOpacity = (isFocused && this._nWindows > 0) ? 255 : 0;
}
-
+
if(this._unfocusedIsWide) {
newUnfocusedDotsSize = (!isFocused && this._nWindows > 0) ? this._containerSize : 0;
newUnfocusedDotsOpacity = 255;
@@ -752,7 +845,7 @@ export const TaskbarAppIcon = GObject.registerClass({
newUnfocusedDotsSize = this._containerSize;
newUnfocusedDotsOpacity = (!isFocused && this._nWindows > 0) ? 255 : 0;
}
-
+
// Only animate if...
// animation is enabled in settings
// AND (going from a wide style to a narrow style indicator or vice-versa
@@ -770,10 +863,10 @@ export const TaskbarAppIcon = GObject.registerClass({
_animateDotDisplay(dots, newSize, otherDots, newOtherOpacity, sizeProp, duration) {
Utils.stopAnimations(dots)
- let tweenOpts = {
+ let tweenOpts = {
time: duration,
transition: 'easeInOutCubic',
- onComplete: () => {
+ onComplete: () => {
if(newOtherOpacity > 0)
otherDots.opacity = newOtherOpacity;
}
@@ -789,7 +882,7 @@ export const TaskbarAppIcon = GObject.registerClass({
_isFocusedWindow() {
let focusedWindow = global.display.focus_window;
-
+
while (focusedWindow) {
if (focusedWindow == this.window) {
return true;
@@ -802,9 +895,9 @@ export const TaskbarAppIcon = GObject.registerClass({
}
_isWideDotStyle(dotStyle) {
- return dotStyle == DOT_STYLE.SEGMENTED ||
- dotStyle == DOT_STYLE.CILIORA ||
- dotStyle == DOT_STYLE.METRO ||
+ return dotStyle == DOT_STYLE.SEGMENTED ||
+ dotStyle == DOT_STYLE.CILIORA ||
+ dotStyle == DOT_STYLE.METRO ||
dotStyle == DOT_STYLE.SOLID;
}
@@ -812,7 +905,7 @@ export const TaskbarAppIcon = GObject.registerClass({
// This is an attempt to determine if the theme is providing their own
// running indicator by way of a border image on the icon, for example in
// the theme Ciliora
- return (this.icon.get_stage() &&
+ return (this.icon.get_stage() &&
this.icon.get_theme_node().get_border_image());
}
@@ -875,23 +968,23 @@ export const TaskbarAppIcon = GObject.registerClass({
//ungrouped applications behaviors
switch (buttonAction) {
case 'RAISE': case 'CYCLE': case 'CYCLE-MIN': case 'MINIMIZE': case 'TOGGLE-SHOWPREVIEW': case 'TOGGLE-CYCLE':
- if (!Main.overview._shown &&
- (buttonAction == 'MINIMIZE' || buttonAction == 'TOGGLE-SHOWPREVIEW' || buttonAction == 'TOGGLE-CYCLE' || buttonAction == 'CYCLE-MIN') &&
+ if (!Main.overview._shown &&
+ (buttonAction == 'MINIMIZE' || buttonAction == 'TOGGLE-SHOWPREVIEW' || buttonAction == 'TOGGLE-CYCLE' || buttonAction == 'CYCLE-MIN') &&
(this._isFocusedWindow() || (buttonAction == 'MINIMIZE' && (button == 2 || modifiers & Clutter.ModifierType.SHIFT_MASK)))) {
this.window.minimize();
} else {
Main.activateWindow(this.window);
}
-
+
break;
-
+
case "LAUNCH":
this._launchNewInstance();
break;
case "QUIT":
this.window.delete(global.get_current_time());
- break;
+ break;
}
} else {
//grouped application behaviors
@@ -902,11 +995,11 @@ export const TaskbarAppIcon = GObject.registerClass({
case "RAISE":
activateAllWindows(this.app, monitor);
break;
-
+
case "LAUNCH":
this._launchNewInstance();
break;
-
+
case "MINIMIZE":
// In overview just activate the app, unless the acion is explicitely
// requested with a keyboard modifier
@@ -925,10 +1018,10 @@ export const TaskbarAppIcon = GObject.registerClass({
else
this.app.activate();
break;
-
+
case "CYCLE":
if (!Main.overview._shown){
- if (appHasFocus)
+ if (appHasFocus)
cycleThroughWindows(this.app, false, false, monitor);
else {
activateFirstWindow(this.app, monitor);
@@ -939,7 +1032,7 @@ export const TaskbarAppIcon = GObject.registerClass({
break;
case "CYCLE-MIN":
if (!Main.overview._shown){
- if (appHasFocus || (recentlyClickedApp == this.app && recentlyClickedAppWindows[recentlyClickedAppIndex % recentlyClickedAppWindows.length] == "MINIMIZE"))
+ if (appHasFocus || (recentlyClickedApp == this.app && recentlyClickedAppWindows[recentlyClickedAppIndex % recentlyClickedAppWindows.length] == "MINIMIZE"))
cycleThroughWindows(this.app, false, true, monitor);
else {
activateFirstWindow(this.app, monitor);
@@ -964,10 +1057,10 @@ export const TaskbarAppIcon = GObject.registerClass({
minimizeWindow(this.app, true, monitor);
} else if (previewedAppIcon != this) {
this._previewMenu.open(this);
- }
-
+ }
+
this.emit('sync-tooltip');
- }
+ }
}
else
this.app.activate();
@@ -981,7 +1074,7 @@ export const TaskbarAppIcon = GObject.registerClass({
activateFirstWindow(this.app, monitor);
} else {
cycleThroughWindows(this.app, false, false, monitor);
- }
+ }
}
else
this.app.activate();
@@ -1003,7 +1096,7 @@ export const TaskbarAppIcon = GObject.registerClass({
_launchNewInstance(ctrlPressed) {
let maybeAnimate = () => SETTINGS.get_boolean('animate-window-launch') && this.animateLaunch()
- if ((ctrlPressed || this.app.state == Shell.AppState.RUNNING) &&
+ if ((ctrlPressed || this.app.state == Shell.AppState.RUNNING) &&
this.app.can_open_new_window()) {
maybeAnimate();
this.app.open_new_window(-1);
@@ -1021,12 +1114,12 @@ export const TaskbarAppIcon = GObject.registerClass({
_updateWindows() {
let windows = [this.window];
-
+
if (!this.window) {
windows = this.getAppIconInterestingWindows();
-
+
this._nWindows = windows.length;
-
+
for (let i = 1; i <= MAX_INDICATORS; i++){
let className = 'running'+i;
if(i != this._nWindows)
@@ -1065,7 +1158,7 @@ export const TaskbarAppIcon = GObject.registerClass({
}
} else if(SETTINGS.get_boolean('dot-color-override')) {
let dotColorSettingPrefix = 'dot-color-';
-
+
if(!isFocused && SETTINGS.get_boolean('dot-color-unfocused-different'))
dotColorSettingPrefix = 'dot-color-unfocused-';
@@ -1164,7 +1257,7 @@ export const TaskbarAppIcon = GObject.registerClass({
dist = i * dashLength + i * spacing;
cr.rectangle.apply(cr, (isHorizontalDots ? [dist, 0, dashLength, size] : [0, dist, size, dashLength]));
};
-
+
switch (type) {
case DOT_STYLE.CILIORA:
spacing = size;
@@ -1226,7 +1319,7 @@ export const TaskbarAppIcon = GObject.registerClass({
}
cr.fill();
}
-
+
cr.$dispose();
}
@@ -1287,7 +1380,7 @@ export const TaskbarAppIcon = GObject.registerClass({
if (source == Main.xdndHandler) {
this._previewMenu.close(true);
}
-
+
return DND.DragMotionResult.CONTINUE;
}
@@ -1354,7 +1447,7 @@ export function cycleThroughWindows(app, reversed, shouldMinimize, monitor) {
if (recentlyClickedAppLoopId > 0)
GLib.Source.remove(recentlyClickedAppLoopId);
-
+
recentlyClickedAppLoopId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
MEMORY_TIME, resetRecentlyClickedApp);
@@ -1377,7 +1470,7 @@ export function cycleThroughWindows(app, reversed, shouldMinimize, monitor) {
recentlyClickedAppIndex++;
}
let index = recentlyClickedAppIndex % recentlyClickedAppWindows.length;
-
+
if(recentlyClickedAppWindows[index] === "MINIMIZE")
minimizeWindow(app, true, monitor);
else
@@ -1407,8 +1500,8 @@ export function closeAllWindows(app, monitor) {
// nautilus desktop window.
export function getInterestingWindows(app, monitor, isolateMonitors) {
let windows = (
- app ?
- app.get_windows() :
+ app ?
+ app.get_windows() :
global.get_window_actors().map(wa => wa.get_meta_window())
).filter(w => !w.skip_taskbar);
@@ -1416,7 +1509,7 @@ export function getInterestingWindows(app, monitor, isolateMonitors) {
// that are not in the current workspace or on the same monitor as the appicon
if (SETTINGS.get_boolean('isolate-workspaces'))
windows = windows.filter(function(w) {
- return w.get_workspace() &&
+ return w.get_workspace() &&
w.get_workspace() == Utils.getCurrentWorkspace();
});
@@ -1425,7 +1518,7 @@ export function getInterestingWindows(app, monitor, isolateMonitors) {
return w.get_monitor() == monitor.index;
});
}
-
+
return windows;
}
@@ -1486,7 +1579,7 @@ export class TaskbarSecondaryMenu extends AppMenu.AppMenu {
}
updateQuitText() {
- let count = this.sourceActor.window ? 1 :
+ let count = this.sourceActor.window ? 1 :
getInterestingWindows(this._app, this.sourceActor.dtpPanel.monitor).length;
if ( count > 0) {
@@ -1502,17 +1595,17 @@ export class TaskbarSecondaryMenu extends AppMenu.AppMenu {
_quitFromTaskbar() {
let time = global.get_current_time()
- let windows =
+ let windows =
this.sourceActor.window ? // ungrouped applications
- [this.sourceActor.window] :
+ [this.sourceActor.window] :
getInterestingWindows(this._app, this.sourceActor.dtpPanel.monitor)
-
+
if (windows.length == this._app.get_windows().length)
this._app.request_quit()
GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, () => {
windows.forEach((w) => !!w.get_compositor_private() && w.delete(time++));
-
+
return GLib.SOURCE_REMOVE;
});
}
@@ -1577,13 +1670,13 @@ export function ItemShowLabel() {
this.label.set_position(Math.round(x), Math.round(y));
- let duration = Dash.DASH_ITEM_LABEL_SHOW_TIME;
-
+ let duration = Dash.DASH_ITEM_LABEL_SHOW_TIME;
+
if (duration > 1) {
duration /= 1000;
}
-
- Utils.animate(this.label, {
+
+ Utils.animate(this.label, {
opacity: 255,
time: duration,
transition: 'easeOutQuad',
@@ -1657,10 +1750,10 @@ export const ShowAppsIconWrapper = class extends EventEmitter {
this._changedAppIconPaddingId = SETTINGS.connect('changed::appicon-padding', () => this.setShowAppsPadding());
this._changedAppIconSidePaddingId = SETTINGS.connect('changed::show-apps-icon-side-padding', () => this.setShowAppsPadding());
-
+
this.setShowAppsPadding();
}
-
+
_onButtonPress(_actor, event) {
let button = event.get_button();
if (button == 1) {
@@ -1736,7 +1829,7 @@ export const ShowAppsIconWrapper = class extends EventEmitter {
}
shouldShowTooltip() {
- return SETTINGS.get_boolean('show-tooltip') &&
+ return SETTINGS.get_boolean('show-tooltip') &&
(this.actor.hover && (!this._menu || !this._menu.isOpen));
}
@@ -1863,12 +1956,12 @@ export const MyShowAppsIconMenu = class extends PopupMenu.PopupMenu {
return null;
}
-
+
_appendList(commandList, titleList) {
if (commandList.length != titleList.length) {
return;
}
-
+
for (let entry = 0; entry < commandList.length; entry++) {
this._appendItem({
title: titleList[entry],
diff --git a/panel.js b/panel.js
index d025b9b..a0bfdac 100644
--- a/panel.js
+++ b/panel.js
@@ -17,13 +17,13 @@
* Credits:
* This file is based on code from the Dash to Dock extension by micheleg
* and code from the Taskbar extension by Zorin OS
- *
+ *
* Code to re-anchor the panel was taken from Thoma5 BottomPanel:
* https://github.com/Thoma5/gnome-shell-extension-bottompanel
- *
+ *
* Pattern for moving clock based on Frippery Move Clock by R M Yorston
* http://frippery.org/extensions/
- *
+ *
* Some code was also adapted from the upstream Gnome Shell source code.
*/
@@ -85,7 +85,7 @@ export const Panel = GObject.registerClass({
// so in this case use isPrimary to get the panel on the primary dtp monitor, which
// might be different from the system's primary monitor.
this.isStandalone = isStandalone;
- this.isPrimary = !isStandalone || (SETTINGS.get_boolean('stockgs-keep-top-panel') &&
+ this.isPrimary = !isStandalone || (SETTINGS.get_boolean('stockgs-keep-top-panel') &&
monitor == panelManager.dtpPrimaryMonitor);
this._sessionStyle = null;
@@ -144,20 +144,20 @@ export const Panel = GObject.registerClass({
});
}
- // Create a wrapper around the real showAppsIcon in order to add a popupMenu. Most of
+ // Create a wrapper around the real showAppsIcon in order to add a popupMenu. Most of
// its behavior is handled by the taskbar, but its positioning is done at the panel level
this.showAppsIconWrapper = new AppIcons.ShowAppsIconWrapper(this);
this.panel.add_child(this.showAppsIconWrapper.realShowAppsIcon);
this.panel._delegate = this;
-
+
this.add_child(this.panel);
if (Main.panel._onButtonPress || Main.panel._tryDragWindow) {
this._signalsHandler.add([
- this.panel,
+ this.panel,
[
- 'button-press-event',
+ 'button-press-event',
'touch-event'
],
this._onButtonPress.bind(this)
@@ -167,7 +167,7 @@ export const Panel = GObject.registerClass({
if (Main.panel._onKeyPress) {
this._signalsHandler.add([this.panel, 'key-press-event', Main.panel._onKeyPress.bind(this)]);
}
-
+
Main.ctrlAltTabManager.addGroup(this, _("Top Bar")+" "+ monitor.index, 'focus-top-bar-symbolic',
{ sortGroup: CtrlAltTab.SortGroup.TOP });
}
@@ -180,7 +180,7 @@ export const Panel = GObject.registerClass({
}
this.geom = this.getGeometry();
-
+
this._setPanelPosition();
if (!this.isStandalone) {
@@ -209,13 +209,13 @@ export const Panel = GObject.registerClass({
};
this.dynamicTransparency = new Transparency.DynamicTransparency(this);
-
+
this.taskbar = new Taskbar.Taskbar(this);
this.panel.add_child(this.taskbar.actor);
this._setShowDesktopButton(true);
-
+
this._setAllocationMap();
this.panel.add_style_class_name('dashtopanelMainPanel ' + this.getOrientation());
@@ -225,14 +225,14 @@ export const Panel = GObject.registerClass({
this._signalsHandler.add(
// this is to catch changes to the theme or window scale factor
[
- Utils.getStageTheme(),
- 'changed',
+ Utils.getStageTheme(),
+ 'changed',
() => (this._resetGeometry(), this._setShowDesktopButtonStyle()),
],
[
// sync hover after a popupmenu is closed
this.taskbar,
- 'menu-closed',
+ 'menu-closed',
() => this.panel.sync_hover()
],
[
@@ -255,10 +255,10 @@ export const Panel = GObject.registerClass({
],
[
this.statusArea.activities,
- 'captured-event',
+ 'captured-event',
(actor, e) => {
if (e.type() == Clutter.EventType.BUTTON_PRESS || e.type() == Clutter.EventType.TOUCH_BEGIN) {
- //temporarily use as primary the monitor on which the activities btn was clicked
+ //temporarily use as primary the monitor on which the activities btn was clicked
this.panelManager.setFocusedMonitor(this.monitor);
}
}
@@ -302,7 +302,7 @@ export const Panel = GObject.registerClass({
if (this.statusArea.dateMenu) {
this._formatVerticalClock();
-
+
this._signalsHandler.add([
this.statusArea.dateMenu._clock,
'notify::clock',
@@ -324,7 +324,7 @@ export const Panel = GObject.registerClass({
this._timeoutsHandler.destroy();
this._signalsHandler.destroy();
-
+
this.panel.remove_child(this.taskbar.actor);
if (this.intellihide) {
@@ -366,14 +366,14 @@ export const Panel = GObject.registerClass({
['activities', systemMenuName, 'dateMenu'].forEach(b => {
let container = this.statusArea[b].container;
let originalParent = container._dtpOriginalParent;
-
+
this.panel.remove_child(container);
originalParent && originalParent.insert_child_at_index(
- container,
+ container,
Math.min(container._dtpOriginalIndex, originalParent.get_children().length - 1)
);
-
+
delete container._dtpOriginalParent;
delete container._dtpOriginalIndex;
});
@@ -384,7 +384,7 @@ export const Panel = GObject.registerClass({
delete Utils.getIndicators(this.statusArea[systemMenuName]._volumeOutput)._dtpIgnoreScroll;
this._injectionManager.clear();
-
+
this.panel._delegate = this.panel;
} else {
this._removePanelMenu('dateMenu');
@@ -405,16 +405,16 @@ export const Panel = GObject.registerClass({
} else if (position == Pos.BOTTOM) {
return St.Side.BOTTOM;
}
-
+
return St.Side.LEFT;
}
checkIfVertical() {
let position = this.getPosition();
-
+
return (position == St.Side.LEFT || position == St.Side.RIGHT);
}
-
+
getOrientation() {
return (this.checkIfVertical() ? 'vertical' : 'horizontal');
}
@@ -452,7 +452,7 @@ export const Panel = GObject.registerClass({
currentPosition = Pos.STACKED_BR;
}
- if (!previousPosition ||
+ if (!previousPosition ||
(previousPosition == Pos.STACKED_TL && currentPosition != Pos.STACKED_TL) ||
(previousPosition != Pos.STACKED_BR && currentPosition == Pos.STACKED_BR) ||
(isCentered && previousPosition != currentPosition && previousPosition != Pos.STACKED_BR)) {
@@ -486,6 +486,8 @@ export const Panel = GObject.registerClass({
SETTINGS,
[
'changed::panel-sizes',
+ 'changed::appicon-margin-todesktop',
+ 'changed::appicon-margin-toscreenborder',
'changed::group-apps'
],
() => this._resetGeometry()
@@ -514,7 +516,7 @@ export const Panel = GObject.registerClass({
'changed::clock-format',
() => {
this._clockFormat = null;
-
+
if (isVertical) {
this._formatVerticalClock();
}
@@ -544,7 +546,7 @@ export const Panel = GObject.registerClass({
container.insert_child_at_index(this.statusArea[propName].container, 0);
}
}
-
+
_removePanelMenu(propName) {
if (this.statusArea[propName]) {
let parent = this.statusArea[propName].container.get_parent();
@@ -555,8 +557,8 @@ export const Panel = GObject.registerClass({
//calling this.statusArea[propName].destroy(); is buggy for now, gnome-shell never
//destroys those panel menus...
- //since we can't destroy the menu (hence properly disconnect its signals), let's
- //store it so the next time a panel needs one of its kind, we can reuse it instead
+ //since we can't destroy the menu (hence properly disconnect its signals), let's
+ //store it so the next time a panel needs one of its kind, we can reuse it instead
//of creating a new one
let panelMenu = this.statusArea[propName];
@@ -619,7 +621,7 @@ export const Panel = GObject.registerClass({
let x = 0, y = 0;
let w = 0, h = 0;
- const panelSize = PanelSettings.getPanelSize(SETTINGS, this.monitor.index);
+ const panelSize = PanelSettings.getPanelSize(SETTINGS, this.monitor.index) + SETTINGS.get_int('appicon-margin-todesktop') + SETTINGS.get_int('appicon-margin-toscreenborder');
this.dtpSize = panelSize * scaleFactor;
if (SETTINGS.get_boolean('stockgs-keep-top-panel') && Main.layoutManager.primaryMonitor == this.monitor) {
@@ -660,7 +662,7 @@ export const Panel = GObject.registerClass({
if (this.checkIfVertical()) {
let viewHeight = this.monitor.height - gsTopPanelOffset;
-
+
if (anchor === Pos.MIDDLE) {
anchorPlaceOnMonitor = (viewHeight - h) / 2;
} else if (anchor === Pos.END) {
@@ -681,7 +683,7 @@ export const Panel = GObject.registerClass({
}
return {
- x, y,
+ x, y,
w, h,
lrPadding,
tbPadding,
@@ -691,11 +693,11 @@ export const Panel = GObject.registerClass({
_setAllocationMap() {
this.allocationMap = {};
- let setMap = (name, actor) => this.allocationMap[name] = {
+ let setMap = (name, actor) => this.allocationMap[name] = {
actor: actor,
- box: new Clutter.ActorBox()
+ box: new Clutter.ActorBox()
};
-
+
setMap(Pos.SHOW_APPS_BTN, this.showAppsIconWrapper.realShowAppsIcon);
setMap(Pos.ACTIVITIES_BTN, this.statusArea.activities ? this.statusArea.activities.container : 0);
setMap(Pos.LEFT_BOX, this._leftBox);
@@ -772,19 +774,19 @@ export const Panel = GObject.registerClass({
brSize += refGroup.size;
}
}
-
+
if (group.isCentered) {
availableSize -= Math.max(tlSize, brSize) * 2;
} else {
availableSize -= tlSize + brSize;
}
-
+
if (availableSize < group.size) {
expandable.natSize -= (group.size - availableSize) * (group.isCentered && !Pos.checkIfCentered(expandable.position) ? .5 : 1);
assignGroupSize(group, true);
}
}
-
+
if (group.isCentered) {
startPosition = tlLimit + (brLimit - tlLimit - group.size) * .5;
} else if (group.position == Pos.STACKED_BR) {
@@ -833,9 +835,9 @@ export const Panel = GObject.registerClass({
let prevGroup = this._elementGroups[i - 1];
let nextGroup = this._elementGroups[i + 1];
- let prevLimit = prevGroup && prevGroup.fixed ? prevGroup[this.varCoord.c2] :
+ let prevLimit = prevGroup && prevGroup.fixed ? prevGroup[this.varCoord.c2] :
centeredMonitorGroup && group.index > centeredMonitorGroup.index ? centeredMonitorGroup[this.varCoord.c2] : panelAlloc[this.varCoord.c1];
- let nextLimit = nextGroup && nextGroup.fixed ? nextGroup[this.varCoord.c1] :
+ let nextLimit = nextGroup && nextGroup.fixed ? nextGroup[this.varCoord.c1] :
centeredMonitorGroup && group.index < centeredMonitorGroup.index ? centeredMonitorGroup[this.varCoord.c1] : panelAlloc[this.varCoord.c2];
if (group.position == Pos.STACKED_TL) {
@@ -860,7 +862,7 @@ export const Panel = GObject.registerClass({
// styles for theming
Object.keys(St.Side).forEach(p => {
let cssName = 'dashtopanel' + p.charAt(0) + p.slice(1).toLowerCase();
-
+
this.panel[(St.Side[p] == this.geom.position ? 'add' : 'remove') + '_style_class_name'](cssName);
});
@@ -892,7 +894,7 @@ export const Panel = GObject.registerClass({
} else {
const targetActor = global.stage.get_event_actor(event);
- if (Main.modalCount > 0 || targetActor != actor ||
+ if (Main.modalCount > 0 || targetActor != actor ||
(!isPress && type != Clutter.EventType.TOUCH_BEGIN) ||
(isPress && button != 1)) {
return Clutter.EVENT_PROPAGATE;
@@ -956,7 +958,7 @@ export const Panel = GObject.registerClass({
actor.vertical = isVertical;
} else if (
actor != this.statusArea.appMenu &&
- ((actor._delegate || actor) instanceof PanelMenu.ButtonBox || actor == this.statusArea.quickSettings)
+ ((actor._delegate || actor) instanceof PanelMenu.ButtonBox || actor == this.statusArea.quickSettings)
) {
let child = actor.get_first_child();
@@ -983,7 +985,7 @@ export const Panel = GObject.registerClass({
};
_set(actor, false);
-
+
if (isVertical)
_set(actor, isVertical);
}
@@ -994,7 +996,7 @@ export const Panel = GObject.registerClass({
delete actor._dtpVisibleId;
delete actor._dtpDestroyId;
-
+
this._unmappedButtons.splice(this._unmappedButtons.indexOf(actor), 1);
}
@@ -1008,16 +1010,16 @@ export const Panel = GObject.registerClass({
let setClockText = (text, useTimeSeparator) => {
let stacks = text instanceof Array;
let separator = `\n ${useTimeSeparator ? '‧‧' : '—' } \n`;
-
+
clockText.set_text((stacks ? text.join(separator) : text).trim());
clockText.set_use_markup(stacks);
clockText.get_allocation_box();
-
+
return !clockText.get_layout().is_ellipsized();
};
if (clockText.ellipsize == Pango.EllipsizeMode.NONE) {
- //on gnome-shell 3.36.4, the clockdisplay isn't ellipsize anymore, so set it back
+ //on gnome-shell 3.36.4, the clockdisplay isn't ellipsize anymore, so set it back
clockText.ellipsize = Pango.EllipsizeMode.END;
}
@@ -1029,8 +1031,8 @@ export const Panel = GObject.registerClass({
datetimeParts = [datetimeParts.join(' '), time];
}
- if (!setClockText(datetime) &&
- !setClockText(datetimeParts) &&
+ if (!setClockText(datetime) &&
+ !setClockText(datetimeParts) &&
!setClockText(time)) {
let timeParts = time.split('∶');
@@ -1078,7 +1080,7 @@ export const Panel = GObject.registerClass({
}]);
}
});
-
+
this._showDesktopButton.connect('leave-event', () => {
this._showDesktopButton.remove_style_class_name(this._getBackgroundBrightness() ?
'showdesktop-button-light-hovered' : 'showdesktop-button-dark-hovered');
@@ -1136,7 +1138,7 @@ export const Panel = GObject.registerClass({
time: time,
transition: 'easeOutQuad'
};
-
+
Utils.animateWindowOpacity(w.get_compositor_private(), tweenOpts);
}
});
@@ -1168,14 +1170,14 @@ export const Panel = GObject.registerClass({
windows.forEach(function(w) {
w.minimize();
});
-
+
this._restoreWindowList = windows;
this._timeoutsHandler.add([T5, 20, () => this._signalsHandler.addWithLabel(
- label,
+ label,
[
- tracker,
- 'notify::focus-app',
+ tracker,
+ 'notify::focus-app',
() => this._restoreWindowList = null
]
)]);
@@ -1208,7 +1210,7 @@ export const Panel = GObject.registerClass({
showWsPopup ? 0 : Main.wm._workspaceSwitcherPopup = null;
} else if (direction && scrollAction === 'CYCLE_WINDOWS') {
let windows = this.taskbar.getAppInfos().reduce((ws, appInfo) => ws.concat(appInfo.windows), []);
-
+
Utils.activateSiblingWindow(windows, direction);
} else if (scrollAction === 'CHANGE_VOLUME' && !event.is_pointer_emulated()) {
let proto = Volume.OutputIndicator.prototype;
diff --git a/prefs.js b/prefs.js
index d2337c2..2746ef4 100644
--- a/prefs.js
+++ b/prefs.js
@@ -160,7 +160,7 @@ const Preferences = class {
this._builder.set_scope(new BuilderScope(this));
this._settings = settings;
this._path = path;
-
+
this._metadata = ExtensionPreferences.lookupByURL(import.meta.url).metadata;
this._builder.set_translation_domain(this._metadata['gettext-domain']);
@@ -168,6 +168,7 @@ const Preferences = class {
// dialogs
this._builder.add_from_file(this._path + '/ui/BoxAnimateAppIconHoverOptions.ui');
+ this._builder.add_from_file(this._path + '/ui/BoxHighlightAppIconHoverOptions.ui');
this._builder.add_from_file(this._path + '/ui/BoxDotOptions.ui');
this._builder.add_from_file(this._path + '/ui/BoxShowDesktopOptions.ui');
this._builder.add_from_file(this._path + '/ui/BoxDynamicOpacityOptions.ui');
@@ -222,6 +223,8 @@ const Preferences = class {
this._tray_size_timeout = 0;
this._leftbox_size_timeout = 0;
this._appicon_margin_timeout = 0;
+ this._appicon_margin_todesktop_timeout = 0;
+ this._appicon_margin_toscreenborder_timeout = 0;
this._appicon_padding_timeout = 0;
this._opacity_timeout = 0;
this._tray_padding_timeout = 0;
@@ -377,7 +380,7 @@ const Preferences = class {
_displayPanelPositionsForMonitor(monitorIndex) {
let taskbarListBox = this._builder.get_object('taskbar_display_listbox');
-
+
while(taskbarListBox.get_first_child())
{
taskbarListBox.remove(taskbarListBox.get_first_child());
@@ -403,7 +406,7 @@ const Preferences = class {
});
child = child.get_next_sibling();
}
-
+
monitors.forEach(m => panelElementPositionsSettings[m] = newPanelElementPositions);
this._settings.set_string('panel-element-positions', JSON.stringify(panelElementPositionsSettings));
};
@@ -462,7 +465,7 @@ const Preferences = class {
if (Pos.optionDialogFunctions[el.element]) {
let cogImg = new Gtk.Image({ icon_name: 'emblem-system-symbolic' });
let optionsBtn = new Gtk.Button({ tooltip_text: _('More options') });
-
+
optionsBtn.get_style_context().add_class('circular');
optionsBtn.set_child(cogImg);
grid.attach(optionsBtn, 2, 0, 1, 1);
@@ -484,7 +487,7 @@ const Preferences = class {
_createPreferencesDialog(title, content, reset_function = null) {
let dialog;
-
+
dialog = new Gtk.Dialog({ title: title,
transient_for: this.notebook.get_root(),
use_header_bar: true,
@@ -572,7 +575,7 @@ const Preferences = class {
_showDesktopButtonOptions() {
let box = this._builder.get_object('box_show_showdesktop_options');
-
+
let dialog = this._createPreferencesDialog(_('Show Desktop options'), box, () =>
{
// restore default settings
@@ -621,6 +624,14 @@ const Preferences = class {
.set_format_value_func((scale, value) => {
return value + ' px';
});
+ this._builder.get_object('appicon_margin_todesktop_scale')
+ .set_format_value_func((scale, value) => {
+ return value + ' px';
+ });
+ this._builder.get_object('appicon_margin_toscreenborder_scale')
+ .set_format_value_func((scale, value) => {
+ return value + ' px';
+ });
this._builder.get_object('appicon_padding_scale')
.set_format_value_func((scale, value) => {
@@ -684,6 +695,12 @@ const Preferences = class {
.set_format_value_func((scale, value) => {
return ngettext("%d icon", "%d icons", value).format(value);
});
+
+ // highlight appicon on hover dialog
+ this._builder.get_object('highlight_appicon_borderradius')
+ .set_format_value_func((scale, value) => {
+ return value + ' px';
+ });
}
_bindSettings() {
@@ -846,7 +863,7 @@ const Preferences = class {
this._builder.get_object('grid_dot_color'),
'sensitive',
Gio.SettingsBindFlags.DEFAULT);
-
+
this._settings.bind('dot-color-override',
this._builder.get_object('dot_color_unfocused_box'),
'sensitive',
@@ -856,7 +873,7 @@ const Preferences = class {
this._builder.get_object('grid_dot_color_unfocused'),
'sensitive',
Gio.SettingsBindFlags.DEFAULT);
-
+
for (let i = 1; i <= MAX_WINDOW_INDICATOR; i++) {
let rgba = new Gdk.RGBA();
rgba.parse(this._settings.get_string('dot-color-' + i));
@@ -927,7 +944,7 @@ const Preferences = class {
this._settings.connect('changed::panel-positions', () => this._updateVerticalRelatedOptions());
this._updateVerticalRelatedOptions();
-
+
for (let i = 0; i < this.monitors.length; ++i) {
//the gnome-shell primary index is the first one in the "available-monitors" setting
let label = !i ? _('Primary monitor') : _('Monitor ') + (i + 1);
@@ -935,7 +952,7 @@ const Preferences = class {
this._builder.get_object('multimon_primary_combo').append_text(label);
this._builder.get_object('taskbar_position_monitor_combo').append_text(label);
}
-
+
this._builder.get_object('multimon_primary_combo').set_active(dtpPrimaryMonitorIndex);
this._builder.get_object('taskbar_position_monitor_combo').set_active(dtpPrimaryMonitorIndex);
@@ -1110,7 +1127,7 @@ const Preferences = class {
this._builder.get_object('trans_options_distance_spinbutton').connect('value-changed', (widget) => {
this._settings.set_int('trans-dynamic-distance', widget.get_value());
});
-
+
this._builder.get_object('trans_options_min_opacity_spinbutton').set_value(this._settings.get_double('trans-dynamic-anim-target') * 100);
this._builder.get_object('trans_options_min_opacity_spinbutton').connect('value-changed', (widget) => {
this._settings.set_double('trans-dynamic-anim-target', widget.get_value() * 0.01);
@@ -1143,7 +1160,7 @@ const Preferences = class {
dialog.set_default_size(1, 1);
});
-
+
this._settings.bind('desktop-line-use-custom-color',
this._builder.get_object('override_show_desktop_line_color_switch'),
'active',
@@ -1153,7 +1170,7 @@ const Preferences = class {
this._builder.get_object('override_show_desktop_line_color_colorbutton'),
'sensitive',
Gio.SettingsBindFlags.DEFAULT);
-
+
rgba.parse(this._settings.get_string('desktop-line-custom-color'));
this._builder.get_object('override_show_desktop_line_color_colorbutton').set_rgba(rgba);
this._builder.get_object('override_show_desktop_line_color_colorbutton').connect('color-set', (button) => {
@@ -1191,7 +1208,7 @@ const Preferences = class {
this._settings.bind('intellihide-use-pressure',
this._builder.get_object('intellihide_use_pressure_switch'),
'active',
- Gio.SettingsBindFlags.DEFAULT);
+ Gio.SettingsBindFlags.DEFAULT);
this._settings.bind('intellihide-use-pressure',
this._builder.get_object('intellihide_use_pressure_options'),
@@ -1268,7 +1285,7 @@ const Preferences = class {
this._settings.set_value('intellihide-pressure-threshold', this._settings.get_default_value('intellihide-pressure-threshold'));
this._builder.get_object('intellihide_pressure_threshold_spinbutton').set_value(this._settings.get_int('intellihide-pressure-threshold'));
-
+
this._settings.set_value('intellihide-pressure-time', this._settings.get_default_value('intellihide-pressure-time'));
this._builder.get_object('intellihide_pressure_time_spinbutton').set_value(this._settings.get_int('intellihide-pressure-time'));
@@ -1340,7 +1357,7 @@ const Preferences = class {
this._builder.get_object('multimon_multi_show_favorites_switch'),
'active',
Gio.SettingsBindFlags.DEFAULT);
-
+
this._settings.bind('show-favorites',
this._builder.get_object('multimon_multi_show_favorites_switch'),
'sensitive',
@@ -1349,7 +1366,7 @@ const Preferences = class {
this._settings.bind('show-running-apps',
this._builder.get_object('show_runnning_apps_switch'),
'active',
- Gio.SettingsBindFlags.DEFAULT);
+ Gio.SettingsBindFlags.DEFAULT);
this._setPreviewTitlePosition();
@@ -1378,7 +1395,7 @@ const Preferences = class {
this._builder.get_object('animation_time_spinbutton').set_value(this._settings.get_int('window-preview-animation-time'));
this._settings.set_value('preview-use-custom-opacity', this._settings.get_default_value('preview-use-custom-opacity'));
-
+
this._settings.set_value('window-preview-use-custom-icon-size', this._settings.get_default_value('window-preview-use-custom-icon-size'));
this._settings.set_value('preview-custom-opacity', this._settings.get_default_value('preview-custom-opacity'));
@@ -1405,7 +1422,7 @@ const Preferences = class {
this._settings.set_value('window-preview-aspect-ratio-y', this._settings.get_default_value('window-preview-aspect-ratio-y'));
this._builder.get_object('preview_aspect_ratio_y_combo').set_active_id(this._settings.get_int('window-preview-aspect-ratio-y').toString());
-
+
this._settings.set_value('window-preview-padding', this._settings.get_default_value('window-preview-padding'));
this._builder.get_object('preview_padding_spinbutton').set_value(this._settings.get_int('window-preview-padding'));
@@ -1413,7 +1430,7 @@ const Preferences = class {
this._settings.set_value('window-preview-title-font-size', this._settings.get_default_value('window-preview-title-font-size'));
this._builder.get_object('preview_title_size_spinbutton').set_value(this._settings.get_int('window-preview-title-font-size'));
-
+
this._settings.set_value('window-preview-custom-icon-size', this._settings.get_default_value('window-preview-custom-icon-size'));
this._builder.get_object('preview_custom_icon_size_spinbutton').set_value(this._settings.get_int('window-preview-custom-icon-size'));
@@ -1467,7 +1484,7 @@ const Preferences = class {
this._builder.get_object('preview_custom_opacity_spinbutton').connect('value-changed', (widget) => {
this._settings.set_int('preview-custom-opacity', widget.get_value());
});
-
+
this._settings.bind('peek-mode',
this._builder.get_object('peek_mode_switch'),
'active',
@@ -1480,7 +1497,7 @@ const Preferences = class {
this._builder.get_object('grid_peek_mode_opacity'),
'sensitive',
Gio.SettingsBindFlags.DEFAULT);
-
+
this._settings.bind('window-preview-show-title',
this._builder.get_object('preview_show_title_switch'),
'active',
@@ -1551,7 +1568,7 @@ const Preferences = class {
this._builder.get_object('preview_title_size_spinbutton').connect('value-changed', (widget) => {
this._settings.set_int('window-preview-title-font-size', widget.get_value());
});
-
+
this._builder.get_object('preview_custom_icon_size_spinbutton').set_value(this._settings.get_int('window-preview-custom-icon-size'));
this._builder.get_object('preview_custom_icon_size_spinbutton').connect('value-changed', (widget) => {
this._settings.set_int('window-preview-custom-icon-size', widget.get_value());
@@ -1571,7 +1588,7 @@ const Preferences = class {
dialog.show();
});
-
+
this._settings.bind('isolate-workspaces',
this._builder.get_object('isolate_workspaces_switch'),
'active',
@@ -1634,7 +1651,7 @@ const Preferences = class {
this._settings.bind('group-apps-use-launchers',
this._builder.get_object('group_apps_use_launchers_switch'),
'active',
- Gio.SettingsBindFlags.DEFAULT);
+ Gio.SettingsBindFlags.DEFAULT);
this._builder.get_object('show_group_apps_options_button').connect('clicked', () => {
let box = this._builder.get_object('box_group_apps_options');
@@ -1696,7 +1713,7 @@ const Preferences = class {
dialog.show();
dialog.set_default_size(600, 1);
- });
+ });
this._builder.get_object('click_action_combo').set_active_id(this._settings.get_string('click-action'));
this._builder.get_object('click_action_combo').connect('changed', (widget) => {
@@ -1890,7 +1907,7 @@ const Preferences = class {
dialog.set_default_size(600, 1);
});
-
+
// setup dialog for secondary menu options
this._builder.get_object('secondarymenu_options_button').connect('clicked', () => {
let box = this._builder.get_object('box_secondarymenu_options');
@@ -1935,11 +1952,14 @@ const Preferences = class {
{objectName: 'tray_size_scale', valueName: 'tray-size', range: DEFAULT_FONT_SIZES },
{objectName: 'leftbox_size_scale', valueName: 'leftbox-size', range: DEFAULT_FONT_SIZES },
{objectName: 'appicon_margin_scale', valueName: 'appicon-margin', range: DEFAULT_MARGIN_SIZES },
+ {objectName: 'appicon_margin_todesktop_scale', valueName: 'appicon-margin-todesktop', range: DEFAULT_MARGIN_SIZES },
+ {objectName: 'appicon_margin_toscreenborder_scale', valueName: 'appicon-margin-toscreenborder', range: DEFAULT_MARGIN_SIZES },
{objectName: 'appicon_padding_scale', valueName: 'appicon-padding', range: DEFAULT_MARGIN_SIZES },
{objectName: 'tray_padding_scale', valueName: 'tray-padding', range: DEFAULT_PADDING_SIZES },
{objectName: 'leftbox_padding_scale', valueName: 'leftbox-padding', range: DEFAULT_PADDING_SIZES },
{objectName: 'statusicon_padding_scale', valueName: 'status-icon-padding', range: DEFAULT_PADDING_SIZES },
- {objectName: 'panel_length_scale', valueName: '', range: LENGTH_MARKS }
+ {objectName: 'panel_length_scale', valueName: '', range: LENGTH_MARKS },
+ {objectName: 'highlight_appicon_borderradius', valueName: 'highlight-appicon-hover-border-radius', range: [ 16, 12, 8, 4, 2, 0 ] },
];
for(const idx in sizeScales) {
@@ -2054,6 +2074,71 @@ const Preferences = class {
});
+ this._settings.bind('highlight-appicon-hover',
+ this._builder.get_object('highlight_appicon_hover_switch'),
+ 'active',
+ Gio.SettingsBindFlags.DEFAULT);
+
+ this._settings.bind('highlight-appicon-hover',
+ this._builder.get_object('highlight_appicon_hover_button'),
+ 'sensitive',
+ Gio.SettingsBindFlags.DEFAULT);
+
+ {
+ rgba.parse(this._settings.get_string('highlight-appicon-hover-background-color'));
+ this._builder.get_object('highlight_appicon_color').set_rgba(rgba);
+ this._builder.get_object('highlight_appicon_color').connect('color-set', (button) => {
+ let rgba = button.get_rgba();
+ let css = rgba.to_string();
+ this._settings.set_string('highlight-appicon-hover-background-color', css);
+ });
+
+ rgba.parse(this._settings.get_string('highlight-appicon-pressed-background-color'));
+ this._builder.get_object('pressed_appicon_color').set_rgba(rgba);
+ this._builder.get_object('pressed_appicon_color').connect('color-set', (button) => {
+ let rgba = button.get_rgba();
+ let css = rgba.to_string();
+ this._settings.set_string('highlight-appicon-pressed-background-color', css);
+ });
+
+ let scales = [
+ ['highlight_appicon_borderradius', 'highlight-appicon-hover-border-radius'],
+ ];
+
+ const updateScale = scale => {
+ let [id, key] = scale;
+ this._builder.get_object(id).set_value(this._settings.get_int(key));
+ };
+ scales.forEach(scale => {
+ updateScale(scale);
+ let [id, key] = scale;
+ this._builder.get_object(id).connect('value-changed', widget => {
+ this._settings.set_int(key, widget.get_value());
+ });
+ });
+
+ }
+
+ this._builder.get_object('highlight_appicon_hover_button').connect('clicked', () => {
+ let box = this._builder.get_object('highlight_appicon_hover_options');
+
+ let dialog = this._createPreferencesDialog(_('App icon highlight options'), box, () =>
+ {
+ // restore default settings
+ this._settings.set_value('highlight-appicon-hover-background-color', this._settings.get_default_value('highlight-appicon-hover-background-color'));
+ rgba.parse(this._settings.get_string('highlight-appicon-hover-background-color'));
+ this._builder.get_object('highlight_appicon_color').set_rgba(rgba);
+ this._settings.set_value('highlight-appicon-pressed-background-color', this._settings.get_default_value('highlight-appicon-pressed-background-color'));
+ rgba.parse(this._settings.get_string('highlight-appicon-pressed-background-color'));
+ this._builder.get_object('pressed_appicon_color').set_rgba(rgba);
+ this._settings.set_value('highlight-appicon-hover-border-radius', this._settings.get_default_value('highlight-appicon-hover-border-radius'));
+ this._builder.get_object('highlight_appicon_borderradius').set_value(this._settings.get_int('highlight-appicon-hover-border-radius'));
+ });
+
+ dialog.show();
+
+ });
+
this._settings.bind('stockgs-keep-dash',
this._builder.get_object('stockgs_dash_switch'),
'active',
@@ -2064,7 +2149,7 @@ const Preferences = class {
'active',
Gio.SettingsBindFlags.DEFAULT);
-
+
this._settings.connect('changed::stockgs-keep-top-panel', () => this._maybeDisableTopPosition());
@@ -2074,7 +2159,7 @@ const Preferences = class {
this._builder.get_object('stockgs_panelbtn_switch'),
'active',
Gio.SettingsBindFlags.DEFAULT);
-
+
this._settings.bind('stockgs-force-hotcorner',
this._builder.get_object('stockgs_hotcorner_switch'),
'active',
@@ -2151,7 +2236,7 @@ const Preferences = class {
dialog.connect('response', (dialog, id) => {
if (id == Gtk.ResponseType.ACCEPT)
acceptHandler.call(this, dialog.get_file().get_path());
-
+
dialog.destroy();
});
}
@@ -2161,7 +2246,7 @@ const Preferences = class {
const BuilderScope = GObject.registerClass({
Implements: [Gtk.BuilderScope],
}, class BuilderScope extends GObject.Object {
-
+
_init(preferences) {
this._preferences = preferences;
super._init();
@@ -2170,13 +2255,13 @@ const BuilderScope = GObject.registerClass({
vfunc_create_closure(builder, handlerName, flags, connectObject) {
if (flags & Gtk.BuilderClosureFlags.SWAPPED)
throw new Error('Unsupported template signal flag "swapped"');
-
+
if (typeof this[handlerName] === 'undefined')
throw new Error(`${handlerName} is undefined`);
-
+
return this[handlerName].bind(connectObject || this);
}
-
+
on_btn_click(connectObject) {
connectObject.set_label("Clicked");
}
@@ -2188,7 +2273,7 @@ const BuilderScope = GObject.registerClass({
position_top_button_clicked_cb(button) {
if (!this._preferences._ignorePositionRadios && button.get_active()) this._preferences._setPanelPosition(Pos.TOP);
}
-
+
position_left_button_clicked_cb(button) {
if (!this._preferences._ignorePositionRadios && button.get_active()) this._preferences._setPanelPosition(Pos.LEFT);
}
@@ -2281,6 +2366,30 @@ const BuilderScope = GObject.registerClass({
});
}
+ appicon_margin_todesktop_scale_value_changed_cb(scale) {
+ // Avoid settings the size consinuosly
+ if (this._preferences._appicon_margin_todesktop_timeout > 0)
+ GLib.Source.remove(this._preferences._appicon_margin_todesktop_timeout);
+
+ this._preferences._appicon_margin_todesktop_timeout = GLib.timeout_add(GLib.PRIORITY_DEFAULT, SCALE_UPDATE_TIMEOUT, () => {
+ this._preferences._settings.set_int('appicon-margin-todesktop', scale.get_value());
+ this._preferences._appicon_margin_todesktop_timeout = 0;
+ return GLib.SOURCE_REMOVE;
+ });
+ }
+
+ appicon_margin_toscreenborder_scale_value_changed_cb(scale) {
+ // Avoid settings the size consinuosly
+ if (this._preferences._appicon_margin_toscreenborder_timeout > 0)
+ GLib.Source.remove(this._preferences._appicon_margin_toscreenborder_timeout);
+
+ this._preferences._appicon_margin_toscreenborder_timeout = GLib.timeout_add(GLib.PRIORITY_DEFAULT, SCALE_UPDATE_TIMEOUT, () => {
+ this._preferences._settings.set_int('appicon-margin-toscreenborder', scale.get_value());
+ this._preferences._appicon_margin_toscreenborder_timeout = 0;
+ return GLib.SOURCE_REMOVE;
+ });
+ }
+
appicon_padding_scale_value_changed_cb(scale) {
// Avoid settings the size consinuosly
if (this._preferences._appicon_padding_timeout > 0)
diff --git a/schemas/org.gnome.shell.extensions.dash-to-panel.gschema.xml b/schemas/org.gnome.shell.extensions.dash-to-panel.gschema.xml
index a73a349..c79bd50 100644
--- a/schemas/org.gnome.shell.extensions.dash-to-panel.gschema.xml
+++ b/schemas/org.gnome.shell.extensions.dash-to-panel.gschema.xml
@@ -735,6 +735,16 @@
App icon margin
Set the margin for application icons in the embedded dash.
+
+ 0
+ App icon margin to desktop
+ Set the margin for application icons in the embedded dash towards the desktop (top margin if panel is on the bottom).
+
+
+ 0
+ App icon margin to screen border
+ Set the margin for application icons in the embedded dash towards the desktop (bottom margin if panel is on the bottom).
+
4
App icon padding
@@ -795,6 +805,22 @@
{'SIMPLE':1,'RIPPLE':1.25,'PLANK':2}
App icon hover animation zoom scale in relation to the app icon size
+
+ true
+ Highlight app icon on hover
+
+
+ "rgba(238, 238, 236, 0.1)"
+ Highlight color
+
+
+ "rgba(238, 238, 236, 0.18)"
+ Mouse down highlight color
+
+
+ 0
+ Highlight border radius
+
true
Integrate items from the gnome appmenu into the right click menu
diff --git a/stylesheet.css b/stylesheet.css
index 3640d17..bd86490 100644
--- a/stylesheet.css
+++ b/stylesheet.css
@@ -24,7 +24,7 @@
#dashtopanelTaskbar .dash-item-container > StWidget,
.dashtopanelMainPanel .show-apps {
margin: 0;
- padding: 0;
+ padding: 0;
}
#dashtopanelScrollview .overview-tile,
@@ -41,16 +41,28 @@
#dashtopanelScrollview .overview-tile:hover .dtp-container,
#dashtopanelScrollview .overview-tile:focus .dtp-container {
background-color: rgba(238, 238, 236, 0.1);
+ border-radius: 0px;
+ background-color: var(--dtp-hover-background-color);
+ border-radius: var(--dtp-hover-border-radius);
+}
+
+#dashtopanelScrollview .overview-tile:hover .dtp-container > .dtp-dots-container,
+#dashtopanelScrollview .overview-tile:focus .dtp-container > .dtp-dots-container {
+ border-radius: 0px;
+ border-radius: var(--dtp-hover-border-radius);
}
#dashtopanelTaskbar .dash-item-container .overview-tile:hover,
#dashtopanelTaskbar .dash-item-container .overview-tile .dtp-container .overview-icon,
-#dashtopanelScrollview .overview-tile:hover .dtp-container.animate-appicon-hover {
+#dashtopanelScrollview .overview-tile:hover .dtp-container.no-highlight,
+#dashtopanelScrollview .overview-tile:focus .dtp-container.no-highlight {
background: none;
}
+
#dashtopanelScrollview .overview-tile:active .dtp-container {
background-color: rgba(238, 238, 236, 0.18);
+ background-color: var(--dtp-pressed-background-color);
}
#dashtopanelScrollview .overview-tile .favorite {
@@ -66,13 +78,13 @@
}
.dashtopanelMainPanel.vertical .panel-button {
- text-align: center;
+ text-align: center;
}
.dashtopanelMainPanel.vertical .panel-button.vertical *,
.dashtopanelMainPanel.vertical .panel-button.clock-display * {
padding: 0;
- margin: 0;
+ margin: 0;
}
.dashtopanelMainPanel.vertical .panel-button > *,
@@ -80,7 +92,7 @@
.dashtopanelMainPanel.vertical .panel-button.vertical .system-status-icon,
.dashtopanelMainPanel.vertical .panel-button.clock-display > *,
.dashtopanelMainPanel.vertical .panel-button.clock-display .clock {
- padding: 8px 0;
+ padding: 8px 0;
}
.dashtopanelMainPanel.vertical .panel-button.clock-display {
@@ -113,7 +125,7 @@
}
#panel #panelLeft, #panel #panelCenter {
- spacing: 0px;
+ spacing: 0px;
}
.showdesktop-button-dark-hovered {
diff --git a/taskbar.js b/taskbar.js
index 54da64f..af08ccd 100644
--- a/taskbar.js
+++ b/taskbar.js
@@ -98,11 +98,11 @@ const iconAnimationSettings = {
},
get travel() {
- return Math.max(0, this._getDictValue('animate-appicon-hover-animation-travel'));
+ return Math.max(-1, this._getDictValue('animate-appicon-hover-animation-travel'));
},
get zoom() {
- return Math.max(1, this._getDictValue('animate-appicon-hover-animation-zoom'));
+ return Math.max(0.5, this._getDictValue('animate-appicon-hover-animation-zoom'));
},
};
@@ -154,7 +154,7 @@ export const TaskbarActor = GObject.registerClass({
leftFade.set_style(gradientStyle);
rightFade.set_style(gradientStyle);
}
-
+
childBox[panel.varCoord.c2] = childBox[panel.varCoord.c1] + (value > 0 ? scrollview._dtpFadeSize : 0);
leftFade.allocate(childBox);
@@ -168,13 +168,13 @@ export const TaskbarActor = GObject.registerClass({
// then calls BoxLayout)
vfunc_get_preferred_width(forHeight) {
let [, natWidth] = St.Widget.prototype.vfunc_get_preferred_width.call(this, forHeight);
-
+
return [0, natWidth];
}
vfunc_get_preferred_height(forWidth) {
let [, natHeight] = St.Widget.prototype.vfunc_get_preferred_height.call(this, forWidth);
-
+
return [0, natHeight];
}
});
@@ -199,7 +199,7 @@ export const Taskbar = class extends EventEmitter {
super();
this.dtpPanel = panel;
-
+
// start at smallest size due to running indicator drawing area expanding but not shrinking
this.iconSize = 16;
@@ -252,13 +252,13 @@ export const Taskbar = class extends EventEmitter {
this._container.add_child(new St.Widget({ width: 0, reactive: false }));
this._container.add_child(this._scrollView);
-
+
let orientation = panel.getOrientation();
let fadeStyle = 'background-gradient-direction:' + orientation;
let fade1 = new St.Widget({ style_class: 'scrollview-fade', reactive: false });
- let fade2 = new St.Widget({ style_class: 'scrollview-fade',
- reactive: false,
- pivot_point: new Graphene.Point({ x: .5, y: .5 }),
+ let fade2 = new St.Widget({ style_class: 'scrollview-fade',
+ reactive: false,
+ pivot_point: new Graphene.Point({ x: .5, y: .5 }),
rotation_angle_z: 180 });
fade1.set_style(fadeStyle);
@@ -278,7 +278,7 @@ export const Taskbar = class extends EventEmitter {
});
const adjustment = this._scrollView[orientation[0] + 'adjustment'];
-
+
this._workId = Main.initializeDeferredWork(this._box, this._redisplay.bind(this));
this._settings = new Gio.Settings({ schema_id: 'org.gnome.shell' });
@@ -318,7 +318,7 @@ export const Taskbar = class extends EventEmitter {
],
[
global.window_manager,
- 'switch-workspace',
+ 'switch-workspace',
() => this._connectWorkspaceSignals()
],
[
@@ -400,7 +400,7 @@ export const Taskbar = class extends EventEmitter {
let setAttributes = () => {
this.isGroupApps = SETTINGS.get_boolean('group-apps');
this.usingLaunchers = !this.isGroupApps && SETTINGS.get_boolean('group-apps-use-launchers');
- this.showFavorites = SETTINGS.get_boolean('show-favorites') &&
+ this.showFavorites = SETTINGS.get_boolean('show-favorites') &&
(this.dtpPanel.isPrimary || SETTINGS.get_boolean('show-favorites-all-monitors'))
this.showRunningApps = SETTINGS.get_boolean('show-running-apps')
this.allowSplitApps = this.usingLaunchers || (!this.isGroupApps && !this.showFavorites)
@@ -425,7 +425,7 @@ export const Taskbar = class extends EventEmitter {
this._signalsHandler = 0;
this._container.destroy();
-
+
this.previewMenu.disable();
this.previewMenu.destroy();
@@ -592,7 +592,7 @@ export const Taskbar = class extends EventEmitter {
if (this._dragInfo) {
this._box.set_child_at_index(this._dragInfo[1]._dashItemContainer, this._dragInfo[0]);
}
-
+
this._endDrag();
}
@@ -614,10 +614,10 @@ export const Taskbar = class extends EventEmitter {
this._clearEmptyDropTarget();
this._showAppsIcon.setDragApp(null);
DND.removeDragMonitor(this._dragMonitor);
-
+
this._dragMonitor = null;
this.emit('end-drag');
-
+
this._toggleFavoriteHighlight();
}
@@ -639,9 +639,9 @@ export const Taskbar = class extends EventEmitter {
_toggleFavoriteHighlight(show) {
let appFavorites = AppFavorites.getAppFavorites();
let cssFuncName = (show ? 'add' : 'remove') + '_style_class_name';
-
+
if (this.showFavorites)
- this._getAppIcons().filter(appIcon => (this.usingLaunchers && appIcon.isLauncher) ||
+ this._getAppIcons().filter(appIcon => (this.usingLaunchers && appIcon.isLauncher) ||
(!this.usingLaunchers && appFavorites.isFavorite(appIcon.app.get_id())))
.forEach(fav => fav._container[cssFuncName]('favorite'));
}
@@ -686,12 +686,12 @@ export const Taskbar = class extends EventEmitter {
_createAppItem(app, window, isLauncher) {
let appIcon = new AppIcons.TaskbarAppIcon(
{
- app,
+ app,
window,
isLauncher
},
this.dtpPanel,
- {
+ {
setSizeManually: true,
showLabel: false,
isDraggable: !SETTINGS.get_boolean('taskbar-locked'),
@@ -730,7 +730,7 @@ export const Taskbar = class extends EventEmitter {
appIcon.connect('notify::hover', () => {
if (appIcon.hover){
- this._timeoutsHandler.add([T1, 100,
+ this._timeoutsHandler.add([T1, 100,
() => Utils.ensureActorVisibleInScrollView(this._scrollView, appIcon, this._scrollView._dtpFadeSize)
])
@@ -761,7 +761,7 @@ export const Taskbar = class extends EventEmitter {
appIcon._menu._boxPointer.yOffset = -y_shift;
}
});
-
+
// Override default AppIcon label_actor, now the
// accessible_name is set at DashItemContainer.setLabelText
appIcon.label_actor = null;
@@ -863,13 +863,13 @@ export const Taskbar = class extends EventEmitter {
if (availSize < minIconSize) {
availSize = minIconSize;
}
-
+
// For the icon size, we only consider children which are "proper"
- // icons and which are not animating out (which means they will be
+ // icons and which are not animating out (which means they will be
// destroyed at the end of the animation)
let iconChildren = this._getTaskbarIcons().concat([this._showAppsIcon]);
let scale = this.iconSize / availSize;
-
+
this.iconSize = availSize;
for (let i = 0; i < iconChildren.length; i++) {
@@ -902,7 +902,7 @@ export const Taskbar = class extends EventEmitter {
}
sortAppsCompareFunction(appA, appB) {
- return getAppStableSequence(appA, this.dtpPanel.monitor) -
+ return getAppStableSequence(appA, this.dtpPanel.monitor) -
getAppStableSequence(appB, this.dtpPanel.monitor);
}
@@ -941,9 +941,9 @@ export const Taskbar = class extends EventEmitter {
(!this.allowSplitApps || this.isGroupApps || appInfo.windows[0] == appIcon.window) &&
appInfo.isLauncher == appIcon.isLauncher);
- if (appIndex < 0 ||
+ if (appIndex < 0 ||
(appIcon.window && (this.isGroupApps || expectedAppInfos[appIndex].windows.indexOf(appIcon.window) < 0)) ||
- (!appIcon.window && !appIcon.isLauncher &&
+ (!appIcon.window && !appIcon.isLauncher &&
!this.isGroupApps && expectedAppInfos[appIndex].windows.length)) {
currentAppIcons[i][this._shownInitially ? 'animateOutAndDestroy' : 'destroy']();
currentAppIcons.splice(i, 1);
@@ -953,13 +953,13 @@ export const Taskbar = class extends EventEmitter {
//if needed, reorder the existing appIcons and create the missing ones
let currentPosition = 0;
for (let i = 0, l = expectedAppInfos.length; i < l; ++i) {
- let neededAppIcons = this.isGroupApps || !expectedAppInfos[i].windows.length ?
- [{ app: expectedAppInfos[i].app, window: null, isLauncher: expectedAppInfos[i].isLauncher }] :
+ let neededAppIcons = this.isGroupApps || !expectedAppInfos[i].windows.length ?
+ [{ app: expectedAppInfos[i].app, window: null, isLauncher: expectedAppInfos[i].isLauncher }] :
expectedAppInfos[i].windows.map(window => ({ app: expectedAppInfos[i].app, window: window, isLauncher: false }));
-
+
for (let j = 0, ll = neededAppIcons.length; j < ll; ++j) {
//check if the icon already exists
- let matchingAppIconIndex = Utils.findIndex(currentAppIcons, appIcon => appIcon.child._delegate.app == neededAppIcons[j].app &&
+ let matchingAppIconIndex = Utils.findIndex(currentAppIcons, appIcon => appIcon.child._delegate.app == neededAppIcons[j].app &&
appIcon.child._delegate.window == neededAppIcons[j].window);
if (matchingAppIconIndex > 0 && matchingAppIconIndex != currentPosition) {
@@ -969,10 +969,10 @@ export const Taskbar = class extends EventEmitter {
} else if (matchingAppIconIndex < 0) {
//the icon doesn't exist yet, create a new one
let newAppIcon = this._createAppItem(neededAppIcons[j].app, neededAppIcons[j].window, neededAppIcons[j].isLauncher);
-
+
this._box.insert_child_at_index(newAppIcon, currentPosition);
currentAppIcons.splice(currentPosition, 0, newAppIcon);
-
+
// Skip animations on first run when adding the initial set
// of items, to avoid all items zooming in at once
newAppIcon.show(this._shownInitially);
@@ -1011,14 +1011,14 @@ export const Taskbar = class extends EventEmitter {
apps.push(app);
}
}
-
+
return apps;
}
_createAppInfos(apps, defaultWindows, defaultIsLauncher) {
if (this.allowSplitApps && !defaultIsLauncher) {
let separateApps = []
-
+
if (apps.length) {
let tracker = Shell.WindowTracker.get_default();
let windows = AppIcons.getInterestingWindows(null, this.dtpPanel.monitor)
@@ -1029,8 +1029,8 @@ export const Taskbar = class extends EventEmitter {
if (apps.indexOf(windowApp) >= 0)
separateApps.push({
- app: windowApp,
- isLauncher: false,
+ app: windowApp,
+ isLauncher: false,
windows: [w]
})
})
@@ -1039,8 +1039,8 @@ export const Taskbar = class extends EventEmitter {
return separateApps
}
- return apps.map(app => ({
- app: app,
+ return apps.map(app => ({
+ app: app,
isLauncher: defaultIsLauncher || false,
windows: defaultWindows || AppIcons.getInterestingWindows(app, this.dtpPanel.monitor)
.sort(sortWindowsCompareFunction)
@@ -1129,10 +1129,10 @@ export const Taskbar = class extends EventEmitter {
let currentAppIcons = this._getAppIcons();
let sourceIndex = currentAppIcons.indexOf(source);
- let hoveredIndex = Utils.findIndex(currentAppIcons,
- appIcon => pos >= appIcon._dashItemContainer[posProp] &&
+ let hoveredIndex = Utils.findIndex(currentAppIcons,
+ appIcon => pos >= appIcon._dashItemContainer[posProp] &&
pos <= (appIcon._dashItemContainer[posProp] + appIcon._dashItemContainer[sizeProp]));
-
+
if (!this._dragInfo) {
this._dragInfo = [sourceIndex, source];
}
@@ -1145,13 +1145,13 @@ export const Taskbar = class extends EventEmitter {
// Don't allow positioning before or after self and between icons of same app if ungrouped and showing favorites
if (!(hoveredIndex === sourceIndex ||
(isLeft && hoveredIndex - 1 == sourceIndex) ||
- (!this.allowSplitApps && isLeft && hoveredIndex - 1 >= 0 && source.app != prevIcon.app &&
+ (!this.allowSplitApps && isLeft && hoveredIndex - 1 >= 0 && source.app != prevIcon.app &&
prevIcon.app == currentAppIcons[hoveredIndex].app) ||
(!isLeft && hoveredIndex + 1 == sourceIndex) ||
- (!this.allowSplitApps && !isLeft && hoveredIndex + 1 < currentAppIcons.length && source.app != nextIcon.app &&
+ (!this.allowSplitApps && !isLeft && hoveredIndex + 1 < currentAppIcons.length && source.app != nextIcon.app &&
nextIcon.app == currentAppIcons[hoveredIndex].app))) {
this._box.set_child_at_index(source._dashItemContainer, hoveredIndex);
-
+
// Ensure the next and previous icon are visible when moving the icon
// (I assume there's room for both of them)
if (hoveredIndex > 1)
@@ -1160,14 +1160,14 @@ export const Taskbar = class extends EventEmitter {
Utils.ensureActorVisibleInScrollView(this._scrollView, this._box.get_children()[hoveredIndex+1], this._scrollView._dtpFadeSize);
}
}
-
+
return this._dragInfo[0] !== sourceIndex ? DND.DragMotionResult.MOVE_DROP : DND.DragMotionResult.CONTINUE;
}
// Draggable target interface
acceptDrop (source, actor, x, y, time) {
// Don't allow favoriting of transient apps
- if (!this._dragInfo || !source.app || source.app.is_window_backed() ||
+ if (!this._dragInfo || !source.app || source.app.is_window_backed() ||
!this._settings.is_writable('favorite-apps')) {
return false;
}
@@ -1198,9 +1198,9 @@ export const Taskbar = class extends EventEmitter {
let appWindows = interestingWindows[app]; //prevents "reference to undefined property Symbol.toPrimitive" warning
return appWindows;
};
-
- if (sameApps.length &&
- ((!appIcons[sourceIndex - 1] || appIcons[sourceIndex - 1].app !== source.app) &&
+
+ if (sameApps.length &&
+ ((!appIcons[sourceIndex - 1] || appIcons[sourceIndex - 1].app !== source.app) &&
(!appIcons[sourceIndex + 1] || appIcons[sourceIndex + 1].app !== source.app))) {
appIcons.splice(appIcons.indexOf(sameApps[0]), sameApps.length);
Array.prototype.splice.apply(appIcons, [sourceIndex + 1, 0].concat(sameApps));
@@ -1208,15 +1208,15 @@ export const Taskbar = class extends EventEmitter {
for (let i = 0, l = appIcons.length; i < l; ++i) {
let windows = [];
-
+
if (!usingLaunchers || (!source.isLauncher && !appIcons[i].isLauncher)) {
windows = appIcons[i].window ? [appIcons[i].window] : getAppWindows(appIcons[i].app);
}
windows.forEach(w => w._dtpPosition = position++);
- if (this.showFavorites &&
- ((usingLaunchers && appIcons[i].isLauncher) ||
+ if (this.showFavorites &&
+ ((usingLaunchers && appIcons[i].isLauncher) ||
(!usingLaunchers && appFavorites.isFavorite(appIcons[i].app.get_id())))) {
++favoritesCount;
}
@@ -1255,10 +1255,10 @@ export const Taskbar = class extends EventEmitter {
SearchController._onStageKeyPress = function(actor, event) {
if (Main.modalCount == 1 && event.get_key_symbol() === Clutter.KEY_Escape) {
this._searchActive ? this.reset() : Main.overview.hide();
-
+
return Clutter.EVENT_STOP;
}
-
+
return Object.getPrototypeOf(this)._onStageKeyPress.call(this, actor, event);
};
@@ -1293,13 +1293,13 @@ export const Taskbar = class extends EventEmitter {
}
}
}
-
+
_syncShowAppsButtonToggled() {
let status = SearchController._showAppsButton.checked;
if (this.showAppsButton.checked !== status)
this.showAppsButton.checked = status;
}
-
+
showShowAppsButton() {
this.showAppsButton.visible = true;
this.showAppsButton.set_width(-1);
@@ -1374,7 +1374,7 @@ export const TaskbarItemContainer = GObject.registerClass({
let travel = iconAnimationSettings.travel;
let zoom = iconAnimationSettings.zoom;
- return this._dtpPanel.dtpSize * (travel + (zoom - 1) / 2);
+ return this._dtpPanel.dtpSize * Math.max(0, travel + (zoom - 1) / 2);
}
_updateCloneContainerPosition(cloneContainer) {
@@ -1470,10 +1470,10 @@ export const TaskbarItemContainer = GObject.registerClass({
let translationMax = (vertical ? width : height) * (travel + (zoom - 1) / 2);
let translationEnd = translationMax * level;
let translationDone = vertical ? this._raisedClone.translation_x : this._raisedClone.translation_y;
- let translationTodo = Math.abs(translationEnd - translationDone);
+ let translationTodo = Math.sign(travel)*Math.abs(translationEnd - translationDone);
let scale = 1 + (zoom - 1) * level;
let rotationAngleZ = rotationDirection * rotation * level;
- let time = duration * translationTodo / translationMax;
+ let time = Math.abs(duration * translationTodo / translationMax);
let options = {
scale_x: scale, scale_y: scale,
@@ -1524,7 +1524,7 @@ const DragPlaceholderItem = GObject.registerClass({
this.child = { _delegate: appIcon };
- this._clone = new Clutter.Clone({
+ this._clone = new Clutter.Clone({
source: appIcon.icon._iconBin,
width: iconSize,
height: iconSize
@@ -1541,7 +1541,7 @@ const DragPlaceholderItem = GObject.registerClass({
export function getAppStableSequence(app, monitor) {
let windows = AppIcons.getInterestingWindows(app, monitor);
-
+
return windows.reduce((prevWindow, window) => {
return Math.min(prevWindow, getWindowStableSequence(window));
}, Infinity);
@@ -1552,5 +1552,5 @@ export function sortWindowsCompareFunction(windowA, windowB) {
}
export function getWindowStableSequence(window) {
- return ('_dtpPosition' in window ? window._dtpPosition : window.get_stable_sequence());
+ return ('_dtpPosition' in window ? window._dtpPosition : window.get_stable_sequence());
}
diff --git a/ui/BoxAnimateAppIconHoverOptions.ui b/ui/BoxAnimateAppIconHoverOptions.ui
index f49e2d7..f0ab669 100644
--- a/ui/BoxAnimateAppIconHoverOptions.ui
+++ b/ui/BoxAnimateAppIconHoverOptions.ui
@@ -18,14 +18,14 @@
+
+ 0
+ App icon margin to desktop
+ Set the margin for application icons in the embedded dash towards the desktop (top margin if panel is on the bottom).
+
+
+ 0
+ App icon margin to screen border
+ Set the margin for application icons in the embedded dash towards the desktop (bottom margin if panel is on the bottom).
+
4
App icon padding
@@ -795,6 +805,22 @@
{'SIMPLE':1,'RIPPLE':1.25,'PLANK':2}
App icon hover animation zoom scale in relation to the app icon size
+
+ true
+ Highlight app icon on hover
+
+
+ "rgba(238, 238, 236, 0.1)"
+ Highlight color
+
+
+ "rgba(238, 238, 236, 0.18)"
+ Mouse down highlight color
+
+
+ 0
+ Highlight border radius
+
true
Integrate items from the gnome appmenu into the right click menu
diff --git a/stylesheet.css b/stylesheet.css
index 58d191a..fd05e22 100644
--- a/stylesheet.css
+++ b/stylesheet.css
@@ -39,24 +39,40 @@
}
#dashtopanelScrollview .overview-tile:hover .dtp-container,
-#dashtopanelScrollview .overview-tile:focus .dtp-container,
+#dashtopanelScrollview .overview-tile:focus .dtp-container {
+ background-color: rgba(238, 238, 236, 0.1);
+ border-radius: 0px;
+ background-color: var(--dtp-hover-background-color);
+ border-radius: var(--dtp-hover-border-radius);
+}
+
+#dashtopanelScrollview .overview-tile:hover .dtp-container > .dtp-dots-container,
+#dashtopanelScrollview .overview-tile:focus .dtp-container > .dtp-dots-container {
+ border-radius: 0px;
+ border-radius: var(--dtp-hover-border-radius);
+}
+
.dashtopanelMainPanel .dash-item-container .show-apps:hover {
background-color: rgba(238, 238, 238, 0.1);
}
-
.dashtopanelMainPanel .dash-item-container .show-apps .overview-icon {
color: #FFF;
}
-
-#dashtopanelTaskbar .dash-item-container .overview-tile:hover,
-#dashtopanelTaskbar .dash-item-container .overview-tile .dtp-container .overview-icon,
-#dashtopanelScrollview .overview-tile:hover .dtp-container.animate-appicon-hover,
.dashtopanelMainPanel .dash-item-container .show-apps:hover .overview-icon {
background: none;
}
+#dashtopanelTaskbar .dash-item-container .overview-tile:hover,
+#dashtopanelTaskbar .dash-item-container .overview-tile .dtp-container .overview-icon,
+#dashtopanelScrollview .overview-tile:hover .dtp-container.no-highlight,
+#dashtopanelScrollview .overview-tile:focus .dtp-container.no-highlight {
+ background: none;
+}
+
+
#dashtopanelScrollview .overview-tile:active .dtp-container {
background-color: rgba(238, 238, 236, 0.18);
+ background-color: var(--dtp-pressed-background-color);
}
#dashtopanelScrollview .overview-tile .favorite {
diff --git a/taskbar.js b/taskbar.js
index 54da64f..af08ccd 100644
--- a/taskbar.js
+++ b/taskbar.js
@@ -98,11 +98,11 @@ const iconAnimationSettings = {
},
get travel() {
- return Math.max(0, this._getDictValue('animate-appicon-hover-animation-travel'));
+ return Math.max(-1, this._getDictValue('animate-appicon-hover-animation-travel'));
},
get zoom() {
- return Math.max(1, this._getDictValue('animate-appicon-hover-animation-zoom'));
+ return Math.max(0.5, this._getDictValue('animate-appicon-hover-animation-zoom'));
},
};
@@ -154,7 +154,7 @@ export const TaskbarActor = GObject.registerClass({
leftFade.set_style(gradientStyle);
rightFade.set_style(gradientStyle);
}
-
+
childBox[panel.varCoord.c2] = childBox[panel.varCoord.c1] + (value > 0 ? scrollview._dtpFadeSize : 0);
leftFade.allocate(childBox);
@@ -168,13 +168,13 @@ export const TaskbarActor = GObject.registerClass({
// then calls BoxLayout)
vfunc_get_preferred_width(forHeight) {
let [, natWidth] = St.Widget.prototype.vfunc_get_preferred_width.call(this, forHeight);
-
+
return [0, natWidth];
}
vfunc_get_preferred_height(forWidth) {
let [, natHeight] = St.Widget.prototype.vfunc_get_preferred_height.call(this, forWidth);
-
+
return [0, natHeight];
}
});
@@ -199,7 +199,7 @@ export const Taskbar = class extends EventEmitter {
super();
this.dtpPanel = panel;
-
+
// start at smallest size due to running indicator drawing area expanding but not shrinking
this.iconSize = 16;
@@ -252,13 +252,13 @@ export const Taskbar = class extends EventEmitter {
this._container.add_child(new St.Widget({ width: 0, reactive: false }));
this._container.add_child(this._scrollView);
-
+
let orientation = panel.getOrientation();
let fadeStyle = 'background-gradient-direction:' + orientation;
let fade1 = new St.Widget({ style_class: 'scrollview-fade', reactive: false });
- let fade2 = new St.Widget({ style_class: 'scrollview-fade',
- reactive: false,
- pivot_point: new Graphene.Point({ x: .5, y: .5 }),
+ let fade2 = new St.Widget({ style_class: 'scrollview-fade',
+ reactive: false,
+ pivot_point: new Graphene.Point({ x: .5, y: .5 }),
rotation_angle_z: 180 });
fade1.set_style(fadeStyle);
@@ -278,7 +278,7 @@ export const Taskbar = class extends EventEmitter {
});
const adjustment = this._scrollView[orientation[0] + 'adjustment'];
-
+
this._workId = Main.initializeDeferredWork(this._box, this._redisplay.bind(this));
this._settings = new Gio.Settings({ schema_id: 'org.gnome.shell' });
@@ -318,7 +318,7 @@ export const Taskbar = class extends EventEmitter {
],
[
global.window_manager,
- 'switch-workspace',
+ 'switch-workspace',
() => this._connectWorkspaceSignals()
],
[
@@ -400,7 +400,7 @@ export const Taskbar = class extends EventEmitter {
let setAttributes = () => {
this.isGroupApps = SETTINGS.get_boolean('group-apps');
this.usingLaunchers = !this.isGroupApps && SETTINGS.get_boolean('group-apps-use-launchers');
- this.showFavorites = SETTINGS.get_boolean('show-favorites') &&
+ this.showFavorites = SETTINGS.get_boolean('show-favorites') &&
(this.dtpPanel.isPrimary || SETTINGS.get_boolean('show-favorites-all-monitors'))
this.showRunningApps = SETTINGS.get_boolean('show-running-apps')
this.allowSplitApps = this.usingLaunchers || (!this.isGroupApps && !this.showFavorites)
@@ -425,7 +425,7 @@ export const Taskbar = class extends EventEmitter {
this._signalsHandler = 0;
this._container.destroy();
-
+
this.previewMenu.disable();
this.previewMenu.destroy();
@@ -592,7 +592,7 @@ export const Taskbar = class extends EventEmitter {
if (this._dragInfo) {
this._box.set_child_at_index(this._dragInfo[1]._dashItemContainer, this._dragInfo[0]);
}
-
+
this._endDrag();
}
@@ -614,10 +614,10 @@ export const Taskbar = class extends EventEmitter {
this._clearEmptyDropTarget();
this._showAppsIcon.setDragApp(null);
DND.removeDragMonitor(this._dragMonitor);
-
+
this._dragMonitor = null;
this.emit('end-drag');
-
+
this._toggleFavoriteHighlight();
}
@@ -639,9 +639,9 @@ export const Taskbar = class extends EventEmitter {
_toggleFavoriteHighlight(show) {
let appFavorites = AppFavorites.getAppFavorites();
let cssFuncName = (show ? 'add' : 'remove') + '_style_class_name';
-
+
if (this.showFavorites)
- this._getAppIcons().filter(appIcon => (this.usingLaunchers && appIcon.isLauncher) ||
+ this._getAppIcons().filter(appIcon => (this.usingLaunchers && appIcon.isLauncher) ||
(!this.usingLaunchers && appFavorites.isFavorite(appIcon.app.get_id())))
.forEach(fav => fav._container[cssFuncName]('favorite'));
}
@@ -686,12 +686,12 @@ export const Taskbar = class extends EventEmitter {
_createAppItem(app, window, isLauncher) {
let appIcon = new AppIcons.TaskbarAppIcon(
{
- app,
+ app,
window,
isLauncher
},
this.dtpPanel,
- {
+ {
setSizeManually: true,
showLabel: false,
isDraggable: !SETTINGS.get_boolean('taskbar-locked'),
@@ -730,7 +730,7 @@ export const Taskbar = class extends EventEmitter {
appIcon.connect('notify::hover', () => {
if (appIcon.hover){
- this._timeoutsHandler.add([T1, 100,
+ this._timeoutsHandler.add([T1, 100,
() => Utils.ensureActorVisibleInScrollView(this._scrollView, appIcon, this._scrollView._dtpFadeSize)
])
@@ -761,7 +761,7 @@ export const Taskbar = class extends EventEmitter {
appIcon._menu._boxPointer.yOffset = -y_shift;
}
});
-
+
// Override default AppIcon label_actor, now the
// accessible_name is set at DashItemContainer.setLabelText
appIcon.label_actor = null;
@@ -863,13 +863,13 @@ export const Taskbar = class extends EventEmitter {
if (availSize < minIconSize) {
availSize = minIconSize;
}
-
+
// For the icon size, we only consider children which are "proper"
- // icons and which are not animating out (which means they will be
+ // icons and which are not animating out (which means they will be
// destroyed at the end of the animation)
let iconChildren = this._getTaskbarIcons().concat([this._showAppsIcon]);
let scale = this.iconSize / availSize;
-
+
this.iconSize = availSize;
for (let i = 0; i < iconChildren.length; i++) {
@@ -902,7 +902,7 @@ export const Taskbar = class extends EventEmitter {
}
sortAppsCompareFunction(appA, appB) {
- return getAppStableSequence(appA, this.dtpPanel.monitor) -
+ return getAppStableSequence(appA, this.dtpPanel.monitor) -
getAppStableSequence(appB, this.dtpPanel.monitor);
}
@@ -941,9 +941,9 @@ export const Taskbar = class extends EventEmitter {
(!this.allowSplitApps || this.isGroupApps || appInfo.windows[0] == appIcon.window) &&
appInfo.isLauncher == appIcon.isLauncher);
- if (appIndex < 0 ||
+ if (appIndex < 0 ||
(appIcon.window && (this.isGroupApps || expectedAppInfos[appIndex].windows.indexOf(appIcon.window) < 0)) ||
- (!appIcon.window && !appIcon.isLauncher &&
+ (!appIcon.window && !appIcon.isLauncher &&
!this.isGroupApps && expectedAppInfos[appIndex].windows.length)) {
currentAppIcons[i][this._shownInitially ? 'animateOutAndDestroy' : 'destroy']();
currentAppIcons.splice(i, 1);
@@ -953,13 +953,13 @@ export const Taskbar = class extends EventEmitter {
//if needed, reorder the existing appIcons and create the missing ones
let currentPosition = 0;
for (let i = 0, l = expectedAppInfos.length; i < l; ++i) {
- let neededAppIcons = this.isGroupApps || !expectedAppInfos[i].windows.length ?
- [{ app: expectedAppInfos[i].app, window: null, isLauncher: expectedAppInfos[i].isLauncher }] :
+ let neededAppIcons = this.isGroupApps || !expectedAppInfos[i].windows.length ?
+ [{ app: expectedAppInfos[i].app, window: null, isLauncher: expectedAppInfos[i].isLauncher }] :
expectedAppInfos[i].windows.map(window => ({ app: expectedAppInfos[i].app, window: window, isLauncher: false }));
-
+
for (let j = 0, ll = neededAppIcons.length; j < ll; ++j) {
//check if the icon already exists
- let matchingAppIconIndex = Utils.findIndex(currentAppIcons, appIcon => appIcon.child._delegate.app == neededAppIcons[j].app &&
+ let matchingAppIconIndex = Utils.findIndex(currentAppIcons, appIcon => appIcon.child._delegate.app == neededAppIcons[j].app &&
appIcon.child._delegate.window == neededAppIcons[j].window);
if (matchingAppIconIndex > 0 && matchingAppIconIndex != currentPosition) {
@@ -969,10 +969,10 @@ export const Taskbar = class extends EventEmitter {
} else if (matchingAppIconIndex < 0) {
//the icon doesn't exist yet, create a new one
let newAppIcon = this._createAppItem(neededAppIcons[j].app, neededAppIcons[j].window, neededAppIcons[j].isLauncher);
-
+
this._box.insert_child_at_index(newAppIcon, currentPosition);
currentAppIcons.splice(currentPosition, 0, newAppIcon);
-
+
// Skip animations on first run when adding the initial set
// of items, to avoid all items zooming in at once
newAppIcon.show(this._shownInitially);
@@ -1011,14 +1011,14 @@ export const Taskbar = class extends EventEmitter {
apps.push(app);
}
}
-
+
return apps;
}
_createAppInfos(apps, defaultWindows, defaultIsLauncher) {
if (this.allowSplitApps && !defaultIsLauncher) {
let separateApps = []
-
+
if (apps.length) {
let tracker = Shell.WindowTracker.get_default();
let windows = AppIcons.getInterestingWindows(null, this.dtpPanel.monitor)
@@ -1029,8 +1029,8 @@ export const Taskbar = class extends EventEmitter {
if (apps.indexOf(windowApp) >= 0)
separateApps.push({
- app: windowApp,
- isLauncher: false,
+ app: windowApp,
+ isLauncher: false,
windows: [w]
})
})
@@ -1039,8 +1039,8 @@ export const Taskbar = class extends EventEmitter {
return separateApps
}
- return apps.map(app => ({
- app: app,
+ return apps.map(app => ({
+ app: app,
isLauncher: defaultIsLauncher || false,
windows: defaultWindows || AppIcons.getInterestingWindows(app, this.dtpPanel.monitor)
.sort(sortWindowsCompareFunction)
@@ -1129,10 +1129,10 @@ export const Taskbar = class extends EventEmitter {
let currentAppIcons = this._getAppIcons();
let sourceIndex = currentAppIcons.indexOf(source);
- let hoveredIndex = Utils.findIndex(currentAppIcons,
- appIcon => pos >= appIcon._dashItemContainer[posProp] &&
+ let hoveredIndex = Utils.findIndex(currentAppIcons,
+ appIcon => pos >= appIcon._dashItemContainer[posProp] &&
pos <= (appIcon._dashItemContainer[posProp] + appIcon._dashItemContainer[sizeProp]));
-
+
if (!this._dragInfo) {
this._dragInfo = [sourceIndex, source];
}
@@ -1145,13 +1145,13 @@ export const Taskbar = class extends EventEmitter {
// Don't allow positioning before or after self and between icons of same app if ungrouped and showing favorites
if (!(hoveredIndex === sourceIndex ||
(isLeft && hoveredIndex - 1 == sourceIndex) ||
- (!this.allowSplitApps && isLeft && hoveredIndex - 1 >= 0 && source.app != prevIcon.app &&
+ (!this.allowSplitApps && isLeft && hoveredIndex - 1 >= 0 && source.app != prevIcon.app &&
prevIcon.app == currentAppIcons[hoveredIndex].app) ||
(!isLeft && hoveredIndex + 1 == sourceIndex) ||
- (!this.allowSplitApps && !isLeft && hoveredIndex + 1 < currentAppIcons.length && source.app != nextIcon.app &&
+ (!this.allowSplitApps && !isLeft && hoveredIndex + 1 < currentAppIcons.length && source.app != nextIcon.app &&
nextIcon.app == currentAppIcons[hoveredIndex].app))) {
this._box.set_child_at_index(source._dashItemContainer, hoveredIndex);
-
+
// Ensure the next and previous icon are visible when moving the icon
// (I assume there's room for both of them)
if (hoveredIndex > 1)
@@ -1160,14 +1160,14 @@ export const Taskbar = class extends EventEmitter {
Utils.ensureActorVisibleInScrollView(this._scrollView, this._box.get_children()[hoveredIndex+1], this._scrollView._dtpFadeSize);
}
}
-
+
return this._dragInfo[0] !== sourceIndex ? DND.DragMotionResult.MOVE_DROP : DND.DragMotionResult.CONTINUE;
}
// Draggable target interface
acceptDrop (source, actor, x, y, time) {
// Don't allow favoriting of transient apps
- if (!this._dragInfo || !source.app || source.app.is_window_backed() ||
+ if (!this._dragInfo || !source.app || source.app.is_window_backed() ||
!this._settings.is_writable('favorite-apps')) {
return false;
}
@@ -1198,9 +1198,9 @@ export const Taskbar = class extends EventEmitter {
let appWindows = interestingWindows[app]; //prevents "reference to undefined property Symbol.toPrimitive" warning
return appWindows;
};
-
- if (sameApps.length &&
- ((!appIcons[sourceIndex - 1] || appIcons[sourceIndex - 1].app !== source.app) &&
+
+ if (sameApps.length &&
+ ((!appIcons[sourceIndex - 1] || appIcons[sourceIndex - 1].app !== source.app) &&
(!appIcons[sourceIndex + 1] || appIcons[sourceIndex + 1].app !== source.app))) {
appIcons.splice(appIcons.indexOf(sameApps[0]), sameApps.length);
Array.prototype.splice.apply(appIcons, [sourceIndex + 1, 0].concat(sameApps));
@@ -1208,15 +1208,15 @@ export const Taskbar = class extends EventEmitter {
for (let i = 0, l = appIcons.length; i < l; ++i) {
let windows = [];
-
+
if (!usingLaunchers || (!source.isLauncher && !appIcons[i].isLauncher)) {
windows = appIcons[i].window ? [appIcons[i].window] : getAppWindows(appIcons[i].app);
}
windows.forEach(w => w._dtpPosition = position++);
- if (this.showFavorites &&
- ((usingLaunchers && appIcons[i].isLauncher) ||
+ if (this.showFavorites &&
+ ((usingLaunchers && appIcons[i].isLauncher) ||
(!usingLaunchers && appFavorites.isFavorite(appIcons[i].app.get_id())))) {
++favoritesCount;
}
@@ -1255,10 +1255,10 @@ export const Taskbar = class extends EventEmitter {
SearchController._onStageKeyPress = function(actor, event) {
if (Main.modalCount == 1 && event.get_key_symbol() === Clutter.KEY_Escape) {
this._searchActive ? this.reset() : Main.overview.hide();
-
+
return Clutter.EVENT_STOP;
}
-
+
return Object.getPrototypeOf(this)._onStageKeyPress.call(this, actor, event);
};
@@ -1293,13 +1293,13 @@ export const Taskbar = class extends EventEmitter {
}
}
}
-
+
_syncShowAppsButtonToggled() {
let status = SearchController._showAppsButton.checked;
if (this.showAppsButton.checked !== status)
this.showAppsButton.checked = status;
}
-
+
showShowAppsButton() {
this.showAppsButton.visible = true;
this.showAppsButton.set_width(-1);
@@ -1374,7 +1374,7 @@ export const TaskbarItemContainer = GObject.registerClass({
let travel = iconAnimationSettings.travel;
let zoom = iconAnimationSettings.zoom;
- return this._dtpPanel.dtpSize * (travel + (zoom - 1) / 2);
+ return this._dtpPanel.dtpSize * Math.max(0, travel + (zoom - 1) / 2);
}
_updateCloneContainerPosition(cloneContainer) {
@@ -1470,10 +1470,10 @@ export const TaskbarItemContainer = GObject.registerClass({
let translationMax = (vertical ? width : height) * (travel + (zoom - 1) / 2);
let translationEnd = translationMax * level;
let translationDone = vertical ? this._raisedClone.translation_x : this._raisedClone.translation_y;
- let translationTodo = Math.abs(translationEnd - translationDone);
+ let translationTodo = Math.sign(travel)*Math.abs(translationEnd - translationDone);
let scale = 1 + (zoom - 1) * level;
let rotationAngleZ = rotationDirection * rotation * level;
- let time = duration * translationTodo / translationMax;
+ let time = Math.abs(duration * translationTodo / translationMax);
let options = {
scale_x: scale, scale_y: scale,
@@ -1524,7 +1524,7 @@ const DragPlaceholderItem = GObject.registerClass({
this.child = { _delegate: appIcon };
- this._clone = new Clutter.Clone({
+ this._clone = new Clutter.Clone({
source: appIcon.icon._iconBin,
width: iconSize,
height: iconSize
@@ -1541,7 +1541,7 @@ const DragPlaceholderItem = GObject.registerClass({
export function getAppStableSequence(app, monitor) {
let windows = AppIcons.getInterestingWindows(app, monitor);
-
+
return windows.reduce((prevWindow, window) => {
return Math.min(prevWindow, getWindowStableSequence(window));
}, Infinity);
@@ -1552,5 +1552,5 @@ export function sortWindowsCompareFunction(windowA, windowB) {
}
export function getWindowStableSequence(window) {
- return ('_dtpPosition' in window ? window._dtpPosition : window.get_stable_sequence());
+ return ('_dtpPosition' in window ? window._dtpPosition : window.get_stable_sequence());
}
diff --git a/ui/BoxAnimateAppIconHoverOptions.ui b/ui/BoxAnimateAppIconHoverOptions.ui
index f49e2d7..f0ab669 100644
--- a/ui/BoxAnimateAppIconHoverOptions.ui
+++ b/ui/BoxAnimateAppIconHoverOptions.ui
@@ -18,14 +18,14 @@
- 0
+ -100
100
1
5
- 100
+ 10
250
1
5
diff --git a/ui/BoxHighlightAppIconHoverOptions.ui b/ui/BoxHighlightAppIconHoverOptions.ui
new file mode 100644
index 0000000..5b99fcf
--- /dev/null
+++ b/ui/BoxHighlightAppIconHoverOptions.ui
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+ 0
+ 10
+ 1
+ 2
+
+
+
+ vertical
+ 600
+ 24
+ 32
+ 32
+ 32
+ 32
+
+
+
+
+
+ Highlight AppIcon color
+
+
+ True
+ center
+ True
+
+
+
+
+
+
+ Pressed AppIcon color
+
+
+ True
+ center
+ True
+
+
+
+
+
+
+ Highlight AppIcon border radius
+ (default is 0)
+
+
+ 300
+ highlight_appicon_borderradius_adjustment
+ 0
+ 0
+ right
+ True
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ui/BoxShowDesktopOptions.ui b/ui/BoxShowDesktopOptions.ui
index be5d21c..e068126 100644
--- a/ui/BoxShowDesktopOptions.ui
+++ b/ui/BoxShowDesktopOptions.ui
@@ -52,7 +52,7 @@
Override Show Desktop line color
- >
+
True
center
True
diff --git a/ui/SettingsStyle.ui b/ui/SettingsStyle.ui
index abe5c34..b76c96c 100644
--- a/ui/SettingsStyle.ui
+++ b/ui/SettingsStyle.ui
@@ -9,6 +9,20 @@
0.1
+
+ 0.33
+ 1
+ 0.01
+ 0.1
+
+
+
+ 0.33
+ 1
+ 0.01
+ 0.1
+
+
0.33
1
@@ -42,7 +56,7 @@
AppIcon style
-
+
App Icon Margin
@@ -61,6 +75,42 @@
+
+
+ App Icon Margin Towards Desktop
+ (default is 0)
+
+
+ 300
+ appicon_margin_todesktop_adjustment
+ 0
+ 0
+ right
+ True
+
+
+
+
+
+
+
+
+ App Icon Margin Towards Screen Border
+ (default is 0)
+
+
+ 300
+ appicon_margin_toscreenborder_adjustment
+ 0
+ 0
+ right
+ True
+
+
+
+
+
+
App Icon Padding
@@ -104,6 +154,31 @@
+
+
+ Highlight hovering app icons
+
+
+ True
+ center
+
+
+ emblem-system-symbolic
+
+
+
+
+
+
+
+ center
+
+
+
+
+
Icon style
From 52bbc9870944014372622a52b38388172955757c Mon Sep 17 00:00:00 2001
From: Hirnmoder <19573355+Hirnmoder@users.noreply.github.com>
Date: Fri, 13 Sep 2024 08:07:03 +0200
Subject: [PATCH 04/18] Beautify DTP - Fix ugly icon animation when using
ungroup applications option
---
appIcons.js | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/appIcons.js b/appIcons.js
index 517cc5c..f767dd5 100644
--- a/appIcons.js
+++ b/appIcons.js
@@ -292,10 +292,11 @@ export const TaskbarAppIcon = GObject.registerClass({
// The source of the clone is this._dtpIconContainer,
// which contains the icon but no highlighting elements
// using this.actor directly would break DnD style.
+ let cloneSource = this._dtpIconContainer;
let clone = new Clutter.Clone({
- source: this._dtpIconContainer,
+ source: cloneSource,
x: this.child.x, y: this.child.y,
- width: this.child.width, height: this.child.height,
+ width: cloneSource.width, height: cloneSource.height,
pivot_point: new Graphene.Point({ x: 0.5, y: 0.5 }),
opacity: 255,
reactive: false,
From 56e1cfb542b244cb66a2f1db3354f77471b730ea Mon Sep 17 00:00:00 2001
From: Hirnmoder <19573355+Hirnmoder@users.noreply.github.com>
Date: Mon, 28 Oct 2024 07:53:12 +0100
Subject: [PATCH 05/18] Beautify DTP - Update missing file reference in
Makefile
---
Makefile | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
index 52bbefa..145ada5 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,7 @@
UUID = dash-to-panel@jderose9.github.com
BASE_MODULES = extension.js stylesheet.css metadata.json COPYING README.md
EXTRA_MODULES = appIcons.js panel.js panelManager.js proximity.js intellihide.js progress.js panelPositions.js panelSettings.js panelStyle.js overview.js taskbar.js transparency.js windowPreview.js prefs.js utils.js desktopIconsIntegration.js
-UI_MODULES = ui/BoxAdvancedOptions.ui ui/BoxAnimateAppIconHoverOptions.ui ui/BoxDotOptions.ui ui/BoxDynamicOpacityOptions.ui ui/BoxGroupAppsOptions.ui ui/BoxIntellihideOptions.ui ui/BoxMiddleClickOptions.ui ui/BoxOverlayShortcut.ui ui/BoxScrollIconOptions.ui ui/BoxScrollPanelOptions.ui ui/BoxSecondaryMenuOptions.ui ui/BoxShowApplicationsOptions.ui ui/BoxShowDesktopOptions.ui ui/BoxWindowPreviewOptions.ui ui/SettingsAbout.ui ui/SettingsAction.ui ui/SettingsBehavior.ui ui/SettingsFineTune.ui ui/SettingsPosition.ui ui/SettingsStyle.ui
+UI_MODULES = ui/BoxAdvancedOptions.ui ui/BoxAnimateAppIconHoverOptions.ui ui/BoxDotOptions.ui ui/BoxDynamicOpacityOptions.ui ui/BoxGroupAppsOptions.ui ui/BoxIntellihideOptions.ui ui/BoxMiddleClickOptions.ui ui/BoxOverlayShortcut.ui ui/BoxScrollIconOptions.ui ui/BoxScrollPanelOptions.ui ui/BoxSecondaryMenuOptions.ui ui/BoxShowApplicationsOptions.ui ui/BoxShowDesktopOptions.ui ui/BoxWindowPreviewOptions.ui ui/SettingsAbout.ui ui/SettingsAction.ui ui/SettingsBehavior.ui ui/SettingsFineTune.ui ui/SettingsPosition.ui ui/SettingsStyle.ui ui/BoxHighlightAppIconHoverOptions.ui
EXTRA_IMAGES = highlight_stacked_bg.svg highlight_stacked_bg_2.svg highlight_stacked_bg_3.svg
@@ -18,7 +18,7 @@ INSTALLNAME = dash-to-panel@jderose9.github.com
# The command line passed variable VERSION is used to set the version string
# in the metadata and in the generated zip-file. If no VERSION is passed, the
-# version is pulled from the latest git tag and the current commit SHA1 is
+# version is pulled from the latest git tag and the current commit SHA1 is
# added to the metadata
ifdef VERSION
ifdef TARGET
@@ -53,7 +53,7 @@ mergepo: potfile
./po/dash-to-panel.pot: $(TOLOCALIZE)
mkdir -p po
xgettext -k_ -kN_ -o po/dash-to-panel.pot --package-name "Dash To Panel" $(TOLOCALIZE) --from-code=UTF-8
-
+
for l in $(UI_MODULES) ; do \
intltool-extract --type=gettext/glade $$l; \
xgettext -k_ -kN_ -o po/dash-to-panel.pot $$l.h --join-existing --from-code=UTF-8; \
From 49c461d263f02885fe706441e884b238e7551610 Mon Sep 17 00:00:00 2001
From: Hirnmoder <19573355+Hirnmoder@users.noreply.github.com>
Date: Fri, 27 Dec 2024 16:21:52 +0100
Subject: [PATCH 06/18] Beautify DTP - Enable workaround for GTK < 4.16 even in
newer versions of GTK due to restrictions for GNOME extensions
---
appIcons.js | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/appIcons.js b/appIcons.js
index 4750fbb..36c9c2f 100644
--- a/appIcons.js
+++ b/appIcons.js
@@ -491,7 +491,9 @@ export const TaskbarAppIcon = GObject.registerClass({
}
_checkGtkVersion_cssVariables() {
- // Support for CSS variables will be added in GTK 4.16
+ // Support for CSS variables was added in GTK 4.16
+ // However, using them is still impossible within an extension [Gnome version 47]
+ return false;
return Gtk.get_major_version() >= 5 ||
(Gtk.get_major_version() == 4 && Gtk.get_minor_version() >= 16);
}
@@ -509,6 +511,8 @@ export const TaskbarAppIcon = GObject.registerClass({
_onAppIconPressedChanged_GtkWorkaround() {
if (this.pressed && this._appicon_pressedstyle) {
this._container.set_style(this._appicon_pressedstyle);
+ } else if (this.hover && this._appicon_hoverstyle) {
+ this._container.set_style(this._appicon_hoverstyle);
} else if(this._appicon_normalstyle) {
this._container.set_style(this._appicon_normalstyle);
} else {
From 2b6e93fbcead9625bacfc01326802aafdd45472b Mon Sep 17 00:00:00 2001
From: Hirnmoder <19573355+Hirnmoder@users.noreply.github.com>
Date: Thu, 9 Jan 2025 08:19:08 +0100
Subject: [PATCH 07/18] Beautify DTP - Fix unintended implicit array to string
conversion
---
appIcons.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/appIcons.js b/appIcons.js
index 36c9c2f..66c43d3 100644
--- a/appIcons.js
+++ b/appIcons.js
@@ -273,9 +273,9 @@ export const TaskbarAppIcon = GObject.registerClass({
];
if (!this._checkGtkVersion_cssVariables()) {
- this._dtpSettingsSignalIds += [
+ this._dtpSettingsSignalIds = this._dtpSettingsSignalIds.concat([
SETTINGS.connect('changed::highlight-appicon-hover-border-radius', () => this._setIconStyle(this._isFocusedWindow())),
- ];
+ ]);
}
this._progressIndicator = new Progress.ProgressIndicator(this, panel.progressManager);
From 7553a5e8540871161b26d1d9bdee5d8f9575690b Mon Sep 17 00:00:00 2001
From: Charles Gagnon
Date: Thu, 16 Jan 2025 23:34:53 -0500
Subject: [PATCH 08/18] Stop shaking
#2228
---
taskbar.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/taskbar.js b/taskbar.js
index 05c71b0..0f86e73 100644
--- a/taskbar.js
+++ b/taskbar.js
@@ -1331,6 +1331,7 @@ export const TaskbarItemContainer = GObject.registerClass({
_init() {
super._init()
+ this.x_expand = this.y_expand = false
}
vfunc_allocate(box) {
From a899ca30e74a76c3308598c477bed1b5b6444867 Mon Sep 17 00:00:00 2001
From: Jhonatan Seminario
Date: Thu, 2 Jan 2025 11:49:00 -0500
Subject: [PATCH 09/18] Add Spanish translations for "Quit Window" and "Quit
Windows"
---
po/es.po | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/po/es.po b/po/es.po
index 8f606c9..dfeb029 100644
--- a/po/es.po
+++ b/po/es.po
@@ -255,6 +255,12 @@ msgstr "Importar configuraciones"
msgid "Quit"
msgstr "Salir"
+#: appIcons.js:1497
+msgid "Quit %d Window"
+msgid_plural "Quit %d Windows"
+msgstr[0] "Cerrar %d ventana"
+msgstr[1] "Cerrar %d ventanas"
+
#: appIcons.js:1515
msgid "Windows"
msgstr "Ventanas"
From e88f294acafa238da313493f375503b8e6d27b25 Mon Sep 17 00:00:00 2001
From: Jozef Gaal
Date: Sat, 7 Dec 2024 02:11:51 +0100
Subject: [PATCH 10/18] Update Slovak translation
New strings translated and fixed some old translations
---
po/sk.po | 252 ++++++++++++++++++++-----------------------------------
1 file changed, 93 insertions(+), 159 deletions(-)
diff --git a/po/sk.po b/po/sk.po
index 85f157a..6e9235f 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -2,29 +2,30 @@
# Copyright (C) 2018
# This file is distributed under the same license as the dash-to-panel package.
# Jose Riha , 2021.
+# Jozef Gaal , 2024.
#
msgid ""
msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: Dash to Panel v67\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-08 08:31-0500\n"
-"PO-Revision-Date: 2021-08-05 14:16+0200\n"
-"Last-Translator: Jose Riha \n"
-"Language-Team: \n"
+"PO-Revision-Date: 2024-12-07 02:10+0100\n"
+"Last-Translator: Jozef Gaal \n"
+"Language-Team: Jozef Gaal \n"
"Language: sk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 3.0\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n>=2 && n<=4 ? 1 : 2);\n"
+"X-Generator: Poedit 3.4.2\n"
#: prefs.js:247
msgid "Show Desktop button height (px)"
-msgstr "Výška tlačidla plochy (px)"
+msgstr "Výška tlačidla zobrazenia plochy (px)"
#: prefs.js:247
msgid "Show Desktop button width (px)"
-msgstr "Šírka tlačidla plochy (px)"
+msgstr "Šírka tlačidla zobrazenia plochy (px)"
#: prefs.js:259
msgid "Unavailable when gnome-shell top panel is present"
@@ -78,11 +79,11 @@ msgstr "Zoznam úloh"
#: prefs.js:416
msgid "Date menu"
-msgstr "Menu hodín"
+msgstr "Ponuka dátumu"
#: prefs.js:417
msgid "System menu"
-msgstr "Systémové menu"
+msgstr "Ponuka systému"
#: prefs.js:418
msgid "Left box"
@@ -118,19 +119,19 @@ msgstr "Vyberte umiestnenie prvku"
#: prefs.js:443
msgid "Stacked to top"
-msgstr "Zvrchu"
+msgstr "Hore"
#: prefs.js:443
msgid "Stacked to left"
-msgstr "Zľava"
+msgstr "Vľavo"
#: prefs.js:444
msgid "Stacked to bottom"
-msgstr "Zdola"
+msgstr "Dole"
#: prefs.js:444
msgid "Stacked to right"
-msgstr "Sprava"
+msgstr "Vpravo"
#: prefs.js:445
msgid "Centered"
@@ -158,7 +159,7 @@ msgstr "Otvoriť ikonu"
#: prefs.js:577
msgid "Show Desktop options"
-msgstr "Nastavenia plochy"
+msgstr "Nastavenia tlačidla zobrazenia plochy"
#: prefs.js:661
#, javascript-format
@@ -168,7 +169,7 @@ msgstr "%d ms"
#: prefs.js:666
#, javascript-format
msgid "%d °"
-msgstr ""
+msgstr "%d °"
#: prefs.js:671 prefs.js:676
#, javascript-format
@@ -190,7 +191,7 @@ msgstr[2] "%d ikon"
#: prefs.js:782
msgid "Running Indicator Options"
-msgstr "Možnosti indikátora bežiacich aplikácií"
+msgstr "Možnosti indikátora činnosti"
#: prefs.js:928
msgid "Primary monitor"
@@ -234,7 +235,7 @@ msgstr "Nastavenie ďalších klávesových skratiek"
#: prefs.js:1898
msgid "Secondary Menu Options"
-msgstr "Nastavenie sekundárneho menu"
+msgstr "Možnosti sekundárnej ponuky"
#: prefs.js:1924 ui/SettingsFineTune.ui.h:22
msgid "Advanced Options"
@@ -327,7 +328,7 @@ msgstr "Zatiaľ nedostupné!"
#: ui/BoxAdvancedOptions.ui.h:2
msgid "For real..."
-msgstr ""
+msgstr "Naozaj..."
#: ui/BoxAnimateAppIconHoverOptions.ui.h:1
msgid "Animation type"
@@ -343,7 +344,7 @@ msgstr "Vlnenie"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:4
msgid "Plank"
-msgstr "Prekrytie"
+msgstr "Doska"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:5
msgid "Duration"
@@ -351,7 +352,7 @@ msgstr "Trvanie"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:6
msgid "Rotation"
-msgstr "Otočenie"
+msgstr "Otáčanie"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:7
msgid "Travel"
@@ -363,11 +364,11 @@ msgstr "Priblíženie"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:9
msgid "Convexity"
-msgstr "Vypuklina"
+msgstr "Vypuklosť"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:10
msgid "Extent"
-msgstr "Rozšírenie"
+msgstr "Rozsah"
#: ui/BoxDotOptions.ui.h:1
msgid "Highlight focused application"
@@ -453,7 +454,7 @@ msgstr "0"
#: ui/BoxDynamicOpacityOptions.ui.h:9
msgid "Opacity change animation duration (ms)"
-msgstr "Rýchlosť animácie zobrazenia/skrytia panela"
+msgstr "Dĺžka animácie zmeny priehľadnosti (ms)"
#: ui/BoxGroupAppsOptions.ui.h:1
msgid "Font size (px) of the application titles (default is 14)"
@@ -492,16 +493,12 @@ msgid "Font color of the minimized application titles"
msgstr "Farba písma názvu minimalizovanej aplikácie"
#: ui/BoxGroupAppsOptions.ui.h:10
-#, fuzzy
msgid "Maximum width (px) of the application titles"
-msgstr "Maximálna šírka (px) pre názov aplikácie (predvolená: 160)"
+msgstr "Maximálna šírka (px) pre názov aplikácie"
#: ui/BoxGroupAppsOptions.ui.h:11
-#, fuzzy
msgid "(default is 160)"
-msgstr ""
-"Dĺžka panela (%)\n"
-"(predvolená: 100)"
+msgstr "(predvolená je 160)"
#: ui/BoxGroupAppsOptions.ui.h:12
msgid "Use a fixed width for the application titles"
@@ -525,9 +522,8 @@ msgid "Use the favorite icons as application launchers"
msgstr "Použiť ikony obľúbených aplikácií ako spúšťače"
#: ui/BoxIntellihideOptions.ui.h:1
-#, fuzzy
msgid "Only hide the panel when it is obstructed by windows"
-msgstr "Skryť panel iba pri prekrytí oknami aplikácií "
+msgstr "Skryť panel len vtedy, keď je prekrytý oknami"
#: ui/BoxIntellihideOptions.ui.h:2
msgid "The panel hides from"
@@ -550,14 +546,12 @@ msgid "Allow the panel to be revealed while in fullscreen mode"
msgstr "Povoliť zobrazenie panela v režime celej obrazovky"
#: ui/BoxIntellihideOptions.ui.h:10
-#, fuzzy
msgid "Only hide secondary panels"
-msgstr "Skryť iba sekundárne panely (pre viac monitorov)"
+msgstr "Skryť iba sekundárne panely"
#: ui/BoxIntellihideOptions.ui.h:11
-#, fuzzy
msgid "(requires multi-monitors option)"
-msgstr "Skryť iba sekundárne panely (pre viac monitorov)"
+msgstr "(vyžaduje možnosť viacerých monitorov)"
#: ui/BoxIntellihideOptions.ui.h:12
msgid "Keyboard shortcut to reveal and hold the panel"
@@ -585,7 +579,7 @@ msgstr "Oneskorenie pred skrytím pri štarte (ms)"
#: ui/BoxMiddleClickOptions.ui.h:1
msgid "Shift+Click action"
-msgstr "Akcia pri Shift+Click"
+msgstr "Akcia pri Shift+Kliknutie"
#: ui/BoxMiddleClickOptions.ui.h:2
msgid ""
@@ -640,7 +634,7 @@ msgstr "Shift + prostredné tlačidlo myši."
#: ui/BoxOverlayShortcut.ui.h:1
msgid "Hotkeys prefix"
-msgstr "Skratka"
+msgstr "Predpona klávesových skratiek"
#: ui/BoxOverlayShortcut.ui.h:2
msgid "Hotkeys will either be Super+Number or Super+Alt+Num"
@@ -686,7 +680,7 @@ msgstr "Skratka pre zobrazenie prehľadu na 2 sekundy"
#: ui/BoxOverlayShortcut.ui.h:13
msgid "e.g. q"
-msgstr "napr: q"
+msgstr "napr. q"
#: ui/BoxOverlayShortcut.ui.h:14
msgid "Show window previews on hotkey"
@@ -735,16 +729,15 @@ msgstr ""
#: ui/BoxSecondaryMenuOptions.ui.h:1
msgid "Integrate AppMenu items"
-msgstr "Zobraziť položky menu aplikácie"
+msgstr "Integrovať položky ponuky aplikácií"
#: ui/BoxSecondaryMenuOptions.ui.h:2
msgid "Show Details menu item"
-msgstr "Zobraziť menu Detail"
+msgstr "Položka ponuky Zobraziť podrobnosti"
#: ui/BoxShowApplicationsOptions.ui.h:1
-#, fuzzy
msgid "Show Applications icon"
-msgstr "Zobraziť ikonu aplikácií"
+msgstr "Zobraziť ikonu aplikácií"
#: ui/BoxShowApplicationsOptions.ui.h:2
msgid "Show Applications icon side padding (px)"
@@ -756,7 +749,7 @@ msgstr "Zmeniť správanie klávesu Esc a vrátiť sa na plochu"
#: ui/BoxShowDesktopOptions.ui.h:1
msgid "Override Show Desktop line color"
-msgstr "Vlastná farba deliacej čiary plochy"
+msgstr "Prepísať farbu čiary tlačidla zobrazenia plochy"
#: ui/BoxShowDesktopOptions.ui.h:2
msgid "Reveal the desktop when hovering the Show Desktop button"
@@ -771,22 +764,20 @@ msgid "Fade duration (ms)"
msgstr "Skryť po (ms)"
#: ui/BoxWindowPreviewOptions.ui.h:1
-#, fuzzy
msgid "Time (ms) before showing"
-msgstr "Pauza (ms) pred zobrazením náhľadu (predvolená: 400)"
+msgstr "Čas (ms) pred zobrazením"
#: ui/BoxWindowPreviewOptions.ui.h:2
msgid "(400 is default)"
-msgstr ""
+msgstr "(400 is predvolené)"
#: ui/BoxWindowPreviewOptions.ui.h:3
-#, fuzzy
msgid "Time (ms) before hiding"
-msgstr "Pauza (ms) pred skrytím náhľadu (predvolená: 100)"
+msgstr "Čas (ms) pred skrytím"
#: ui/BoxWindowPreviewOptions.ui.h:4
msgid "(100 is default)"
-msgstr ""
+msgstr "(100 is predvolené)"
#: ui/BoxWindowPreviewOptions.ui.h:5
msgid "Immediate on application icon click"
@@ -909,10 +900,10 @@ msgid "Use custom opacity for the previews background"
msgstr "Použiť vlastné nastavenie priehľadnosti náhľadov"
#: ui/BoxWindowPreviewOptions.ui.h:35
-#, fuzzy
msgid ""
"If disabled, the previews background have the same opacity as the panel."
-msgstr "Pri vypnutí sa použije hodnota priehľadnosti panela"
+msgstr ""
+"Ak je vypnuté, pozadie náhľadov bude mať rovnakú nepriehľadnosť ako panel."
#: ui/BoxWindowPreviewOptions.ui.h:36
msgid "Close button and header position"
@@ -979,25 +970,23 @@ msgstr "Všetky okna, okrem aktívneho, majú rovnaké nastavenie priehľadnosti
#: ui/SettingsAbout.ui.h:1
msgid "Info"
-msgstr ""
+msgstr "Informácie"
#: ui/SettingsAbout.ui.h:2
-#, fuzzy
msgid "Version"
-msgstr "verzia: "
+msgstr "Verzia"
#: ui/SettingsAbout.ui.h:3
msgid "Source"
-msgstr ""
+msgstr "Zdroj"
#: ui/SettingsAbout.ui.h:4
msgid "GitHub"
msgstr "GitHub"
#: ui/SettingsAbout.ui.h:5
-#, fuzzy
msgid "Export and Import"
-msgstr "Export a import nastavení"
+msgstr "Export a import"
#: ui/SettingsAbout.ui.h:6
msgid "Export and import settings"
@@ -1042,13 +1031,12 @@ msgid "Toggle windows"
msgstr "Prepínanie okien"
#: ui/SettingsAction.ui.h:10
-#, fuzzy
msgid "Scroll action"
msgstr "Akcia kolieska myši"
#: ui/SettingsAction.ui.h:11
msgid "Scroll panel action"
-msgstr "Akcia panelu pri skrolovaní"
+msgstr "Akcia kolieska myši na paneli"
#: ui/SettingsAction.ui.h:12
msgid "Behavior when mouse scrolling over the panel."
@@ -1072,7 +1060,7 @@ msgstr "Upraviť hlasitosť"
#: ui/SettingsAction.ui.h:17
msgid "Scroll icon action"
-msgstr "Akcia kolieska myši"
+msgstr "Akcia kolieska myši na ikone"
#: ui/SettingsAction.ui.h:18
msgid "Behavior when mouse scrolling over an application icon."
@@ -1083,9 +1071,8 @@ msgid "Same as panel"
msgstr "Rovnaké ako panel"
#: ui/SettingsAction.ui.h:20
-#, fuzzy
msgid "Hotkey overlay"
-msgstr "Zobraziť číslo"
+msgstr "Klávesové skratky"
#: ui/SettingsAction.ui.h:21
msgid "Use hotkeys to activate apps"
@@ -1100,9 +1087,8 @@ msgstr ""
"použiť v kombinácií s Shift a Ctrl."
#: ui/SettingsBehavior.ui.h:1
-#, fuzzy
msgid "Applications"
-msgstr "Nezoskupené aplikácie"
+msgstr "Aplikácie"
#: ui/SettingsBehavior.ui.h:2
msgid "Show favorite applications"
@@ -1118,7 +1104,7 @@ msgstr "Zobraziť bežiace aplikácie"
#: ui/SettingsBehavior.ui.h:5
msgid "Show AppMenu button"
-msgstr "Zobraziť tlačidlo aplikácií"
+msgstr "Zobraziť tlačidlo ponuky aplikácií"
#: ui/SettingsBehavior.ui.h:6
msgid "Ungroup applications"
@@ -1126,7 +1112,7 @@ msgstr "Nezoskupené aplikácie"
#: ui/SettingsBehavior.ui.h:7
msgid "Show notification counter badge"
-msgstr ""
+msgstr "Zobraziť znak počítadla oznámení"
#: ui/SettingsBehavior.ui.h:8
msgid "Show window previews on hover"
@@ -1137,9 +1123,8 @@ msgid "Show tooltip on hover"
msgstr "Zobraziť tip okna pri podržaní myši"
#: ui/SettingsBehavior.ui.h:10
-#, fuzzy
msgid "Isolate"
-msgstr "Oddeliť monitory"
+msgstr "Oddeliť"
#: ui/SettingsBehavior.ui.h:11
msgid "Isolate Workspaces"
@@ -1151,7 +1136,7 @@ msgstr "Oddeliť monitory"
#: ui/SettingsBehavior.ui.h:13
msgid "Overview"
-msgstr ""
+msgstr "Prehľad"
#: ui/SettingsBehavior.ui.h:14
msgid "Click empty space to close overview"
@@ -1163,59 +1148,43 @@ msgstr "Vypnúť zobrazenie prehľadu po štarte"
#: ui/SettingsFineTune.ui.h:1
msgid "Font size"
-msgstr ""
+msgstr "Veľkosť písma"
#: ui/SettingsFineTune.ui.h:2
msgid "Tray Font Size"
-msgstr ""
+msgstr "Veľkosť písma systémového bloku"
#: ui/SettingsFineTune.ui.h:3
-#, fuzzy
msgid "(0 = theme default)"
-msgstr ""
-"Veľkosť písma stavovej oblasti\n"
-"(0 = určená motívom)"
+msgstr "(0 = predvolené témou)"
#: ui/SettingsFineTune.ui.h:4
-#, fuzzy
msgid "LeftBox Font Size"
-msgstr ""
-"Veľkosť písma ľavého bloku\n"
-"(0 = určená motívom)"
+msgstr "Veľkosť písma ľavého bloku"
#: ui/SettingsFineTune.ui.h:5
msgid "Padding"
-msgstr ""
+msgstr "Odsadenie"
#: ui/SettingsFineTune.ui.h:6
-#, fuzzy
msgid "Tray Item Padding"
-msgstr ""
-"Odsadenie položiek v systémovej oblasti\n"
-"(-1 = určené motívom)"
+msgstr "Odsadenie položky v systémovom bloku"
#: ui/SettingsFineTune.ui.h:7
-#, fuzzy
msgid "(-1 = theme default)"
-msgstr ""
-"Odsadenie v ľavom bloku\n"
-"(-1 = určené motívom)"
+msgstr "(-1 = predvolené témou)"
#: ui/SettingsFineTune.ui.h:8
-#, fuzzy
msgid "Status Icon Padding"
-msgstr ""
-"Odsadenie medzi stavovými ikonami\n"
-"(-1 = určené motívom)"
+msgstr "Odsadenie stavových ikon"
#: ui/SettingsFineTune.ui.h:9
msgid "LeftBox Padding"
-msgstr ""
+msgstr "Odsadenie ľavého bloku"
#: ui/SettingsFineTune.ui.h:10
-#, fuzzy
msgid "Animate"
-msgstr "Typ animácie"
+msgstr "Animovať"
#: ui/SettingsFineTune.ui.h:11
msgid "Animate switching applications"
@@ -1227,48 +1196,43 @@ msgstr "Animovať vytváranie nových okien"
#: ui/SettingsFineTune.ui.h:13
msgid "Gnome functionality"
-msgstr ""
+msgstr "Funkcionalita Gnome"
#: ui/SettingsFineTune.ui.h:14
-#, fuzzy
msgid "Keep original gnome-shell dash"
-msgstr "Ponechať pôvodný 'gnome-shell dash' (prehľad úloh)"
+msgstr "Ponechať pôvodný gnome-shell dash"
#: ui/SettingsFineTune.ui.h:15
msgid "(overview)"
-msgstr ""
+msgstr "(prehľad)"
#: ui/SettingsFineTune.ui.h:16
msgid "Keep original gnome-shell top panel"
msgstr "Ponechať pôvodný horný panel gnome-shell"
#: ui/SettingsFineTune.ui.h:17
-#, fuzzy
msgid "Activate panel menu buttons on click only"
-msgstr "Aktivovať tlačidlá na paneli iba po stlačení (napr. menu hodín)"
+msgstr "Aktivovať tlačidlá ponuky na paneli iba pri kliknutí"
#: ui/SettingsFineTune.ui.h:18
-#, fuzzy
msgid "(e.g. date menu)"
-msgstr "Menu hodín"
+msgstr "(napr. ponuka s dátumom)"
#: ui/SettingsFineTune.ui.h:19
msgid "Force Activities hot corner on primary monitor"
msgstr "Vynútiť aktívny roh na primárnom monitore"
#: ui/SettingsFineTune.ui.h:20
-#, fuzzy
msgid "App icon secondary menu"
-msgstr "Nastavenie pravého kliknutia na ikonu aplikácie"
+msgstr "Sekundárna ponuka ikony aplikácie"
#: ui/SettingsFineTune.ui.h:21
-#, fuzzy
msgid "(right-click menu)"
-msgstr "Nastavenie pravého kliknutia na ikonu aplikácie"
+msgstr "(ponuka pravého tlačidla myši)"
#: ui/SettingsPosition.ui.h:1
msgid "Panel"
-msgstr ""
+msgstr "Panel"
#: ui/SettingsPosition.ui.h:2
msgid "Display the main panel on"
@@ -1287,14 +1251,12 @@ msgid "Hide and reveal the panel according to preferences"
msgstr "Zobraziť/skryť panel podľa nastavení"
#: ui/SettingsPosition.ui.h:6
-#, fuzzy
msgid "Order and Position on monitors"
-msgstr "Poradie a pozícia na monitore"
+msgstr "Poradie a pozícia na monitoroch"
#: ui/SettingsPosition.ui.h:7
-#, fuzzy
msgid "Monitor"
-msgstr "Monitor "
+msgstr "Monitor"
#: ui/SettingsPosition.ui.h:8
msgid "Apply changes to all monitors"
@@ -1305,90 +1267,65 @@ msgid "Panel screen position"
msgstr "Pozícia panela na obrazovke"
#: ui/SettingsPosition.ui.h:14
-#, fuzzy
msgid "Panel thickness"
-msgstr ""
-"Šírka panela\n"
-"(predvolená: 48)"
+msgstr "Šírka panela"
#: ui/SettingsPosition.ui.h:15
-#, fuzzy
msgid "(default is 48)"
-msgstr ""
-"Šírka panela\n"
-"(predvolená: 48)"
+msgstr "(predvolená je 48)"
#: ui/SettingsPosition.ui.h:17
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Panel length (%)"
-msgstr ""
-"Dĺžka panela (%)\n"
-"(predvolená: 100)"
+msgstr "Dĺžka panela (%)"
#: ui/SettingsPosition.ui.h:18
-#, fuzzy
msgid "(default is 100)"
-msgstr ""
-"Dĺžka panela (%)\n"
-"(predvolená: 100)"
+msgstr "(predvolená je 100)"
#: ui/SettingsPosition.ui.h:19
msgid "Anchor"
msgstr "Ukotvenie"
#: ui/SettingsPosition.ui.h:23
-#, fuzzy
msgid "Taskbar Display"
-msgstr "Zoznam úloh"
+msgstr "Zobrazenie panela úloh"
#: ui/SettingsStyle.ui.h:1
msgid "AppIcon style"
-msgstr ""
+msgstr "Štýl ikony aplikácií"
#: ui/SettingsStyle.ui.h:2
-#, fuzzy
msgid "App Icon Margin"
-msgstr ""
-"Rozostup ikon aplikácií\n"
-"(predvolený: 8)"
+msgstr "Rozostup ikon aplikácií"
#: ui/SettingsStyle.ui.h:3
-#, fuzzy
msgid "(default is 8)"
-msgstr ""
-"Rozostup ikon aplikácií\n"
-"(predvolený: 8)"
+msgstr "(predvolené je 8)"
#: ui/SettingsStyle.ui.h:4
-#, fuzzy
msgid "App Icon Padding"
-msgstr ""
-"Odsadenie ikon aplikácií\n"
-"(predvolené: 4)"
+msgstr "Odsadenie ikon aplikácií"
#: ui/SettingsStyle.ui.h:5
-#, fuzzy
msgid "(default is 4)"
-msgstr ""
-"Odsadenie ikon aplikácií\n"
-"(predvolené: 4)"
+msgstr "(predvolené je 4)"
#: ui/SettingsStyle.ui.h:6
msgid "Animate hovering app icons"
msgstr "Animovať prepínanie medzi ikonami aplikácií"
#: ui/SettingsStyle.ui.h:7
-#, fuzzy
msgid "Running indicator"
-msgstr "Pozícia indikátora"
+msgstr "Indikátor činnosti"
#: ui/SettingsStyle.ui.h:8
msgid "Running indicator position"
-msgstr "Pozícia indikátora"
+msgstr "Pozícia indikátora činnosti"
#: ui/SettingsStyle.ui.h:13
msgid "Running indicator style (Focused app)"
-msgstr "Štýl indikátora bežiacich aplikácií (na popredí)"
+msgstr "Štýl indikátora bežiacich aplikácií (na popredí)činnosti"
#: ui/SettingsStyle.ui.h:14
msgid "Dots"
@@ -1404,7 +1341,7 @@ msgstr "Čiarky"
#: ui/SettingsStyle.ui.h:17
msgid "Segmented"
-msgstr "Segmenty"
+msgstr "Segmentované"
#: ui/SettingsStyle.ui.h:18
msgid "Solid"
@@ -1423,18 +1360,16 @@ msgid "Running indicator style (Unfocused apps)"
msgstr "Štýl indikátora bežiacich aplikácií (na pozadí)"
#: ui/SettingsStyle.ui.h:22
-#, fuzzy
msgid "Panel style"
-msgstr "Inteligentné skrývanie (Intellihide)"
+msgstr "Štýl panelu"
#: ui/SettingsStyle.ui.h:23
-#, fuzzy
msgid "Override panel theme background color"
-msgstr "Vlastná farba pozadia panela (ignorovať motív) "
+msgstr "Prepísať farbu pozadia témy panela"
#: ui/SettingsStyle.ui.h:24
msgid "Override panel theme background opacity"
-msgstr "Vlastná priehľadnosť panela (ignorovať motív)"
+msgstr "Prepísať nepriehľadnosť pozadia témy panela"
#: ui/SettingsStyle.ui.h:26
#, no-c-format
@@ -1450,9 +1385,8 @@ msgid "Change opacity when a window gets close to the panel"
msgstr "Zmeniť priehľadnosť pri priblížení okna"
#: ui/SettingsStyle.ui.h:30
-#, fuzzy
msgid "Override panel theme gradient"
-msgstr "Vlastné nastavenie farebného prechodu panela (ignorovať motív) "
+msgstr "Prepísať gradient témy panela"
#: ui/SettingsStyle.ui.h:32
#, no-c-format
From 402ff93febac16120a229b9df457bda21d182e47 Mon Sep 17 00:00:00 2001
From: alewicki95 <160427461+alewicki95@users.noreply.github.com>
Date: Wed, 16 Oct 2024 17:59:11 +0200
Subject: [PATCH 11/18] Add files via upload
---
po/pl.po | 26 +++++++++++++++++++-------
1 file changed, 19 insertions(+), 7 deletions(-)
diff --git a/po/pl.po b/po/pl.po
index 905c61c..656895c 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -20,11 +20,11 @@ msgstr ""
#: prefs.js:247
msgid "Show Desktop button height (px)"
-msgstr "Wysokość przycisku Pokaż pulpit (px)"
+msgstr "Wysokość przycisku Pokaż pulpit (px)"
+msgstr "Szerokość przycisku Pokaż pulpit (px)"
#: prefs.js:259
msgid "Unavailable when gnome-shell top panel is present"
@@ -70,7 +70,7 @@ msgstr "Opcje wyświetlania programów"
#: prefs.js:414
msgid "Activities button"
-msgstr "Pokaż przycisk Podgląd"
+msgstr "Przycisk Podgląd"
#: prefs.js:415
msgid "Taskbar"
@@ -98,7 +98,7 @@ msgstr "Po prawej"
#: prefs.js:421
msgid "Desktop button"
-msgstr "Pokaż przycisk Pulpit"
+msgstr "Przycisk Pulpit"
#: prefs.js:427
msgid "Move up"
@@ -731,7 +731,7 @@ msgstr "Ma wpływ na wyskakujące okno w przestrzeni roboczej tylko na panelu"
#: ui/BoxSecondaryMenuOptions.ui.h:1
msgid "Integrate AppMenu items"
-msgstr "Zintegruj elementy menu programów"
+msgstr "Zintegruj elementy Menu programów"
#: ui/BoxSecondaryMenuOptions.ui.h:2
msgid "Show Details menu item"
@@ -743,7 +743,7 @@ msgstr "Opcje wyświetlania programów"
#: ui/BoxShowApplicationsOptions.ui.h:2
msgid "Show Applications icon side padding (px)"
-msgstr "Wewnętrzny margines przycisku Pokaż programy (px)"
+msgstr "Wewnętrzny margines przycisku Pokaż programy (px)"
#: ui/BoxShowApplicationsOptions.ui.h:4
msgid "Override escape key and return to desktop"
@@ -755,7 +755,7 @@ msgstr "Nadpisz kolor przycisku Pokaż pulpit"
#: ui/BoxShowDesktopOptions.ui.h:2
msgid "Reveal the desktop when hovering the Show Desktop button"
-msgstr "Pokaż pulpit po najechaniu na przycisk Pokaż pulpit"
+msgstr "Pokaż pulpit po najechaniu na przycisk Pokaż pulpit"
#: ui/BoxShowDesktopOptions.ui.h:3
msgid "Delay before revealing the desktop (ms)"
@@ -1549,6 +1549,18 @@ msgstr "Gradient dolnego koloru i przeźroczystość (%)"
#~ msgid "Fine-Tune"
#~ msgstr "Dostrajanie"
+#~ msgid "Position"
+#~ msgstr "Pozycja"
+
+#~ msgid "Icon style"
+#~ msgstr "Styl ikony"
+
+#~ msgid "Normal"
+#~ msgstr "Normalna"
+
+#~ msgid "Symbolic"
+#~ msgstr "Symboliczna"
+
#~ msgid ""
#~ "This allows you to update the extension directly from the GitHub "
#~ "repository."
From 8b427693cfd0849ae2e2457b91a7147cffb05e21 Mon Sep 17 00:00:00 2001
From: Delphin PETER
Date: Sun, 29 Sep 2024 16:05:30 +0200
Subject: [PATCH 12/18] Update french translation
---
po/fr.po | 889 +++++++++++++++++++++++++++++--------------------------
1 file changed, 474 insertions(+), 415 deletions(-)
diff --git a/po/fr.po b/po/fr.po
index ca62da1..a783e91 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,205 +7,300 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: unnamed project\n"
+"Project-Id-Version: DAsh To PAnel\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-02-08 08:31-0500\n"
-"PO-Revision-Date: 2023-02-08 12:15-0500\n"
-"Last-Translator: Charles Gagnon \n"
-"Language-Team: French - Canada <>\n"
-"Language: fr_CA\n"
+"POT-Creation-Date: 2024-09-29 15:58+0200\n"
+"PO-Revision-Date: 2024-09-29 16:02+0200\n"
+"Last-Translator: Delphin PETER\n"
+"Language-Team: French\n"
+"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Gtranslator 42.0\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Poedit 3.4.2\n"
+"X-Poedit-Basepath: ..\n"
+"X-Poedit-SearchPath-0: ui\n"
+"X-Poedit-SearchPath-1: windowPreview.js\n"
+"X-Poedit-SearchPath-2: utils.js\n"
+"X-Poedit-SearchPath-3: transparency.js\n"
+"X-Poedit-SearchPath-4: taskbar.js\n"
+"X-Poedit-SearchPath-5: proximity.js\n"
+"X-Poedit-SearchPath-6: progress.js\n"
+"X-Poedit-SearchPath-7: prefs.js\n"
+"X-Poedit-SearchPath-8: panelStyle.js\n"
+"X-Poedit-SearchPath-9: panelSettings.js\n"
+"X-Poedit-SearchPath-10: panelPositions.js\n"
+"X-Poedit-SearchPath-11: panelManager.js\n"
+"X-Poedit-SearchPath-12: panel.js\n"
+"X-Poedit-SearchPath-13: overview.js\n"
+"X-Poedit-SearchPath-14: intellihide.js\n"
+"X-Poedit-SearchPath-15: extension.js\n"
+"X-Poedit-SearchPath-16: desktopIconsIntegration.js\n"
+"X-Poedit-SearchPath-17: appIcons.js\n"
-#: prefs.js:247
+#: appIcons.js:1485 appIcons.js:1495 ui/BoxMiddleClickOptions.ui:32
+#: ui/BoxMiddleClickOptions.ui:60 ui/BoxMiddleClickOptions.ui:88
+msgid "Quit"
+msgstr "Quitter"
+
+#: appIcons.js:1497
+#, javascript-format
+msgid "Quit %d Window"
+msgid_plural "Quit %d Windows"
+msgstr[0] "Fermer %d fenêtre"
+msgstr[1] "Fermer %d fenêtres"
+
+#: appIcons.js:1772
+msgid "Power options"
+msgstr "Options d'alimentation"
+
+#: appIcons.js:1777
+msgid "Event logs"
+msgstr "Journaux d'évènements"
+
+#: appIcons.js:1782
+msgid "System"
+msgstr "Système"
+
+#: appIcons.js:1787
+msgid "Device Management"
+msgstr "Gestionnaire de périphériques"
+
+#: appIcons.js:1792
+msgid "Disk Management"
+msgstr "Gestionnaire de disques"
+
+#: appIcons.js:1805
+msgid "Terminal"
+msgstr "Terminal"
+
+#: appIcons.js:1810
+msgid "System monitor"
+msgstr "Moniteur système"
+
+#: appIcons.js:1815
+msgid "Files"
+msgstr "Fichiers"
+
+#: appIcons.js:1820
+msgid "Extensions"
+msgstr "Extensions"
+
+#: appIcons.js:1825
+msgid "Settings"
+msgstr "Paramètres"
+
+#: appIcons.js:1836
+msgid "Unlock taskbar"
+msgstr "Déverrouiller la barre des tâches"
+
+#: appIcons.js:1836
+msgid "Lock taskbar"
+msgstr "Verrouiller la barre des tâches"
+
+#: appIcons.js:1841
+msgid "Dash to Panel Settings"
+msgstr "Paramètres Dash to Panel"
+
+#: appIcons.js:1846
+msgid "Restore Windows"
+msgstr "Restaurer les fenêtres"
+
+#: appIcons.js:1846
+msgid "Show Desktop"
+msgstr "Afficher le bureau"
+
+#: panel.js:171
+msgid "Top Bar"
+msgstr "Panneau du haut"
+
+#: prefs.js:246
msgid "Show Desktop button height (px)"
msgstr "Hauteur du bouton Afficher le Bureau (px)"
-#: prefs.js:247
+#: prefs.js:246
msgid "Show Desktop button width (px)"
msgstr "Longueur du bouton Afficher le Bureau (px)"
-#: prefs.js:259
+#: prefs.js:258
msgid "Unavailable when gnome-shell top panel is present"
msgstr "Indisponible quand le panneau de gnome-shell est présent"
-#: prefs.js:317 ui/SettingsPosition.ui.h:12 ui/SettingsStyle.ui.h:11
+#: prefs.js:316 ui/SettingsPosition.ui:148 ui/SettingsStyle.ui:149
msgid "Left"
msgstr "Gauche"
-#: prefs.js:318
+#: prefs.js:317
msgid "Center"
msgstr "Centre"
-#: prefs.js:319 ui/SettingsPosition.ui.h:13 ui/SettingsStyle.ui.h:12
+#: prefs.js:318 ui/SettingsPosition.ui:157 ui/SettingsStyle.ui:157
msgid "Right"
msgstr "Droit"
-#: prefs.js:321 ui/BoxWindowPreviewOptions.ui.h:38 ui/SettingsPosition.ui.h:11
-#: ui/SettingsStyle.ui.h:10
+#: prefs.js:320 ui/BoxWindowPreviewOptions.ui:330 ui/SettingsPosition.ui:139
+#: ui/SettingsStyle.ui:141
msgid "Top"
msgstr "Haut"
-#: prefs.js:322 prefs.js:327 ui/SettingsPosition.ui.h:21
+#: prefs.js:321 prefs.js:326 ui/SettingsPosition.ui:210
msgid "Middle"
msgstr "Milieu"
-#: prefs.js:323 ui/BoxWindowPreviewOptions.ui.h:37 ui/SettingsPosition.ui.h:10
-#: ui/SettingsStyle.ui.h:9
+#: prefs.js:322 ui/BoxWindowPreviewOptions.ui:321 ui/SettingsPosition.ui:130
+#: ui/SettingsStyle.ui:134
msgid "Bottom"
msgstr "Bas"
-#: prefs.js:326 ui/SettingsPosition.ui.h:20
+#: prefs.js:325 ui/SettingsPosition.ui:209
msgid "Start"
msgstr "Début"
-#: prefs.js:328 ui/SettingsPosition.ui.h:22
+#: prefs.js:327 ui/SettingsPosition.ui:211
msgid "End"
msgstr "Fin"
-#: prefs.js:413
+#: prefs.js:412
msgid "Show Applications button"
msgstr "Bouton Afficher les Applications"
-#: prefs.js:414
+#: prefs.js:413
msgid "Activities button"
msgstr "Bouton Activités"
-#: prefs.js:415
+#: prefs.js:414
msgid "Taskbar"
msgstr "Barre des tâches"
-#: prefs.js:416
+#: prefs.js:415
msgid "Date menu"
msgstr "Horloge"
-#: prefs.js:417
+#: prefs.js:416
msgid "System menu"
msgstr "Menu système"
-#: prefs.js:418
+#: prefs.js:417
msgid "Left box"
msgstr "Zone gauche"
-#: prefs.js:419
+#: prefs.js:418
msgid "Center box"
msgstr "Zone centre"
-#: prefs.js:420
+#: prefs.js:419
msgid "Right box"
msgstr "Zone droite"
-#: prefs.js:421
+#: prefs.js:420
msgid "Desktop button"
msgstr "Bouton Afficher le Bureau"
-#: prefs.js:427
+#: prefs.js:426
msgid "Move up"
msgstr "Déplacer vers le haut"
-#: prefs.js:429
+#: prefs.js:428
msgid "Move down"
msgstr "Déplacer vers le bas"
-#: prefs.js:431
+#: prefs.js:430
msgid "Visible"
msgstr "Visible"
-#: prefs.js:432
+#: prefs.js:431
msgid "Select element position"
msgstr "Sélectionner la position de l'élément"
-#: prefs.js:443
+#: prefs.js:442
msgid "Stacked to top"
msgstr "Empilé en haut"
-#: prefs.js:443
+#: prefs.js:442
msgid "Stacked to left"
msgstr "Empilé à gauche"
-#: prefs.js:444
+#: prefs.js:443
msgid "Stacked to bottom"
msgstr "Empilé en bas"
-#: prefs.js:444
+#: prefs.js:443
msgid "Stacked to right"
msgstr "Empilé à droite"
-#: prefs.js:445
+#: prefs.js:444
msgid "Centered"
msgstr "Centré"
-#: prefs.js:446
+#: prefs.js:445
msgid "Monitor Center"
msgstr "Centre de l'écran "
-#: prefs.js:465
+#: prefs.js:464
msgid "More options"
msgstr "Plus d'options"
-#: prefs.js:497
+#: prefs.js:496
msgid "Reset to defaults"
msgstr "Restaurer paramètres"
-#: prefs.js:520
+#: prefs.js:519
msgid "Show Applications options"
msgstr "Options du bouton Afficher les Applications"
-#: prefs.js:530
+#: prefs.js:529
msgid "Open icon"
msgstr "Choisir l'icône"
-#: prefs.js:577
+#: prefs.js:576
msgid "Show Desktop options"
msgstr "Options du bouton Afficher le Bureau"
-#: prefs.js:661
+#: prefs.js:660
#, javascript-format
msgid "%d ms"
msgstr "%d ms"
-#: prefs.js:666
+#: prefs.js:665
#, javascript-format
msgid "%d °"
msgstr "%d °"
-#: prefs.js:671 prefs.js:676
+#: prefs.js:670 prefs.js:675
#, javascript-format
msgid "%d %%"
msgstr "%d %%"
-#: prefs.js:681
+#: prefs.js:680
#, javascript-format
msgid "%.1f"
msgstr "%.1f"
-#: prefs.js:686
+#: prefs.js:685
#, javascript-format
msgid "%d icon"
msgid_plural "%d icons"
msgstr[0] "%d icône"
msgstr[1] "%d icônes"
-#: prefs.js:782
+#: prefs.js:787
msgid "Running Indicator Options"
msgstr "Options de l'indicateur d'activité"
-#: prefs.js:928
+#: prefs.js:933
msgid "Primary monitor"
msgstr "Écran principal"
-#: prefs.js:928
+#: prefs.js:933
msgid "Monitor "
msgstr "Écran "
-#: prefs.js:1122
+#: prefs.js:1127
msgid "Dynamic opacity options"
msgstr "Options d'opacité dynamique"
-#: prefs.js:1255
+#: prefs.js:1260
msgid "Intellihide options"
msgstr "Options du masquage intelligent"
@@ -237,274 +332,205 @@ msgstr "Raccourcis avancés"
msgid "Secondary Menu Options"
msgstr "Options du menu secondaire"
-#: prefs.js:1924 ui/SettingsFineTune.ui.h:22
+#: prefs.js:1925 ui/SettingsFineTune.ui:268
msgid "Advanced Options"
msgstr "Options avancées"
-#: prefs.js:2040
+#: prefs.js:2041
msgid "App icon animation options"
msgstr "Options d'animation des icônes d'application"
-#: prefs.js:2088
+#: prefs.js:2089
msgid "Export settings"
msgstr "Exporter les paramètres"
-#: prefs.js:2104
+#: prefs.js:2105
msgid "Import settings"
msgstr "Importer des paramètres"
-#: appIcons.js:1503 appIcons.js:1513 appIcons.js:1515
-#: ui/BoxMiddleClickOptions.ui.h:10
-msgid "Quit"
-msgstr "Quitter"
-
-#: appIcons.js:1515
-msgid "Windows"
-msgstr "Fenêtres"
-
-#: appIcons.js:1786
-msgid "Power options"
-msgstr "Options d'alimentation"
-
-#: appIcons.js:1791
-msgid "Event logs"
-msgstr "Journaux d'évènements"
-
-#: appIcons.js:1796
-msgid "System"
-msgstr "Système"
-
-#: appIcons.js:1801
-msgid "Device Management"
-msgstr "Gestionnaire de périphériques"
-
-#: appIcons.js:1806
-msgid "Disk Management"
-msgstr "Gestionnaire de disques"
-
-#: appIcons.js:1819
-msgid "Terminal"
-msgstr "Terminal"
-
-#: appIcons.js:1824
-msgid "System monitor"
-msgstr "Moniteur système"
-
-#: appIcons.js:1829
-msgid "Files"
-msgstr "Fichiers"
-
-#: appIcons.js:1834
-msgid "Extensions"
-msgstr "Extensions"
-
-#: appIcons.js:1839
-msgid "Settings"
-msgstr "Paramètres"
-
-#: appIcons.js:1850
-msgid "Unlock taskbar"
-msgstr "Déverrouiller la barre des tâches"
-
-#: appIcons.js:1850
-msgid "Lock taskbar"
-msgstr "Verrouiller la barre des tâches"
-
-#: appIcons.js:1855
-msgid "Dash to Panel Settings"
-msgstr "Paramètres Dash to Panel"
-
-#: appIcons.js:1860
-msgid "Restore Windows"
-msgstr "Restaurer les fenêtres"
-
-#: appIcons.js:1860
-msgid "Show Desktop"
-msgstr "Afficher le bureau"
-
-#: ui/BoxAdvancedOptions.ui.h:1
+#: ui/BoxAdvancedOptions.ui:19
msgid "Nothing yet!"
msgstr "Rien pour l'instant !"
-#: ui/BoxAdvancedOptions.ui.h:2
+#: ui/BoxAdvancedOptions.ui:20
msgid "For real..."
msgstr "Pour vrai..."
-#: ui/BoxAnimateAppIconHoverOptions.ui.h:1
+#: ui/BoxAnimateAppIconHoverOptions.ui:62
msgid "Animation type"
msgstr "Type d'animation"
-#: ui/BoxAnimateAppIconHoverOptions.ui.h:2
+#: ui/BoxAnimateAppIconHoverOptions.ui:67
msgid "Simple"
msgstr "Simple"
-#: ui/BoxAnimateAppIconHoverOptions.ui.h:3
+#: ui/BoxAnimateAppIconHoverOptions.ui:68
msgid "Ripple"
msgstr "Ondulation"
-#: ui/BoxAnimateAppIconHoverOptions.ui.h:4
+#: ui/BoxAnimateAppIconHoverOptions.ui:69
msgid "Plank"
msgstr "Planche"
-#: ui/BoxAnimateAppIconHoverOptions.ui.h:5
+#: ui/BoxAnimateAppIconHoverOptions.ui:84
msgid "Duration"
msgstr "Durée"
-#: ui/BoxAnimateAppIconHoverOptions.ui.h:6
+#: ui/BoxAnimateAppIconHoverOptions.ui:101
msgid "Rotation"
msgstr "Rotation"
-#: ui/BoxAnimateAppIconHoverOptions.ui.h:7
+#: ui/BoxAnimateAppIconHoverOptions.ui:118
msgid "Travel"
msgstr "Déplacement"
-#: ui/BoxAnimateAppIconHoverOptions.ui.h:8
+#: ui/BoxAnimateAppIconHoverOptions.ui:135
msgid "Zoom"
msgstr "Zoom"
-#: ui/BoxAnimateAppIconHoverOptions.ui.h:9
+#: ui/BoxAnimateAppIconHoverOptions.ui:152
msgid "Convexity"
msgstr "Convexité"
-#: ui/BoxAnimateAppIconHoverOptions.ui.h:10
+#: ui/BoxAnimateAppIconHoverOptions.ui:169
msgid "Extent"
msgstr "Étendue"
-#: ui/BoxDotOptions.ui.h:1
+#: ui/BoxDotOptions.ui:37
msgid "Highlight focused application"
msgstr "Surligner l'application active"
-#: ui/BoxDotOptions.ui.h:2
+#: ui/BoxDotOptions.ui:54
msgid "Icon dominant color"
msgstr "Couleur d'icône dominante"
-#: ui/BoxDotOptions.ui.h:3
+#: ui/BoxDotOptions.ui:65
msgid "Custom color"
msgstr "Couleur personnalisée"
-#: ui/BoxDotOptions.ui.h:4
+#: ui/BoxDotOptions.ui:76
msgid "Highlight opacity"
msgstr "Opacité du surlignement"
-#: ui/BoxDotOptions.ui.h:5
+#: ui/BoxDotOptions.ui:96
msgid "Indicator size (px)"
msgstr "Taille de l'indicateur (px)"
-#: ui/BoxDotOptions.ui.h:6
+#: ui/BoxDotOptions.ui:109
msgid "Indicator color - Icon Dominant"
msgstr "Couleur de l'indicateur - Icône dominante"
-#: ui/BoxDotOptions.ui.h:7
+#: ui/BoxDotOptions.ui:126
msgid "Indicator color - Override Theme"
msgstr "Couleur de l'indicateur - Remplacer le thème"
-#: ui/BoxDotOptions.ui.h:8
+#: ui/BoxDotOptions.ui:142 ui/BoxDotOptions.ui:215
msgid "1 window open (or ungrouped)"
msgstr "1 fenêtre ouverte (ou dégroupée)"
-#: ui/BoxDotOptions.ui.h:9
+#: ui/BoxDotOptions.ui:146 ui/BoxDotOptions.ui:219
msgid "Apply to all"
msgstr "Appliquer à tout"
-#: ui/BoxDotOptions.ui.h:10
+#: ui/BoxDotOptions.ui:159 ui/BoxDotOptions.ui:232
msgid "2 windows open"
msgstr "2 fenêtres ouvertes"
-#: ui/BoxDotOptions.ui.h:11
+#: ui/BoxDotOptions.ui:170 ui/BoxDotOptions.ui:243
msgid "3 windows open"
msgstr "3 fenêtres ouvertes"
-#: ui/BoxDotOptions.ui.h:12
+#: ui/BoxDotOptions.ui:181 ui/BoxDotOptions.ui:254
msgid "4+ windows open"
msgstr "4+ fenêtres ouvertes"
-#: ui/BoxDotOptions.ui.h:13
+#: ui/BoxDotOptions.ui:198
msgid "Use different for unfocused"
msgstr "Style différent pour les applications inactives"
-#: ui/BoxDynamicOpacityOptions.ui.h:1
+#: ui/BoxDynamicOpacityOptions.ui:37
msgid "The panel background opacity is affected by"
msgstr "L'opacité de l'arrière-plan du panneau est affectée par"
-#: ui/BoxDynamicOpacityOptions.ui.h:2 ui/BoxIntellihideOptions.ui.h:3
+#: ui/BoxDynamicOpacityOptions.ui:42 ui/BoxIntellihideOptions.ui:69
msgid "All windows"
msgstr "Toutes les fenêtres"
-#: ui/BoxDynamicOpacityOptions.ui.h:3 ui/BoxIntellihideOptions.ui.h:4
+#: ui/BoxDynamicOpacityOptions.ui:43 ui/BoxIntellihideOptions.ui:70
msgid "Focused windows"
msgstr "Fenêtres au premier plan"
-#: ui/BoxDynamicOpacityOptions.ui.h:4 ui/BoxIntellihideOptions.ui.h:5
+#: ui/BoxDynamicOpacityOptions.ui:44 ui/BoxIntellihideOptions.ui:71
msgid "Maximized windows"
msgstr "Fenêtres maximisées"
-#: ui/BoxDynamicOpacityOptions.ui.h:5
+#: ui/BoxDynamicOpacityOptions.ui:53
msgid "Change opacity when a window gets closer than (px)"
msgstr "Changer l'opacité lorsqu'une fenêtre est plus proche que (px)"
-#: ui/BoxDynamicOpacityOptions.ui.h:7
-#, no-c-format
+#: ui/BoxDynamicOpacityOptions.ui:69
msgid "Change opacity to (%)"
msgstr "Changer l'opacité à (%)"
-#: ui/BoxDynamicOpacityOptions.ui.h:8 ui/BoxShowApplicationsOptions.ui.h:3
-#: ui/BoxWindowPreviewOptions.ui.h:57 ui/SettingsStyle.ui.h:27
+#: ui/BoxDynamicOpacityOptions.ui:72 ui/BoxShowApplicationsOptions.ui:64
+#: ui/BoxWindowPreviewOptions.ui:468 ui/SettingsStyle.ui:266
+#: ui/SettingsStyle.ui:329 ui/SettingsStyle.ui:348
msgid "0"
msgstr "0"
-#: ui/BoxDynamicOpacityOptions.ui.h:9
+#: ui/BoxDynamicOpacityOptions.ui:82
msgid "Opacity change animation duration (ms)"
msgstr "Durée de l'animation de changement d'opacité (ms)"
-#: ui/BoxGroupAppsOptions.ui.h:1
+#: ui/BoxGroupAppsOptions.ui:32
msgid "Font size (px) of the application titles (default is 14)"
msgstr "Taille (px) du texte des titres d'application (défaut: 14)"
-#: ui/BoxGroupAppsOptions.ui.h:2
+#: ui/BoxGroupAppsOptions.ui:47
msgid "Font weight of application titles"
msgstr "Épaisseur de la police du texte des titres d'application"
-#: ui/BoxGroupAppsOptions.ui.h:3 ui/BoxWindowPreviewOptions.ui.h:44
+#: ui/BoxGroupAppsOptions.ui:52 ui/BoxWindowPreviewOptions.ui:402
msgid "inherit from theme"
msgstr "hériter du thème"
-#: ui/BoxGroupAppsOptions.ui.h:4 ui/BoxWindowPreviewOptions.ui.h:45
+#: ui/BoxGroupAppsOptions.ui:53 ui/BoxWindowPreviewOptions.ui:403
msgid "normal"
msgstr "normale"
-#: ui/BoxGroupAppsOptions.ui.h:5 ui/BoxWindowPreviewOptions.ui.h:46
+#: ui/BoxGroupAppsOptions.ui:54 ui/BoxWindowPreviewOptions.ui:404
msgid "lighter"
msgstr "plus légere"
-#: ui/BoxGroupAppsOptions.ui.h:6 ui/BoxWindowPreviewOptions.ui.h:47
+#: ui/BoxGroupAppsOptions.ui:55 ui/BoxWindowPreviewOptions.ui:405
msgid "bold"
msgstr "grasse"
-#: ui/BoxGroupAppsOptions.ui.h:7 ui/BoxWindowPreviewOptions.ui.h:48
+#: ui/BoxGroupAppsOptions.ui:56 ui/BoxWindowPreviewOptions.ui:406
msgid "bolder"
msgstr "plus grasse"
-#: ui/BoxGroupAppsOptions.ui.h:8
+#: ui/BoxGroupAppsOptions.ui:65
msgid "Font color of the application titles"
msgstr "Couleur du texte des titres d'application"
-#: ui/BoxGroupAppsOptions.ui.h:9
+#: ui/BoxGroupAppsOptions.ui:77
msgid "Font color of the minimized application titles"
msgstr "Couleur du texte des titres d'application de fenêtres minimisées"
-#: ui/BoxGroupAppsOptions.ui.h:10
+#: ui/BoxGroupAppsOptions.ui:95
msgid "Maximum width (px) of the application titles"
msgstr "Longueur maximum (px) des titres d'application"
-#: ui/BoxGroupAppsOptions.ui.h:11
+#: ui/BoxGroupAppsOptions.ui:96
msgid "(default is 160)"
msgstr "(la valeur par défaut est 160)"
-#: ui/BoxGroupAppsOptions.ui.h:12
+#: ui/BoxGroupAppsOptions.ui:111
msgid "Use a fixed width for the application titles"
msgstr "Utiliser une largeur fixe pour les titres d'application"
-#: ui/BoxGroupAppsOptions.ui.h:13
+#: ui/BoxGroupAppsOptions.ui:112
msgid ""
"The application titles all have the same width, even if their texts are "
"shorter than the maximum width. The maximum width value is used as the fixed "
@@ -514,75 +540,75 @@ msgstr ""
"plus petit que la taille maximum. La valeur maximale de longueur est "
"utilisée comme longueur fixe."
-#: ui/BoxGroupAppsOptions.ui.h:14
+#: ui/BoxGroupAppsOptions.ui:129
msgid "Display running indicators on unfocused applications"
msgstr "Afficher des indicateurs sur les applications an arrière-plan"
-#: ui/BoxGroupAppsOptions.ui.h:15
+#: ui/BoxGroupAppsOptions.ui:140
msgid "Use the favorite icons as application launchers"
msgstr "Utiliser les applications favorites comme lanceurs"
-#: ui/BoxIntellihideOptions.ui.h:1
+#: ui/BoxIntellihideOptions.ui:53
msgid "Only hide the panel when it is obstructed by windows"
msgstr "Ne cacher le panneau que lorsqu'il est au-dessus d'une fenêtre"
-#: ui/BoxIntellihideOptions.ui.h:2
+#: ui/BoxIntellihideOptions.ui:64
msgid "The panel hides from"
msgstr "Le panneau se cache de"
-#: ui/BoxIntellihideOptions.ui.h:6
+#: ui/BoxIntellihideOptions.ui:86
msgid "Require pressure at the edge of the screen to reveal the panel"
msgstr "Requérir une pression sur le bord de l'écran pour afficher le panneau"
-#: ui/BoxIntellihideOptions.ui.h:7
+#: ui/BoxIntellihideOptions.ui:97
msgid "Required pressure threshold (px)"
msgstr "Seuil d'activation (px)"
-#: ui/BoxIntellihideOptions.ui.h:8
+#: ui/BoxIntellihideOptions.ui:112
msgid "Required pressure timeout (ms)"
msgstr "Délai d'activation (ms)"
-#: ui/BoxIntellihideOptions.ui.h:9
+#: ui/BoxIntellihideOptions.ui:133
msgid "Allow the panel to be revealed while in fullscreen mode"
msgstr "Permettre au panneau d'être affiché en mode plein écran"
-#: ui/BoxIntellihideOptions.ui.h:10
+#: ui/BoxIntellihideOptions.ui:144
msgid "Only hide secondary panels"
msgstr "Ne cacher que les panneaux secondaires"
-#: ui/BoxIntellihideOptions.ui.h:11
+#: ui/BoxIntellihideOptions.ui:145
msgid "(requires multi-monitors option)"
msgstr "(requiert l'option multi-écran)"
-#: ui/BoxIntellihideOptions.ui.h:12
+#: ui/BoxIntellihideOptions.ui:156
msgid "Keyboard shortcut to reveal and hold the panel"
msgstr "Raccourci clavier pour révéler et maintenir le panneau"
-#: ui/BoxIntellihideOptions.ui.h:13 ui/BoxOverlayShortcut.ui.h:12
-msgid "Syntax: , , , "
-msgstr "Syntaxe: , , , "
+#: ui/BoxIntellihideOptions.ui:157 ui/BoxOverlayShortcut.ui:71
+msgid "Syntax: <Shift>, <Ctrl>, <Alt>, <Super>"
+msgstr "Syntaxe: <Shift>, <Ctrl>, <Alt>, <Super>"
-#: ui/BoxIntellihideOptions.ui.h:14
+#: ui/BoxIntellihideOptions.ui:162
msgid "e.g. i"
msgstr "e.g. i"
-#: ui/BoxIntellihideOptions.ui.h:15
+#: ui/BoxIntellihideOptions.ui:176
msgid "Hide and reveal animation duration (ms)"
msgstr "Durée des animations d'affichage (ms)"
-#: ui/BoxIntellihideOptions.ui.h:16
+#: ui/BoxIntellihideOptions.ui:191
msgid "Delay before hiding the panel (ms)"
msgstr "Délai avant le masquage du panneau (ms)"
-#: ui/BoxIntellihideOptions.ui.h:17
+#: ui/BoxIntellihideOptions.ui:207
msgid "Delay before enabling intellihide on start (ms)"
msgstr "Délai avant l'activation du masquage intelligent (ms)"
-#: ui/BoxMiddleClickOptions.ui.h:1
+#: ui/BoxMiddleClickOptions.ui:19
msgid "Shift+Click action"
msgstr "Action Maj+Clic"
-#: ui/BoxMiddleClickOptions.ui.h:2
+#: ui/BoxMiddleClickOptions.ui:20
msgid ""
"When set to minimize, double clicking minimizes all the windows of the "
"application."
@@ -590,71 +616,78 @@ msgstr ""
"Quand minimiser est sélectionné, un double-clic réduit toutes les fenêtres "
"de l'application."
-#: ui/BoxMiddleClickOptions.ui.h:3 ui/SettingsAction.ui.h:8
+#: ui/BoxMiddleClickOptions.ui:25 ui/BoxMiddleClickOptions.ui:53
+#: ui/BoxMiddleClickOptions.ui:81 ui/SettingsAction.ui:41
msgid "Raise windows"
msgstr "Montrer les fenêtres"
-#: ui/BoxMiddleClickOptions.ui.h:4
+#: ui/BoxMiddleClickOptions.ui:26 ui/BoxMiddleClickOptions.ui:54
+#: ui/BoxMiddleClickOptions.ui:82
msgid "Minimize window"
msgstr "Réduire la fenêtre"
-#: ui/BoxMiddleClickOptions.ui.h:5 ui/SettingsAction.ui.h:9
+#: ui/BoxMiddleClickOptions.ui:27 ui/BoxMiddleClickOptions.ui:55
+#: ui/BoxMiddleClickOptions.ui:83 ui/SettingsAction.ui:42
msgid "Launch new instance"
msgstr "Lancer une nouvelle instance"
-#: ui/BoxMiddleClickOptions.ui.h:6 ui/SettingsAction.ui.h:4
+#: ui/BoxMiddleClickOptions.ui:28 ui/BoxMiddleClickOptions.ui:56
+#: ui/BoxMiddleClickOptions.ui:84 ui/SettingsAction.ui:37
msgid "Cycle through windows"
msgstr "Cycler sur les fenêtres"
-#: ui/BoxMiddleClickOptions.ui.h:7 ui/SettingsAction.ui.h:3
+#: ui/BoxMiddleClickOptions.ui:29 ui/BoxMiddleClickOptions.ui:57
+#: ui/BoxMiddleClickOptions.ui:85 ui/SettingsAction.ui:36
msgid "Cycle windows + minimize"
msgstr "Cycler sur les fenêtres + réduire"
-#: ui/BoxMiddleClickOptions.ui.h:8 ui/SettingsAction.ui.h:5
+#: ui/BoxMiddleClickOptions.ui:30 ui/BoxMiddleClickOptions.ui:58
+#: ui/BoxMiddleClickOptions.ui:86 ui/SettingsAction.ui:38
msgid "Toggle single / Preview multiple"
msgstr "Prévisualisation simple / multiple"
-#: ui/BoxMiddleClickOptions.ui.h:9 ui/SettingsAction.ui.h:6
+#: ui/BoxMiddleClickOptions.ui:31 ui/BoxMiddleClickOptions.ui:59
+#: ui/BoxMiddleClickOptions.ui:87 ui/SettingsAction.ui:39
msgid "Toggle single / Cycle multiple"
msgstr "Prévisualisation simple / cycle multiple"
-#: ui/BoxMiddleClickOptions.ui.h:11
+#: ui/BoxMiddleClickOptions.ui:47
msgid "Middle-Click action"
msgstr "Action clic molette"
-#: ui/BoxMiddleClickOptions.ui.h:12
+#: ui/BoxMiddleClickOptions.ui:48
msgid "Behavior for Middle-Click."
msgstr "Comportement du clic molette."
-#: ui/BoxMiddleClickOptions.ui.h:13
+#: ui/BoxMiddleClickOptions.ui:75
msgid "Shift+Middle-Click action"
msgstr "Action de Maj+Clic molette"
-#: ui/BoxMiddleClickOptions.ui.h:14
+#: ui/BoxMiddleClickOptions.ui:76
msgid "Behavior for Shift+Middle-Click."
msgstr "Comportement pour Maj+Clic molette."
-#: ui/BoxOverlayShortcut.ui.h:1
+#: ui/BoxOverlayShortcut.ui:25
msgid "Hotkeys prefix"
msgstr "Préfixe raccourcis"
-#: ui/BoxOverlayShortcut.ui.h:2
+#: ui/BoxOverlayShortcut.ui:26
msgid "Hotkeys will either be Super+Number or Super+Alt+Num"
msgstr "Les raccourcis seront soit Super+Numéro soit Super+Alt+Numéro"
-#: ui/BoxOverlayShortcut.ui.h:3
+#: ui/BoxOverlayShortcut.ui:31
msgid "Super"
msgstr "Super"
-#: ui/BoxOverlayShortcut.ui.h:4
+#: ui/BoxOverlayShortcut.ui:32
msgid "Super + Alt"
msgstr "Super + Alt"
-#: ui/BoxOverlayShortcut.ui.h:5
+#: ui/BoxOverlayShortcut.ui:41
msgid "Number overlay"
msgstr "Superposition des nombres"
-#: ui/BoxOverlayShortcut.ui.h:6
+#: ui/BoxOverlayShortcut.ui:42
msgid ""
"Temporarily show the application numbers over the icons when using the "
"hotkeys."
@@ -662,293 +695,294 @@ msgstr ""
"Afficher temporairement les numéros des applications par dessus les icônes "
"lors de l'utilisation des raccourcis."
-#: ui/BoxOverlayShortcut.ui.h:7
+#: ui/BoxOverlayShortcut.ui:47
msgid "Never"
msgstr "Jamais"
-#: ui/BoxOverlayShortcut.ui.h:8
+#: ui/BoxOverlayShortcut.ui:48
msgid "Show temporarily"
msgstr "Afficher temporairement"
-#: ui/BoxOverlayShortcut.ui.h:9
+#: ui/BoxOverlayShortcut.ui:49
msgid "Always visible"
msgstr "Toujours visible"
-#: ui/BoxOverlayShortcut.ui.h:10
+#: ui/BoxOverlayShortcut.ui:58
msgid "Hide timeout (ms)"
msgstr "Délai avant de cacher (ms)"
-#: ui/BoxOverlayShortcut.ui.h:11
+#: ui/BoxOverlayShortcut.ui:70
msgid "Shortcut to show the overlay for 2 seconds"
msgstr "Raccourci pour afficher la superposition pendant 2 secondes"
-#: ui/BoxOverlayShortcut.ui.h:13
+#: ui/BoxOverlayShortcut.ui:76
msgid "e.g. q"
msgstr "e.g. q"
-#: ui/BoxOverlayShortcut.ui.h:14
+#: ui/BoxOverlayShortcut.ui:84
msgid "Show window previews on hotkey"
msgstr "Afficher les aperçus des fenêtres lors de l'utilisation d'un raccourci"
-#: ui/BoxOverlayShortcut.ui.h:15
+#: ui/BoxOverlayShortcut.ui:85
msgid "Show previews when the application have multiple instances"
msgstr ""
"Afficher les aperçus lorsque les applications possèdent plusieurs fenêtres"
-#: ui/BoxOverlayShortcut.ui.h:16
+#: ui/BoxOverlayShortcut.ui:96
msgid "Hotkeys are activated with"
msgstr "Les raccourcis sont activés par"
-#: ui/BoxOverlayShortcut.ui.h:17
+#: ui/BoxOverlayShortcut.ui:97
msgid "Select which keyboard number keys are used to activate the hotkeys"
msgstr ""
"Sélectionner quelles touches numériques sont utilisées pour activer les "
"raccourcis"
-#: ui/BoxOverlayShortcut.ui.h:18
+#: ui/BoxOverlayShortcut.ui:102
msgid "Number row"
msgstr "Rangée des chiffres"
-#: ui/BoxOverlayShortcut.ui.h:19
+#: ui/BoxOverlayShortcut.ui:103
msgid "Numeric keypad"
msgstr "Pavé numérique"
-#: ui/BoxOverlayShortcut.ui.h:20
+#: ui/BoxOverlayShortcut.ui:104
msgid "Both"
msgstr "Les deux"
-#: ui/BoxScrollIconOptions.ui.h:1 ui/BoxScrollPanelOptions.ui.h:1
+#: ui/BoxScrollIconOptions.ui:25 ui/BoxScrollPanelOptions.ui:25
msgid "Delay between mouse scroll events (ms)"
msgstr "Délai entre les évènements de défilement de la souris (ms)"
-#: ui/BoxScrollIconOptions.ui.h:2 ui/BoxScrollPanelOptions.ui.h:2
+#: ui/BoxScrollIconOptions.ui:26 ui/BoxScrollPanelOptions.ui:26
msgid "Use this value to limit the number of captured mouse scroll events."
msgstr ""
"Utiliser cette valeur pour limiter le nombre d'évènements de défilement de "
"la souris (ms)"
-#: ui/BoxScrollPanelOptions.ui.h:3
+#: ui/BoxScrollPanelOptions.ui:42
msgid "Show popup when changing workspace"
msgstr "Afficher l'indicateur de changement d'espace de travail"
-#: ui/BoxScrollPanelOptions.ui.h:4
+#: ui/BoxScrollPanelOptions.ui:43
msgid "This affects workspace popup when scrolling on the panel only."
msgstr ""
"Affecte uniquement l'indicateur de changement d'espace de travail au "
"défilement de la souris sur le panneau."
-#: ui/BoxSecondaryMenuOptions.ui.h:1
+#: ui/BoxSecondaryMenuOptions.ui:19
msgid "Integrate AppMenu items"
msgstr "Intégrer les actions du Menu d'applications"
-#: ui/BoxSecondaryMenuOptions.ui.h:2
+#: ui/BoxSecondaryMenuOptions.ui:30
msgid "Show Details menu item"
msgstr "Menu Afficher les détails"
-#: ui/BoxShowApplicationsOptions.ui.h:1
+#: ui/BoxShowApplicationsOptions.ui:25
msgid "Show Applications icon"
msgstr "Bouton Afficher les Applications"
-#: ui/BoxShowApplicationsOptions.ui.h:2
+#: ui/BoxShowApplicationsOptions.ui:60
msgid "Show Applications icon side padding (px)"
msgstr "Marge interne du bouton \"Afficher les Applications\""
-#: ui/BoxShowApplicationsOptions.ui.h:4
+#: ui/BoxShowApplicationsOptions.ui:73
msgid "Override escape key and return to desktop"
msgstr ""
"Remplacer l'action de la touche d'échappement et retourner sur le bureau"
-#: ui/BoxShowDesktopOptions.ui.h:1
+#: ui/BoxShowDesktopOptions.ui:53
msgid "Override Show Desktop line color"
msgstr "Remplacer la couleur de la ligne du bouton Afficher le Bureau"
-#: ui/BoxShowDesktopOptions.ui.h:2
+#: ui/BoxShowDesktopOptions.ui:77
msgid "Reveal the desktop when hovering the Show Desktop button"
msgstr "Révéler le bureau lors du survol du bouton Afficher le Bureau"
-#: ui/BoxShowDesktopOptions.ui.h:3
+#: ui/BoxShowDesktopOptions.ui:90
msgid "Delay before revealing the desktop (ms)"
msgstr "Délai avant affichage du bureau (ms)"
-#: ui/BoxShowDesktopOptions.ui.h:4
+#: ui/BoxShowDesktopOptions.ui:106
msgid "Fade duration (ms)"
msgstr "Durée du fondu (ms)"
-#: ui/BoxWindowPreviewOptions.ui.h:1
+#: ui/BoxWindowPreviewOptions.ui:89
msgid "Time (ms) before showing"
msgstr "Temps (ms) avant d'afficher"
-#: ui/BoxWindowPreviewOptions.ui.h:2
+#: ui/BoxWindowPreviewOptions.ui:90
msgid "(400 is default)"
msgstr "(400 par défaut)"
-#: ui/BoxWindowPreviewOptions.ui.h:3
+#: ui/BoxWindowPreviewOptions.ui:105
msgid "Time (ms) before hiding"
msgstr "Temps (ms) avant de cacher"
-#: ui/BoxWindowPreviewOptions.ui.h:4
+#: ui/BoxWindowPreviewOptions.ui:106
msgid "(100 is default)"
msgstr "(100 par défaut)"
-#: ui/BoxWindowPreviewOptions.ui.h:5
+#: ui/BoxWindowPreviewOptions.ui:113
msgid "Immediate on application icon click"
msgstr "Immédiat au clic d'application"
-#: ui/BoxWindowPreviewOptions.ui.h:6
+#: ui/BoxWindowPreviewOptions.ui:134
msgid "Animation time (ms)"
msgstr "Durée d'animation (ms)"
-#: ui/BoxWindowPreviewOptions.ui.h:7
+#: ui/BoxWindowPreviewOptions.ui:155
msgid "Middle click on the preview to close the window"
msgstr "Cliquez avec la molette sur la prévisualisation pour fermer la fenêtre"
-#: ui/BoxWindowPreviewOptions.ui.h:8
+#: ui/BoxWindowPreviewOptions.ui:172
msgid "Window previews preferred size (px)"
msgstr "Taille des prévisualisations de fenêtres (px)"
-#: ui/BoxWindowPreviewOptions.ui.h:9
+#: ui/BoxWindowPreviewOptions.ui:188
msgid "Window previews aspect ratio X (width)"
msgstr "Ratio d'aspect des prévisualisations (largeur)"
-#: ui/BoxWindowPreviewOptions.ui.h:10
+#: ui/BoxWindowPreviewOptions.ui:193 ui/BoxWindowPreviewOptions.ui:234
msgid "1"
msgstr "1"
-#: ui/BoxWindowPreviewOptions.ui.h:11
+#: ui/BoxWindowPreviewOptions.ui:194 ui/BoxWindowPreviewOptions.ui:235
msgid "2"
msgstr "2"
-#: ui/BoxWindowPreviewOptions.ui.h:12
+#: ui/BoxWindowPreviewOptions.ui:195 ui/BoxWindowPreviewOptions.ui:236
msgid "3"
msgstr "3"
-#: ui/BoxWindowPreviewOptions.ui.h:13
+#: ui/BoxWindowPreviewOptions.ui:196 ui/BoxWindowPreviewOptions.ui:237
msgid "4"
msgstr "4"
-#: ui/BoxWindowPreviewOptions.ui.h:14
+#: ui/BoxWindowPreviewOptions.ui:197 ui/BoxWindowPreviewOptions.ui:238
+#: ui/BoxWindowPreviewOptions.ui:302
msgid "5"
msgstr "5"
-#: ui/BoxWindowPreviewOptions.ui.h:15
+#: ui/BoxWindowPreviewOptions.ui:198 ui/BoxWindowPreviewOptions.ui:239
msgid "6"
msgstr "6"
-#: ui/BoxWindowPreviewOptions.ui.h:16
+#: ui/BoxWindowPreviewOptions.ui:199 ui/BoxWindowPreviewOptions.ui:240
msgid "7"
msgstr "7"
-#: ui/BoxWindowPreviewOptions.ui.h:17
+#: ui/BoxWindowPreviewOptions.ui:200 ui/BoxWindowPreviewOptions.ui:241
msgid "8"
msgstr "8"
-#: ui/BoxWindowPreviewOptions.ui.h:18
+#: ui/BoxWindowPreviewOptions.ui:201 ui/BoxWindowPreviewOptions.ui:242
msgid "9"
msgstr "9"
-#: ui/BoxWindowPreviewOptions.ui.h:19
+#: ui/BoxWindowPreviewOptions.ui:202 ui/BoxWindowPreviewOptions.ui:243
msgid "10"
msgstr "10"
-#: ui/BoxWindowPreviewOptions.ui.h:20
+#: ui/BoxWindowPreviewOptions.ui:203 ui/BoxWindowPreviewOptions.ui:244
msgid "11"
msgstr "11"
-#: ui/BoxWindowPreviewOptions.ui.h:21
+#: ui/BoxWindowPreviewOptions.ui:204 ui/BoxWindowPreviewOptions.ui:245
msgid "12"
msgstr "12"
-#: ui/BoxWindowPreviewOptions.ui.h:22
+#: ui/BoxWindowPreviewOptions.ui:205 ui/BoxWindowPreviewOptions.ui:246
msgid "13"
msgstr "13"
-#: ui/BoxWindowPreviewOptions.ui.h:23
+#: ui/BoxWindowPreviewOptions.ui:206 ui/BoxWindowPreviewOptions.ui:247
msgid "14"
msgstr "14"
-#: ui/BoxWindowPreviewOptions.ui.h:24
+#: ui/BoxWindowPreviewOptions.ui:207 ui/BoxWindowPreviewOptions.ui:248
msgid "15"
msgstr "15"
-#: ui/BoxWindowPreviewOptions.ui.h:25
+#: ui/BoxWindowPreviewOptions.ui:208 ui/BoxWindowPreviewOptions.ui:249
msgid "16"
msgstr "16"
-#: ui/BoxWindowPreviewOptions.ui.h:26
+#: ui/BoxWindowPreviewOptions.ui:209 ui/BoxWindowPreviewOptions.ui:250
msgid "17"
msgstr "17"
-#: ui/BoxWindowPreviewOptions.ui.h:27
+#: ui/BoxWindowPreviewOptions.ui:210 ui/BoxWindowPreviewOptions.ui:251
msgid "18"
msgstr "18"
-#: ui/BoxWindowPreviewOptions.ui.h:28
+#: ui/BoxWindowPreviewOptions.ui:211 ui/BoxWindowPreviewOptions.ui:252
msgid "19"
msgstr "19"
-#: ui/BoxWindowPreviewOptions.ui.h:29
+#: ui/BoxWindowPreviewOptions.ui:212 ui/BoxWindowPreviewOptions.ui:253
msgid "20"
msgstr "200"
-#: ui/BoxWindowPreviewOptions.ui.h:30
+#: ui/BoxWindowPreviewOptions.ui:213 ui/BoxWindowPreviewOptions.ui:254
msgid "21"
msgstr "21"
-#: ui/BoxWindowPreviewOptions.ui.h:31
+#: ui/BoxWindowPreviewOptions.ui:219 ui/BoxWindowPreviewOptions.ui:260
msgid "Fixed"
msgstr "Fixé"
-#: ui/BoxWindowPreviewOptions.ui.h:32
+#: ui/BoxWindowPreviewOptions.ui:229
msgid "Window previews aspect ratio Y (height)"
msgstr "Ratio d'aspect des prévisualisations (hauteur)"
-#: ui/BoxWindowPreviewOptions.ui.h:33
+#: ui/BoxWindowPreviewOptions.ui:270
msgid "Window previews padding (px)"
msgstr "Marge intérieure des prévisualisations (px)"
-#: ui/BoxWindowPreviewOptions.ui.h:34
+#: ui/BoxWindowPreviewOptions.ui:292
msgid "Use custom opacity for the previews background"
msgstr "Opacité personnalisée pour l'arrière plan des prévisualisations"
-#: ui/BoxWindowPreviewOptions.ui.h:35
+#: ui/BoxWindowPreviewOptions.ui:293
msgid ""
"If disabled, the previews background have the same opacity as the panel."
msgstr ""
"Si désactivé, les prévisualisations ont la même opacité que le panneau."
-#: ui/BoxWindowPreviewOptions.ui.h:36
+#: ui/BoxWindowPreviewOptions.ui:318
msgid "Close button and header position"
msgstr "Bouton de fermeture et position de l'en-tête"
-#: ui/BoxWindowPreviewOptions.ui.h:39
+#: ui/BoxWindowPreviewOptions.ui:348
msgid "Display window preview headers"
msgstr "Afficher le titre de la fenêtre dans la prévis."
-#: ui/BoxWindowPreviewOptions.ui.h:40
+#: ui/BoxWindowPreviewOptions.ui:359
msgid "Icon size (px) of the window preview"
msgstr "Taille (px) de l'icône des prévisualisations"
-#: ui/BoxWindowPreviewOptions.ui.h:41
+#: ui/BoxWindowPreviewOptions.ui:360
msgid "If disabled, the previews icon size will be based on headerbar size"
msgstr "Si désactivé, la taille de l'icône est basée sur celle de l'en-tête"
-#: ui/BoxWindowPreviewOptions.ui.h:42
+#: ui/BoxWindowPreviewOptions.ui:381
msgid "Font size (px) of the preview titles"
msgstr "Taille (px) du texte des prévisualisations"
-#: ui/BoxWindowPreviewOptions.ui.h:43
+#: ui/BoxWindowPreviewOptions.ui:397
msgid "Font weight of the preview titles"
msgstr "Épaisseur du texte des titres de prévisualisation"
-#: ui/BoxWindowPreviewOptions.ui.h:49
+#: ui/BoxWindowPreviewOptions.ui:415
msgid "Font color of the preview titles"
msgstr "Couleur du texte des titres de prévisualisation"
-#: ui/BoxWindowPreviewOptions.ui.h:50
+#: ui/BoxWindowPreviewOptions.ui:433
msgid "Enable window peeking"
msgstr "Activer la vue de fenêtre"
-#: ui/BoxWindowPreviewOptions.ui.h:51
+#: ui/BoxWindowPreviewOptions.ui:434
msgid ""
"When hovering over a window preview for some time, the window gets "
"distinguished."
@@ -956,11 +990,11 @@ msgstr ""
"Le survol sur la prévisualisation de la fenêtre, pendant un certain temps, "
"la met en avant."
-#: ui/BoxWindowPreviewOptions.ui.h:52
+#: ui/BoxWindowPreviewOptions.ui:445
msgid "Enter window peeking mode timeout (ms)"
msgstr "Temps d'attente avant activation de la vue fenêtre"
-#: ui/BoxWindowPreviewOptions.ui.h:53
+#: ui/BoxWindowPreviewOptions.ui:446
msgid ""
"Time of inactivity while hovering over a window preview needed to enter the "
"window peeking mode."
@@ -968,15 +1002,15 @@ msgstr ""
"Temps d'inactivité pendant le survol de la prévisualisation d'une fenêtre "
"nécessaire pour activer la vue de la fenêtre."
-#: ui/BoxWindowPreviewOptions.ui.h:54
+#: ui/BoxWindowPreviewOptions.ui:451
msgid "50"
msgstr "50"
-#: ui/BoxWindowPreviewOptions.ui.h:55
+#: ui/BoxWindowPreviewOptions.ui:462
msgid "Window peeking mode opacity"
msgstr "Opacité de la vue de fenêtre"
-#: ui/BoxWindowPreviewOptions.ui.h:56
+#: ui/BoxWindowPreviewOptions.ui:463
msgid ""
"All windows except for the peeked one have their opacity set to the same "
"value."
@@ -984,31 +1018,35 @@ msgstr ""
"Toutes les fenêtres, mis à part celle prévisualisée, ont leur opacité mise à "
"la même valeur."
-#: ui/SettingsAbout.ui.h:1
+#: ui/SettingsAbout.ui:6
+msgid "About"
+msgstr "À propos"
+
+#: ui/SettingsAbout.ui:12
msgid "Info"
msgstr "Information"
-#: ui/SettingsAbout.ui.h:2
+#: ui/SettingsAbout.ui:16
msgid "Version"
msgstr "Version"
-#: ui/SettingsAbout.ui.h:3
+#: ui/SettingsAbout.ui:27
msgid "Source"
msgstr "Source"
-#: ui/SettingsAbout.ui.h:4
+#: ui/SettingsAbout.ui:30
msgid "GitHub"
msgstr "GitHub"
-#: ui/SettingsAbout.ui.h:5
+#: ui/SettingsAbout.ui:45
msgid "Export and Import"
msgstr "Import et export"
-#: ui/SettingsAbout.ui.h:6
+#: ui/SettingsAbout.ui:49
msgid "Export and import settings"
msgstr "Import et export de paramètres"
-#: ui/SettingsAbout.ui.h:7
+#: ui/SettingsAbout.ui:50
msgid ""
"Use the buttons below to create a settings file from your current "
"preferences that can be imported on a different machine."
@@ -1016,15 +1054,15 @@ msgstr ""
"Utiliser les boutons ci-dessous pour créer un fichier de paramètres à partir "
"de vos préférences actuelles qui pourra être importé sur une autre machine."
-#: ui/SettingsAbout.ui.h:8
+#: ui/SettingsAbout.ui:66
msgid "Export to file"
msgstr "Exporter vers un fichier"
-#: ui/SettingsAbout.ui.h:9
+#: ui/SettingsAbout.ui:72
msgid "Import from file"
msgstr "Importer à partir d'un fichier"
-#: ui/SettingsAbout.ui.h:10
+#: ui/SettingsAbout.ui:89
msgid ""
"This program comes with ABSOLUTELY NO WARRANTY.\n"
"See the Licence publique générale GNU, version 2 ou "
"ultérieure"
-#: ui/SettingsAction.ui.h:1
+#: ui/SettingsAction.ui:6
+msgid "Action"
+msgstr "Action"
+
+#: ui/SettingsAction.ui:12 ui/SettingsAction.ui:16
msgid "Click action"
msgstr "Action du clic"
-#: ui/SettingsAction.ui.h:2
+#: ui/SettingsAction.ui:17
msgid "Behaviour when clicking on the icon of a running application."
msgstr "Comportement lors du clic sur l'icône d'une application lancée."
-#: ui/SettingsAction.ui.h:7
+#: ui/SettingsAction.ui:40
msgid "Toggle windows"
msgstr "Basculer les fenêtres"
-#: ui/SettingsAction.ui.h:10
+#: ui/SettingsAction.ui:55
msgid "Scroll action"
msgstr "Action du défilement de la souris"
-#: ui/SettingsAction.ui.h:11
+#: ui/SettingsAction.ui:59
msgid "Scroll panel action"
msgstr "Action du défilement de la souris sur le panneau"
-#: ui/SettingsAction.ui.h:12
+#: ui/SettingsAction.ui:60
msgid "Behavior when mouse scrolling over the panel."
msgstr "Comportement lors du défilement de la souris sur le panneau"
-#: ui/SettingsAction.ui.h:13
+#: ui/SettingsAction.ui:84 ui/SettingsAction.ui:118
msgid "Do nothing"
msgstr "Ne rien faire"
-#: ui/SettingsAction.ui.h:14
+#: ui/SettingsAction.ui:85
msgid "Switch workspace"
msgstr "Défiler les espaces de travail"
-#: ui/SettingsAction.ui.h:15
+#: ui/SettingsAction.ui:86 ui/SettingsAction.ui:119
msgid "Cycle windows"
msgstr "Défiler les fenêtres"
-#: ui/SettingsAction.ui.h:16
+#: ui/SettingsAction.ui:87
msgid "Change volume"
msgstr "Changer le volume"
-#: ui/SettingsAction.ui.h:17
+#: ui/SettingsAction.ui:96
msgid "Scroll icon action"
msgstr "Action du défilement de la souris sur une application"
-#: ui/SettingsAction.ui.h:18
+#: ui/SettingsAction.ui:97
msgid "Behavior when mouse scrolling over an application icon."
msgstr "Comportement lors du défilement de la souris sur une application"
-#: ui/SettingsAction.ui.h:19
+#: ui/SettingsAction.ui:120
msgid "Same as panel"
msgstr "Comme le panneau"
-#: ui/SettingsAction.ui.h:20
+#: ui/SettingsAction.ui:133
msgid "Hotkey overlay"
msgstr "Superposition des nombres"
-#: ui/SettingsAction.ui.h:21
+#: ui/SettingsAction.ui:137
msgid "Use hotkeys to activate apps"
msgstr "Utiliser des raccourcis pour lancer les applications"
-#: ui/SettingsAction.ui.h:22
+#: ui/SettingsAction.ui:138
msgid ""
"Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
"together with Shift and Ctrl."
@@ -1103,347 +1145,364 @@ msgstr ""
"Activer Super+(0-9) comme raccourcis pour lancer les applications. Maj et "
"Ctrl peuvent aussi être utilisés."
-#: ui/SettingsBehavior.ui.h:1
+#: ui/SettingsBehavior.ui:5
+msgid "Behavior"
+msgstr "Comportement"
+
+#: ui/SettingsBehavior.ui:11
msgid "Applications"
msgstr "Applications"
-#: ui/SettingsBehavior.ui.h:2
+#: ui/SettingsBehavior.ui:15
msgid "Show favorite applications"
msgstr "Afficher les applications favorites"
-#: ui/SettingsBehavior.ui.h:3
+#: ui/SettingsBehavior.ui:26
msgid "Show favorite applications on secondary panels"
msgstr "Afficher les applications favorites sur les panneaux secondaires"
-#: ui/SettingsBehavior.ui.h:4
+#: ui/SettingsBehavior.ui:37
msgid "Show running applications"
msgstr "Afficher les applications ouvertes"
-#: ui/SettingsBehavior.ui.h:5
-msgid "Show AppMenu button"
-msgstr "Afficher le bouton Menu d'Applications"
-
-#: ui/SettingsBehavior.ui.h:6
+#: ui/SettingsBehavior.ui:48
msgid "Ungroup applications"
msgstr "Dégrouper les applications"
-#: ui/SettingsBehavior.ui.h:7
+#: ui/SettingsBehavior.ui:73
msgid "Show notification counter badge"
msgstr "Afficher le nombre de notifications"
-#: ui/SettingsBehavior.ui.h:8
+#: ui/SettingsBehavior.ui:90
+msgid "Hover"
+msgstr "Survol"
+
+#: ui/SettingsBehavior.ui:94
msgid "Show window previews on hover"
msgstr "Afficher les aperçus des fenêtres lors du survol"
-#: ui/SettingsBehavior.ui.h:9
+#: ui/SettingsBehavior.ui:119
msgid "Show tooltip on hover"
msgstr "Afficher les bulles d'info. lors du survol"
-#: ui/SettingsBehavior.ui.h:10
+#: ui/SettingsBehavior.ui:134
msgid "Isolate"
msgstr "Isolation"
-#: ui/SettingsBehavior.ui.h:11
+#: ui/SettingsBehavior.ui:138
msgid "Isolate Workspaces"
msgstr "Isoler les espaces de travail"
-#: ui/SettingsBehavior.ui.h:12
+#: ui/SettingsBehavior.ui:149
msgid "Isolate monitors"
msgstr "Isoler les écrans"
-#: ui/SettingsBehavior.ui.h:13
+#: ui/SettingsBehavior.ui:164
msgid "Overview"
msgstr "Activités"
-#: ui/SettingsBehavior.ui.h:14
+#: ui/SettingsBehavior.ui:168
msgid "Click empty space to close overview"
msgstr "Clic région vide pour fermer Activités"
-#: ui/SettingsBehavior.ui.h:15
+#: ui/SettingsBehavior.ui:179
msgid "Disable show overview on startup"
msgstr "Désactiver le démarrage en mode Activités"
-#: ui/SettingsFineTune.ui.h:1
+#: ui/SettingsFineTune.ui:41
+msgid "Fine-Tune"
+msgstr "Personnalisation"
+
+#: ui/SettingsFineTune.ui:47
msgid "Font size"
msgstr "Taille de la police"
-#: ui/SettingsFineTune.ui.h:2
+#: ui/SettingsFineTune.ui:51
msgid "Tray Font Size"
msgstr "Taille de la police des éléments de la barre d'état"
-#: ui/SettingsFineTune.ui.h:3
+#: ui/SettingsFineTune.ui:52 ui/SettingsFineTune.ui:70
msgid "(0 = theme default)"
msgstr "(0 = par défaut)"
-#: ui/SettingsFineTune.ui.h:4
+#: ui/SettingsFineTune.ui:69
msgid "LeftBox Font Size"
msgstr "Taille de la police de la zone de gauche"
-#: ui/SettingsFineTune.ui.h:5
+#: ui/SettingsFineTune.ui:91
msgid "Padding"
msgstr "Marge"
-#: ui/SettingsFineTune.ui.h:6
+#: ui/SettingsFineTune.ui:95
msgid "Tray Item Padding"
msgstr "Marge des éléments de la barre d'état"
-#: ui/SettingsFineTune.ui.h:7
+#: ui/SettingsFineTune.ui:96 ui/SettingsFineTune.ui:114
+#: ui/SettingsFineTune.ui:132
msgid "(-1 = theme default)"
msgstr "(-1 = par défaut)"
-#: ui/SettingsFineTune.ui.h:8
+#: ui/SettingsFineTune.ui:113
msgid "Status Icon Padding"
msgstr "Marge des icônes de statut"
-#: ui/SettingsFineTune.ui.h:9
+#: ui/SettingsFineTune.ui:131
msgid "LeftBox Padding"
msgstr "Marge de la zone de gauche"
-#: ui/SettingsFineTune.ui.h:10
+#: ui/SettingsFineTune.ui:153
msgid "Animate"
msgstr "Animation"
-#: ui/SettingsFineTune.ui.h:11
+#: ui/SettingsFineTune.ui:157
msgid "Animate switching applications"
msgstr "Animer le changement d'application"
-#: ui/SettingsFineTune.ui.h:12
+#: ui/SettingsFineTune.ui:168
msgid "Animate launching new windows"
msgstr "Animer le lancement de nouvelles fenêtres"
-#: ui/SettingsFineTune.ui.h:13
+#: ui/SettingsFineTune.ui:183
msgid "Gnome functionality"
msgstr "Fonctionnalités Gnome"
-#: ui/SettingsFineTune.ui.h:14
+#: ui/SettingsFineTune.ui:187
msgid "Keep original gnome-shell dash"
msgstr "Garder le lanceur d'origine de gnome-shell (Activités)"
-#: ui/SettingsFineTune.ui.h:15
+#: ui/SettingsFineTune.ui:188
msgid "(overview)"
msgstr "(activités)"
-#: ui/SettingsFineTune.ui.h:16
+#: ui/SettingsFineTune.ui:199
msgid "Keep original gnome-shell top panel"
msgstr "Garder le panneau d'origine de gnome-shell"
-#: ui/SettingsFineTune.ui.h:17
+#: ui/SettingsFineTune.ui:210
msgid "Activate panel menu buttons on click only"
msgstr "Activer les menus du panneau seulement au clic"
-#: ui/SettingsFineTune.ui.h:18
+#: ui/SettingsFineTune.ui:211
msgid "(e.g. date menu)"
msgstr "(exemple: horloge)"
-#: ui/SettingsFineTune.ui.h:19
+#: ui/SettingsFineTune.ui:222
msgid "Force Activities hot corner on primary monitor"
msgstr "Forcer le coin actif des Activités sur l'écran principal"
-#: ui/SettingsFineTune.ui.h:20
+#: ui/SettingsFineTune.ui:240
msgid "App icon secondary menu"
msgstr "Menu secondaire de l'application"
-#: ui/SettingsFineTune.ui.h:21
+#: ui/SettingsFineTune.ui:241
msgid "(right-click menu)"
msgstr "(clic droit)"
-#: ui/SettingsPosition.ui.h:1
+#: ui/SettingsPosition.ui:19
+msgid "Position"
+msgstr "Position"
+
+#: ui/SettingsPosition.ui:25
msgid "Panel"
msgstr "Panneau"
-#: ui/SettingsPosition.ui.h:2
+#: ui/SettingsPosition.ui:29
msgid "Display the main panel on"
msgstr "Afficher le panneau principal sur"
-#: ui/SettingsPosition.ui.h:3
+#: ui/SettingsPosition.ui:40
msgid "Display panels on all monitors"
msgstr "Afficher le panneau principal sur tous les écrans"
-#: ui/SettingsPosition.ui.h:4
+#: ui/SettingsPosition.ui:56
msgid "Panel Intellihide"
msgstr "Masquage intelligent du panneau"
-#: ui/SettingsPosition.ui.h:5
+#: ui/SettingsPosition.ui:57
msgid "Hide and reveal the panel according to preferences"
msgstr "Afficher/Cacher le panneau selon les préférences"
-#: ui/SettingsPosition.ui.h:6
+#: ui/SettingsPosition.ui:86
msgid "Order and Position on monitors"
msgstr "Ordre et positions de l'écran"
-#: ui/SettingsPosition.ui.h:7
+#: ui/SettingsPosition.ui:91
msgid "Monitor"
msgstr "Écran"
-#: ui/SettingsPosition.ui.h:8
+#: ui/SettingsPosition.ui:100
msgid "Apply changes to all monitors"
msgstr "Appliquer les changements sur tous les écrans"
-#: ui/SettingsPosition.ui.h:9
+#: ui/SettingsPosition.ui:127
msgid "Panel screen position"
msgstr "Position du panneau"
-#: ui/SettingsPosition.ui.h:14
+#: ui/SettingsPosition.ui:169
msgid "Panel thickness"
msgstr "Taille du panneau"
-#: ui/SettingsPosition.ui.h:15
+#: ui/SettingsPosition.ui:170
msgid "(default is 48)"
msgstr "(la valeur par défaut est 48)"
-#: ui/SettingsPosition.ui.h:17
-#, no-c-format
+#: ui/SettingsPosition.ui:187
msgid "Panel length (%)"
msgstr "Longueur du panneau (%)"
-#: ui/SettingsPosition.ui.h:18
+#: ui/SettingsPosition.ui:188
msgid "(default is 100)"
msgstr "(la valeur par défaut est 100)"
-#: ui/SettingsPosition.ui.h:19
+#: ui/SettingsPosition.ui:204
msgid "Anchor"
msgstr "Ancrage"
-#: ui/SettingsPosition.ui.h:23
+#: ui/SettingsPosition.ui:227
msgid "Taskbar Display"
msgstr "Affichage de la barre des tâches"
-#: ui/SettingsStyle.ui.h:1
+#: ui/SettingsStyle.ui:38
+msgid "Style"
+msgstr "Style"
+
+#: ui/SettingsStyle.ui:44
msgid "AppIcon style"
msgstr "Style des icônes d'application"
-#: ui/SettingsStyle.ui.h:2
+#: ui/SettingsStyle.ui:48
msgid "App Icon Margin"
msgstr "Marge ext. de l'icône d'application"
-#: ui/SettingsStyle.ui.h:3
+#: ui/SettingsStyle.ui:49
msgid "(default is 8)"
msgstr "(la valeur par défaut est 8)"
-#: ui/SettingsStyle.ui.h:4
+#: ui/SettingsStyle.ui:66
msgid "App Icon Padding"
msgstr "Marge int. de l'icône d'application"
-#: ui/SettingsStyle.ui.h:5
+#: ui/SettingsStyle.ui:67
msgid "(default is 4)"
msgstr "(la valeur par défaut est 4)"
-#: ui/SettingsStyle.ui.h:6
+#: ui/SettingsStyle.ui:84
msgid "Animate hovering app icons"
msgstr "Animer le survol des icônes d'application"
-#: ui/SettingsStyle.ui.h:7
+#: ui/SettingsStyle.ui:109
+msgid "Icon style"
+msgstr "Style d'icône"
+
+#: ui/SettingsStyle.ui:114
+msgid "Normal"
+msgstr "Normal"
+
+#: ui/SettingsStyle.ui:115
+msgid "Symbolic"
+msgstr "Symbolique"
+
+#: ui/SettingsStyle.ui:127
msgid "Running indicator"
msgstr "Position de l'indicateur d'activité"
-#: ui/SettingsStyle.ui.h:8
+#: ui/SettingsStyle.ui:131
msgid "Running indicator position"
msgstr "Position de l'indicateur d'activité"
-#: ui/SettingsStyle.ui.h:13
+#: ui/SettingsStyle.ui:168
msgid "Running indicator style (Focused app)"
msgstr "Style de l'indicateur d'activité (Application active)"
-#: ui/SettingsStyle.ui.h:14
+#: ui/SettingsStyle.ui:186 ui/SettingsStyle.ui:206
msgid "Dots"
msgstr "Points"
-#: ui/SettingsStyle.ui.h:15
+#: ui/SettingsStyle.ui:187 ui/SettingsStyle.ui:207
msgid "Squares"
msgstr "Carrés"
-#: ui/SettingsStyle.ui.h:16
+#: ui/SettingsStyle.ui:188 ui/SettingsStyle.ui:208
msgid "Dashes"
msgstr "Traits"
-#: ui/SettingsStyle.ui.h:17
+#: ui/SettingsStyle.ui:189 ui/SettingsStyle.ui:209
msgid "Segmented"
msgstr "Segmenté"
-#: ui/SettingsStyle.ui.h:18
+#: ui/SettingsStyle.ui:190 ui/SettingsStyle.ui:210
msgid "Solid"
msgstr "Solide"
-#: ui/SettingsStyle.ui.h:19
+#: ui/SettingsStyle.ui:191 ui/SettingsStyle.ui:211
msgid "Ciliora"
msgstr "Ciliora"
-#: ui/SettingsStyle.ui.h:20
+#: ui/SettingsStyle.ui:192 ui/SettingsStyle.ui:212
msgid "Metro"
msgstr "Metro"
-#: ui/SettingsStyle.ui.h:21
+#: ui/SettingsStyle.ui:201
msgid "Running indicator style (Unfocused apps)"
msgstr "Style de l'indicateur d'activité (Applications inactives)"
-#: ui/SettingsStyle.ui.h:22
+#: ui/SettingsStyle.ui:225
msgid "Panel style"
msgstr "Style du panneau"
-#: ui/SettingsStyle.ui.h:23
+#: ui/SettingsStyle.ui:229
msgid "Override panel theme background color"
msgstr "Remplacer la couleur de fond du thème du panneau"
-#: ui/SettingsStyle.ui.h:24
+#: ui/SettingsStyle.ui:251
msgid "Override panel theme background opacity"
msgstr "Remplacer l'opacité du thème du panneau"
-#: ui/SettingsStyle.ui.h:26
-#, no-c-format
+#: ui/SettingsStyle.ui:262
msgid "Panel background opacity (%)"
msgstr "Opacité du fond du panneau"
-#: ui/SettingsStyle.ui.h:28
+#: ui/SettingsStyle.ui:275
msgid "Dynamic background opacity"
msgstr "Opacité de fond dynamique"
-#: ui/SettingsStyle.ui.h:29
+#: ui/SettingsStyle.ui:276
msgid "Change opacity when a window gets close to the panel"
msgstr "Changer l'opacité lorsqu'une fenêtre s'approche du panneau"
-#: ui/SettingsStyle.ui.h:30
+#: ui/SettingsStyle.ui:308
msgid "Override panel theme gradient"
msgstr "Remplacer le gradient du thème du panneau"
-#: ui/SettingsStyle.ui.h:32
-#, no-c-format
+#: ui/SettingsStyle.ui:319
msgid "Gradient top color and opacity (%)"
msgstr "Couleur et opacité (%) du haut du gradient"
-#: ui/SettingsStyle.ui.h:34
-#, no-c-format
+#: ui/SettingsStyle.ui:338
msgid "Gradient bottom color and opacity (%)"
msgstr "Couleur et opacité (%) du bas du gradient"
+#: windowPreview.js:938
+msgid "Move to current Workspace"
+msgstr "Déplacer vers l'espace de travail courrant"
+
+#~ msgid "Windows"
+#~ msgstr "Fenêtres"
+
+#~ msgid "Show AppMenu button"
+#~ msgstr "Afficher le bouton Menu d'Applications"
+
#~ msgid "Current Show Applications icon"
#~ msgstr "Icône Afficher les Applications actuelle"
#~ msgid "Custom Show Applications image icon"
#~ msgstr "Icône d'affichage des applications personnalisée"
-#~ msgid "Position"
-#~ msgstr "Position"
-
-#~ msgid "Style"
-#~ msgstr "Style"
-
#~ msgid "Top Bar > Show App Menu must be enabled in Tweak Tool"
#~ msgstr ""
#~ "Barre supérieure > Afficher le menu de l'application doit être activé "
#~ "dans Ajustements"
-#~ msgid "Behavior"
-#~ msgstr "Comportement"
-
-#~ msgid "Action"
-#~ msgstr "Action"
-
-#~ msgid "Fine-Tune"
-#~ msgstr "Personnalisation"
-
-#~ msgid "About"
-#~ msgstr "À propos"
-
#~ msgid "Show Details"
#~ msgstr "Afficher les détails"
From 4958d928c1c32594e6db95c618f068ff425a7d39 Mon Sep 17 00:00:00 2001
From: Charles Gagnon
Date: Sat, 18 Jan 2025 19:54:30 -0500
Subject: [PATCH 13/18] Reset appicon container size cache on fullscreen exit
#2129
---
appIcons.js | 29 ++++++++++++++++++++++-------
1 file changed, 22 insertions(+), 7 deletions(-)
diff --git a/appIcons.js b/appIcons.js
index 66c43d3..d026af8 100644
--- a/appIcons.js
+++ b/appIcons.js
@@ -215,6 +215,16 @@ export const TaskbarAppIcon = GObject.registerClass({
this._titleWindowChangeId = 0;
this._minimizedWindowChangeId = 0;
+
+ this._fullscreenId = Utils.DisplayWrapper.getScreen().connect('in-fullscreen-changed', () => {
+ if (
+ global.display.focus_window?.get_monitor() == this.dtpPanel.monitor.index &&
+ !this.dtpPanel.monitor.inFullscreen
+ ) {
+ this._resetDots(true);
+ this._displayProperIndicator();
+ }
+ })
} else {
this._titleWindowChangeId = this.window.connect('notify::title',
this._updateWindowTitle.bind(this));
@@ -358,6 +368,9 @@ export const TaskbarAppIcon = GObject.registerClass({
if(this._focusWindowChangedId)
global.display.disconnect(this._focusWindowChangedId);
+ if (this._fullscreenId)
+ Utils.DisplayWrapper.getScreen().disconnect(this._fullscreenId);
+
if(this._titleWindowChangeId)
this.window.disconnect(this._titleWindowChangeId);
@@ -588,7 +601,7 @@ export const TaskbarAppIcon = GObject.registerClass({
this._dotsContainer.add_child(this._focusedDots);
}
- _resetDots() {
+ _resetDots(ignoreSizeReset) {
let position = SETTINGS.get_string('dot-position');
let isHorizontalDots = position == DOT_POSITION.TOP || position == DOT_POSITION.BOTTOM;
let sizeProp = isHorizontalDots ? 'width' : 'height';
@@ -600,13 +613,15 @@ export const TaskbarAppIcon = GObject.registerClass({
[, this._containerSize] = this._container[`get_preferred_${sizeProp}`](-1);
- [this._focusedDots, this._unfocusedDots].forEach(d => {
- d.set_size(-1, -1);
- d.x_expand = d.y_expand = false;
+ if (!ignoreSizeReset) {
+ [this._focusedDots, this._unfocusedDots].forEach(d => {
+ d.set_size(-1, -1);
+ d.x_expand = d.y_expand = false;
- d[sizeProp] = 1;
- d[(isHorizontalDots ? 'y' : 'x') + '_expand'] = true;
- });
+ d[sizeProp] = 1;
+ d[(isHorizontalDots ? 'y' : 'x') + '_expand'] = true;
+ });
+ }
}
_settingsChangeRefresh() {
From 63af1816d825206630b44dd653f6722f126fb305 Mon Sep 17 00:00:00 2001
From: Charles Gagnon
Date: Sun, 19 Jan 2025 11:42:34 -0500
Subject: [PATCH 14/18] Hide preview menu container
#2183
---
windowPreview.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/windowPreview.js b/windowPreview.js
index f0a2741..cbbdf1a 100644
--- a/windowPreview.js
+++ b/windowPreview.js
@@ -188,7 +188,7 @@ export const PreviewMenu = GObject.registerClass({
this._refreshGlobals();
this.set_height(this.clipHeight);
- this.menu.show();
+ this.show();
setStyle(this.menu, 'background: ' + Utils.getrgbaColor(this.panel.dynamicTransparency.backgroundColorRgb, alphaBg));
}
@@ -298,7 +298,7 @@ export const PreviewMenu = GObject.registerClass({
}
_resetHiddenState() {
- this.menu.hide();
+ this.hide();
this.set_height(0);
this._setOpenedState(false);
this.menu.opacity = 0;
From 38da0cac973b0e6a297fe951e2a6dfb3d4b8ac95 Mon Sep 17 00:00:00 2001
From: Charles Gagnon
Date: Sun, 19 Jan 2025 13:40:05 -0500
Subject: [PATCH 15/18] Update overview workarea on monitor focus change
#2183
---
overview.js | 2 +-
panelManager.js | 8 ++++++++
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/overview.js b/overview.js
index 7df5d6f..79b7ba9 100644
--- a/overview.js
+++ b/overview.js
@@ -128,7 +128,7 @@ export const Overview = class {
else
box[focusedPanel.fixedCoord.c1] += size
} else if (isBottom)
- // The default overview allocation is very good and takes into account external
+ // The default overview allocation takes into account external
// struts, everywhere but the bottom where the dash is usually fixed anyway.
// If there is a bottom panel under the dash location, give it some space here
box.y2 -= focusedPanel.geom.h
diff --git a/panelManager.js b/panelManager.js
index 51c0774..43e93b4 100755
--- a/panelManager.js
+++ b/panelManager.js
@@ -328,6 +328,14 @@ export const PanelManager = class {
Main.overview._overview.add_constraint(new Layout.MonitorConstraint({ index: monitor.index }));
Main.overview._overview._controls._workspacesDisplay._primaryIndex = monitor.index;
+
+ // https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2395
+ // The overview allocation used to calculate its workarea based on the monitor where the overview
+ // was displayed, but it got changed back to always use the primary monitor. So now, temporarily assign
+ // the primary monitor to dtp focused monitor while recalculating the overview workarea
+ Main.layoutManager.primaryMonitor = monitor
+ Main.overview._overview._controls.layout_manager._updateWorkAreaBox()
+ Main.layoutManager.primaryMonitor = Main.layoutManager.monitors[Main.layoutManager.primaryIndex]
}
}
From c3fc8fa4ee00845fcd8c1c6219ed37cd358a5363 Mon Sep 17 00:00:00 2001
From: Hirnmoder <19573355+Hirnmoder@users.noreply.github.com>
Date: Wed, 11 Sep 2024 14:59:16 +0200
Subject: [PATCH 16/18] Beautify DTP - Allow hover animation travel below 0% -
Allow hover animation zoom below 100% - Hover highlighting independent of
hover animation - Custom color for hover highlighting - Custom color for
mouse down highlighting - Icon background with rounded corners - Customize
margin for app icons towards screen border and desktop
---
appIcons.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/appIcons.js b/appIcons.js
index d026af8..16c5b64 100644
--- a/appIcons.js
+++ b/appIcons.js
@@ -218,7 +218,7 @@ export const TaskbarAppIcon = GObject.registerClass({
this._fullscreenId = Utils.DisplayWrapper.getScreen().connect('in-fullscreen-changed', () => {
if (
- global.display.focus_window?.get_monitor() == this.dtpPanel.monitor.index &&
+ global.display.focus_window?.get_monitor() == this.dtpPanel.monitor.index &&
!this.dtpPanel.monitor.inFullscreen
) {
this._resetDots(true);
From e64f3b437e7217947fa1f18146d944563e8c4fd9 Mon Sep 17 00:00:00 2001
From: Hirnmoder <19573355+Hirnmoder@users.noreply.github.com>
Date: Mon, 27 Jan 2025 19:21:12 +0100
Subject: [PATCH 17/18] Beautify DTP - Remove dead/future code in order to
re-add it when support for GTK variables arrives - This fixes the "Ignoring
length property that isn't a number" warnings
---
appIcons.js | 279 ++++++++++++++++++++++++-------------------------
stylesheet.css | 4 -
2 files changed, 135 insertions(+), 148 deletions(-)
diff --git a/appIcons.js b/appIcons.js
index 16c5b64..0fb66d1 100644
--- a/appIcons.js
+++ b/appIcons.js
@@ -40,14 +40,14 @@ import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
import * as Util from 'resource:///org/gnome/shell/misc/util.js';
import * as BoxPointer from 'resource:///org/gnome/shell/ui/boxpointer.js';
-import {EventEmitter} from 'resource:///org/gnome/shell/misc/signals.js';
+import { EventEmitter } from 'resource:///org/gnome/shell/misc/signals.js';
import * as Utils from './utils.js';
import * as PanelSettings from './panelSettings.js';
import * as Taskbar from './taskbar.js';
import * as Progress from './progress.js';
-import {DTP_EXTENSION, SETTINGS, DESKTOPSETTINGS, TERMINALSETTINGS, EXTENSION_PATH} from './extension.js';
-import {gettext as _, ngettext} from 'resource:///org/gnome/shell/extensions/extension.js';
+import { DTP_EXTENSION, SETTINGS, DESKTOPSETTINGS, TERMINALSETTINGS, EXTENSION_PATH } from './extension.js';
+import { gettext as _, ngettext } from 'resource:///org/gnome/shell/extensions/extension.js';
//timeout names
const T2 = 'mouseScrollTimeout';
@@ -127,7 +127,7 @@ export const TaskbarAppIcon = GObject.registerClass({
this._timeoutsHandler = new Utils.TimeoutsHandler();
// Fix touchscreen issues before the listener is added by the parent constructor.
- this._onTouchEvent = function(actor, event) {
+ this._onTouchEvent = function (actor, event) {
if (event.type() == Clutter.EventType.TOUCH_BEGIN) {
// Open the popup menu on long press.
this._setPopupTimeout();
@@ -141,7 +141,7 @@ export const TaskbarAppIcon = GObject.registerClass({
return Clutter.EVENT_STOP;
};
// Hack for missing TOUCH_END event.
- this._onLeaveEvent = function(actor, event) {
+ this._onLeaveEvent = function (actor, event) {
this.fake_release();
if (this._menuTimeoutId != 0) this.activate(1); // Activate/launch the application if TOUCH_END didn't fire.
this._removeMenuTimeout();
@@ -190,7 +190,7 @@ export const TaskbarAppIcon = GObject.registerClass({
// Monitor windows-changes instead of app state.
// Keep using the same Id and function callback (that is extended)
- if(this._stateChangedId > 0) {
+ if (this._stateChangedId > 0) {
this.app.disconnect(this._stateChangedId);
this._stateChangedId = 0;
}
@@ -202,7 +202,7 @@ export const TaskbarAppIcon = GObject.registerClass({
this._showDots();
this._focusWindowChangedId = global.display.connect('notify::focus-window',
- this._onFocusAppChanged.bind(this));
+ this._onFocusAppChanged.bind(this));
this._windowEnteredMonitorId = this._windowLeftMonitorId = 0;
this._stateChangedId = this.app.connect('windows-changed', this.onWindowsChanged.bind(this));
@@ -227,25 +227,25 @@ export const TaskbarAppIcon = GObject.registerClass({
})
} else {
this._titleWindowChangeId = this.window.connect('notify::title',
- this._updateWindowTitle.bind(this));
+ this._updateWindowTitle.bind(this));
this._minimizedWindowChangeId = this.window.connect('notify::minimized',
- this._updateWindowTitleStyle.bind(this));
+ this._updateWindowTitleStyle.bind(this));
}
this._scrollEventId = this.connect('scroll-event', this._onMouseScroll.bind(this));
this._overviewWindowDragEndId = Main.overview.connect('window-drag-end',
- this._onOverviewWindowDragEnd.bind(this));
+ this._onOverviewWindowDragEnd.bind(this));
this._switchWorkspaceId = global.window_manager.connect('switch-workspace',
- this._onSwitchWorkspace.bind(this));
+ this._onSwitchWorkspace.bind(this));
this._hoverChangeId = this.connect('notify::hover', () => this._onAppIconHoverChanged());
- if (!this._checkGtkVersion_cssVariables()) {
- this._hoverChangeId2 = this.connect('notify::hover', () => this._onAppIconHoverChanged_GtkWorkaround());
- this._pressedChangedId = this.connect('notify::pressed', () => this._onAppIconPressedChanged_GtkWorkaround());
- }
+
+ this._hoverChangeId2 = this.connect('notify::hover', () => this._onAppIconHoverChanged_GtkWorkaround());
+ this._pressedChangedId = this.connect('notify::pressed', () => this._onAppIconPressedChanged_GtkWorkaround());
+
this._dtpSettingsSignalIds = [
SETTINGS.connect('changed::animate-appicon-hover', this._onAnimateAppiconHoverChanged.bind(this)),
@@ -282,11 +282,10 @@ export const TaskbarAppIcon = GObject.registerClass({
SETTINGS.connect('changed::group-apps-underline-unfocused', this._settingsChangeRefresh.bind(this)),
];
- if (!this._checkGtkVersion_cssVariables()) {
- this._dtpSettingsSignalIds = this._dtpSettingsSignalIds.concat([
- SETTINGS.connect('changed::highlight-appicon-hover-border-radius', () => this._setIconStyle(this._isFocusedWindow())),
- ]);
- }
+ this._dtpSettingsSignalIds = this._dtpSettingsSignalIds.concat([
+ SETTINGS.connect('changed::highlight-appicon-hover-border-radius', () => this._setIconStyle(this._isFocusedWindow())),
+ ]);
+
this._progressIndicator = new Progress.ProgressIndicator(this, panel.progressManager);
@@ -327,12 +326,12 @@ export const TaskbarAppIcon = GObject.registerClass({
shouldShowTooltip() {
if (!SETTINGS.get_boolean('show-tooltip') ||
(!this.isLauncher && SETTINGS.get_boolean("show-window-previews") &&
- this.getAppIconInterestingWindows().length > 0)) {
+ this.getAppIconInterestingWindows().length > 0)) {
return false;
} else {
return this.hover && !this.window &&
- (!this._menu || !this._menu.isOpen) &&
- (this._previewMenu.getCurrentAppIcon() !== this);
+ (!this._menu || !this._menu.isOpen) &&
+ (this._previewMenu.getCurrentAppIcon() !== this);
}
}
@@ -362,19 +361,19 @@ export const TaskbarAppIcon = GObject.registerClass({
this._stateChangedId = 0;
}
- if(this._overviewWindowDragEndId)
+ if (this._overviewWindowDragEndId)
Main.overview.disconnect(this._overviewWindowDragEndId);
- if(this._focusWindowChangedId)
+ if (this._focusWindowChangedId)
global.display.disconnect(this._focusWindowChangedId);
if (this._fullscreenId)
Utils.DisplayWrapper.getScreen().disconnect(this._fullscreenId);
- if(this._titleWindowChangeId)
+ if (this._titleWindowChangeId)
this.window.disconnect(this._titleWindowChangeId);
- if(this._minimizedWindowChangeId)
+ if (this._minimizedWindowChangeId)
this.window.disconnect(this._minimizedWindowChangeId);
if (this._windowEnteredMonitorId) {
@@ -382,10 +381,10 @@ export const TaskbarAppIcon = GObject.registerClass({
Utils.DisplayWrapper.getScreen().disconnect(this._windowLeftMonitorId);
}
- if(this._switchWorkspaceId)
+ if (this._switchWorkspaceId)
global.window_manager.disconnect(this._switchWorkspaceId);
- if(this._scaleFactorChangedId)
+ if (this._scaleFactorChangedId)
Utils.getStageTheme().disconnect(this._scaleFactorChangedId);
if (this._hoverChangeId) {
@@ -442,7 +441,7 @@ export const TaskbarAppIcon = GObject.registerClass({
[rect.width, rect.height] = this.get_transformed_size();
let windows = this.window ? [this.window] : this.getAppIconInterestingWindows(true);
- windows.forEach(function(w) {
+ windows.forEach(function (w) {
w.set_icon_geometry(rect);
});
}
@@ -483,16 +482,14 @@ export const TaskbarAppIcon = GObject.registerClass({
const background_color = SETTINGS.get_string('highlight-appicon-hover-background-color');
const pressed_color = SETTINGS.get_string('highlight-appicon-pressed-background-color');
const border_radius = SETTINGS.get_int('highlight-appicon-hover-border-radius');
- if (this._checkGtkVersion_cssVariables()) {
- this._container.set_style(`--dtp-hover-background-color: ${background_color}; --dtp-hover-border-radius: ${border_radius}px; --dtp-pressed-background-color: ${pressed_color};`);
- } else {
- // Some trickery needed to get the same effect
- const br = `border-radius: ${border_radius}px;`;
- this._appicon_normalstyle = br;
- this._container.set_style(this._appicon_normalstyle);
- this._appicon_hoverstyle = `background-color: ${background_color}; ${br}`;
- this._appicon_pressedstyle = `background-color: ${pressed_color}; ${br}`;
- }
+
+ // Some trickery needed to get the effect
+ const br = `border-radius: ${border_radius}px;`;
+ this._appicon_normalstyle = br;
+ this._container.set_style(this._appicon_normalstyle);
+ this._appicon_hoverstyle = `background-color: ${background_color}; ${br}`;
+ this._appicon_pressedstyle = `background-color: ${pressed_color}; ${br}`;
+
if (SETTINGS.get_boolean('highlight-appicon-hover')) {
this._container.remove_style_class_name('no-highlight');
} else {
@@ -503,18 +500,10 @@ export const TaskbarAppIcon = GObject.registerClass({
}
}
- _checkGtkVersion_cssVariables() {
- // Support for CSS variables was added in GTK 4.16
- // However, using them is still impossible within an extension [Gnome version 47]
- return false;
- return Gtk.get_major_version() >= 5 ||
- (Gtk.get_major_version() == 4 && Gtk.get_minor_version() >= 16);
- }
-
_onAppIconHoverChanged_GtkWorkaround() {
if (this.hover && this._appicon_hoverstyle) {
this._container.set_style(this._appicon_hoverstyle);
- } else if(this._appicon_normalstyle) {
+ } else if (this._appicon_normalstyle) {
this._container.set_style(this._appicon_normalstyle);
} else {
this._container.set_style('');
@@ -526,7 +515,7 @@ export const TaskbarAppIcon = GObject.registerClass({
this._container.set_style(this._appicon_pressedstyle);
} else if (this.hover && this._appicon_hoverstyle) {
this._container.set_style(this._appicon_hoverstyle);
- } else if(this._appicon_normalstyle) {
+ } else if (this._appicon_normalstyle) {
this._container.set_style(this._appicon_normalstyle);
} else {
this._container.set_style('');
@@ -545,7 +534,7 @@ export const TaskbarAppIcon = GObject.registerClass({
let direction = Utils.getMouseScrollDirection(event);
if (direction && !this._timeoutsHandler.getId(T2)) {
- this._timeoutsHandler.add([T2, SETTINGS.get_int('scroll-icon-delay'), () => {}]);
+ this._timeoutsHandler.add([T2, SETTINGS.get_int('scroll-icon-delay'), () => { }]);
let windows = this.getAppIconInterestingWindows();
@@ -574,7 +563,7 @@ export const TaskbarAppIcon = GObject.registerClass({
});
} else {
this._focusedDots = new St.DrawingArea(),
- this._unfocusedDots = new St.DrawingArea();
+ this._unfocusedDots = new St.DrawingArea();
this._focusedDots.connect('repaint', () => {
if (!this._dashItemContainer.animatingOut)
@@ -641,8 +630,8 @@ export const TaskbarAppIcon = GObject.registerClass({
let fontWeight = SETTINGS.get_string('group-apps-label-font-weight');
let fontScale = DESKTOPSETTINGS.get_double('text-scaling-factor');
let fontColor = this.window.minimized ?
- SETTINGS.get_string('group-apps-label-font-color-minimized') :
- SETTINGS.get_string('group-apps-label-font-color');
+ SETTINGS.get_string('group-apps-label-font-color-minimized') :
+ SETTINGS.get_string('group-apps-label-font-color');
let scaleFactor = Utils.getScaleFactor();
let maxLabelWidth = SETTINGS.get_int('group-apps-label-max-width') * scaleFactor;
let variableWidth = !useFixedWidth || this.dtpPanel.checkIfVertical() || this.dtpPanel.taskbar.fullScrollView;
@@ -654,9 +643,9 @@ export const TaskbarAppIcon = GObject.registerClass({
this._windowTitle.clutter_text.natural_width_set = useFixedWidth;
this._windowTitle.set_style('font-size: ' + SETTINGS.get_int('group-apps-label-font-size') * fontScale + 'px;' +
- 'font-weight: ' + fontWeight + ';' +
- (useFixedWidth ? '' : 'max-width: ' + maxLabelWidth + 'px;') +
- 'color: ' + fontColor);
+ 'font-weight: ' + fontWeight + ';' +
+ (useFixedWidth ? '' : 'max-width: ' + maxLabelWidth + 'px;') +
+ 'color: ' + fontColor);
}
}
@@ -673,17 +662,17 @@ export const TaskbarAppIcon = GObject.registerClass({
_setIconStyle(isFocused) {
let inlineStyle = 'margin: 0;';
- if(SETTINGS.get_boolean('focus-highlight') &&
- this._checkIfFocusedApp() && !this.isLauncher &&
- (!this.window || isFocused) && !this._isThemeProvidingIndicator() && this._checkIfMonitorHasFocus()) {
+ if (SETTINGS.get_boolean('focus-highlight') &&
+ this._checkIfFocusedApp() && !this.isLauncher &&
+ (!this.window || isFocused) && !this._isThemeProvidingIndicator() && this._checkIfMonitorHasFocus()) {
let focusedDotStyle = SETTINGS.get_string('dot-style-focused');
let pos = SETTINGS.get_string('dot-position');
let highlightMargin = this._focusedIsWide ? SETTINGS.get_int('dot-size') : 0;
- if(!this.window) {
+ if (!this.window) {
let containerWidth = this._dtpIconContainer.get_width() / Utils.getScaleFactor();
let backgroundSize = containerWidth + "px " +
- (containerWidth - (pos == DOT_POSITION.BOTTOM ? highlightMargin : 0)) + "px;";
+ (containerWidth - (pos == DOT_POSITION.BOTTOM ? highlightMargin : 0)) + "px;";
if (focusedDotStyle == DOT_STYLE.CILIORA || focusedDotStyle == DOT_STYLE.SEGMENTED)
highlightMargin += 1;
@@ -696,8 +685,8 @@ export const TaskbarAppIcon = GObject.registerClass({
}
inlineStyle += "background-image: url('" + EXTENSION_PATH + bgSvg + ".svg');" +
- "background-position: 0 " + (pos == DOT_POSITION.TOP ? highlightMargin : 0) + "px;" +
- "background-size: " + backgroundSize;
+ "background-position: 0 " + (pos == DOT_POSITION.TOP ? highlightMargin : 0) + "px;" +
+ "background-size: " + backgroundSize;
}
}
@@ -708,7 +697,7 @@ export const TaskbarAppIcon = GObject.registerClass({
}
}
- if(this._dotsContainer.get_style() != inlineStyle) {
+ if (this._dotsContainer.get_style() != inlineStyle) {
this._dotsContainer.set_style(inlineStyle);
}
}
@@ -719,7 +708,7 @@ export const TaskbarAppIcon = GObject.registerClass({
_checkIfMonitorHasFocus() {
return global.display.focus_window &&
- (!SETTINGS.get_boolean('multi-monitors') || // only check same monitor index if multi window is enabled.
+ (!SETTINGS.get_boolean('multi-monitors') || // only check same monitor index if multi window is enabled.
!SETTINGS.get_boolean('isolate-monitors') ||
global.display.focus_window.get_monitor() === this.dtpPanel.monitor.index);
}
@@ -820,7 +809,7 @@ export const TaskbarAppIcon = GObject.registerClass({
this._setIconStyle(isFocused);
- if(!this._isGroupApps) {
+ if (!this._isGroupApps) {
if (this.window && (SETTINGS.get_boolean('group-apps-underline-unfocused') || isFocused)) {
let align = Clutter.ActorAlign[position == DOT_POSITION.TOP || position == DOT_POSITION.LEFT ? 'START' : 'END'];
@@ -844,13 +833,13 @@ export const TaskbarAppIcon = GObject.registerClass({
isFocused = this._checkIfFocusedApp() && this._checkIfMonitorHasFocus();
this._timeoutsHandler.add([T6, 0, () => {
- if(isFocused)
+ if (isFocused)
this.add_style_class_name('focused');
else
this.remove_style_class_name('focused');
}]);
- if(this._focusedIsWide) {
+ if (this._focusedIsWide) {
newFocusedDotsSize = (isFocused && this._nWindows > 0) ? this._containerSize : 0;
newFocusedDotsOpacity = 255;
} else {
@@ -858,7 +847,7 @@ export const TaskbarAppIcon = GObject.registerClass({
newFocusedDotsOpacity = (isFocused && this._nWindows > 0) ? 255 : 0;
}
- if(this._unfocusedIsWide) {
+ if (this._unfocusedIsWide) {
newUnfocusedDotsSize = (!isFocused && this._nWindows > 0) ? this._containerSize : 0;
newUnfocusedDotsOpacity = 255;
} else {
@@ -871,8 +860,8 @@ export const TaskbarAppIcon = GObject.registerClass({
// AND (going from a wide style to a narrow style indicator or vice-versa
// OR going from an open app to a closed app or vice versa)
let animate = SETTINGS.get_boolean('animate-app-switch') &&
- ((this._focusedIsWide != this._unfocusedIsWide) ||
- (this._focusedDots[sizeProp] != newUnfocusedDotsSize || this._unfocusedDots[sizeProp] != newFocusedDotsSize))
+ ((this._focusedIsWide != this._unfocusedIsWide) ||
+ (this._focusedDots[sizeProp] != newUnfocusedDotsSize || this._unfocusedDots[sizeProp] != newFocusedDotsSize))
let duration = animate ? Taskbar.DASH_ANIMATION_TIME : 0.001;
this._animateDotDisplay(this._focusedDots, newFocusedDotsSize, this._unfocusedDots, newUnfocusedDotsOpacity, sizeProp, duration);
@@ -887,12 +876,12 @@ export const TaskbarAppIcon = GObject.registerClass({
time: duration,
transition: 'easeInOutCubic',
onComplete: () => {
- if(newOtherOpacity > 0)
+ if (newOtherOpacity > 0)
otherDots.opacity = newOtherOpacity;
}
};
- if(newOtherOpacity == 0)
+ if (newOtherOpacity == 0)
otherDots.opacity = newOtherOpacity;
tweenOpts[sizeProp] = newSize;
@@ -926,7 +915,7 @@ export const TaskbarAppIcon = GObject.registerClass({
// running indicator by way of a border image on the icon, for example in
// the theme Ciliora
return (this.icon.get_stage() &&
- this.icon.get_theme_node().get_border_image());
+ this.icon.get_theme_node().get_border_image());
}
activate(button, modifiers, handleAsGrouped) {
@@ -950,7 +939,7 @@ export const TaskbarAppIcon = GObject.registerClass({
let buttonAction = 0;
let doubleClick;
- if (button && button == 2 ) {
+ if (button && button == 2) {
if (modifiers & Clutter.ModifierType.SHIFT_MASK)
buttonAction = SETTINGS.get_string('shift-middle-click-action');
else
@@ -991,7 +980,7 @@ export const TaskbarAppIcon = GObject.registerClass({
if (!Main.overview._shown &&
(buttonAction == 'MINIMIZE' || buttonAction == 'TOGGLE-SHOWPREVIEW' || buttonAction == 'TOGGLE-CYCLE' || buttonAction == 'CYCLE-MIN') &&
(this._isFocusedWindow() || (buttonAction == 'MINIMIZE' && (button == 2 || modifiers & Clutter.ModifierType.SHIFT_MASK)))) {
- this.window.minimize();
+ this.window.minimize();
} else {
Main.activateWindow(this.window);
}
@@ -1023,13 +1012,13 @@ export const TaskbarAppIcon = GObject.registerClass({
case "MINIMIZE":
// In overview just activate the app, unless the acion is explicitely
// requested with a keyboard modifier
- if (!Main.overview._shown || modifiers){
+ if (!Main.overview._shown || modifiers) {
// If we have button=2 or a modifier, allow minimization even if
// the app is not focused
if (appHasFocus || button == 2 || modifiers & Clutter.ModifierType.SHIFT_MASK) {
// minimize all windows on double click and always in the case of primary click without
// additional modifiers
- let all_windows = (button == 1 && ! modifiers) || doubleClick;
+ let all_windows = (button == 1 && !modifiers) || doubleClick;
minimizeWindow(this.app, all_windows, monitor);
}
else
@@ -1040,7 +1029,7 @@ export const TaskbarAppIcon = GObject.registerClass({
break;
case "CYCLE":
- if (!Main.overview._shown){
+ if (!Main.overview._shown) {
if (appHasFocus)
cycleThroughWindows(this.app, false, false, monitor);
else {
@@ -1051,7 +1040,7 @@ export const TaskbarAppIcon = GObject.registerClass({
this.app.activate();
break;
case "CYCLE-MIN":
- if (!Main.overview._shown){
+ if (!Main.overview._shown) {
if (appHasFocus || (recentlyClickedApp == this.app && recentlyClickedAppWindows[recentlyClickedAppIndex % recentlyClickedAppWindows.length] == "MINIMIZE"))
cycleThroughWindows(this.app, false, true, monitor);
else {
@@ -1140,9 +1129,9 @@ export const TaskbarAppIcon = GObject.registerClass({
this._nWindows = windows.length;
- for (let i = 1; i <= MAX_INDICATORS; i++){
- let className = 'running'+i;
- if(i != this._nWindows)
+ for (let i = 1; i <= MAX_INDICATORS; i++) {
+ let className = 'running' + i;
+ if (i != this._nWindows)
this.remove_style_class_name(className);
else
this.add_style_class_name(className);
@@ -1174,15 +1163,15 @@ export const TaskbarAppIcon = GObject.registerClass({
color = themeNode.get_background_color();
// theme didn't provide one, use a default
- if(color.alpha == 0) color = fallbackColor;
+ if (color.alpha == 0) color = fallbackColor;
}
- } else if(SETTINGS.get_boolean('dot-color-override')) {
+ } else if (SETTINGS.get_boolean('dot-color-override')) {
let dotColorSettingPrefix = 'dot-color-';
- if(!isFocused && SETTINGS.get_boolean('dot-color-unfocused-different'))
+ if (!isFocused && SETTINGS.get_boolean('dot-color-unfocused-different'))
dotColorSettingPrefix = 'dot-color-unfocused-';
- color = Utils.ColorUtils.color_from_string(SETTINGS.get_string(dotColorSettingPrefix + (this._getRunningIndicatorCount() || 1) ))[1];
+ color = Utils.ColorUtils.color_from_string(SETTINGS.get_string(dotColorSettingPrefix + (this._getRunningIndicatorCount() || 1)))[1];
} else {
// Re-use the style - background color, and border width and color -
// of the default dot
@@ -1190,7 +1179,7 @@ export const TaskbarAppIcon = GObject.registerClass({
color = themeNode.get_background_color();
// theme didn't provide one, use a default
- if(color.alpha == 0) color = fallbackColor;
+ if (color.alpha == 0) color = fallbackColor;
}
return color;
@@ -1271,7 +1260,7 @@ export const TaskbarAppIcon = GObject.registerClass({
let dist;
let indicatorSize;
let translate;
- let preDraw = () => {};
+ let preDraw = () => { };
let draw;
let drawDash = (i, dashLength) => {
dist = i * dashLength + i * spacing;
@@ -1367,12 +1356,12 @@ export const TaskbarAppIcon = GObject.registerClass({
// Set the font size to something smaller than the whole icon so it is
// still visible. The border radius is large to make the shape circular
let [minWidth, natWidth] = this._dtpIconContainer.get_preferred_width(-1);
- let font_size = Math.round(Math.max(12, 0.3 * natWidth) / Utils.getScaleFactor());
+ let font_size = Math.round(Math.max(12, 0.3 * natWidth) / Utils.getScaleFactor());
let size = Math.round(font_size * 1.3);
let label = bin.child;
let style = 'font-size: ' + font_size + 'px;' +
- 'border-radius: ' + this.icon.iconSize + 'px;' +
- 'height: ' + size +'px;';
+ 'border-radius: ' + this.icon.iconSize + 'px;' +
+ 'height: ' + size + 'px;';
if (fixedSize || label.get_text().length == 1) {
style += 'width: ' + size + 'px;';
@@ -1391,9 +1380,9 @@ export const TaskbarAppIcon = GObject.registerClass({
toggleNumberOverlay(activate) {
if (activate && this._numberOverlayOrder > -1)
- this._numberOverlayBin.show();
+ this._numberOverlayBin.show();
else
- this._numberOverlayBin.hide();
+ this._numberOverlayBin.hide();
}
handleDragOver(source, actor, x, y, time) {
@@ -1408,19 +1397,19 @@ export const TaskbarAppIcon = GObject.registerClass({
return getInterestingWindows(this.app, this.dtpPanel.monitor, isolateMonitors);
}
});
-TaskbarAppIcon.prototype.scaleAndFade = TaskbarAppIcon.prototype.undoScaleAndFade = () => {};
+TaskbarAppIcon.prototype.scaleAndFade = TaskbarAppIcon.prototype.undoScaleAndFade = () => { };
-export function minimizeWindow(app, param, monitor){
+export function minimizeWindow(app, param, monitor) {
// Param true make all app windows minimize
let windows = getInterestingWindows(app, monitor);
let current_workspace = Utils.DisplayWrapper.getWorkspaceManager().get_active_workspace();
for (let i = 0; i < windows.length; i++) {
let w = windows[i];
- if (w.get_workspace() == current_workspace && w.showing_on_its_workspace()){
+ if (w.get_workspace() == current_workspace && w.showing_on_its_workspace()) {
w.minimize();
// Just minimize one window. By specification it should be the
// focused window on the current workspace.
- if(!param)
+ if (!param)
break;
}
}
@@ -1430,7 +1419,7 @@ export function minimizeWindow(app, param, monitor){
* By default only non minimized windows are activated.
* This activates all windows in the current workspace.
*/
-export function activateAllWindows(app, monitor){
+export function activateAllWindows(app, monitor) {
// First activate first window so workspace is switched if needed,
// then activate all other app windows in the current workspace.
@@ -1442,14 +1431,14 @@ export function activateAllWindows(app, monitor){
if (windows.length <= 0)
return;
- for (let i = windows.length - 1; i >= 0; i--){
- if (windows[i].get_workspace().index() == activeWorkspace){
+ for (let i = windows.length - 1; i >= 0; i--) {
+ if (windows[i].get_workspace().index() == activeWorkspace) {
Main.activateWindow(windows[i]);
}
}
}
-export function activateFirstWindow(app, monitor){
+export function activateFirstWindow(app, monitor) {
let windows = getInterestingWindows(app, monitor);
Main.activateWindow(windows[0]);
@@ -1458,11 +1447,11 @@ export function activateFirstWindow(app, monitor){
export function cycleThroughWindows(app, reversed, shouldMinimize, monitor) {
// Store for a little amount of time last clicked app and its windows
// since the order changes upon window interaction
- let MEMORY_TIME=3000;
+ let MEMORY_TIME = 3000;
let app_windows = getInterestingWindows(app, monitor);
- if(shouldMinimize)
+ if (shouldMinimize)
app_windows.push("MINIMIZE");
if (recentlyClickedAppLoopId > 0)
@@ -1491,7 +1480,7 @@ export function cycleThroughWindows(app, reversed, shouldMinimize, monitor) {
}
let index = recentlyClickedAppIndex % recentlyClickedAppWindows.length;
- if(recentlyClickedAppWindows[index] === "MINIMIZE")
+ if (recentlyClickedAppWindows[index] === "MINIMIZE")
minimizeWindow(app, true, monitor);
else
Main.activateWindow(recentlyClickedAppWindows[index]);
@@ -1501,8 +1490,8 @@ export function resetRecentlyClickedApp() {
if (recentlyClickedAppLoopId > 0)
GLib.Source.remove(recentlyClickedAppLoopId);
- recentlyClickedAppLoopId=0;
- recentlyClickedApp =null;
+ recentlyClickedAppLoopId = 0;
+ recentlyClickedApp = null;
recentlyClickedAppWindows = null;
recentlyClickedAppIndex = 0;
recentlyClickedAppMonitorIndex = null;
@@ -1520,21 +1509,21 @@ export function closeAllWindows(app, monitor) {
// nautilus desktop window.
export function getInterestingWindows(app, monitor, isolateMonitors) {
let windows = (
- app ?
+ app ?
app.get_windows() :
global.get_window_actors().map(wa => wa.get_meta_window())
- ).filter(w => !w.skip_taskbar);
+ ).filter(w => !w.skip_taskbar);
// When using workspace or monitor isolation, we filter out windows
// that are not in the current workspace or on the same monitor as the appicon
if (SETTINGS.get_boolean('isolate-workspaces'))
- windows = windows.filter(function(w) {
+ windows = windows.filter(function (w) {
return w.get_workspace() &&
- w.get_workspace() == Utils.getCurrentWorkspace();
+ w.get_workspace() == Utils.getCurrentWorkspace();
});
if (monitor && SETTINGS.get_boolean('multi-monitors') && (isolateMonitors || SETTINGS.get_boolean('isolate-monitors'))) {
- windows = windows.filter(function(w) {
+ windows = windows.filter(function (w) {
return w.get_monitor() == monitor.index;
});
}
@@ -1581,7 +1570,7 @@ export class TaskbarSecondaryMenu extends AppMenu.AppMenu {
this._showSingleWindows = true;
// Remove "Show Details" menu item
- if(!SETTINGS.get_boolean('secondarymenu-contains-showdetails')) {
+ if (!SETTINGS.get_boolean('secondarymenu-contains-showdetails')) {
let existingMenuItems = this._getMenuItems();
for (let i = 0; i < existingMenuItems.length; i++) {
let item = existingMenuItems[i];
@@ -1602,7 +1591,7 @@ export class TaskbarSecondaryMenu extends AppMenu.AppMenu {
let count = this.sourceActor.window ? 1 :
getInterestingWindows(this._app, this.sourceActor.dtpPanel.monitor).length;
- if ( count > 0) {
+ if (count > 0) {
let quitFromTaskbarMenuText = "";
if (count == 1)
quitFromTaskbarMenuText = _("Quit");
@@ -1617,8 +1606,8 @@ export class TaskbarSecondaryMenu extends AppMenu.AppMenu {
let time = global.get_current_time()
let windows =
this.sourceActor.window ? // ungrouped applications
- [this.sourceActor.window] :
- getInterestingWindows(this._app, this.sourceActor.dtpPanel.monitor)
+ [this.sourceActor.window] :
+ getInterestingWindows(this._app, this.sourceActor.dtpPanel.monitor)
if (windows.length == this._app.get_windows().length)
this._app.request_quit()
@@ -1645,7 +1634,7 @@ export function ItemShowLabel() {
let [stageX, stageY] = this.get_transformed_position();
let node = this.label.get_theme_node();
- let itemWidth = this.allocation.x2 - this.allocation.x1;
+ let itemWidth = this.allocation.x2 - this.allocation.x1;
let itemHeight = this.allocation.y2 - this.allocation.y1;
let labelWidth = this.label.get_width();
@@ -1662,19 +1651,19 @@ export function ItemShowLabel() {
let x = stageX + xOffset
let y = stageY + (itemHeight - labelHeight) * .5;
- switch(position) {
- case St.Side.TOP:
- y = stageY + labelOffset + itemHeight;
- break;
- case St.Side.BOTTOM:
- y = stageY - labelHeight - labelOffset;
- break;
- case St.Side.LEFT:
- x = stageX + labelOffset + itemWidth;
- break;
- case St.Side.RIGHT:
- x = stageX - labelWidth - labelOffset;
- break;
+ switch (position) {
+ case St.Side.TOP:
+ y = stageY + labelOffset + itemHeight;
+ break;
+ case St.Side.BOTTOM:
+ y = stageY - labelHeight - labelOffset;
+ break;
+ case St.Side.LEFT:
+ x = stageX + labelOffset + itemWidth;
+ break;
+ case St.Side.RIGHT:
+ x = stageX - labelWidth - labelOffset;
+ break;
}
// keep the label inside the screen border
@@ -1683,10 +1672,10 @@ export function ItemShowLabel() {
// Leave a few pixel gap
let gap = LABEL_GAP;
let monitor = Main.layoutManager.findMonitorForActor(this);
- if ( x - monitor.x < gap)
+ if (x - monitor.x < gap)
x += monitor.x - x + labelOffset;
- else if ( x + labelWidth > monitor.x + monitor.width - gap)
- x -= x + labelWidth -( monitor.x + monitor.width) + gap;
+ else if (x + labelWidth > monitor.x + monitor.width - gap)
+ x -= x + labelWidth - (monitor.x + monitor.width) + gap;
this.label.set_position(Math.round(x), Math.round(y));
@@ -1750,11 +1739,13 @@ export const ShowAppsIconWrapper = class extends EventEmitter {
let customIconPath = SETTINGS.get_string('show-apps-icon-file');
- this.realShowAppsIcon.icon.createIcon = function(size) {
- this._iconActor = new St.Icon({ icon_name: 'view-app-grid-symbolic',
- icon_size: size,
- style_class: 'show-apps-icon',
- track_hover: true });
+ this.realShowAppsIcon.icon.createIcon = function (size) {
+ this._iconActor = new St.Icon({
+ icon_name: 'view-app-grid-symbolic',
+ icon_size: size,
+ style_class: 'show-apps-icon',
+ track_hover: true
+ });
if (customIconPath) {
this._iconActor.gicon = new Gio.FileIcon({ file: Gio.File.new_for_path(customIconPath) });
@@ -1792,7 +1783,7 @@ export const ShowAppsIconWrapper = class extends EventEmitter {
_onTouchEvent(actor, event) {
if (event.type() == Clutter.EventType.TOUCH_BEGIN)
- this._setPopupTimeout();
+ this._setPopupTimeout();
return Clutter.EVENT_PROPAGATE;
}
@@ -1850,7 +1841,7 @@ export const ShowAppsIconWrapper = class extends EventEmitter {
shouldShowTooltip() {
return SETTINGS.get_boolean('show-tooltip') &&
- (this.actor.hover && (!this._menu || !this._menu.isOpen));
+ (this.actor.hover && (!this._menu || !this._menu.isOpen));
}
destroy() {
@@ -1954,7 +1945,7 @@ export const MyShowAppsIconMenu = class extends PopupMenu.PopupMenu {
let settingsMenuItem = this._appendMenuItem(_('Dash to Panel Settings'));
settingsMenuItem.connect('activate', () => DTP_EXTENSION.openPreferences())
- if(this.sourceActor == Main.layoutManager.dummyCursor) {
+ if (this.sourceActor == Main.layoutManager.dummyCursor) {
this._appendSeparator();
let item = this._appendMenuItem(this._dtpPanel._restoreWindowList ? _('Restore Windows') : _('Show Desktop'));
item.connect('activate', this._dtpPanel._onShowDesktopButtonPress.bind(this._dtpPanel));
@@ -1967,7 +1958,7 @@ export const MyShowAppsIconMenu = class extends PopupMenu.PopupMenu {
if (GLib.find_program_in_path(info.cmd[0])) {
let item = this._appendMenuItem(_(info.title));
- item.connect('activate', function() {
+ item.connect('activate', function () {
print("activated: " + info.title);
Util.spawn(info.cmd);
});
@@ -2004,7 +1995,7 @@ export const MyShowAppsIconMenu = class extends PopupMenu.PopupMenu {
};
-export const getIconContainerStyle = function(isVertical) {
+export const getIconContainerStyle = function (isVertical) {
let style = 'padding: ';
if (SETTINGS.get_boolean('group-apps')) {
diff --git a/stylesheet.css b/stylesheet.css
index fd05e22..8b951bf 100644
--- a/stylesheet.css
+++ b/stylesheet.css
@@ -42,14 +42,11 @@
#dashtopanelScrollview .overview-tile:focus .dtp-container {
background-color: rgba(238, 238, 236, 0.1);
border-radius: 0px;
- background-color: var(--dtp-hover-background-color);
- border-radius: var(--dtp-hover-border-radius);
}
#dashtopanelScrollview .overview-tile:hover .dtp-container > .dtp-dots-container,
#dashtopanelScrollview .overview-tile:focus .dtp-container > .dtp-dots-container {
border-radius: 0px;
- border-radius: var(--dtp-hover-border-radius);
}
.dashtopanelMainPanel .dash-item-container .show-apps:hover {
@@ -72,7 +69,6 @@
#dashtopanelScrollview .overview-tile:active .dtp-container {
background-color: rgba(238, 238, 236, 0.18);
- background-color: var(--dtp-pressed-background-color);
}
#dashtopanelScrollview .overview-tile .favorite {
From bfbdca5e6400dbe9a299e9b0bc6d2e29f834e4fe Mon Sep 17 00:00:00 2001
From: Hirnmoder <19573355+Hirnmoder@users.noreply.github.com>
Date: Mon, 27 Jan 2025 19:24:19 +0100
Subject: [PATCH 18/18] Beautify DTP - Remove now unused GTK import - Fix
previously missed removal of function call to "_checkGtkVersion_cssVariables"
---
appIcons.js | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/appIcons.js b/appIcons.js
index 0fb66d1..7806fce 100644
--- a/appIcons.js
+++ b/appIcons.js
@@ -30,7 +30,6 @@ import GObject from 'gi://GObject';
import Mtk from 'gi://Mtk';
import Shell from 'gi://Shell';
import St from 'gi://St';
-import Gtk from 'gi://Gtk';
import * as AppDisplay from 'resource:///org/gnome/shell/ui/appDisplay.js';
import * as AppMenu from 'resource:///org/gnome/shell/ui/appMenu.js';
@@ -692,9 +691,7 @@ export const TaskbarAppIcon = GObject.registerClass({
let highlightColor = this._getFocusHighlightColor();
inlineStyle += "background-color: " + cssHexTocssRgba(highlightColor, SETTINGS.get_int('focus-highlight-opacity') * 0.01) + ";";
- if (!this._checkGtkVersion_cssVariables()) {
- inlineStyle += this._appicon_normalstyle;
- }
+ inlineStyle += this._appicon_normalstyle;
}
if (this._dotsContainer.get_style() != inlineStyle) {