3 Commits
56.10 ... 65.2

Author SHA1 Message Date
Artyom Zorin
bb69c75c70 Bump to version 65.2 2025-02-27 15:46:57 +00:00
Artyom Zorin
f46cab04cb Bump to version 56.11 2024-10-20 18:00:25 +01:00
Artyom Zorin
de47b50149 Updated French translations based on contribution from Zac0511 2024-10-20 17:55:55 +01:00
41 changed files with 3727 additions and 4187 deletions

View File

@@ -20,7 +20,7 @@ INSTALLNAME = zorin-taskbar@zorinos.com
# in the metadata and in the generated zip-file. # in the metadata and in the generated zip-file.
ifdef VERSION ifdef VERSION
else else
VERSION = 56 VERSION = 65
endif endif
ifdef TARGET ifdef TARGET

View File

@@ -22,40 +22,31 @@
*/ */
const Clutter = imports.gi.Clutter; import Clutter from 'gi://Clutter';
const Gio = imports.gi.Gio; import GLib from 'gi://GLib';
const GLib = imports.gi.GLib; import Gio from 'gi://Gio';
const Gtk = imports.gi.Gtk; import Graphene from 'gi://Graphene';
const GObject = imports.gi.GObject; import GObject from 'gi://GObject';
const Signals = imports.signals; import Mtk from 'gi://Mtk';
const Meta = imports.gi.Meta; import Shell from 'gi://Shell';
const Shell = imports.gi.Shell; import St from 'gi://St';
const St = imports.gi.St;
const Mainloop = imports.mainloop;
const Config = imports.misc.config; import * as AppDisplay from 'resource:///org/gnome/shell/ui/appDisplay.js';
const AppDisplay = imports.ui.appDisplay; import * as AppMenu from 'resource:///org/gnome/shell/ui/appMenu.js';
const AppMenu = imports.ui.appMenu; import * as Dash from 'resource:///org/gnome/shell/ui/dash.js';
if (Config.PACKAGE_VERSION < '42') { import * as DND from 'resource:///org/gnome/shell/ui/dnd.js';
const AppMenu = imports.ui.appDisplay; import * as Main from 'resource:///org/gnome/shell/ui/main.js';
} import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
const AppFavorites = imports.ui.appFavorites; import * as Util from 'resource:///org/gnome/shell/misc/util.js';
const Dash = imports.ui.dash; import * as BoxPointer from 'resource:///org/gnome/shell/ui/boxpointer.js';
const DND = imports.ui.dnd; import {EventEmitter} from 'resource:///org/gnome/shell/misc/signals.js';
const IconGrid = imports.ui.iconGrid;
const Main = imports.ui.main;
const PopupMenu = imports.ui.popupMenu;
const Util = imports.misc.util;
const Workspace = imports.ui.workspace;
const BoxPointer = imports.ui.boxpointer;
const ExtensionUtils = imports.misc.extensionUtils
const Me = ExtensionUtils.getCurrentExtension(); import * as Utils from './utils.js';
const Utils = Me.imports.utils; import * as PanelSettings from './panelSettings.js';
const PanelSettings = Me.imports.panelSettings; import * as Taskbar from './taskbar.js';
const Taskbar = Me.imports.taskbar; import * as Progress from './progress.js';
const Progress = Me.imports.progress; import {DTP_EXTENSION, SETTINGS, DESKTOPSETTINGS, EXTENSION_PATH} from './extension.js';
const _ = imports.gettext.domain(Utils.TRANSLATION_DOMAIN).gettext; import {gettext as _, ngettext} from 'resource:///org/gnome/shell/extensions/extension.js';
//timeout names //timeout names
const T2 = 'mouseScrollTimeout'; const T2 = 'mouseScrollTimeout';
@@ -73,7 +64,7 @@ const DOUBLE_CLICK_DELAY_MS = 450;
let LABEL_GAP = 5; let LABEL_GAP = 5;
let MAX_INDICATORS = 4; let MAX_INDICATORS = 4;
var DEFAULT_PADDING_SIZE = 4; export const DEFAULT_PADDING_SIZE = 4;
let DOT_STYLE = { let DOT_STYLE = {
DOTS: "DOTS", DOTS: "DOTS",
@@ -113,7 +104,7 @@ let tracker = Shell.WindowTracker.get_default();
* *
*/ */
var TaskbarAppIcon = GObject.registerClass({ export const TaskbarAppIcon = GObject.registerClass({
}, class TaskbarAppIcon extends AppDisplay.AppIcon { }, class TaskbarAppIcon extends AppDisplay.AppIcon {
_init(appInfo, panel, iconParams, previewMenu, iconAnimator) { _init(appInfo, panel, iconParams, previewMenu, iconAnimator) {
@@ -152,13 +143,13 @@ var TaskbarAppIcon = GObject.registerClass({
this._dot.set_width(0); this._dot.set_width(0);
this._isGroupApps = Me.settings.get_boolean('group-apps'); this._isGroupApps = SETTINGS.get_boolean('group-apps');
this._container = new St.Widget({ style_class: 'dtp-container', layout_manager: new Clutter.BinLayout() }); 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({ layout_manager: new Clutter.BinLayout() });
this._dtpIconContainer = new St.Widget({ layout_manager: new Clutter.BinLayout(), style: getIconContainerStyle(panel.checkIfVertical()) }); this._dtpIconContainer = new St.Widget({ layout_manager: new Clutter.BinLayout(), style: getIconContainerStyle(panel.checkIfVertical()) });
this.remove_actor(this._iconContainer); this.remove_child(this._iconContainer);
this._dtpIconContainer.add_child(this._iconContainer); this._dtpIconContainer.add_child(this._iconContainer);
@@ -208,7 +199,7 @@ var TaskbarAppIcon = GObject.registerClass({
this._stateChangedId = this.app.connect('windows-changed', this.onWindowsChanged.bind(this)); this._stateChangedId = this.app.connect('windows-changed', this.onWindowsChanged.bind(this));
if (!this.window) { if (!this.window) {
if (Me.settings.get_boolean('isolate-monitors')) { if (SETTINGS.get_boolean('isolate-monitors')) {
this._windowEnteredMonitorId = Utils.DisplayWrapper.getScreen().connect('window-entered-monitor', this.onWindowEnteredOrLeft.bind(this)); 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._windowLeftMonitorId = Utils.DisplayWrapper.getScreen().connect('window-left-monitor', this.onWindowEnteredOrLeft.bind(this));
} }
@@ -234,12 +225,12 @@ var TaskbarAppIcon = GObject.registerClass({
this._hoverChangeId = this.connect('notify::hover', () => this._onAppIconHoverChanged()); this._hoverChangeId = this.connect('notify::hover', () => this._onAppIconHoverChanged());
this._dtpSettingsSignalIds = [ this._dtpSettingsSignalIds = [
Me.settings.connect('changed::panel-positions', this._settingsChangeRefresh.bind(this)), SETTINGS.connect('changed::panel-positions', this._settingsChangeRefresh.bind(this)),
Me.settings.connect('changed::dot-style-focused', this._settingsChangeRefresh.bind(this)), SETTINGS.connect('changed::dot-style-focused', this._settingsChangeRefresh.bind(this)),
Me.settings.connect('changed::dot-style-unfocused', this._settingsChangeRefresh.bind(this)), SETTINGS.connect('changed::dot-style-unfocused', this._settingsChangeRefresh.bind(this)),
Me.settings.connect('changed::panel-positions', this._settingsChangeRefresh.bind(this)), SETTINGS.connect('changed::panel-positions', this._settingsChangeRefresh.bind(this)),
Me.settings.connect('changed::group-apps-label-max-width', this._updateWindowTitleStyle.bind(this)), SETTINGS.connect('changed::group-apps-label-max-width', this._updateWindowTitleStyle.bind(this)),
Me.settings.connect('changed::group-apps-use-fixed-width', this._updateWindowTitleStyle.bind(this)), SETTINGS.connect('changed::group-apps-use-fixed-width', this._updateWindowTitleStyle.bind(this)),
] ]
this._progressIndicator = new Progress.ProgressIndicator(this, panel.progressManager); this._progressIndicator = new Progress.ProgressIndicator(this, panel.progressManager);
@@ -252,8 +243,8 @@ var TaskbarAppIcon = GObject.registerClass({
} }
shouldShowTooltip() { shouldShowTooltip() {
if (!Me.settings.get_boolean('show-tooltip') || if (!SETTINGS.get_boolean('show-tooltip') ||
(!this.isLauncher && Me.settings.get_boolean("show-window-previews") && (!this.isLauncher && SETTINGS.get_boolean("show-window-previews") &&
this.getAppIconInterestingWindows().length > 0)) { this.getAppIconInterestingWindows().length > 0)) {
return false; return false;
} else { } else {
@@ -264,7 +255,7 @@ var TaskbarAppIcon = GObject.registerClass({
} }
_onAppIconHoverChanged() { _onAppIconHoverChanged() {
if (!Me.settings.get_boolean('show-window-previews') || if (!SETTINGS.get_boolean('show-window-previews') ||
(!this.window && !this._nWindows)) { (!this.window && !this._nWindows)) {
return; return;
} }
@@ -321,7 +312,7 @@ var TaskbarAppIcon = GObject.registerClass({
} }
for (let i = 0; i < this._dtpSettingsSignalIds.length; ++i) { for (let i = 0; i < this._dtpSettingsSignalIds.length; ++i) {
Me.settings.disconnect(this._dtpSettingsSignalIds[i]); SETTINGS.disconnect(this._dtpSettingsSignalIds[i]);
} }
} }
@@ -354,7 +345,7 @@ var TaskbarAppIcon = GObject.registerClass({
if (this.get_stage() == null) if (this.get_stage() == null)
return; return;
let rect = new Meta.Rectangle(); let rect = new Mtk.Rectangle();
[rect.x, rect.y] = this.get_transformed_position(); [rect.x, rect.y] = this.get_transformed_position();
[rect.width, rect.height] = this.get_transformed_size(); [rect.width, rect.height] = this.get_transformed_size();
@@ -366,7 +357,7 @@ var TaskbarAppIcon = GObject.registerClass({
} }
_onMouseScroll(actor, event) { _onMouseScroll(actor, event) {
let scrollAction = Me.settings.get_string('scroll-icon-action'); let scrollAction = SETTINGS.get_string('scroll-icon-action');
if (scrollAction === 'NOTHING' || (!this.window && !this._nWindows)) { if (scrollAction === 'NOTHING' || (!this.window && !this._nWindows)) {
return; return;
@@ -410,12 +401,12 @@ var TaskbarAppIcon = GObject.registerClass({
if (!this._dashItemContainer.animatingOut) if (!this._dashItemContainer.animatingOut)
// don't draw and trigger more animations if the icon is in the middle of // don't draw and trigger more animations if the icon is in the middle of
// being removed from the panel // being removed from the panel
this._drawRunningIndicator(this._focusedDots, Me.settings.get_string('dot-style-focused'), true); this._drawRunningIndicator(this._focusedDots, SETTINGS.get_string('dot-style-focused'), true);
}); });
this._unfocusedDots.connect('repaint', () => { this._unfocusedDots.connect('repaint', () => {
if (!this._dashItemContainer.animatingOut) if (!this._dashItemContainer.animatingOut)
this._drawRunningIndicator(this._unfocusedDots, Me.settings.get_string('dot-style-unfocused'), false); this._drawRunningIndicator(this._unfocusedDots, SETTINGS.get_string('dot-style-unfocused'), false);
}); });
this._dotsContainer.add_child(this._unfocusedDots); this._dotsContainer.add_child(this._unfocusedDots);
@@ -432,11 +423,11 @@ var TaskbarAppIcon = GObject.registerClass({
} }
_resetDots() { _resetDots() {
let position = PanelSettings.getPanelPosition(Me.settings, this.dtpPanel.monitor.index); let position = PanelSettings.getPanelPosition(SETTINGS, this.dtpPanel.monitor.index);
let isHorizontalDots = position == DOT_POSITION.TOP || position == DOT_POSITION.BOTTOM; let isHorizontalDots = position == DOT_POSITION.TOP || position == DOT_POSITION.BOTTOM;
let sizeProp = isHorizontalDots ? 'width' : 'height'; let sizeProp = isHorizontalDots ? 'width' : 'height';
let focusedDotStyle = Me.settings.get_string('dot-style-focused'); let focusedDotStyle = SETTINGS.get_string('dot-style-focused');
let unfocusedDotStyle = Me.settings.get_string('dot-style-unfocused'); let unfocusedDotStyle = SETTINGS.get_string('dot-style-unfocused');
this._focusedIsWide = this._isWideDotStyle(focusedDotStyle); this._focusedIsWide = this._isWideDotStyle(focusedDotStyle);
this._unfocusedIsWide = this._isWideDotStyle(unfocusedDotStyle); this._unfocusedIsWide = this._isWideDotStyle(unfocusedDotStyle);
@@ -465,9 +456,9 @@ var TaskbarAppIcon = GObject.registerClass({
_updateWindowTitleStyle() { _updateWindowTitleStyle() {
if (this._windowTitle) { if (this._windowTitle) {
let useFixedWidth = Me.settings.get_boolean('group-apps-use-fixed-width'); let useFixedWidth = SETTINGS.get_boolean('group-apps-use-fixed-width');
let scaleFactor = Utils.getScaleFactor(); let scaleFactor = Utils.getScaleFactor();
let maxLabelWidth = Me.settings.get_int('group-apps-label-max-width') * scaleFactor; let maxLabelWidth = SETTINGS.get_int('group-apps-label-max-width') * scaleFactor;
let variableWidth = !useFixedWidth || this.dtpPanel.checkIfVertical() || this.dtpPanel.taskbar.fullScrollView; let variableWidth = !useFixedWidth || this.dtpPanel.checkIfVertical() || this.dtpPanel.taskbar.fullScrollView;
this._windowTitle[(maxLabelWidth > 0 ? 'show' : 'hide')](); this._windowTitle[(maxLabelWidth > 0 ? 'show' : 'hide')]();
@@ -504,8 +495,8 @@ var TaskbarAppIcon = GObject.registerClass({
_checkIfMonitorHasFocus() { _checkIfMonitorHasFocus() {
return global.display.focus_window && return global.display.focus_window &&
(!Me.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.
!Me.settings.get_boolean('isolate-monitors') || !SETTINGS.get_boolean('isolate-monitors') ||
global.display.focus_window.get_monitor() === this.dtpPanel.monitor.index); global.display.focus_window.get_monitor() === this.dtpPanel.monitor.index);
} }
@@ -540,7 +531,7 @@ var TaskbarAppIcon = GObject.registerClass({
// We want to keep the item hovered while the menu is up // We want to keep the item hovered while the menu is up
this._menu.blockSourceEvents = true; this._menu.blockSourceEvents = true;
Main.uiGroup.add_actor(this._menu.actor); Main.uiGroup.add_child(this._menu.actor);
this._menuManager.addMenu(this._menu); this._menuManager.addMenu(this._menu);
} }
this._menu.updateQuitText(); this._menu.updateQuitText();
@@ -561,7 +552,7 @@ var TaskbarAppIcon = GObject.registerClass({
_onOverviewWindowDragEnd(windowTracker) { _onOverviewWindowDragEnd(windowTracker) {
this._timeoutsHandler.add([T4, 0, () => { this._timeoutsHandler.add([T4, 0, () => {
if (Me.settings.get_boolean('isolate-workspaces')) if (SETTINGS.get_boolean('isolate-workspaces'))
this._updateWindows() this._updateWindows()
this._displayProperIndicator() this._displayProperIndicator()
@@ -578,7 +569,7 @@ var TaskbarAppIcon = GObject.registerClass({
_displayProperIndicator() { _displayProperIndicator() {
let isFocused = this._isFocusedWindow(); let isFocused = this._isFocusedWindow();
let position = PanelSettings.getPanelPosition(Me.settings, this.dtpPanel.monitor.index); let position = PanelSettings.getPanelPosition(SETTINGS, this.dtpPanel.monitor.index);
let isHorizontalDots = position == DOT_POSITION.TOP || position == DOT_POSITION.BOTTOM; let isHorizontalDots = position == DOT_POSITION.TOP || position == DOT_POSITION.BOTTOM;
this._setIconStyle(isFocused); this._setIconStyle(isFocused);
@@ -713,20 +704,23 @@ var TaskbarAppIcon = GObject.registerClass({
if (button && button == 2 ) { if (button && button == 2 ) {
if (modifiers & Clutter.ModifierType.SHIFT_MASK) if (modifiers & Clutter.ModifierType.SHIFT_MASK)
buttonAction = Me.settings.get_string('shift-middle-click-action'); buttonAction = SETTINGS.get_string('shift-middle-click-action');
else else
buttonAction = Me.settings.get_string('middle-click-action'); buttonAction = SETTINGS.get_string('middle-click-action');
} }
else if (button && button == 1) { // fixed issue #1676 by checking for button 0 or 1 to also handle touchscreen
// input, probably not the proper fix as i'm not aware button 0 should exist
// but from using this fix for months it seems to not create any issues
else if (button === 0 || button === 1) {
let now = global.get_current_time() let now = global.get_current_time()
doubleClick = now - this.lastClick < DOUBLE_CLICK_DELAY_MS doubleClick = now - this.lastClick < DOUBLE_CLICK_DELAY_MS
this.lastClick = now this.lastClick = now
if (modifiers & Clutter.ModifierType.SHIFT_MASK) if (modifiers & Clutter.ModifierType.SHIFT_MASK)
buttonAction = Me.settings.get_string('shift-click-action'); buttonAction = SETTINGS.get_string('shift-click-action');
else else
buttonAction = Me.settings.get_string('click-action'); buttonAction = SETTINGS.get_string('click-action');
} }
let closePreview = () => this._previewMenu.close(true); let closePreview = () => this._previewMenu.close(true);
@@ -918,7 +912,7 @@ var TaskbarAppIcon = GObject.registerClass({
_getRunningIndicatorColor(isFocused) { _getRunningIndicatorColor(isFocused) {
let color; let color;
const fallbackColor = new Clutter.Color({ red: 82, green: 148, blue: 226, alpha: 255 }); const fallbackColor = new Utils.ColorUtils.Color({ red: 82, green: 148, blue: 226, alpha: 255 });
// Re-use the style - background color, and border width and color - // Re-use the style - background color, and border width and color -
// of the default dot // of the default dot
@@ -938,7 +932,7 @@ var TaskbarAppIcon = GObject.registerClass({
return; return;
} }
let position = PanelSettings.getPanelPosition(Me.settings, this.dtpPanel.monitor.index); let position = PanelSettings.getPanelPosition(SETTINGS, this.dtpPanel.monitor.index);
let isHorizontalDots = position == DOT_POSITION.TOP || position == DOT_POSITION.BOTTOM; let isHorizontalDots = position == DOT_POSITION.TOP || position == DOT_POSITION.BOTTOM;
let bodyColor = this._getRunningIndicatorColor(isFocused); let bodyColor = this._getRunningIndicatorColor(isFocused);
let [areaWidth, areaHeight] = area.get_surface_size(); let [areaWidth, areaHeight] = area.get_surface_size();
@@ -964,29 +958,29 @@ var TaskbarAppIcon = GObject.registerClass({
if (type == DOT_STYLE.SOLID || type == DOT_STYLE.METRO) { if (type == DOT_STYLE.SOLID || type == DOT_STYLE.METRO) {
if (type == DOT_STYLE.SOLID || n <= 1) { if (type == DOT_STYLE.SOLID || n <= 1) {
cr.translate(startX, startY); cr.translate(startX, startY);
Clutter.cairo_set_source_color(cr, bodyColor); cr.setSourceColor(bodyColor);
cr.newSubPath(); cr.newSubPath();
cr.rectangle.apply(cr, [0, 0].concat(isHorizontalDots ? [areaSize, size] : [size, areaSize])); cr.rectangle.apply(cr, [0, 0].concat(isHorizontalDots ? [areaSize, size] : [size, areaSize]));
cr.fill(); cr.fill();
} else { } else {
let blackenedLength = (1 / 48) * areaSize; // need to scale with the SVG for the stacked highlight let blackenedLength = (1 / 48) * areaSize; // need to scale with the SVG for the stacked highlight
let darkenedLength = isFocused ? (2 / 48) * areaSize : (10 / 48) * areaSize; let darkenedLength = isFocused ? (2 / 48) * areaSize : (10 / 48) * areaSize;
let blackenedColor = bodyColor.shade(.3); let blackenedColor = new Utils.ColorUtils.Color({ red: bodyColor.red * .3, green: bodyColor.green * .3, blue: bodyColor.blue * .3, alpha: bodyColor.alpha });
let darkenedColor = bodyColor.shade(.7); let darkenedColor = new Utils.ColorUtils.Color({ red: bodyColor.red * .7, green: bodyColor.green * .7, blue: bodyColor.blue * .7, alpha: bodyColor.alpha });
let solidDarkLength = areaSize - darkenedLength; let solidDarkLength = areaSize - darkenedLength;
let solidLength = solidDarkLength - blackenedLength; let solidLength = solidDarkLength - blackenedLength;
cr.translate(startX, startY); cr.translate(startX, startY);
Clutter.cairo_set_source_color(cr, bodyColor); cr.setSourceColor(bodyColor);
cr.newSubPath(); cr.newSubPath();
cr.rectangle.apply(cr, [0, 0].concat(isHorizontalDots ? [solidLength, size] : [size, solidLength])); cr.rectangle.apply(cr, [0, 0].concat(isHorizontalDots ? [solidLength, size] : [size, solidLength]));
cr.fill(); cr.fill();
Clutter.cairo_set_source_color(cr, blackenedColor); cr.setSourceColor(blackenedColor);
cr.newSubPath(); cr.newSubPath();
cr.rectangle.apply(cr, isHorizontalDots ? [solidLength, 0, 1, size] : [0, solidLength, size, 1]); cr.rectangle.apply(cr, isHorizontalDots ? [solidLength, 0, 1, size] : [0, solidLength, size, 1]);
cr.fill(); cr.fill();
Clutter.cairo_set_source_color(cr, darkenedColor); cr.setSourceColor(darkenedColor);
cr.newSubPath(); cr.newSubPath();
cr.rectangle.apply(cr, isHorizontalDots ? [solidDarkLength, 0, darkenedLength, size] : [0, solidDarkLength, size, darkenedLength]); cr.rectangle.apply(cr, isHorizontalDots ? [solidDarkLength, 0, darkenedLength, size] : [0, solidDarkLength, size, darkenedLength]);
cr.fill(); cr.fill();
@@ -1062,7 +1056,7 @@ var TaskbarAppIcon = GObject.registerClass({
translate(); translate();
Clutter.cairo_set_source_color(cr, bodyColor); cr.setSourceColor(bodyColor);
preDraw(); preDraw();
for (let i = 0; i < n; i++) { for (let i = 0; i < n; i++) {
cr.newSubPath(); cr.newSubPath();
@@ -1141,7 +1135,7 @@ var TaskbarAppIcon = GObject.registerClass({
}); });
TaskbarAppIcon.prototype.scaleAndFade = TaskbarAppIcon.prototype.undoScaleAndFade = () => {}; TaskbarAppIcon.prototype.scaleAndFade = TaskbarAppIcon.prototype.undoScaleAndFade = () => {};
function minimizeWindow(app, param, monitor){ export function minimizeWindow(app, param, monitor){
// Param true make all app windows minimize // Param true make all app windows minimize
let windows = getInterestingWindows(app, monitor); let windows = getInterestingWindows(app, monitor);
let current_workspace = Utils.DisplayWrapper.getWorkspaceManager().get_active_workspace(); let current_workspace = Utils.DisplayWrapper.getWorkspaceManager().get_active_workspace();
@@ -1161,7 +1155,7 @@ function minimizeWindow(app, param, monitor){
* By default only non minimized windows are activated. * By default only non minimized windows are activated.
* This activates all windows in the current workspace. * This activates all windows in the current workspace.
*/ */
function activateAllWindows(app, monitor){ export function activateAllWindows(app, monitor){
// First activate first window so workspace is switched if needed, // First activate first window so workspace is switched if needed,
// then activate all other app windows in the current workspace. // then activate all other app windows in the current workspace.
@@ -1180,13 +1174,13 @@ function activateAllWindows(app, monitor){
} }
} }
function activateFirstWindow(app, monitor){ export function activateFirstWindow(app, monitor){
let windows = getInterestingWindows(app, monitor); let windows = getInterestingWindows(app, monitor);
Main.activateWindow(windows[0]); Main.activateWindow(windows[0]);
} }
function cycleThroughWindows(app, reversed, shouldMinimize, monitor) { export function cycleThroughWindows(app, reversed, shouldMinimize, monitor) {
// Store for a little amount of time last clicked app and its windows // Store for a little amount of time last clicked app and its windows
// since the order changes upon window interaction // since the order changes upon window interaction
let MEMORY_TIME=3000; let MEMORY_TIME=3000;
@@ -1197,9 +1191,10 @@ function cycleThroughWindows(app, reversed, shouldMinimize, monitor) {
app_windows.push("MINIMIZE"); app_windows.push("MINIMIZE");
if (recentlyClickedAppLoopId > 0) if (recentlyClickedAppLoopId > 0)
Mainloop.source_remove(recentlyClickedAppLoopId); GLib.Source.remove(recentlyClickedAppLoopId);
recentlyClickedAppLoopId = Mainloop.timeout_add(MEMORY_TIME, resetRecentlyClickedApp); recentlyClickedAppLoopId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
MEMORY_TIME, resetRecentlyClickedApp);
// If there isn't already a list of windows for the current app, // If there isn't already a list of windows for the current app,
// or the stored list is outdated, use the current windows list. // or the stored list is outdated, use the current windows list.
@@ -1227,9 +1222,9 @@ function cycleThroughWindows(app, reversed, shouldMinimize, monitor) {
Main.activateWindow(recentlyClickedAppWindows[index]); Main.activateWindow(recentlyClickedAppWindows[index]);
} }
function resetRecentlyClickedApp() { export function resetRecentlyClickedApp() {
if (recentlyClickedAppLoopId > 0) if (recentlyClickedAppLoopId > 0)
Mainloop.source_remove(recentlyClickedAppLoopId); GLib.Source.remove(recentlyClickedAppLoopId);
recentlyClickedAppLoopId=0; recentlyClickedAppLoopId=0;
recentlyClickedApp =null; recentlyClickedApp =null;
@@ -1240,7 +1235,7 @@ function resetRecentlyClickedApp() {
return false; return false;
} }
function closeAllWindows(app, monitor) { export function closeAllWindows(app, monitor) {
let windows = getInterestingWindows(app, monitor); let windows = getInterestingWindows(app, monitor);
for (let i = 0; i < windows.length; i++) for (let i = 0; i < windows.length; i++)
windows[i].delete(global.get_current_time()); windows[i].delete(global.get_current_time());
@@ -1248,7 +1243,7 @@ function closeAllWindows(app, monitor) {
// Filter out unnecessary windows, for instance // Filter out unnecessary windows, for instance
// nautilus desktop window. // nautilus desktop window.
function getInterestingWindows(app, monitor, isolateMonitors) { export function getInterestingWindows(app, monitor, isolateMonitors) {
let windows = ( let windows = (
app ? app ?
app.get_windows() : app.get_windows() :
@@ -1257,13 +1252,13 @@ function getInterestingWindows(app, monitor, isolateMonitors) {
// When using workspace or monitor isolation, we filter out windows // 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 // that are not in the current workspace or on the same monitor as the appicon
if (Me.settings.get_boolean('isolate-workspaces')) if (SETTINGS.get_boolean('isolate-workspaces'))
windows = windows.filter(function(w) { windows = windows.filter(function(w) {
return w.get_workspace() && return w.get_workspace() &&
w.get_workspace() == Utils.getCurrentWorkspace(); w.get_workspace() == Utils.getCurrentWorkspace();
}); });
if (monitor && Me.settings.get_boolean('multi-monitors') && (isolateMonitors || Me.settings.get_boolean('isolate-monitors'))) { 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; return w.get_monitor() == monitor.index;
}); });
@@ -1272,17 +1267,17 @@ function getInterestingWindows(app, monitor, isolateMonitors) {
return windows; return windows;
} }
function cssHexTocssRgba(cssHex, opacity) { export function cssHexTocssRgba(cssHex, opacity) {
var bigint = parseInt(cssHex.slice(1), 16); let bigint = parseInt(cssHex.slice(1), 16);
var r = (bigint >> 16) & 255; let r = (bigint >> 16) & 255;
var g = (bigint >> 8) & 255; let g = (bigint >> 8) & 255;
var b = bigint & 255; let b = bigint & 255;
return 'rgba(' + [r, g, b].join(',') + ',' + opacity + ')'; return 'rgba(' + [r, g, b].join(',') + ',' + opacity + ')';
} }
function getIconPadding(monitorIndex) { export function getIconPadding(monitorIndex) {
let panelSize = PanelSettings.getPanelSize(Me.settings, monitorIndex); let panelSize = PanelSettings.getPanelSize(SETTINGS, monitorIndex);
let padding = Taskbar.APPICON_PADDING; let padding = Taskbar.APPICON_PADDING;
let availSize = panelSize - Taskbar.MIN_ICON_SIZE - panelSize % 2; let availSize = panelSize - Taskbar.MIN_ICON_SIZE - panelSize % 2;
@@ -1302,7 +1297,7 @@ function getIconPadding(monitorIndex) {
* (https://github.com/deuill/shell-extension-quitfromdash) * (https://github.com/deuill/shell-extension-quitfromdash)
*/ */
class TaskbarSecondaryMenu extends AppMenu.AppMenu { export class TaskbarSecondaryMenu extends AppMenu.AppMenu {
constructor(source, side) { constructor(source, side) {
super(source, side); super(source, side);
@@ -1324,7 +1319,7 @@ function getIconPadding(monitorIndex) {
if (count == 1) if (count == 1)
quitFromTaskbarMenuText = _("Quit"); quitFromTaskbarMenuText = _("Quit");
else else
quitFromTaskbarMenuText = _("Quit") + ' ' + count + ' ' + _("Windows"); quitFromTaskbarMenuText = ngettext('Quit %d Window', 'Quit %d Windows', count).format(count);
this._quitItem.label.set_text(quitFromTaskbarMenuText); this._quitItem.label.set_text(quitFromTaskbarMenuText);
} }
@@ -1339,16 +1334,19 @@ function getIconPadding(monitorIndex) {
if (windows.length == this._app.get_windows().length) if (windows.length == this._app.get_windows().length)
this._app.request_quit() this._app.request_quit()
GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, () => {
windows.forEach((w) => !!w.get_compositor_private() && w.delete(time++));
Mainloop.idle_add(() => return GLib.SOURCE_REMOVE;
windows.forEach((w) => !!w.get_compositor_private() && w.delete(time++))) });
} }
}; };
/** /**
* This function is used for extendDashItemContainer * This function is used for extendDashItemContainer
*/ */
function ItemShowLabel() { export function ItemShowLabel() {
if (!this._labelText) if (!this._labelText)
return; return;
@@ -1411,7 +1409,7 @@ function ItemShowLabel() {
time: duration, time: duration,
transition: 'easeOutQuad', transition: 'easeOutQuad',
}); });
}; }
/** /**
* A wrapper class around the ShowAppsIcon class. * A wrapper class around the ShowAppsIcon class.
@@ -1425,9 +1423,11 @@ function ItemShowLabel() {
* use of this class in place of the original showAppsButton. * use of this class in place of the original showAppsButton.
* *
*/ */
var ShowAppsIconWrapper = class { export const ShowAppsIconWrapper = class extends EventEmitter {
constructor(dtpPanel) { constructor(dtpPanel) {
super();
this.realShowAppsIcon = new Dash.ShowAppsIcon(); this.realShowAppsIcon = new Dash.ShowAppsIcon();
/* the variable equivalent to toggleButton has a different name in the appIcon class /* the variable equivalent to toggleButton has a different name in the appIcon class
@@ -1520,7 +1520,7 @@ function ItemShowLabel() {
// We want to keep the item hovered while the menu is up // We want to keep the item hovered while the menu is up
this._menu.blockSourceEvents = true; this._menu.blockSourceEvents = true;
Main.uiGroup.add_actor(this._menu.actor); Main.uiGroup.add_child(this._menu.actor);
this._menuManager.addMenu(this._menu); this._menuManager.addMenu(this._menu);
} }
} }
@@ -1541,7 +1541,7 @@ function ItemShowLabel() {
} }
shouldShowTooltip() { shouldShowTooltip() {
return Me.settings.get_boolean('show-tooltip') && return SETTINGS.get_boolean('show-tooltip') &&
(this.actor.hover && (!this._menu || !this._menu.isOpen)); (this.actor.hover && (!this._menu || !this._menu.isOpen));
} }
@@ -1549,12 +1549,11 @@ function ItemShowLabel() {
this.realShowAppsIcon.destroy(); this.realShowAppsIcon.destroy();
} }
}; };
Signals.addSignalMethods(ShowAppsIconWrapper.prototype);
/** /**
* A menu for the showAppsIcon * A menu for the showAppsIcon
*/ */
var MyShowAppsIconMenu = class extends PopupMenu.PopupMenu { export const MyShowAppsIconMenu = class extends PopupMenu.PopupMenu {
constructor(actor, dtpPanel) { constructor(actor, dtpPanel) {
super(actor, 0, dtpPanel.getPosition()); super(actor, 0, dtpPanel.getPosition());
@@ -1590,19 +1589,19 @@ var MyShowAppsIconMenu = class extends PopupMenu.PopupMenu {
}); });
this._appendList( this._appendList(
Me.settings.get_strv('panel-context-menu-commands'), SETTINGS.get_strv('panel-context-menu-commands'),
Me.settings.get_strv('panel-context-menu-titles') SETTINGS.get_strv('panel-context-menu-titles')
) )
this._appendSeparator(); this._appendSeparator();
let lockTaskbarMenuItem = this._appendMenuItem(Me.settings.get_boolean('taskbar-locked') ? _('Unlock taskbar') : _('Lock taskbar')); let lockTaskbarMenuItem = this._appendMenuItem(SETTINGS.get_boolean('taskbar-locked') ? _('Unlock taskbar') : _('Lock taskbar'));
lockTaskbarMenuItem.connect('activate', () => { lockTaskbarMenuItem.connect('activate', () => {
Me.settings.set_boolean('taskbar-locked', !Me.settings.get_boolean('taskbar-locked')); SETTINGS.set_boolean('taskbar-locked', !SETTINGS.get_boolean('taskbar-locked'));
}); });
let settingsMenuItem = this._appendMenuItem(_('Taskbar Settings')); let settingsMenuItem = this._appendMenuItem(_('Taskbar Settings'));
settingsMenuItem.connect('activate', () => ExtensionUtils.openPrefs()) settingsMenuItem.connect('activate', () => DTP_EXTENSION.openPreferences())
if(this.sourceActor == Main.layoutManager.dummyCursor) { if(this.sourceActor == Main.layoutManager.dummyCursor) {
this._appendSeparator(); this._appendSeparator();
@@ -1614,7 +1613,7 @@ var MyShowAppsIconMenu = class extends PopupMenu.PopupMenu {
// Only add menu entries for commands that exist in path // Only add menu entries for commands that exist in path
_appendItem(info) { _appendItem(info) {
if (Utils.checkIfCommandExists(info.cmd[0])) { if (GLib.find_program_in_path(info.cmd[0])) {
let item = this._appendMenuItem(_(info.title)); let item = this._appendMenuItem(_(info.title));
item.connect('activate', function() { item.connect('activate', function() {
@@ -1632,8 +1631,8 @@ var MyShowAppsIconMenu = class extends PopupMenu.PopupMenu {
return; return;
} }
for (var entry = 0; entry < commandList.length; entry++) { for (let entry = 0; entry < commandList.length; entry++) {
_appendItem({ this._appendItem({
title: titleList[entry], title: titleList[entry],
cmd: commandList[entry].split(' ') cmd: commandList[entry].split(' ')
}); });
@@ -1654,10 +1653,10 @@ var MyShowAppsIconMenu = class extends PopupMenu.PopupMenu {
}; };
var getIconContainerStyle = function(isVertical) { export const getIconContainerStyle = function(isVertical) {
let style = 'padding: '; let style = 'padding: ';
if (Me.settings.get_boolean('group-apps')) { if (SETTINGS.get_boolean('group-apps')) {
style += (isVertical ? '0;' : '0 ' + DEFAULT_PADDING_SIZE + 'px;'); style += (isVertical ? '0;' : '0 ' + DEFAULT_PADDING_SIZE + 'px;');
} else { } else {
style += (isVertical ? '' : '0 ') + DEFAULT_PADDING_SIZE + 'px;'; style += (isVertical ? '' : '0 ') + DEFAULT_PADDING_SIZE + 'px;';

25
debian/changelog vendored
View File

@@ -1,3 +1,28 @@
gnome-shell-extension-zorin-taskbar (65.2) noble; urgency=medium
* Separated floating rounded theme from intellihide as an independent
styling option
-- Artyom Zorin <azorin@zoringroup.com> Thu, 27 Feb 2025 13:57:03 +0000
gnome-shell-extension-zorin-taskbar (65.1) noble; urgency=medium
* Fixed various bugs
-- Artyom Zorin <azorin@zoringroup.com> Wed, 26 Feb 2025 12:20:34 +0000
gnome-shell-extension-zorin-taskbar (65) noble; urgency=medium
* Re-based on upstream version 65
-- Artyom Zorin <azorin@zoringroup.com> Tue, 25 Feb 2025 22:29:43 +0000
gnome-shell-extension-zorin-taskbar (56.11) jammy; urgency=medium
* Updated French translations
-- Artyom Zorin <azorin@zoringroup.com> Sun, 20 Oct 2024 17:58:19 +0100
gnome-shell-extension-zorin-taskbar (56.10) jammy; urgency=medium gnome-shell-extension-zorin-taskbar (56.10) jammy; urgency=medium
* Bug fix for window previews * Bug fix for window previews

4
debian/control vendored
View File

@@ -8,6 +8,6 @@ Rules-Requires-Root: no
Package: gnome-shell-extension-zorin-taskbar Package: gnome-shell-extension-zorin-taskbar
Architecture: all Architecture: all
Depends: ${misc:Depends}, gnome-shell (>= 42), gnome-shell (<< 45~) Depends: ${misc:Depends}, gnome-shell (>= 46), gnome-shell (<< 48~)
Description: Zorin Taskbar extension Description: Zorin Taskbar extension
A taskbar extension for the Zorin Desktop environment. A taskbar extension for the Zorin OS desktop.

4
debian/copyright vendored
View File

@@ -2,8 +2,8 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: gnome-shell-extension-zorin-taskbar Upstream-Name: gnome-shell-extension-zorin-taskbar
Files: * Files: *
Copyright: 2016-2021, Jason DeRose (https://github.com/jderose9) Copyright: 2016-2025, Jason DeRose (https://github.com/jderose9)
2016-2023, Zorin OS Technologies Ltd. 2016-2025, Zorin OS Technologies Ltd.
License: GPL-2+ License: GPL-2+
Files: po/cs.po Files: po/cs.po

View File

@@ -55,16 +55,22 @@
* *
*******************************************************************************/ *******************************************************************************/
const GLib = imports.gi.GLib; import GLib from 'gi://GLib';
const Main = imports.ui.main; import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import * as ExtensionUtils from 'resource:///org/gnome/shell/misc/extensionUtils.js';
const ExtensionUtils = imports.misc.extensionUtils; import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js';
const Me = ExtensionUtils.getCurrentExtension();
const IDENTIFIER_UUID = "130cbc66-235c-4bd6-8571-98d2d8bba5e2"; const IDENTIFIER_UUID = "130cbc66-235c-4bd6-8571-98d2d8bba5e2";
var DesktopIconsUsableAreaClass = class { export class DesktopIconsUsableAreaClass {
_checkIfExtensionIsEnabled(extension) {
return (extension?.state === ExtensionUtils.ExtensionState.ENABLED) ||
(extension?.state === ExtensionUtils.ExtensionState.ACTIVE);
}
constructor() { constructor() {
const Me = Extension.lookupByURL(import.meta.url);
this._UUID = Me.uuid;
this._extensionManager = Main.extensionManager; this._extensionManager = Main.extensionManager;
this._timedMarginsID = 0; this._timedMarginsID = 0;
this._margins = {}; this._margins = {};
@@ -73,7 +79,7 @@ var DesktopIconsUsableAreaClass = class {
return; return;
// If an extension is being enabled and lacks the DesktopIconsUsableArea object, we can avoid launching a refresh // If an extension is being enabled and lacks the DesktopIconsUsableArea object, we can avoid launching a refresh
if (extension.state === ExtensionUtils.ExtensionState.ENABLED) { if (this._checkIfExtensionIsEnabled(extension)) {
this._sendMarginsToExtension(extension); this._sendMarginsToExtension(extension);
return; return;
} }
@@ -149,11 +155,11 @@ var DesktopIconsUsableAreaClass = class {
_sendMarginsToExtension(extension) { _sendMarginsToExtension(extension) {
// check that the extension is an extension that has the logic to accept // check that the extension is an extension that has the logic to accept
// working margins // working margins
if (extension?.state !== ExtensionUtils.ExtensionState.ENABLED) if (!this._checkIfExtensionIsEnabled(extension))
return; return;
const usableArea = extension?.stateObj?.DesktopIconsUsableArea; const usableArea = extension?.stateObj?.DesktopIconsUsableArea;
if (usableArea?.uuid === IDENTIFIER_UUID) if (usableArea?.uuid === IDENTIFIER_UUID)
usableArea.setMarginsForExtension(Me.uuid, this._margins); usableArea.setMarginsForExtension(this._UUID, this._margins);
} }
} }

View File

@@ -17,130 +17,116 @@
*/ */
const Main = imports.ui.main; import Gio from 'gi://Gio';
const Meta = imports.gi.Meta;
const Gio = imports.gi.Gio; import * as Main from 'resource:///org/gnome/shell/ui/main.js';
const GLib = imports.gi.GLib; import {EventEmitter} from 'resource:///org/gnome/shell/misc/signals.js';
const Shell = imports.gi.Shell; import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
const St = imports.gi.St;
const WindowManager = imports.ui.windowManager; import * as PanelManager from './panelManager.js';
const ExtensionUtils = imports.misc.extensionUtils; import * as AppIcons from './appIcons.js';
const Mainloop = imports.mainloop;
const Signals = imports.signals;
const Me = ExtensionUtils.getCurrentExtension();
const { PanelManager } = Me.imports.panelManager;
const Utils = Me.imports.utils;
const AppIcons = Me.imports.appIcons;
const ZORIN_DASH_UUID = 'zorin-dash@zorinos.com'; const ZORIN_DASH_UUID = 'zorin-dash@zorinos.com';
let panelManager; let panelManager;
let extensionChangedHandler; let extensionChangedHandler;
let startupCompleteHandler;
let disabledZorinDash; let disabledZorinDash;
let extensionSystem = (Main.extensionManager || imports.ui.extensionSystem); let extensionSystem = Main.extensionManager;
function init() { export let DTP_EXTENSION = null;
this._realHasOverview = Main.sessionMode.hasOverview; export let SETTINGS = null;
export let DESKTOPSETTINGS = null;
export let TERMINALSETTINGS = null;
export let PERSISTENTSTORAGE = null;
export let EXTENSION_UUID = null;
export let EXTENSION_PATH = null;
ExtensionUtils.initTranslations(Utils.TRANSLATION_DOMAIN); export default class ZorinTaskbarExtension extends Extension {
constructor(metadata) {
//create an object that persists until gnome-shell is restarted, even if the extension is disabled super(metadata);
Me.persistentStorage = {};
}
function enable() { this._realHasOverview = Main.sessionMode.hasOverview;
// The Zorin Dash extension might get enabled after this extension
extensionChangedHandler = extensionSystem.connect('extension-state-changed', (data, extension) => { //create an object that persists until gnome-shell is restarted, even if the extension is disabled
if (extension.uuid === ZORIN_DASH_UUID && extension.state === 1) { PERSISTENTSTORAGE = {};
_enable();
}
});
//create a global object that can emit signals and conveniently expose functionalities to other extensions
global.zorinTaskbar = {};
Signals.addSignalMethods(global.zorinTaskbar);
_enable();
}
function _enable() {
let zorinDash = Main.extensionManager ?
Main.extensionManager.lookup(ZORIN_DASH_UUID) : //gnome-shell >= 3.33.4
ExtensionUtils.extensions[ZORIN_DASH_UUID];
if (zorinDash && zorinDash.stateObj && zorinDash.stateObj.dockManager) {
// Disable Zorin Dash
let extensionOrder = (extensionSystem.extensionOrder || extensionSystem._extensionOrder);
Utils.getStageTheme().get_theme().unload_stylesheet(zorinDash.stylesheet);
zorinDash.stateObj.disable();
disabledZorinDash = true;
zorinDash.state = 2; //ExtensionState.DISABLED
extensionOrder.splice(extensionOrder.indexOf(ZORIN_DASH_UUID), 1);
//reset to prevent conflicts with the Zorin Dash
if (panelManager) {
disable(true);
}
} }
if (panelManager) return; //already initialized enable() {
DTP_EXTENSION = this;
Me.settings = ExtensionUtils.getSettings('org.gnome.shell.extensions.zorin-taskbar'); // The Zorin Dash extension might get enabled after this extension
Me.desktopSettings = ExtensionUtils.getSettings('org.gnome.desktop.interface'); extensionChangedHandler = extensionSystem.connect('extension-state-changed', (data, extension) => {
if (extension.uuid === ZORIN_DASH_UUID && extension.state === 1) {
_enable(this);
}
});
//create a global object that can emit signals and conveniently expose functionalities to other extensions
global.zorinTaskbar = new EventEmitter();
_enable(this);
}
disable(reset = false) {
panelManager.disable();
DTP_EXTENSION = null;
SETTINGS = null;
DESKTOPSETTINGS = null;
TERMINALSETTINGS = null;
panelManager = null;
if (!reset) {
extensionSystem.disconnect(extensionChangedHandler);
if (disabledZorinDash) {
disabledZorinDash = false;
extensionSystem.enableExtension(ZORIN_DASH_UUID);
}
delete global.zorinTaskbar;
AppIcons.resetRecentlyClickedApp();
}
if (startupCompleteHandler) {
Main.layoutManager.disconnect(startupCompleteHandler);
startupCompleteHandler = null;
}
Main.sessionMode.hasOverview = this._realHasOverview;
}
}
function _enable(extension) {
let enabled = global.settings.get_strv('enabled-extensions');
if (enabled?.indexOf(ZORIN_DASH_UUID) >= 0) {
disabledZorinDash = true;
extensionSystem.disableExtension(ZORIN_DASH_UUID);
}
if (panelManager)
return panelManager.toggleDash(); // already initialized but Zorin Dash restored the original dash on disable
SETTINGS = extension.getSettings('org.gnome.shell.extensions.zorin-taskbar');
DESKTOPSETTINGS = new Gio.Settings({schema_id: 'org.gnome.desktop.interface'});
TERMINALSETTINGS = new Gio.Settings({schema_id: 'org.gnome.desktop.default-applications.terminal'})
EXTENSION_UUID = extension.uuid
EXTENSION_PATH = extension.path
Main.layoutManager.startInOverview = false; Main.layoutManager.startInOverview = false;
if (Main.layoutManager._startingUp) { if (Main.layoutManager._startingUp) {
Main.sessionMode.hasOverview = false; Main.sessionMode.hasOverview = false;
Main.layoutManager.connect('startup-complete', () => { startupCompleteHandler = Main.layoutManager.connect('startup-complete', () => {
Main.sessionMode.hasOverview = this._realHasOverview Main.sessionMode.hasOverview = extension._realHasOverview
}); });
} }
panelManager = new PanelManager(); panelManager = new PanelManager.PanelManager();
panelManager.enable(); panelManager.enable();
Utils.removeKeybinding('open-application-menu');
Utils.addKeybinding(
'open-application-menu',
new Gio.Settings({ schema_id: WindowManager.SHELL_KEYBINDINGS_SCHEMA }),
() => {
panelManager.primaryPanel.taskbar.popupFocusedAppSecondaryMenu();
},
Shell.ActionMode.NORMAL | Shell.ActionMode.POPUP
);
}
function disable(reset) {
panelManager.disable();
Me.settings.run_dispose();
Me.desktopSettings.run_dispose();
delete Me.settings;
panelManager = null;
Utils.removeKeybinding('open-application-menu');
Utils.addKeybinding(
'open-application-menu',
new Gio.Settings({ schema_id: WindowManager.SHELL_KEYBINDINGS_SCHEMA }),
Main.wm._toggleAppMenu.bind(Main.wm),
Shell.ActionMode.NORMAL | Shell.ActionMode.POPUP
);
if (!reset) {
extensionSystem.disconnect(extensionChangedHandler);
delete global.zorinTaskbar;
// Re-enable Zorin Dash if it was disabled by dash to panel
if (disabledZorinDash && Main.sessionMode.allowExtensions) {
(extensionSystem._callExtensionEnable || extensionSystem.enableExtension).call(extensionSystem, ZORIN_DASH_UUID);
}
AppIcons.resetRecentlyClickedApp();
}
Main.sessionMode.hasOverview = this._realHasOverview;
} }

View File

@@ -18,21 +18,20 @@
* This file is based on code from the Dash to Panel extension * This file is based on code from the Dash to Panel extension
*/ */
const Clutter = imports.gi.Clutter; import Clutter from 'gi://Clutter';
const Meta = imports.gi.Meta; import Meta from 'gi://Meta';
const Shell = imports.gi.Shell; import Shell from 'gi://Shell';
const St = imports.gi.St; import St from 'gi://St';
var GrabHelper = imports.ui.grabHelper; import * as GrabHelper from 'resource:///org/gnome/shell/ui/grabHelper.js';
const Layout = imports.ui.layout; import * as Layout from 'resource:///org/gnome/shell/ui/layout.js';
const Main = imports.ui.main; import * as Main from 'resource:///org/gnome/shell/ui/main.js';
const OverviewControls = imports.ui.overviewControls; import * as OverviewControls from 'resource:///org/gnome/shell/ui/overviewControls.js';
const PointerWatcher = imports.ui.pointerWatcher; import * as PointerWatcher from 'resource:///org/gnome/shell/ui/pointerWatcher.js';
const Me = imports.misc.extensionUtils.getCurrentExtension(); import * as Proximity from './proximity.js';
const Panel = Me.imports.panel; import * as Utils from './utils.js';
const Proximity = Me.imports.proximity; import {SETTINGS} from './extension.js';
const Utils = Me.imports.utils;
var INTELLIHIDE_PRESSURE_THRESHOLD = 100; var INTELLIHIDE_PRESSURE_THRESHOLD = 100;
var INTELLIHIDE_PRESSURE_TIME = 1000; var INTELLIHIDE_PRESSURE_TIME = 1000;
@@ -50,17 +49,16 @@ const MIN_UPDATE_MS = 250;
const T1 = 'checkGrabTimeout'; const T1 = 'checkGrabTimeout';
const T2 = 'limitUpdateTimeout'; const T2 = 'limitUpdateTimeout';
const T3 = 'postAnimateTimeout'; const T3 = 'postAnimateTimeout';
const T4 = 'panelBoxClipTimeout';
var SIDE_CONTROLS_ANIMATION_TIME = OverviewControls.SIDE_CONTROLS_ANIMATION_TIME / (OverviewControls.SIDE_CONTROLS_ANIMATION_TIME > 1 ? 1000 : 1); const SIDE_CONTROLS_ANIMATION_TIME = OverviewControls.SIDE_CONTROLS_ANIMATION_TIME / (OverviewControls.SIDE_CONTROLS_ANIMATION_TIME > 1 ? 1000 : 1);
var Hold = { export const Hold = {
NONE: 0, NONE: 0,
TEMPORARY: 1, TEMPORARY: 1,
PERMANENT: 2 PERMANENT: 2
}; };
var Intellihide = class { export const Intellihide = class {
constructor(dtpPanel) { constructor(dtpPanel) {
this._dtpPanel = dtpPanel; this._dtpPanel = dtpPanel;
@@ -72,8 +70,8 @@ var Intellihide = class {
this._signalsHandler = new Utils.GlobalSignalsHandler(); this._signalsHandler = new Utils.GlobalSignalsHandler();
this._timeoutsHandler = new Utils.TimeoutsHandler(); this._timeoutsHandler = new Utils.TimeoutsHandler();
this._intellihideChangedId = Me.settings.connect('changed::intellihide', () => this._changeEnabledStatus()); this._intellihideChangedId = SETTINGS.connect('changed::intellihide', () => this._changeEnabledStatus());
this._intellihideOnlySecondaryChangedId = Me.settings.connect('changed::intellihide-only-secondary', () => this._changeEnabledStatus()); this._intellihideOnlySecondaryChangedId = SETTINGS.connect('changed::intellihide-only-secondary', () => this._changeEnabledStatus());
this.enabled = false; this.enabled = false;
this._changeEnabledStatus(); this._changeEnabledStatus();
@@ -94,11 +92,11 @@ var Intellihide = class {
this._setTrackPanel(true); this._setTrackPanel(true);
this._bindGeneralSignals(); this._bindGeneralSignals();
if (Me.settings.get_boolean('intellihide-hide-from-windows')) { if (SETTINGS.get_boolean('intellihide-hide-from-windows')) {
this._proximityWatchId = this._proximityManager.createWatch( this._proximityWatchId = this._proximityManager.createWatch(
this._panelBox.get_parent(), this._panelBox.get_parent(),
this._dtpPanel.monitor.index, this._dtpPanel.monitor.index,
Proximity.Mode[Me.settings.get_string('intellihide-behaviour')], Proximity.Mode[SETTINGS.get_string('intellihide-behaviour')],
0, 0, 0, 0,
overlap => { overlap => {
this._windowOverlap = overlap; this._windowOverlap = overlap;
@@ -109,7 +107,6 @@ var Intellihide = class {
this._setRevealMechanism(); this._setRevealMechanism();
this._queueUpdatePanelPosition(); this._queueUpdatePanelPosition();
this._toggleFloatingRoundedTheme();
} }
disable(reset) { disable(reset) {
@@ -127,17 +124,11 @@ var Intellihide = class {
this._revealPanel(!reset); this._revealPanel(!reset);
this.enabled = false; this.enabled = false;
if (this._panelBox.has_style_class_name('floating')) {
this._panelBox.remove_style_class_name('floating');
this._resetPanelGeometry();
}
} }
destroy() { destroy() {
Me.settings.disconnect(this._intellihideChangedId); SETTINGS.disconnect(this._intellihideChangedId);
Me.settings.disconnect(this._intellihideOnlySecondaryChangedId); SETTINGS.disconnect(this._intellihideOnlySecondaryChangedId);
if (this.enabled) { if (this.enabled) {
this.disable(); this.disable();
@@ -169,27 +160,9 @@ var Intellihide = class {
this.enable(); this.enable();
} }
_toggleFloatingRoundedTheme() {
if (Me.settings.get_boolean('intellihide-floating-rounded-theme')) {
if (!this._panelBox.has_style_class_name('floating'))
this._panelBox.add_style_class_name('floating');
} else {
if (this._panelBox.has_style_class_name('floating'))
this._panelBox.remove_style_class_name('floating');
}
this._resetPanelGeometry();
}
_resetPanelGeometry() {
this._dtpPanel.geom = this._dtpPanel.getGeometry();
this._dtpPanel._setPanelPosition();
this._dtpPanel.dynamicTransparency.updateExternalStyle();
}
_changeEnabledStatus() { _changeEnabledStatus() {
let intellihide = Me.settings.get_boolean('intellihide'); let intellihide = SETTINGS.get_boolean('intellihide');
let onlySecondary = Me.settings.get_boolean('intellihide-only-secondary'); let onlySecondary = SETTINGS.get_boolean('intellihide-only-secondary');
let enabled = intellihide && !(this._dtpPanel.isPrimary && onlySecondary); let enabled = intellihide && !(this._dtpPanel.isPrimary && onlySecondary);
if (this.enabled !== enabled) { if (this.enabled !== enabled) {
@@ -208,7 +181,7 @@ var Intellihide = class {
} }
], ],
[ [
Me.settings, SETTINGS,
[ [
'changed::intellihide-use-pressure', 'changed::intellihide-use-pressure',
'changed::intellihide-hide-from-windows', 'changed::intellihide-hide-from-windows',
@@ -216,13 +189,6 @@ var Intellihide = class {
], ],
() => this.reset() () => this.reset()
], ],
[
Me.settings,
[
'changed::intellihide-floating-rounded-theme'
],
() => this._toggleFloatingRoundedTheme()
],
[ [
this._panelBox, this._panelBox,
'notify::hover', 'notify::hover',
@@ -273,7 +239,7 @@ var Intellihide = class {
_setRevealMechanism() { _setRevealMechanism() {
let barriers = Meta.BackendCapabilities.BARRIERS let barriers = Meta.BackendCapabilities.BARRIERS
if ((global.backend.capabilities & barriers) === barriers && Me.settings.get_boolean('intellihide-use-pressure')) { if ((global.backend.capabilities & barriers) === barriers && SETTINGS.get_boolean('intellihide-use-pressure')) {
this._edgeBarrier = this._createBarrier(); this._edgeBarrier = this._createBarrier();
this._pressureBarrier = new Layout.PressureBarrier( this._pressureBarrier = new Layout.PressureBarrier(
INTELLIHIDE_PRESSURE_THRESHOLD, INTELLIHIDE_PRESSURE_THRESHOLD,
@@ -373,13 +339,13 @@ var Intellihide = class {
//the user is trying to reveal the panel //the user is trying to reveal the panel
if (this._monitor.inFullscreen && !mouseBtnIsPressed) { if (this._monitor.inFullscreen && !mouseBtnIsPressed) {
return Me.settings.get_boolean('intellihide-show-in-fullscreen'); return SETTINGS.get_boolean('intellihide-show-in-fullscreen');
} }
return !mouseBtnIsPressed; return !mouseBtnIsPressed;
} }
if (!Me.settings.get_boolean('intellihide-hide-from-windows')) { if (!SETTINGS.get_boolean('intellihide-hide-from-windows')) {
return this._panelBox.hover; return this._panelBox.hover;
} }

View File

@@ -1,9 +1,9 @@
{ {
"extension-id": "zorin-taskbar", "extension-id": "zorin-taskbar",
"uuid": "zorin-taskbar@zorinos.com", "uuid": "zorin-taskbar@zorinos.com",
"name": "Zorin Taskbar", "name": "Zorin Taskbar",
"description": "A taskbar extension for the Zorin Desktop environment.", "description": "A taskbar extension for the Zorin OS desktop.",
"shell-version": [ "42", "43", "44" ], "shell-version": [ "46", "47" ],
"gettext-domain": "zorin-taskbar", "gettext-domain": "zorin-taskbar",
"version": 56 "version": 65
} }

View File

@@ -20,24 +20,18 @@
* Some code was also adapted from the upstream Gnome Shell source code. * Some code was also adapted from the upstream Gnome Shell source code.
*/ */
const Me = imports.misc.extensionUtils.getCurrentExtension(); import * as Intellihide from './intellihide.js';
const Intellihide = Me.imports.intellihide; import * as Utils from './utils.js';
const Utils = Me.imports.utils;
const Clutter = imports.gi.Clutter; import Clutter from 'gi://Clutter';
const Main = imports.ui.main; import Gio from 'gi://Gio';
const Shell = imports.gi.Shell; import Shell from 'gi://Shell';
const Gtk = imports.gi.Gtk; import St from 'gi://St';
const Gdk = imports.gi.Gdk; import * as Main from 'resource:///org/gnome/shell/ui/main.js';
const Gio = imports.gi.Gio; import * as WindowManager from 'resource:///org/gnome/shell/ui/windowManager.js';
const Mainloop = imports.mainloop; import {WindowPreview} from 'resource:///org/gnome/shell/ui/windowPreview.js';
const IconGrid = imports.ui.iconGrid; import {InjectionManager} from 'resource:///org/gnome/shell/extensions/extension.js';
const { OverviewActor } = imports.ui.overview; import {SETTINGS} from './extension.js';
const Workspace = imports.ui.workspace;
const St = imports.gi.St;
const WorkspaceThumbnail = imports.ui.workspaceThumbnail;
const Meta = imports.gi.Meta;
const GS_HOTKEYS_KEY = 'switch-to-application-'; const GS_HOTKEYS_KEY = 'switch-to-application-';
const OVERLAY_TIMEOUT = 750; const OVERLAY_TIMEOUT = 750;
@@ -52,9 +46,10 @@ const LABEL_MARGIN = 60;
const T1 = 'swipeEndTimeout'; const T1 = 'swipeEndTimeout';
const T2 = 'numberOverlayTimeout'; const T2 = 'numberOverlayTimeout';
var Overview = class { export const Overview = class {
constructor() { constructor() {
this._injectionManager = new InjectionManager();
this._numHotkeys = 10; this._numHotkeys = 10;
} }
@@ -70,15 +65,15 @@ var Overview = class {
this._optionalHotKeys(); this._optionalHotKeys();
this._optionalNumberOverlay(); this._optionalNumberOverlay();
this._toggleDash(); this.toggleDash();
this._adaptAlloc(true); this._adaptAlloc();
this._signalsHandler.add([ this._signalsHandler.add([
Me.settings, SETTINGS,
[ [
'changed::panel-sizes' 'changed::panel-sizes'
], ],
() => this._toggleDash() () => this.toggleDash()
]); ]);
} }
@@ -86,16 +81,16 @@ var Overview = class {
this._signalsHandler.destroy(); this._signalsHandler.destroy();
this._injectionsHandler.destroy(); this._injectionsHandler.destroy();
this._timeoutsHandler.destroy(); this._timeoutsHandler.destroy();
this._injectionManager.clear();
this._toggleDash(true); this.toggleDash(true);
this._adaptAlloc();
// Remove key bindings // Remove key bindings
this._disableHotKeys(); this._disableHotKeys();
this._disableExtraShortcut(); this._disableExtraShortcut();
} }
_toggleDash(visible) { toggleDash(visible) {
if (visible === undefined) { if (visible === undefined) {
visible = false; visible = false;
} }
@@ -108,41 +103,39 @@ var Overview = class {
overviewControls.dash.set_height(height); overviewControls.dash.set_height(height);
} }
_adaptAlloc(enable) { _adaptAlloc() {
let overviewControls = Main.overview._overview._controls let overviewControls = Main.overview._overview._controls
let proto = Object.getPrototypeOf(overviewControls)
let allocFunc = null
if (enable) this._injectionManager.overrideMethod(Object.getPrototypeOf(overviewControls), 'vfunc_allocate',
allocFunc = (box) => { (originalAllocate) =>
let focusedPanel = this._panel.panelManager.focusedMonitorPanel (box) => {
let focusedPanel = this._panel.panelManager.focusedMonitorPanel
if (focusedPanel) {
let position = focusedPanel.geom.position if (focusedPanel) {
let isBottom = position == St.Side.BOTTOM let position = focusedPanel.geom.position
let isBottom = position == St.Side.BOTTOM
if (focusedPanel.intellihide?.enabled) { if (focusedPanel.intellihide?.enabled) {
// Panel intellihide is enabled (struts aren't taken into account on overview allocation), // Panel intellihide is enabled (struts aren't taken into account on overview allocation),
// dynamically modify the overview box to follow the reveal/hide animation // dynamically modify the overview box to follow the reveal/hide animation
let { transitioning, finalState, progress } = overviewControls._stateAdjustment.getStateTransitionParams() let { transitioning, finalState, progress } = overviewControls._stateAdjustment.getStateTransitionParams()
let size = focusedPanel.geom[focusedPanel.checkIfVertical() ? 'w' : 'h'] * let size = focusedPanel.geom[focusedPanel.checkIfVertical() ? 'w' : 'h'] *
(transitioning ? Math.abs((finalState != 0 ? 0 : 1) - progress) : 1) (transitioning ? Math.abs((finalState != 0 ? 0 : 1) - progress) : 1)
if (isBottom || position == St.Side.RIGHT) if (isBottom || position == St.Side.RIGHT)
box[focusedPanel.fixedCoord.c2] -= size box[focusedPanel.fixedCoord.c2] -= size
else else
box[focusedPanel.fixedCoord.c1] += size box[focusedPanel.fixedCoord.c1] += size
} else if (isBottom) } else if (isBottom)
// The default overview allocation is very good and takes into account external // The default overview allocation is very good and takes into account external
// struts, everywhere but the bottom where the dash is usually fixed anyway. // 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 // If there is a bottom panel under the dash location, give it some space here
box.y2 -= focusedPanel.geom.h box.y2 -= focusedPanel.geom.h
}
originalAllocate.call(overviewControls, box)
} }
);
proto.vfunc_allocate.call(overviewControls, box)
}
Utils.hookVfunc(proto, 'allocate', allocFunc)
} }
/** /**
@@ -188,19 +181,19 @@ var Overview = class {
} }
this._signalsHandler.add([ this._signalsHandler.add([
Me.settings, SETTINGS,
'changed::isolate-workspaces', 'changed::isolate-workspaces',
() => { () => {
this._panel.panelManager.allPanels.forEach(p => p.taskbar.resetAppIcons()); this._panel.panelManager.allPanels.forEach(p => p.taskbar.resetAppIcons());
if (Me.settings.get_boolean('isolate-workspaces')) if (SETTINGS.get_boolean('isolate-workspaces'))
enable(); enable();
else else
disable(); disable();
} }
]); ]);
if (Me.settings.get_boolean('isolate-workspaces')) if (SETTINGS.get_boolean('isolate-workspaces'))
enable(); enable();
} }
@@ -224,7 +217,7 @@ var Overview = class {
let seenAppCount = seenApps[appIcon.app]; let seenAppCount = seenApps[appIcon.app];
let windowCount = appIcon.window || appIcon._hotkeysCycle ? seenAppCount : appIcon._nWindows; let windowCount = appIcon.window || appIcon._hotkeysCycle ? seenAppCount : appIcon._nWindows;
if (Me.settings.get_boolean('shortcut-previews') && windowCount > 1 && if (SETTINGS.get_boolean('shortcut-previews') && windowCount > 1 &&
!(modifiers & ~(Clutter.ModifierType.MOD1_MASK | Clutter.ModifierType.SUPER_MASK))) { //ignore the alt (MOD1_MASK) and super key (SUPER_MASK) !(modifiers & ~(Clutter.ModifierType.MOD1_MASK | Clutter.ModifierType.SUPER_MASK))) { //ignore the alt (MOD1_MASK) and super key (SUPER_MASK)
if (this._hotkeyPreviewCycleInfo && this._hotkeyPreviewCycleInfo.appIcon != appIcon) { if (this._hotkeyPreviewCycleInfo && this._hotkeyPreviewCycleInfo.appIcon != appIcon) {
this._endHotkeyPreviewCycle(); this._endHotkeyPreviewCycle();
@@ -278,14 +271,14 @@ var Overview = class {
_optionalHotKeys() { _optionalHotKeys() {
this._hotKeysEnabled = false; this._hotKeysEnabled = false;
if (Me.settings.get_boolean('hot-keys')) if (SETTINGS.get_boolean('hot-keys'))
this._enableHotKeys(); this._enableHotKeys();
this._signalsHandler.add([ this._signalsHandler.add([
Me.settings, SETTINGS,
'changed::hot-keys', 'changed::hot-keys',
() => { () => {
if (Me.settings.get_boolean('hot-keys')) if (SETTINGS.get_boolean('hot-keys'))
this._enableHotKeys(); this._enableHotKeys();
else else
this._disableHotKeys(); this._disableHotKeys();
@@ -310,12 +303,12 @@ var Overview = class {
} }
// Setup keyboard bindings for taskbar elements // Setup keyboard bindings for taskbar elements
let shortcutNumKeys = Me.settings.get_string('shortcut-num-keys'); let shortcutNumKeys = SETTINGS.get_string('shortcut-num-keys');
let bothNumKeys = shortcutNumKeys == 'BOTH'; let bothNumKeys = shortcutNumKeys == 'BOTH';
let keys = []; let keys = [];
let prefixModifiers = Clutter.ModifierType.SUPER_MASK let prefixModifiers = Clutter.ModifierType.SUPER_MASK
if (Me.settings.get_string('hotkey-prefix-text') == 'SuperAlt') if (SETTINGS.get_string('hotkey-prefix-text') == 'SuperAlt')
prefixModifiers |= Clutter.ModifierType.MOD1_MASK prefixModifiers |= Clutter.ModifierType.MOD1_MASK
if (bothNumKeys || shortcutNumKeys == 'NUM_ROW') { if (bothNumKeys || shortcutNumKeys == 'NUM_ROW') {
@@ -337,13 +330,13 @@ var Overview = class {
for (let i = 0; i < this._numHotkeys; i++) { for (let i = 0; i < this._numHotkeys; i++) {
let appNum = i; let appNum = i;
Utils.addKeybinding(key + (i + 1), Me.settings, () => this._activateApp(appNum, modifiers)); Utils.addKeybinding(key + (i + 1), SETTINGS, () => this._activateApp(appNum, modifiers));
} }
}, this); }, this);
this._hotKeysEnabled = true; this._hotKeysEnabled = true;
if (Me.settings.get_string('hotkeys-overlay-combo') === 'ALWAYS') if (SETTINGS.get_string('hotkeys-overlay-combo') === 'ALWAYS')
this.taskbar.toggleNumberOverlay(true); this.taskbar.toggleNumberOverlay(true);
} }
@@ -360,7 +353,7 @@ var Overview = class {
}, this); }, this);
if (Main.wm._switchToApplication) { if (Main.wm._switchToApplication) {
let gsSettings = new Gio.Settings({ schema_id: imports.ui.windowManager.SHELL_KEYBINDINGS_SCHEMA }); let gsSettings = new Gio.Settings({ schema_id: WindowManager.SHELL_KEYBINDINGS_SCHEMA });
for (let i = 1; i < 10; ++i) { for (let i = 1; i < 10; ++i) {
Utils.addKeybinding(GS_HOTKEYS_KEY + i, gsSettings, Main.wm._switchToApplication.bind(Main.wm)); Utils.addKeybinding(GS_HOTKEYS_KEY + i, gsSettings, Main.wm._switchToApplication.bind(Main.wm));
@@ -374,38 +367,38 @@ var Overview = class {
_optionalNumberOverlay() { _optionalNumberOverlay() {
// Enable extra shortcut // Enable extra shortcut
if (Me.settings.get_boolean('hot-keys')) if (SETTINGS.get_boolean('hot-keys'))
this._enableExtraShortcut(); this._enableExtraShortcut();
this._signalsHandler.add([ this._signalsHandler.add([
Me.settings, SETTINGS,
'changed::hot-keys', 'changed::hot-keys',
this._checkHotkeysOptions.bind(this) this._checkHotkeysOptions.bind(this)
], [ ], [
Me.settings, SETTINGS,
'changed::hotkeys-overlay-combo', 'changed::hotkeys-overlay-combo',
() => { () => {
if (Me.settings.get_boolean('hot-keys') && Me.settings.get_string('hotkeys-overlay-combo') === 'ALWAYS') if (SETTINGS.get_boolean('hot-keys') && SETTINGS.get_string('hotkeys-overlay-combo') === 'ALWAYS')
this.taskbar.toggleNumberOverlay(true); this.taskbar.toggleNumberOverlay(true);
else else
this.taskbar.toggleNumberOverlay(false); this.taskbar.toggleNumberOverlay(false);
} }
], [ ], [
Me.settings, SETTINGS,
'changed::shortcut-num-keys', 'changed::shortcut-num-keys',
() => this._resetHotkeys() () => this._resetHotkeys()
]); ]);
} }
_checkHotkeysOptions() { _checkHotkeysOptions() {
if (Me.settings.get_boolean('hot-keys')) if (SETTINGS.get_boolean('hot-keys'))
this._enableExtraShortcut(); this._enableExtraShortcut();
else else
this._disableExtraShortcut(); this._disableExtraShortcut();
} }
_enableExtraShortcut() { _enableExtraShortcut() {
Utils.addKeybinding('shortcut', Me.settings, () => this._showOverlay(true)); Utils.addKeybinding('shortcut', SETTINGS, () => this._showOverlay(true));
} }
_disableExtraShortcut() { _disableExtraShortcut() {
@@ -419,7 +412,7 @@ var Overview = class {
} }
// Restart the counting if the shortcut is pressed again // Restart the counting if the shortcut is pressed again
let hotkey_option = Me.settings.get_string('hotkeys-overlay-combo'); let hotkey_option = SETTINGS.get_string('hotkeys-overlay-combo');
if (hotkey_option === 'NEVER') if (hotkey_option === 'NEVER')
return; return;

278
panel.js
View File

@@ -27,45 +27,37 @@
* Some code was also adapted from the upstream Gnome Shell source code. * Some code was also adapted from the upstream Gnome Shell source code.
*/ */
const Me = imports.misc.extensionUtils.getCurrentExtension(); import Clutter from 'gi://Clutter';
const Clutter = imports.gi.Clutter; import Gio from 'gi://Gio';
const Config = imports.misc.config; import GObject from 'gi://GObject';
const Gtk = imports.gi.Gtk; import * as AppIcons from './appIcons.js';
const GObject = imports.gi.GObject; import * as Utils from './utils.js';
const Gi = imports._gi; import * as Taskbar from './taskbar.js';
const Gio = imports.gi.Gio; import * as TaskbarItemContainer from './taskbar.js';
const AppIcons = Me.imports.appIcons; import * as Pos from './panelPositions.js';
const Utils = Me.imports.utils; import * as PanelSettings from './panelSettings.js';
const { Taskbar, TaskbarItemContainer } = Me.imports.taskbar; import * as PanelStyle from './panelStyle.js';
const Pos = Me.imports.panelPositions; import * as Main from 'resource:///org/gnome/shell/ui/main.js';
const PanelSettings = Me.imports.panelSettings; import * as Dash from 'resource:///org/gnome/shell/ui/dash.js';
const { PanelStyle } = Me.imports.panelStyle; import * as CtrlAltTab from 'resource:///org/gnome/shell/ui/ctrlAltTab.js';
const Main = imports.ui.main; import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js';
const Mainloop = imports.mainloop; import St from 'gi://St';
const Dash = imports.ui.dash; import Meta from 'gi://Meta';
const CtrlAltTab = imports.ui.ctrlAltTab; import Pango from 'gi://Pango';
const GSPanel = imports.ui.panel; import * as DND from 'resource:///org/gnome/shell/ui/dnd.js';
const PanelMenu = imports.ui.panelMenu; import Shell from 'gi://Shell';
const St = imports.gi.St; import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
const GLib = imports.gi.GLib; import * as DateMenu from 'resource:///org/gnome/shell/ui/dateMenu.js';
const Meta = imports.gi.Meta; import * as Volume from 'resource:///org/gnome/shell/ui/status/volume.js';
const Pango = imports.gi.Pango; import * as Progress from './progress.js';
const DND = imports.ui.dnd;
const Shell = imports.gi.Shell;
const PopupMenu = imports.ui.popupMenu;
const IconGrid = imports.ui.iconGrid;
const DateMenu = imports.ui.dateMenu;
const Volume = imports.ui.status.volume;
const Progress = Me.imports.progress;
const Intellihide = Me.imports.intellihide; import * as Intellihide from './intellihide.js';
const Transparency = Me.imports.transparency; import * as Transparency from './transparency.js';
const _ = imports.gettext.domain(Me.imports.utils.TRANSLATION_DOMAIN).gettext; import {SETTINGS, DESKTOPSETTINGS, PERSISTENTSTORAGE, EXTENSION_PATH} from './extension.js';
import {gettext as _, InjectionManager} from 'resource:///org/gnome/shell/extensions/extension.js';
let tracker = Shell.WindowTracker.get_default(); let tracker = Shell.WindowTracker.get_default();
var panelBoxes = ['_leftBox', '_centerBox', '_rightBox']; export const panelBoxes = ['_leftBox', '_centerBox', '_rightBox'];
var SHOW_DESKTOP_ICON = Me.path + '/img/show-desktop-symbolic.svg';
//timeout names //timeout names
const T2 = 'startIntellihideTimeout'; const T2 = 'startIntellihideTimeout';
@@ -78,7 +70,7 @@ const SHOW_SHOWDESKTOP_TIME = 200;
const FLOATING_MARGIN = 8; const FLOATING_MARGIN = 8;
var Panel = GObject.registerClass({ export const Panel = GObject.registerClass({
}, class Panel extends St.Widget { }, class Panel extends St.Widget {
_init(panelManager, monitor, panelBox, isStandalone) { _init(panelManager, monitor, panelBox, isStandalone) {
@@ -86,9 +78,10 @@ var Panel = GObject.registerClass({
this._timeoutsHandler = new Utils.TimeoutsHandler(); this._timeoutsHandler = new Utils.TimeoutsHandler();
this._signalsHandler = new Utils.GlobalSignalsHandler(); this._signalsHandler = new Utils.GlobalSignalsHandler();
this._injectionManager = new InjectionManager();
this.panelManager = panelManager; this.panelManager = panelManager;
this.panelStyle = new PanelStyle(); this.panelStyle = new PanelStyle.PanelStyle();
this.monitor = monitor; this.monitor = monitor;
this.panelBox = panelBox; this.panelBox = panelBox;
@@ -97,7 +90,7 @@ var Panel = GObject.registerClass({
// so in this case use isPrimary to get the panel on the primary dtp monitor, which // 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. // might be different from the system's primary monitor.
this.isStandalone = isStandalone; this.isStandalone = isStandalone;
this.isPrimary = !isStandalone || (Me.settings.get_boolean('stockgs-keep-top-panel') && this.isPrimary = !isStandalone || (SETTINGS.get_boolean('stockgs-keep-top-panel') &&
monitor == panelManager.dtpPrimaryMonitor); monitor == panelManager.dtpPrimaryMonitor);
this._sessionStyle = null; this._sessionStyle = null;
@@ -131,7 +124,7 @@ var Panel = GObject.registerClass({
this._setPanelMenu(systemMenuInfo.name, systemMenuInfo.constructor, this.panel); this._setPanelMenu(systemMenuInfo.name, systemMenuInfo.constructor, this.panel);
this._setPanelMenu('dateMenu', DateMenu.DateMenuButton, this.panel); this._setPanelMenu('dateMenu', DateMenu.DateMenuButton, this.panel);
this._setPanelMenu('activities', GSPanel.ActivitiesButton, this.panel); this._setPanelMenu('activities', Main.panel.statusArea.activities.constructor, this.panel);
this.panel.add_child(this._leftBox); this.panel.add_child(this._leftBox);
this.panel.add_child(this._centerBox); this.panel.add_child(this._centerBox);
@@ -146,8 +139,11 @@ var Panel = GObject.registerClass({
['activities', systemMenuInfo.name, 'dateMenu'].forEach(b => { ['activities', systemMenuInfo.name, 'dateMenu'].forEach(b => {
let container = this.statusArea[b].container; let container = this.statusArea[b].container;
let parent = container.get_parent(); let parent = container.get_parent();
let siblings = parent.get_children();
let index = siblings.indexOf(container);
container._dtpOriginalParent = parent; container._dtpOriginalParent = parent;
container._dtpOriginalIndex = index && index == siblings.length - 1 ? -1: index;
parent ? parent.remove_child(container) : null; parent ? parent.remove_child(container) : null;
this.panel.add_child(container); this.panel.add_child(container);
}); });
@@ -184,21 +180,23 @@ var Panel = GObject.registerClass({
enable () { enable () {
let { name: systemMenuName } = Utils.getSystemMenuInfo(); let { name: systemMenuName } = Utils.getSystemMenuInfo();
if (this.statusArea[systemMenuName]) { if (this.statusArea[systemMenuName] && this.statusArea[systemMenuName]._volumeOutput) {
Utils.getIndicators(this.statusArea[systemMenuName]._volume)._dtpIgnoreScroll = 1; Utils.getIndicators(this.statusArea[systemMenuName]._volumeOutput)._dtpIgnoreScroll = 1;
} }
this._toggleFloatingRoundedTheme();
this.geom = this.getGeometry(); this.geom = this.getGeometry();
this._setPanelPosition(); this._setPanelPosition();
if (!this.isStandalone) { if (!this.isStandalone) {
Utils.hookVfunc(Object.getPrototypeOf(this.panel), 'allocate', (box) => this._mainPanelAllocate(box)); this._injectionManager.overrideMethod(Object.getPrototypeOf(this.panel), 'vfunc_allocate', () => (box) => this._mainPanelAllocate(box));
// remove the extra space before the clock when the message-indicator is displayed // remove the extra space before the clock when the message-indicator is displayed
if (DateMenu.IndicatorPad) { if (DateMenu.IndicatorPad) {
Utils.hookVfunc(DateMenu.IndicatorPad.prototype, 'get_preferred_width', () => [0,0]); this._injectionManager.overrideMethod(DateMenu.IndicatorPad.prototype, 'vfunc_get_preferred_width', () => () => [0,0]);
Utils.hookVfunc(DateMenu.IndicatorPad.prototype, 'get_preferred_height', () => [0,0]); this._injectionManager.overrideMethod(DateMenu.IndicatorPad.prototype, 'vfunc_get_preferred_height', () => () => [0,0]);
} }
} }
@@ -212,18 +210,17 @@ var Panel = GObject.registerClass({
this.menuManager._oldChangeMenu = this.menuManager._changeMenu; this.menuManager._oldChangeMenu = this.menuManager._changeMenu;
this.menuManager._changeMenu = (menu) => { this.menuManager._changeMenu = (menu) => {
if (!Me.settings.get_boolean('stockgs-panelbtn-click-only')) { if (!SETTINGS.get_boolean('stockgs-panelbtn-click-only')) {
this.menuManager._oldChangeMenu(menu); this.menuManager._oldChangeMenu(menu);
} }
}; };
this.dynamicTransparency = new Transparency.DynamicTransparency(this); this.dynamicTransparency = new Transparency.DynamicTransparency(this);
this.taskbar = new Taskbar(this); this.taskbar = new Taskbar.Taskbar(this);
this.panel.add_child(this.taskbar.actor); this.panel.add_child(this.taskbar.actor);
this._setAppmenuVisible(false);
this._setShowDesktopButton(true); this._setShowDesktopButton(true);
this._setAllocationMap(); this._setAllocationMap();
@@ -275,12 +272,12 @@ var Panel = GObject.registerClass({
], ],
[ [
this._centerBox, this._centerBox,
'actor-added', 'child-added',
() => this._onBoxActorAdded(this._centerBox) () => this._onBoxActorAdded(this._centerBox)
], ],
[ [
this._rightBox, this._rightBox,
'actor-added', 'child-added',
() => this._onBoxActorAdded(this._rightBox) () => this._onBoxActorAdded(this._rightBox)
], ],
[ [
@@ -331,7 +328,6 @@ var Panel = GObject.registerClass({
this._signalsHandler.destroy(); this._signalsHandler.destroy();
this.panel.remove_child(this.taskbar.actor); this.panel.remove_child(this.taskbar.actor);
this._setAppmenuVisible(false);
if (this.intellihide) { if (this.intellihide) {
this.intellihide.destroy(); this.intellihide.destroy();
@@ -369,26 +365,27 @@ var Panel = GObject.registerClass({
['vertical', 'horizontal', 'zorintaskbarMainPanel'].forEach(c => this.panel.remove_style_class_name(c)); ['vertical', 'horizontal', 'zorintaskbarMainPanel'].forEach(c => this.panel.remove_style_class_name(c));
if (!Main.sessionMode.isLocked) { if (!Main.sessionMode.isLocked) {
[['activities', 0], [systemMenuName, -1], ['dateMenu', 0]].forEach(b => { ['activities', systemMenuName, 'dateMenu'].forEach(b => {
let container = this.statusArea[b[0]].container; let container = this.statusArea[b].container;
let originalParent = container._dtpOriginalParent; let originalParent = container._dtpOriginalParent;
this.panel.remove_child(container); this.panel.remove_child(container);
originalParent ? originalParent.insert_child_at_index(container, b[1]) : null;
originalParent && originalParent.insert_child_at_index(
container,
Math.min(container._dtpOriginalIndex, originalParent.get_children().length - 1)
);
delete container._dtpOriginalParent; delete container._dtpOriginalParent;
delete container._dtpOriginalIndex;
}); });
} }
this._setShowDesktopButton(false); this._setShowDesktopButton(false);
delete Utils.getIndicators(this.statusArea[systemMenuName]._volume)._dtpIgnoreScroll; delete Utils.getIndicators(this.statusArea[systemMenuName]._volumeOutput)._dtpIgnoreScroll;
if (DateMenu.IndicatorPad) { this._injectionManager.clear();
Utils.hookVfunc(DateMenu.IndicatorPad.prototype, 'get_preferred_width', DateMenu.IndicatorPad.prototype.vfunc_get_preferred_width);
Utils.hookVfunc(DateMenu.IndicatorPad.prototype, 'get_preferred_height', DateMenu.IndicatorPad.prototype.vfunc_get_preferred_height);
}
Utils.hookVfunc(Object.getPrototypeOf(this.panel), 'allocate', Object.getPrototypeOf(this.panel).vfunc_allocate);
this.panel._delegate = this.panel; this.panel._delegate = this.panel;
} else { } else {
@@ -400,20 +397,8 @@ var Panel = GObject.registerClass({
Main.ctrlAltTabManager.removeGroup(this); Main.ctrlAltTabManager.removeGroup(this);
} }
handleDragOver(source, actor, x, y, time) {
if (source == Main.xdndHandler) {
// open overview so they can choose a window for focusing
// and ultimately dropping dragged item onto
if(Main.overview.shouldToggleByCornerOrButton())
Main.overview.show();
}
return DND.DragMotionResult.CONTINUE;
}
getPosition() { getPosition() {
let position = PanelSettings.getPanelPosition(Me.settings, this.monitor.index); let position = PanelSettings.getPanelPosition(SETTINGS, this.monitor.index);
if (position == Pos.TOP) { if (position == Pos.TOP) {
return St.Side.TOP; return St.Side.TOP;
@@ -500,7 +485,7 @@ var Panel = GObject.registerClass({
this._signalsHandler.add( this._signalsHandler.add(
[ [
Me.settings, SETTINGS,
[ [
'changed::panel-sizes', 'changed::panel-sizes',
'changed::group-apps' 'changed::group-apps'
@@ -508,7 +493,7 @@ var Panel = GObject.registerClass({
() => this._resetGeometry() () => this._resetGeometry()
], ],
[ [
Me.settings, SETTINGS,
[ [
'changed::showdesktop-button-width', 'changed::showdesktop-button-width',
'changed::show-showdesktop-icon' 'changed::show-showdesktop-icon'
@@ -516,7 +501,14 @@ var Panel = GObject.registerClass({
() => this._setShowDesktopButtonStyle() () => this._setShowDesktopButtonStyle()
], ],
[ [
Me.desktopSettings, SETTINGS,
'changed::floating-rounded-theme',
() => {
this._resetGeometry();
}
],
[
DESKTOPSETTINGS,
'changed::clock-format', 'changed::clock-format',
() => { () => {
this._clockFormat = null; this._clockFormat = null;
@@ -527,19 +519,19 @@ var Panel = GObject.registerClass({
} }
], ],
[ [
Me.settings, SETTINGS,
'changed::progress-show-bar', 'changed::progress-show-bar',
() => this._initProgressManager() () => this._initProgressManager()
], ],
[ [
Me.settings, SETTINGS,
'changed::progress-show-count', 'changed::progress-show-count',
() => this._initProgressManager() () => this._initProgressManager()
] ]
); );
if (isVertical) { if (isVertical) {
this._signalsHandler.add([Me.settings, 'changed::group-apps-label-max-width', () => this._resetGeometry()]); this._signalsHandler.add([SETTINGS, 'changed::group-apps-label-max-width', () => this._resetGeometry()]);
} }
} }
@@ -556,7 +548,7 @@ var Panel = GObject.registerClass({
let parent = this.statusArea[propName].container.get_parent(); let parent = this.statusArea[propName].container.get_parent();
if (parent) { if (parent) {
parent.remove_actor(this.statusArea[propName].container); parent.remove_child(this.statusArea[propName].container);
} }
//calling this.statusArea[propName].destroy(); is buggy for now, gnome-shell never //calling this.statusArea[propName].destroy(); is buggy for now, gnome-shell never
@@ -567,19 +559,19 @@ var Panel = GObject.registerClass({
let panelMenu = this.statusArea[propName]; let panelMenu = this.statusArea[propName];
this.menuManager.removeMenu(panelMenu.menu); this.menuManager.removeMenu(panelMenu.menu);
Me.persistentStorage[propName].push(panelMenu); PERSISTENTSTORAGE[propName].push(panelMenu);
this.statusArea[propName] = null; this.statusArea[propName] = null;
} }
} }
_getPanelMenu(propName, constr) { _getPanelMenu(propName, constr) {
Me.persistentStorage[propName] = Me.persistentStorage[propName] || []; PERSISTENTSTORAGE[propName] = PERSISTENTSTORAGE[propName] || [];
if (!Me.persistentStorage[propName].length) { if (!PERSISTENTSTORAGE[propName].length) {
Me.persistentStorage[propName].push(new constr()); PERSISTENTSTORAGE[propName].push(new constr());
} }
return Me.persistentStorage[propName].pop(); return PERSISTENTSTORAGE[propName].pop();
} }
_adjustForOverview() { _adjustForOverview() {
@@ -595,7 +587,40 @@ var Panel = GObject.registerClass({
this.panelBox[isShown ? 'show' : 'hide'](); this.panelBox[isShown ? 'show' : 'hide']();
} }
_toggleFloatingRoundedTheme() {
if (this.panelBox.has_style_class_name('top')) {
this.panelBox.remove_style_class_name('top');
} else if (this.panelBox.has_style_class_name('left')) {
this.panelBox.remove_style_class_name('left');
} else if (this.panelBox.has_style_class_name('right')) {
this.panelBox.remove_style_class_name('right');
} else if (this.panelBox.has_style_class_name('bottom')) {
this.panelBox.remove_style_class_name('bottom');
}
if (SETTINGS.get_boolean('floating-rounded-theme')) {
if (!this.panelBox.has_style_class_name('floating')) {
this.panelBox.add_style_class_name('floating');
}
let position = this.getPosition();
if (position == St.Side.TOP) {
this.panelBox.add_style_class_name('top');
} else if (position == St.Side.RIGHT) {
this.panelBox.add_style_class_name('right');
} else if (position == St.Side.BOTTOM) {
this.panelBox.add_style_class_name('bottom');
} else {
this.panelBox.add_style_class_name('left');
}
} else {
if (this.panelBox.has_style_class_name('floating'))
this.panelBox.remove_style_class_name('floating');
}
}
_resetGeometry() { _resetGeometry() {
this._toggleFloatingRoundedTheme()
this.geom = this.getGeometry(); this.geom = this.getGeometry();
this._setPanelPosition(); this._setPanelPosition();
this.taskbar.resetAppIcons(true); this.taskbar.resetAppIcons(true);
@@ -618,24 +643,24 @@ var Panel = GObject.registerClass({
let topPadding = panelBoxTheme.get_padding(St.Side.TOP); let topPadding = panelBoxTheme.get_padding(St.Side.TOP);
let tbPadding = topPadding + panelBoxTheme.get_padding(St.Side.BOTTOM); let tbPadding = topPadding + panelBoxTheme.get_padding(St.Side.BOTTOM);
let position = this.getPosition(); let position = this.getPosition();
let length = PanelSettings.getPanelLength(Me.settings, this.monitor.index) / 100; let length = PanelSettings.getPanelLength(SETTINGS, this.monitor.index) / 100;
let anchor = PanelSettings.getPanelAnchor(Me.settings, this.monitor.index); let anchor = PanelSettings.getPanelAnchor(SETTINGS, this.monitor.index);
let anchorPlaceOnMonitor = 0; let anchorPlaceOnMonitor = 0;
let gsTopPanelOffset = 0; let gsTopPanelOffset = 0;
let x = 0, y = 0; let x = 0, y = 0;
let w = 0, h = 0; let w = 0, h = 0;
const panelSize = PanelSettings.getPanelSize(Me.settings, this.monitor.index); const panelSize = PanelSettings.getPanelSize(SETTINGS, this.monitor.index);
this.dtpSize = panelSize * scaleFactor; this.dtpSize = panelSize * scaleFactor;
if (Me.settings.get_boolean('stockgs-keep-top-panel') && Main.layoutManager.primaryMonitor == this.monitor) { if (SETTINGS.get_boolean('stockgs-keep-top-panel') && Main.layoutManager.primaryMonitor == this.monitor) {
gsTopPanelOffset = Main.layoutManager.panelBox.height - topPadding; gsTopPanelOffset = Main.layoutManager.panelBox.height - topPadding;
} }
if (this.checkIfVertical()) { if (this.checkIfVertical()) {
if (!Me.settings.get_boolean('group-apps')) { if (!SETTINGS.get_boolean('group-apps')) {
// add window title width and side padding of _dtpIconContainer when vertical // add window title width and side padding of _dtpIconContainer when vertical
this.dtpSize += Me.settings.get_int('group-apps-label-max-width') + AppIcons.DEFAULT_PADDING_SIZE * 2 / scaleFactor; this.dtpSize += SETTINGS.get_int('group-apps-label-max-width') + AppIcons.DEFAULT_PADDING_SIZE * 2 / scaleFactor;
} }
this.sizeFunc = 'get_preferred_height', this.sizeFunc = 'get_preferred_height',
@@ -686,8 +711,7 @@ var Panel = GObject.registerClass({
x = x + anchorPlaceOnMonitor; x = x + anchorPlaceOnMonitor;
} }
if (Me.settings.get_boolean('intellihide') && if (SETTINGS.get_boolean('floating-rounded-theme')) {
Me.settings.get_boolean('intellihide-floating-rounded-theme')) {
if (position == St.Side.BOTTOM || position == St.Side.TOP) { if (position == St.Side.BOTTOM || position == St.Side.TOP) {
x -= FLOATING_MARGIN; x -= FLOATING_MARGIN;
} else { // LEFT or RIGHT } else { // LEFT or RIGHT
@@ -904,10 +928,14 @@ var Panel = GObject.registerClass({
this.showAppsIconWrapper.popupMenu(Main.layoutManager.dummyCursor); this.showAppsIconWrapper.popupMenu(Main.layoutManager.dummyCursor);
return Clutter.EVENT_STOP; return Clutter.EVENT_STOP;
} else if (Main.modalCount > 0 || event.get_source() != actor || } else {
(!isPress && type != Clutter.EventType.TOUCH_BEGIN) || const targetActor = global.stage.get_event_actor(event);
(isPress && button != 1)) {
return Clutter.EVENT_PROPAGATE; if (Main.modalCount > 0 || targetActor != actor ||
(!isPress && type != Clutter.EventType.TOUCH_BEGIN) ||
(isPress && button != 1)) {
return Clutter.EVENT_PROPAGATE;
}
} }
let params = this.checkIfVertical() ? [stageY, 'y', 'height'] : [stageX, 'x', 'width']; let params = this.checkIfVertical() ? [stageY, 'y', 'height'] : [stageX, 'x', 'width'];
@@ -959,13 +987,16 @@ var Panel = GObject.registerClass({
_setVertical(actor, isVertical) { _setVertical(actor, isVertical) {
let _set = (actor, isVertical) => { let _set = (actor, isVertical) => {
if (!actor || actor instanceof Dash.DashItemContainer || actor instanceof TaskbarItemContainer) { if (!actor || actor instanceof Dash.DashItemContainer || actor instanceof TaskbarItemContainer.TaskbarItemContainer) {
return; return;
} }
if (actor instanceof St.BoxLayout) { if (actor instanceof St.BoxLayout) {
actor.vertical = isVertical; actor.vertical = isVertical;
} else if ((actor._delegate || actor) instanceof PanelMenu.ButtonBox && actor != this.statusArea.appMenu) { } else if (
actor != this.statusArea.appMenu &&
((actor._delegate || actor) instanceof PanelMenu.ButtonBox || actor == this.statusArea.quickSettings)
) {
let child = actor.get_first_child(); let child = actor.get_first_child();
if (isVertical && !actor.visible && !actor._dtpVisibleId) { if (isVertical && !actor.visible && !actor._dtpVisibleId) {
@@ -1006,22 +1037,6 @@ var Panel = GObject.registerClass({
this._unmappedButtons.splice(this._unmappedButtons.indexOf(actor), 1); this._unmappedButtons.splice(this._unmappedButtons.indexOf(actor), 1);
} }
_setAppmenuVisible(isVisible) {
let parent;
let appMenu = this.statusArea.appMenu;
if(appMenu)
parent = appMenu.container.get_parent();
if (parent) {
parent.remove_child(appMenu.container);
}
if (isVisible && appMenu) {
this._leftBox.insert_child_above(appMenu.container, null);
}
}
_formatVerticalClock() { _formatVerticalClock() {
// https://github.com/GNOME/gnome-desktop/blob/master/libgnome-desktop/gnome-wall-clock.c#L310 // https://github.com/GNOME/gnome-desktop/blob/master/libgnome-desktop/gnome-wall-clock.c#L310
if (this.statusArea.dateMenu) { if (this.statusArea.dateMenu) {
@@ -1059,7 +1074,7 @@ var Panel = GObject.registerClass({
let timeParts = time.split(''); let timeParts = time.split('');
if (!this._clockFormat) { if (!this._clockFormat) {
this._clockFormat = Me.desktopSettings.get_string('clock-format'); this._clockFormat = DESKTOPSETTINGS.get_string('clock-format');
} }
if (this._clockFormat == '12h') { if (this._clockFormat == '12h') {
@@ -1083,13 +1098,18 @@ var Panel = GObject.registerClass({
// y_fill: true, // y_fill: true,
track_hover: true }); track_hover: true });
this._showDesktopButton.icon = new St.Icon({ gicon: Gio.icon_new_for_string(SHOW_DESKTOP_ICON), style_class: 'system-status-icon' }); this._showDesktopButton.icon = new St.Icon({ gicon: Gio.icon_new_for_string(`${EXTENSION_PATH}/img/show-desktop-symbolic.svg`), style_class: 'system-status-icon' });
this._setShowDesktopButtonStyle(); this._setShowDesktopButtonStyle();
this._showDesktopButton.connect('touch-event', (actor, event) => {
if (event.type() == Clutter.EventType.TOUCH_BEGIN) {
this._onShowDesktopButtonPress();
}
});
this._showDesktopButton.connect('button-press-event', () => this._onShowDesktopButtonPress()); this._showDesktopButton.connect('button-press-event', () => this._onShowDesktopButtonPress());
this._showDesktopButton.connect('enter-event', () => { this._showDesktopButton.connect('enter-event', () => {
if (Me.settings.get_boolean('show-showdesktop-hover')) { if (SETTINGS.get_boolean('show-showdesktop-hover')) {
this._timeoutsHandler.add([T4, SHOW_SHOWDESKTOP_DELAY, () => { this._timeoutsHandler.add([T4, SHOW_SHOWDESKTOP_DELAY, () => {
this._hiddenDesktopWorkspace = Utils.DisplayWrapper.getWorkspaceManager().get_active_workspace(); this._hiddenDesktopWorkspace = Utils.DisplayWrapper.getWorkspaceManager().get_active_workspace();
this._toggleWorkspaceWindows(true, this._hiddenDesktopWorkspace); this._toggleWorkspaceWindows(true, this._hiddenDesktopWorkspace);
@@ -1098,7 +1118,7 @@ var Panel = GObject.registerClass({
}); });
this._showDesktopButton.connect('leave-event', () => { this._showDesktopButton.connect('leave-event', () => {
if (Me.settings.get_boolean('show-showdesktop-hover')) { if (SETTINGS.get_boolean('show-showdesktop-hover')) {
if (this._timeoutsHandler.getId(T4)) { if (this._timeoutsHandler.getId(T4)) {
this._timeoutsHandler.remove(T4); this._timeoutsHandler.remove(T4);
} else if (this._hiddenDesktopWorkspace) { } else if (this._hiddenDesktopWorkspace) {
@@ -1123,21 +1143,21 @@ var Panel = GObject.registerClass({
for (let i = 0; i < this._showDesktopButton.get_children().length; i++) { for (let i = 0; i < this._showDesktopButton.get_children().length; i++) {
if (this._showDesktopButton.get_children()[i] == this._showDesktopButton.icon) { if (this._showDesktopButton.get_children()[i] == this._showDesktopButton.icon) {
this._showDesktopButton.remove_actor(this._showDesktopButton.icon); this._showDesktopButton.remove_child(this._showDesktopButton.icon);
} }
} }
if (this._showDesktopButton) { if (this._showDesktopButton) {
if (Me.settings.get_boolean('show-showdesktop-icon')) { if (SETTINGS.get_boolean('show-showdesktop-icon')) {
this._showDesktopButton.add_actor(this._showDesktopButton.icon); this._showDesktopButton.add_child(this._showDesktopButton.icon);
let buttonSize = Me.settings.get_int('showdesktop-button-width') + 'px'; let buttonSize = SETTINGS.get_int('showdesktop-button-width') + 'px';
let isVertical = this.checkIfVertical(); let isVertical = this.checkIfVertical();
let buttonPadding = isVertical ? buttonSize + ' 0;' : '0 ' + buttonSize + ';'; let buttonPadding = isVertical ? buttonSize + ' 0;' : '0 ' + buttonSize + ';';
this._showDesktopButton.set_style('padding: ' + buttonPadding); this._showDesktopButton.set_style('padding: ' + buttonPadding);
} else { } else {
let buttonSize = Me.settings.get_int('showdesktop-button-width') + 'px;'; let buttonSize = SETTINGS.get_int('showdesktop-button-width') + 'px;';
let isVertical = this.checkIfVertical(); let isVertical = this.checkIfVertical();
let style = "border: 0 solid " + rgb + "; padding: 0;"; let style = "border: 0 solid " + rgb + "; padding: 0;";
@@ -1213,8 +1233,8 @@ var Panel = GObject.registerClass({
} }
_initProgressManager() { _initProgressManager() {
const progressVisible = Me.settings.get_boolean('progress-show-bar'); const progressVisible = SETTINGS.get_boolean('progress-show-bar');
const countVisible = Me.settings.get_boolean('progress-show-count'); const countVisible = SETTINGS.get_boolean('progress-show-count');
const pm = this.progressManager; const pm = this.progressManager;
if(!pm && (progressVisible || countVisible)) if(!pm && (progressVisible || countVisible))
@@ -1224,7 +1244,7 @@ var Panel = GObject.registerClass({
} }
}); });
var SecondaryPanel = GObject.registerClass({ export const SecondaryPanel = GObject.registerClass({
}, class SecondaryPanel extends St.Widget { }, class SecondaryPanel extends St.Widget {
_init(params) { _init(params) {

View File

@@ -27,39 +27,36 @@
* Some code was also adapted from the upstream Gnome Shell source code. * Some code was also adapted from the upstream Gnome Shell source code.
*/ */
const Me = imports.misc.extensionUtils.getCurrentExtension(); import * as Overview from './overview.js';
const { Overview } = Me.imports.overview; import * as Panel from './panel.js';
const { Panel, panelBoxes } = Me.imports.panel; import * as PanelSettings from './panelSettings.js';
const PanelSettings = Me.imports.panelSettings; import * as Proximity from './proximity.js';
const Proximity = Me.imports.proximity; import * as Utils from './utils.js';
const Taskbar = Me.imports.taskbar; import * as DesktopIconsIntegration from './desktopIconsIntegration.js';
const Utils = Me.imports.utils;
const DesktopIconsIntegration = Me.imports.desktopIconsIntegration;
const Gi = imports._gi; import GLib from 'gi://GLib';
const GLib = imports.gi.GLib; import GObject from 'gi://GObject';
const GObject = imports.gi.GObject; import Clutter from 'gi://Clutter';
const Clutter = imports.gi.Clutter; import Meta from 'gi://Meta';
const Meta = imports.gi.Meta; import Shell from 'gi://Shell';
const Shell = imports.gi.Shell; import St from 'gi://St';
const St = imports.gi.St;
const AppDisplay = imports.ui.appDisplay; import * as BoxPointer from 'resource:///org/gnome/shell/ui/boxpointer.js';
const BoxPointer = imports.ui.boxpointer; import * as LookingGlass from 'resource:///org/gnome/shell/ui/lookingGlass.js';
const Dash = imports.ui.dash; import * as Main from 'resource:///org/gnome/shell/ui/main.js';
const IconGrid = imports.ui.iconGrid; import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js';
const LookingGlass = imports.ui.lookingGlass; import * as Layout from 'resource:///org/gnome/shell/ui/layout.js';
const Main = imports.ui.main; import {InjectionManager} from 'resource:///org/gnome/shell/extensions/extension.js';
const PanelMenu = imports.ui.panelMenu; import {SETTINGS} from './extension.js';
const Layout = imports.ui.layout; import {SecondaryMonitorDisplay, WorkspacesView} from 'resource:///org/gnome/shell/ui/workspacesView.js';
const WM = imports.ui.windowManager;
const { SecondaryMonitorDisplay, WorkspacesView } = imports.ui.workspacesView;
var PanelManager = class {
export const PanelManager = class {
constructor() { constructor() {
this.overview = new Overview(); this.overview = new Overview.Overview();
this.panelsElementPositions = {}; this.panelsElementPositions = {};
this._injectionManager = new InjectionManager();
this._saveMonitors(); this._saveMonitors();
} }
@@ -70,14 +67,14 @@ var PanelManager = class {
this.proximityManager = new Proximity.ProximityManager(); this.proximityManager = new Proximity.ProximityManager();
if (this.dtpPrimaryMonitor) { if (this.dtpPrimaryMonitor) {
this.primaryPanel = this._createPanel(this.dtpPrimaryMonitor, Me.settings.get_boolean('stockgs-keep-top-panel')); this.primaryPanel = this._createPanel(this.dtpPrimaryMonitor, SETTINGS.get_boolean('stockgs-keep-top-panel'));
this.allPanels.push(this.primaryPanel); this.allPanels.push(this.primaryPanel);
this.overview.enable(this.primaryPanel); this.overview.enable(this.primaryPanel);
this.setFocusedMonitor(this.dtpPrimaryMonitor); this.setFocusedMonitor(this.dtpPrimaryMonitor);
} }
if (Me.settings.get_boolean('multi-monitors')) { if (SETTINGS.get_boolean('multi-monitors')) {
Main.layoutManager.monitors.filter(m => m != this.dtpPrimaryMonitor).forEach(m => { Main.layoutManager.monitors.filter(m => m != this.dtpPrimaryMonitor).forEach(m => {
this.allPanels.push(this._createPanel(m, true)); this.allPanels.push(this._createPanel(m, true));
}); });
@@ -105,7 +102,7 @@ var PanelManager = class {
if (BoxPointer.BoxPointer.prototype.vfunc_get_preferred_height) { if (BoxPointer.BoxPointer.prototype.vfunc_get_preferred_height) {
let panelManager = this; let panelManager = this;
Utils.hookVfunc(BoxPointer.BoxPointer.prototype, 'get_preferred_height', function(forWidth) { this._injectionManager.overrideMethod(BoxPointer.BoxPointer.prototype, 'vfunc_get_preferred_height', () => function(forWidth) {
let alloc = { min_size: 0, natural_size: 0 }; let alloc = { min_size: 0, natural_size: 0 };
[alloc.min_size, alloc.natural_size] = this.vfunc_get_preferred_height(forWidth); [alloc.min_size, alloc.natural_size] = this.vfunc_get_preferred_height(forWidth);
@@ -153,7 +150,7 @@ var PanelManager = class {
//listen settings //listen settings
this._signalsHandler.add( this._signalsHandler.add(
[ [
Me.settings, SETTINGS,
[ [
'changed::multi-monitors', 'changed::multi-monitors',
'changed::isolate-monitors', 'changed::isolate-monitors',
@@ -165,17 +162,17 @@ var PanelManager = class {
() => this._reset() () => this._reset()
], ],
[ [
Me.settings, SETTINGS,
'changed::panel-element-positions', 'changed::panel-element-positions',
() => this._updatePanelElementPositions() () => this._updatePanelElementPositions()
], ],
[ [
Me.settings, SETTINGS,
'changed::intellihide-key-toggle-text', 'changed::intellihide-key-toggle-text',
() => this._setKeyBindings(true) () => this._setKeyBindings(true)
], ],
[ [
Me.settings, SETTINGS,
'changed::panel-sizes', 'changed::panel-sizes',
() => { () => {
GLib.idle_add(GLib.PRIORITY_LOW, () => { GLib.idle_add(GLib.PRIORITY_LOW, () => {
@@ -196,20 +193,22 @@ var PanelManager = class {
] ]
); );
panelBoxes.forEach(c => this._signalsHandler.add( Panel.panelBoxes.forEach(c => this._signalsHandler.add(
[ [
Main.panel[c], Main.panel[c],
'actor-added', 'child-added',
(parent, child) => (parent, child) => {
this.primaryPanel && this.primaryPanel &&
this._adjustPanelMenuButton(this._getPanelMenuButton(child), this.primaryPanel.monitor, this.primaryPanel.getPosition()) child instanceof St.Bin &&
this._adjustPanelMenuButton(this._getPanelMenuButton(child.get_first_child()), this.primaryPanel.monitor, this.primaryPanel.getPosition())
}
] ]
)); ));
this._setKeyBindings(true); this._setKeyBindings(true);
// keep GS overview.js from blowing away custom panel styles // keep GS overview.js from blowing away custom panel styles
if(!Me.settings.get_boolean('stockgs-keep-top-panel')) if(!SETTINGS.get_boolean('stockgs-keep-top-panel'))
Object.defineProperty(Main.panel, "style", {configurable: true, set(v) {}}); Object.defineProperty(Main.panel, "style", {configurable: true, set(v) {}});
} }
@@ -244,7 +243,7 @@ var PanelManager = class {
} else { } else {
p.panelBox.remove_child(p); p.panelBox.remove_child(p);
p.remove_child(p.panel); p.remove_child(p.panel);
p.panelBox.add(p.panel); p.panelBox.add_child(p.panel);
p.panelBox.set_position(clipContainer.x, clipContainer.y); p.panelBox.set_position(clipContainer.x, clipContainer.y);
@@ -253,9 +252,7 @@ var PanelManager = class {
} }
}); });
if (BoxPointer.BoxPointer.prototype.vfunc_get_preferred_height) { this._injectionManager.clear();
Utils.hookVfunc(BoxPointer.BoxPointer.prototype, 'get_preferred_height', BoxPointer.BoxPointer.prototype.vfunc_get_preferred_height);
}
if (Main.layoutManager.primaryMonitor) { if (Main.layoutManager.primaryMonitor) {
Main.layoutManager.panelBox.set_position(Main.layoutManager.primaryMonitor.x, Main.layoutManager.primaryMonitor.y); Main.layoutManager.panelBox.set_position(Main.layoutManager.primaryMonitor.x, Main.layoutManager.primaryMonitor.y);
@@ -292,6 +289,10 @@ var PanelManager = class {
this._desktopIconsUsableArea = null; this._desktopIconsUsableArea = null;
} }
toggleDash() {
this.overview.toggleDash();
}
_setDesktopIconsMargins() { _setDesktopIconsMargins() {
this._desktopIconsUsableArea?.resetMargins(); this._desktopIconsUsableArea?.resetMargins();
this.allPanels.forEach(p => { this.allPanels.forEach(p => {
@@ -356,12 +357,12 @@ var PanelManager = class {
} else { } else {
// No idea why atm, but we need the import at the top of this file and to use the // No idea why atm, but we need the import at the top of this file and to use the
// full imports ns here, otherwise SecondaryMonitorDisplay can't be used ¯\_(ツ)_/¯ // full imports ns here, otherwise SecondaryMonitorDisplay can't be used ¯\_(ツ)_/¯
view = new imports.ui.workspacesView.SecondaryMonitorDisplay(i, view = new SecondaryMonitorDisplay(i,
this._controls, this._controls,
this._scrollAdjustment, this._scrollAdjustment,
this._fitModeAdjustment, this._fitModeAdjustment,
this._overviewAdjustment); this._overviewAdjustment);
Main.layoutManager.overviewGroup.add_actor(view); Main.layoutManager.overviewGroup.add_child(view);
} }
this._workspacesViews.push(view); this._workspacesViews.push(view);
@@ -379,7 +380,7 @@ var PanelManager = class {
Main.layoutManager.monitors.filter(m => m.index != primaryIndex).forEach(m => newMonitors.push(m.index)); Main.layoutManager.monitors.filter(m => m.index != primaryIndex).forEach(m => newMonitors.push(m.index));
Me.settings.set_value(keyMonitors, new GLib.Variant('ai', newMonitors)); SETTINGS.set_value(keyMonitors, new GLib.Variant('ai', newMonitors));
} }
checkIfFocusedMonitor(monitor) { checkIfFocusedMonitor(monitor) {
@@ -404,8 +405,8 @@ var PanelManager = class {
clipContainer.add_child(panelBox); clipContainer.add_child(panelBox);
Main.layoutManager.trackChrome(panelBox, { trackFullscreen: true, affectsStruts: true, affectsInputRegion: true }); Main.layoutManager.trackChrome(panelBox, { trackFullscreen: true, affectsStruts: true, affectsInputRegion: true });
panel = new Panel(this, monitor, panelBox, isStandalone); panel = new Panel.Panel(this, monitor, panelBox, isStandalone);
panelBox.add(panel); panelBox.add_child(panel);
panel.enable(); panel.enable();
panelBox.visible = true; panelBox.visible = true;
@@ -424,7 +425,7 @@ var PanelManager = class {
} }
_updatePanelElementPositions() { _updatePanelElementPositions() {
this.panelsElementPositions = PanelSettings.getSettingsJson(Me.settings, 'panel-element-positions'); this.panelsElementPositions = PanelSettings.getSettingsJson(SETTINGS, 'panel-element-positions');
this.allPanels.forEach(p => p.updateElementPositions()); this.allPanels.forEach(p => p.updateElementPositions());
} }
@@ -444,7 +445,7 @@ var PanelManager = class {
} }
_getBoxPointerPreferredHeight(boxPointer, alloc, monitor) { _getBoxPointerPreferredHeight(boxPointer, alloc, monitor) {
if (boxPointer._dtpInPanel && boxPointer.sourceActor && Me.settings.get_boolean('intellihide')) { if (boxPointer._dtpInPanel && boxPointer.sourceActor && SETTINGS.get_boolean('intellihide')) {
monitor = monitor || Main.layoutManager.findMonitorForActor(boxPointer.sourceActor); monitor = monitor || Main.layoutManager.findMonitorForActor(boxPointer.sourceActor);
let panel = Utils.find(global.zorinTaskbar.panels, p => p.monitor == monitor); let panel = Utils.find(global.zorinTaskbar.panels, p => p.monitor == monitor);
let excess = alloc.natural_size + panel.dtpSize + 10 - monitor.height; // 10 is arbitrary let excess = alloc.natural_size + panel.dtpSize + 10 - monitor.height; // 10 is arbitrary
@@ -498,7 +499,7 @@ var PanelManager = class {
Utils.removeKeybinding(k); Utils.removeKeybinding(k);
if (enable) { if (enable) {
Utils.addKeybinding(k, Me.settings, keys[k], Shell.ActionMode.NORMAL); Utils.addKeybinding(k, SETTINGS, keys[k], Shell.ActionMode.NORMAL);
} }
}); });
} }
@@ -507,7 +508,7 @@ var PanelManager = class {
// This class drives long-running icon animations, to keep them running in sync // This class drives long-running icon animations, to keep them running in sync
// with each other. // with each other.
var IconAnimator = class { export const IconAnimator = class {
constructor(actor) { constructor(actor) {
this._count = 0; this._count = 0;

View File

@@ -18,31 +18,31 @@
* This file is based on code from the Dash to Panel extension * This file is based on code from the Dash to Panel extension
*/ */
var SHOW_APPS_BTN = 'showAppsButton'; export const SHOW_APPS_BTN = 'showAppsButton';
var ACTIVITIES_BTN = 'activitiesButton'; export const ACTIVITIES_BTN = 'activitiesButton';
var TASKBAR = 'taskbar'; export const TASKBAR = 'taskbar';
var DATE_MENU = 'dateMenu'; export const DATE_MENU = 'dateMenu';
var SYSTEM_MENU = 'systemMenu'; export const SYSTEM_MENU = 'systemMenu';
var LEFT_BOX = 'leftBox'; export const LEFT_BOX = 'leftBox';
var CENTER_BOX = 'centerBox'; export const CENTER_BOX = 'centerBox';
var RIGHT_BOX = 'rightBox'; export const RIGHT_BOX = 'rightBox';
var DESKTOP_BTN = 'desktopButton'; export const DESKTOP_BTN = 'desktopButton';
var STACKED_TL = 'stackedTL'; export const STACKED_TL = 'stackedTL';
var STACKED_BR = 'stackedBR'; export const STACKED_BR = 'stackedBR';
var CENTERED = 'centered'; export const CENTERED = 'centered';
var CENTERED_MONITOR = 'centerMonitor'; export const CENTERED_MONITOR = 'centerMonitor';
var TOP = 'TOP'; export const TOP = 'TOP';
var BOTTOM = 'BOTTOM'; export const BOTTOM = 'BOTTOM';
var LEFT = 'LEFT'; export const LEFT = 'LEFT';
var RIGHT = 'RIGHT'; export const RIGHT = 'RIGHT';
var START = 'START'; export const START = 'START';
var MIDDLE = 'MIDDLE'; export const MIDDLE = 'MIDDLE';
var END = 'END'; export const END = 'END';
var defaults = [ export const defaults = [
{ element: LEFT_BOX, visible: true, position: STACKED_TL }, { element: LEFT_BOX, visible: true, position: STACKED_TL },
{ element: SHOW_APPS_BTN, visible: false, position: STACKED_TL }, { element: SHOW_APPS_BTN, visible: false, position: STACKED_TL },
{ element: ACTIVITIES_BTN, visible: true, position: STACKED_TL }, { element: ACTIVITIES_BTN, visible: true, position: STACKED_TL },
@@ -54,11 +54,11 @@ var defaults = [
{ element: DESKTOP_BTN, visible: false, position: STACKED_BR }, { element: DESKTOP_BTN, visible: false, position: STACKED_BR },
]; ];
var optionDialogFunctions = {}; export const optionDialogFunctions = {};
optionDialogFunctions[DATE_MENU] = '_showDateMenuOptions'; optionDialogFunctions[DATE_MENU] = '_showDateMenuOptions';
optionDialogFunctions[DESKTOP_BTN] = '_showDesktopButtonOptions'; optionDialogFunctions[DESKTOP_BTN] = '_showDesktopButtonOptions';
function checkIfCentered(position) { export function checkIfCentered(position) {
return position == CENTERED || position == CENTERED_MONITOR; return position == CENTERED || position == CENTERED_MONITOR;
} }

View File

@@ -15,11 +15,10 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
const Me = imports.misc.extensionUtils.getCurrentExtension(); import * as Pos from './panelPositions.js';
const Pos = Me.imports.panelPositions;
/** Return object representing a settings value that is stored as JSON. */ /** Return object representing a settings value that is stored as JSON. */
function getSettingsJson(settings, setting) { export function getSettingsJson(settings, setting) {
try { try {
return JSON.parse(settings.get_string(setting)); return JSON.parse(settings.get_string(setting));
} catch(e) { } catch(e) {
@@ -27,7 +26,7 @@ function getSettingsJson(settings, setting) {
} }
} }
/** Write value object as JSON to setting in settings. */ /** Write value object as JSON to setting in settings. */
function setSettingsJson(settings, setting, value) { export function setSettingsJson(settings, setting, value) {
try { try {
const json = JSON.stringify(value); const json = JSON.stringify(value);
settings.set_string(setting, json); settings.set_string(setting, json);
@@ -37,7 +36,7 @@ function setSettingsJson(settings, setting, value) {
} }
/** Returns size of panel on a specific monitor, in pixels. */ /** Returns size of panel on a specific monitor, in pixels. */
function getPanelSize(settings, monitorIndex) { export function getPanelSize(settings, monitorIndex) {
const sizes = getSettingsJson(settings, 'panel-sizes'); const sizes = getSettingsJson(settings, 'panel-sizes');
// Pull in deprecated setting if panel-sizes does not have setting for monitor. // Pull in deprecated setting if panel-sizes does not have setting for monitor.
const fallbackSize = settings.get_int('panel-size'); const fallbackSize = settings.get_int('panel-size');
@@ -45,7 +44,7 @@ function getPanelSize(settings, monitorIndex) {
return sizes[monitorIndex] || fallbackSize || theDefault; return sizes[monitorIndex] || fallbackSize || theDefault;
} }
function setPanelSize(settings, monitorIndex, value) { export function setPanelSize(settings, monitorIndex, value) {
if (!(Number.isInteger(value) && value <= 128 && value >= 16)) { if (!(Number.isInteger(value) && value <= 128 && value >= 16)) {
log('Not setting invalid panel size: ' + value); log('Not setting invalid panel size: ' + value);
return; return;
@@ -59,13 +58,13 @@ function setPanelSize(settings, monitorIndex, value) {
* Returns length of panel on a specific monitor, as a whole number percent, * Returns length of panel on a specific monitor, as a whole number percent,
* from settings. e.g. 100 * from settings. e.g. 100
*/ */
function getPanelLength(settings, monitorIndex) { export function getPanelLength(settings, monitorIndex) {
const lengths = getSettingsJson(settings, 'panel-lengths'); const lengths = getSettingsJson(settings, 'panel-lengths');
const theDefault = 100; const theDefault = 100;
return lengths[monitorIndex] || theDefault; return lengths[monitorIndex] || theDefault;
} }
function setPanelLength(settings, monitorIndex, value) { export function setPanelLength(settings, monitorIndex, value) {
if (!(Number.isInteger(value) && value <= 100 && value >= 0)) { if (!(Number.isInteger(value) && value <= 100 && value >= 0)) {
log('Not setting invalid panel length: ' + value); log('Not setting invalid panel length: ' + value);
return; return;
@@ -76,14 +75,14 @@ function setPanelLength(settings, monitorIndex, value) {
} }
/** Returns position of panel on a specific monitor. */ /** Returns position of panel on a specific monitor. */
function getPanelPosition(settings, monitorIndex) { export function getPanelPosition(settings, monitorIndex) {
const positions = getSettingsJson(settings, 'panel-positions'); const positions = getSettingsJson(settings, 'panel-positions');
const fallbackPosition = settings.get_string('panel-position'); const fallbackPosition = settings.get_string('panel-position');
const theDefault = Pos.BOTTOM; const theDefault = Pos.BOTTOM;
return positions[monitorIndex] || fallbackPosition || theDefault; return positions[monitorIndex] || fallbackPosition || theDefault;
} }
function setPanelPosition(settings, monitorIndex, value) { export function setPanelPosition(settings, monitorIndex, value) {
if (!(value === Pos.TOP || value === Pos.BOTTOM || value === Pos.LEFT if (!(value === Pos.TOP || value === Pos.BOTTOM || value === Pos.LEFT
|| value === Pos.RIGHT)) { || value === Pos.RIGHT)) {
log('Not setting invalid panel position: ' + value); log('Not setting invalid panel position: ' + value);
@@ -95,13 +94,13 @@ function setPanelPosition(settings, monitorIndex, value) {
} }
/** Returns anchor location of panel on a specific monitor. */ /** Returns anchor location of panel on a specific monitor. */
function getPanelAnchor(settings, monitorIndex) { export function getPanelAnchor(settings, monitorIndex) {
const anchors = getSettingsJson(settings, 'panel-anchors'); const anchors = getSettingsJson(settings, 'panel-anchors');
const theDefault = Pos.MIDDLE; const theDefault = Pos.MIDDLE;
return anchors[monitorIndex] || theDefault; return anchors[monitorIndex] || theDefault;
} }
function setPanelAnchor(settings, monitorIndex, value) { export function setPanelAnchor(settings, monitorIndex, value) {
if (!(value === Pos.START || value === Pos.MIDDLE || value === Pos.END)) { if (!(value === Pos.START || value === Pos.MIDDLE || value === Pos.END)) {
log('Not setting invalid panel anchor: ' + value); log('Not setting invalid panel anchor: ' + value);
return; return;

View File

@@ -22,18 +22,9 @@
* mathematical.coffee@gmail.com * mathematical.coffee@gmail.com
*/ */
const Me = imports.misc.extensionUtils.getCurrentExtension(); import * as Utils from './utils.js';
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const Mainloop = imports.mainloop;
const St = imports.gi.St;
const Shell = imports.gi.Shell;
const Panel = Me.imports.panel; export const PanelStyle = class {
const Taskbar = Me.imports.taskbar;
const Utils = Me.imports.utils;
var PanelStyle = class {
enable(panel) { enable(panel) {
this.panel = panel; this.panel = panel;
@@ -56,7 +47,7 @@ var PanelStyle = class {
this._applyStylesRecursively(); this._applyStylesRecursively();
/* connect signal */ /* connect signal */
this._rightBoxActorAddedID = this.panel._rightBox.connect('actor-added', this._rightBoxActorAddedID = this.panel._rightBox.connect('child-added',
(container, actor) => { (container, actor) => {
if(this._rightBoxOperations.length && !this._ignoreAddedChild) if(this._rightBoxOperations.length && !this._ignoreAddedChild)
this._recursiveApply(actor, this._rightBoxOperations); this._recursiveApply(actor, this._rightBoxOperations);
@@ -64,7 +55,7 @@ var PanelStyle = class {
this._ignoreAddedChild = 0; this._ignoreAddedChild = 0;
} }
); );
this._centerBoxActorAddedID = this.panel._centerBox.connect('actor-added', this._centerBoxActorAddedID = this.panel._centerBox.connect('child-added',
(container, actor) => { (container, actor) => {
if(this._centerBoxOperations.length && !this._ignoreAddedChild) if(this._centerBoxOperations.length && !this._ignoreAddedChild)
this._recursiveApply(actor, this._centerBoxOperations); this._recursiveApply(actor, this._centerBoxOperations);
@@ -72,7 +63,7 @@ var PanelStyle = class {
this._ignoreAddedChild = 0; this._ignoreAddedChild = 0;
} }
); );
this._leftBoxActorAddedID = this.panel._leftBox.connect('actor-added', this._leftBoxActorAddedID = this.panel._leftBox.connect('child-added',
(container, actor) => { (container, actor) => {
if(this._leftBoxOperations.length) if(this._leftBoxOperations.length)
this._recursiveApply(actor, this._leftBoxOperations); this._recursiveApply(actor, this._leftBoxOperations);

415
po/cs.po

File diff suppressed because it is too large Load Diff

626
po/de.po

File diff suppressed because it is too large Load Diff

View File

@@ -255,6 +255,12 @@ msgstr "Importar configuraciones"
msgid "Quit" msgid "Quit"
msgstr "Salir" 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 #: appIcons.js:1515
msgid "Windows" msgid "Windows"
msgstr "Ventanas" msgstr "Ventanas"

905
po/fr.po

File diff suppressed because it is too large Load Diff

252
po/it.po
View File

@@ -2,15 +2,16 @@
# This file is distributed under the same license as the Dash to Panel package. # This file is distributed under the same license as the Dash to Panel package.
# Enrico Bella <enricobe@hotmail.com>, 2018. # Enrico Bella <enricobe@hotmail.com>, 2018.
# Kowalski7cc <kowalski.7cc@gmail.com>, 2020. # Kowalski7cc <kowalski.7cc@gmail.com>, 2020.
# Albano Battistella <albanobattistella@gmail.com>, 2023.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-08 08:31-0500\n" "POT-Creation-Date: 2023-02-08 08:31-0500\n"
"PO-Revision-Date: 2020-05-15 23:12+0200\n" "PO-Revision-Date: 2023-12-22 20:38+0200\n"
"Last-Translator: l3nn4rt <l3nn4rt@protonmail.com>\n" "Last-Translator: Albano Battistella <albanoattistella@gmail.com>\n"
"Language-Team: \n" "Language-Team: Italian\n"
"Language: it\n" "Language: it\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -35,9 +36,8 @@ msgid "Left"
msgstr "Sinistra" msgstr "Sinistra"
#: prefs.js:318 #: prefs.js:318
#, fuzzy
msgid "Center" msgid "Center"
msgstr "Allinea al centro dello spazio disponibile" msgstr "Centro"
#: prefs.js:319 ui/SettingsPosition.ui.h:13 ui/SettingsStyle.ui.h:12 #: prefs.js:319 ui/SettingsPosition.ui.h:13 ui/SettingsStyle.ui.h:12
msgid "Right" msgid "Right"
@@ -50,7 +50,7 @@ msgstr "Alto"
#: prefs.js:322 prefs.js:327 ui/SettingsPosition.ui.h:21 #: prefs.js:322 prefs.js:327 ui/SettingsPosition.ui.h:21
msgid "Middle" msgid "Middle"
msgstr "" msgstr "A metà"
#: prefs.js:323 ui/BoxWindowPreviewOptions.ui.h:37 ui/SettingsPosition.ui.h:10 #: prefs.js:323 ui/BoxWindowPreviewOptions.ui.h:37 ui/SettingsPosition.ui.h:10
#: ui/SettingsStyle.ui.h:9 #: ui/SettingsStyle.ui.h:9
@@ -59,11 +59,11 @@ msgstr "Basso"
#: prefs.js:326 ui/SettingsPosition.ui.h:20 #: prefs.js:326 ui/SettingsPosition.ui.h:20
msgid "Start" msgid "Start"
msgstr "" msgstr "Inizio"
#: prefs.js:328 ui/SettingsPosition.ui.h:22 #: prefs.js:328 ui/SettingsPosition.ui.h:22
msgid "End" msgid "End"
msgstr "" msgstr "Fine"
#: prefs.js:413 #: prefs.js:413
msgid "Show Applications button" msgid "Show Applications button"
@@ -155,7 +155,7 @@ msgstr "Opzioni Mostra Applicazioni"
#: prefs.js:530 #: prefs.js:530
msgid "Open icon" msgid "Open icon"
msgstr "" msgstr "Apri icona"
#: prefs.js:577 #: prefs.js:577
msgid "Show Desktop options" msgid "Show Desktop options"
@@ -164,7 +164,7 @@ msgstr "Opzioni Mostra Desktop"
#: prefs.js:661 #: prefs.js:661
#, javascript-format #, javascript-format
msgid "%d ms" msgid "%d ms"
msgstr "" msgstr "%d ms"
#: prefs.js:666 #: prefs.js:666
#, javascript-format #, javascript-format
@@ -185,8 +185,8 @@ msgstr ""
#, javascript-format #, javascript-format
msgid "%d icon" msgid "%d icon"
msgid_plural "%d icons" msgid_plural "%d icons"
msgstr[0] "" msgstr[0] "%d icona"
msgstr[1] "" msgstr[1] "%d icone"
#: prefs.js:782 #: prefs.js:782
msgid "Running Indicator Options" msgid "Running Indicator Options"
@@ -241,9 +241,8 @@ msgid "Advanced Options"
msgstr "Impostazioni avanzate" msgstr "Impostazioni avanzate"
#: prefs.js:2040 #: prefs.js:2040
#, fuzzy
msgid "App icon animation options" msgid "App icon animation options"
msgstr "Opzioni Mostra Applicazioni" msgstr "Opzioni di animazione dell'icona dell'app"
#: prefs.js:2088 #: prefs.js:2088
msgid "Export settings" msgid "Export settings"
@@ -288,9 +287,8 @@ msgid "Terminal"
msgstr "Terminale" msgstr "Terminale"
#: appIcons.js:1824 #: appIcons.js:1824
#, fuzzy
msgid "System Monitor" msgid "System Monitor"
msgstr "Isola monitor" msgstr "Monitor di sistema"
#: appIcons.js:1829 #: appIcons.js:1829
msgid "Files" msgid "Files"
@@ -330,50 +328,47 @@ msgstr "Ancora niente!"
#: ui/BoxAdvancedOptions.ui.h:2 #: ui/BoxAdvancedOptions.ui.h:2
msgid "For real..." msgid "For real..."
msgstr "" msgstr "Per davvero..."
#: ui/BoxAnimateAppIconHoverOptions.ui.h:1 #: ui/BoxAnimateAppIconHoverOptions.ui.h:1
#, fuzzy
msgid "Animation type" msgid "Animation type"
msgstr "Durata animazione (ms)" msgstr "Tipo di animazione"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:2 #: ui/BoxAnimateAppIconHoverOptions.ui.h:2
msgid "Simple" msgid "Simple"
msgstr "" msgstr "Semplice"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:3 #: ui/BoxAnimateAppIconHoverOptions.ui.h:3
msgid "Ripple" msgid "Ripple"
msgstr "" msgstr "Ondulata"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:4 #: ui/BoxAnimateAppIconHoverOptions.ui.h:4
msgid "Plank" msgid "Plank"
msgstr "" msgstr "Plank"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:5 #: ui/BoxAnimateAppIconHoverOptions.ui.h:5
msgid "Duration" msgid "Duration"
msgstr "" msgstr "Durata"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:6 #: ui/BoxAnimateAppIconHoverOptions.ui.h:6
#, fuzzy
msgid "Rotation" msgid "Rotation"
msgstr "Posizione" msgstr "Rotazione"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:7 #: ui/BoxAnimateAppIconHoverOptions.ui.h:7
msgid "Travel" msgid "Travel"
msgstr "" msgstr "Gamma di movimento"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:8 #: ui/BoxAnimateAppIconHoverOptions.ui.h:8
msgid "Zoom" msgid "Zoom"
msgstr "" msgstr "Zoom"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:9 #: ui/BoxAnimateAppIconHoverOptions.ui.h:9
msgid "Convexity" msgid "Convexity"
msgstr "" msgstr "Convessità"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:10 #: ui/BoxAnimateAppIconHoverOptions.ui.h:10
#, fuzzy
msgid "Extent" msgid "Extent"
msgstr "Estensioni" msgstr "Estensione"
#: ui/BoxDotOptions.ui.h:1 #: ui/BoxDotOptions.ui.h:1
msgid "Highlight focused application" msgid "Highlight focused application"
@@ -498,16 +493,12 @@ msgid "Font color of the minimized application titles"
msgstr "Colore font titoli delle applicazioni minimizzate" msgstr "Colore font titoli delle applicazioni minimizzate"
#: ui/BoxGroupAppsOptions.ui.h:10 #: ui/BoxGroupAppsOptions.ui.h:10
#, fuzzy
msgid "Maximum width (px) of the application titles" msgid "Maximum width (px) of the application titles"
msgstr "Larghezza massima (px) dei titoli delle app (predef. 160)" msgstr "Larghezza massima (px) dei titoli delle applicazioni"
#: ui/BoxGroupAppsOptions.ui.h:11 #: ui/BoxGroupAppsOptions.ui.h:11
#, fuzzy
msgid "(default is 160)" msgid "(default is 160)"
msgstr "" msgstr "(predefinito è 160)"
"Dimensione pannello\n"
"(predefinito 48)"
#: ui/BoxGroupAppsOptions.ui.h:12 #: ui/BoxGroupAppsOptions.ui.h:12
msgid "Use a fixed width for the application titles" msgid "Use a fixed width for the application titles"
@@ -532,9 +523,8 @@ msgid "Use the favorite icons as application launchers"
msgstr "Usa le icone dei Preferiti come lanciatori delle app" msgstr "Usa le icone dei Preferiti come lanciatori delle app"
#: ui/BoxIntellihideOptions.ui.h:1 #: ui/BoxIntellihideOptions.ui.h:1
#, fuzzy
msgid "Only hide the panel when it is obstructed by windows" msgid "Only hide the panel when it is obstructed by windows"
msgstr "Nascondi pannello solo quando è ostruito dalle finestre " msgstr "Nascondi il pannello solo quando è ostruito da finestre"
#: ui/BoxIntellihideOptions.ui.h:2 #: ui/BoxIntellihideOptions.ui.h:2
msgid "The panel hides from" msgid "The panel hides from"
@@ -557,14 +547,12 @@ msgid "Allow the panel to be revealed while in fullscreen mode"
msgstr "Permetti al pannello di apparire quando in modalità fullscreen" msgstr "Permetti al pannello di apparire quando in modalità fullscreen"
#: ui/BoxIntellihideOptions.ui.h:10 #: ui/BoxIntellihideOptions.ui.h:10
#, fuzzy
msgid "Only hide secondary panels" msgid "Only hide secondary panels"
msgstr "Visualizza l'orologio su pannelli secondari" msgstr "Nascondi solo i pannelli secondari"
#: ui/BoxIntellihideOptions.ui.h:11 #: ui/BoxIntellihideOptions.ui.h:11
#, fuzzy
msgid "(requires multi-monitors option)" msgid "(requires multi-monitors option)"
msgstr "Opzioni multi-monitor" msgstr "(richiede l'opzione multi-monitor)"
#: ui/BoxIntellihideOptions.ui.h:12 #: ui/BoxIntellihideOptions.ui.h:12
msgid "Keyboard shortcut to reveal and hold the panel" msgid "Keyboard shortcut to reveal and hold the panel"
@@ -627,9 +615,8 @@ msgid "Toggle single / Preview multiple"
msgstr "Commuta finestra singola e mostra anteprime" msgstr "Commuta finestra singola e mostra anteprime"
#: ui/BoxMiddleClickOptions.ui.h:9 ui/SettingsAction.ui.h:6 #: ui/BoxMiddleClickOptions.ui.h:9 ui/SettingsAction.ui.h:6
#, fuzzy
msgid "Toggle single / Cycle multiple" msgid "Toggle single / Cycle multiple"
msgstr "Commuta finestra singola e mostra anteprime" msgstr "Attiva singolo / Ciclo multiplo"
#: ui/BoxMiddleClickOptions.ui.h:11 #: ui/BoxMiddleClickOptions.ui.h:11
msgid "Middle-Click action" msgid "Middle-Click action"
@@ -757,9 +744,8 @@ msgid "<i>Show Details</i> menu item"
msgstr "Visualizza <i>Mostra Dettagli</i>" msgstr "Visualizza <i>Mostra Dettagli</i>"
#: ui/BoxShowApplicationsOptions.ui.h:1 #: ui/BoxShowApplicationsOptions.ui.h:1
#, fuzzy
msgid "Show Applications icon" msgid "Show Applications icon"
msgstr "Opzioni Mostra Applicazioni" msgstr "Mostra l'icona Applicazioni"
#: ui/BoxShowApplicationsOptions.ui.h:2 #: ui/BoxShowApplicationsOptions.ui.h:2
msgid "Show Applications icon side padding (px)" msgid "Show Applications icon side padding (px)"
@@ -772,7 +758,7 @@ msgstr ""
#: ui/BoxShowDesktopOptions.ui.h:1 #: ui/BoxShowDesktopOptions.ui.h:1
msgid "Override Show Desktop line color" msgid "Override Show Desktop line color"
msgstr "" msgstr "Sostituisci Mostra colore linea desktop"
#: ui/BoxShowDesktopOptions.ui.h:2 #: ui/BoxShowDesktopOptions.ui.h:2
msgid "Reveal the desktop when hovering the Show Desktop button" msgid "Reveal the desktop when hovering the Show Desktop button"
@@ -788,23 +774,21 @@ msgid "Fade duration (ms)"
msgstr "Durata dissolvenza (ms)" msgstr "Durata dissolvenza (ms)"
#: ui/BoxWindowPreviewOptions.ui.h:1 #: ui/BoxWindowPreviewOptions.ui.h:1
#, fuzzy
msgid "Time (ms) before showing" msgid "Time (ms) before showing"
msgstr "" msgstr ""
"Tempo (ms) prima della visualizzazione (400 è l'impostazione predefinita)" "Tempo (ms) prima della visualizzazione"
#: ui/BoxWindowPreviewOptions.ui.h:2 #: ui/BoxWindowPreviewOptions.ui.h:2
msgid "(400 is default)" msgid "(400 is default)"
msgstr "" msgstr "(400 è predefinita)"
#: ui/BoxWindowPreviewOptions.ui.h:3 #: ui/BoxWindowPreviewOptions.ui.h:3
#, fuzzy
msgid "Time (ms) before hiding" msgid "Time (ms) before hiding"
msgstr "Tempo (ms) prima di nascondersi (100 è l'impostazione predefinita)" msgstr "Tempo (ms) prima di nascondersi"
#: ui/BoxWindowPreviewOptions.ui.h:4 #: ui/BoxWindowPreviewOptions.ui.h:4
msgid "(100 is default)" msgid "(100 is default)"
msgstr "" msgstr "(100 è predefinito)"
#: ui/BoxWindowPreviewOptions.ui.h:5 #: ui/BoxWindowPreviewOptions.ui.h:5
msgid "Immediate on application icon click" msgid "Immediate on application icon click"
@@ -927,11 +911,10 @@ msgid "Use custom opacity for the previews background"
msgstr "Usa l'opacità personalizzata per lo sfondo delle anteprime" msgstr "Usa l'opacità personalizzata per lo sfondo delle anteprime"
#: ui/BoxWindowPreviewOptions.ui.h:35 #: ui/BoxWindowPreviewOptions.ui.h:35
#, fuzzy
msgid "" msgid ""
"If disabled, the previews background have the same opacity as the panel." "If disabled, the previews background have the same opacity as the panel."
msgstr "" msgstr ""
"Se disabilitato, lo sfondo delle anteprime ha la stessa opacità del pannello" "Se disabilitato, lo sfondo delle anteprime avrà la stessa opacità del pannello."
#: ui/BoxWindowPreviewOptions.ui.h:36 #: ui/BoxWindowPreviewOptions.ui.h:36
msgid "Close button and header position" msgid "Close button and header position"
@@ -942,15 +925,12 @@ msgid "Display window preview headers"
msgstr "Visualizza le intestazioni di anteprima della finestra" msgstr "Visualizza le intestazioni di anteprima della finestra"
#: ui/BoxWindowPreviewOptions.ui.h:40 #: ui/BoxWindowPreviewOptions.ui.h:40
#, fuzzy
msgid "Icon size (px) of the window preview" msgid "Icon size (px) of the window preview"
msgstr "Dimensione carattere (px) dei titoli di anteprima" msgstr "Dimensioni dell'icona (px) dell'anteprima della finestra"
#: ui/BoxWindowPreviewOptions.ui.h:41 #: ui/BoxWindowPreviewOptions.ui.h:41
#, fuzzy
msgid "If disabled, the previews icon size will be based on headerbar size" msgid "If disabled, the previews icon size will be based on headerbar size"
msgstr "" msgstr "Se disabilitato, la dimensione dell'icona delle anteprime sarà basata sulla dimensione della barra di intestazione"
"Se disabilitato, lo sfondo delle anteprime ha la stessa opacità del pannello"
#: ui/BoxWindowPreviewOptions.ui.h:42 #: ui/BoxWindowPreviewOptions.ui.h:42
msgid "Font size (px) of the preview titles" msgid "Font size (px) of the preview titles"
@@ -1003,25 +983,23 @@ msgstr ""
#: ui/SettingsAbout.ui.h:1 #: ui/SettingsAbout.ui.h:1
msgid "Info" msgid "Info"
msgstr "" msgstr "Informazioni"
#: ui/SettingsAbout.ui.h:2 #: ui/SettingsAbout.ui.h:2
#, fuzzy
msgid "Version" msgid "Version"
msgstr "versione: " msgstr "versione"
#: ui/SettingsAbout.ui.h:3 #: ui/SettingsAbout.ui.h:3
msgid "Source" msgid "Source"
msgstr "" msgstr "Sorgente"
#: ui/SettingsAbout.ui.h:4 #: ui/SettingsAbout.ui.h:4
msgid "GitHub" msgid "GitHub"
msgstr "GitHub" msgstr "GitHub"
#: ui/SettingsAbout.ui.h:5 #: ui/SettingsAbout.ui.h:5
#, fuzzy
msgid "Export and Import" msgid "Export and Import"
msgstr "Esporta e importa impostazioni" msgstr "Esporta e importa"
#: ui/SettingsAbout.ui.h:6 #: ui/SettingsAbout.ui.h:6
msgid "Export and import settings" msgid "Export and import settings"
@@ -1067,9 +1045,8 @@ msgid "Toggle windows"
msgstr "Commuta le finestre" msgstr "Commuta le finestre"
#: ui/SettingsAction.ui.h:10 #: ui/SettingsAction.ui.h:10
#, fuzzy
msgid "Scroll action" msgid "Scroll action"
msgstr "Azione scorrimento icona" msgstr "Azione di scorrimento"
#: ui/SettingsAction.ui.h:11 #: ui/SettingsAction.ui.h:11
msgid "Scroll panel action" msgid "Scroll panel action"
@@ -1109,9 +1086,8 @@ msgid "Same as panel"
msgstr "Stesso del pannello" msgstr "Stesso del pannello"
#: ui/SettingsAction.ui.h:20 #: ui/SettingsAction.ui.h:20
#, fuzzy
msgid "Hotkey overlay" msgid "Hotkey overlay"
msgstr "Sovrimpressione numero" msgstr "Sovrapposizione tasti di scelta rapida"
#: ui/SettingsAction.ui.h:21 #: ui/SettingsAction.ui.h:21
msgid "Use hotkeys to activate apps" msgid "Use hotkeys to activate apps"
@@ -1126,9 +1102,8 @@ msgstr ""
"assieme a Shift e Ctrl." "assieme a Shift e Ctrl."
#: ui/SettingsBehavior.ui.h:1 #: ui/SettingsBehavior.ui.h:1
#, fuzzy
msgid "Applications" msgid "Applications"
msgstr "Non raggruppare applicazioni" msgstr "Applicazioni"
#: ui/SettingsBehavior.ui.h:2 #: ui/SettingsBehavior.ui.h:2
msgid "Show favorite applications" msgid "Show favorite applications"
@@ -1152,7 +1127,7 @@ msgstr "Non raggruppare applicazioni"
#: ui/SettingsBehavior.ui.h:7 #: ui/SettingsBehavior.ui.h:7
msgid "Show notification counter badge" msgid "Show notification counter badge"
msgstr "" msgstr "Mostra il badge del contatore delle notifiche"
#: ui/SettingsBehavior.ui.h:8 #: ui/SettingsBehavior.ui.h:8
msgid "Show window previews on hover" msgid "Show window previews on hover"
@@ -1163,9 +1138,8 @@ msgid "Show tooltip on hover"
msgstr "Mostra suggerimento al passaggio" msgstr "Mostra suggerimento al passaggio"
#: ui/SettingsBehavior.ui.h:10 #: ui/SettingsBehavior.ui.h:10
#, fuzzy
msgid "Isolate" msgid "Isolate"
msgstr "Isola monitor" msgstr "Isola"
#: ui/SettingsBehavior.ui.h:11 #: ui/SettingsBehavior.ui.h:11
msgid "Isolate Workspaces" msgid "Isolate Workspaces"
@@ -1177,70 +1151,55 @@ msgstr "Isola monitor"
#: ui/SettingsBehavior.ui.h:13 #: ui/SettingsBehavior.ui.h:13
msgid "Overview" msgid "Overview"
msgstr "" msgstr "Panoramica"
#: ui/SettingsBehavior.ui.h:14 #: ui/SettingsBehavior.ui.h:14
msgid "Click empty space to close overview" msgid "Click empty space to close overview"
msgstr "" msgstr "Fare clic su uno spazio vuoto per chiudere la panoramica"
#: ui/SettingsBehavior.ui.h:15 #: ui/SettingsBehavior.ui.h:15
msgid "Disable show overview on startup" msgid "Disable show overview on startup"
msgstr "" msgstr "Disabilita mostra panoramica all'avvio"
#: ui/SettingsFineTune.ui.h:1 #: ui/SettingsFineTune.ui.h:1
msgid "Font size" msgid "Font size"
msgstr "" msgstr "Dimensione del font"
#: ui/SettingsFineTune.ui.h:2 #: ui/SettingsFineTune.ui.h:2
msgid "Tray Font Size" msgid "Tray Font Size"
msgstr "" msgstr "Dimensione font Tray"
#: ui/SettingsFineTune.ui.h:3 #: ui/SettingsFineTune.ui.h:3
#, fuzzy
msgid "(0 = theme default)" msgid "(0 = theme default)"
msgstr "" msgstr "(0 = tema predefinito)"
"Dimens. Font Tray\n"
"(0 = predefinito)"
#: ui/SettingsFineTune.ui.h:4 #: ui/SettingsFineTune.ui.h:4
#, fuzzy
msgid "LeftBox Font Size" msgid "LeftBox Font Size"
msgstr "" msgstr "Dimensione font casella sinistra"
"Dimens. Font LeftBox\n"
"(0 = predefinito)"
#: ui/SettingsFineTune.ui.h:5 #: ui/SettingsFineTune.ui.h:5
msgid "Padding" msgid "Padding"
msgstr "" msgstr "Imbottitura"
#: ui/SettingsFineTune.ui.h:6 #: ui/SettingsFineTune.ui.h:6
#, fuzzy
msgid "Tray Item Padding" msgid "Tray Item Padding"
msgstr "" msgstr "Imbottitura degli elementi della tray"
"Spaziatura Icone Tray\n"
"(-1 = predefinito)"
#: ui/SettingsFineTune.ui.h:7 #: ui/SettingsFineTune.ui.h:7
#, fuzzy
msgid "(-1 = theme default)" msgid "(-1 = theme default)"
msgstr "" msgstr "(-1 = tema predefinito)"
"Spaziatura LeftBox\n"
"(-1 = predefinito)"
#: ui/SettingsFineTune.ui.h:8 #: ui/SettingsFineTune.ui.h:8
#, fuzzy
msgid "Status Icon Padding" msgid "Status Icon Padding"
msgstr "" msgstr "Imbottitura icona di stato"
"Spaziatura icone stato\n"
"(-1 = predefinito)"
#: ui/SettingsFineTune.ui.h:9 #: ui/SettingsFineTune.ui.h:9
msgid "LeftBox Padding" msgid "LeftBox Padding"
msgstr "" msgstr "Imbottitura della casella sinistra"
#: ui/SettingsFineTune.ui.h:10 #: ui/SettingsFineTune.ui.h:10
msgid "Animate" msgid "Animate"
msgstr "" msgstr "Animato"
#: ui/SettingsFineTune.ui.h:11 #: ui/SettingsFineTune.ui.h:11
msgid "Animate switching applications" msgid "Animate switching applications"
@@ -1252,49 +1211,43 @@ msgstr "Animazione apertura nuove finestre"
#: ui/SettingsFineTune.ui.h:13 #: ui/SettingsFineTune.ui.h:13
msgid "Gnome functionality" msgid "Gnome functionality"
msgstr "" msgstr "Funzionalità Gnome"
#: ui/SettingsFineTune.ui.h:14 #: ui/SettingsFineTune.ui.h:14
#, fuzzy
msgid "Keep original gnome-shell dash" msgid "Keep original gnome-shell dash"
msgstr "Mantieni dash originale di gnome-shell (schermata panoramica)" msgstr "Mantieni dash originale di gnome-shell"
#: ui/SettingsFineTune.ui.h:15 #: ui/SettingsFineTune.ui.h:15
msgid "(overview)" msgid "(overview)"
msgstr "" msgstr "(panoramica)"
#: ui/SettingsFineTune.ui.h:16 #: ui/SettingsFineTune.ui.h:16
msgid "Keep original gnome-shell top panel" msgid "Keep original gnome-shell top panel"
msgstr "Mantieni il pannello superiore della gnome-shell originale" msgstr "Mantieni il pannello superiore della gnome-shell originale"
#: ui/SettingsFineTune.ui.h:17 #: ui/SettingsFineTune.ui.h:17
#, fuzzy
msgid "Activate panel menu buttons on click only" msgid "Activate panel menu buttons on click only"
msgstr "" msgstr "Attiva i pulsanti del menu del pannello solo con un clic"
"Attiva i pulsanti del menu del pannello (ad es. Menu della data) solo al clic"
#: ui/SettingsFineTune.ui.h:18 #: ui/SettingsFineTune.ui.h:18
#, fuzzy
msgid "(e.g. date menu)" msgid "(e.g. date menu)"
msgstr "Data e ora" msgstr "(es. menu data)"
#: ui/SettingsFineTune.ui.h:19 #: ui/SettingsFineTune.ui.h:19
msgid "Force Activities hot corner on primary monitor" msgid "Force Activities hot corner on primary monitor"
msgstr "Forza angolo attivo delle attività sul monitor principale" msgstr "Forza angolo attivo delle attività sul monitor principale"
#: ui/SettingsFineTune.ui.h:20 #: ui/SettingsFineTune.ui.h:20
#, fuzzy
msgid "App icon secondary menu" msgid "App icon secondary menu"
msgstr "Menu secondario (clic destro) delle icone" msgstr "Menu secondario dell'icona dell'app"
#: ui/SettingsFineTune.ui.h:21 #: ui/SettingsFineTune.ui.h:21
#, fuzzy
msgid "(right-click menu)" msgid "(right-click menu)"
msgstr "Menu secondario (clic destro) delle icone" msgstr "(menù cliccabile con il tasto destro)"
#: ui/SettingsPosition.ui.h:1 #: ui/SettingsPosition.ui.h:1
msgid "Panel" msgid "Panel"
msgstr "" msgstr "Pannello"
#: ui/SettingsPosition.ui.h:2 #: ui/SettingsPosition.ui.h:2
msgid "Display the main panel on" msgid "Display the main panel on"
@@ -1313,14 +1266,12 @@ msgid "Hide and reveal the panel according to preferences"
msgstr "Mostra e nascondi il pannello secondo le preferenze" msgstr "Mostra e nascondi il pannello secondo le preferenze"
#: ui/SettingsPosition.ui.h:6 #: ui/SettingsPosition.ui.h:6
#, fuzzy
msgid "Order and Position on monitors" msgid "Order and Position on monitors"
msgstr "Ordinamento e posizione sullo schermo" msgstr "Ordinamento e posizione sui monitor"
#: ui/SettingsPosition.ui.h:7 #: ui/SettingsPosition.ui.h:7
#, fuzzy
msgid "Monitor" msgid "Monitor"
msgstr "Monitor " msgstr "Monitor"
#: ui/SettingsPosition.ui.h:8 #: ui/SettingsPosition.ui.h:8
msgid "Apply changes to all monitors" msgid "Apply changes to all monitors"
@@ -1331,79 +1282,57 @@ msgid "Panel screen position"
msgstr "Posizione pannello sullo schermo" msgstr "Posizione pannello sullo schermo"
#: ui/SettingsPosition.ui.h:14 #: ui/SettingsPosition.ui.h:14
#, fuzzy
msgid "Panel thickness" msgid "Panel thickness"
msgstr "Pannello Intellihide" msgstr "Spessore del pannello"
#: ui/SettingsPosition.ui.h:15 #: ui/SettingsPosition.ui.h:15
#, fuzzy
msgid "(default is 48)" msgid "(default is 48)"
msgstr "" msgstr "(predefinito è 48)"
"Dimensione pannello\n"
"(predefinito 48)"
#: ui/SettingsPosition.ui.h:17 #: ui/SettingsPosition.ui.h:17
#, no-c-format #, no-c-format
msgid "Panel length (%)" msgid "Panel length (%)"
msgstr "" msgstr "Lunghezza del pannello (%)"
#: ui/SettingsPosition.ui.h:18 #: ui/SettingsPosition.ui.h:18
#, fuzzy
msgid "(default is 100)" msgid "(default is 100)"
msgstr "" msgstr "(predefinito è 100)"
"Dimensione pannello\n"
"(predefinito 48)"
#: ui/SettingsPosition.ui.h:19 #: ui/SettingsPosition.ui.h:19
msgid "Anchor" msgid "Anchor"
msgstr "" msgstr "Ancora"
#: ui/SettingsPosition.ui.h:23 #: ui/SettingsPosition.ui.h:23
#, fuzzy
msgid "Taskbar Display" msgid "Taskbar Display"
msgstr "Taskbar" msgstr "Visualizzazione Taskbar"
#: ui/SettingsStyle.ui.h:1 #: ui/SettingsStyle.ui.h:1
msgid "AppIcon style" msgid "AppIcon style"
msgstr "" msgstr "Stile icona dell'app"
#: ui/SettingsStyle.ui.h:2 #: ui/SettingsStyle.ui.h:2
#, fuzzy
msgid "App Icon Margin" msgid "App Icon Margin"
msgstr "" msgstr "Margine icona app"
"Margine icone app\n"
"(predefinito 8)"
#: ui/SettingsStyle.ui.h:3 #: ui/SettingsStyle.ui.h:3
#, fuzzy
msgid "(default is 8)" msgid "(default is 8)"
msgstr "" msgstr "(predefinito è 8)"
"Dimensione pannello\n"
"(predefinito 48)"
#: ui/SettingsStyle.ui.h:4 #: ui/SettingsStyle.ui.h:4
#, fuzzy
msgid "App Icon Padding" msgid "App Icon Padding"
msgstr "" msgstr "Imbottitura delle icone dell'app"
"Spaziatura icone app\n"
"(predefinito 4)"
#: ui/SettingsStyle.ui.h:5 #: ui/SettingsStyle.ui.h:5
#, fuzzy
msgid "(default is 4)" msgid "(default is 4)"
msgstr "" msgstr "(predefinito è 4)"
"Dimensione pannello\n"
"(predefinito 48)"
#: ui/SettingsStyle.ui.h:6 #: ui/SettingsStyle.ui.h:6
#, fuzzy
msgid "Animate hovering app icons" msgid "Animate hovering app icons"
msgstr "Animazione passaggio tra applicazioni" msgstr "Animazione passaggio tra le icone delle app"
#: ui/SettingsStyle.ui.h:7 #: ui/SettingsStyle.ui.h:7
#, fuzzy
msgid "Running indicator" msgid "Running indicator"
msgstr "Posizione indicatore di esecuzione" msgstr "Indicatore di esecuzione"
#: ui/SettingsStyle.ui.h:8 #: ui/SettingsStyle.ui.h:8
msgid "Running indicator position" msgid "Running indicator position"
@@ -1446,14 +1375,12 @@ msgid "Running indicator style (Unfocused apps)"
msgstr "Stile indicatore di esecuzione (app senza focus)" msgstr "Stile indicatore di esecuzione (app senza focus)"
#: ui/SettingsStyle.ui.h:22 #: ui/SettingsStyle.ui.h:22
#, fuzzy
msgid "Panel style" msgid "Panel style"
msgstr "Pannello Intellihide" msgstr "Stile del pannello"
#: ui/SettingsStyle.ui.h:23 #: ui/SettingsStyle.ui.h:23
#, fuzzy
msgid "Override panel theme background color" msgid "Override panel theme background color"
msgstr "Ignora il colore di sfondo del pannello " msgstr "Sostituisci il colore di sfondo del tema del pannello"
#: ui/SettingsStyle.ui.h:24 #: ui/SettingsStyle.ui.h:24
msgid "Override panel theme background opacity" msgid "Override panel theme background opacity"
@@ -1473,9 +1400,8 @@ msgid "Change opacity when a window gets close to the panel"
msgstr "Cambia l'opacità quando una finestra è vicina al pannello" msgstr "Cambia l'opacità quando una finestra è vicina al pannello"
#: ui/SettingsStyle.ui.h:30 #: ui/SettingsStyle.ui.h:30
#, fuzzy
msgid "Override panel theme gradient" msgid "Override panel theme gradient"
msgstr "Ignora gradiente del pannello " msgstr "Sostituisci il gradiente del tema del pannello"
#: ui/SettingsStyle.ui.h:32 #: ui/SettingsStyle.ui.h:32
#, no-c-format #, no-c-format
@@ -1607,7 +1533,7 @@ msgstr "Isola aree di lavoro e monitor nelle impostazioni di Cambio applicazione
#~ "about/\">Leggi di più</a>" #~ "about/\">Leggi di più</a>"
#~ msgid "About" #~ msgid "About"
#~ msgstr "Informazioni su" #~ msgstr "Informazioni"
#~ msgid "Top, with plugin icons collapsed to bottom" #~ msgid "Top, with plugin icons collapsed to bottom"
#~ msgstr "In alto, con le icone dei plugin raggruppate in bassoa" #~ msgstr "In alto, con le icone dei plugin raggruppate in bassoa"

295
po/pl.po
View File

@@ -20,15 +20,15 @@ msgstr ""
#: prefs.js:247 #: prefs.js:247
msgid "Show Desktop button height (px)" msgid "Show Desktop button height (px)"
msgstr "Wysokość przycisku <i>Pokaż pulpit</i> (px)" msgstr "Wysokość przycisku <Pokaż pulpit (px)"
#: prefs.js:247 #: prefs.js:247
msgid "Show Desktop button width (px)" msgid "Show Desktop button width (px)"
msgstr "Szerokość przycisku <i>Pokaż pulpit</i> (px)" msgstr "Szerokość przycisku Pokaż pulpit (px)"
#: prefs.js:259 #: prefs.js:259
msgid "Unavailable when gnome-shell top panel is present" msgid "Unavailable when gnome-shell top panel is present"
msgstr "" msgstr "Niedostępne, gdy górna belka gnome-shell jest widoczna"
#: prefs.js:317 ui/SettingsPosition.ui.h:12 ui/SettingsStyle.ui.h:11 #: prefs.js:317 ui/SettingsPosition.ui.h:12 ui/SettingsStyle.ui.h:11
msgid "Left" msgid "Left"
@@ -36,7 +36,7 @@ msgstr "Lewo"
#: prefs.js:318 #: prefs.js:318
msgid "Center" msgid "Center"
msgstr "" msgstr "Wyśrodkowane"
#: prefs.js:319 ui/SettingsPosition.ui.h:13 ui/SettingsStyle.ui.h:12 #: prefs.js:319 ui/SettingsPosition.ui.h:13 ui/SettingsStyle.ui.h:12
msgid "Right" msgid "Right"
@@ -49,7 +49,7 @@ msgstr "Góra"
#: prefs.js:322 prefs.js:327 ui/SettingsPosition.ui.h:21 #: prefs.js:322 prefs.js:327 ui/SettingsPosition.ui.h:21
msgid "Middle" msgid "Middle"
msgstr "" msgstr "Po środku"
#: prefs.js:323 ui/BoxWindowPreviewOptions.ui.h:37 ui/SettingsPosition.ui.h:10 #: prefs.js:323 ui/BoxWindowPreviewOptions.ui.h:37 ui/SettingsPosition.ui.h:10
#: ui/SettingsStyle.ui.h:9 #: ui/SettingsStyle.ui.h:9
@@ -58,101 +58,91 @@ msgstr "Dół"
#: prefs.js:326 ui/SettingsPosition.ui.h:20 #: prefs.js:326 ui/SettingsPosition.ui.h:20
msgid "Start" msgid "Start"
msgstr "" msgstr "Początek"
#: prefs.js:328 ui/SettingsPosition.ui.h:22 #: prefs.js:328 ui/SettingsPosition.ui.h:22
msgid "End" msgid "End"
msgstr "" msgstr "Koniec"
#: prefs.js:413 #: prefs.js:413
#, fuzzy
msgid "Show Applications button" msgid "Show Applications button"
msgstr "Opcje wyświetlania programów" msgstr "Opcje wyświetlania programów"
#: prefs.js:414 #: prefs.js:414
#, fuzzy
msgid "Activities button" msgid "Activities button"
msgstr "Pokaż przycisk <i>Podgląd</i>" msgstr "Przycisk Podgląd"
#: prefs.js:415 #: prefs.js:415
#, fuzzy
msgid "Taskbar" msgid "Taskbar"
msgstr "Górna strona paska zadań" msgstr "Górna strona paska zadań"
#: prefs.js:416 #: prefs.js:416
msgid "Date menu" msgid "Date menu"
msgstr "" msgstr "Menu daty"
#: prefs.js:417 #: prefs.js:417
#, fuzzy
msgid "System menu" msgid "System menu"
msgstr "Monitor procesów" msgstr "Monitor procesów"
#: prefs.js:418 #: prefs.js:418
#, fuzzy
msgid "Left box" msgid "Left box"
msgstr "Lewo" msgstr "Po lewej"
#: prefs.js:419 #: prefs.js:419
msgid "Center box" msgid "Center box"
msgstr "" msgstr "Wyśrodkowanie do okna"
#: prefs.js:420 #: prefs.js:420
#, fuzzy
msgid "Right box" msgid "Right box"
msgstr "Prawo" msgstr "Po prawej"
#: prefs.js:421 #: prefs.js:421
#, fuzzy
msgid "Desktop button" msgid "Desktop button"
msgstr "Pokaż przycisk <i>Pulpit</i>" msgstr "Przycisk Pulpit"
#: prefs.js:427 #: prefs.js:427
msgid "Move up" msgid "Move up"
msgstr "" msgstr "W górę"
#: prefs.js:429 #: prefs.js:429
msgid "Move down" msgid "Move down"
msgstr "" msgstr "W dół"
#: prefs.js:431 #: prefs.js:431
msgid "Visible" msgid "Visible"
msgstr "" msgstr "Widoczny"
#: prefs.js:432 #: prefs.js:432
#, fuzzy
msgid "Select element position" msgid "Select element position"
msgstr "Położenie panelu na ekranie" msgstr "Położenie panelu na ekranie"
#: prefs.js:443 #: prefs.js:443
msgid "Stacked to top" msgid "Stacked to top"
msgstr "" msgstr "Przypięto do góry"
#: prefs.js:443 #: prefs.js:443
msgid "Stacked to left" msgid "Stacked to left"
msgstr "" msgstr "Przypięto do lewej"
#: prefs.js:444 #: prefs.js:444
msgid "Stacked to bottom" msgid "Stacked to bottom"
msgstr "" msgstr "Przypięto do dołu"
#: prefs.js:444 #: prefs.js:444
msgid "Stacked to right" msgid "Stacked to right"
msgstr "" msgstr "Przypięto do prawej"
#: prefs.js:445 #: prefs.js:445
msgid "Centered" msgid "Centered"
msgstr "" msgstr "Wyśrodkowano"
#: prefs.js:446 #: prefs.js:446
#, fuzzy
msgid "Monitor Center" msgid "Monitor Center"
msgstr "Monitor " msgstr "Monitor "
#: prefs.js:465 #: prefs.js:465
#, fuzzy
msgid "More options" msgid "More options"
msgstr "Opcje zasilania" msgstr "Więcej opcji"
#: prefs.js:497 #: prefs.js:497
msgid "Reset to defaults" msgid "Reset to defaults"
@@ -160,11 +150,11 @@ msgstr "Przywróć domyślne"
#: prefs.js:520 #: prefs.js:520
msgid "Show Applications options" msgid "Show Applications options"
msgstr "Opcje wyświetlania programów" msgstr "Pokaż opcje programów"
#: prefs.js:530 #: prefs.js:530
msgid "Open icon" msgid "Open icon"
msgstr "" msgstr "Wybierz ikonę"
#: prefs.js:577 #: prefs.js:577
msgid "Show Desktop options" msgid "Show Desktop options"
@@ -173,37 +163,36 @@ msgstr "Pokaż opcje pulpitu"
#: prefs.js:661 #: prefs.js:661
#, javascript-format #, javascript-format
msgid "%d ms" msgid "%d ms"
msgstr "" msgstr "%d ms"
#: prefs.js:666 #: prefs.js:666
#, javascript-format #, javascript-format
msgid "%d °" msgid "%d °"
msgstr "" msgstr "%d °"
#: prefs.js:671 prefs.js:676 #: prefs.js:671 prefs.js:676
#, javascript-format #, javascript-format
msgid "%d %%" msgid "%d %%"
msgstr "" msgstr "%d %%"
#: prefs.js:681 #: prefs.js:681
#, javascript-format #, javascript-format
msgid "%.1f" msgid "%.1f"
msgstr "" msgstr "%.1f"
#: prefs.js:686 #: prefs.js:686
#, javascript-format #, javascript-format
msgid "%d icon" msgid "%d icon"
msgid_plural "%d icons" msgid_plural "%d icons"
msgstr[0] "" msgstr[0] "%d ikon"
msgstr[1] "" msgstr[1] "%d ikona"
msgstr[2] "" msgstr[2] "%d ikon"
#: prefs.js:782 #: prefs.js:782
msgid "Running Indicator Options" msgid "Running Indicator Options"
msgstr "Opcje wskaźnika aktywnych programów" msgstr "Opcje wskaźnika aktywnych programów"
#: prefs.js:928 #: prefs.js:928
#, fuzzy
msgid "Primary monitor" msgid "Primary monitor"
msgstr "Domyślny (Główny monitor)" msgstr "Domyślny (Główny monitor)"
@@ -252,7 +241,6 @@ msgid "Advanced Options"
msgstr "Opcje zaawansowane" msgstr "Opcje zaawansowane"
#: prefs.js:2040 #: prefs.js:2040
#, fuzzy
msgid "App icon animation options" msgid "App icon animation options"
msgstr "Opcje wyświetlania programów" msgstr "Opcje wyświetlania programów"
@@ -307,7 +295,7 @@ msgstr "Pliki"
#: appIcons.js:1834 #: appIcons.js:1834
msgid "Extensions" msgid "Extensions"
msgstr "" msgstr "Rozszerzenia"
#: appIcons.js:1839 #: appIcons.js:1839
msgid "Settings" msgid "Settings"
@@ -339,49 +327,47 @@ msgstr "Jeszcze nic!"
#: ui/BoxAdvancedOptions.ui.h:2 #: ui/BoxAdvancedOptions.ui.h:2
msgid "For real..." msgid "For real..."
msgstr "" msgstr "Na pewno..."
#: ui/BoxAnimateAppIconHoverOptions.ui.h:1 #: ui/BoxAnimateAppIconHoverOptions.ui.h:1
#, fuzzy
msgid "Animation type" msgid "Animation type"
msgstr "Długość animacji (ms)" msgstr "Długość animacji (ms)"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:2 #: ui/BoxAnimateAppIconHoverOptions.ui.h:2
msgid "Simple" msgid "Simple"
msgstr "" msgstr "Prosta"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:3 #: ui/BoxAnimateAppIconHoverOptions.ui.h:3
msgid "Ripple" msgid "Ripple"
msgstr "" msgstr "Fala"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:4 #: ui/BoxAnimateAppIconHoverOptions.ui.h:4
msgid "Plank" msgid "Plank"
msgstr "" msgstr "Mała fala"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:5 #: ui/BoxAnimateAppIconHoverOptions.ui.h:5
msgid "Duration" msgid "Duration"
msgstr "" msgstr "Trwanie"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:6 #: ui/BoxAnimateAppIconHoverOptions.ui.h:6
#, fuzzy
msgid "Rotation" msgid "Rotation"
msgstr "Położenie" msgstr "Położenie"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:7 #: ui/BoxAnimateAppIconHoverOptions.ui.h:7
msgid "Travel" msgid "Travel"
msgstr "" msgstr "Przemieszczanie"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:8 #: ui/BoxAnimateAppIconHoverOptions.ui.h:8
msgid "Zoom" msgid "Zoom"
msgstr "" msgstr "Powiększenie"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:9 #: ui/BoxAnimateAppIconHoverOptions.ui.h:9
msgid "Convexity" msgid "Convexity"
msgstr "" msgstr "Wypukłość"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:10 #: ui/BoxAnimateAppIconHoverOptions.ui.h:10
msgid "Extent" msgid "Extent"
msgstr "" msgstr "Zakres"
#: ui/BoxDotOptions.ui.h:1 #: ui/BoxDotOptions.ui.h:1
msgid "Highlight focused application" msgid "Highlight focused application"
@@ -400,7 +386,6 @@ msgid "Highlight opacity"
msgstr "Przeźroczystość podświetlenia" msgstr "Przeźroczystość podświetlenia"
#: ui/BoxDotOptions.ui.h:5 #: ui/BoxDotOptions.ui.h:5
#, fuzzy
msgid "Indicator size (px)" msgid "Indicator size (px)"
msgstr "Wysokość wskaźnika (px)" msgstr "Wysokość wskaźnika (px)"
@@ -503,21 +488,16 @@ msgid "Font color of the application titles"
msgstr "Kolor czcionki" msgstr "Kolor czcionki"
#: ui/BoxGroupAppsOptions.ui.h:9 #: ui/BoxGroupAppsOptions.ui.h:9
#, fuzzy
msgid "Font color of the minimized application titles" msgid "Font color of the minimized application titles"
msgstr "Kolor czcionki" msgstr "Kolor czcionki"
#: ui/BoxGroupAppsOptions.ui.h:10 #: ui/BoxGroupAppsOptions.ui.h:10
#, fuzzy
msgid "Maximum width (px) of the application titles" msgid "Maximum width (px) of the application titles"
msgstr "Maksymalna szerokość (px) etykiet (domyślnie 160)" msgstr "Maksymalna szerokość (px) etykiet (domyślnie 160)"
#: ui/BoxGroupAppsOptions.ui.h:11 #: ui/BoxGroupAppsOptions.ui.h:11
#, fuzzy
msgid "(default is 160)" msgid "(default is 160)"
msgstr "" msgstr "(domyślnie 160)"
"Rozmiar panelu\n"
"(domyślnie 48)"
#: ui/BoxGroupAppsOptions.ui.h:12 #: ui/BoxGroupAppsOptions.ui.h:12
msgid "Use a fixed width for the application titles" msgid "Use a fixed width for the application titles"
@@ -542,7 +522,6 @@ msgid "Use the favorite icons as application launchers"
msgstr "Oddziel ulubione od uruchomionych programów" msgstr "Oddziel ulubione od uruchomionych programów"
#: ui/BoxIntellihideOptions.ui.h:1 #: ui/BoxIntellihideOptions.ui.h:1
#, fuzzy
msgid "Only hide the panel when it is obstructed by windows" msgid "Only hide the panel when it is obstructed by windows"
msgstr "Ukryj panel tylko wtedy, gdy jest zasłonięty przez okna " msgstr "Ukryj panel tylko wtedy, gdy jest zasłonięty przez okna "
@@ -567,12 +546,10 @@ msgid "Allow the panel to be revealed while in fullscreen mode"
msgstr "Pozwól, aby panel został odsłonięty w trybie pełnoekranowym" msgstr "Pozwól, aby panel został odsłonięty w trybie pełnoekranowym"
#: ui/BoxIntellihideOptions.ui.h:10 #: ui/BoxIntellihideOptions.ui.h:10
#, fuzzy
msgid "Only hide secondary panels" msgid "Only hide secondary panels"
msgstr "Ukryj wyłącznie drugorzędne panele (dla wielu monitorów)" msgstr "Ukryj wyłącznie drugorzędne panele (dla wielu monitorów)"
#: ui/BoxIntellihideOptions.ui.h:11 #: ui/BoxIntellihideOptions.ui.h:11
#, fuzzy
msgid "(requires multi-monitors option)" msgid "(requires multi-monitors option)"
msgstr "Opcje wielu monitorów" msgstr "Opcje wielu monitorów"
@@ -637,7 +614,6 @@ msgid "Toggle single / Preview multiple"
msgstr "Przełącz pojedyncze / Podejrzyj wiele" msgstr "Przełącz pojedyncze / Podejrzyj wiele"
#: ui/BoxMiddleClickOptions.ui.h:9 ui/SettingsAction.ui.h:6 #: ui/BoxMiddleClickOptions.ui.h:9 ui/SettingsAction.ui.h:6
#, fuzzy
msgid "Toggle single / Cycle multiple" msgid "Toggle single / Cycle multiple"
msgstr "Przełącz pojedyncze / Podejrzyj wiele" msgstr "Przełącz pojedyncze / Podejrzyj wiele"
@@ -655,9 +631,7 @@ msgstr "Kliknięcie środkowym przyciskiem + Shift"
#: ui/BoxMiddleClickOptions.ui.h:14 #: ui/BoxMiddleClickOptions.ui.h:14
msgid "Behavior for Shift+Middle-Click." msgid "Behavior for Shift+Middle-Click."
msgstr "" msgstr "Zachowanie dla Shift+środkowy przycisk"
"Konfiguruje działanie kliknięcia środkowym przyciskiem z przytrzymanym "
"klawiszem Shift."
#: ui/BoxOverlayShortcut.ui.h:1 #: ui/BoxOverlayShortcut.ui.h:1
msgid "Hotkeys prefix" msgid "Hotkeys prefix"
@@ -749,40 +723,39 @@ msgstr "Użyj tą wartość by ograniczyć liczbę przechwyceń przewijania mysz
#: ui/BoxScrollPanelOptions.ui.h:3 #: ui/BoxScrollPanelOptions.ui.h:3
msgid "Show popup when changing workspace" msgid "Show popup when changing workspace"
msgstr "" msgstr "Pokaż wyskakujące okno podczas zmiany przestrzeni roboczej"
#: ui/BoxScrollPanelOptions.ui.h:4 #: ui/BoxScrollPanelOptions.ui.h:4
msgid "This affects workspace popup when scrolling on the panel only." msgid "This affects workspace popup when scrolling on the panel only."
msgstr "" msgstr "Ma wpływ na wyskakujące okno w przestrzeni roboczej tylko na panelu"
#: ui/BoxSecondaryMenuOptions.ui.h:1 #: ui/BoxSecondaryMenuOptions.ui.h:1
msgid "Integrate <i>AppMenu</i> items" msgid "Integrate <i>AppMenu</i> items"
msgstr "Zintegruj elementy <i>menu programów</i>" msgstr "Zintegruj elementy <i>Menu programów</i>"
#: ui/BoxSecondaryMenuOptions.ui.h:2 #: ui/BoxSecondaryMenuOptions.ui.h:2
msgid "<i>Show Details</i> menu item" msgid "<i>Show Details</i> menu item"
msgstr "<i>Wyświetl szczegóły</i>" msgstr "<i>Wyświetl szczegóły</i>"
#: ui/BoxShowApplicationsOptions.ui.h:1 #: ui/BoxShowApplicationsOptions.ui.h:1
#, fuzzy
msgid "Show Applications icon" msgid "Show Applications icon"
msgstr "Opcje wyświetlania programów" msgstr "Opcje wyświetlania programów"
#: ui/BoxShowApplicationsOptions.ui.h:2 #: ui/BoxShowApplicationsOptions.ui.h:2
msgid "Show Applications icon side padding (px)" msgid "Show Applications icon side padding (px)"
msgstr "Wewnętrzny margines przycisku <i>Pokaż programy</i> (px)" msgstr "Wewnętrzny margines przycisku Pokaż programy (px)"
#: ui/BoxShowApplicationsOptions.ui.h:4 #: ui/BoxShowApplicationsOptions.ui.h:4
msgid "Override escape key and return to desktop" msgid "Override escape key and return to desktop"
msgstr "" msgstr "Nadpisz przycisk wyjścia i wróć do pulpitu"
#: ui/BoxShowDesktopOptions.ui.h:1 #: ui/BoxShowDesktopOptions.ui.h:1
msgid "Override Show Desktop line color" msgid "Override Show Desktop line color"
msgstr "" msgstr "Nadpisz kolor przycisku Pokaż pulpit"
#: ui/BoxShowDesktopOptions.ui.h:2 #: ui/BoxShowDesktopOptions.ui.h:2
msgid "Reveal the desktop when hovering the Show Desktop button" msgid "Reveal the desktop when hovering the Show Desktop button"
msgstr "Pokaż pulpit po najechaniu na przycisk <i>Pokaż pulpit</i>" msgstr "Pokaż pulpit po najechaniu na przycisk Pokaż pulpit"
#: ui/BoxShowDesktopOptions.ui.h:3 #: ui/BoxShowDesktopOptions.ui.h:3
msgid "Delay before revealing the desktop (ms)" msgid "Delay before revealing the desktop (ms)"
@@ -793,22 +766,20 @@ msgid "Fade duration (ms)"
msgstr "Opóźnienie ukrywania (ms)" msgstr "Opóźnienie ukrywania (ms)"
#: ui/BoxWindowPreviewOptions.ui.h:1 #: ui/BoxWindowPreviewOptions.ui.h:1
#, fuzzy
msgid "Time (ms) before showing" msgid "Time (ms) before showing"
msgstr "Opóźnienie (ms) przed pokazaniem (domyślnie 100)" msgstr "Opóźnienie (ms) przed pokazaniem (domyślnie 100)"
#: ui/BoxWindowPreviewOptions.ui.h:2 #: ui/BoxWindowPreviewOptions.ui.h:2
msgid "(400 is default)" msgid "(400 is default)"
msgstr "" msgstr "(Domyślnie 400)"
#: ui/BoxWindowPreviewOptions.ui.h:3 #: ui/BoxWindowPreviewOptions.ui.h:3
#, fuzzy
msgid "Time (ms) before hiding" msgid "Time (ms) before hiding"
msgstr "Opóźnienie ukrywania miniatur (domyślnie 100 ms)" msgstr "Opóźnienie ukrywania miniatur (domyślnie 100 ms)"
#: ui/BoxWindowPreviewOptions.ui.h:4 #: ui/BoxWindowPreviewOptions.ui.h:4
msgid "(100 is default)" msgid "(100 is default)"
msgstr "" msgstr "(Domyślnie 100)"
#: ui/BoxWindowPreviewOptions.ui.h:5 #: ui/BoxWindowPreviewOptions.ui.h:5
msgid "Immediate on application icon click" msgid "Immediate on application icon click"
@@ -932,7 +903,6 @@ msgid "Use custom opacity for the previews background"
msgstr "Własna przeźroczystość dla tła podglądu okna" msgstr "Własna przeźroczystość dla tła podglądu okna"
#: ui/BoxWindowPreviewOptions.ui.h:35 #: ui/BoxWindowPreviewOptions.ui.h:35
#, fuzzy
msgid "" msgid ""
"If disabled, the previews background have the same opacity as the panel." "If disabled, the previews background have the same opacity as the panel."
msgstr "" msgstr ""
@@ -947,12 +917,10 @@ msgid "Display window preview headers"
msgstr "Wyświetlaj nagłówek w podglądzie okna" msgstr "Wyświetlaj nagłówek w podglądzie okna"
#: ui/BoxWindowPreviewOptions.ui.h:40 #: ui/BoxWindowPreviewOptions.ui.h:40
#, fuzzy
msgid "Icon size (px) of the window preview" msgid "Icon size (px) of the window preview"
msgstr "Wielkość czcionki etykiet (px) etykiet podglądu" msgstr "Wielkość czcionki etykiet (px) etykiet podglądu"
#: ui/BoxWindowPreviewOptions.ui.h:41 #: ui/BoxWindowPreviewOptions.ui.h:41
#, fuzzy
msgid "If disabled, the previews icon size will be based on headerbar size" msgid "If disabled, the previews icon size will be based on headerbar size"
msgstr "" msgstr ""
"Jeśli wyłączone, podgląd okna będzie mieć taką samą przeźroczystość jak panel" "Jeśli wyłączone, podgląd okna będzie mieć taką samą przeźroczystość jak panel"
@@ -1002,31 +970,26 @@ msgid "Window peeking mode opacity"
msgstr "Przeźroczystość podglądanych okien" msgstr "Przeźroczystość podglądanych okien"
#: ui/BoxWindowPreviewOptions.ui.h:56 #: ui/BoxWindowPreviewOptions.ui.h:56
msgid "" msgid "All windows except for the peeked one have their opacity set to the same value."
"All windows except for the peeked one have their opacity set to the same " msgstr "Wszystkie okna, za wyjątkiem okna głównego, mają tą samą przeźroczystość."
"value."
msgstr ""
"Wszystkie okna, za wyjątkiem okna głównego, mają tą samą przeźroczystość."
#: ui/SettingsAbout.ui.h:1 #: ui/SettingsAbout.ui.h:1
msgid "Info" msgid "Info"
msgstr "" msgstr "Info"
#: ui/SettingsAbout.ui.h:2 #: ui/SettingsAbout.ui.h:2
#, fuzzy
msgid "Version" msgid "Version"
msgstr "wersja: " msgstr "Wersja"
#: ui/SettingsAbout.ui.h:3 #: ui/SettingsAbout.ui.h:3
msgid "Source" msgid "Source"
msgstr "" msgstr "Źródło"
#: ui/SettingsAbout.ui.h:4 #: ui/SettingsAbout.ui.h:4
msgid "GitHub" msgid "GitHub"
msgstr "GitHub" msgstr "GitHub"
#: ui/SettingsAbout.ui.h:5 #: ui/SettingsAbout.ui.h:5
#, fuzzy
msgid "Export and Import" msgid "Export and Import"
msgstr "Ustawienia eksportu i importu" msgstr "Ustawienia eksportu i importu"
@@ -1074,7 +1037,6 @@ msgid "Toggle windows"
msgstr "Przełącz okna" msgstr "Przełącz okna"
#: ui/SettingsAction.ui.h:10 #: ui/SettingsAction.ui.h:10
#, fuzzy
msgid "Scroll action" msgid "Scroll action"
msgstr "Działanie przewijania na ikonie" msgstr "Działanie przewijania na ikonie"
@@ -1100,7 +1062,7 @@ msgstr "Przełącz między oknami"
#: ui/SettingsAction.ui.h:16 #: ui/SettingsAction.ui.h:16
msgid "Change volume" msgid "Change volume"
msgstr "" msgstr "Zmień głośność"
#: ui/SettingsAction.ui.h:17 #: ui/SettingsAction.ui.h:17
msgid "Scroll icon action" msgid "Scroll icon action"
@@ -1112,10 +1074,9 @@ msgstr "Reakcja na przewijanie myszą nad ikoną programu."
#: ui/SettingsAction.ui.h:19 #: ui/SettingsAction.ui.h:19
msgid "Same as panel" msgid "Same as panel"
msgstr "" msgstr "Tak jak panel"
#: ui/SettingsAction.ui.h:20 #: ui/SettingsAction.ui.h:20
#, fuzzy
msgid "Hotkey overlay" msgid "Hotkey overlay"
msgstr "Pokazywanie cyfr" msgstr "Pokazywanie cyfr"
@@ -1132,7 +1093,6 @@ msgstr ""
"Super+(0-9) - możliwe użycie razem z Shift i Ctrl." "Super+(0-9) - możliwe użycie razem z Shift i Ctrl."
#: ui/SettingsBehavior.ui.h:1 #: ui/SettingsBehavior.ui.h:1
#, fuzzy
msgid "Applications" msgid "Applications"
msgstr "Tryb listy (nie scalaj ikon)" msgstr "Tryb listy (nie scalaj ikon)"
@@ -1141,7 +1101,6 @@ msgid "Show favorite applications"
msgstr "Pokaż ulubione programy" msgstr "Pokaż ulubione programy"
#: ui/SettingsBehavior.ui.h:3 #: ui/SettingsBehavior.ui.h:3
#, fuzzy
msgid "Show favorite applications on secondary panels" msgid "Show favorite applications on secondary panels"
msgstr "Pokaż ulubione programy" msgstr "Pokaż ulubione programy"
@@ -1159,7 +1118,7 @@ msgstr "Tryb listy (nie scalaj ikon)"
#: ui/SettingsBehavior.ui.h:7 #: ui/SettingsBehavior.ui.h:7
msgid "Show notification counter badge" msgid "Show notification counter badge"
msgstr "" msgstr "Pokaż licznik powiadomień"
#: ui/SettingsBehavior.ui.h:8 #: ui/SettingsBehavior.ui.h:8
msgid "Show window previews on hover" msgid "Show window previews on hover"
@@ -1170,7 +1129,6 @@ msgid "Show tooltip on hover"
msgstr "Pokaż szczegóły po najechaniu myszą" msgstr "Pokaż szczegóły po najechaniu myszą"
#: ui/SettingsBehavior.ui.h:10 #: ui/SettingsBehavior.ui.h:10
#, fuzzy
msgid "Isolate" msgid "Isolate"
msgstr "Niezależne obszary robocze" msgstr "Niezależne obszary robocze"
@@ -1184,33 +1142,29 @@ msgstr "Niezależne obszary robocze"
#: ui/SettingsBehavior.ui.h:13 #: ui/SettingsBehavior.ui.h:13
msgid "Overview" msgid "Overview"
msgstr "" msgstr "Przegląd"
#: ui/SettingsBehavior.ui.h:14 #: ui/SettingsBehavior.ui.h:14
msgid "Click empty space to close overview" msgid "Click empty space to close overview"
msgstr "" msgstr "Kliknij na pustą przestrzeń, aby zamknąć podgląd"
#: ui/SettingsBehavior.ui.h:15 #: ui/SettingsBehavior.ui.h:15
msgid "Disable show overview on startup" msgid "Disable show overview on startup"
msgstr "" msgstr "Wyłącz pokazywanie podglądu przy uruchomieniu"
#: ui/SettingsFineTune.ui.h:1 #: ui/SettingsFineTune.ui.h:1
msgid "Font size" msgid "Font size"
msgstr "" msgstr "Rozmiar czcionki"
#: ui/SettingsFineTune.ui.h:2 #: ui/SettingsFineTune.ui.h:2
msgid "Tray Font Size" msgid "Tray Font Size"
msgstr "" msgstr "Rozmiar czcionki zasobnika"
#: ui/SettingsFineTune.ui.h:3 #: ui/SettingsFineTune.ui.h:3
#, fuzzy
msgid "(0 = theme default)" msgid "(0 = theme default)"
msgstr "" msgstr "(0 - domyślne motywu)"
"Rozmiar czcionki zasobnika\n"
"(0 - domyślne motywu)"
#: ui/SettingsFineTune.ui.h:4 #: ui/SettingsFineTune.ui.h:4
#, fuzzy
msgid "LeftBox Font Size" msgid "LeftBox Font Size"
msgstr "" msgstr ""
"Rozmiar czcionki lewej strony panelu\n" "Rozmiar czcionki lewej strony panelu\n"
@@ -1218,36 +1172,27 @@ msgstr ""
#: ui/SettingsFineTune.ui.h:5 #: ui/SettingsFineTune.ui.h:5
msgid "Padding" msgid "Padding"
msgstr "" msgstr "Odstęp"
#: ui/SettingsFineTune.ui.h:6 #: ui/SettingsFineTune.ui.h:6
#, fuzzy
msgid "Tray Item Padding" msgid "Tray Item Padding"
msgstr "" msgstr "Odstęp elementów zasobnika"
"Odstęp elementów zasobnika\n"
"(-1 - domyślne motywu)"
#: ui/SettingsFineTune.ui.h:7 #: ui/SettingsFineTune.ui.h:7
#, fuzzy
msgid "(-1 = theme default)" msgid "(-1 = theme default)"
msgstr "" msgstr "(-1 - domyślne motywu)"
"Odstęp elementów lewej strony panelu\n"
"(-1 - domyślne motywu)"
#: ui/SettingsFineTune.ui.h:8 #: ui/SettingsFineTune.ui.h:8
#, fuzzy
msgid "Status Icon Padding" msgid "Status Icon Padding"
msgstr "" msgstr "Odstęp ikon stanu"
"Odstęp elementów menu systemowego\n"
"(-1 - domyślne motywu)"
#: ui/SettingsFineTune.ui.h:9 #: ui/SettingsFineTune.ui.h:9
msgid "LeftBox Padding" msgid "LeftBox Padding"
msgstr "" msgstr "Do lewej"
#: ui/SettingsFineTune.ui.h:10 #: ui/SettingsFineTune.ui.h:10
msgid "Animate" msgid "Animate"
msgstr "" msgstr "Animacja"
#: ui/SettingsFineTune.ui.h:11 #: ui/SettingsFineTune.ui.h:11
msgid "Animate switching applications" msgid "Animate switching applications"
@@ -1259,49 +1204,44 @@ msgstr "Animuj uruchamianie nowych programów"
#: ui/SettingsFineTune.ui.h:13 #: ui/SettingsFineTune.ui.h:13
msgid "Gnome functionality" msgid "Gnome functionality"
msgstr "" msgstr "Funkcja Gnome"
#: ui/SettingsFineTune.ui.h:14 #: ui/SettingsFineTune.ui.h:14
#, fuzzy
msgid "Keep original gnome-shell dash" msgid "Keep original gnome-shell dash"
msgstr "Zachowaj oryginalny panel (podgląd)" msgstr "Zachowaj oryginalny panel (podgląd)"
#: ui/SettingsFineTune.ui.h:15 #: ui/SettingsFineTune.ui.h:15
msgid "(overview)" msgid "(overview)"
msgstr "" msgstr "(przegląd)"
#: ui/SettingsFineTune.ui.h:16 #: ui/SettingsFineTune.ui.h:16
#, fuzzy
msgid "Keep original gnome-shell top panel" msgid "Keep original gnome-shell top panel"
msgstr "Zachowaj oryginalny panel (podgląd)" msgstr "Zachowaj oryginalny panel (podgląd)"
#: ui/SettingsFineTune.ui.h:17 #: ui/SettingsFineTune.ui.h:17
#, fuzzy
msgid "Activate panel menu buttons on click only" msgid "Activate panel menu buttons on click only"
msgstr "" msgstr ""
"Aktywuj przyciski menu panelu (np. menu kalendarza) tylko po kliknięciu" "Aktywuj przyciski menu panelu (np. menu kalendarza) tylko po kliknięciu"
#: ui/SettingsFineTune.ui.h:18 #: ui/SettingsFineTune.ui.h:18
msgid "(e.g. date menu)" msgid "(e.g. date menu)"
msgstr "" msgstr "(np. menu daty)"
#: ui/SettingsFineTune.ui.h:19 #: ui/SettingsFineTune.ui.h:19
msgid "Force Activities hot corner on primary monitor" msgid "Force Activities hot corner on primary monitor"
msgstr "" msgstr "Wymuś Aktywności gorącego rogu na głównym monitorze"
#: ui/SettingsFineTune.ui.h:20 #: ui/SettingsFineTune.ui.h:20
#, fuzzy
msgid "App icon secondary menu" msgid "App icon secondary menu"
msgstr "Menu kontekstowe programu (prawy przycisk myszy)" msgstr "Menu kontekstowe programu (prawy przycisk myszy)"
#: ui/SettingsFineTune.ui.h:21 #: ui/SettingsFineTune.ui.h:21
#, fuzzy
msgid "(right-click menu)" msgid "(right-click menu)"
msgstr "Menu kontekstowe programu (prawy przycisk myszy)" msgstr "(prawy przycisk myszy)"
#: ui/SettingsPosition.ui.h:1 #: ui/SettingsPosition.ui.h:1
msgid "Panel" msgid "Panel"
msgstr "" msgstr "Panel"
#: ui/SettingsPosition.ui.h:2 #: ui/SettingsPosition.ui.h:2
msgid "Display the main panel on" msgid "Display the main panel on"
@@ -1321,93 +1261,70 @@ msgstr "Ukryj i odsłoń panel według preferencji"
#: ui/SettingsPosition.ui.h:6 #: ui/SettingsPosition.ui.h:6
msgid "Order and Position on monitors" msgid "Order and Position on monitors"
msgstr "" msgstr "Kolejność i pozycja na monitorach"
#: ui/SettingsPosition.ui.h:7 #: ui/SettingsPosition.ui.h:7
#, fuzzy
msgid "Monitor" msgid "Monitor"
msgstr "Monitor " msgstr "Monitor"
#: ui/SettingsPosition.ui.h:8 #: ui/SettingsPosition.ui.h:8
#, fuzzy
msgid "Apply changes to all monitors" msgid "Apply changes to all monitors"
msgstr "Wyświetl panel na wszystkich monitorach" msgstr "Zastosuj zmiany na wszyskich monitorach"
#: ui/SettingsPosition.ui.h:9 #: ui/SettingsPosition.ui.h:9
msgid "Panel screen position" msgid "Panel screen position"
msgstr "Położenie panelu na ekranie" msgstr "Położenie panelu na ekranie"
#: ui/SettingsPosition.ui.h:14 #: ui/SettingsPosition.ui.h:14
#, fuzzy
msgid "Panel thickness" msgid "Panel thickness"
msgstr "Inteligentne ukrywanie panelu" msgstr "Inteligentne ukrywanie panelu"
#: ui/SettingsPosition.ui.h:15 #: ui/SettingsPosition.ui.h:15
#, fuzzy
msgid "(default is 48)" msgid "(default is 48)"
msgstr "" msgstr "(domyślnie 48)"
"Rozmiar panelu\n"
"(domyślnie 48)"
#: ui/SettingsPosition.ui.h:17 #: ui/SettingsPosition.ui.h:17
#, no-c-format #, no-c-format
msgid "Panel length (%)" msgid "Panel length (%)"
msgstr "" msgstr "Długość panela (%)"
#: ui/SettingsPosition.ui.h:18 #: ui/SettingsPosition.ui.h:18
#, fuzzy
msgid "(default is 100)" msgid "(default is 100)"
msgstr "" msgstr "(domyślnie 100)"
"Rozmiar panelu\n"
"(domyślnie 48)"
#: ui/SettingsPosition.ui.h:19 #: ui/SettingsPosition.ui.h:19
msgid "Anchor" msgid "Anchor"
msgstr "" msgstr "Zakotwiczenie"
#: ui/SettingsPosition.ui.h:23 #: ui/SettingsPosition.ui.h:23
msgid "Taskbar Display" msgid "Taskbar Display"
msgstr "" msgstr "Wyświetlanie paska zadań"
#: ui/SettingsStyle.ui.h:1 #: ui/SettingsStyle.ui.h:1
msgid "AppIcon style" msgid "AppIcon style"
msgstr "" msgstr "Styl ikon aplikacji"
#: ui/SettingsStyle.ui.h:2 #: ui/SettingsStyle.ui.h:2
#, fuzzy
msgid "App Icon Margin" msgid "App Icon Margin"
msgstr "" msgstr "Odstęp między ikonami"
"Odstęp między\n"
"ikonami (domyślnie 8)"
#: ui/SettingsStyle.ui.h:3 #: ui/SettingsStyle.ui.h:3
#, fuzzy
msgid "(default is 8)" msgid "(default is 8)"
msgstr "" msgstr "(domyślnie 8)"
"Rozmiar panelu\n"
"(domyślnie 48)"
#: ui/SettingsStyle.ui.h:4 #: ui/SettingsStyle.ui.h:4
#, fuzzy
msgid "App Icon Padding" msgid "App Icon Padding"
msgstr "" msgstr "Wypełnienie ikony aplikacji"
"Wypełnienie wnętrza\n"
"ikony (domyślnie 4)"
#: ui/SettingsStyle.ui.h:5 #: ui/SettingsStyle.ui.h:5
#, fuzzy
msgid "(default is 4)" msgid "(default is 4)"
msgstr "" msgstr "(domyślnie 4)"
"Rozmiar panelu\n"
"(domyślnie 48)"
#: ui/SettingsStyle.ui.h:6 #: ui/SettingsStyle.ui.h:6
#, fuzzy
msgid "Animate hovering app icons" msgid "Animate hovering app icons"
msgstr "Animuj przełączenie programów" msgstr "Animuj przełączenie programów"
#: ui/SettingsStyle.ui.h:7 #: ui/SettingsStyle.ui.h:7
#, fuzzy
msgid "Running indicator" msgid "Running indicator"
msgstr "Pozycja wskaźnika aktywnych okien" msgstr "Pozycja wskaźnika aktywnych okien"
@@ -1441,7 +1358,7 @@ msgstr "Ciągły"
#: ui/SettingsStyle.ui.h:19 #: ui/SettingsStyle.ui.h:19
msgid "Ciliora" msgid "Ciliora"
msgstr "Ciliora" msgstr "Rzęski"
#: ui/SettingsStyle.ui.h:20 #: ui/SettingsStyle.ui.h:20
msgid "Metro" msgid "Metro"
@@ -1452,12 +1369,10 @@ msgid "Running indicator style (Unfocused apps)"
msgstr "Wygląd wskaźnika (okno na drugim planie)" msgstr "Wygląd wskaźnika (okno na drugim planie)"
#: ui/SettingsStyle.ui.h:22 #: ui/SettingsStyle.ui.h:22
#, fuzzy
msgid "Panel style" msgid "Panel style"
msgstr "Inteligentne ukrywanie panelu" msgstr "Inteligentne ukrywanie panelu"
#: ui/SettingsStyle.ui.h:23 #: ui/SettingsStyle.ui.h:23
#, fuzzy
msgid "Override panel theme background color" msgid "Override panel theme background color"
msgstr "Zastąp kolor panelu " msgstr "Zastąp kolor panelu "
@@ -1479,19 +1394,18 @@ msgid "Change opacity when a window gets close to the panel"
msgstr "Zmiana przeźroczystości w kontakcie z oknem" msgstr "Zmiana przeźroczystości w kontakcie z oknem"
#: ui/SettingsStyle.ui.h:30 #: ui/SettingsStyle.ui.h:30
#, fuzzy
msgid "Override panel theme gradient" msgid "Override panel theme gradient"
msgstr "Zastąp kolor panelu gradientem " msgstr "Zastąp kolor panelu gradientem "
#: ui/SettingsStyle.ui.h:32 #: ui/SettingsStyle.ui.h:32
#, no-c-format #, no-c-format
msgid "Gradient top color and opacity (%)" msgid "Gradient top color and opacity (%)"
msgstr "Góra, kolor i przeźroczystość (%)" msgstr "Gradient górnego koloru i przeźroczystość (%)"
#: ui/SettingsStyle.ui.h:34 #: ui/SettingsStyle.ui.h:34
#, no-c-format #, no-c-format
msgid "Gradient bottom color and opacity (%)" msgid "Gradient bottom color and opacity (%)"
msgstr "Dół, kolor i przeźroczystość (%)" msgstr "Gradient dolnego koloru i przeźroczystość (%)"
msgid "Weekday" msgid "Weekday"
msgstr "Dzień tygodnia" msgstr "Dzień tygodnia"
@@ -1600,8 +1514,7 @@ msgstr "Izoluj obszary robocze i monitory w ustawieniach Przełączanie program
#~ msgstr "Wyloguj" #~ msgstr "Wyloguj"
#~ msgid "Update successful, please restart GNOME Shell" #~ msgid "Update successful, please restart GNOME Shell"
#~ msgstr "" #~ msgstr "Aktualizacja zakończona pomyślnie, prosimy zrestartować powłokę GNOME"
#~ "Aktualizacja zakończona pomyślnie, prosimy zrestartować powłokę GNOME"
#~ msgid "Restart GNOME Shell" #~ msgid "Restart GNOME Shell"
#~ msgstr "Zrestartuj powłokę GNOME" #~ msgstr "Zrestartuj powłokę GNOME"
@@ -1622,13 +1535,13 @@ msgstr "Izoluj obszary robocze i monitory w ustawieniach Przełączanie program
#~ msgstr "Menu systemowe na wszystkich monitorach" #~ msgstr "Menu systemowe na wszystkich monitorach"
#~ msgid "Current Show Applications icon" #~ msgid "Current Show Applications icon"
#~ msgstr "Aktualna ikona przycisku <i>Pokaż programy</i>" #~ msgstr "Aktualna ikona przycisku Pokaż programy"
#~ msgid "Select a Show Applications image icon" #~ msgid "Select a Show Applications image icon"
#~ msgstr "Wybierz ikonę przycisku <i>Pokaż programy</i>" #~ msgstr "Wybierz ikonę przycisku Pokaż programy"
#~ msgid "Custom Show Applications image icon" #~ msgid "Custom Show Applications image icon"
#~ msgstr "Wybierz własną ikonę przycisku <i>Pokaż programy</i>" #~ msgstr "Wybierz własną ikonę przycisku Pokaż programy"
#~ msgid "Taskbar position" #~ msgid "Taskbar position"
#~ msgstr "Położenie paska zadań" #~ msgstr "Położenie paska zadań"
@@ -1657,6 +1570,18 @@ msgstr "Izoluj obszary robocze i monitory w ustawieniach Przełączanie program
#~ msgid "Fine-Tune" #~ msgid "Fine-Tune"
#~ msgstr "Dostrajanie" #~ msgstr "Dostrajanie"
#~ msgid "Position"
#~ msgstr "Pozycja"
#~ msgid "Icon style"
#~ msgstr "Styl ikony"
#~ msgid "Normal"
#~ msgstr "Normalna"
#~ msgid "Symbolic"
#~ msgstr "Symboliczna"
#~ msgid "" #~ msgid ""
#~ "This allows you to update the extension directly from the GitHub " #~ "This allows you to update the extension directly from the GitHub "
#~ "repository." #~ "repository."

View File

@@ -69,7 +69,7 @@ msgstr "Final"
#: prefs.js:413 #: prefs.js:413
msgid "Show Applications button" msgid "Show Applications button"
msgstr "Mostrar botão de plicações" msgstr "Mostrar botão de aplicações"
#: prefs.js:414 #: prefs.js:414
msgid "Activities button" msgid "Activities button"
@@ -1136,12 +1136,12 @@ msgstr ""
#: ui/SettingsBehavior.ui.h:1 #: ui/SettingsBehavior.ui.h:1
#, fuzzy #, fuzzy
msgid "Applications" msgid "Applications"
msgstr "Mostrar botão de plicações" msgstr "Mostrar botão de aplicações"
#: ui/SettingsBehavior.ui.h:2 #: ui/SettingsBehavior.ui.h:2
#, fuzzy #, fuzzy
msgid "Show favorite applications" msgid "Show favorite applications"
msgstr "Mostrar botão de plicações" msgstr "Mostrar botão de aplicações"
#: ui/SettingsBehavior.ui.h:3 #: ui/SettingsBehavior.ui.h:3
msgid "Show favorite applications on secondary panels" msgid "Show favorite applications on secondary panels"
@@ -1150,7 +1150,7 @@ msgstr ""
#: ui/SettingsBehavior.ui.h:4 #: ui/SettingsBehavior.ui.h:4
#, fuzzy #, fuzzy
msgid "Show running applications" msgid "Show running applications"
msgstr "Mostrar botão de plicações" msgstr "Mostrar botão de aplicações"
#: ui/SettingsBehavior.ui.h:5 #: ui/SettingsBehavior.ui.h:5
msgid "Show <i>AppMenu</i> button" msgid "Show <i>AppMenu</i> button"

636
po/ru.po

File diff suppressed because it is too large Load Diff

250
po/sk.po
View File

@@ -2,29 +2,30 @@
# Copyright (C) 2018 # Copyright (C) 2018
# This file is distributed under the same license as the dash-to-panel package. # This file is distributed under the same license as the dash-to-panel package.
# Jose Riha <jose1711 gmail com>, 2021. # Jose Riha <jose1711 gmail com>, 2021.
# Jozef Gaal <preklady@mayday.sk>, 2024.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-08 08:31-0500\n" "POT-Creation-Date: 2023-02-08 08:31-0500\n"
"PO-Revision-Date: 2021-08-05 14:16+0200\n" "PO-Revision-Date: 2024-12-07 02:10+0100\n"
"Last-Translator: Jose Riha <jose1711@gmail.com>\n" "Last-Translator: Jozef Gaal <preklady@mayday.sk>\n"
"Language-Team: \n" "Language-Team: Jozef Gaal <preklady@mayday.sk>\n"
"Language: sk\n" "Language: sk\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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" "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 #: prefs.js:247
msgid "Show Desktop button height (px)" msgid "Show Desktop button height (px)"
msgstr "Výška tlačidla plochy (px)" msgstr "Výška tlačidla zobrazenia plochy (px)"
#: prefs.js:247 #: prefs.js:247
msgid "Show Desktop button width (px)" msgid "Show Desktop button width (px)"
msgstr "Šírka tlačidla plochy (px)" msgstr "Šírka tlačidla zobrazenia plochy (px)"
#: prefs.js:259 #: prefs.js:259
msgid "Unavailable when gnome-shell top panel is present" msgid "Unavailable when gnome-shell top panel is present"
@@ -78,11 +79,11 @@ msgstr "Zoznam úloh"
#: prefs.js:416 #: prefs.js:416
msgid "Date menu" msgid "Date menu"
msgstr "Menu hodín" msgstr "Ponuka dátumu"
#: prefs.js:417 #: prefs.js:417
msgid "System menu" msgid "System menu"
msgstr "Systémové menu" msgstr "Ponuka systému"
#: prefs.js:418 #: prefs.js:418
msgid "Left box" msgid "Left box"
@@ -118,19 +119,19 @@ msgstr "Vyberte umiestnenie prvku"
#: prefs.js:443 #: prefs.js:443
msgid "Stacked to top" msgid "Stacked to top"
msgstr "Zvrchu" msgstr "Hore"
#: prefs.js:443 #: prefs.js:443
msgid "Stacked to left" msgid "Stacked to left"
msgstr "Zľava" msgstr "Vľavo"
#: prefs.js:444 #: prefs.js:444
msgid "Stacked to bottom" msgid "Stacked to bottom"
msgstr "Zdola" msgstr "Dole"
#: prefs.js:444 #: prefs.js:444
msgid "Stacked to right" msgid "Stacked to right"
msgstr "Sprava" msgstr "Vpravo"
#: prefs.js:445 #: prefs.js:445
msgid "Centered" msgid "Centered"
@@ -158,7 +159,7 @@ msgstr "Otvoriť ikonu"
#: prefs.js:577 #: prefs.js:577
msgid "Show Desktop options" msgid "Show Desktop options"
msgstr "Nastavenia plochy" msgstr "Nastavenia tlačidla zobrazenia plochy"
#: prefs.js:661 #: prefs.js:661
#, javascript-format #, javascript-format
@@ -168,7 +169,7 @@ msgstr "%d ms"
#: prefs.js:666 #: prefs.js:666
#, javascript-format #, javascript-format
msgid "%d °" msgid "%d °"
msgstr "" msgstr "%d °"
#: prefs.js:671 prefs.js:676 #: prefs.js:671 prefs.js:676
#, javascript-format #, javascript-format
@@ -190,7 +191,7 @@ msgstr[2] "%d ikon"
#: prefs.js:782 #: prefs.js:782
msgid "Running Indicator Options" msgid "Running Indicator Options"
msgstr "Možnosti indikátora bežiacich aplikácií" msgstr "Možnosti indikátora činnosti"
#: prefs.js:928 #: prefs.js:928
msgid "Primary monitor" msgid "Primary monitor"
@@ -234,7 +235,7 @@ msgstr "Nastavenie ďalších klávesových skratiek"
#: prefs.js:1898 #: prefs.js:1898
msgid "Secondary Menu Options" msgid "Secondary Menu Options"
msgstr "Nastavenie sekundárneho menu" msgstr "Možnosti sekundárnej ponuky"
#: prefs.js:1924 ui/SettingsFineTune.ui.h:22 #: prefs.js:1924 ui/SettingsFineTune.ui.h:22
msgid "Advanced Options" msgid "Advanced Options"
@@ -327,7 +328,7 @@ msgstr "Zatiaľ nedostupné!"
#: ui/BoxAdvancedOptions.ui.h:2 #: ui/BoxAdvancedOptions.ui.h:2
msgid "For real..." msgid "For real..."
msgstr "" msgstr "Naozaj..."
#: ui/BoxAnimateAppIconHoverOptions.ui.h:1 #: ui/BoxAnimateAppIconHoverOptions.ui.h:1
msgid "Animation type" msgid "Animation type"
@@ -343,7 +344,7 @@ msgstr "Vlnenie"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:4 #: ui/BoxAnimateAppIconHoverOptions.ui.h:4
msgid "Plank" msgid "Plank"
msgstr "Prekrytie" msgstr "Doska"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:5 #: ui/BoxAnimateAppIconHoverOptions.ui.h:5
msgid "Duration" msgid "Duration"
@@ -351,7 +352,7 @@ msgstr "Trvanie"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:6 #: ui/BoxAnimateAppIconHoverOptions.ui.h:6
msgid "Rotation" msgid "Rotation"
msgstr "Otočenie" msgstr "Otáčanie"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:7 #: ui/BoxAnimateAppIconHoverOptions.ui.h:7
msgid "Travel" msgid "Travel"
@@ -363,11 +364,11 @@ msgstr "Priblíženie"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:9 #: ui/BoxAnimateAppIconHoverOptions.ui.h:9
msgid "Convexity" msgid "Convexity"
msgstr "Vypuklina" msgstr "Vypuklosť"
#: ui/BoxAnimateAppIconHoverOptions.ui.h:10 #: ui/BoxAnimateAppIconHoverOptions.ui.h:10
msgid "Extent" msgid "Extent"
msgstr "Rozšírenie" msgstr "Rozsah"
#: ui/BoxDotOptions.ui.h:1 #: ui/BoxDotOptions.ui.h:1
msgid "Highlight focused application" msgid "Highlight focused application"
@@ -453,7 +454,7 @@ msgstr "0"
#: ui/BoxDynamicOpacityOptions.ui.h:9 #: ui/BoxDynamicOpacityOptions.ui.h:9
msgid "Opacity change animation duration (ms)" 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 #: ui/BoxGroupAppsOptions.ui.h:1
msgid "Font size (px) of the application titles (default is 14)" 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" msgstr "Farba písma názvu minimalizovanej aplikácie"
#: ui/BoxGroupAppsOptions.ui.h:10 #: ui/BoxGroupAppsOptions.ui.h:10
#, fuzzy
msgid "Maximum width (px) of the application titles" 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 #: ui/BoxGroupAppsOptions.ui.h:11
#, fuzzy
msgid "(default is 160)" msgid "(default is 160)"
msgstr "" msgstr "(predvolená je 160)"
"Dĺžka panela (%)\n"
"(predvolená: 100)"
#: ui/BoxGroupAppsOptions.ui.h:12 #: ui/BoxGroupAppsOptions.ui.h:12
msgid "Use a fixed width for the application titles" 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" msgstr "Použiť ikony obľúbených aplikácií ako spúšťače"
#: ui/BoxIntellihideOptions.ui.h:1 #: ui/BoxIntellihideOptions.ui.h:1
#, fuzzy
msgid "Only hide the panel when it is obstructed by windows" 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 #: ui/BoxIntellihideOptions.ui.h:2
msgid "The panel hides from" 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" msgstr "Povoliť zobrazenie panela v režime celej obrazovky"
#: ui/BoxIntellihideOptions.ui.h:10 #: ui/BoxIntellihideOptions.ui.h:10
#, fuzzy
msgid "Only hide secondary panels" 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 #: ui/BoxIntellihideOptions.ui.h:11
#, fuzzy
msgid "(requires multi-monitors option)" 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 #: ui/BoxIntellihideOptions.ui.h:12
msgid "Keyboard shortcut to reveal and hold the panel" 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 #: ui/BoxMiddleClickOptions.ui.h:1
msgid "Shift+Click action" msgid "Shift+Click action"
msgstr "Akcia pri Shift+Click" msgstr "Akcia pri Shift+Kliknutie"
#: ui/BoxMiddleClickOptions.ui.h:2 #: ui/BoxMiddleClickOptions.ui.h:2
msgid "" msgid ""
@@ -640,7 +634,7 @@ msgstr "Shift + prostredné tlačidlo myši."
#: ui/BoxOverlayShortcut.ui.h:1 #: ui/BoxOverlayShortcut.ui.h:1
msgid "Hotkeys prefix" msgid "Hotkeys prefix"
msgstr "Skratka" msgstr "Predpona klávesových skratiek"
#: ui/BoxOverlayShortcut.ui.h:2 #: ui/BoxOverlayShortcut.ui.h:2
msgid "Hotkeys will either be Super+Number or Super+Alt+Num" 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 #: ui/BoxOverlayShortcut.ui.h:13
msgid "e.g. <Super>q" msgid "e.g. <Super>q"
msgstr "napr: <Super>q" msgstr "napr. <Super>q"
#: ui/BoxOverlayShortcut.ui.h:14 #: ui/BoxOverlayShortcut.ui.h:14
msgid "Show window previews on hotkey" msgid "Show window previews on hotkey"
@@ -735,16 +729,15 @@ msgstr ""
#: ui/BoxSecondaryMenuOptions.ui.h:1 #: ui/BoxSecondaryMenuOptions.ui.h:1
msgid "Integrate <i>AppMenu</i> items" msgid "Integrate <i>AppMenu</i> items"
msgstr "Zobraziť položky menu <i>aplikácie</i>" msgstr "Integrovať položky <i>ponuky aplikácií</i>"
#: ui/BoxSecondaryMenuOptions.ui.h:2 #: ui/BoxSecondaryMenuOptions.ui.h:2
msgid "<i>Show Details</i> menu item" msgid "<i>Show Details</i> menu item"
msgstr "Zobraziť menu <i>Detail</i>" msgstr "Položka ponuky <i>Zobraziť podrobnosti</i>"
#: ui/BoxShowApplicationsOptions.ui.h:1 #: ui/BoxShowApplicationsOptions.ui.h:1
#, fuzzy
msgid "Show Applications icon" msgid "Show Applications icon"
msgstr "Zobraziť ikonu <i>aplikácií</i>" msgstr "Zobraziť ikonu aplikácií"
#: ui/BoxShowApplicationsOptions.ui.h:2 #: ui/BoxShowApplicationsOptions.ui.h:2
msgid "Show Applications icon side padding (px)" 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 #: ui/BoxShowDesktopOptions.ui.h:1
msgid "Override Show Desktop line color" 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 #: ui/BoxShowDesktopOptions.ui.h:2
msgid "Reveal the desktop when hovering the Show Desktop button" msgid "Reveal the desktop when hovering the Show Desktop button"
@@ -771,22 +764,20 @@ msgid "Fade duration (ms)"
msgstr "Skryť po (ms)" msgstr "Skryť po (ms)"
#: ui/BoxWindowPreviewOptions.ui.h:1 #: ui/BoxWindowPreviewOptions.ui.h:1
#, fuzzy
msgid "Time (ms) before showing" 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 #: ui/BoxWindowPreviewOptions.ui.h:2
msgid "(400 is default)" msgid "(400 is default)"
msgstr "" msgstr "(400 is predvolené)"
#: ui/BoxWindowPreviewOptions.ui.h:3 #: ui/BoxWindowPreviewOptions.ui.h:3
#, fuzzy
msgid "Time (ms) before hiding" 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 #: ui/BoxWindowPreviewOptions.ui.h:4
msgid "(100 is default)" msgid "(100 is default)"
msgstr "" msgstr "(100 is predvolené)"
#: ui/BoxWindowPreviewOptions.ui.h:5 #: ui/BoxWindowPreviewOptions.ui.h:5
msgid "Immediate on application icon click" 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" msgstr "Použiť vlastné nastavenie priehľadnosti náhľadov"
#: ui/BoxWindowPreviewOptions.ui.h:35 #: ui/BoxWindowPreviewOptions.ui.h:35
#, fuzzy
msgid "" msgid ""
"If disabled, the previews background have the same opacity as the panel." "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 #: ui/BoxWindowPreviewOptions.ui.h:36
msgid "Close button and header position" 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 #: ui/SettingsAbout.ui.h:1
msgid "Info" msgid "Info"
msgstr "" msgstr "Informácie"
#: ui/SettingsAbout.ui.h:2 #: ui/SettingsAbout.ui.h:2
#, fuzzy
msgid "Version" msgid "Version"
msgstr "verzia: " msgstr "Verzia"
#: ui/SettingsAbout.ui.h:3 #: ui/SettingsAbout.ui.h:3
msgid "Source" msgid "Source"
msgstr "" msgstr "Zdroj"
#: ui/SettingsAbout.ui.h:4 #: ui/SettingsAbout.ui.h:4
msgid "GitHub" msgid "GitHub"
msgstr "GitHub" msgstr "GitHub"
#: ui/SettingsAbout.ui.h:5 #: ui/SettingsAbout.ui.h:5
#, fuzzy
msgid "Export and Import" msgid "Export and Import"
msgstr "Export a import nastavení" msgstr "Export a import"
#: ui/SettingsAbout.ui.h:6 #: ui/SettingsAbout.ui.h:6
msgid "Export and import settings" msgid "Export and import settings"
@@ -1042,13 +1031,12 @@ msgid "Toggle windows"
msgstr "Prepínanie okien" msgstr "Prepínanie okien"
#: ui/SettingsAction.ui.h:10 #: ui/SettingsAction.ui.h:10
#, fuzzy
msgid "Scroll action" msgid "Scroll action"
msgstr "Akcia kolieska myši" msgstr "Akcia kolieska myši"
#: ui/SettingsAction.ui.h:11 #: ui/SettingsAction.ui.h:11
msgid "Scroll panel action" msgid "Scroll panel action"
msgstr "Akcia panelu pri skrolovaní" msgstr "Akcia kolieska myši na paneli"
#: ui/SettingsAction.ui.h:12 #: ui/SettingsAction.ui.h:12
msgid "Behavior when mouse scrolling over the panel." msgid "Behavior when mouse scrolling over the panel."
@@ -1072,7 +1060,7 @@ msgstr "Upraviť hlasitosť"
#: ui/SettingsAction.ui.h:17 #: ui/SettingsAction.ui.h:17
msgid "Scroll icon action" msgid "Scroll icon action"
msgstr "Akcia kolieska myši" msgstr "Akcia kolieska myši na ikone"
#: ui/SettingsAction.ui.h:18 #: ui/SettingsAction.ui.h:18
msgid "Behavior when mouse scrolling over an application icon." msgid "Behavior when mouse scrolling over an application icon."
@@ -1083,9 +1071,8 @@ msgid "Same as panel"
msgstr "Rovnaké ako panel" msgstr "Rovnaké ako panel"
#: ui/SettingsAction.ui.h:20 #: ui/SettingsAction.ui.h:20
#, fuzzy
msgid "Hotkey overlay" msgid "Hotkey overlay"
msgstr "Zobraziť číslo" msgstr "Klávesové skratky"
#: ui/SettingsAction.ui.h:21 #: ui/SettingsAction.ui.h:21
msgid "Use hotkeys to activate apps" msgid "Use hotkeys to activate apps"
@@ -1100,9 +1087,8 @@ msgstr ""
"použiť v kombinácií s Shift a Ctrl." "použiť v kombinácií s Shift a Ctrl."
#: ui/SettingsBehavior.ui.h:1 #: ui/SettingsBehavior.ui.h:1
#, fuzzy
msgid "Applications" msgid "Applications"
msgstr "Nezoskupené aplikácie" msgstr "Aplikácie"
#: ui/SettingsBehavior.ui.h:2 #: ui/SettingsBehavior.ui.h:2
msgid "Show favorite applications" msgid "Show favorite applications"
@@ -1118,7 +1104,7 @@ msgstr "Zobraziť bežiace aplikácie"
#: ui/SettingsBehavior.ui.h:5 #: ui/SettingsBehavior.ui.h:5
msgid "Show <i>AppMenu</i> button" msgid "Show <i>AppMenu</i> button"
msgstr "Zobraziť tlačidlo aplikácií" msgstr "Zobraziť tlačidlo <i>ponuky aplikácií</i>"
#: ui/SettingsBehavior.ui.h:6 #: ui/SettingsBehavior.ui.h:6
msgid "Ungroup applications" msgid "Ungroup applications"
@@ -1126,7 +1112,7 @@ msgstr "Nezoskupené aplikácie"
#: ui/SettingsBehavior.ui.h:7 #: ui/SettingsBehavior.ui.h:7
msgid "Show notification counter badge" msgid "Show notification counter badge"
msgstr "" msgstr "Zobraziť znak počítadla oznámení"
#: ui/SettingsBehavior.ui.h:8 #: ui/SettingsBehavior.ui.h:8
msgid "Show window previews on hover" msgid "Show window previews on hover"
@@ -1137,9 +1123,8 @@ msgid "Show tooltip on hover"
msgstr "Zobraziť tip okna pri podržaní myši" msgstr "Zobraziť tip okna pri podržaní myši"
#: ui/SettingsBehavior.ui.h:10 #: ui/SettingsBehavior.ui.h:10
#, fuzzy
msgid "Isolate" msgid "Isolate"
msgstr "Oddeliť monitory" msgstr "Oddeliť"
#: ui/SettingsBehavior.ui.h:11 #: ui/SettingsBehavior.ui.h:11
msgid "Isolate Workspaces" msgid "Isolate Workspaces"
@@ -1151,7 +1136,7 @@ msgstr "Oddeliť monitory"
#: ui/SettingsBehavior.ui.h:13 #: ui/SettingsBehavior.ui.h:13
msgid "Overview" msgid "Overview"
msgstr "" msgstr "Prehľad"
#: ui/SettingsBehavior.ui.h:14 #: ui/SettingsBehavior.ui.h:14
msgid "Click empty space to close overview" msgid "Click empty space to close overview"
@@ -1163,59 +1148,43 @@ msgstr "Vypnúť zobrazenie prehľadu po štarte"
#: ui/SettingsFineTune.ui.h:1 #: ui/SettingsFineTune.ui.h:1
msgid "Font size" msgid "Font size"
msgstr "" msgstr "Veľkosť písma"
#: ui/SettingsFineTune.ui.h:2 #: ui/SettingsFineTune.ui.h:2
msgid "Tray Font Size" msgid "Tray Font Size"
msgstr "" msgstr "Veľkosť písma systémového bloku"
#: ui/SettingsFineTune.ui.h:3 #: ui/SettingsFineTune.ui.h:3
#, fuzzy
msgid "(0 = theme default)" msgid "(0 = theme default)"
msgstr "" msgstr "(0 = predvolené témou)"
"Veľkosť písma stavovej oblasti\n"
"(0 = určená motívom)"
#: ui/SettingsFineTune.ui.h:4 #: ui/SettingsFineTune.ui.h:4
#, fuzzy
msgid "LeftBox Font Size" msgid "LeftBox Font Size"
msgstr "" msgstr "Veľkosť písma ľavého bloku"
"Veľkosť písma ľavého bloku\n"
"(0 = určená motívom)"
#: ui/SettingsFineTune.ui.h:5 #: ui/SettingsFineTune.ui.h:5
msgid "Padding" msgid "Padding"
msgstr "" msgstr "Odsadenie"
#: ui/SettingsFineTune.ui.h:6 #: ui/SettingsFineTune.ui.h:6
#, fuzzy
msgid "Tray Item Padding" msgid "Tray Item Padding"
msgstr "" msgstr "Odsadenie položky v systémovom bloku"
"Odsadenie položiek v systémovej oblasti\n"
"(-1 = určené motívom)"
#: ui/SettingsFineTune.ui.h:7 #: ui/SettingsFineTune.ui.h:7
#, fuzzy
msgid "(-1 = theme default)" msgid "(-1 = theme default)"
msgstr "" msgstr "(-1 = predvolené témou)"
"Odsadenie v ľavom bloku\n"
"(-1 = určené motívom)"
#: ui/SettingsFineTune.ui.h:8 #: ui/SettingsFineTune.ui.h:8
#, fuzzy
msgid "Status Icon Padding" msgid "Status Icon Padding"
msgstr "" msgstr "Odsadenie stavových ikon"
"Odsadenie medzi stavovými ikonami\n"
"(-1 = určené motívom)"
#: ui/SettingsFineTune.ui.h:9 #: ui/SettingsFineTune.ui.h:9
msgid "LeftBox Padding" msgid "LeftBox Padding"
msgstr "" msgstr "Odsadenie ľavého bloku"
#: ui/SettingsFineTune.ui.h:10 #: ui/SettingsFineTune.ui.h:10
#, fuzzy
msgid "Animate" msgid "Animate"
msgstr "Typ animácie" msgstr "Animovať"
#: ui/SettingsFineTune.ui.h:11 #: ui/SettingsFineTune.ui.h:11
msgid "Animate switching applications" msgid "Animate switching applications"
@@ -1227,48 +1196,43 @@ msgstr "Animovať vytváranie nových okien"
#: ui/SettingsFineTune.ui.h:13 #: ui/SettingsFineTune.ui.h:13
msgid "Gnome functionality" msgid "Gnome functionality"
msgstr "" msgstr "Funkcionalita Gnome"
#: ui/SettingsFineTune.ui.h:14 #: ui/SettingsFineTune.ui.h:14
#, fuzzy
msgid "Keep original gnome-shell dash" 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 #: ui/SettingsFineTune.ui.h:15
msgid "(overview)" msgid "(overview)"
msgstr "" msgstr "(prehľad)"
#: ui/SettingsFineTune.ui.h:16 #: ui/SettingsFineTune.ui.h:16
msgid "Keep original gnome-shell top panel" msgid "Keep original gnome-shell top panel"
msgstr "Ponechať pôvodný horný panel gnome-shell" msgstr "Ponechať pôvodný horný panel gnome-shell"
#: ui/SettingsFineTune.ui.h:17 #: ui/SettingsFineTune.ui.h:17
#, fuzzy
msgid "Activate panel menu buttons on click only" 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 #: ui/SettingsFineTune.ui.h:18
#, fuzzy
msgid "(e.g. date menu)" msgid "(e.g. date menu)"
msgstr "Menu hodín" msgstr "(napr. ponuka s dátumom)"
#: ui/SettingsFineTune.ui.h:19 #: ui/SettingsFineTune.ui.h:19
msgid "Force Activities hot corner on primary monitor" msgid "Force Activities hot corner on primary monitor"
msgstr "Vynútiť aktívny roh na primárnom monitore" msgstr "Vynútiť aktívny roh na primárnom monitore"
#: ui/SettingsFineTune.ui.h:20 #: ui/SettingsFineTune.ui.h:20
#, fuzzy
msgid "App icon secondary menu" 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 #: ui/SettingsFineTune.ui.h:21
#, fuzzy
msgid "(right-click menu)" 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 #: ui/SettingsPosition.ui.h:1
msgid "Panel" msgid "Panel"
msgstr "" msgstr "Panel"
#: ui/SettingsPosition.ui.h:2 #: ui/SettingsPosition.ui.h:2
msgid "Display the main panel on" 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í" msgstr "Zobraziť/skryť panel podľa nastavení"
#: ui/SettingsPosition.ui.h:6 #: ui/SettingsPosition.ui.h:6
#, fuzzy
msgid "Order and Position on monitors" 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 #: ui/SettingsPosition.ui.h:7
#, fuzzy
msgid "Monitor" msgid "Monitor"
msgstr "Monitor " msgstr "Monitor"
#: ui/SettingsPosition.ui.h:8 #: ui/SettingsPosition.ui.h:8
msgid "Apply changes to all monitors" msgid "Apply changes to all monitors"
@@ -1305,90 +1267,65 @@ msgid "Panel screen position"
msgstr "Pozícia panela na obrazovke" msgstr "Pozícia panela na obrazovke"
#: ui/SettingsPosition.ui.h:14 #: ui/SettingsPosition.ui.h:14
#, fuzzy
msgid "Panel thickness" msgid "Panel thickness"
msgstr "" msgstr "Šírka panela"
"Šírka panela\n"
"(predvolená: 48)"
#: ui/SettingsPosition.ui.h:15 #: ui/SettingsPosition.ui.h:15
#, fuzzy
msgid "(default is 48)" msgid "(default is 48)"
msgstr "" msgstr "(predvolená je 48)"
"Šírka panela\n"
"(predvolená: 48)"
#: ui/SettingsPosition.ui.h:17 #: ui/SettingsPosition.ui.h:17
#, fuzzy, no-c-format #, no-c-format
msgid "Panel length (%)" msgid "Panel length (%)"
msgstr "" msgstr "Dĺžka panela (%)"
"Dĺžka panela (%)\n"
"(predvolená: 100)"
#: ui/SettingsPosition.ui.h:18 #: ui/SettingsPosition.ui.h:18
#, fuzzy
msgid "(default is 100)" msgid "(default is 100)"
msgstr "" msgstr "(predvolená je 100)"
"Dĺžka panela (%)\n"
"(predvolená: 100)"
#: ui/SettingsPosition.ui.h:19 #: ui/SettingsPosition.ui.h:19
msgid "Anchor" msgid "Anchor"
msgstr "Ukotvenie" msgstr "Ukotvenie"
#: ui/SettingsPosition.ui.h:23 #: ui/SettingsPosition.ui.h:23
#, fuzzy
msgid "Taskbar Display" msgid "Taskbar Display"
msgstr "Zoznam úloh" msgstr "Zobrazenie panela úloh"
#: ui/SettingsStyle.ui.h:1 #: ui/SettingsStyle.ui.h:1
msgid "AppIcon style" msgid "AppIcon style"
msgstr "" msgstr "Štýl ikony aplikácií"
#: ui/SettingsStyle.ui.h:2 #: ui/SettingsStyle.ui.h:2
#, fuzzy
msgid "App Icon Margin" msgid "App Icon Margin"
msgstr "" msgstr "Rozostup ikon aplikácií"
"Rozostup ikon aplikácií\n"
"(predvolený: 8)"
#: ui/SettingsStyle.ui.h:3 #: ui/SettingsStyle.ui.h:3
#, fuzzy
msgid "(default is 8)" msgid "(default is 8)"
msgstr "" msgstr "(predvolené je 8)"
"Rozostup ikon aplikácií\n"
"(predvolený: 8)"
#: ui/SettingsStyle.ui.h:4 #: ui/SettingsStyle.ui.h:4
#, fuzzy
msgid "App Icon Padding" msgid "App Icon Padding"
msgstr "" msgstr "Odsadenie ikon aplikácií"
"Odsadenie ikon aplikácií\n"
"(predvolené: 4)"
#: ui/SettingsStyle.ui.h:5 #: ui/SettingsStyle.ui.h:5
#, fuzzy
msgid "(default is 4)" msgid "(default is 4)"
msgstr "" msgstr "(predvolené je 4)"
"Odsadenie ikon aplikácií\n"
"(predvolené: 4)"
#: ui/SettingsStyle.ui.h:6 #: ui/SettingsStyle.ui.h:6
msgid "Animate hovering app icons" msgid "Animate hovering app icons"
msgstr "Animovať prepínanie medzi ikonami aplikácií" msgstr "Animovať prepínanie medzi ikonami aplikácií"
#: ui/SettingsStyle.ui.h:7 #: ui/SettingsStyle.ui.h:7
#, fuzzy
msgid "Running indicator" msgid "Running indicator"
msgstr "Pozícia indikátora" msgstr "Indikátor činnosti"
#: ui/SettingsStyle.ui.h:8 #: ui/SettingsStyle.ui.h:8
msgid "Running indicator position" msgid "Running indicator position"
msgstr "Pozícia indikátora" msgstr "Pozícia indikátora činnosti"
#: ui/SettingsStyle.ui.h:13 #: ui/SettingsStyle.ui.h:13
msgid "Running indicator style (Focused app)" 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 #: ui/SettingsStyle.ui.h:14
msgid "Dots" msgid "Dots"
@@ -1404,7 +1341,7 @@ msgstr "Čiarky"
#: ui/SettingsStyle.ui.h:17 #: ui/SettingsStyle.ui.h:17
msgid "Segmented" msgid "Segmented"
msgstr "Segmenty" msgstr "Segmentované"
#: ui/SettingsStyle.ui.h:18 #: ui/SettingsStyle.ui.h:18
msgid "Solid" msgid "Solid"
@@ -1423,18 +1360,16 @@ msgid "Running indicator style (Unfocused apps)"
msgstr "Štýl indikátora bežiacich aplikácií (na pozadí)" msgstr "Štýl indikátora bežiacich aplikácií (na pozadí)"
#: ui/SettingsStyle.ui.h:22 #: ui/SettingsStyle.ui.h:22
#, fuzzy
msgid "Panel style" msgid "Panel style"
msgstr "Inteligentné skrývanie (Intellihide)" msgstr "Štýl panelu"
#: ui/SettingsStyle.ui.h:23 #: ui/SettingsStyle.ui.h:23
#, fuzzy
msgid "Override panel theme background color" 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 #: ui/SettingsStyle.ui.h:24
msgid "Override panel theme background opacity" 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 #: ui/SettingsStyle.ui.h:26
#, no-c-format #, 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" msgstr "Zmeniť priehľadnosť pri priblížení okna"
#: ui/SettingsStyle.ui.h:30 #: ui/SettingsStyle.ui.h:30
#, fuzzy
msgid "Override panel theme gradient" 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 #: ui/SettingsStyle.ui.h:32
#, no-c-format #, no-c-format

1108
po/tr.po

File diff suppressed because it is too large Load Diff

1496
po/uk.po

File diff suppressed because it is too large Load Diff

100
prefs.js
View File

@@ -21,22 +21,17 @@
* Some code was also adapted from the upstream Gnome Shell source code. * Some code was also adapted from the upstream Gnome Shell source code.
*/ */
const GdkPixbuf = imports.gi.GdkPixbuf; import GdkPixbuf from 'gi://GdkPixbuf';
const Gio = imports.gi.Gio; import Gio from 'gi://Gio';
const GLib = imports.gi.GLib; import GLib from 'gi://GLib';
const GObject = imports.gi.GObject; import GObject from 'gi://GObject';
const Gtk = imports.gi.Gtk; import Gtk from 'gi://Gtk';
const Adw = imports.gi.Adw; import Gdk from 'gi://Gdk';
const Gdk = imports.gi.Gdk;
const Mainloop = imports.mainloop;
const Me = imports.misc.extensionUtils.getCurrentExtension(); import * as PanelSettings from './panelSettings.js';
const ExtensionUtils = imports.misc.extensionUtils; import * as Pos from './panelPositions.js';
const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
const _ = Gettext.gettext; import {ExtensionPreferences, gettext as _, ngettext} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
const N_ = function(e) { return e };
const PanelSettings = Me.imports.panelSettings;
const Pos = Me.imports.panelPositions;
const SCALE_UPDATE_TIMEOUT = 500; const SCALE_UPDATE_TIMEOUT = 500;
const DEFAULT_PANEL_SIZES = [ 96, 64, 48, 32, 24 ]; const DEFAULT_PANEL_SIZES = [ 96, 64, 48, 32, 24 ];
@@ -146,51 +141,55 @@ function checkHotkeyPrefix(settings) {
} }
function mergeObjects(main, bck) { function mergeObjects(main, bck) {
for (var prop in bck) { for (const prop in bck) {
if (!main.hasOwnProperty(prop) && bck.hasOwnProperty(prop)) { if (!main.hasOwnProperty(prop) && bck.hasOwnProperty(prop)) {
main[prop] = bck[prop]; main[prop] = bck[prop];
} }
} }
return main; return main;
}; }
const Preferences = class { const Preferences = class {
constructor(window) { constructor(window, settings, gnomeInterfaceSettings, path) {
this._settings = ExtensionUtils.getSettings('org.gnome.shell.extensions.zorin-taskbar'); // this._settings = ExtensionUtils.getSettings('org.gnome.shell.extensions.zorin-taskbar');
this._gnomeInterfaceSettings = ExtensionUtils.getSettings('org.gnome.desktop.interface');
this._rtl = (Gtk.Widget.get_default_direction() == Gtk.TextDirection.RTL); this._rtl = (Gtk.Widget.get_default_direction() == Gtk.TextDirection.RTL);
this._builder = new Gtk.Builder(); this._builder = new Gtk.Builder();
this._builder.set_scope(new BuilderScope(this)); this._builder.set_scope(new BuilderScope(this));
this._builder.set_translation_domain(Me.metadata['gettext-domain']); this._settings = settings;
this._gnomeInterfaceSettings = gnomeInterfaceSettings;
this._path = path;
this._metadata = ExtensionPreferences.lookupByURL(import.meta.url).metadata;
this._builder.set_translation_domain(this._metadata['gettext-domain']);
window.set_search_enabled(true); window.set_search_enabled(true);
// dialogs // dialogs
this._builder.add_from_file(Me.path + '/ui/BoxShowDesktopOptions.ui'); this._builder.add_from_file(this._path + '/ui/BoxShowDesktopOptions.ui');
this._builder.add_from_file(Me.path + '/ui/BoxDynamicOpacityOptions.ui'); this._builder.add_from_file(this._path + '/ui/BoxDynamicOpacityOptions.ui');
this._builder.add_from_file(Me.path + '/ui/BoxIntellihideOptions.ui'); this._builder.add_from_file(this._path + '/ui/BoxIntellihideOptions.ui');
this._builder.add_from_file(Me.path + '/ui/BoxShowDateMenuOptions.ui'); this._builder.add_from_file(this._path + '/ui/BoxShowDateMenuOptions.ui');
this._builder.add_from_file(Me.path + '/ui/BoxWindowPreviewOptions.ui'); this._builder.add_from_file(this._path + '/ui/BoxWindowPreviewOptions.ui');
this._builder.add_from_file(Me.path + '/ui/BoxGroupAppsOptions.ui'); this._builder.add_from_file(this._path + '/ui/BoxGroupAppsOptions.ui');
this._builder.add_from_file(Me.path + '/ui/BoxMiddleClickOptions.ui'); this._builder.add_from_file(this._path + '/ui/BoxMiddleClickOptions.ui');
this._builder.add_from_file(Me.path + '/ui/BoxOverlayShortcut.ui'); this._builder.add_from_file(this._path + '/ui/BoxOverlayShortcut.ui');
// pages // pages
this._builder.add_from_file(Me.path + '/ui/SettingsStyle.ui'); this._builder.add_from_file(this._path + '/ui/SettingsStyle.ui');
let pageStyle = this._builder.get_object('style'); let pageStyle = this._builder.get_object('style');
window.add(pageStyle); window.add(pageStyle);
this._builder.add_from_file(Me.path + '/ui/SettingsPosition.ui'); this._builder.add_from_file(this._path + '/ui/SettingsPosition.ui');
let pagePosition = this._builder.get_object('position'); let pagePosition = this._builder.get_object('position');
window.add(pagePosition); window.add(pagePosition);
this._builder.add_from_file(Me.path + '/ui/SettingsBehavior.ui'); this._builder.add_from_file(this._path + '/ui/SettingsBehavior.ui');
let pageBehavior = this._builder.get_object('behavior'); let pageBehavior = this._builder.get_object('behavior');
window.add(pageBehavior); window.add(pageBehavior);
this._builder.add_from_file(Me.path + '/ui/SettingsAction.ui'); this._builder.add_from_file(this._path + '/ui/SettingsAction.ui');
let pageAction = this._builder.get_object('action'); let pageAction = this._builder.get_object('action');
window.add(pageAction); window.add(pageAction);
@@ -627,6 +626,12 @@ const Preferences = class {
this._updateWidgetSettingsForMonitor(this._currentMonitorIndex); this._updateWidgetSettingsForMonitor(this._currentMonitorIndex);
//panel style
this._settings.bind('floating-rounded-theme',
this._builder.get_object('floating_rounded_theme_switch'),
'active',
Gio.SettingsBindFlags.DEFAULT);
//dynamic opacity //dynamic opacity
this._settings.bind('trans-use-custom-opacity', this._settings.bind('trans-use-custom-opacity',
this._builder.get_object('trans_opacity_override_switch'), this._builder.get_object('trans_opacity_override_switch'),
@@ -700,11 +705,6 @@ const Preferences = class {
'sensitive', 'sensitive',
Gio.SettingsBindFlags.DEFAULT); Gio.SettingsBindFlags.DEFAULT);
this._settings.bind('intellihide-floating-rounded-theme',
this._builder.get_object('intellihide_floating_rounded_theme_switch'),
'active',
Gio.SettingsBindFlags.DEFAULT);
this._settings.bind('intellihide-hide-from-windows', this._settings.bind('intellihide-hide-from-windows',
this._builder.get_object('intellihide_window_hide_switch'), this._builder.get_object('intellihide_window_hide_switch'),
'active', 'active',
@@ -757,7 +757,6 @@ const Preferences = class {
let dialog = this._createPreferencesDialog(_('Intellihide options'), box, () => let dialog = this._createPreferencesDialog(_('Intellihide options'), box, () =>
{ {
// restore default settings // restore default settings
this._settings.set_value('intellihide-floating-rounded-theme', this._settings.get_default_value('intellihide-floating-rounded-theme'));
this._settings.set_value('intellihide-hide-from-windows', this._settings.get_default_value('intellihide-hide-from-windows')); this._settings.set_value('intellihide-hide-from-windows', this._settings.get_default_value('intellihide-hide-from-windows'));
this._settings.set_value('intellihide-behaviour', this._settings.get_default_value('intellihide-behaviour')); this._settings.set_value('intellihide-behaviour', this._settings.get_default_value('intellihide-behaviour'));
this._settings.set_value('intellihide-use-pressure', this._settings.get_default_value('intellihide-use-pressure')); this._settings.set_value('intellihide-use-pressure', this._settings.get_default_value('intellihide-use-pressure'));
@@ -1053,7 +1052,7 @@ const Preferences = class {
{objectName: 'panel_length_scale', valueName: '', range: LENGTH_MARKS } {objectName: 'panel_length_scale', valueName: '', range: LENGTH_MARKS }
]; ];
for(var idx in sizeScales) { for(const idx in sizeScales) {
let size_scale = this._builder.get_object(sizeScales[idx].objectName); let size_scale = this._builder.get_object(sizeScales[idx].objectName);
let range = sizeScales[idx].range; let range = sizeScales[idx].range;
size_scale.set_range(range[range.length - 1], range[0]); size_scale.set_range(range[range.length - 1], range[0]);
@@ -1142,9 +1141,9 @@ const BuilderScope = GObject.registerClass({
panel_size_scale_value_changed_cb(scale) { panel_size_scale_value_changed_cb(scale) {
// Avoid settings the size continuously // Avoid settings the size continuously
if (this._preferences._panel_size_timeout > 0) if (this._preferences._panel_size_timeout > 0)
Mainloop.source_remove(this._preferences._panel_size_timeout); GLib.Source.remove(this._preferences._panel_size_timeout);
this._preferences._panel_size_timeout = Mainloop.timeout_add(SCALE_UPDATE_TIMEOUT, (() => { this._preferences._panel_size_timeout = GLib.timeout_add(GLib.PRIORITY_DEFAULT, SCALE_UPDATE_TIMEOUT, () => {
const value = scale.get_value(); const value = scale.get_value();
const monitorSync = this._preferences._settings.get_boolean('panel-element-positions-monitors-sync'); const monitorSync = this._preferences._settings.get_boolean('panel-element-positions-monitors-sync');
const monitorsToSetFor = monitorSync ? this._preferences.monitors : [this._preferences._currentMonitorIndex]; const monitorsToSetFor = monitorSync ? this._preferences.monitors : [this._preferences._currentMonitorIndex];
@@ -1154,17 +1153,18 @@ const BuilderScope = GObject.registerClass({
this._preferences._panel_size_timeout = 0; this._preferences._panel_size_timeout = 0;
return GLib.SOURCE_REMOVE; return GLib.SOURCE_REMOVE;
})); });
} }
}); });
function init() { export default class ZorinTaskbarPreferences extends ExtensionPreferences {
ExtensionUtils.initTranslations(); fillPreferencesWindow(window) {
} window._settings = this.getSettings('org.gnome.shell.extensions.zorin-taskbar');
window._gnomeInterfaceSettings = this.getSettings('org.gnome.desktop.interface');
function fillPreferencesWindow(window) { // use default width or window
// use default width or window window.set_default_size(0, 625);
window.set_default_size(0, 625);
let preferences = new Preferences(window); let preferences = new Preferences(window, window._settings, window._gnomeInterfaceSettings, this.path);
}
} }

View File

@@ -20,19 +20,22 @@
* and code from the Dash to Panel extension * and code from the Dash to Panel extension
*/ */
const Me = imports.misc.extensionUtils.getCurrentExtension(); import Cairo from 'cairo';
const Gio = imports.gi.Gio; import Gio from 'gi://Gio';
const Cairo = imports.cairo; import Clutter from 'gi://Clutter';
const Clutter = imports.gi.Clutter; import Pango from 'gi://Pango';
const Pango = imports.gi.Pango; import St from 'gi://St';
const St = imports.gi.St; import * as Utils from './utils.js';
const Signals = imports.signals; import {SETTINGS} from './extension.js';
const Utils = Me.imports.utils;
import {EventEmitter} from 'resource:///org/gnome/shell/misc/signals.js';
var ProgressManager = class { export const ProgressManager = class extends EventEmitter {
constructor() { constructor() {
super();
this._entriesByDBusName = {}; this._entriesByDBusName = {};
this._launcher_entry_dbus_signal_id = this._launcher_entry_dbus_signal_id =
@@ -163,11 +166,12 @@ var ProgressManager = class {
} }
} }
}; };
Signals.addSignalMethods(ProgressManager.prototype);
class AppProgress { export class AppProgress extends EventEmitter {
constructor(dbusName, appId, properties) { constructor(dbusName, appId, properties) {
super();
this._dbusName = dbusName; this._dbusName = dbusName;
this._appId = appId; this._appId = appId;
this._count = 0; this._count = 0;
@@ -263,11 +267,11 @@ class AppProgress {
if (property == 'count') { if (property == 'count') {
this.setCount(other[property].get_int64()); this.setCount(other[property].get_int64());
} else if (property == 'count-visible') { } else if (property == 'count-visible') {
this.setCountVisible(Me.settings.get_boolean('progress-show-count') && other[property].get_boolean()); this.setCountVisible(SETTINGS.get_boolean('progress-show-count') && other[property].get_boolean());
} else if (property == 'progress') { } else if (property == 'progress') {
this.setProgress(other[property].get_double()); this.setProgress(other[property].get_double());
} else if (property == 'progress-visible') { } else if (property == 'progress-visible') {
this.setProgressVisible(Me.settings.get_boolean('progress-show-bar') && other[property].get_boolean()); this.setProgressVisible(SETTINGS.get_boolean('progress-show-bar') && other[property].get_boolean());
} else if (property == 'urgent') { } else if (property == 'urgent') {
this.setUrgent(other[property].get_boolean()); this.setUrgent(other[property].get_boolean());
} else { } else {
@@ -277,11 +281,10 @@ class AppProgress {
} }
} }
} }
}; }
Signals.addSignalMethods(AppProgress.prototype);
var ProgressIndicator = class { export const ProgressIndicator = class {
constructor(source, progressManager) { constructor(source, progressManager) {
this._source = source; this._source = source;
@@ -406,13 +409,13 @@ var ProgressIndicator = class {
if (hasColor) if (hasColor)
this._progressbar_background = color this._progressbar_background = color
else else
this._progressbar_background = new Clutter.Color({red: 204, green: 204, blue: 204, alpha: 255}); this._progressbar_background = new Utils.ColorUtils.Color({red: 204, green: 204, blue: 204, alpha: 255});
[hasColor, color] = node.lookup_color('-progress-bar-border', false); [hasColor, color] = node.lookup_color('-progress-bar-border', false);
if (hasColor) if (hasColor)
this._progressbar_border = color; this._progressbar_border = color;
else else
this._progressbar_border = new Clutter.Color({red: 230, green: 230, blue: 230, alpha: 255}); this._progressbar_border = new Utils.ColorUtils.Color({red: 230, green: 230, blue: 230, alpha: 255});
this._updateProgressOverlay(); this._updateProgressOverlay();
} }

View File

@@ -18,13 +18,12 @@
* This file is based on code from the Dash to Panel extension * This file is based on code from the Dash to Panel extension
*/ */
const Meta = imports.gi.Meta; import Meta from 'gi://Meta';
import Mtk from 'gi://Mtk';
const Layout = imports.ui.layout; import * as Main from 'resource:///org/gnome/shell/ui/main.js';
const Main = imports.ui.main;
const Me = imports.misc.extensionUtils.getCurrentExtension(); import * as Utils from './utils.js';
const Utils = Me.imports.utils;
//timeout intervals //timeout intervals
const MIN_UPDATE_MS = 200; const MIN_UPDATE_MS = 200;
@@ -32,13 +31,13 @@ const MIN_UPDATE_MS = 200;
//timeout names //timeout names
const T1 = 'limitUpdateTimeout'; const T1 = 'limitUpdateTimeout';
var Mode = { export const Mode = {
ALL_WINDOWS: 0, ALL_WINDOWS: 0,
FOCUSED_WINDOWS: 1, FOCUSED_WINDOWS: 1,
MAXIMIZED_WINDOWS: 2 MAXIMIZED_WINDOWS: 2
}; };
class ProximityWatch { export class ProximityWatch {
constructor(actor, monitorIndex, mode, xThreshold, yThreshold, handler) { constructor(actor, monitorIndex, mode, xThreshold, yThreshold, handler) {
this.actor = actor; this.actor = actor;
@@ -60,7 +59,7 @@ class ProximityWatch {
_updateWatchRect() { _updateWatchRect() {
let [actorX, actorY] = this.actor.get_position(); let [actorX, actorY] = this.actor.get_position();
this.rect = new Meta.Rectangle({ this.rect = new Mtk.Rectangle({
x: actorX - this.threshold[0], x: actorX - this.threshold[0],
y: actorY - this.threshold[1], y: actorY - this.threshold[1],
width: this.actor.width + this.threshold[0] * 2, width: this.actor.width + this.threshold[0] * 2,
@@ -69,7 +68,7 @@ class ProximityWatch {
} }
}; };
var ProximityManager = class { export const ProximityManager = class {
constructor() { constructor() {
this._counter = 1; this._counter = 1;

View File

@@ -189,10 +189,10 @@
<summary>Keybinding toggle intellihide</summary> <summary>Keybinding toggle intellihide</summary>
<description>Keybinding to reveal the panel while in intellihide mode</description> <description>Keybinding to reveal the panel while in intellihide mode</description>
</key> </key>
<key type="b" name="intellihide-floating-rounded-theme"> <key type="b" name="floating-rounded-theme">
<default>true</default> <default>false</default>
<summary>Floating rounded theme</summary> <summary>Floating rounded theme</summary>
<description>Display the panel with a floating rounded theme while in intellihide mode</description> <description>Display the panel with a floating rounded theme</description>
</key> </key>
<key type="as" name="panel-context-menu-commands"> <key type="as" name="panel-context-menu-commands">
<default>[]</default> <default>[]</default>

View File

@@ -22,34 +22,39 @@
*/ */
#zorintaskbarTaskbar .dash-item-container > StWidget, #zorintaskbarTaskbar .dash-item-container > StWidget,
.zorintaskbarMainPanel .show-apps { .zorintaskbarMainPanel .dash-item-container .show-apps {
margin: 0;
padding: 0;
}
#zorintaskbarScrollview .app-well-app .overview-icon,
.zorintaskbarMainPanel .show-apps .overview-icon {
background: none;
border: none;
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
#zorintaskbarScrollview .app-well-app .overview-label { #zorintaskbarScrollview .overview-tile,
/* must match TITLE_RIGHT_PADDING in apppicons.js */ .zorintaskbarMainPanel .overview-tile {
padding-right: 8px; background: none;
} }
#zorintaskbarScrollview .app-well-app .favorite { #zorintaskbarScrollview .overview-tile .overview-label {
/* must match TITLE_RIGHT_PADDING in apppicons.js */
padding-right: 8px;
text-align: left;
}
.zorintaskbarMainPanel .dash-item-container .show-apps .overview-icon {
color: #FFF;
}
#zorintaskbarTaskbar .dash-item-container .overview-tile:hover,
#zorintaskbarTaskbar .dash-item-container .overview-tile .dtp-container .overview-icon,
#zorintaskbarScrollview .overview-tile:hover .dtp-container.animate-appicon-hover,
.zorintaskbarMainPanel .dash-item-container .show-apps:hover .overview-icon {
background: none;
}
#zorintaskbarScrollview .overview-tile .favorite {
/*background-color: rgba(80, 150, 255, 0.4);*/ /*background-color: rgba(80, 150, 255, 0.4);*/
} }
#zorintaskbarScrollview .app-well-app-running-dot {
margin-bottom: 0;
}
#zorintaskbarTaskbar .scrollview-fade { #zorintaskbarTaskbar .scrollview-fade {
background-gradient-end: rgba(0, 0, 0, 0); background-gradient-end: rgba(0, 0, 0, 0);
} }
.zorintaskbarSecondaryMenu { .zorintaskbarSecondaryMenu {
@@ -57,13 +62,13 @@
} }
.zorintaskbarMainPanel.vertical .panel-button { .zorintaskbarMainPanel.vertical .panel-button {
text-align: center; text-align: center;
} }
.zorintaskbarMainPanel.vertical .panel-button.vertical *, .zorintaskbarMainPanel.vertical .panel-button.vertical *,
.zorintaskbarMainPanel.vertical .panel-button.clock-display * { .zorintaskbarMainPanel.vertical .panel-button.clock-display * {
padding: 0; padding: 0;
margin: 0; margin: 0;
} }
.zorintaskbarMainPanel.vertical .panel-button > *, .zorintaskbarMainPanel.vertical .panel-button > *,
@@ -71,7 +76,7 @@
.zorintaskbarMainPanel.vertical .panel-button.vertical .system-status-icon, .zorintaskbarMainPanel.vertical .panel-button.vertical .system-status-icon,
.zorintaskbarMainPanel.vertical .panel-button.clock-display > *, .zorintaskbarMainPanel.vertical .panel-button.clock-display > *,
.zorintaskbarMainPanel.vertical .panel-button.clock-display .clock { .zorintaskbarMainPanel.vertical .panel-button.clock-display .clock {
padding: 8px 0; padding: 8px 0;
} }
.zorintaskbarMainPanel.vertical .panel-button.clock-display { .zorintaskbarMainPanel.vertical .panel-button.clock-display {
@@ -100,17 +105,28 @@
} }
.popup-menu.panel-menu { .popup-menu.panel-menu {
margin-bottom: 0; margin-bottom: 0;
} }
#panel #panelLeft, #panel #panelCenter { #panel #panelLeft, #panel #panelCenter {
spacing: 0px; spacing: 0px;
} }
#panelBox.floating { #panelBox.floating {
padding: 8px;
background: transparent; background: transparent;
} }
#panelBox.floating.top {
padding: 8px 8px 0 8px;
}
#panelBox.floating.right {
padding: 8px 8px 8px 0;
}
#panelBox.floating.bottom {
padding: 0 8px 8px 8px;
}
#panelBox.floating.left {
padding: 8px 0 8px 8px;
}
#panelBox.floating #panel, #panelBox.floating #panel,
#panelBox.floating .panel-button, #panelBox.floating .panel-button,
@@ -129,15 +145,14 @@
} }
#zorintaskbarScrollview .notification-badge { #zorintaskbarScrollview .notification-badge {
background-color: rgba(255,0,0,0.8); background-color: rgba(255,0,0,0.8);
margin: 2px; margin: 2px;
} }
#zorintaskbarScrollview .progress-bar { #zorintaskbarScrollview .progress-bar {
/* Customization of the progress bar style, e.g.: /* Customization of the progress bar style, e.g.:
-progress-bar-background: rgba(0.8, 0.8, 0.8, 1); -progress-bar-background: rgba(0.8, 0.8, 0.8, 1);
-progress-bar-border: rgba(0.9, 0.9, 0.9, 1); -progress-bar-border: rgba(0.9, 0.9, 0.9, 1); */
*/
} }
.preview-container, .preview-container,

View File

@@ -22,45 +22,41 @@
*/ */
const Clutter = imports.gi.Clutter; import Clutter from 'gi://Clutter';
const Gio = imports.gi.Gio; import Gio from 'gi://Gio';
const GLib = imports.gi.GLib; import GLib from 'gi://GLib';
const GObject = imports.gi.GObject; import GObject from 'gi://GObject';
const Gtk = imports.gi.Gtk; import Graphene from 'gi://Graphene';
const Signals = imports.signals; import Shell from 'gi://Shell';
const Meta = imports.gi.Meta; import St from 'gi://St';
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const SearchController = imports.ui.main.overview._overview._controls._searchController; import * as AppFavorites from 'resource:///org/gnome/shell/ui/appFavorites.js';
const AppDisplay = imports.ui.main.overview._overview._controls.appDisplay; import * as Dash from 'resource:///org/gnome/shell/ui/dash.js';
const AppFavorites = imports.ui.appFavorites; import * as DND from 'resource:///org/gnome/shell/ui/dnd.js';
const Dash = imports.ui.dash; import * as Main from 'resource:///org/gnome/shell/ui/main.js';
const DND = imports.ui.dnd; import {EventEmitter} from 'resource:///org/gnome/shell/misc/signals.js';
const IconGrid = imports.ui.iconGrid;
const Main = imports.ui.main;
const PopupMenu = imports.ui.popupMenu;
const Workspace = imports.ui.workspace;
const Me = imports.misc.extensionUtils.getCurrentExtension(); import * as AppIcons from './appIcons.js';
const AppIcons = Me.imports.appIcons; import * as PanelManager from './panelManager.js';
const Panel = Me.imports.panel; import * as PanelSettings from './panelSettings.js';
const PanelManager = Me.imports.panelManager; import * as Pos from './panelPositions.js';
const PanelSettings = Me.imports.panelSettings; import * as Utils from './utils.js';
const Pos = Me.imports.panelPositions; import * as WindowPreview from './windowPreview.js';
const Utils = Me.imports.utils; import {SETTINGS} from './extension.js';
const WindowPreview = Me.imports.windowPreview;
var DASH_ANIMATION_TIME = Dash.DASH_ANIMATION_TIME / (Dash.DASH_ANIMATION_TIME > 1 ? 1000 : 1); const SearchController = Main.overview.searchController;
var DASH_ITEM_HOVER_TIMEOUT = Dash.DASH_ITEM_HOVER_TIMEOUT;
var MIN_ICON_SIZE = 4; export const DASH_ANIMATION_TIME = .2; // Dash.DASH_ANIMATION_TIME is now private
var APPICON_MARGIN = 4; const DASH_ITEM_HOVER_TIMEOUT = .3; // Dash.DASH_ITEM_HOVER_TIMEOUT is now private
var APPICON_PADDING = 8; export const MIN_ICON_SIZE = 4;
export const APPICON_MARGIN = 4;
export const APPICON_PADDING = 8;
const T1 = 'ensureAppIconVisibilityTimeout' const T1 = 'ensureAppIconVisibilityTimeout'
const T2 = 'showLabelTimeout' const T2 = 'showLabelTimeout'
const T3 = 'resetHoverTimeout' const T3 = 'resetHoverTimeout'
/** /**
* Extend DashItemContainer * Extend DashItemContainer
* *
@@ -70,9 +66,9 @@ const T3 = 'resetHoverTimeout'
* thus use this ugly pattern. * thus use this ugly pattern.
*/ */
function extendDashItemContainer(dashItemContainer) { export function extendDashItemContainer(dashItemContainer) {
dashItemContainer.showLabel = AppIcons.ItemShowLabel; dashItemContainer.showLabel = AppIcons.ItemShowLabel;
}; }
/* This class is a fork of the upstream DashActor class (ui.dash.js) /* This class is a fork of the upstream DashActor class (ui.dash.js)
* *
@@ -80,7 +76,7 @@ function extendDashItemContainer(dashItemContainer) {
* - modified chldBox calculations for when 'show-apps-at-top' option is checked * - modified chldBox calculations for when 'show-apps-at-top' option is checked
* - handle horizontal dash * - handle horizontal dash
*/ */
var TaskbarActor = GObject.registerClass({ export const TaskbarActor = GObject.registerClass({
}, class TaskbarActor extends St.Widget { }, class TaskbarActor extends St.Widget {
_init(delegate) { _init(delegate) {
this._delegate = delegate; this._delegate = delegate;
@@ -110,7 +106,7 @@ var TaskbarActor = GObject.registerClass({
scrollview.allocate(childBox); scrollview.allocate(childBox);
let [value, , upper, , , pageSize] = scrollview[orientation[0] + 'scroll'].adjustment.get_values(); let [value, , upper, , , pageSize] = scrollview[orientation[0] + 'adjustment'].get_values();
upper = Math.floor(upper); upper = Math.floor(upper);
scrollview._dtpFadeSize = upper > pageSize ? this._delegate.iconSize : 0; scrollview._dtpFadeSize = upper > pageSize ? this._delegate.iconSize : 0;
@@ -161,9 +157,11 @@ var TaskbarActor = GObject.registerClass({
* - Sync minimization application target position. * - Sync minimization application target position.
*/ */
var Taskbar = class { export const Taskbar = class extends EventEmitter {
constructor(panel) { constructor(panel) {
super();
this.dtpPanel = panel; this.dtpPanel = panel;
// start at smallest size due to running indicator drawing area expanding but not shrinking // start at smallest size due to running indicator drawing area expanding but not shrinking
@@ -186,12 +184,12 @@ var Taskbar = class {
this._container = new TaskbarActor(this); this._container = new TaskbarActor(this);
this._scrollView = new St.ScrollView({ name: 'zorintaskbarScrollview', this._scrollView = new St.ScrollView({ name: 'zorintaskbarScrollview',
hscrollbar_policy: Gtk.PolicyType.NEVER, hscrollbar_policy: St.PolicyType.NEVER,
vscrollbar_policy: Gtk.PolicyType.NEVER, vscrollbar_policy: St.PolicyType.NEVER,
enable_mouse_scrolling: true }); enable_mouse_scrolling: true });
this._scrollView.connect('scroll-event', this._onScrollEvent.bind(this)); this._scrollView.connect('scroll-event', this._onScrollEvent.bind(this));
this._scrollView.add_actor(this._box); this._scrollView.add_child(this._box);
this._showAppsIconWrapper = panel.showAppsIconWrapper; this._showAppsIconWrapper = panel.showAppsIconWrapper;
this._showAppsIconWrapper.connect('menu-state-changed', (showAppsIconWrapper, opened) => { this._showAppsIconWrapper.connect('menu-state-changed', (showAppsIconWrapper, opened) => {
@@ -215,31 +213,33 @@ var Taskbar = class {
this._hookUpLabel(this._showAppsIcon, this._showAppsIconWrapper); this._hookUpLabel(this._showAppsIcon, this._showAppsIconWrapper);
this._container.add_child(new St.Widget({ width: 0, reactive: false })); this._container.add_child(new St.Widget({ width: 0, reactive: false }));
this._container.add_actor(this._scrollView); this._container.add_child(this._scrollView);
let orientation = panel.getOrientation(); let orientation = panel.getOrientation();
let fadeStyle = 'background-gradient-direction:' + orientation; let fadeStyle = 'background-gradient-direction:' + orientation;
let fade1 = new St.Widget({ style_class: 'scrollview-fade', reactive: false }); let fade1 = new St.Widget({ style_class: 'scrollview-fade', reactive: false });
let fade2 = new St.Widget({ style_class: 'scrollview-fade', let fade2 = new St.Widget({ style_class: 'scrollview-fade',
reactive: false, reactive: false,
pivot_point: new imports.gi.Graphene.Point({ x: .5, y: .5 }), pivot_point: new Graphene.Point({ x: .5, y: .5 }),
rotation_angle_z: 180 }); rotation_angle_z: 180 });
fade1.set_style(fadeStyle); fade1.set_style(fadeStyle);
fade2.set_style(fadeStyle); fade2.set_style(fadeStyle);
this._container.add_actor(fade1); this._container.add_child(fade1);
this._container.add_actor(fade2); this._container.add_child(fade2);
this.previewMenu = new WindowPreview.PreviewMenu(panel); this.previewMenu = new WindowPreview.PreviewMenu(panel);
this.previewMenu.enable(); this.previewMenu.enable();
let rtl = Clutter.get_default_text_direction() == Clutter.TextDirection.RTL; let rtl = Clutter.get_default_text_direction() == Clutter.TextDirection.RTL;
this.actor = new St.Bin({ child: this._container, this.actor = new St.Bin({
y_align: St.Align.START, x_align:rtl?St.Align.END:St.Align.START child: this._container,
y_align: Clutter.ActorAlign.START,
x_align: rtl ? Clutter.ActorAlign.END : Clutter.ActorAlign.START
}); });
let adjustment = this._scrollView[orientation[0] + 'scroll'].adjustment; const adjustment = this._scrollView[orientation[0] + 'adjustment'];
this._workId = Main.initializeDeferredWork(this._box, this._redisplay.bind(this)); this._workId = Main.initializeDeferredWork(this._box, this._redisplay.bind(this));
@@ -269,9 +269,9 @@ var Taskbar = class {
} }
], ],
[ [
this._appSystem, this._appSystem,
'app-state-changed', 'app-state-changed',
this._queueRedisplay.bind(this) this._queueRedisplay.bind(this)
], ],
[ [
AppFavorites.getAppFavorites(), AppFavorites.getAppFavorites(),
@@ -290,7 +290,7 @@ var Taskbar = class {
'window-left-monitor' 'window-left-monitor'
], ],
() => { () => {
if (Me.settings.get_boolean('isolate-monitors')) { if (SETTINGS.get_boolean('isolate-monitors')) {
this._queueRedisplay(); this._queueRedisplay();
} }
} }
@@ -317,7 +317,7 @@ var Taskbar = class {
this._syncShowAppsButtonToggled.bind(this) this._syncShowAppsButtonToggled.bind(this)
], ],
[ [
Me.settings, SETTINGS,
[ [
'changed::show-favorites', 'changed::show-favorites',
'changed::show-running-apps', 'changed::show-running-apps',
@@ -329,7 +329,7 @@ var Taskbar = class {
} }
], ],
[ [
Me.settings, SETTINGS,
'changed::group-apps', 'changed::group-apps',
() => { () => {
setAttributes() setAttributes()
@@ -337,7 +337,7 @@ var Taskbar = class {
} }
], ],
[ [
Me.settings, SETTINGS,
[ [
'changed::group-apps-use-launchers', 'changed::group-apps-use-launchers',
'changed::taskbar-locked' 'changed::taskbar-locked'
@@ -358,11 +358,11 @@ var Taskbar = class {
); );
let setAttributes = () => { let setAttributes = () => {
this.isGroupApps = Me.settings.get_boolean('group-apps'); this.isGroupApps = SETTINGS.get_boolean('group-apps');
this.usingLaunchers = !this.isGroupApps && Me.settings.get_boolean('group-apps-use-launchers'); this.usingLaunchers = !this.isGroupApps && SETTINGS.get_boolean('group-apps-use-launchers');
this.showFavorites = Me.settings.get_boolean('show-favorites') && this.showFavorites = SETTINGS.get_boolean('show-favorites') &&
(this.dtpPanel.isPrimary || Me.settings.get_boolean('show-favorites-all-monitors')) (this.dtpPanel.isPrimary || SETTINGS.get_boolean('show-favorites-all-monitors'))
this.showRunningApps = Me.settings.get_boolean('show-running-apps') this.showRunningApps = SETTINGS.get_boolean('show-running-apps')
this.allowSplitApps = this.usingLaunchers || (!this.isGroupApps && !this.showFavorites) this.allowSplitApps = this.usingLaunchers || (!this.isGroupApps && !this.showFavorites)
} }
@@ -407,7 +407,7 @@ var Taskbar = class {
let adjustment, delta; let adjustment, delta;
adjustment = this._scrollView[orientation[0] + 'scroll'].get_adjustment(); adjustment = this._scrollView[orientation[0] + 'adjustment'];
let increment = adjustment.step_increment; let increment = adjustment.step_increment;
@@ -454,7 +454,9 @@ var Taskbar = class {
if (initial != this.fullScrollView && !this._waitIdleId) { if (initial != this.fullScrollView && !this._waitIdleId) {
this._waitIdleId = GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, () => { this._waitIdleId = GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, () => {
this._getAppIcons().forEach(a => a.updateTitleStyle()) this._getAppIcons().forEach(a => a.updateTitleStyle())
this._waitIdleId = 0 this._waitIdleId = 0;
return GLib.SOURCE_REMOVE;
}); });
} }
} }
@@ -512,7 +514,7 @@ var Taskbar = class {
} }
_onDragMotion(dragEvent) { _onDragMotion(dragEvent) {
let app = Dash.getAppFromSource(dragEvent.source); let app = Dash.Dash.getAppFromSource(dragEvent.source);
if (app == null) if (app == null)
return DND.DragMotionResult.CONTINUE; return DND.DragMotionResult.CONTINUE;
@@ -584,7 +586,7 @@ var Taskbar = class {
{ {
setSizeManually: true, setSizeManually: true,
showLabel: false, showLabel: false,
isDraggable: !Me.settings.get_boolean('taskbar-locked'), isDraggable: !SETTINGS.get_boolean('taskbar-locked'),
}, },
this.previewMenu, this.previewMenu,
this.iconAnimator this.iconAnimator
@@ -726,7 +728,7 @@ var Taskbar = class {
_adjustIconSize() { _adjustIconSize() {
const thisMonitorIndex = this.dtpPanel.monitor.index; const thisMonitorIndex = this.dtpPanel.monitor.index;
let panelSize = PanelSettings.getPanelSize(Me.settings, thisMonitorIndex); let panelSize = PanelSettings.getPanelSize(SETTINGS, thisMonitorIndex);
let availSize = panelSize - APPICON_PADDING * 2; let availSize = panelSize - APPICON_PADDING * 2;
let minIconSize = MIN_ICON_SIZE + panelSize % 2; let minIconSize = MIN_ICON_SIZE + panelSize % 2;
@@ -958,8 +960,8 @@ var Taskbar = class {
icon.updateHotkeyNumberOverlay(); icon.updateHotkeyNumberOverlay();
}); });
if (Me.settings.get_boolean('hot-keys') && if (SETTINGS.get_boolean('hot-keys') &&
Me.settings.get_string('hotkeys-overlay-combo') === 'ALWAYS') SETTINGS.get_string('hotkeys-overlay-combo') === 'ALWAYS')
this.toggleNumberOverlay(true); this.toggleNumberOverlay(true);
} }
@@ -1196,14 +1198,13 @@ var Taskbar = class {
} }
}; };
Signals.addSignalMethods(Taskbar.prototype); export const TaskbarItemContainer = GObject.registerClass({
var TaskbarItemContainer = GObject.registerClass({
}, class TaskbarItemContainer extends Dash.DashItemContainer { }, class TaskbarItemContainer extends Dash.DashItemContainer {
_init() { _init() {
super._init() super._init()
this.x_expand = this.y_expand = false
} }
vfunc_allocate(box) { vfunc_allocate(box) {
@@ -1241,7 +1242,7 @@ var TaskbarItemContainer = GObject.registerClass({
} }
}); });
var DragPlaceholderItem = GObject.registerClass({ const DragPlaceholderItem = GObject.registerClass({
}, class DragPlaceholderItem extends St.Widget { }, class DragPlaceholderItem extends St.Widget {
_init(appIcon, iconSize, isVertical) { _init(appIcon, iconSize, isVertical) {
@@ -1255,7 +1256,7 @@ var DragPlaceholderItem = GObject.registerClass({
height: iconSize height: iconSize
}); });
this.add_actor(this._clone); this.add_child(this._clone);
} }
destroy() { destroy() {
@@ -1264,7 +1265,7 @@ var DragPlaceholderItem = GObject.registerClass({
} }
}); });
function getAppStableSequence(app, monitor) { export function getAppStableSequence(app, monitor) {
let windows = AppIcons.getInterestingWindows(app, monitor); let windows = AppIcons.getInterestingWindows(app, monitor);
return windows.reduce((prevWindow, window) => { return windows.reduce((prevWindow, window) => {
@@ -1272,10 +1273,10 @@ function getAppStableSequence(app, monitor) {
}, Infinity); }, Infinity);
} }
function sortWindowsCompareFunction(windowA, windowB) { export function sortWindowsCompareFunction(windowA, windowB) {
return getWindowStableSequence(windowA) - getWindowStableSequence(windowB); return getWindowStableSequence(windowA) - getWindowStableSequence(windowB);
} }
function getWindowStableSequence(window) { export function getWindowStableSequence(window) {
return ('_dtpPosition' in window ? window._dtpPosition : window.get_stable_sequence()); return ('_dtpPosition' in window ? window._dtpPosition : window.get_stable_sequence());
} }

View File

@@ -18,21 +18,17 @@
* This file is based on code from the Dash to Panel extension * This file is based on code from the Dash to Panel extension
*/ */
const Clutter = imports.gi.Clutter; import GdkPixbuf from 'gi://GdkPixbuf';
const GdkPixbuf = imports.gi.GdkPixbuf; import * as Main from 'resource:///org/gnome/shell/ui/main.js';
const Main = imports.ui.main; import St from 'gi://St';
const Meta = imports.gi.Meta;
const St = imports.gi.St;
const Config = imports.misc.config;
const Me = imports.misc.extensionUtils.getCurrentExtension(); import * as Proximity from './proximity.js';
const Panel = Me.imports.panel; import * as Utils from './utils.js';
const Proximity = Me.imports.proximity; import {SETTINGS} from './extension.js';
const Utils = Me.imports.utils;
const TRANS_DYNAMIC_DISTANCE = 20; const TRANS_DYNAMIC_DISTANCE = 20;
var DynamicTransparency = class { export const DynamicTransparency = class {
constructor(dtpPanel) { constructor(dtpPanel) {
this._dtpPanel = dtpPanel; this._dtpPanel = dtpPanel;
@@ -77,7 +73,7 @@ var DynamicTransparency = class {
() => this._updateAlphaAndSet() () => this._updateAlphaAndSet()
], ],
[ [
Me.settings, SETTINGS,
[ [
'changed::trans-use-custom-opacity', 'changed::trans-use-custom-opacity',
'changed::trans-panel-opacity', 'changed::trans-panel-opacity',
@@ -87,7 +83,7 @@ var DynamicTransparency = class {
() => this._updateAlphaAndSet() () => this._updateAlphaAndSet()
], ],
[ [
Me.settings, SETTINGS,
[ [
'changed::trans-dynamic-behavior', 'changed::trans-dynamic-behavior',
'changed::trans-use-dynamic-opacity' 'changed::trans-use-dynamic-opacity'
@@ -100,7 +96,7 @@ var DynamicTransparency = class {
_updateProximityWatch() { _updateProximityWatch() {
this._proximityManager.removeWatch(this._proximityWatchId); this._proximityManager.removeWatch(this._proximityWatchId);
if (Me.settings.get_boolean('trans-use-dynamic-opacity')) { if (SETTINGS.get_boolean('trans-use-dynamic-opacity')) {
let isVertical = this._dtpPanel.checkIfVertical(); let isVertical = this._dtpPanel.checkIfVertical();
let threshold = TRANS_DYNAMIC_DISTANCE; let threshold = TRANS_DYNAMIC_DISTANCE;
@@ -110,7 +106,7 @@ var DynamicTransparency = class {
this._proximityWatchId = this._proximityManager.createWatch( this._proximityWatchId = this._proximityManager.createWatch(
this._dtpPanel.panelBox.get_parent(), this._dtpPanel.panelBox.get_parent(),
this._dtpPanel.monitor.index, this._dtpPanel.monitor.index,
Proximity.Mode[Me.settings.get_string('trans-dynamic-behavior')], Proximity.Mode[SETTINGS.get_string('trans-dynamic-behavior')],
isVertical ? threshold : 0, isVertical ? threshold : 0,
isVertical ? 0 : threshold, isVertical ? 0 : threshold,
overlap => { overlap => {
@@ -147,11 +143,11 @@ var DynamicTransparency = class {
} }
_updateAlpha(themeBackground) { _updateAlpha(themeBackground) {
if (this._windowOverlap && !Main.overview.visibleTarget && Me.settings.get_boolean('trans-use-dynamic-opacity')) { if (this._windowOverlap && !Main.overview.visibleTarget && SETTINGS.get_boolean('trans-use-dynamic-opacity')) {
this.alpha = Me.settings.get_double('trans-dynamic-anim-target'); this.alpha = SETTINGS.get_double('trans-dynamic-anim-target');
} else { } else {
this.alpha = Me.settings.get_boolean('trans-use-custom-opacity') ? this.alpha = SETTINGS.get_boolean('trans-use-custom-opacity') ?
Me.settings.get_double('trans-panel-opacity') : SETTINGS.get_double('trans-panel-opacity') :
(themeBackground || this._getThemeBackground()).alpha * 0.003921569; // 1 / 255 = 0.003921569 (themeBackground || this._getThemeBackground()).alpha * 0.003921569; // 1 / 255 = 0.003921569
} }
} }

View File

@@ -11,23 +11,6 @@
<property name="margin-start">32</property> <property name="margin-start">32</property>
<property name="margin-end">32</property> <property name="margin-end">32</property>
<child>
<object class="AdwPreferencesGroup">
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes">Floating rounded theme</property>
<child>
<object class="GtkSwitch" id="intellihide_floating_rounded_theme_switch">
<property name="valign">center</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child> <child>
<object class="AdwPreferencesGroup"> <object class="AdwPreferencesGroup">
@@ -107,7 +90,7 @@
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Keyboard shortcut to reveal and hold the panel</property> <property name="title" translatable="yes">Keyboard shortcut to reveal and hold the panel</property>
<property name="subtitle" translatable="yes">Syntax: &lt;Shift&gt;, &lt;Ctrl&gt;, &lt;Alt&gt;, &lt;Super&gt;</property> <property name="subtitle" translatable="yes">Syntax: &amp;lt;Shift&amp;gt;, &amp;lt;Ctrl&amp;gt;, &amp;lt;Alt&amp;gt;, &amp;lt;Super&amp;gt;</property>
<child> <child>
<object class="GtkEntry" id="intellihide_toggle_entry"> <object class="GtkEntry" id="intellihide_toggle_entry">
<property name="valign">center</property> <property name="valign">center</property>

View File

@@ -50,7 +50,7 @@
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Shortcut to show the overlay for 2 seconds</property> <property name="title" translatable="yes">Shortcut to show the overlay for 2 seconds</property>
<property name="subtitle" translatable="yes">Syntax: &lt;Shift&gt;, &lt;Ctrl&gt;, &lt;Alt&gt;, &lt;Super&gt;</property> <property name="subtitle" translatable="yes">Syntax: &amp;lt;Shift&amp;gt;, &amp;lt;Ctrl&amp;gt;, &amp;lt;Alt&amp;gt;, &amp;lt;Super&amp;gt;</property>
<child> <child>
<object class="GtkEntry" id="shortcut_entry"> <object class="GtkEntry" id="shortcut_entry">
<property name="valign">center</property> <property name="valign">center</property>

View File

@@ -3,7 +3,7 @@
<requires lib="gtk" version="4.0"/> <requires lib="gtk" version="4.0"/>
<object class="AdwPreferencesPage" id="action"> <object class="AdwPreferencesPage" id="action">
<property name="title">Action</property> <property name="title" translatable="yes">Action</property>
<property name="icon_name">view-pin-symbolic</property> <property name="icon_name">view-pin-symbolic</property>
<!-- group click action --> <!-- group click action -->

View File

@@ -2,7 +2,7 @@
<interface> <interface>
<requires lib="gtk" version="4.0"/> <requires lib="gtk" version="4.0"/>
<object class="AdwPreferencesPage" id="behavior"> <object class="AdwPreferencesPage" id="behavior">
<property name="title">Behavior</property> <property name="title" translatable="yes">Behavior</property>
<property name="icon_name">preferences-system-symbolic</property> <property name="icon_name">preferences-system-symbolic</property>
<!-- group applications --> <!-- group applications -->
@@ -87,7 +87,7 @@
<!-- group hover --> <!-- group hover -->
<child> <child>
<object class="AdwPreferencesGroup" id="behavior_group_hover"> <object class="AdwPreferencesGroup" id="behavior_group_hover">
<property name="title">Hover</property> <property name="title" translatable="yes">Hover</property>
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">

View File

@@ -16,7 +16,7 @@
</object> </object>
<object class="AdwPreferencesPage" id="position"> <object class="AdwPreferencesPage" id="position">
<property name="title">Position</property> <property name="title" translatable="yes">Position</property>
<property name="icon_name">find-location-symbolic</property> <property name="icon_name">find-location-symbolic</property>
<!-- group panel --> <!-- group panel -->

View File

@@ -9,7 +9,7 @@
</object> </object>
<object class="AdwPreferencesPage" id="style"> <object class="AdwPreferencesPage" id="style">
<property name="title">Style</property> <property name="title" translatable="yes">Style</property>
<property name="icon_name">applications-graphics-symbolic</property> <property name="icon_name">applications-graphics-symbolic</property>
<!-- group panel intellihide --> <!-- group panel intellihide -->
@@ -50,6 +50,17 @@
<object class="AdwPreferencesGroup" id="style_group_dynamic_trans2"> <object class="AdwPreferencesGroup" id="style_group_dynamic_trans2">
<property name="title" translatable="yes">Panel style</property> <property name="title" translatable="yes">Panel style</property>
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes">Floating rounded theme</property>
<child>
<object class="GtkSwitch" id="floating_rounded_theme_switch">
<property name="valign">center</property>
</object>
</child>
</object>
</child>
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Override panel theme background opacity</property> <property name="title" translatable="yes">Override panel theme background opacity</property>

192
utils.js
View File

@@ -21,27 +21,24 @@
* Some code was also adapted from the upstream Gnome Shell source code. * Some code was also adapted from the upstream Gnome Shell source code.
*/ */
const Clutter = imports.gi.Clutter; import Clutter from 'gi://Clutter';
const GdkPixbuf = imports.gi.GdkPixbuf; import Cogl from 'gi://Cogl';
const Gi = imports._gi; import GdkPixbuf from 'gi://GdkPixbuf';
const Gio = imports.gi.Gio; import Gio from 'gi://Gio';
const GLib = imports.gi.GLib; import GLib from 'gi://GLib';
const Gtk = imports.gi.Gtk; import Graphene from 'gi://Graphene';
const Meta = imports.gi.Meta; import Meta from 'gi://Meta';
const Shell = imports.gi.Shell; import Shell from 'gi://Shell';
const St = imports.gi.St; import St from 'gi://St';
const Mainloop = imports.mainloop; import * as Util from 'resource:///org/gnome/shell/misc/util.js';
const Config = imports.misc.config; import * as Main from 'resource:///org/gnome/shell/ui/main.js';
const Util = imports.misc.util; import * as MessageTray from 'resource:///org/gnome/shell/ui/messageTray.js';
const Main = imports.ui.main;
const MessageTray = imports.ui.messageTray;
var TRANSLATION_DOMAIN = imports.misc.extensionUtils.getCurrentExtension().metadata['gettext-domain']; const SCROLL_TIME = Util.SCROLL_TIME / (Util.SCROLL_TIME > 1 ? 1000 : 1);
var SCROLL_TIME = Util.SCROLL_TIME / (Util.SCROLL_TIME > 1 ? 1000 : 1);
// simplify global signals and function injections handling // simplify global signals and function injections handling
// abstract class // abstract class
var BasicHandler = class { export const BasicHandler = class {
constructor() { constructor() {
this._storage = new Object(); this._storage = new Object();
@@ -101,7 +98,7 @@ var BasicHandler = class {
} }
// Manage global signals // Manage global signals
var GlobalSignalsHandler = class extends BasicHandler { export const GlobalSignalsHandler = class extends BasicHandler {
_create(item) { _create(item) {
let handlers = []; let handlers = [];
@@ -134,7 +131,7 @@ var GlobalSignalsHandler = class extends BasicHandler {
* Manage function injection: both instances and prototype can be overridden * Manage function injection: both instances and prototype can be overridden
* and restored * and restored
*/ */
var InjectionsHandler = class extends BasicHandler { export const InjectionsHandler = class extends BasicHandler {
_create(item) { _create(item) {
let object = item[0]; let object = item[0];
@@ -157,7 +154,7 @@ var InjectionsHandler = class extends BasicHandler {
/** /**
* Manage timeouts: the added timeouts have their id reset on completion * Manage timeouts: the added timeouts have their id reset on completion
*/ */
var TimeoutsHandler = class extends BasicHandler { export const TimeoutsHandler = class extends BasicHandler {
_create(item) { _create(item) {
let name = item[0]; let name = item[0];
@@ -166,9 +163,11 @@ var TimeoutsHandler = class extends BasicHandler {
this._remove(item); this._remove(item);
this[name] = Mainloop.timeout_add(delay, () => { this[name] = GLib.timeout_add(GLib.PRIORITY_DEFAULT, delay, () => {
this[name] = 0; this[name] = 0;
timeoutHandler(); timeoutHandler();
return GLib.SOURCE_REMOVE;
}); });
return [[name]]; return [[name]];
@@ -182,7 +181,7 @@ var TimeoutsHandler = class extends BasicHandler {
let name = item[0]; let name = item[0];
if (this[name]) { if (this[name]) {
Mainloop.source_remove(this[name]); GLib.Source.remove(this[name]);
this[name] = 0; this[name] = 0;
} }
} }
@@ -194,7 +193,7 @@ var TimeoutsHandler = class extends BasicHandler {
// This is wrapper to maintain compatibility with GNOME-Shell 3.30+ as well as // This is wrapper to maintain compatibility with GNOME-Shell 3.30+ as well as
// previous versions. // previous versions.
var DisplayWrapper = { export const DisplayWrapper = {
getScreen() { getScreen() {
return global.screen || global.display; return global.screen || global.display;
}, },
@@ -209,7 +208,7 @@ var DisplayWrapper = {
}; };
let unredirectEnabled = true let unredirectEnabled = true
var setDisplayUnredirect = (enable) => { export const setDisplayUnredirect = (enable) => {
if (enable && !unredirectEnabled) if (enable && !unredirectEnabled)
Meta.enable_unredirect_for_display(global.display); Meta.enable_unredirect_for_display(global.display);
else if (!enable && unredirectEnabled) else if (!enable && unredirectEnabled)
@@ -218,40 +217,34 @@ var setDisplayUnredirect = (enable) => {
unredirectEnabled = enable; unredirectEnabled = enable;
}; };
var getSystemMenuInfo = function() { export const getSystemMenuInfo = function() {
if (Config.PACKAGE_VERSION < '43')
return {
name: 'aggregateMenu',
constructor: imports.ui.panel.AggregateMenu
};
return { return {
name: 'quickSettings', name: 'quickSettings',
constructor: imports.ui.panel.QuickSettings constructor: Main.panel.statusArea.quickSettings.constructor
}; };
} }
var getCurrentWorkspace = function() { export const getCurrentWorkspace = function() {
return DisplayWrapper.getWorkspaceManager().get_active_workspace(); return DisplayWrapper.getWorkspaceManager().get_active_workspace();
}; };
var getWorkspaceByIndex = function(index) { export const getWorkspaceByIndex = function(index) {
return DisplayWrapper.getWorkspaceManager().get_workspace_by_index(index); return DisplayWrapper.getWorkspaceManager().get_workspace_by_index(index);
}; };
var getWorkspaceCount = function() { export const getWorkspaceCount = function() {
return DisplayWrapper.getWorkspaceManager().n_workspaces; return DisplayWrapper.getWorkspaceManager().n_workspaces;
}; };
var getStageTheme = function() { export const getStageTheme = function() {
return St.ThemeContext.get_for_stage(global.stage); return St.ThemeContext.get_for_stage(global.stage);
}; };
var getScaleFactor = function() { export const getScaleFactor = function() {
return getStageTheme().scale_factor || 1; return getStageTheme().scale_factor || 1;
}; };
var findIndex = function(array, predicate) { export const findIndex = function(array, predicate) {
if (array) { if (array) {
if (Array.prototype.findIndex) { if (Array.prototype.findIndex) {
return array.findIndex(predicate); return array.findIndex(predicate);
@@ -267,7 +260,7 @@ var findIndex = function(array, predicate) {
return -1; return -1;
}; };
var find = function(array, predicate) { export const find = function(array, predicate) {
let index = findIndex(array, predicate); let index = findIndex(array, predicate);
if (index > -1) { if (index > -1) {
@@ -275,8 +268,8 @@ var find = function(array, predicate) {
} }
}; };
var mergeObjects = function(main, bck) { export const mergeObjects = function(main, bck) {
for (var prop in bck) { for (const prop in bck) {
if (!main.hasOwnProperty(prop) && bck.hasOwnProperty(prop)) { if (!main.hasOwnProperty(prop) && bck.hasOwnProperty(prop)) {
main[prop] = bck[prop]; main[prop] = bck[prop];
} }
@@ -285,24 +278,14 @@ var mergeObjects = function(main, bck) {
return main; return main;
}; };
var hookVfunc = function(proto, symbol, func) { export const getTrackedActorData = (actor) => {
if (!func) return
if (Gi.gobject_prototype_symbol && proto[Gi.gobject_prototype_symbol]) {
proto[Gi.gobject_prototype_symbol][Gi.hook_up_vfunc_symbol] (symbol, func);
} else {
proto[Gi.hook_up_vfunc_symbol] (symbol, func);
}
};
var getTrackedActorData = (actor) => {
let trackedIndex = Main.layoutManager._findActor(actor); let trackedIndex = Main.layoutManager._findActor(actor);
if (trackedIndex >= 0) if (trackedIndex >= 0)
return Main.layoutManager._trackedActors[trackedIndex] return Main.layoutManager._trackedActors[trackedIndex]
} }
var getTransformedAllocation = function(actor) { export const getTransformedAllocation = function(actor) {
let extents = actor.get_transformed_extents(); let extents = actor.get_transformed_extents();
let topLeft = extents.get_top_left(); let topLeft = extents.get_top_left();
let bottomRight = extents.get_bottom_right(); let bottomRight = extents.get_bottom_right();
@@ -310,13 +293,13 @@ var getTransformedAllocation = function(actor) {
return { x1: topLeft.x, x2: bottomRight.x, y1: topLeft.y, y2: bottomRight.y }; return { x1: topLeft.x, x2: bottomRight.x, y1: topLeft.y, y2: bottomRight.y };
}; };
var setClip = function(actor, x, y, width, height) { export const setClip = function(actor, x, y, width, height) {
actor.set_clip(0, 0, width, height); actor.set_clip(0, 0, width, height);
actor.set_position(x, y); actor.set_position(x, y);
actor.set_size(width, height); actor.set_size(width, height);
}; };
var addKeybinding = function(key, settings, handler, modes) { export const addKeybinding = function(key, settings, handler, modes) {
if (!Main.wm._allowedKeybindings[key]) { if (!Main.wm._allowedKeybindings[key]) {
Main.wm.addKeybinding( Main.wm.addKeybinding(
key, key,
@@ -328,19 +311,19 @@ var addKeybinding = function(key, settings, handler, modes) {
} }
}; };
var removeKeybinding = function(key) { export const removeKeybinding = function(key) {
if (Main.wm._allowedKeybindings[key]) { if (Main.wm._allowedKeybindings[key]) {
Main.wm.removeKeybinding(key); Main.wm.removeKeybinding(key);
} }
}; };
var getrgbColor = function(color) { export const getrgbColor = function(color) {
color = typeof color === 'string' ? Clutter.color_from_string(color)[1] : color; color = typeof color === 'string' ? ColorUtils.color_from_string(color)[1] : color;
return { red: color.red, green: color.green, blue: color.blue }; return { red: color.red, green: color.green, blue: color.blue };
}; };
var getrgbaColor = function(color, alpha, offset) { export const getrgbaColor = function(color, alpha, offset) {
if (alpha <= 0) { if (alpha <= 0) {
return 'transparent; '; return 'transparent; ';
} }
@@ -360,14 +343,14 @@ var getrgbaColor = function(color, alpha, offset) {
return 'rgba(' + rgb.red + ',' + rgb.green + ',' + rgb.blue + ',' + (Math.floor(alpha * 100) * 0.01) + '); ' ; return 'rgba(' + rgb.red + ',' + rgb.green + ',' + rgb.blue + ',' + (Math.floor(alpha * 100) * 0.01) + '); ' ;
}; };
var checkIfColorIsBright = function(color) { export const checkIfColorIsBright = function(color) {
let rgb = getrgbColor(color); let rgb = getrgbColor(color);
let brightness = 0.2126 * rgb.red + 0.7152 * rgb.green + 0.0722 * rgb.blue; let brightness = 0.2126 * rgb.red + 0.7152 * rgb.green + 0.0722 * rgb.blue;
return brightness > 128; return brightness > 128;
}; };
var getMouseScrollDirection = function(event) { export const getMouseScrollDirection = function(event) {
let direction; let direction;
switch (event.get_scroll_direction()) { switch (event.get_scroll_direction()) {
@@ -384,7 +367,7 @@ var getMouseScrollDirection = function(event) {
return direction; return direction;
}; };
var checkIfWindowHasTransient = function(window) { export const checkIfWindowHasTransient = function(window) {
let hasTransient; let hasTransient;
window.foreach_transient(t => !(hasTransient = true)); window.foreach_transient(t => !(hasTransient = true));
@@ -392,7 +375,7 @@ var checkIfWindowHasTransient = function(window) {
return hasTransient; return hasTransient;
}; };
var activateSiblingWindow = function(windows, direction, startWindow) { export const activateSiblingWindow = function(windows, direction, startWindow) {
let windowIndex = windows.indexOf(global.display.focus_window); let windowIndex = windows.indexOf(global.display.focus_window);
let nextWindowIndex = windowIndex < 0 ? let nextWindowIndex = windowIndex < 0 ?
startWindow ? windows.indexOf(startWindow) : 0 : startWindow ? windows.indexOf(startWindow) : 0 :
@@ -409,7 +392,7 @@ var activateSiblingWindow = function(windows, direction, startWindow) {
} }
}; };
var animateWindowOpacity = function(window, tweenOpts) { export const animateWindowOpacity = function(window, tweenOpts) {
//there currently is a mutter bug with the windowactor opacity, starting with 3.34 //there currently is a mutter bug with the windowactor opacity, starting with 3.34
//https://gitlab.gnome.org/GNOME/mutter/issues/836 //https://gitlab.gnome.org/GNOME/mutter/issues/836
@@ -438,7 +421,7 @@ var animateWindowOpacity = function(window, tweenOpts) {
animate(window, tweenOpts); animate(window, tweenOpts);
}; };
var animate = function(actor, options) { export const animate = function(actor, options) {
//the original animations used Tweener instead of Clutter animations, so we //the original animations used Tweener instead of Clutter animations, so we
//use "time" and "delay" properties defined in seconds, as opposed to Clutter //use "time" and "delay" properties defined in seconds, as opposed to Clutter
//animations "duration" and "delay" which are defined in milliseconds //animations "duration" and "delay" which are defined in milliseconds
@@ -471,15 +454,15 @@ var animate = function(actor, options) {
actor.ease.apply(actor, params); actor.ease.apply(actor, params);
} }
var isAnimating = function(actor, prop) { export const isAnimating = function(actor, prop) {
return !!actor.get_transition(prop); return !!actor.get_transition(prop);
} }
var stopAnimations = function(actor) { export const stopAnimations = function(actor) {
actor.remove_all_transitions(); actor.remove_all_transitions();
} }
var getIndicators = function(delegate) { export const getIndicators = function(delegate) {
if (delegate instanceof St.BoxLayout) { if (delegate instanceof St.BoxLayout) {
return delegate; return delegate;
} }
@@ -487,11 +470,11 @@ var getIndicators = function(delegate) {
return delegate.indicators; return delegate.indicators;
} }
var getPoint = function(coords) { export const getPoint = function(coords) {
return new imports.gi.Graphene.Point(coords); return new Graphene.Point(coords);
} }
var notify = function(text, iconName, action, isTransient) { export const notify = function(text, iconName, action, isTransient) {
let source = new MessageTray.SystemNotificationSource(); let source = new MessageTray.SystemNotificationSource();
let notification = new MessageTray.Notification(source, 'Dash to Panel', text); let notification = new MessageTray.Notification(source, 'Dash to Panel', text);
let notifyFunc = source.showNotification || source.notify; let notifyFunc = source.showNotification || source.notify;
@@ -522,9 +505,9 @@ var notify = function(text, iconName, action, isTransient) {
* it would be clamp to the current one in any case. * it would be clamp to the current one in any case.
* Return the amount of shift applied * Return the amount of shift applied
*/ */
var ensureActorVisibleInScrollView = function(scrollView, actor, fadeSize, onComplete) { export const ensureActorVisibleInScrollView = function(scrollView, actor, fadeSize, onComplete) {
let vadjustment = scrollView.vscroll.adjustment; const vadjustment = scrollView.vadjustment;
let hadjustment = scrollView.hscroll.adjustment; const hadjustment = scrollView.hadjustment;
let [vvalue, vlower, vupper, vstepIncrement, vpageIncrement, vpageSize] = vadjustment.get_values(); let [vvalue, vlower, vupper, vstepIncrement, vpageIncrement, vpageSize] = vadjustment.get_values();
let [hvalue, hlower, hupper, hstepIncrement, hpageIncrement, hpageSize] = hadjustment.get_values(); let [hvalue, hlower, hupper, hstepIncrement, hpageIncrement, hpageSize] = hadjustment.get_values();
@@ -579,7 +562,12 @@ var ensureActorVisibleInScrollView = function(scrollView, actor, fadeSize, onCom
/** /**
* ColorUtils is adapted from https://github.com/micheleg/dash-to-dock * ColorUtils is adapted from https://github.com/micheleg/dash-to-dock
*/ */
var ColorUtils = { let colorNs = Clutter.Color ? Clutter : Cogl
export const ColorUtils = {
color_from_string: colorNs.color_from_string,
Color: colorNs.Color,
colorLuminance(r, g, b, dlum) { colorLuminance(r, g, b, dlum) {
// Darken or brighten color by a fraction dlum // Darken or brighten color by a fraction dlum
// Each rgb value is modified by the same fraction. // Each rgb value is modified by the same fraction.
@@ -690,7 +678,7 @@ const MAX_CACHED_ITEMS = 1000;
const BATCH_SIZE_TO_DELETE = 50; const BATCH_SIZE_TO_DELETE = 50;
const DOMINANT_COLOR_ICON_SIZE = 64; const DOMINANT_COLOR_ICON_SIZE = 64;
var DominantColorExtractor = class { export const DominantColorExtractor = class {
constructor(app){ constructor(app){
this._app = app; this._app = app;
@@ -701,14 +689,9 @@ var DominantColorExtractor = class {
*/ */
_getIconPixBuf() { _getIconPixBuf() {
let iconTexture = this._app.create_icon_texture(16); let iconTexture = this._app.create_icon_texture(16);
let isGtk3 = !!Gtk.IconTheme.prototype.set_custom_theme;
if (themeLoader === null) { if (themeLoader === null) {
let ifaceSettings = new Gio.Settings({ schema: "org.gnome.desktop.interface" }); themeLoader = new St.IconTheme();
let themeFunc = isGtk3 ? 'set_custom_theme' : 'set_theme_name';
themeLoader = new Gtk.IconTheme(),
themeLoader[themeFunc](ifaceSettings.get_string('icon-theme')); // Make sure the correct theme is loaded
} }
// Unable to load the icon texture, use fallback // Unable to load the icon texture, use fallback
@@ -730,19 +713,11 @@ var DominantColorExtractor = class {
// Get the pixel buffer from the icon theme // Get the pixel buffer from the icon theme
if (iconTexture instanceof Gio.ThemedIcon) { if (iconTexture instanceof Gio.ThemedIcon) {
let params = [iconTexture.get_names()[0], DOMINANT_COLOR_ICON_SIZE, 0]; let icon_info = themeLoader.lookup_icon(iconTexture.get_names()[0],
DOMINANT_COLOR_ICON_SIZE, 0);
if (!isGtk3) {
params.splice(1, 0, null);
params.splice(3, 1, 1, 1, 1);
}
let icon_info = themeLoader.lookup_icon.apply(themeLoader, params);
if (icon_info !== null) { if (icon_info !== null) {
if (isGtk3) return icon_info.load_icon(); return icon_info.load_icon();
return GdkPixbuf.Pixbuf.new_from_file(icon_info.get_file().get_path());
} }
} }
@@ -880,7 +855,7 @@ var DominantColorExtractor = class {
}; };
var drawRoundedLine = function(cr, x, y, width, height, isRoundLeft, isRoundRight, stroke, fill) { export const drawRoundedLine = function(cr, x, y, width, height, isRoundLeft, isRoundRight, stroke, fill) {
if (height > width) { if (height > width) {
y += Math.floor((height - width) / 2.0); y += Math.floor((height - width) / 2.0);
height = width; height = width;
@@ -888,8 +863,8 @@ var drawRoundedLine = function(cr, x, y, width, height, isRoundLeft, isRoundRigh
height = 2.0 * Math.floor(height / 2.0); height = 2.0 * Math.floor(height / 2.0);
var leftRadius = isRoundLeft ? height / 2.0 : 0.0; const leftRadius = isRoundLeft ? height / 2.0 : 0.0;
var rightRadius = isRoundRight ? height / 2.0 : 0.0; const rightRadius = isRoundRight ? height / 2.0 : 0.0;
cr.moveTo(x + width - rightRadius, y); cr.moveTo(x + width - rightRadius, y);
cr.lineTo(x + leftRadius, y); cr.lineTo(x + leftRadius, y);
@@ -912,28 +887,3 @@ var drawRoundedLine = function(cr, x, y, width, height, isRoundLeft, isRoundRigh
cr.setSource(stroke); cr.setSource(stroke);
cr.stroke(); cr.stroke();
} }
/**
* Check if an app exists in the system.
*/
var checkedCommandsMap = new Map();
function checkIfCommandExists(app) {
let answer = checkedCommandsMap.get(app);
if (answer === undefined) {
// Command is a shell built in, use shell to call it.
// Quotes around app value are important. They let command operate
// on the whole value, instead of having shell interpret it.
let cmd = "sh -c 'command -v \"" + app + "\"'";
try {
let out = GLib.spawn_command_line_sync(cmd);
// out contains 1: stdout, 2: stderr, 3: exit code
answer = out[3] == 0;
} catch (ex) {
answer = false;
}
checkedCommandsMap.set(app, answer);
}
return answer;
}

View File

@@ -18,24 +18,19 @@
* This file is based on code from the Dash to Panel extension * This file is based on code from the Dash to Panel extension
*/ */
const GObject = imports.gi.GObject; import GObject from 'gi://GObject';
const Clutter = imports.gi.Clutter; import Clutter from 'gi://Clutter';
const GLib = imports.gi.GLib; import GLib from 'gi://GLib';
const Graphene = imports.gi.Graphene; import Graphene from 'gi://Graphene';
const Gtk = imports.gi.Gtk; import * as Main from 'resource:///org/gnome/shell/ui/main.js';
const Main = imports.ui.main; import Meta from 'gi://Meta';
const Mainloop = imports.mainloop; import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
const Meta = imports.gi.Meta; import St from 'gi://St';
const PopupMenu = imports.ui.popupMenu;
const Signals = imports.signals;
const St = imports.gi.St;
const WindowManager = imports.ui.windowManager;
const Workspace = imports.ui.workspace;
const Me = imports.misc.extensionUtils.getCurrentExtension(); import * as Taskbar from './taskbar.js';
const Panel = Me.imports.panel; import * as Utils from './utils.js';
const Taskbar = Me.imports.taskbar; import {SETTINGS} from './extension.js';
const Utils = Me.imports.utils; import {gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
//timeout intervals //timeout intervals
const ENSURE_VISIBLE_MS = 200; const ENSURE_VISIBLE_MS = 200;
@@ -74,7 +69,7 @@ let scaleFactor = 1;
let animationTime = 0; let animationTime = 0;
let aspectRatio = {}; let aspectRatio = {};
var PreviewMenu = GObject.registerClass({ export const PreviewMenu = GObject.registerClass({
Signals: { 'open-state-changed': {} } Signals: { 'open-state-changed': {} }
}, class PreviewMenu extends St.Widget { }, class PreviewMenu extends St.Widget {
@@ -108,13 +103,13 @@ var PreviewMenu = GObject.registerClass({
this._box = new St.BoxLayout({ vertical: this.isVertical }); this._box = new St.BoxLayout({ vertical: this.isVertical });
this._scrollView = new St.ScrollView({ this._scrollView = new St.ScrollView({
name: 'zorintaskbarPreviewScrollview', name: 'zorintaskbarPreviewScrollview',
hscrollbar_policy: Gtk.PolicyType.NEVER, hscrollbar_policy: St.PolicyType.NEVER,
vscrollbar_policy: Gtk.PolicyType.NEVER, vscrollbar_policy: St.PolicyType.NEVER,
enable_mouse_scrolling: true, enable_mouse_scrolling: true,
y_expand: !this.isVertical y_expand: !this.isVertical
}); });
this._scrollView.add_actor(this._box); this._scrollView.add_child(this._box);
this.menu.add_child(this._scrollView); this.menu.add_child(this._scrollView);
this.add_child(this.menu); this.add_child(this.menu);
} }
@@ -157,7 +152,7 @@ var PreviewMenu = GObject.registerClass({
} }
], ],
[ [
Me.settings, SETTINGS,
[ [
'changed::panel-sizes', 'changed::panel-sizes',
'changed::window-preview-size' 'changed::window-preview-size'
@@ -275,7 +270,7 @@ var PreviewMenu = GObject.registerClass({
requestPeek(window) { requestPeek(window) {
this._timeoutsHandler.remove(T3); this._timeoutsHandler.remove(T3);
if (Me.settings.get_boolean('peek-mode')) { if (SETTINGS.get_boolean('peek-mode')) {
if (this.peekInitialWorkspaceIndex < 0) { if (this.peekInitialWorkspaceIndex < 0) {
this._timeoutsHandler.add([T3, ENTER_PEEK_MODE_TIMEOUT, () => this._peek(window)]); this._timeoutsHandler.add([T3, ENTER_PEEK_MODE_TIMEOUT, () => this._peek(window)]);
} else { } else {
@@ -448,7 +443,7 @@ var PreviewMenu = GObject.registerClass({
let x, y, w; let x, y, w;
let geom = this.panel.getGeometry(); let geom = this.panel.getGeometry();
let panelBoxTheme = this.panel.panelBox.get_theme_node(); let panelBoxTheme = this.panel.panelBox.get_theme_node();
let previewSize = (Me.settings.get_int('window-preview-size') + let previewSize = (SETTINGS.get_int('window-preview-size') +
WINDOW_PREVIEW_PADDING * 2) * scaleFactor; WINDOW_PREVIEW_PADDING * 2) * scaleFactor;
if (this.isVertical) { if (this.isVertical) {
@@ -526,7 +521,7 @@ var PreviewMenu = GObject.registerClass({
} }
_getScrollAdjustmentValues() { _getScrollAdjustmentValues() {
let [value , , upper, , , pageSize] = this._scrollView[(this.isVertical ? 'v' : 'h') + 'scroll'].adjustment.get_values(); let [value , , upper, , , pageSize] = this._scrollView[(this.isVertical ? 'v' : 'h') + 'adjustment'].get_values();
return [value, upper, pageSize]; return [value, upper, pageSize];
} }
@@ -717,7 +712,7 @@ var PreviewMenu = GObject.registerClass({
} }
}); });
var Preview = GObject.registerClass({ export const Preview = GObject.registerClass({
}, class Preview extends St.Widget { }, class Preview extends St.Widget {
_init(previewMenu) { _init(previewMenu) {
@@ -741,7 +736,7 @@ var Preview = GObject.registerClass({
let [previewBinWidth, previewBinHeight] = this._getBinSize(); let [previewBinWidth, previewBinHeight] = this._getBinSize();
let closeButton = new St.Button({ style_class: 'window-close', accessible_name: 'Close window' }); let closeButton = new St.Button({ style_class: 'window-close', accessible_name: 'Close window' });
closeButton.add_actor(new St.Icon({ icon_name: 'window-close-symbolic' })); closeButton.add_child(new St.Icon({ icon_name: 'window-close-symbolic' }));
this._closeButtonBin = new St.Widget({ this._closeButtonBin = new St.Widget({
style_class: 'preview-close-btn-container', style_class: 'preview-close-btn-container',
@@ -827,12 +822,14 @@ var Preview = GObject.registerClass({
this._addClone(cloneBin, animateSize); this._addClone(cloneBin, animateSize);
this._previewMenu.updatePosition(); this._previewMenu.updatePosition();
} else if (!this._waitWindowId) { } else if (!this._waitWindowId) {
this._waitWindowId = Mainloop.idle_add(() => { this._waitWindowId = GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, () => {
this._waitWindowId = 0; this._waitWindowId = 0;
if (this._previewMenu.opened) { if (this._previewMenu.opened) {
_assignWindowClone(); _assignWindowClone();
} }
return GLib.SOURCE_REMOVE;
}); });
} }
}; };
@@ -900,7 +897,7 @@ var Preview = GObject.registerClass({
this._hideOrShowCloseButton(true); this._hideOrShowCloseButton(true);
this.reactive = false; this.reactive = false;
if (!Me.settings.get_boolean('group-apps')) { if (!SETTINGS.get_boolean('group-apps')) {
this._previewMenu.close(); this._previewMenu.close();
} else { } else {
this._previewMenu.endPeekHere(); this._previewMenu.endPeekHere();
@@ -915,7 +912,7 @@ var Preview = GObject.registerClass({
this.activate(); this.activate();
break; break;
case 2: // Middle click case 2: // Middle click
if (Me.settings.get_boolean('preview-middle-click-close')) { if (SETTINGS.get_boolean('preview-middle-click-close')) {
this._onCloseBtnClick(); this._onCloseBtnClick();
} }
break; break;
@@ -1090,7 +1087,7 @@ var Preview = GObject.registerClass({
} }
_getPreviewDimensions() { _getPreviewDimensions() {
let size = Me.settings.get_int('window-preview-size') * scaleFactor; let size = SETTINGS.get_int('window-preview-size') * scaleFactor;
let w, h; let w, h;
if (this._previewMenu.isVertical) { if (this._previewMenu.isVertical) {
@@ -1105,7 +1102,7 @@ var Preview = GObject.registerClass({
} }
}); });
var WindowCloneLayout = GObject.registerClass({ export const WindowCloneLayout = GObject.registerClass({
}, class WindowCloneLayout extends Clutter.BinLayout { }, class WindowCloneLayout extends Clutter.BinLayout {
_init(frameRect, bufferRect) { _init(frameRect, bufferRect) {
@@ -1133,11 +1130,11 @@ var WindowCloneLayout = GObject.registerClass({
} }
}); });
function setStyle(actor, style) { export function setStyle(actor, style) {
actor.set_style(style); actor.set_style(style);
} }
function getTweenOpts(opts) { export function getTweenOpts(opts) {
let defaults = { let defaults = {
time: animationTime, time: animationTime,
transition: 'easeInOutQuad' transition: 'easeInOutQuad'