Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7cf25a3bc0 | |||
| fdad0263ec | |||
| c5181cda46 | |||
| 56f6eccc82 | |||
| 6a74326a61 | |||
| 48d4956ee0 | |||
| 0ab46d5c70 | |||
| cd7d9aa2a4 | |||
| ea3d27c311 | |||
| 6c050118f4 | |||
| dfb942f6fe | |||
| 262efe3c9e | |||
| d1d099fbbf | |||
| 45da997dd3 | |||
| d91c949068 | |||
| 5a028aab52 | |||
| c49758f1c5 | |||
| 5ca52e89d5 | |||
| dd26111c04 | |||
| f40e7109e5 | |||
| 5cb3e1877a | |||
| a78a16b4a7 | |||
| a6307d48c0 | |||
| f9d95b9408 | |||
| fb3df46a25 | |||
| d2a7a95628 |
@@ -1,3 +1,25 @@
|
|||||||
|
3.5.91
|
||||||
|
======
|
||||||
|
* various crashers were fixed in alternative-tab
|
||||||
|
* auto-move-windows now can be made to work with static workspaces
|
||||||
|
* place-menu is now on the left and uses symbolic icons like Files
|
||||||
|
* StIconType usage was removed from all extensions, after it was
|
||||||
|
removed in core
|
||||||
|
* systemMonitor, xrandr-indicator, apps-menu, places-menu,
|
||||||
|
alternative-status-menu were updated for the newer shell
|
||||||
|
* updated translations (es, gl, it, pl, sl)
|
||||||
|
|
||||||
|
3.5.90
|
||||||
|
======
|
||||||
|
* alternate-tab has been reworked again, the old mode switch
|
||||||
|
was removed and the all&thumbnails code extended to handle
|
||||||
|
icons and filtering to the workspace
|
||||||
|
* alternate-tab thumbnails now reflect the aspect ratio of the windows
|
||||||
|
* systemMonitor now shows a tooltip above the indicator
|
||||||
|
* native-window-placement, systemMonitor and windowsNavigator have been updated
|
||||||
|
for the newer shell
|
||||||
|
* updated translations (es, pa)
|
||||||
|
|
||||||
3.5.5
|
3.5.5
|
||||||
=====
|
=====
|
||||||
* convenience module has been relicensed to BSD,
|
* convenience module has been relicensed to BSD,
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
AC_PREREQ(2.63)
|
AC_PREREQ(2.63)
|
||||||
AC_INIT([gnome-shell-extensions],[3.5.5],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&component=extensions])
|
AC_INIT([gnome-shell-extensions],[3.5.91],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&component=extensions])
|
||||||
|
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
AC_CONFIG_AUX_DIR([config])
|
AC_CONFIG_AUX_DIR([config])
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
EXTENSION_ID = alternate-tab
|
EXTENSION_ID = alternate-tab
|
||||||
|
|
||||||
EXTRA_MODULES = allThumbnails.js workspaceIcons.js prefs.js
|
EXTRA_MODULES = prefs.js
|
||||||
|
|
||||||
include ../../extension.mk
|
include ../../extension.mk
|
||||||
include ../../settings.mk
|
include ../../settings.mk
|
||||||
|
|||||||
@@ -1,353 +0,0 @@
|
|||||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
||||||
|
|
||||||
const Clutter = imports.gi.Clutter;
|
|
||||||
const Gdk = imports.gi.Gdk;
|
|
||||||
const Gio = imports.gi.Gio;
|
|
||||||
const Gtk = imports.gi.Gtk;
|
|
||||||
const Lang = imports.lang;
|
|
||||||
const Mainloop = imports.mainloop;
|
|
||||||
const Meta = imports.gi.Meta;
|
|
||||||
const Shell = imports.gi.Shell;
|
|
||||||
const St = imports.gi.St;
|
|
||||||
|
|
||||||
const AltTab = imports.ui.altTab;
|
|
||||||
const Main = imports.ui.main;
|
|
||||||
const ModalDialog = imports.ui.modalDialog;
|
|
||||||
const Tweener = imports.ui.tweener;
|
|
||||||
const WindowManager = imports.ui.windowManager;
|
|
||||||
|
|
||||||
const Gettext = imports.gettext.domain('gnome-shell-extensions');
|
|
||||||
const _ = Gettext.gettext;
|
|
||||||
const N_ = function(e) { return e };
|
|
||||||
|
|
||||||
const SETTINGS_SHOW_APP_ICON_KEY = 'show-app-icon';
|
|
||||||
|
|
||||||
function mod(a, b) {
|
|
||||||
return ((a+b) % b);
|
|
||||||
}
|
|
||||||
|
|
||||||
const AltTabPopupAllThumbnails = new Lang.Class({
|
|
||||||
Name: 'AlternateTab.AltTabPopup.AllThumbnails',
|
|
||||||
|
|
||||||
_init : function(settings) {
|
|
||||||
this._settings = settings;
|
|
||||||
|
|
||||||
this.actor = new Shell.GenericContainer({ name: 'altTabPopup',
|
|
||||||
reactive: true });
|
|
||||||
|
|
||||||
this.actor.connect('get-preferred-width', Lang.bind(this, this._getPreferredWidth));
|
|
||||||
this.actor.connect('get-preferred-height', Lang.bind(this, this._getPreferredHeight));
|
|
||||||
this.actor.connect('allocate', Lang.bind(this, this._allocate));
|
|
||||||
|
|
||||||
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
|
|
||||||
|
|
||||||
this._haveModal = false;
|
|
||||||
|
|
||||||
this._currentWindow = 0;
|
|
||||||
this._motionTimeoutId = 0;
|
|
||||||
|
|
||||||
// Initially disable hover so we ignore the enter-event if
|
|
||||||
// the switcher appears underneath the current pointer location
|
|
||||||
this._disableHover();
|
|
||||||
|
|
||||||
Main.uiGroup.add_actor(this.actor);
|
|
||||||
},
|
|
||||||
|
|
||||||
_getPreferredWidth: function (actor, forHeight, alloc) {
|
|
||||||
alloc.min_size = global.screen_width;
|
|
||||||
alloc.natural_size = global.screen_width;
|
|
||||||
},
|
|
||||||
|
|
||||||
_getPreferredHeight: function (actor, forWidth, alloc) {
|
|
||||||
alloc.min_size = global.screen_height;
|
|
||||||
alloc.natural_size = global.screen_height;
|
|
||||||
},
|
|
||||||
|
|
||||||
_allocate: function (actor, box, flags) {
|
|
||||||
let childBox = new Clutter.ActorBox();
|
|
||||||
let primary = Main.layoutManager.primaryMonitor;
|
|
||||||
|
|
||||||
let leftPadding = this.actor.get_theme_node().get_padding(St.Side.LEFT);
|
|
||||||
let rightPadding = this.actor.get_theme_node().get_padding(St.Side.RIGHT);
|
|
||||||
let bottomPadding = this.actor.get_theme_node().get_padding(St.Side.BOTTOM);
|
|
||||||
let vPadding = this.actor.get_theme_node().get_vertical_padding();
|
|
||||||
let hPadding = leftPadding + rightPadding;
|
|
||||||
|
|
||||||
// Allocate the appSwitcher
|
|
||||||
// We select a size based on an icon size that does not overflow the screen
|
|
||||||
let [childMinHeight, childNaturalHeight] = this._appSwitcher.actor.get_preferred_height(primary.width - hPadding);
|
|
||||||
let [childMinWidth, childNaturalWidth] = this._appSwitcher.actor.get_preferred_width(childNaturalHeight);
|
|
||||||
childBox.x1 = Math.max(primary.x + leftPadding, primary.x + Math.floor((primary.width - childNaturalWidth) / 2));
|
|
||||||
childBox.x2 = Math.min(primary.x + primary.width - rightPadding, childBox.x1 + childNaturalWidth);
|
|
||||||
childBox.y1 = primary.y + Math.floor((primary.height - childNaturalHeight) / 2);
|
|
||||||
childBox.y2 = childBox.y1 + childNaturalHeight;
|
|
||||||
this._appSwitcher.actor.allocate(childBox, flags);
|
|
||||||
},
|
|
||||||
|
|
||||||
show : function(backward, binding, mask) {
|
|
||||||
// This is roughly what meta_display_get_tab_list does, except
|
|
||||||
// that it doesn't filter on workspace
|
|
||||||
// See in particular src/core/window-private.h for the filters
|
|
||||||
let windows = global.get_window_actors().map(function(actor) {
|
|
||||||
return actor.meta_window;
|
|
||||||
}).filter(function(win) {
|
|
||||||
return !win.is_override_redirect() &&
|
|
||||||
win.get_window_type() != Meta.WindowType.DESKTOP &&
|
|
||||||
win.get_window_type() != Meta.WindowType.DOCK;
|
|
||||||
}).sort(function(one, two) {
|
|
||||||
return two.get_user_time() - one.get_user_time();
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!windows.length) {
|
|
||||||
this.destroy();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Main.pushModal(this.actor)) {
|
|
||||||
// Probably someone else has a pointer grab, try again with keyboard only
|
|
||||||
if (!Main.pushModal(this.actor, global.get_current_time(), Meta.ModalOptions.POINTER_ALREADY_GRABBED)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this._haveModal = true;
|
|
||||||
this._modifierMask = AltTab.primaryModifier(mask);
|
|
||||||
|
|
||||||
this.actor.connect('key-press-event', Lang.bind(this, this._keyPressEvent));
|
|
||||||
this.actor.connect('key-release-event', Lang.bind(this, this._keyReleaseEvent));
|
|
||||||
|
|
||||||
this.actor.connect('button-press-event', Lang.bind(this, this._clickedOutside));
|
|
||||||
this.actor.connect('scroll-event', Lang.bind(this, this._onScroll));
|
|
||||||
|
|
||||||
this._appSwitcher = new WindowList(windows, this._settings);
|
|
||||||
this.actor.add_actor(this._appSwitcher.actor);
|
|
||||||
this._appSwitcher.connect('item-activated', Lang.bind(this, this._windowActivated));
|
|
||||||
this._appSwitcher.connect('item-entered', Lang.bind(this, this._windowEntered));
|
|
||||||
|
|
||||||
// make the initial selection
|
|
||||||
if (backward)
|
|
||||||
this._select(windows.length - 1);
|
|
||||||
else
|
|
||||||
this._select(1);
|
|
||||||
|
|
||||||
this.actor.opacity = 0;
|
|
||||||
this.actor.show();
|
|
||||||
|
|
||||||
// There's a race condition; if the user released Alt before
|
|
||||||
// we got the grab, then we won't be notified. (See
|
|
||||||
// https://bugzilla.gnome.org/show_bug.cgi?id=596695 for
|
|
||||||
// details.) So we check now. (Have to do this after updating
|
|
||||||
// selection.)
|
|
||||||
let [x, y, mods] = global.get_pointer();
|
|
||||||
if (!(mods & this._modifierMask)) {
|
|
||||||
this._finish();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// We delay showing the popup so that fast Alt+Tab users aren't
|
|
||||||
// disturbed by the popup briefly flashing.
|
|
||||||
this._initialDelayTimeoutId = Mainloop.timeout_add(AltTab.POPUP_DELAY_TIMEOUT,
|
|
||||||
Lang.bind(this, function () {
|
|
||||||
this.actor.opacity = 255;
|
|
||||||
this._initialDelayTimeoutId = 0;
|
|
||||||
}));
|
|
||||||
|
|
||||||
return true
|
|
||||||
},
|
|
||||||
|
|
||||||
_windowActivated : function(thumbnailList, n) {
|
|
||||||
let win = this._appSwitcher.windows[n];
|
|
||||||
Main.activateWindow(win);
|
|
||||||
this.destroy();
|
|
||||||
},
|
|
||||||
|
|
||||||
_finish : function() {
|
|
||||||
let win = this._appSwitcher.windows[this._currentWindow];
|
|
||||||
Main.activateWindow(win);
|
|
||||||
this.destroy();
|
|
||||||
},
|
|
||||||
|
|
||||||
_keyPressEvent : function(actor, event) {
|
|
||||||
let keysym = event.get_key_symbol();
|
|
||||||
let event_state = event.get_state();
|
|
||||||
let backwards = event_state & Clutter.ModifierType.SHIFT_MASK;
|
|
||||||
let action = global.display.get_keybinding_action(event.get_key_code(), event_state);
|
|
||||||
|
|
||||||
this._disableHover();
|
|
||||||
|
|
||||||
if (keysym == Clutter.Escape) {
|
|
||||||
this.destroy();
|
|
||||||
} else if (action == Meta.KeyBindingAction.SWITCH_WINDOWS ||
|
|
||||||
action == Meta.KeyBindingAction.SWITCH_GROUP) {
|
|
||||||
this._select(backwards ? this._previousWindow() : this._nextWindow());
|
|
||||||
} else if (action == Meta.KeyBindingAction.SWITCH_WINDOWS_BACKWARD ||
|
|
||||||
action == Meta.KeyBindingAction.SWITCH_GROUP_BACKWARD) {
|
|
||||||
this._select(this._previousWindow());
|
|
||||||
} else {
|
|
||||||
if (keysym == Clutter.Left)
|
|
||||||
this._select(this._previousWindow());
|
|
||||||
else if (keysym == Clutter.Right)
|
|
||||||
this._select(this._nextWindow());
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
|
|
||||||
_keyReleaseEvent : function(actor, event) {
|
|
||||||
let [x, y, mods] = global.get_pointer();
|
|
||||||
let state = mods & this._modifierMask;
|
|
||||||
|
|
||||||
if (state == 0)
|
|
||||||
this._finish();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
|
|
||||||
_onScroll : function(actor, event) {
|
|
||||||
let direction = event.get_scroll_direction();
|
|
||||||
if (direction == Clutter.ScrollDirection.UP)
|
|
||||||
this._select(this._previousWindow());
|
|
||||||
else if (direction == Clutter.ScrollDirection.DOWN)
|
|
||||||
this._select(this._nextWindow());
|
|
||||||
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
|
|
||||||
_clickedOutside : function(actor, event) {
|
|
||||||
this.destroy();
|
|
||||||
},
|
|
||||||
|
|
||||||
_windowEntered : function(windowSwitcher, n) {
|
|
||||||
if (!this._mouseActive)
|
|
||||||
return;
|
|
||||||
|
|
||||||
this._select(n);
|
|
||||||
},
|
|
||||||
|
|
||||||
_disableHover : function() {
|
|
||||||
this._mouseActive = false;
|
|
||||||
|
|
||||||
if (this._motionTimeoutId != 0)
|
|
||||||
Mainloop.source_remove(this._motionTimeoutId);
|
|
||||||
|
|
||||||
this._motionTimeoutId = Mainloop.timeout_add(AltTab.DISABLE_HOVER_TIMEOUT, Lang.bind(this, this._mouseTimedOut));
|
|
||||||
},
|
|
||||||
|
|
||||||
_mouseTimedOut : function() {
|
|
||||||
this._motionTimeoutId = 0;
|
|
||||||
this._mouseActive = true;
|
|
||||||
},
|
|
||||||
|
|
||||||
_popModal: function() {
|
|
||||||
if (this._haveModal) {
|
|
||||||
Main.popModal(this.actor);
|
|
||||||
this._haveModal = false;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
destroy : function() {
|
|
||||||
this._popModal();
|
|
||||||
if (this.actor.visible) {
|
|
||||||
Tweener.addTween(this.actor,
|
|
||||||
{ opacity: 0,
|
|
||||||
time: AltTab.POPUP_FADE_OUT_TIME,
|
|
||||||
transition: 'easeOutQuad',
|
|
||||||
onComplete: Lang.bind(this,
|
|
||||||
function() {
|
|
||||||
this.actor.destroy();
|
|
||||||
})
|
|
||||||
});
|
|
||||||
} else
|
|
||||||
this.actor.destroy();
|
|
||||||
},
|
|
||||||
|
|
||||||
_onDestroy : function() {
|
|
||||||
this._popModal();
|
|
||||||
|
|
||||||
if (this._motionTimeoutId != 0)
|
|
||||||
Mainloop.source_remove(this._motionTimeoutId);
|
|
||||||
if (this._initialDelayTimeoutId != 0)
|
|
||||||
Mainloop.source_remove(this._initialDelayTimeoutId);
|
|
||||||
},
|
|
||||||
|
|
||||||
_select : function(window) {
|
|
||||||
this._currentWindow = window;
|
|
||||||
this._appSwitcher.highlight(window);
|
|
||||||
},
|
|
||||||
|
|
||||||
_nextWindow: function() {
|
|
||||||
return mod(this._currentWindow + 1, this._appSwitcher.windows.length);
|
|
||||||
},
|
|
||||||
|
|
||||||
_previousWindow: function() {
|
|
||||||
return mod(this._currentWindow - 1, this._appSwitcher.windows.length);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const WindowIcon = new Lang.Class({
|
|
||||||
Name: 'WindowIcon',
|
|
||||||
|
|
||||||
_init: function(window, settings) {
|
|
||||||
this.window = window;
|
|
||||||
|
|
||||||
this.actor = new St.BoxLayout({ style_class: 'alt-tab-app',
|
|
||||||
vertical: true });
|
|
||||||
this.icon = null;
|
|
||||||
this._iconBin = new St.Widget({ layout_manager: new Clutter.BinLayout() });
|
|
||||||
|
|
||||||
this.actor.add(this._iconBin, { x_fill: false, y_fill: false } );
|
|
||||||
this.label = new St.Label({ text: window.get_title() });
|
|
||||||
this.actor.add(this.label, { x_fill: false });
|
|
||||||
|
|
||||||
if (settings.get_boolean(SETTINGS_SHOW_APP_ICON_KEY)) {
|
|
||||||
let tracker = Shell.WindowTracker.get_default();
|
|
||||||
this.app = tracker.get_window_app(window);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
set_size: function(size) {
|
|
||||||
let mutterWindow = this.window.get_compositor_private();
|
|
||||||
let windowTexture = mutterWindow.get_texture();
|
|
||||||
let [width, height] = windowTexture.get_size();
|
|
||||||
let scale = Math.min(1.0, size / width, size / height);
|
|
||||||
|
|
||||||
this.clone = new Clutter.Clone({ source: windowTexture,
|
|
||||||
width: width * scale,
|
|
||||||
height: height * scale,
|
|
||||||
// usual hack for the usual bug in ClutterBinLayout...
|
|
||||||
x_expand: true,
|
|
||||||
y_expand: true });
|
|
||||||
|
|
||||||
this._iconBin.set_size(size, size);
|
|
||||||
this._iconBin.destroy_all_children();
|
|
||||||
this._iconBin.add_actor(this.clone);
|
|
||||||
|
|
||||||
if (this.app) {
|
|
||||||
this.appIcon = this.app.create_icon_texture(size / 2);
|
|
||||||
this.appIcon.x_expand = this.appIcon.y_expand = true;
|
|
||||||
this.appIcon.x_align = Clutter.ActorAlign.END;
|
|
||||||
this.appIcon.y_align = Clutter.ActorAlign.END;
|
|
||||||
this._iconBin.add_actor(this.appIcon);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const WindowList = new Lang.Class({
|
|
||||||
Name: 'AlternateTab.WindowList',
|
|
||||||
Extends: AltTab.SwitcherList,
|
|
||||||
|
|
||||||
_init : function(windows, settings) {
|
|
||||||
this.parent(true);
|
|
||||||
|
|
||||||
this.windows = windows;
|
|
||||||
this.icons = [];
|
|
||||||
|
|
||||||
for (let i = 0; i < windows.length; i++) {
|
|
||||||
let win = windows[i];
|
|
||||||
let icon = new WindowIcon(win, settings);
|
|
||||||
icon.set_size(128);
|
|
||||||
|
|
||||||
this.addItem(icon.actor, icon.label);
|
|
||||||
this.icons.push(icon);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
@@ -28,33 +28,396 @@ const N_ = function(e) { return e };
|
|||||||
const ExtensionUtils = imports.misc.extensionUtils;
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
const Me = ExtensionUtils.getCurrentExtension();
|
const Me = ExtensionUtils.getCurrentExtension();
|
||||||
const Convenience = Me.imports.convenience;
|
const Convenience = Me.imports.convenience;
|
||||||
const WorkspaceIcons = Me.imports.workspaceIcons;
|
|
||||||
const AllThumbnails = Me.imports.allThumbnails;
|
|
||||||
|
|
||||||
let settings;
|
let settings;
|
||||||
|
|
||||||
const SETTINGS_BEHAVIOUR_KEY = 'behaviour';
|
const AppIconMode = {
|
||||||
|
THUMBNAIL_ONLY: 1,
|
||||||
const MODES = {
|
APP_ICON_ONLY: 2,
|
||||||
all_thumbnails: AllThumbnails.AltTabPopupAllThumbnails,
|
BOTH: 3,
|
||||||
workspace_icons: WorkspaceIcons.AltTabPopupWorkspaceIcons,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const SETTINGS_APP_ICON_MODE = 'app-icon-mode';
|
||||||
|
const SETTINGS_CURRENT_WORKSPACE_ONLY = 'current-workspace-only';
|
||||||
|
|
||||||
|
function mod(a, b) {
|
||||||
|
return ((a+b) % b);
|
||||||
|
}
|
||||||
|
|
||||||
|
const AltTabPopup = new Lang.Class({
|
||||||
|
Name: 'AlternateTab.AltTabPopup',
|
||||||
|
|
||||||
|
_init : function(settings) {
|
||||||
|
this._settings = settings;
|
||||||
|
|
||||||
|
this.actor = new Shell.GenericContainer({ name: 'altTabPopup',
|
||||||
|
reactive: true });
|
||||||
|
|
||||||
|
this.actor.connect('get-preferred-width', Lang.bind(this, this._getPreferredWidth));
|
||||||
|
this.actor.connect('get-preferred-height', Lang.bind(this, this._getPreferredHeight));
|
||||||
|
this.actor.connect('allocate', Lang.bind(this, this._allocate));
|
||||||
|
|
||||||
|
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
|
||||||
|
|
||||||
|
this._haveModal = false;
|
||||||
|
|
||||||
|
this._currentWindow = 0;
|
||||||
|
this._motionTimeoutId = 0;
|
||||||
|
|
||||||
|
// Initially disable hover so we ignore the enter-event if
|
||||||
|
// the switcher appears underneath the current pointer location
|
||||||
|
this._disableHover();
|
||||||
|
|
||||||
|
Main.uiGroup.add_actor(this.actor);
|
||||||
|
},
|
||||||
|
|
||||||
|
_getPreferredWidth: function (actor, forHeight, alloc) {
|
||||||
|
alloc.min_size = global.screen_width;
|
||||||
|
alloc.natural_size = global.screen_width;
|
||||||
|
},
|
||||||
|
|
||||||
|
_getPreferredHeight: function (actor, forWidth, alloc) {
|
||||||
|
alloc.min_size = global.screen_height;
|
||||||
|
alloc.natural_size = global.screen_height;
|
||||||
|
},
|
||||||
|
|
||||||
|
_allocate: function (actor, box, flags) {
|
||||||
|
let childBox = new Clutter.ActorBox();
|
||||||
|
let primary = Main.layoutManager.primaryMonitor;
|
||||||
|
|
||||||
|
let leftPadding = this.actor.get_theme_node().get_padding(St.Side.LEFT);
|
||||||
|
let rightPadding = this.actor.get_theme_node().get_padding(St.Side.RIGHT);
|
||||||
|
let bottomPadding = this.actor.get_theme_node().get_padding(St.Side.BOTTOM);
|
||||||
|
let vPadding = this.actor.get_theme_node().get_vertical_padding();
|
||||||
|
let hPadding = leftPadding + rightPadding;
|
||||||
|
|
||||||
|
// Allocate the appSwitcher
|
||||||
|
// We select a size based on an icon size that does not overflow the screen
|
||||||
|
let [childMinHeight, childNaturalHeight] = this._appSwitcher.actor.get_preferred_height(primary.width - hPadding);
|
||||||
|
let [childMinWidth, childNaturalWidth] = this._appSwitcher.actor.get_preferred_width(childNaturalHeight);
|
||||||
|
childBox.x1 = Math.max(primary.x + leftPadding, primary.x + Math.floor((primary.width - childNaturalWidth) / 2));
|
||||||
|
childBox.x2 = Math.min(primary.x + primary.width - rightPadding, childBox.x1 + childNaturalWidth);
|
||||||
|
childBox.y1 = primary.y + Math.floor((primary.height - childNaturalHeight) / 2);
|
||||||
|
childBox.y2 = childBox.y1 + childNaturalHeight;
|
||||||
|
this._appSwitcher.actor.allocate(childBox, flags);
|
||||||
|
},
|
||||||
|
|
||||||
|
show : function(backward, binding, mask) {
|
||||||
|
let windows;
|
||||||
|
|
||||||
|
if (!settings.get_boolean(SETTINGS_CURRENT_WORKSPACE_ONLY)) {
|
||||||
|
// This is roughly what meta_display_get_tab_list does, except
|
||||||
|
// that it doesn't filter on workspace
|
||||||
|
// See in particular src/core/window-private.h for the filters
|
||||||
|
windows = global.get_window_actors().map(function(actor) {
|
||||||
|
return actor.meta_window;
|
||||||
|
}).filter(function(win) {
|
||||||
|
return !win.is_override_redirect() &&
|
||||||
|
win.get_window_type() != Meta.WindowType.DESKTOP &&
|
||||||
|
win.get_window_type() != Meta.WindowType.DOCK;
|
||||||
|
}).sort(function(one, two) {
|
||||||
|
return two.get_user_time() - one.get_user_time();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
windows = global.display.get_tab_list(Meta.TabList.NORMAL_ALL, global.screen,
|
||||||
|
global.screen.get_active_workspace());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!windows.length) {
|
||||||
|
this.destroy();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Main.pushModal(this.actor)) {
|
||||||
|
// Probably someone else has a pointer grab, try again with keyboard only
|
||||||
|
if (!Main.pushModal(this.actor, global.get_current_time(), Meta.ModalOptions.POINTER_ALREADY_GRABBED)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this._haveModal = true;
|
||||||
|
this._modifierMask = AltTab.primaryModifier(mask);
|
||||||
|
|
||||||
|
this.actor.connect('key-press-event', Lang.bind(this, this._keyPressEvent));
|
||||||
|
this.actor.connect('key-release-event', Lang.bind(this, this._keyReleaseEvent));
|
||||||
|
|
||||||
|
this.actor.connect('button-press-event', Lang.bind(this, this._clickedOutside));
|
||||||
|
this.actor.connect('scroll-event', Lang.bind(this, this._onScroll));
|
||||||
|
|
||||||
|
this._appSwitcher = new WindowList(windows, this._settings);
|
||||||
|
this.actor.add_actor(this._appSwitcher.actor);
|
||||||
|
this._appSwitcher.connect('item-activated', Lang.bind(this, this._windowActivated));
|
||||||
|
this._appSwitcher.connect('item-entered', Lang.bind(this, this._windowEntered));
|
||||||
|
|
||||||
|
// make the initial selection
|
||||||
|
this._currentWindow = 0;
|
||||||
|
if (backward)
|
||||||
|
this._select(this._previousWindow());
|
||||||
|
else
|
||||||
|
this._select(this._nextWindow());
|
||||||
|
|
||||||
|
this.actor.opacity = 0;
|
||||||
|
this.actor.show();
|
||||||
|
|
||||||
|
// There's a race condition; if the user released Alt before
|
||||||
|
// we got the grab, then we won't be notified. (See
|
||||||
|
// https://bugzilla.gnome.org/show_bug.cgi?id=596695 for
|
||||||
|
// details.) So we check now. (Have to do this after updating
|
||||||
|
// selection.)
|
||||||
|
let [x, y, mods] = global.get_pointer();
|
||||||
|
if (!(mods & this._modifierMask)) {
|
||||||
|
this._finish();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// We delay showing the popup so that fast Alt+Tab users aren't
|
||||||
|
// disturbed by the popup briefly flashing.
|
||||||
|
this._initialDelayTimeoutId = Mainloop.timeout_add(AltTab.POPUP_DELAY_TIMEOUT,
|
||||||
|
Lang.bind(this, function () {
|
||||||
|
this.actor.opacity = 255;
|
||||||
|
this._initialDelayTimeoutId = 0;
|
||||||
|
}));
|
||||||
|
|
||||||
|
return true
|
||||||
|
},
|
||||||
|
|
||||||
|
_windowActivated : function(thumbnailList, n) {
|
||||||
|
let win = this._appSwitcher.windows[n];
|
||||||
|
Main.activateWindow(win);
|
||||||
|
this.destroy();
|
||||||
|
},
|
||||||
|
|
||||||
|
_finish : function() {
|
||||||
|
let win = this._appSwitcher.windows[this._currentWindow];
|
||||||
|
Main.activateWindow(win);
|
||||||
|
this.destroy();
|
||||||
|
},
|
||||||
|
|
||||||
|
_keyPressEvent : function(actor, event) {
|
||||||
|
let keysym = event.get_key_symbol();
|
||||||
|
let event_state = event.get_state();
|
||||||
|
let backwards = event_state & Clutter.ModifierType.SHIFT_MASK;
|
||||||
|
let action = global.display.get_keybinding_action(event.get_key_code(), event_state);
|
||||||
|
|
||||||
|
this._disableHover();
|
||||||
|
|
||||||
|
if (keysym == Clutter.Escape) {
|
||||||
|
this.destroy();
|
||||||
|
} else if (action == Meta.KeyBindingAction.SWITCH_WINDOWS ||
|
||||||
|
action == Meta.KeyBindingAction.SWITCH_GROUP) {
|
||||||
|
this._select(backwards ? this._previousWindow() : this._nextWindow());
|
||||||
|
} else if (action == Meta.KeyBindingAction.SWITCH_WINDOWS_BACKWARD ||
|
||||||
|
action == Meta.KeyBindingAction.SWITCH_GROUP_BACKWARD) {
|
||||||
|
this._select(this._previousWindow());
|
||||||
|
} else {
|
||||||
|
if (keysym == Clutter.Left)
|
||||||
|
this._select(this._previousWindow());
|
||||||
|
else if (keysym == Clutter.Right)
|
||||||
|
this._select(this._nextWindow());
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
|
||||||
|
_keyReleaseEvent : function(actor, event) {
|
||||||
|
let [x, y, mods] = global.get_pointer();
|
||||||
|
let state = mods & this._modifierMask;
|
||||||
|
|
||||||
|
if (state == 0)
|
||||||
|
this._finish();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
|
||||||
|
_onScroll : function(actor, event) {
|
||||||
|
let direction = event.get_scroll_direction();
|
||||||
|
if (direction == Clutter.ScrollDirection.UP)
|
||||||
|
this._select(this._previousWindow());
|
||||||
|
else if (direction == Clutter.ScrollDirection.DOWN)
|
||||||
|
this._select(this._nextWindow());
|
||||||
|
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
|
||||||
|
_clickedOutside : function(actor, event) {
|
||||||
|
this.destroy();
|
||||||
|
},
|
||||||
|
|
||||||
|
_windowEntered : function(windowSwitcher, n) {
|
||||||
|
if (!this._mouseActive)
|
||||||
|
return;
|
||||||
|
|
||||||
|
this._select(n);
|
||||||
|
},
|
||||||
|
|
||||||
|
_disableHover : function() {
|
||||||
|
this._mouseActive = false;
|
||||||
|
|
||||||
|
if (this._motionTimeoutId != 0)
|
||||||
|
Mainloop.source_remove(this._motionTimeoutId);
|
||||||
|
|
||||||
|
this._motionTimeoutId = Mainloop.timeout_add(AltTab.DISABLE_HOVER_TIMEOUT, Lang.bind(this, this._mouseTimedOut));
|
||||||
|
},
|
||||||
|
|
||||||
|
_mouseTimedOut : function() {
|
||||||
|
this._motionTimeoutId = 0;
|
||||||
|
this._mouseActive = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
_popModal: function() {
|
||||||
|
if (this._haveModal) {
|
||||||
|
Main.popModal(this.actor);
|
||||||
|
this._haveModal = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
destroy : function() {
|
||||||
|
this._popModal();
|
||||||
|
if (this.actor.visible) {
|
||||||
|
Tweener.addTween(this.actor,
|
||||||
|
{ opacity: 0,
|
||||||
|
time: AltTab.POPUP_FADE_OUT_TIME,
|
||||||
|
transition: 'easeOutQuad',
|
||||||
|
onComplete: Lang.bind(this,
|
||||||
|
function() {
|
||||||
|
this.actor.destroy();
|
||||||
|
})
|
||||||
|
});
|
||||||
|
} else
|
||||||
|
this.actor.destroy();
|
||||||
|
},
|
||||||
|
|
||||||
|
_onDestroy : function() {
|
||||||
|
this._popModal();
|
||||||
|
|
||||||
|
if (this._motionTimeoutId != 0)
|
||||||
|
Mainloop.source_remove(this._motionTimeoutId);
|
||||||
|
if (this._initialDelayTimeoutId != 0)
|
||||||
|
Mainloop.source_remove(this._initialDelayTimeoutId);
|
||||||
|
},
|
||||||
|
|
||||||
|
_select : function(window) {
|
||||||
|
this._currentWindow = window;
|
||||||
|
this._appSwitcher.highlight(window);
|
||||||
|
},
|
||||||
|
|
||||||
|
_nextWindow: function() {
|
||||||
|
return mod(this._currentWindow + 1, this._appSwitcher.windows.length);
|
||||||
|
},
|
||||||
|
|
||||||
|
_previousWindow: function() {
|
||||||
|
return mod(this._currentWindow - 1, this._appSwitcher.windows.length);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const WindowIcon = new Lang.Class({
|
||||||
|
Name: 'AlternateTab.WindowIcon',
|
||||||
|
|
||||||
|
_init: function(window, settings) {
|
||||||
|
this.window = window;
|
||||||
|
this._settings = settings;
|
||||||
|
|
||||||
|
this.actor = new St.BoxLayout({ style_class: 'alt-tab-app',
|
||||||
|
vertical: true });
|
||||||
|
this.icon = null;
|
||||||
|
this._iconBin = new St.Widget({ layout_manager: new Clutter.BinLayout() });
|
||||||
|
|
||||||
|
this.actor.add(this._iconBin, { x_fill: false, y_fill: false } );
|
||||||
|
this.label = new St.Label({ text: window.get_title() });
|
||||||
|
this.actor.add(this.label, { x_fill: false });
|
||||||
|
|
||||||
|
let tracker = Shell.WindowTracker.get_default();
|
||||||
|
this.app = tracker.get_window_app(window);
|
||||||
|
|
||||||
|
let mutterWindow = this.window.get_compositor_private();
|
||||||
|
let windowTexture = mutterWindow.get_texture();
|
||||||
|
let [width, height] = windowTexture.get_size();
|
||||||
|
let scale, size;
|
||||||
|
|
||||||
|
this._iconBin.destroy_all_children();
|
||||||
|
|
||||||
|
switch (this._settings.get_enum(SETTINGS_APP_ICON_MODE)) {
|
||||||
|
case AppIconMode.THUMBNAIL_ONLY:
|
||||||
|
scale = Math.min(1.0, 128 / width, 128 / height);
|
||||||
|
size = 128;
|
||||||
|
this.clone = new Clutter.Clone({ source: windowTexture,
|
||||||
|
width: width * scale,
|
||||||
|
height: height * scale,
|
||||||
|
x_align: Clutter.ActorAlign.CENTER,
|
||||||
|
y_align: Clutter.ActorAlign.CENTER,
|
||||||
|
// usual hack for the usual bug in ClutterBinLayout...
|
||||||
|
x_expand: true,
|
||||||
|
y_expand: true });
|
||||||
|
this._iconBin.add_actor(this.clone);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AppIconMode.BOTH:
|
||||||
|
scale = Math.min(1.0, 128 / width, 128 / height);
|
||||||
|
size = 128;
|
||||||
|
this.clone = new Clutter.Clone({ source: windowTexture,
|
||||||
|
width: width * scale,
|
||||||
|
height: height * scale,
|
||||||
|
x_align: Clutter.ActorAlign.CENTER,
|
||||||
|
y_align: Clutter.ActorAlign.CENTER,
|
||||||
|
// usual hack for the usual bug in ClutterBinLayout...
|
||||||
|
x_expand: true,
|
||||||
|
y_expand: true });
|
||||||
|
this._iconBin.add_actor(this.clone);
|
||||||
|
|
||||||
|
if (this.app) {
|
||||||
|
this.appIcon = this.app.create_icon_texture(size / 2);
|
||||||
|
this.appIcon.x_expand = this.appIcon.y_expand = true;
|
||||||
|
this.appIcon.x_align = Clutter.ActorAlign.END;
|
||||||
|
this.appIcon.y_align = Clutter.ActorAlign.END;
|
||||||
|
this._iconBin.add_actor(this.appIcon);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AppIconMode.APP_ICON_ONLY:
|
||||||
|
size = 96;
|
||||||
|
if (this.app) {
|
||||||
|
this.appIcon = this.app.create_icon_texture(size);
|
||||||
|
this.appIcon.x_expand = this.appIcon.y_expand = true;
|
||||||
|
} else {
|
||||||
|
this.appIcon = new St.Icon({ icon_name: 'icon-missing',
|
||||||
|
icon_size: size,
|
||||||
|
x_expand: true,
|
||||||
|
y_expand: true });
|
||||||
|
}
|
||||||
|
this._iconBin.add_actor(this.appIcon);
|
||||||
|
}
|
||||||
|
|
||||||
|
this._iconBin.set_size(size, size);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const WindowList = new Lang.Class({
|
||||||
|
Name: 'AlternateTab.WindowList',
|
||||||
|
Extends: AltTab.SwitcherList,
|
||||||
|
|
||||||
|
_init : function(windows, settings) {
|
||||||
|
this.parent(true);
|
||||||
|
|
||||||
|
this.windows = windows;
|
||||||
|
this.icons = [];
|
||||||
|
|
||||||
|
for (let i = 0; i < windows.length; i++) {
|
||||||
|
let win = windows[i];
|
||||||
|
let icon = new WindowIcon(win, settings);
|
||||||
|
|
||||||
|
this.addItem(icon.actor, icon.label);
|
||||||
|
this.icons.push(icon);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
function doAltTab(display, screen, window, binding) {
|
function doAltTab(display, screen, window, binding) {
|
||||||
let behaviour = settings.get_string(SETTINGS_BEHAVIOUR_KEY);
|
|
||||||
|
|
||||||
// alt-tab having no effect is unexpected, even with wrong settings
|
|
||||||
if (!(behaviour in MODES))
|
|
||||||
behaviour = 'all_thumbnails';
|
|
||||||
|
|
||||||
if (Main.wm._workspaceSwitcherPopup)
|
if (Main.wm._workspaceSwitcherPopup)
|
||||||
Main.wm._workspaceSwitcherPopup.actor.hide();
|
Main.wm._workspaceSwitcherPopup.actor.hide();
|
||||||
|
|
||||||
let modifiers = binding.get_modifiers()
|
let modifiers = binding.get_modifiers()
|
||||||
let backwards = modifiers & Meta.VirtualModifier.SHIFT_MASK;
|
let backwards = modifiers & Meta.VirtualModifier.SHIFT_MASK;
|
||||||
|
|
||||||
let constructor = MODES[behaviour];
|
let popup = new AltTabPopup(settings);
|
||||||
let popup = new constructor(settings);
|
|
||||||
if (!popup.show(backwards, binding.get_name(), binding.get_mask()))
|
if (!popup.show(backwards, binding.get_name(), binding.get_mask()))
|
||||||
popup.destroy();
|
popup.destroy();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,31 +1,25 @@
|
|||||||
<schemalist gettext-domain="gnome-shell-extensions">
|
<schemalist gettext-domain="gnome-shell-extensions">
|
||||||
<enum id="org.gnome.shell.extensions.alternate-tab.BehaviourMode">
|
<enum id="org.gnome.shell.extensions.alternate-tab.AppIconMode">
|
||||||
<value value="1" nick="all_thumbnails"/>
|
<value value="1" nick="thumbnail_only"/>
|
||||||
<value value="2" nick="workspace_icons"/>
|
<value value="2" nick="app_icon_only"/>
|
||||||
|
<value value="3" nick="both"/>
|
||||||
</enum>
|
</enum>
|
||||||
<schema id="org.gnome.shell.extensions.alternate-tab" path="/org/gnome/shell/extensions/alternate-tab/">
|
<schema id="org.gnome.shell.extensions.alternate-tab" path="/org/gnome/shell/extensions/alternate-tab/">
|
||||||
<key name="behaviour" enum="org.gnome.shell.extensions.alternate-tab.BehaviourMode">
|
<key name="app-icon-mode" enum="org.gnome.shell.extensions.alternate-tab.AppIconMode">
|
||||||
<default>'all_thumbnails'</default>
|
<default>'both'</default>
|
||||||
<_summary>The alt tab behaviour.</_summary>
|
<_summary>The application icon mode.</_summary>
|
||||||
<_description>
|
<_description>
|
||||||
Sets the Alt-Tab behaviour. Possible values are: all_thumbnails and workspace_icons.
|
Configures how the windows are shown in the switcher. Valid possibilities
|
||||||
See the configuration dialogs for details.
|
are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-only'
|
||||||
|
(shows only the application icon) or 'both'.
|
||||||
</_description>
|
</_description>
|
||||||
</key>
|
</key>
|
||||||
<key type="b" name="highlight-selected">
|
<key type="b" name="current-workspace-only">
|
||||||
<default>false</default>
|
<default>false</default>
|
||||||
<summary>Bring each selected window to the front.</summary>
|
<summary>Limit switcher to current workspace.</summary>
|
||||||
<description>
|
<description>
|
||||||
Bring each window to the front in turn as Alt+Tab is pressed.
|
If true, only windows from the current workspace are shown in the switcher.
|
||||||
This setting applies only when the selected mode is 'workspace_icons'.
|
Otherwise, all windows are included.
|
||||||
</description>
|
|
||||||
</key>
|
|
||||||
<key type="b" name="show-app-icon">
|
|
||||||
<default>true</default>
|
|
||||||
<summary>Show small application icon.</summary>
|
|
||||||
<description>
|
|
||||||
If true, a small application icon is overlayed to each window thumbnail.
|
|
||||||
This setting applies only when the selected mode is 'all_thumbnails'.
|
|
||||||
</description>
|
</description>
|
||||||
</key>
|
</key>
|
||||||
</schema>
|
</schema>
|
||||||
|
|||||||
@@ -19,31 +19,13 @@ const ExtensionUtils = imports.misc.extensionUtils;
|
|||||||
const Me = ExtensionUtils.getCurrentExtension();
|
const Me = ExtensionUtils.getCurrentExtension();
|
||||||
const Convenience = Me.imports.convenience;
|
const Convenience = Me.imports.convenience;
|
||||||
|
|
||||||
const SETTINGS_BEHAVIOUR_KEY = 'behaviour';
|
const SETTINGS_APP_ICON_MODE = 'app-icon-mode';
|
||||||
const SETTINGS_HIGHLIGHT_KEY = 'highlight-selected';
|
const SETTINGS_CURRENT_WORKSPACE_ONLY = 'current-workspace-only';
|
||||||
const SETTINGS_SHOW_APP_ICON_KEY = 'show-app-icon';
|
|
||||||
|
|
||||||
const MODES = {
|
const MODES = {
|
||||||
all_thumbnails: {
|
thumbnail_only: N_("Thumbnail only"),
|
||||||
name: N_("All & Thumbnails"),
|
app_icon_only: N_("Application icon only"),
|
||||||
description: N_("This mode presents all applications from all workspaces in one selection \
|
both: N_("Thumbnail and application icon"),
|
||||||
list. Instead of using the application icon of every window, it uses small \
|
|
||||||
thumbnails resembling the window itself."),
|
|
||||||
extra_widgets: [
|
|
||||||
{ label: N_("Show overlaid application icon"), key: SETTINGS_SHOW_APP_ICON_KEY }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
workspace_icons: {
|
|
||||||
name: N_("Workspace & Icons"),
|
|
||||||
description: N_("This mode lets you switch between the applications of your current \
|
|
||||||
workspace and gives you additionally the option to switch to the last used \
|
|
||||||
application of your previous workspace. This is always the last symbol in \
|
|
||||||
the list and is separated by a separator/vertical line if available. \n\
|
|
||||||
Every window is represented by its application icon."),
|
|
||||||
extra_widgets: [
|
|
||||||
{ label: N_("Move current selection to front before closing the popup"), key: SETTINGS_HIGHLIGHT_KEY }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const AltTabSettingsWidget = new GObject.Class({
|
const AltTabSettingsWidget = new GObject.Class({
|
||||||
@@ -53,65 +35,40 @@ const AltTabSettingsWidget = new GObject.Class({
|
|||||||
|
|
||||||
_init : function(params) {
|
_init : function(params) {
|
||||||
this.parent(params);
|
this.parent(params);
|
||||||
this.column_spacing = 10;
|
|
||||||
this.margin = 10;
|
this.margin = 10;
|
||||||
|
this.orientation = Gtk.Orientation.VERTICAL;
|
||||||
|
|
||||||
this._settings = Convenience.getSettings();
|
this._settings = Convenience.getSettings();
|
||||||
|
|
||||||
let introLabel = _("The Alternate Tab can be used in different modes, that \
|
let presentLabel = _("Present windows as");
|
||||||
affect the way windows are chosen and presented.");
|
this.add(new Gtk.Label({ label: presentLabel, sensitive: true,
|
||||||
|
margin_bottom: 10, margin_top: 5 }));
|
||||||
this.attach(new Gtk.Label({ label: introLabel, wrap: true, sensitive: true,
|
|
||||||
margin_bottom: 10, margin_top: 5 }),
|
|
||||||
0, 0, 2, 1);
|
|
||||||
|
|
||||||
let top = 1;
|
let top = 1;
|
||||||
let radio = null;
|
let radio = null;
|
||||||
let currentMode = this._settings.get_string(SETTINGS_BEHAVIOUR_KEY);
|
let currentMode = this._settings.get_string(SETTINGS_APP_ICON_MODE);
|
||||||
for (let mode in MODES) {
|
for (let mode in MODES) {
|
||||||
// copy the mode variable because it has function scope, not block scope
|
// copy the mode variable because it has function scope, not block scope
|
||||||
// so cannot be used in a closure
|
// so cannot be used in a closure
|
||||||
let modeCapture = mode;
|
let modeCapture = mode;
|
||||||
let obj = MODES[mode];
|
let name = Gettext.gettext(MODES[mode]);
|
||||||
let name = Gettext.gettext(obj.name);
|
|
||||||
let description = Gettext.gettext(obj.description);
|
|
||||||
let nextra = obj.extra_widgets.length;
|
|
||||||
|
|
||||||
radio = new Gtk.RadioButton({ group: radio, label: name, valign: Gtk.Align.START });
|
radio = new Gtk.RadioButton({ group: radio, label: name, valign: Gtk.Align.START });
|
||||||
radio.connect('toggled', Lang.bind(this, function(widget) {
|
radio.connect('toggled', Lang.bind(this, function(widget) {
|
||||||
if (widget.active)
|
if (widget.active)
|
||||||
this._settings.set_string(SETTINGS_BEHAVIOUR_KEY, modeCapture);
|
this._settings.set_string(SETTINGS_APP_ICON_MODE, modeCapture);
|
||||||
this._updateSensitivity(widget, widget.active);
|
|
||||||
}));
|
}));
|
||||||
this.attach(radio, 0, top, 1, nextra + 1);
|
this.add(radio);
|
||||||
|
|
||||||
let descriptionLabel = new Gtk.Label({ label: description, wrap: true, sensitive: true,
|
|
||||||
xalign: 0.0, justify: Gtk.Justification.FILL });
|
|
||||||
this.attach(descriptionLabel, 1, top, 1, 1);
|
|
||||||
|
|
||||||
radio._extra = [];
|
|
||||||
for (let i = 0; i < nextra; i++) {
|
|
||||||
let key = obj.extra_widgets[i].key;
|
|
||||||
let label = Gettext.gettext(obj.extra_widgets[i].label);
|
|
||||||
|
|
||||||
let extra = new Gtk.CheckButton({ label: label });
|
|
||||||
this._settings.bind(key, extra, 'active', Gio.SettingsBindFlags.DEFAULT);
|
|
||||||
|
|
||||||
radio._extra.push(extra);
|
|
||||||
this.attach(extra, 1, top + i + 1, 1, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mode == currentMode)
|
if (mode == currentMode)
|
||||||
radio.active = true;
|
radio.active = true;
|
||||||
this._updateSensitivity(radio, radio.active);
|
top += 1;
|
||||||
|
|
||||||
top += nextra + 1;
|
|
||||||
}
|
}
|
||||||
},
|
|
||||||
|
|
||||||
_updateSensitivity: function(widget, active) {
|
let check = new Gtk.CheckButton({ label: _("Show only windows in the current workspace"),
|
||||||
for (let i = 0; i < widget._extra.length; i++)
|
margin_top: 12 });
|
||||||
widget._extra[i].sensitive = active;
|
this._settings.bind(SETTINGS_CURRENT_WORKSPACE_ONLY, check, 'active', Gio.SettingsBindFlags.DEFAULT);
|
||||||
|
this.add(check);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,274 +0,0 @@
|
|||||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
||||||
|
|
||||||
const Clutter = imports.gi.Clutter;
|
|
||||||
const Gdk = imports.gi.Gdk;
|
|
||||||
const Gio = imports.gi.Gio;
|
|
||||||
const Gtk = imports.gi.Gtk;
|
|
||||||
const Lang = imports.lang;
|
|
||||||
const Mainloop = imports.mainloop;
|
|
||||||
const Meta = imports.gi.Meta;
|
|
||||||
const Shell = imports.gi.Shell;
|
|
||||||
const St = imports.gi.St;
|
|
||||||
|
|
||||||
const AltTab = imports.ui.altTab;
|
|
||||||
const Main = imports.ui.main;
|
|
||||||
const ModalDialog = imports.ui.modalDialog;
|
|
||||||
const Tweener = imports.ui.tweener;
|
|
||||||
const WindowManager = imports.ui.windowManager;
|
|
||||||
|
|
||||||
const Gettext = imports.gettext.domain('gnome-shell-extensions');
|
|
||||||
const _ = Gettext.gettext;
|
|
||||||
const N_ = function(e) { return e };
|
|
||||||
|
|
||||||
const SETTINGS_HIGHLIGHT_SELECTED_KEY = 'highlight-selected';
|
|
||||||
|
|
||||||
const AltTabPopupWorkspaceIcons = new Lang.Class({
|
|
||||||
Name: 'AlternateTab.AltTabPopupWorkspaceIcons',
|
|
||||||
Extends: AltTab.AltTabPopup,
|
|
||||||
|
|
||||||
_init: function(settings) {
|
|
||||||
this.parent();
|
|
||||||
|
|
||||||
this._settings = settings;
|
|
||||||
},
|
|
||||||
|
|
||||||
_windowActivated : function(thumbnailList, n) { },
|
|
||||||
|
|
||||||
show : function(backward, binding, mask) {
|
|
||||||
let appSys = Shell.AppSystem.get_default();
|
|
||||||
let apps = appSys.get_running ();
|
|
||||||
|
|
||||||
if (!apps.length)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (!Main.pushModal(this.actor)) {
|
|
||||||
// Probably someone else has a pointer grab, try again with keyboard only
|
|
||||||
if (!Main.pushModal(this.actor, global.get_current_time(), Meta.ModalOptions.POINTER_ALREADY_GRABBED)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this._haveModal = true;
|
|
||||||
this._modifierMask = AltTab.primaryModifier(mask);
|
|
||||||
|
|
||||||
this.actor.connect('key-press-event', Lang.bind(this, this._keyPressEvent));
|
|
||||||
this.actor.connect('key-release-event', Lang.bind(this, this._keyReleaseEvent));
|
|
||||||
|
|
||||||
this.actor.connect('button-press-event', Lang.bind(this, this._clickedOutside));
|
|
||||||
this.actor.connect('scroll-event', Lang.bind(this, this._onScroll));
|
|
||||||
|
|
||||||
this._appSwitcher = new WindowSwitcher(apps, this);
|
|
||||||
this.actor.add_actor(this._appSwitcher.actor);
|
|
||||||
this._appSwitcher.connect('item-activated', Lang.bind(this, this._appActivated));
|
|
||||||
this._appSwitcher.connect('item-entered', Lang.bind(this, this._appEntered));
|
|
||||||
|
|
||||||
this._appIcons = this._appSwitcher.icons;
|
|
||||||
|
|
||||||
// Need to force an allocation so we can figure out whether we
|
|
||||||
// need to scroll when selecting
|
|
||||||
this.actor.opacity = 0;
|
|
||||||
this.actor.show();
|
|
||||||
this.actor.get_allocation_box();
|
|
||||||
|
|
||||||
this._highlight_selected = this._settings.get_boolean(SETTINGS_HIGHLIGHT_SELECTED_KEY);
|
|
||||||
|
|
||||||
// Make the initial selection
|
|
||||||
if (binding == 'switch_group') {
|
|
||||||
//see AltTab.AltTabPopup.show function
|
|
||||||
//cached windows are always of length one, so select first app and the window
|
|
||||||
//the direction doesn't matter, so ignore backward
|
|
||||||
this._select(0, 0);
|
|
||||||
} else if (binding == 'switch_group_backward') {
|
|
||||||
this._select(0, 0);
|
|
||||||
} else if (binding == 'switch_windows_backward') {
|
|
||||||
this._select(this._appIcons.length - 1);
|
|
||||||
} else if (this._appIcons.length == 1) {
|
|
||||||
this._select(0);
|
|
||||||
} else if (backward) {
|
|
||||||
this._select(this._appIcons.length - 1);
|
|
||||||
} else {
|
|
||||||
this._select(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// There's a race condition; if the user released Alt before
|
|
||||||
// we got the grab, then we won't be notified. (See
|
|
||||||
// https://bugzilla.gnome.org/show_bug.cgi?id=596695 for
|
|
||||||
// details.) So we check now. (Have to do this after updating
|
|
||||||
// selection.)
|
|
||||||
let [x, y, mods] = global.get_pointer();
|
|
||||||
if (!(mods & this._modifierMask)) {
|
|
||||||
this._finish();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// We delay showing the popup so that fast Alt+Tab users aren't
|
|
||||||
// disturbed by the popup briefly flashing.
|
|
||||||
this._initialDelayTimeoutId = Mainloop.timeout_add(AltTab.POPUP_DELAY_TIMEOUT,
|
|
||||||
Lang.bind(this, function () {
|
|
||||||
this.actor.opacity = 255;
|
|
||||||
this._initialDelayTimeoutId = 0;
|
|
||||||
}));
|
|
||||||
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
|
|
||||||
_select : function(app, window, forceAppFocus) {
|
|
||||||
if (app != this._currentApp || window == null) {
|
|
||||||
if (this._thumbnails)
|
|
||||||
this._destroyThumbnails();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this._thumbnailTimeoutId != 0) {
|
|
||||||
Mainloop.source_remove(this._thumbnailTimeoutId);
|
|
||||||
this._thumbnailTimeoutId = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
this._thumbnailsFocused = (window != null) && !forceAppFocus;
|
|
||||||
|
|
||||||
this._currentApp = app;
|
|
||||||
this._currentWindow = window ? window : -1;
|
|
||||||
this._appSwitcher.highlight(app, this._thumbnailsFocused);
|
|
||||||
|
|
||||||
if (window != null) {
|
|
||||||
if (!this._thumbnails)
|
|
||||||
this._createThumbnails();
|
|
||||||
this._currentWindow = window;
|
|
||||||
this._thumbnails.highlight(window, forceAppFocus);
|
|
||||||
} else if (this._appIcons[this._currentApp].cachedWindows.length > 1 &&
|
|
||||||
!forceAppFocus) {
|
|
||||||
this._thumbnailTimeoutId = Mainloop.timeout_add (
|
|
||||||
AltTab.THUMBNAIL_POPUP_TIME,
|
|
||||||
Lang.bind(this, this._timeoutPopupThumbnails));
|
|
||||||
}
|
|
||||||
if (this._highlight_selected) {
|
|
||||||
let current_app = this._appIcons[this._currentApp];
|
|
||||||
Main.activateWindow(current_app.cachedWindows[0]);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
_finish : function() {
|
|
||||||
let app = this._appIcons[this._currentApp];
|
|
||||||
if (!app)
|
|
||||||
return;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* We've to restore the original Z-depth and order of all windows.
|
|
||||||
*
|
|
||||||
* Gnome-shell doesn't give an option to change Z-depth without
|
|
||||||
* messing the window's user_time.
|
|
||||||
*
|
|
||||||
* Pointless if the popup wasn't showed.
|
|
||||||
*/
|
|
||||||
if (this._highlight_selected && this.actor.opacity == 255) {
|
|
||||||
for (let i = this._appIcons.length - 2; i >= 0; i--) {
|
|
||||||
let app_walker = this._appIcons[i];
|
|
||||||
Main.activateWindow(app_walker.cachedWindows[0], global.get_current_time() - i - 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Main.activateWindow(app.cachedWindows[0]);
|
|
||||||
this.destroy();
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
const AppIcon = new Lang.Class({
|
|
||||||
Name: 'AlternateTab.AppIcon',
|
|
||||||
Extends: AltTab.AppIcon,
|
|
||||||
|
|
||||||
_init: function(app, window) {
|
|
||||||
this.app = app;
|
|
||||||
|
|
||||||
this.cachedWindows = [];
|
|
||||||
this.cachedWindows.push(window);
|
|
||||||
|
|
||||||
this.actor = new St.BoxLayout({ style_class: 'alt-tab-app',
|
|
||||||
vertical: true });
|
|
||||||
this.icon = null;
|
|
||||||
this._iconBin = new St.Bin({ x_fill: true, y_fill: true });
|
|
||||||
|
|
||||||
this.actor.add(this._iconBin, { x_fill: false, y_fill: false } );
|
|
||||||
|
|
||||||
let title = window.get_title();
|
|
||||||
if (title) {
|
|
||||||
this.label = new St.Label({ text: title });
|
|
||||||
let bin = new St.Bin({ x_align: St.Align.MIDDLE });
|
|
||||||
bin.add_actor(this.label);
|
|
||||||
this.actor.add(bin);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
this.label = new St.Label({ text: this.app.get_name() });
|
|
||||||
this.actor.add(this.label, { x_fill: false });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const WindowSwitcher = new Lang.Class({
|
|
||||||
Name: 'AlternateTab.WindowSwitcher',
|
|
||||||
Extends: AltTab.AppSwitcher,
|
|
||||||
|
|
||||||
_init : function(apps, altTabPopup) {
|
|
||||||
// Horrible HACK!
|
|
||||||
// We inherit from AltTab.AppSwitcher, but only chain up to
|
|
||||||
// AltTab.SwitcherList._init, to bypass AltTab.AppSwitcher._init
|
|
||||||
AltTab.SwitcherList.prototype._init.call(this, true);
|
|
||||||
|
|
||||||
// Construct the AppIcons, sort by time, add to the popup
|
|
||||||
let activeWorkspace = global.screen.get_active_workspace();
|
|
||||||
let workspaceIcons = [];
|
|
||||||
let otherIcons = [];
|
|
||||||
for (let i = 0; i < apps.length; i++) {
|
|
||||||
// Cache the window list now; we don't handle dynamic changes here,
|
|
||||||
// and we don't want to be continually retrieving it
|
|
||||||
let windows = apps[i].get_windows();
|
|
||||||
|
|
||||||
for(let j = 0; j < windows.length; j++) {
|
|
||||||
let appIcon = new AppIcon(apps[i], windows[j]);
|
|
||||||
if (this._isWindowOnWorkspace(windows[j], activeWorkspace)) {
|
|
||||||
workspaceIcons.push(appIcon);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
otherIcons.push(appIcon);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
workspaceIcons.sort(Lang.bind(this, this._sortAppIcon));
|
|
||||||
otherIcons.sort(Lang.bind(this, this._sortAppIcon));
|
|
||||||
|
|
||||||
if(otherIcons.length > 0) {
|
|
||||||
let mostRecentOtherIcon = otherIcons[0];
|
|
||||||
otherIcons = [];
|
|
||||||
otherIcons.push(mostRecentOtherIcon);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.icons = [];
|
|
||||||
this._arrows = [];
|
|
||||||
for (let i = 0; i < workspaceIcons.length; i++)
|
|
||||||
this._addIcon(workspaceIcons[i]);
|
|
||||||
if (workspaceIcons.length > 0 && otherIcons.length > 0)
|
|
||||||
this.addSeparator();
|
|
||||||
for (let i = 0; i < otherIcons.length; i++)
|
|
||||||
this._addIcon(otherIcons[i]);
|
|
||||||
|
|
||||||
this._curApp = -1;
|
|
||||||
this._iconSize = 0;
|
|
||||||
this._altTabPopup = altTabPopup;
|
|
||||||
this._mouseTimeOutId = 0;
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
_isWindowOnWorkspace: function(w, workspace) {
|
|
||||||
if (w.get_workspace() == workspace)
|
|
||||||
return true;
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
|
|
||||||
_sortAppIcon : function(appIcon1, appIcon2) {
|
|
||||||
let t1 = appIcon1.cachedWindows[0].get_user_time();
|
|
||||||
let t2 = appIcon2.cachedWindows[0].get_user_time();
|
|
||||||
if (t2 > t1) return 1;
|
|
||||||
else return -1;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
@@ -48,7 +48,7 @@ function init(metadata) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function enable() {
|
function enable() {
|
||||||
let statusMenu = Main.panel._statusArea.userMenu;
|
let statusMenu = Main.panel.statusArea.userMenu;
|
||||||
|
|
||||||
settings = Convenience.getSettings();
|
settings = Convenience.getSettings();
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@ function enable() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function disable() {
|
function disable() {
|
||||||
let statusMenu = Main.panel._statusArea.userMenu;
|
let statusMenu = Main.panel.statusArea.userMenu;
|
||||||
|
|
||||||
let children = statusMenu.menu._getMenuItems();
|
let children = statusMenu.menu._getMenuItems();
|
||||||
let index = children.length;
|
let index = children.length;
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ const ApplicationsButton = new Lang.Class({
|
|||||||
Extends: PanelMenu.SystemStatusButton,
|
Extends: PanelMenu.SystemStatusButton,
|
||||||
|
|
||||||
_init: function() {
|
_init: function() {
|
||||||
this.parent('start-here');
|
this.parent('start-here-symbolic');
|
||||||
|
|
||||||
this._appSys = Shell.AppSystem.get_default();
|
this._appSys = Shell.AppSystem.get_default();
|
||||||
this._installedChangedId = this._appSys.connect('installed-changed', Lang.bind(this, this._refresh));
|
this._installedChangedId = this._appSys.connect('installed-changed', Lang.bind(this, this._refresh));
|
||||||
@@ -99,9 +99,7 @@ let appsMenuButton;
|
|||||||
|
|
||||||
function enable() {
|
function enable() {
|
||||||
appsMenuButton = new ApplicationsButton();
|
appsMenuButton = new ApplicationsButton();
|
||||||
Main.panel._leftBox.insert_child_at_index(appsMenuButton.actor, 1);
|
Main.panel.addToStatusArea('apps-menu', appsMenuButton, 1, 'left');
|
||||||
Main.panel._leftBox.child_set(appsMenuButton.actor, { y_fill : true } );
|
|
||||||
Main.panel._menus.addMenu(appsMenuButton.menu);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function disable() {
|
function disable() {
|
||||||
|
|||||||
@@ -87,75 +87,76 @@ function init() {
|
|||||||
settings = Convenience.getSettings();
|
settings = Convenience.getSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function myCheckWorkspaces() {
|
||||||
|
let i;
|
||||||
|
let emptyWorkspaces = new Array(Main._workspaces.length);
|
||||||
|
|
||||||
|
for (i = 0; i < Main._workspaces.length; i++) {
|
||||||
|
let lastRemoved = Main._workspaces[i]._lastRemovedWindow;
|
||||||
|
if (lastRemoved &&
|
||||||
|
(lastRemoved.get_window_type() == Meta.WindowType.SPLASHSCREEN ||
|
||||||
|
lastRemoved.get_window_type() == Meta.WindowType.DIALOG ||
|
||||||
|
lastRemoved.get_window_type() == Meta.WindowType.MODAL_DIALOG))
|
||||||
|
emptyWorkspaces[i] = false;
|
||||||
|
else
|
||||||
|
emptyWorkspaces[i] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
let windows = global.get_window_actors();
|
||||||
|
for (i = 0; i < windows.length; i++) {
|
||||||
|
let win = windows[i];
|
||||||
|
|
||||||
|
if (win.get_meta_window().is_on_all_workspaces())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
let workspaceIndex = win.get_workspace();
|
||||||
|
emptyWorkspaces[workspaceIndex] = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we don't have an empty workspace at the end, add one
|
||||||
|
if (!emptyWorkspaces[emptyWorkspaces.length -1]) {
|
||||||
|
global.screen.append_new_workspace(false, global.get_current_time());
|
||||||
|
emptyWorkspaces.push(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
let activeWorkspaceIndex = global.screen.get_active_workspace_index();
|
||||||
|
let activeIsLast = activeWorkspaceIndex == global.screen.n_workspaces - 2;
|
||||||
|
let removingTrailWorkspaces = (emptyWorkspaces[activeWorkspaceIndex] &&
|
||||||
|
activeIsLast);
|
||||||
|
// Don't enter the overview when removing multiple empty workspaces at startup
|
||||||
|
let showOverview = (removingTrailWorkspaces &&
|
||||||
|
!emptyWorkspaces.every(function(x) { return x; }));
|
||||||
|
|
||||||
|
if (removingTrailWorkspaces) {
|
||||||
|
// "Merge" the empty workspace we are removing with the one at the end
|
||||||
|
Main.wm.blockAnimations();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete other empty workspaces; do it from the end to avoid index changes
|
||||||
|
for (i = emptyWorkspaces.length - 2; i >= 0; i--) {
|
||||||
|
if (emptyWorkspaces[i])
|
||||||
|
global.screen.remove_workspace(Main._workspaces[i], global.get_current_time());
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (removingTrailWorkspaces) {
|
||||||
|
global.screen.get_workspace_by_index(global.screen.n_workspaces - 1).activate(global.get_current_time());
|
||||||
|
|
||||||
|
Main.wm.unblockAnimations();
|
||||||
|
|
||||||
|
if (!Main.overview.visible && showOverview)
|
||||||
|
Main.overview.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
Main._checkWorkspacesId = 0;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
function enable() {
|
function enable() {
|
||||||
prevCheckWorkspaces = Main._checkWorkspaces;
|
prevCheckWorkspaces = Main._checkWorkspaces;
|
||||||
Main._checkWorkspaces = function() {
|
if (Meta.prefs_get_dynamic_workspaces())
|
||||||
let i;
|
Main._checkWorkspaces = myCheckWorkspaces;
|
||||||
let emptyWorkspaces = new Array(Main._workspaces.length);
|
|
||||||
|
|
||||||
for (i = 0; i < Main._workspaces.length; i++) {
|
|
||||||
let lastRemoved = Main._workspaces[i]._lastRemovedWindow;
|
|
||||||
if (lastRemoved &&
|
|
||||||
(lastRemoved.get_window_type() == Meta.WindowType.SPLASHSCREEN ||
|
|
||||||
lastRemoved.get_window_type() == Meta.WindowType.DIALOG ||
|
|
||||||
lastRemoved.get_window_type() == Meta.WindowType.MODAL_DIALOG))
|
|
||||||
emptyWorkspaces[i] = false;
|
|
||||||
else
|
|
||||||
emptyWorkspaces[i] = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
let windows = global.get_window_actors();
|
|
||||||
for (i = 0; i < windows.length; i++) {
|
|
||||||
let win = windows[i];
|
|
||||||
|
|
||||||
if (win.get_meta_window().is_on_all_workspaces())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
let workspaceIndex = win.get_workspace();
|
|
||||||
emptyWorkspaces[workspaceIndex] = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If we don't have an empty workspace at the end, add one
|
|
||||||
if (!emptyWorkspaces[emptyWorkspaces.length -1]) {
|
|
||||||
global.screen.append_new_workspace(false, global.get_current_time());
|
|
||||||
emptyWorkspaces.push(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
let activeWorkspaceIndex = global.screen.get_active_workspace_index();
|
|
||||||
let activeIsLast = activeWorkspaceIndex == global.screen.n_workspaces - 2;
|
|
||||||
let removingTrailWorkspaces = (emptyWorkspaces[activeWorkspaceIndex] &&
|
|
||||||
activeIsLast);
|
|
||||||
// Don't enter the overview when removing multiple empty workspaces at startup
|
|
||||||
let showOverview = (removingTrailWorkspaces &&
|
|
||||||
!emptyWorkspaces.every(function(x) { return x; }));
|
|
||||||
|
|
||||||
if (removingTrailWorkspaces) {
|
|
||||||
// "Merge" the empty workspace we are removing with the one at the end
|
|
||||||
Main.wm.blockAnimations();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete other empty workspaces; do it from the end to avoid index changes
|
|
||||||
for (i = emptyWorkspaces.length - 2; i >= 0; i--) {
|
|
||||||
if (emptyWorkspaces[i])
|
|
||||||
global.screen.remove_workspace(Main._workspaces[i], global.get_current_time());
|
|
||||||
else
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (removingTrailWorkspaces) {
|
|
||||||
global.screen.get_workspace_by_index(global.screen.n_workspaces - 1).activate(global.get_current_time());
|
|
||||||
|
|
||||||
Main.wm.unblockAnimations();
|
|
||||||
|
|
||||||
if (!Main.overview.visible && showOverview)
|
|
||||||
Main.overview.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
Main._checkWorkspacesId = 0;
|
|
||||||
return false;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
winMover = new WindowMover();
|
winMover = new WindowMover();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,8 +30,7 @@ const DriveMenuItem = new Lang.Class({
|
|||||||
this.addActor(this.label);
|
this.addActor(this.label);
|
||||||
this.actor.label_actor = this.label;
|
this.actor.label_actor = this.label;
|
||||||
|
|
||||||
let ejectIcon = new St.Icon({ icon_name: 'media-eject',
|
let ejectIcon = new St.Icon({ icon_name: 'media-eject-symbolic',
|
||||||
icon_type: St.IconType.SYMBOLIC,
|
|
||||||
style_class: 'popup-menu-icon ' });
|
style_class: 'popup-menu-icon ' });
|
||||||
let ejectButton = new St.Button({ child: ejectIcon });
|
let ejectButton = new St.Button({ child: ejectIcon });
|
||||||
ejectButton.connect('clicked', Lang.bind(this, this._eject));
|
ejectButton.connect('clicked', Lang.bind(this, this._eject));
|
||||||
@@ -54,7 +53,7 @@ const DriveMenu = new Lang.Class({
|
|||||||
Extends: PanelMenu.SystemStatusButton,
|
Extends: PanelMenu.SystemStatusButton,
|
||||||
|
|
||||||
_init: function() {
|
_init: function() {
|
||||||
this.parent('media-eject', _("Removable devices"));
|
this.parent('media-eject-symbolic', _("Removable devices"));
|
||||||
|
|
||||||
this._manager = new PlaceDisplay.PlacesManager();
|
this._manager = new PlaceDisplay.PlacesManager();
|
||||||
this._updatedId = this._manager.connect('mounts-updated', Lang.bind(this, this._update));
|
this._updatedId = this._manager.connect('mounts-updated', Lang.bind(this, this._update));
|
||||||
|
|||||||
@@ -141,7 +141,6 @@ Source.prototype = {
|
|||||||
|
|
||||||
if (!this._iconUri) {
|
if (!this._iconUri) {
|
||||||
iconBox.child = new St.Icon({ icon_name: 'avatar-default',
|
iconBox.child = new St.Icon({ icon_name: 'avatar-default',
|
||||||
icon_type: St.IconType.FULLCOLOR,
|
|
||||||
icon_size: iconBox._size });
|
icon_size: iconBox._size });
|
||||||
} else {
|
} else {
|
||||||
let textureCache = St.TextureCache.get_default();
|
let textureCache = St.TextureCache.get_default();
|
||||||
|
|||||||
@@ -301,13 +301,13 @@ function enable() {
|
|||||||
workspaceInjections['_calculateWindowTransformationsNatural'] = undefined;
|
workspaceInjections['_calculateWindowTransformationsNatural'] = undefined;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* positionWindows:
|
* _realPositionWindows:
|
||||||
* @flags:
|
* @flags:
|
||||||
* INITIAL - this is the initial positioning of the windows.
|
* INITIAL - this is the initial positioning of the windows.
|
||||||
* ANIMATE - Indicates that we need animate changing position.
|
* ANIMATE - Indicates that we need animate changing position.
|
||||||
*/
|
*/
|
||||||
workspaceInjections['positionWindows'] = Workspace.Workspace.prototype.positionWindows;
|
workspaceInjections['positionWindows'] = Workspace.Workspace.prototype._realPositionWindows;
|
||||||
Workspace.Workspace.prototype.positionWindows = function(flags) {
|
Workspace.Workspace.prototype._realPositionWindows = function(flags) {
|
||||||
if (this._repositionWindowsId > 0) {
|
if (this._repositionWindowsId > 0) {
|
||||||
Mainloop.source_remove(this._repositionWindowsId);
|
Mainloop.source_remove(this._repositionWindowsId);
|
||||||
this._repositionWindowsId = 0;
|
this._repositionWindowsId = 0;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||||
|
|
||||||
const Gdk = imports.gi.Gdk;
|
const Gio = imports.gi.Gio;
|
||||||
const GLib = imports.gi.GLib;
|
const GLib = imports.gi.GLib;
|
||||||
const Lang = imports.lang;
|
const Lang = imports.lang;
|
||||||
const Shell = imports.gi.Shell;
|
const Shell = imports.gi.Shell;
|
||||||
@@ -19,14 +19,45 @@ const ExtensionUtils = imports.misc.extensionUtils;
|
|||||||
const Me = ExtensionUtils.getCurrentExtension();
|
const Me = ExtensionUtils.getCurrentExtension();
|
||||||
const Convenience = Me.imports.convenience;
|
const Convenience = Me.imports.convenience;
|
||||||
|
|
||||||
const PLACE_ICON_SIZE = 22;
|
const PLACE_ICON_SIZE = 16;
|
||||||
|
|
||||||
|
function iconForPlace(place) {
|
||||||
|
let split = place.id.split(':');
|
||||||
|
let kind = split.shift();
|
||||||
|
let uri = split.join(':');
|
||||||
|
|
||||||
|
let gicon = new Gio.ThemedIcon({ name: 'folder-symbolic' });
|
||||||
|
switch(kind) {
|
||||||
|
case 'special':
|
||||||
|
switch(uri) {
|
||||||
|
case 'home':
|
||||||
|
gicon = new Gio.ThemedIcon({ name: 'user-home-symbolic' });
|
||||||
|
break;
|
||||||
|
case 'desktop':
|
||||||
|
// FIXME: There is no user-desktop-symbolic
|
||||||
|
gicon = new Gio.ThemedIcon({ name: 'folder-symbolic' });
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'bookmark':
|
||||||
|
let info = Gio.File.new_for_uri(uri).query_info('standard::symbolic-icon', 0, null);
|
||||||
|
gicon = info.get_symbolic_icon(info);
|
||||||
|
break;
|
||||||
|
case 'mount':
|
||||||
|
gicon = place._mount.get_symbolic_icon();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new St.Icon({ gicon: gicon,
|
||||||
|
icon_size: PLACE_ICON_SIZE });
|
||||||
|
}
|
||||||
|
|
||||||
const PlacesMenu = new Lang.Class({
|
const PlacesMenu = new Lang.Class({
|
||||||
Name: 'PlacesMenu.PlacesMenu',
|
Name: 'PlacesMenu.PlacesMenu',
|
||||||
Extends: PanelMenu.SystemStatusButton,
|
Extends: PanelMenu.SystemStatusButton,
|
||||||
|
|
||||||
_init: function() {
|
_init: function() {
|
||||||
this.parent('folder');
|
this.parent('folder-symbolic');
|
||||||
this.placesManager = new PlaceDisplay.PlacesManager();
|
this.placesManager = new PlaceDisplay.PlacesManager();
|
||||||
|
|
||||||
this.defaultItems = [];
|
this.defaultItems = [];
|
||||||
@@ -66,7 +97,7 @@ const PlacesMenu = new Lang.Class({
|
|||||||
|
|
||||||
for (let placeid = 0; placeid < this.defaultPlaces.length; placeid++) {
|
for (let placeid = 0; placeid < this.defaultPlaces.length; placeid++) {
|
||||||
this.defaultItems[placeid] = new PopupMenu.PopupMenuItem(this.defaultPlaces[placeid].name);
|
this.defaultItems[placeid] = new PopupMenu.PopupMenuItem(this.defaultPlaces[placeid].name);
|
||||||
let icon = this.defaultPlaces[placeid].iconFactory(PLACE_ICON_SIZE);
|
let icon = iconForPlace(this.defaultPlaces[placeid]);
|
||||||
this.defaultItems[placeid].addActor(icon, { align: St.Align.END, span: -1 });
|
this.defaultItems[placeid].addActor(icon, { align: St.Align.END, span: -1 });
|
||||||
this.defaultItems[placeid].place = this.defaultPlaces[placeid];
|
this.defaultItems[placeid].place = this.defaultPlaces[placeid];
|
||||||
this.menu.addMenuItem(this.defaultItems[placeid]);
|
this.menu.addMenuItem(this.defaultItems[placeid]);
|
||||||
@@ -82,7 +113,7 @@ const PlacesMenu = new Lang.Class({
|
|||||||
|
|
||||||
for (let bookmarkid = 0; bookmarkid < this.bookmarks.length; bookmarkid++) {
|
for (let bookmarkid = 0; bookmarkid < this.bookmarks.length; bookmarkid++) {
|
||||||
this.bookmarkItems[bookmarkid] = new PopupMenu.PopupMenuItem(this.bookmarks[bookmarkid].name);
|
this.bookmarkItems[bookmarkid] = new PopupMenu.PopupMenuItem(this.bookmarks[bookmarkid].name);
|
||||||
let icon = this.bookmarks[bookmarkid].iconFactory(PLACE_ICON_SIZE);
|
let icon = iconForPlace(this.bookmarks[bookmarkid]);
|
||||||
this.bookmarkItems[bookmarkid].addActor(icon, { align: St.Align.END, span: -1 });
|
this.bookmarkItems[bookmarkid].addActor(icon, { align: St.Align.END, span: -1 });
|
||||||
this.bookmarkItems[bookmarkid].place = this.bookmarks[bookmarkid];
|
this.bookmarkItems[bookmarkid].place = this.bookmarks[bookmarkid];
|
||||||
this._bookmarksSection.addMenuItem(this.bookmarkItems[bookmarkid]);
|
this._bookmarksSection.addMenuItem(this.bookmarkItems[bookmarkid]);
|
||||||
@@ -97,7 +128,7 @@ const PlacesMenu = new Lang.Class({
|
|||||||
|
|
||||||
for (let devid = 0; devid < this.devices.length; devid++) {
|
for (let devid = 0; devid < this.devices.length; devid++) {
|
||||||
this.deviceItems[devid] = new PopupMenu.PopupMenuItem(this.devices[devid].name);
|
this.deviceItems[devid] = new PopupMenu.PopupMenuItem(this.devices[devid].name);
|
||||||
let icon = this.devices[devid].iconFactory(PLACE_ICON_SIZE);
|
let icon = iconForPlace(this.devices[devid]);
|
||||||
this.deviceItems[devid].addActor(icon, { align: St.Align.END, span: -1 });
|
this.deviceItems[devid].addActor(icon, { align: St.Align.END, span: -1 });
|
||||||
this.deviceItems[devid].place = this.devices[devid];
|
this.deviceItems[devid].place = this.devices[devid];
|
||||||
this._devicesMenuItem.menu.addMenuItem(this.deviceItems[devid]);
|
this._devicesMenuItem.menu.addMenuItem(this.deviceItems[devid]);
|
||||||
@@ -131,7 +162,7 @@ let _indicator;
|
|||||||
|
|
||||||
function enable() {
|
function enable() {
|
||||||
_indicator = new PlacesMenu;
|
_indicator = new PlacesMenu;
|
||||||
Main.panel.addToStatusArea('places-menu', _indicator);
|
Main.panel.addToStatusArea('places-menu', _indicator, 1, 'left');
|
||||||
}
|
}
|
||||||
|
|
||||||
function disable() {
|
function disable() {
|
||||||
|
|||||||
@@ -8,13 +8,21 @@ const St = imports.gi.St;
|
|||||||
const Shell = imports.gi.Shell;
|
const Shell = imports.gi.Shell;
|
||||||
|
|
||||||
const Main = imports.ui.main;
|
const Main = imports.ui.main;
|
||||||
|
const Tweener = imports.ui.tweener;
|
||||||
|
|
||||||
|
const Gettext = imports.gettext.domain('gnome-shell-extensions');
|
||||||
|
const _ = Gettext.gettext;
|
||||||
|
|
||||||
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = ExtensionUtils.getCurrentExtension();
|
||||||
|
const Convenience = Me.imports.convenience;
|
||||||
|
|
||||||
const INDICATOR_UPDATE_INTERVAL = 500;
|
const INDICATOR_UPDATE_INTERVAL = 500;
|
||||||
const INDICATOR_NUM_GRID_LINES = 3;
|
const INDICATOR_NUM_GRID_LINES = 3;
|
||||||
|
|
||||||
let _cpuIndicator;
|
const ITEM_LABEL_SHOW_TIME = 0.15;
|
||||||
let _memIndicator;
|
const ITEM_LABEL_HIDE_TIME = 0.1;
|
||||||
let _box;
|
const ITEM_HOVER_TIMEOUT = 300;
|
||||||
|
|
||||||
const Indicator = new Lang.Class({
|
const Indicator = new Lang.Class({
|
||||||
Name: 'SystemMonitor.Indicator',
|
Name: 'SystemMonitor.Indicator',
|
||||||
@@ -22,7 +30,6 @@ const Indicator = new Lang.Class({
|
|||||||
_init: function() {
|
_init: function() {
|
||||||
this._initValues();
|
this._initValues();
|
||||||
this.drawing_area = new St.DrawingArea({ reactive: true });
|
this.drawing_area = new St.DrawingArea({ reactive: true });
|
||||||
this.drawing_area.width = 100; this.drawing_area.height = 100;
|
|
||||||
this.drawing_area.connect('repaint', Lang.bind(this, this._draw));
|
this.drawing_area.connect('repaint', Lang.bind(this, this._draw));
|
||||||
this.drawing_area.connect('button-press-event', function() {
|
this.drawing_area.connect('button-press-event', function() {
|
||||||
let app = Shell.AppSystem.get_default().lookup_app('gnome-system-monitor.desktop');
|
let app = Shell.AppSystem.get_default().lookup_app('gnome-system-monitor.desktop');
|
||||||
@@ -30,7 +37,8 @@ const Indicator = new Lang.Class({
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.actor = new St.Bin({ style_class: "extension-systemMonitor-indicator-area",
|
this.actor = new St.Bin({ style_class: "extension-systemMonitor-indicator-area",
|
||||||
reactive: true});
|
reactive: true, track_hover: true,
|
||||||
|
x_fill: true, y_fill: true });
|
||||||
this.actor.add_actor(this.drawing_area);
|
this.actor.add_actor(this.drawing_area);
|
||||||
|
|
||||||
this._timeout = Mainloop.timeout_add(INDICATOR_UPDATE_INTERVAL, Lang.bind(this, function () {
|
this._timeout = Mainloop.timeout_add(INDICATOR_UPDATE_INTERVAL, Lang.bind(this, function () {
|
||||||
@@ -40,10 +48,63 @@ const Indicator = new Lang.Class({
|
|||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
showLabel: function() {
|
||||||
|
if (this.label == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
this.label.opacity = 0;
|
||||||
|
this.label.show();
|
||||||
|
|
||||||
|
let [stageX, stageY] = this.actor.get_transformed_position();
|
||||||
|
|
||||||
|
let itemWidth = this.actor.allocation.x2 - this.actor.allocation.x1;
|
||||||
|
let itemHeight = this.actor.allocation.y2 - this.actor.allocation.y1;
|
||||||
|
|
||||||
|
let labelWidth = this.label.width;
|
||||||
|
let labelHeight = this.label.height;
|
||||||
|
let xOffset = Math.floor((itemWidth - labelWidth) / 2)
|
||||||
|
|
||||||
|
let x = stageX + xOffset;
|
||||||
|
|
||||||
|
let node = this.label.get_theme_node();
|
||||||
|
let yOffset = node.get_length('-y-offset');
|
||||||
|
|
||||||
|
let y = stageY - this.label.get_height() - yOffset;
|
||||||
|
|
||||||
|
this.label.set_position(x, y);
|
||||||
|
Tweener.addTween(this.label,
|
||||||
|
{ opacity: 255,
|
||||||
|
time: ITEM_LABEL_SHOW_TIME,
|
||||||
|
transition: 'easeOutQuad',
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
setLabelText: function(text) {
|
||||||
|
if (this.label == null)
|
||||||
|
this.label = new St.Label({ style_class: 'extension-systemMonitor-indicator-label'});
|
||||||
|
|
||||||
|
this.label.set_text(text);
|
||||||
|
Main.layoutManager.addChrome(this.label);
|
||||||
|
this.label.hide();
|
||||||
|
},
|
||||||
|
|
||||||
|
hideLabel: function () {
|
||||||
|
Tweener.addTween(this.label,
|
||||||
|
{ opacity: 0,
|
||||||
|
time: ITEM_LABEL_HIDE_TIME,
|
||||||
|
transition: 'easeOutQuad',
|
||||||
|
onComplete: Lang.bind(this, function() {
|
||||||
|
this.label.hide();
|
||||||
|
})
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
destroy: function() {
|
destroy: function() {
|
||||||
Mainloop.source_remove(this._timeout);
|
Mainloop.source_remove(this._timeout);
|
||||||
|
|
||||||
this.actor.destroy();
|
this.actor.destroy();
|
||||||
|
if (this.label)
|
||||||
|
this.label.destroy();
|
||||||
},
|
},
|
||||||
|
|
||||||
_initValues: function() {
|
_initValues: function() {
|
||||||
@@ -148,6 +209,8 @@ const CpuIndicator = new Lang.Class({
|
|||||||
this.renderStats = this.renderStats.sort(function(a,b) {
|
this.renderStats = this.renderStats.sort(function(a,b) {
|
||||||
return renderStatOrder[a] - renderStatOrder[b];
|
return renderStatOrder[a] - renderStatOrder[b];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.setLabelText(_("CPU"));
|
||||||
},
|
},
|
||||||
|
|
||||||
_initValues: function() {
|
_initValues: function() {
|
||||||
@@ -199,6 +262,8 @@ const MemoryIndicator = new Lang.Class({
|
|||||||
this.renderStats = this.renderStats.sort(function(a,b) {
|
this.renderStats = this.renderStats.sort(function(a,b) {
|
||||||
return renderStatOrder[a] - renderStatOrder[b];
|
return renderStatOrder[a] - renderStatOrder[b];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.setLabelText(_("Memory"));
|
||||||
},
|
},
|
||||||
|
|
||||||
_initValues: function() {
|
_initValues: function() {
|
||||||
@@ -222,23 +287,74 @@ const MemoryIndicator = new Lang.Class({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const INDICATORS = [CpuIndicator, MemoryIndicator];
|
||||||
|
|
||||||
|
const Extension = new Lang.Class({
|
||||||
|
Name: 'SystemMonitor.Extension',
|
||||||
|
|
||||||
|
_init: function() {
|
||||||
|
Convenience.initTranslations();
|
||||||
|
|
||||||
|
this._showLabelTimeoutId = 0;
|
||||||
|
this._resetHoverTimeoutId = 0;
|
||||||
|
this._labelShowing = false;
|
||||||
|
},
|
||||||
|
|
||||||
|
enable: function() {
|
||||||
|
this._box = new St.BoxLayout({ style_class: 'extension-systemMonitor-container',
|
||||||
|
x_align: Clutter.ActorAlign.START,
|
||||||
|
x_expand: true });
|
||||||
|
this._indicators = [ ];
|
||||||
|
|
||||||
|
for (let i = 0; i < INDICATORS.length; i++) {
|
||||||
|
let indicator = new (INDICATORS[i])();
|
||||||
|
|
||||||
|
indicator.actor.connect('notify::hover', Lang.bind(this, function() {
|
||||||
|
this._onHover(indicator);
|
||||||
|
}));
|
||||||
|
this._box.add_actor(indicator.actor);
|
||||||
|
this._indicators.push(indicator);
|
||||||
|
}
|
||||||
|
|
||||||
|
Main.messageTray.actor.add_actor(this._box);
|
||||||
|
},
|
||||||
|
|
||||||
|
disable: function() {
|
||||||
|
this._indicators.forEach(function(i) { i.destroy(); });
|
||||||
|
this._box.destroy();
|
||||||
|
},
|
||||||
|
|
||||||
|
_onHover: function (item) {
|
||||||
|
if (item.actor.get_hover()) {
|
||||||
|
if (this._showLabelTimeoutId == 0) {
|
||||||
|
let timeout = this._labelShowing ? 0 : ITEM_HOVER_TIMEOUT;
|
||||||
|
this._showLabelTimeoutId = Mainloop.timeout_add(timeout,
|
||||||
|
Lang.bind(this, function() {
|
||||||
|
this._labelShowing = true;
|
||||||
|
item.showLabel();
|
||||||
|
return false;
|
||||||
|
}));
|
||||||
|
if (this._resetHoverTimeoutId > 0) {
|
||||||
|
Mainloop.source_remove(this._resetHoverTimeoutId);
|
||||||
|
this._resetHoverTimeoutId = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (this._showLabelTimeoutId > 0)
|
||||||
|
Mainloop.source_remove(this._showLabelTimeoutId);
|
||||||
|
this._showLabelTimeoutId = 0;
|
||||||
|
item.hideLabel();
|
||||||
|
if (this._labelShowing) {
|
||||||
|
this._resetHoverTimeoutId = Mainloop.timeout_add(ITEM_HOVER_TIMEOUT,
|
||||||
|
Lang.bind(this, function() {
|
||||||
|
this._labelShowing = false;
|
||||||
|
return false;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
// nothing to do here
|
return new Extension();
|
||||||
}
|
|
||||||
|
|
||||||
function enable() {
|
|
||||||
_cpuIndicator = new CpuIndicator();
|
|
||||||
_memIndicator = new MemoryIndicator();
|
|
||||||
_box = new St.BoxLayout({ style_class: 'extension-systemMonitor-container' });
|
|
||||||
_box.add(_cpuIndicator.actor);
|
|
||||||
_box.add(_memIndicator.actor);
|
|
||||||
Main.messageTray.actor.add_actor(_box);
|
|
||||||
}
|
|
||||||
|
|
||||||
function disable() {
|
|
||||||
_cpuIndicator.destroy();
|
|
||||||
_cpuIndicator = null;
|
|
||||||
_memIndicator.destroy();
|
|
||||||
_memIndicator = null;
|
|
||||||
_box.destroy();
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,15 +2,17 @@
|
|||||||
spacing: 5px;
|
spacing: 5px;
|
||||||
padding-left: 5px;
|
padding-left: 5px;
|
||||||
padding-right: 5px;
|
padding-right: 5px;
|
||||||
padding-bottom: 1px;
|
padding-bottom: 10px;
|
||||||
padding-top: 0px;
|
padding-top: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.extension-systemMonitor-indicator-area {
|
.extension-systemMonitor-indicator-area {
|
||||||
border: 1px solid #8d8d8d;
|
border: 1px solid #8d8d8d;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
width: 100px;
|
width: 100px;
|
||||||
height: 30px;
|
/* message tray is 72px, so 20px padding of the container,
|
||||||
|
2px of border, makes it 50px */
|
||||||
|
height: 50px;
|
||||||
-grid-color: #575757;
|
-grid-color: #575757;
|
||||||
-cpu-total-color: rgb(0,154,62);
|
-cpu-total-color: rgb(0,154,62);
|
||||||
-cpu-user-color: rgb(69,154,0);
|
-cpu-user-color: rgb(69,154,0);
|
||||||
@@ -21,3 +23,13 @@
|
|||||||
-mem-other-color: rgb(205,203,41);
|
-mem-other-color: rgb(205,203,41);
|
||||||
background-color: #1e1e1e;
|
background-color: #1e1e1e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.extension-systemMonitor-indicator-label {
|
||||||
|
border-radius: 7px;
|
||||||
|
padding: 4px 12px;
|
||||||
|
background-color: rgba(0,0,0,0.9);
|
||||||
|
text-align: center;
|
||||||
|
-y-offset: 8px;
|
||||||
|
font-size: 9pt;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ function enable() {
|
|||||||
workViewInjections['_onKeyRelease'] = undefined;
|
workViewInjections['_onKeyRelease'] = undefined;
|
||||||
|
|
||||||
WorkspacesView.WorkspacesView.prototype._onKeyPress = function(s, o) {
|
WorkspacesView.WorkspacesView.prototype._onKeyPress = function(s, o) {
|
||||||
if(Main.overview._viewSelector._activeTab.id != 'windows')
|
if(Main.overview._viewSelector._activePage != Main.overview._viewSelector._workspacesPage)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if ((o.get_key_symbol() == Clutter.KEY_Alt_L ||
|
if ((o.get_key_symbol() == Clutter.KEY_Alt_L ||
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||||
|
|
||||||
const DBus = imports.dbus;
|
|
||||||
const Gdk = imports.gi.Gdk;
|
const Gdk = imports.gi.Gdk;
|
||||||
|
const Gio = imports.gi.Gio;
|
||||||
const GLib = imports.gi.GLib;
|
const GLib = imports.gi.GLib;
|
||||||
const GnomeDesktop = imports.gi.GnomeDesktop;
|
const GnomeDesktop = imports.gi.GnomeDesktop;
|
||||||
const Lang = imports.lang;
|
const Lang = imports.lang;
|
||||||
@@ -33,25 +33,23 @@ let rotations = [ [ GnomeDesktop.RRRotation.ROTATION_0, N_("Normal") ],
|
|||||||
[ GnomeDesktop.RRRotation.ROTATION_180, N_("Upside-down") ]
|
[ GnomeDesktop.RRRotation.ROTATION_180, N_("Upside-down") ]
|
||||||
];
|
];
|
||||||
|
|
||||||
const XRandr2Iface = {
|
const XRandr2Iface = <interface name='org.gnome.SettingsDaemon.XRANDR_2'>
|
||||||
name: 'org.gnome.SettingsDaemon.XRANDR_2',
|
<method name='ApplyConfiguration'>
|
||||||
methods: [
|
<arg type='x' direction='in'/>
|
||||||
{ name: 'ApplyConfiguration', inSignature: 'xx', outSignature: '' },
|
<arg type='x' direction='in'/>
|
||||||
]
|
</method>
|
||||||
};
|
</interface>;
|
||||||
let XRandr2 = DBus.makeProxyClass(XRandr2Iface);
|
|
||||||
|
|
||||||
function Indicator() {
|
const XRandr2 = Gio.DBusProxy.makeProxyWrapper(XRandr2Iface);
|
||||||
this._init.apply(this, arguments);
|
|
||||||
}
|
|
||||||
|
|
||||||
Indicator.prototype = {
|
const Indicator = new Lang.Class({
|
||||||
__proto__: PanelMenu.SystemStatusButton.prototype,
|
Name: 'XRandRIndicator',
|
||||||
|
Extends: PanelMenu.SystemStatusButton,
|
||||||
|
|
||||||
_init: function() {
|
_init: function() {
|
||||||
PanelMenu.SystemStatusButton.prototype._init.call(this, 'preferences-desktop-display');
|
this.parent('preferences-desktop-display-symbolic', _("Display"));
|
||||||
|
|
||||||
this._proxy = new XRandr2(DBus.session, 'org.gnome.SettingsDaemon', '/org/gnome/SettingsDaemon/XRANDR');
|
this._proxy = new XRandr2(Gio.DBus.session, 'org.gnome.SettingsDaemon', '/org/gnome/SettingsDaemon/XRANDR');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
this._screen = new GnomeDesktop.RRScreen({ gdk_screen: Gdk.Screen.get_default() });
|
this._screen = new GnomeDesktop.RRScreen({ gdk_screen: Gdk.Screen.get_default() });
|
||||||
@@ -79,9 +77,7 @@ Indicator.prototype = {
|
|||||||
this._addOutputItem(config, outputs[i]);
|
this._addOutputItem(config, outputs[i]);
|
||||||
}
|
}
|
||||||
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
|
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
|
||||||
this.menu.addAction(_("Configure display settings..."), function() {
|
this.menu.addSettingsAction(_("Display Settings"), 'gnome-display-panel.desktop');
|
||||||
GLib.spawn_command_line_async('gnome-control-center display');
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_addOutputItem: function(config, output) {
|
_addOutputItem: function(config, output) {
|
||||||
@@ -137,8 +133,7 @@ Indicator.prototype = {
|
|||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
|
|
||||||
|
|
||||||
function init(metadata) {
|
function init(metadata) {
|
||||||
Convenience.initTranslations();
|
Convenience.initTranslations();
|
||||||
|
|||||||
@@ -11,74 +11,51 @@ msgstr ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||||
"shell&keywords=I18N+L10N&component=extensions\n"
|
"shell&keywords=I18N+L10N&component=extensions\n"
|
||||||
"POT-Creation-Date: 2012-06-08 12:07+0000\n"
|
"POT-Creation-Date: 2012-08-22 14:21+0000\n"
|
||||||
"PO-Revision-Date: 2012-08-25 12:01+0200\n"
|
"PO-Revision-Date: 2012-08-25 12:01+0200\n"
|
||||||
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
||||||
|
"Language-Team: Español <gnome-es-list@gnome.org>\n"
|
||||||
"Language: \n"
|
"Language: \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"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
"X-Generator: Gtranslator 2.91.5\n"
|
"X-Generator: Gtranslator 2.91.5\n"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
|
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
|
||||||
msgid "The alt tab behaviour."
|
msgid "The application icon mode."
|
||||||
msgstr "El modo de icono de la aplicación."
|
msgstr "El modo de icono de la aplicación."
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
|
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sets the Alt-Tab behaviour. Possible values are: all_thumbnails and "
|
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||||
|
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||||
"only' (shows only the application icon) or 'both'."
|
"only' (shows only the application icon) or 'both'."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Establece el comportamiento de Alt+Tab. Los valores posibles son: "
|
"Configura cómo se muestran las ventanas en el intercambiador. Las opciones "
|
||||||
"«native» (nativo), «all_thumbnails» (todo y miniaturas) y "
|
"posibles son «thumbnail-only» (muestra una miniatura de la ventana, «app-"
|
||||||
"«workspace_icons» (iconos de áreas de trabajo). Para obtener información más "
|
"icon-only» (sólo muestra el icono de la aplicación) o «both» (se muestran "
|
||||||
|
"ambas cosas)."
|
||||||
|
|
||||||
|
#: ../extensions/alternate-tab/prefs.js:26
|
||||||
|
msgid "Thumbnail only"
|
||||||
msgstr "Sólo miniaturas"
|
msgstr "Sólo miniaturas"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:27
|
#: ../extensions/alternate-tab/prefs.js:27
|
||||||
msgid "All & Thumbnails"
|
msgid "Application icon only"
|
||||||
msgstr "Sólo icono de la aplicación"
|
msgstr "Sólo icono de la aplicación"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:28
|
#: ../extensions/alternate-tab/prefs.js:28
|
||||||
msgid ""
|
msgid "Thumbnail and application icon"
|
||||||
"This mode presents all applications from all workspaces in one selection "
|
|
||||||
"list. Instead of using the application icon of every window, it uses small "
|
|
||||||
"thumbnails resembling the window itself."
|
|
||||||
msgstr ""
|
|
||||||
"Este modo presenta todas las aplicaciones de todas las áreas de trabajo en "
|
|
||||||
"una lista de selección. En lugar de usar el icono de aplicación de cada "
|
|
||||||
msgstr "Miniatura e icono de la aplicación"
|
msgstr "Miniatura e icono de la aplicación"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:34
|
#: ../extensions/alternate-tab/prefs.js:43
|
||||||
msgid "Workspace & Icons"
|
msgid "Present windows as"
|
||||||
msgstr "Presentar ventanas como"
|
msgstr "Presentar ventanas como"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:35
|
#: ../extensions/alternate-tab/prefs.js:68
|
||||||
msgid ""
|
msgid "Show only windows in the current workspace"
|
||||||
"This mode let's you switch between the applications of your current "
|
|
||||||
"workspace and gives you additionally the option to switch to the last used "
|
|
||||||
"application of your previous workspace. This is always the last symbol in "
|
|
||||||
"the list and is segregated by a separator/vertical line if available. \n"
|
|
||||||
"Every window is represented by its application icon."
|
|
||||||
msgstr ""
|
|
||||||
"Este modo le permite alternar entre las aplicaciones de su área de trabajo "
|
|
||||||
"actual y le da la opción de cambiar a la última aplicación utilizada de su "
|
|
||||||
"área de trabajo anterior. Este siempre es el último símbolo de la lista y "
|
|
||||||
"está separado por un separador/línea vertical si está disponible.\n"
|
|
||||||
"Cada ventana está representada por su icono de aplicación."
|
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:41
|
|
||||||
msgid "Move current selection to front before closing the popup"
|
|
||||||
msgstr ""
|
|
||||||
"Mover la selección actual al frente antes de cerrar la ventana emergente"
|
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:58
|
|
||||||
msgid ""
|
|
||||||
"The Alternate Tab can be used in different modes, that affect the way "
|
|
||||||
"windows are chosen and presented."
|
|
||||||
msgstr ""
|
|
||||||
"La combinación de teclas Alt+Tab se puede usar en diferentes modos, que "
|
|
||||||
msgstr "Mostrar ventanas solamente en el área de trabajo actual"
|
msgstr "Mostrar ventanas solamente en el área de trabajo actual"
|
||||||
|
|
||||||
#. add the new entries
|
#. add the new entries
|
||||||
@@ -90,7 +67,6 @@ msgid "Hibernate"
|
|||||||
msgid "Hibernate"
|
msgid "Hibernate"
|
||||||
msgstr "Hibernar"
|
msgstr "Hibernar"
|
||||||
|
|
||||||
#: ../extensions/alternative-status-menu/extension.js:78
|
|
||||||
#: ../extensions/alternative-status-menu/extension.js:78
|
#: ../extensions/alternative-status-menu/extension.js:78
|
||||||
msgid "Power Off"
|
msgid "Power Off"
|
||||||
msgstr "Apagar"
|
msgstr "Apagar"
|
||||||
@@ -313,6 +289,14 @@ msgstr ""
|
|||||||
#: ../extensions/places-menu/extension.js:39
|
#: ../extensions/places-menu/extension.js:39
|
||||||
msgid "Removable Devices"
|
msgid "Removable Devices"
|
||||||
msgstr "Dispositivos extraíbles"
|
msgstr "Dispositivos extraíbles"
|
||||||
|
|
||||||
|
#: ../extensions/systemMonitor/extension.js:213
|
||||||
|
msgid "CPU"
|
||||||
|
msgstr "CPU"
|
||||||
|
|
||||||
|
#: ../extensions/systemMonitor/extension.js:266
|
||||||
|
msgid "Memory"
|
||||||
|
msgstr "Memoria"
|
||||||
|
|
||||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
|
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
|
||||||
msgid "Theme name"
|
msgid "Theme name"
|
||||||
@@ -358,6 +342,63 @@ msgstr "Hacia abajo"
|
|||||||
#: ../extensions/xrandr-indicator/extension.js:82
|
#: ../extensions/xrandr-indicator/extension.js:82
|
||||||
msgid "Configure display settings..."
|
msgid "Configure display settings..."
|
||||||
msgstr "Configurar las opciones de pantalla…"
|
msgstr "Configurar las opciones de pantalla…"
|
||||||
|
|
||||||
|
#~ msgid "The alt tab behaviour."
|
||||||
|
#~ msgstr "El comportamiento de Alt+Tab."
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "Sets the Alt-Tab behaviour. Possible values are: all_thumbnails and "
|
||||||
|
#~ "workspace_icons. See the configuration dialogs for details."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Establece el comportamiento de Alt+Tab. Los valores posibles son: "
|
||||||
|
#~ "«native» (nativo), «all_thumbnails» (todo y miniaturas) y "
|
||||||
|
#~ "«workspace_icons» (iconos de áreas de trabajo). Para obtener información "
|
||||||
|
#~ "más detallada, consulte la configuración de los diálogos "
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "This mode presents all applications from all workspaces in one selection "
|
||||||
|
#~ "list. Instead of using the application icon of every window, it uses "
|
||||||
|
#~ "small thumbnails resembling the window itself."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Este modo presenta todas las aplicaciones de todas las áreas de trabajo "
|
||||||
|
#~ "en una lista de selección. En lugar de usar el icono de aplicación de "
|
||||||
|
#~ "cada ventana, usa pequeñas miniaturas que se asemejan a la propia ventana."
|
||||||
|
|
||||||
|
#~ msgid "Workspace & Icons"
|
||||||
|
#~ msgstr "Área de trabajo e iconos"
|
||||||
|
|
||||||
|
#~| msgid ""
|
||||||
|
#~| "This mode let's you switch between the applications of your current "
|
||||||
|
#~| "workspace and gives you additionally the option to switch to the last "
|
||||||
|
#~| "used application of your previous workspace. This is always the last "
|
||||||
|
#~| "symbol in the list and is segregated by a separator/vertical line if "
|
||||||
|
#~| "available. \n"
|
||||||
|
#~| "Every window is represented by its application icon."
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "This mode lets you switch between the applications of your current "
|
||||||
|
#~ "workspace and gives you additionally the option to switch to the last "
|
||||||
|
#~ "used application of your previous workspace. This is always the last "
|
||||||
|
#~ "symbol in the list and is separated by a separator/vertical line if "
|
||||||
|
#~ "available. \n"
|
||||||
|
#~ "Every window is represented by its application icon."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Este modo le permite alternar entre las aplicaciones de su área de "
|
||||||
|
#~ "trabajo actual y le da la opción de cambiar a la última aplicación "
|
||||||
|
#~ "utilizada de su área de trabajo anterior. Este siempre es el último "
|
||||||
|
#~ "símbolo de la lista y está separado por un separador/línea vertical si "
|
||||||
|
#~ "está disponible.\n"
|
||||||
|
#~ "Cada ventana está representada por su icono de aplicación."
|
||||||
|
|
||||||
|
#~ msgid "Move current selection to front before closing the popup"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Mover la selección actual al frente antes de cerrar la ventana emergente"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "The Alternate Tab can be used in different modes, that affect the way "
|
||||||
|
#~ "windows are chosen and presented."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "La combinación de teclas Alt+Tab se puede usar en diferentes modos, que "
|
||||||
|
#~ "afectan la manera en que se eligen y presentan las ventanas."
|
||||||
|
|
||||||
#~ msgid "Indicates if Alternate Tab is newly installed"
|
#~ msgid "Indicates if Alternate Tab is newly installed"
|
||||||
#~ msgstr "Indica si se ha instalado Alt+Tab recientemente"
|
#~ msgstr "Indica si se ha instalado Alt+Tab recientemente"
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2012-04-30 16:43+0200\n"
|
"POT-Creation-Date: 2012-08-30 04:14+0200\n"
|
||||||
"PO-Revision-Date: 2012-04-30 16:42+0200\n"
|
"PO-Revision-Date: 2012-08-30 04:16+0200\n"
|
||||||
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
|
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
|
||||||
"Language-Team: Galician <gnome-l10n-gl@gnome.org>\n"
|
"Language-Team: Galician <gnome-l10n-gl@gnome.org>\n"
|
||||||
"Language: gl\n"
|
"Language: gl\n"
|
||||||
@@ -18,64 +18,41 @@ msgstr ""
|
|||||||
"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"
|
||||||
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
|
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
|
||||||
|
"X-Generator: Gtranslator 2.91.5\n"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
|
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
|
||||||
msgid "The alt tab behaviour."
|
msgid "The application icon mode."
|
||||||
msgstr "O comportamento de Alt+Tab"
|
msgstr "O modo da icona do aplicativo."
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
|
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sets the Alt-Tab behaviour. Possible values are: all_thumbnails and "
|
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||||
"workspace_icons. See the configuration dialogs for details."
|
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||||
|
"only' (shows only the application icon) or 'both'."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Estabelece o comportamento do Alt+Tab. Os valores posíbeis son: "
|
"Configura como se mostran as xanelas no intercambiador. As opcións posíbeis "
|
||||||
"«native» (nativo), «all_thumbnails» (todo e miniaturas) e "
|
"son «thumbnail-only» (mostra unha miniatura da xanela, «app-icon-only» (só "
|
||||||
"«worspace_icons» (iconas de áreas de traballo). Para obter información máis "
|
"mostra a icona do aplicativo) ou «both» (móstranse ambas cosas)."
|
||||||
"detallada, consulte a configuración dos diálogos."
|
|
||||||
|
#: ../extensions/alternate-tab/prefs.js:26
|
||||||
|
msgid "Thumbnail only"
|
||||||
|
msgstr "Só miniaturas"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:27
|
#: ../extensions/alternate-tab/prefs.js:27
|
||||||
msgid "All & Thumbnails"
|
msgid "Application icon only"
|
||||||
msgstr "Todo e miniaturas"
|
msgstr "Só icona do aplicativo"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:28
|
#: ../extensions/alternate-tab/prefs.js:28
|
||||||
msgid ""
|
msgid "Thumbnail and application icon"
|
||||||
"This mode presents all applications from all workspaces in one selection "
|
msgstr "Miniatura e icona do aplicativo"
|
||||||
"list. Instead of using the application icon of every window, it uses small "
|
|
||||||
"thumbnails resembling the window itself."
|
|
||||||
msgstr ""
|
|
||||||
"Este modo presenta todos os aplicativos de todas as áreas de traballo nunha "
|
|
||||||
"lista de selección. No lugar de usar a icona de aplicativo de cada xanela, "
|
|
||||||
"usa pequenas miniaturas que semellan a propia xanela."
|
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:34
|
#: ../extensions/alternate-tab/prefs.js:43
|
||||||
msgid "Workspace & Icons"
|
msgid "Present windows as"
|
||||||
msgstr "Espazos de traballo e iconas"
|
msgstr "Presentar xanelas como"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:35
|
#: ../extensions/alternate-tab/prefs.js:68
|
||||||
msgid ""
|
msgid "Show only windows in the current workspace"
|
||||||
"This mode let's you switch between the applications of your current "
|
msgstr "Mostrar só as xanelas na área de traballo actual"
|
||||||
"workspace and gives you additionally the option to switch to the last used "
|
|
||||||
"application of your previous workspace. This is always the last symbol in "
|
|
||||||
"the list and is segregated by a separator/vertical line if available. \n"
|
|
||||||
"Every window is represented by its application icon."
|
|
||||||
msgstr ""
|
|
||||||
"Este modo permítelle alternar entre os aplicativos da súa área de traballo "
|
|
||||||
"actual e dálle a opción de cambiar ao último aplicativo empregada da súa "
|
|
||||||
"área de traballo anterior. Este sempre é o último símbolo da lista e está "
|
|
||||||
"separado por un separador/liña vertical se está dispoñíbel.\n"
|
|
||||||
"Cada xanela está representada pola súa icona de aplicativo."
|
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:41
|
|
||||||
msgid "Move current selection to front before closing the popup"
|
|
||||||
msgstr "Mover a selección actual ao frente antes de pechar a xanela emerxente"
|
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:58
|
|
||||||
msgid ""
|
|
||||||
"The Alternate Tab can be used in different modes, that affect the way "
|
|
||||||
"windows are chosen and presented."
|
|
||||||
msgstr ""
|
|
||||||
"A combinación de teclas Alt+Tab pódese usar en diferentes modos, que afectan "
|
|
||||||
"á maneira na que se elixen e presentan as xanelas."
|
|
||||||
|
|
||||||
#. add the new entries
|
#. add the new entries
|
||||||
#: ../extensions/alternative-status-menu/extension.js:68
|
#: ../extensions/alternative-status-menu/extension.js:68
|
||||||
@@ -87,8 +64,8 @@ msgid "Hibernate"
|
|||||||
msgstr "Hibernar"
|
msgstr "Hibernar"
|
||||||
|
|
||||||
#: ../extensions/alternative-status-menu/extension.js:78
|
#: ../extensions/alternative-status-menu/extension.js:78
|
||||||
msgid "Power Off..."
|
msgid "Power Off"
|
||||||
msgstr "Apagar…"
|
msgstr "Apagar"
|
||||||
|
|
||||||
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:1
|
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:1
|
||||||
msgid "Enable suspending"
|
msgid "Enable suspending"
|
||||||
@@ -139,23 +116,23 @@ msgstr "Crear regra de coincidencia nova"
|
|||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr "Engadir"
|
msgstr "Engadir"
|
||||||
|
|
||||||
#: ../extensions/dock/extension.js:577
|
#: ../extensions/dock/extension.js:600
|
||||||
msgid "Drag here to add favorites"
|
msgid "Drag here to add favorites"
|
||||||
msgstr "Arrastre aquí para engadir aos favoritos"
|
msgstr "Arrastre aquí para engadir aos favoritos"
|
||||||
|
|
||||||
#: ../extensions/dock/extension.js:903
|
#: ../extensions/dock/extension.js:926
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Nova xanela"
|
msgstr "Nova xanela"
|
||||||
|
|
||||||
#: ../extensions/dock/extension.js:905
|
#: ../extensions/dock/extension.js:928
|
||||||
msgid "Quit Application"
|
msgid "Quit Application"
|
||||||
msgstr "Saír do aplicativo"
|
msgstr "Saír do aplicativo"
|
||||||
|
|
||||||
#: ../extensions/dock/extension.js:910
|
#: ../extensions/dock/extension.js:933
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Eliminar dos favoritos"
|
msgstr "Eliminar dos favoritos"
|
||||||
|
|
||||||
#: ../extensions/dock/extension.js:911
|
#: ../extensions/dock/extension.js:934
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Engadir aos favoritos"
|
msgstr "Engadir aos favoritos"
|
||||||
|
|
||||||
@@ -215,7 +192,11 @@ msgstr ""
|
|||||||
"Estabelece a pantalla na que mostrar o taboleiro. O valor predeterminado es "
|
"Estabelece a pantalla na que mostrar o taboleiro. O valor predeterminado es "
|
||||||
"(-1), que é a pantalla principal."
|
"(-1), que é a pantalla principal."
|
||||||
|
|
||||||
#: ../extensions/drive-menu/extension.js:66
|
#: ../extensions/drive-menu/extension.js:57
|
||||||
|
msgid "Removable devices"
|
||||||
|
msgstr "Dispositivos extraíbeis"
|
||||||
|
|
||||||
|
#: ../extensions/drive-menu/extension.js:68
|
||||||
msgid "Open file manager"
|
msgid "Open file manager"
|
||||||
msgstr "Abrir o xestor de ficheiros"
|
msgstr "Abrir o xestor de ficheiros"
|
||||||
|
|
||||||
@@ -298,10 +279,18 @@ msgstr ""
|
|||||||
"respectiva, omitindo a disposición inferior por omisión do shell. Se cambia "
|
"respectiva, omitindo a disposición inferior por omisión do shell. Se cambia "
|
||||||
"esta configuración deberá reiniciar o shell para que se apliquen os cambios."
|
"esta configuración deberá reiniciar o shell para que se apliquen os cambios."
|
||||||
|
|
||||||
#: ../extensions/places-menu/extension.js:37
|
#: ../extensions/places-menu/extension.js:39
|
||||||
msgid "Removable Devices"
|
msgid "Removable Devices"
|
||||||
msgstr "Dispositivos extraíbeis"
|
msgstr "Dispositivos extraíbeis"
|
||||||
|
|
||||||
|
#: ../extensions/systemMonitor/extension.js:213
|
||||||
|
msgid "CPU"
|
||||||
|
msgstr "CPU"
|
||||||
|
|
||||||
|
#: ../extensions/systemMonitor/extension.js:266
|
||||||
|
msgid "Memory"
|
||||||
|
msgstr "Memoria"
|
||||||
|
|
||||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
|
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
|
||||||
msgid "Theme name"
|
msgid "Theme name"
|
||||||
msgstr "Nome do tema"
|
msgstr "Nome do tema"
|
||||||
@@ -347,6 +336,56 @@ msgstr "Co de arriba cara abaixo"
|
|||||||
msgid "Configure display settings..."
|
msgid "Configure display settings..."
|
||||||
msgstr "Configurar as preferencias de pantalla…"
|
msgstr "Configurar as preferencias de pantalla…"
|
||||||
|
|
||||||
|
#~ msgid "The alt tab behaviour."
|
||||||
|
#~ msgstr "O comportamento de Alt+Tab"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "Sets the Alt-Tab behaviour. Possible values are: all_thumbnails and "
|
||||||
|
#~ "workspace_icons. See the configuration dialogs for details."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Estabelece o comportamento do Alt+Tab. Os valores posíbeis son: "
|
||||||
|
#~ "«native» (nativo), «all_thumbnails» (todo e miniaturas) e "
|
||||||
|
#~ "«worspace_icons» (iconas de áreas de traballo). Para obter información "
|
||||||
|
#~ "máis detallada, consulte a configuración dos diálogos."
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "This mode presents all applications from all workspaces in one selection "
|
||||||
|
#~ "list. Instead of using the application icon of every window, it uses "
|
||||||
|
#~ "small thumbnails resembling the window itself."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Este modo presenta todos os aplicativos de todas as áreas de traballo "
|
||||||
|
#~ "nunha lista de selección. No lugar de usar a icona de aplicativo de cada "
|
||||||
|
#~ "xanela, usa pequenas miniaturas que semellan a propia xanela."
|
||||||
|
|
||||||
|
#~ msgid "Workspace & Icons"
|
||||||
|
#~ msgstr "Espazos de traballo e iconas"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "This mode let's you switch between the applications of your current "
|
||||||
|
#~ "workspace and gives you additionally the option to switch to the last "
|
||||||
|
#~ "used application of your previous workspace. This is always the last "
|
||||||
|
#~ "symbol in the list and is segregated by a separator/vertical line if "
|
||||||
|
#~ "available. \n"
|
||||||
|
#~ "Every window is represented by its application icon."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Este modo permítelle alternar entre os aplicativos da súa área de "
|
||||||
|
#~ "traballo actual e dálle a opción de cambiar ao último aplicativo "
|
||||||
|
#~ "empregada da súa área de traballo anterior. Este sempre é o último "
|
||||||
|
#~ "símbolo da lista e está separado por un separador/liña vertical se está "
|
||||||
|
#~ "dispoñíbel.\n"
|
||||||
|
#~ "Cada xanela está representada pola súa icona de aplicativo."
|
||||||
|
|
||||||
|
#~ msgid "Move current selection to front before closing the popup"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Mover a selección actual ao frente antes de pechar a xanela emerxente"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "The Alternate Tab can be used in different modes, that affect the way "
|
||||||
|
#~ "windows are chosen and presented."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "A combinación de teclas Alt+Tab pódese usar en diferentes modos, que "
|
||||||
|
#~ "afectan á maneira na que se elixen e presentan as xanelas."
|
||||||
|
|
||||||
#~ msgid "Notifications"
|
#~ msgid "Notifications"
|
||||||
#~ msgstr "Notificacións"
|
#~ msgstr "Notificacións"
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2012-03-01 21:11+0100\n"
|
"POT-Creation-Date: 2012-09-05 00:20+0200\n"
|
||||||
"PO-Revision-Date: 2012-03-01 21:08+0100\n"
|
"PO-Revision-Date: 2012-09-05 00:25+0200\n"
|
||||||
"Last-Translator: Giovanni Campagna <scampa.giovanni@gmail.com>\n"
|
"Last-Translator: Giovanni Campagna <scampa.giovanni@gmail.com>\n"
|
||||||
"Language-Team: none <LL@li.org>\n"
|
"Language-Team: none <LL@li.org>\n"
|
||||||
"Language: it\n"
|
"Language: it\n"
|
||||||
@@ -16,77 +16,73 @@ msgstr ""
|
|||||||
"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"
|
||||||
|
|
||||||
|
# ndt: che schifo...
|
||||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
|
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
|
||||||
msgid ""
|
msgid "The application icon mode."
|
||||||
"Sets the Alt-Tab behaviour. Possible values are: all_thumbnails and "
|
msgstr "Modalità icona applicazione"
|
||||||
"workspace_icons. See the configuration dialogs for details."
|
|
||||||
msgstr ""
|
|
||||||
"Imposta il comportamento di Alt-Tab. Valori possibili sono \"all_thumbnails"
|
|
||||||
"\" e \"workspace_icons\". Per maggiori dettagli, si rimanda alla finestra di "
|
|
||||||
"configurazione."
|
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
|
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
|
||||||
msgid "The alt tab behaviour."
|
msgid ""
|
||||||
msgstr "Comportamento di Alt-Tab"
|
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||||
|
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||||
|
"only' (shows only the application icon) or 'both'."
|
||||||
|
msgstr "Configura come le finestre sono mostrate nello scambiafinestre. Le possibilità valide sono 'thumbnails-only' (mostra una miniatura della finestra), 'app-icon-only' (mostra solo l'icona dell'applicazione) o 'both' (mostra entrambi)."
|
||||||
|
|
||||||
|
#: ../extensions/alternate-tab/prefs.js:26
|
||||||
|
msgid "Thumbnail only"
|
||||||
|
msgstr "Solo la miniatura"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:27
|
#: ../extensions/alternate-tab/prefs.js:27
|
||||||
msgid "All & Thumbnails"
|
msgid "Application icon only"
|
||||||
msgstr "Tutte & Miniature"
|
msgstr "Solo l'icona dell'applicazione"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:28
|
#: ../extensions/alternate-tab/prefs.js:28
|
||||||
msgid ""
|
msgid "Thumbnail and application icon"
|
||||||
"This mode presents all applications from all workspaces in one selection "
|
msgstr "La miniatura e l'icona dell'applicazione"
|
||||||
"list. Instead of using the application icon of every window, it uses small "
|
|
||||||
"thumbnails resembling the window itself."
|
|
||||||
msgstr ""
|
|
||||||
"Questa modalità presenta tutte le applicazioni, da tutti gli spazi di lavoro "
|
|
||||||
"in un'unica lista. Invece di usare un'icona, usa delle piccole miniature che "
|
|
||||||
"rappresentano la finestra stessa."
|
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:34
|
# ndt: con invece che come, perchè altrimenti l'articolo sta male
|
||||||
msgid "Workspace & Icons"
|
#: ../extensions/alternate-tab/prefs.js:43
|
||||||
msgstr "Spazio di lavoro & Icone"
|
msgid "Present windows as"
|
||||||
|
msgstr "Mostra le finestre con"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:35
|
#: ../extensions/alternate-tab/prefs.js:68
|
||||||
msgid ""
|
msgid "Show only windows in the current workspace"
|
||||||
"This mode let's you switch between the applications of your current "
|
msgstr "Mostra solo le finestre dello spazio di lavoro corrente"
|
||||||
"workspace and gives you additionally the option to switch to the last used "
|
|
||||||
"application of your previous workspace. This is always the last symbol in "
|
|
||||||
"the list and is segregated by a separator/vertical line if available. \n"
|
|
||||||
"Every window is represented by its application icon."
|
|
||||||
msgstr ""
|
|
||||||
"Questa modalità ti consente di passare da un'applicazione all'altra del tuo "
|
|
||||||
"spazio di lavoro corrente e ti da in aggiunta l'opzione di passare "
|
|
||||||
"all'ultima applicazione dello spazio di lavoro precedente. Questa è sempre "
|
|
||||||
"l'ultima della lista ed è separata da una linea verticale, se presente.\n"
|
|
||||||
"Ogni finestra è rappresentata dall'icona dell'applicazione."
|
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:41
|
|
||||||
msgid "Move current selection to front before closing the popup"
|
|
||||||
msgstr "Muovi la selezione corrente in avanti prima di chiudere il popup"
|
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:58
|
|
||||||
msgid ""
|
|
||||||
"The Alternate Tab can be used in different modes, that affect the way "
|
|
||||||
"windows are chosen and presented."
|
|
||||||
msgstr ""
|
|
||||||
"Alternate Tab può essere usato in varie modalità, che influenzano il modo "
|
|
||||||
"con cui le finestre sono scelte e successivamente mostrate."
|
|
||||||
|
|
||||||
#. add the new entries
|
#. add the new entries
|
||||||
#: ../extensions/alternative-status-menu/extension.js:64
|
#: ../extensions/alternative-status-menu/extension.js:68
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
msgstr "Sospendi"
|
msgstr "Sospendi"
|
||||||
|
|
||||||
#: ../extensions/alternative-status-menu/extension.js:69
|
#: ../extensions/alternative-status-menu/extension.js:73
|
||||||
msgid "Hibernate"
|
msgid "Hibernate"
|
||||||
msgstr "Iberna"
|
msgstr "Iberna"
|
||||||
|
|
||||||
#: ../extensions/alternative-status-menu/extension.js:74
|
#: ../extensions/alternative-status-menu/extension.js:78
|
||||||
msgid "Power Off..."
|
msgid "Power Off"
|
||||||
msgstr "Spegni..."
|
msgstr "Spegni"
|
||||||
|
|
||||||
|
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:1
|
||||||
|
msgid "Enable suspending"
|
||||||
|
msgstr "Abilita sospensione"
|
||||||
|
|
||||||
|
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:2
|
||||||
|
msgid "Control the visibility of the Suspend menu item"
|
||||||
|
msgstr "Controlla la visibilità del comando Sospendi"
|
||||||
|
|
||||||
|
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:3
|
||||||
|
msgid "Enable hibernating"
|
||||||
|
msgstr "Abilita ibernazione"
|
||||||
|
|
||||||
|
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:4
|
||||||
|
msgid "Control the visibility of the Hibernate menu item"
|
||||||
|
msgstr "Controlla la visibilità del comando Iberna"
|
||||||
|
|
||||||
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
|
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
|
||||||
|
msgid "Application and workspace list"
|
||||||
|
msgstr "Lista applicazioni e spazi di lavoro"
|
||||||
|
|
||||||
|
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
|
||||||
msgid ""
|
msgid ""
|
||||||
"A list of strings, each containing an application id (desktop file name), "
|
"A list of strings, each containing an application id (desktop file name), "
|
||||||
"followed by a colon and the workspace number"
|
"followed by a colon and the workspace number"
|
||||||
@@ -94,10 +90,6 @@ msgstr ""
|
|||||||
"Una lista di stringhe, ognuna contenente un id applicazione (nome del file ."
|
"Una lista di stringhe, ognuna contenente un id applicazione (nome del file ."
|
||||||
"desktop), seguito da due punti e il numero dello spazio di lavoro"
|
"desktop), seguito da due punti e il numero dello spazio di lavoro"
|
||||||
|
|
||||||
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
|
|
||||||
msgid "Application and workspace list"
|
|
||||||
msgstr "Lista applicazioni e spazi di lavoro"
|
|
||||||
|
|
||||||
#: ../extensions/auto-move-windows/prefs.js:55
|
#: ../extensions/auto-move-windows/prefs.js:55
|
||||||
msgid "Application"
|
msgid "Application"
|
||||||
msgstr "Applicazione"
|
msgstr "Applicazione"
|
||||||
@@ -119,50 +111,54 @@ msgstr "Crea una nuova regola di corrispondenza"
|
|||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr "Aggiungi"
|
msgstr "Aggiungi"
|
||||||
|
|
||||||
#: ../extensions/dock/extension.js:489
|
#: ../extensions/dock/extension.js:600
|
||||||
msgid "Drag here to add favorites"
|
msgid "Drag here to add favorites"
|
||||||
msgstr "Trascina qui per aggiungere ai preferiti"
|
msgstr "Trascina qui per aggiungere ai preferiti"
|
||||||
|
|
||||||
#: ../extensions/dock/extension.js:815
|
#: ../extensions/dock/extension.js:926
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Nuova finestra"
|
msgstr "Nuova finestra"
|
||||||
|
|
||||||
#: ../extensions/dock/extension.js:817
|
#: ../extensions/dock/extension.js:928
|
||||||
msgid "Quit Application"
|
msgid "Quit Application"
|
||||||
msgstr "Chiudi applicazione"
|
msgstr "Chiudi applicazione"
|
||||||
|
|
||||||
#: ../extensions/dock/extension.js:822
|
#: ../extensions/dock/extension.js:933
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Rimuovi dai preferiti"
|
msgstr "Rimuovi dai preferiti"
|
||||||
|
|
||||||
#: ../extensions/dock/extension.js:823
|
#: ../extensions/dock/extension.js:934
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Aggiungi ai preferiti"
|
msgstr "Aggiungi ai preferiti"
|
||||||
|
|
||||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
|
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
|
||||||
msgid "Autohide duration"
|
|
||||||
msgstr "Durata dell'effetto di scomparsa"
|
|
||||||
|
|
||||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:2
|
|
||||||
msgid "Autohide effect"
|
|
||||||
msgstr "Effetto di scomparsa"
|
|
||||||
|
|
||||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
|
|
||||||
msgid "Enable/disable autohide"
|
|
||||||
msgstr "Abilita/disabilita scomparsa automatica"
|
|
||||||
|
|
||||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
|
|
||||||
msgid "Icon size"
|
|
||||||
msgstr "Dimensione delle icone"
|
|
||||||
|
|
||||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
|
|
||||||
msgid "Position of the dock"
|
msgid "Position of the dock"
|
||||||
msgstr "Posizione del dock"
|
msgstr "Posizione del dock"
|
||||||
|
|
||||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
|
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:2
|
||||||
|
msgid ""
|
||||||
|
"Sets the position of the dock in the screen. Allowed values are 'right' or "
|
||||||
|
"'left'"
|
||||||
|
msgstr ""
|
||||||
|
"Imposta la posizione del dock sullo schermo. Valori consentiti sono \"right"
|
||||||
|
"\" (destra) e \"left\" (sinistra)"
|
||||||
|
|
||||||
|
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
|
||||||
|
msgid "Icon size"
|
||||||
|
msgstr "Dimensione delle icone"
|
||||||
|
|
||||||
|
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
|
||||||
msgid "Sets icon size of the dock."
|
msgid "Sets icon size of the dock."
|
||||||
msgstr "Imposta la dimensione delle icone del dock."
|
msgstr "Imposta la dimensione delle icone del dock."
|
||||||
|
|
||||||
|
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
|
||||||
|
msgid "Enable/disable autohide"
|
||||||
|
msgstr "Abilita/disabilita scomparsa automatica"
|
||||||
|
|
||||||
|
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
|
||||||
|
msgid "Autohide effect"
|
||||||
|
msgstr "Effetto di scomparsa"
|
||||||
|
|
||||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:7
|
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:7
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' and "
|
"Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' and "
|
||||||
@@ -173,18 +169,30 @@ msgstr ""
|
|||||||
"schiaccia verso il lato), \"move\" (lo muove fuori dallo schermo)"
|
"schiaccia verso il lato), \"move\" (lo muove fuori dallo schermo)"
|
||||||
|
|
||||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:8
|
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:8
|
||||||
msgid ""
|
msgid "Autohide duration"
|
||||||
"Sets the position of the dock in the screen. Allowed values are 'right' or "
|
msgstr "Durata dell'effetto di scomparsa"
|
||||||
"'left'"
|
|
||||||
msgstr ""
|
|
||||||
"Imposta la posizione del dock sullo schermo. Valori consentiti sono \"right"
|
|
||||||
"\" (destra) e \"left\" (sinistra)"
|
|
||||||
|
|
||||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:9
|
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:9
|
||||||
msgid "Sets the time duration of the autohide effect."
|
msgid "Sets the time duration of the autohide effect."
|
||||||
msgstr "Imposta la durata in secondi dell'effetto di scomparsa"
|
msgstr "Imposta la durata in secondi dell'effetto di scomparsa"
|
||||||
|
|
||||||
#: ../extensions/drive-menu/extension.js:66
|
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:10
|
||||||
|
msgid "Monitor"
|
||||||
|
msgstr "Monitor"
|
||||||
|
|
||||||
|
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:11
|
||||||
|
msgid ""
|
||||||
|
"Sets monitor to display dock in. The default value (-1) is the primary "
|
||||||
|
"monitor."
|
||||||
|
msgstr ""
|
||||||
|
"Imposta il monitor in cui mostrare la dock. Il valore di default (-1) "
|
||||||
|
"rappresenta lo schermo principale."
|
||||||
|
|
||||||
|
#: ../extensions/drive-menu/extension.js:56
|
||||||
|
msgid "Removable devices"
|
||||||
|
msgstr "Dispositivi rimovibili"
|
||||||
|
|
||||||
|
#: ../extensions/drive-menu/extension.js:67
|
||||||
msgid "Open file manager"
|
msgid "Open file manager"
|
||||||
msgstr "Apri il gestore dei file"
|
msgstr "Apri il gestore dei file"
|
||||||
|
|
||||||
@@ -220,41 +228,31 @@ msgstr ""
|
|||||||
msgid "Message:"
|
msgid "Message:"
|
||||||
msgstr "Messaggio:"
|
msgstr "Messaggio:"
|
||||||
|
|
||||||
#: ../extensions/gajim/extension.js:227
|
#: ../extensions/gajim/extension.js:226
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is away."
|
msgid "%s is away."
|
||||||
msgstr "%s è assente"
|
msgstr "%s è assente"
|
||||||
|
|
||||||
#: ../extensions/gajim/extension.js:230
|
#: ../extensions/gajim/extension.js:229
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is offline."
|
msgid "%s is offline."
|
||||||
msgstr "%s è fuori rete"
|
msgstr "%s è fuori rete"
|
||||||
|
|
||||||
#: ../extensions/gajim/extension.js:233
|
#: ../extensions/gajim/extension.js:232
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is online."
|
msgid "%s is online."
|
||||||
msgstr "%s è disponibile"
|
msgstr "%s è disponibile"
|
||||||
|
|
||||||
#: ../extensions/gajim/extension.js:236
|
#: ../extensions/gajim/extension.js:235
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is busy."
|
msgid "%s is busy."
|
||||||
msgstr "%s non è disponibile"
|
msgstr "%s non è disponibile"
|
||||||
|
|
||||||
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
|
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
|
||||||
msgid ""
|
msgid "Use more screen for windows"
|
||||||
"If true, place window captions on top the respective thumbnail, overriding "
|
msgstr "Usa più spazio per le finestre"
|
||||||
"shell default of placing it at the bottom. Changing this setting requires "
|
|
||||||
"restarting the shell to have any effect."
|
|
||||||
msgstr ""
|
|
||||||
"Se vero, posiziona i titoli delle finestre in cima alle rispettive "
|
|
||||||
"miniature, aggirando il comportamento normale della shell, che li colloca in "
|
|
||||||
"basso. Modificare questa impostazione richiede di riavviare la shell."
|
|
||||||
|
|
||||||
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:2
|
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:2
|
||||||
msgid "Place window captions on top"
|
|
||||||
msgstr "Posiziona i titoli delle finestre in cima"
|
|
||||||
|
|
||||||
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Try to use more screen for placing window thumbnails by adapting to screen "
|
"Try to use more screen for placing window thumbnails by adapting to screen "
|
||||||
"aspect ratio, and consolidating them further to reduce the bounding box. "
|
"aspect ratio, and consolidating them further to reduce the bounding box. "
|
||||||
@@ -265,22 +263,40 @@ msgstr ""
|
|||||||
"ulteriormente per ridurre lo spazio complessivo. Questa impostazione si "
|
"ulteriormente per ridurre lo spazio complessivo. Questa impostazione si "
|
||||||
"applica solo se l'algoritmo di posizionamento è \"natural\"."
|
"applica solo se l'algoritmo di posizionamento è \"natural\"."
|
||||||
|
|
||||||
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4
|
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
|
||||||
msgid "Use more screen for windows"
|
msgid "Place window captions on top"
|
||||||
msgstr "Usa più spazio per le finestre"
|
msgstr "Posiziona i titoli delle finestre in cima"
|
||||||
|
|
||||||
#: ../extensions/places-menu/extension.js:37
|
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4
|
||||||
|
msgid ""
|
||||||
|
"If true, place window captions on top the respective thumbnail, overriding "
|
||||||
|
"shell default of placing it at the bottom. Changing this setting requires "
|
||||||
|
"restarting the shell to have any effect."
|
||||||
|
msgstr ""
|
||||||
|
"Se vero, posiziona i titoli delle finestre in cima alle rispettive "
|
||||||
|
"miniature, aggirando il comportamento normale della shell, che li colloca in "
|
||||||
|
"basso. Modificare questa impostazione richiede di riavviare la shell."
|
||||||
|
|
||||||
|
#: ../extensions/places-menu/extension.js:70
|
||||||
msgid "Removable Devices"
|
msgid "Removable Devices"
|
||||||
msgstr "Dispositivi rimovibili"
|
msgstr "Dispositivi rimovibili"
|
||||||
|
|
||||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
|
#: ../extensions/systemMonitor/extension.js:213
|
||||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
msgid "CPU"
|
||||||
msgstr "Il nome del tema, da caricare in ~/.themes/nome/gnome-shell"
|
msgstr "CPU"
|
||||||
|
|
||||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
|
#: ../extensions/systemMonitor/extension.js:266
|
||||||
|
msgid "Memory"
|
||||||
|
msgstr "Memoria"
|
||||||
|
|
||||||
|
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
|
||||||
msgid "Theme name"
|
msgid "Theme name"
|
||||||
msgstr "Nome del tema"
|
msgstr "Nome del tema"
|
||||||
|
|
||||||
|
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
|
||||||
|
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||||
|
msgstr "Il nome del tema, da caricare in ~/.themes/nome/gnome-shell"
|
||||||
|
|
||||||
#: ../extensions/workspace-indicator/extension.js:30
|
#: ../extensions/workspace-indicator/extension.js:30
|
||||||
msgid "Workspace Indicator"
|
msgid "Workspace Indicator"
|
||||||
msgstr "Indicatore spazi di lavoro"
|
msgstr "Indicatore spazi di lavoro"
|
||||||
@@ -314,12 +330,16 @@ msgstr "Destra"
|
|||||||
msgid "Upside-down"
|
msgid "Upside-down"
|
||||||
msgstr "Rovesciato"
|
msgstr "Rovesciato"
|
||||||
|
|
||||||
#: ../extensions/xrandr-indicator/extension.js:82
|
#: ../extensions/xrandr-indicator/extension.js:50
|
||||||
msgid "Configure display settings..."
|
msgid "Display"
|
||||||
msgstr "Configura impostazioni display..."
|
msgstr "Monitor"
|
||||||
|
|
||||||
#~ msgid "Display Settings"
|
#: ../extensions/xrandr-indicator/extension.js:80
|
||||||
#~ msgstr "Impostazioni monitor"
|
msgid "Display Settings"
|
||||||
|
msgstr "Impostazioni monitor"
|
||||||
|
|
||||||
|
#~ msgid "Configure display settings..."
|
||||||
|
#~ msgstr "Configura impostazioni display..."
|
||||||
|
|
||||||
#~ msgid "Cancel"
|
#~ msgid "Cancel"
|
||||||
#~ msgstr "Annulla"
|
#~ msgstr "Annulla"
|
||||||
|
|||||||
@@ -8,78 +8,79 @@ msgstr ""
|
|||||||
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
|
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||||
"shell&keywords=I18N+L10N&component=extensions\n"
|
"shell&keywords=I18N+L10N&component=extensions\n"
|
||||||
"POT-Creation-Date: 2012-02-24 18:22+0000\n"
|
"POT-Creation-Date: 2012-08-18 00:42+0000\n"
|
||||||
"PO-Revision-Date: 2012-03-17 16:50+0530\n"
|
"PO-Revision-Date: 2012-08-19 15:11+0530\n"
|
||||||
"Last-Translator: A S Alam <aalam@users.sf.net>\n"
|
"Last-Translator: A S Alam <aalam@users.sf.net>\n"
|
||||||
"Language-Team: Punjabi/Panjabi <punjabi-users@lists.sf.net>\n"
|
"Language-Team: Punjabi/Panjabi <punjabi-users@lists.sf.net>\n"
|
||||||
|
"Language: pa\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"
|
||||||
"Language: pa\n"
|
"X-Generator: Lokalize 1.4\n"
|
||||||
"X-Generator: Lokalize 1.2\n"
|
|
||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
|
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
|
||||||
msgid "The alt tab behaviour."
|
msgid "The application icon mode."
|
||||||
msgstr "alt tab ਰਵੱਈਆ ਹੈ।"
|
msgstr "ਐਪਲੀਕੇਸ਼ਨ ਆਈਕਾਨ ਮੋਡ"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
|
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
|
||||||
#| msgid ""
|
|
||||||
#| "Sets the Alt-Tab behaviour. Possible values are: native, all_thumbnails "
|
|
||||||
#| "and workspace_icons."
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sets the Alt-Tab behaviour. Possible values are: all_thumbnails and "
|
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||||
"workspace_icons. See the configuration dialogs for details."
|
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||||
|
"only' (shows only the application icon) or 'both'."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Alt-Tab ਰਵੱਈਆ ਸੈੱਟ ਕਰੋ। ਸੰਭਵ ਮੁੱਲ ਹਨ: all_thumbnails ਅਤੇ workspace_icons। "
|
|
||||||
"ਵੇਰਵੇ ਲਈ ਸੰਰਚਨਾ ਡਾਈਲਾਗ ਵੇਖੋ।"
|
#: ../extensions/alternate-tab/prefs.js:26
|
||||||
|
#| msgid "All & Thumbnails"
|
||||||
|
msgid "Thumbnail only"
|
||||||
|
msgstr "ਕੇਵਲ ਥੰਮਨੇਲ ਹੀ"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:27
|
#: ../extensions/alternate-tab/prefs.js:27
|
||||||
msgid "All & Thumbnails"
|
#| msgid "Application"
|
||||||
msgstr "ਸਭ ਅਤੇ ਥੰਮਨੇਲ"
|
msgid "Application icon only"
|
||||||
|
msgstr "ਐਪਲੀਕੇਸ਼ਨ ਆਈਕਾਨ ਹੀ"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:28
|
#: ../extensions/alternate-tab/prefs.js:28
|
||||||
msgid ""
|
msgid "Thumbnail and application icon"
|
||||||
"This mode presents all applications from all workspaces in one selection "
|
msgstr "ਥੰਮਨੇਲ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਆਈਕਾਨ"
|
||||||
"list. Instead of using the application icon of every window, it uses small "
|
|
||||||
"thumbnails resembling the window itself."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:34
|
#: ../extensions/alternate-tab/prefs.js:43
|
||||||
msgid "Workspace & Icons"
|
msgid "Present windows as"
|
||||||
msgstr "ਵਰਕਸਪੇਸ ਅਤੇ ਆਈਕਾਨ"
|
msgstr "ਵਿੰਡੋਜ਼ ਨੂੰ ਪੇਸ਼ ਕਰੋ"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:35
|
#: ../extensions/alternate-tab/prefs.js:68
|
||||||
msgid ""
|
msgid "Show only windows in the current workspace"
|
||||||
"This mode let's you switch between the applications of your current "
|
msgstr "ਮੌਜੂਦਾ ਵਰਕਸਪੇਸ ਵਿੱਚੋਂ ਹੀ ਵਿੰਡੋਜ਼ ਹੀ ਵੇਖਾਓ"
|
||||||
"workspace and gives you additionally the option to switch to the last used "
|
|
||||||
"application of your previous workspace. This is always the last symbol in "
|
|
||||||
"the list and is segregated by a separator/vertical line if available. \n"
|
|
||||||
"Every window is represented by its application icon."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:41
|
|
||||||
msgid "Move current selection to front before closing the popup"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:58
|
|
||||||
msgid ""
|
|
||||||
"The Alternate Tab can be used in different modes, that affect the way "
|
|
||||||
"windows are chosen and presented."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. add the new entries
|
#. add the new entries
|
||||||
#: ../extensions/alternative-status-menu/extension.js:64
|
#: ../extensions/alternative-status-menu/extension.js:68
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
msgstr "ਸਸਪੈਂਡ"
|
msgstr "ਸਸਪੈਂਡ"
|
||||||
|
|
||||||
#: ../extensions/alternative-status-menu/extension.js:69
|
#: ../extensions/alternative-status-menu/extension.js:73
|
||||||
msgid "Hibernate"
|
msgid "Hibernate"
|
||||||
msgstr "ਹਾਈਬਰਨੇਟ"
|
msgstr "ਹਾਈਬਰਨੇਟ"
|
||||||
|
|
||||||
#: ../extensions/alternative-status-menu/extension.js:74
|
#: ../extensions/alternative-status-menu/extension.js:78
|
||||||
msgid "Power Off..."
|
#| msgid "Power Off..."
|
||||||
msgstr "...ਬੰਦ ਕਰੋ"
|
msgid "Power Off"
|
||||||
|
msgstr "ਬੰਦ ਕਰੋ"
|
||||||
|
|
||||||
|
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:1
|
||||||
|
msgid "Enable suspending"
|
||||||
|
msgstr "ਸਸਪੈਂਡ ਕਰਨਾ ਯੋਗ"
|
||||||
|
|
||||||
|
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:2
|
||||||
|
msgid "Control the visibility of the Suspend menu item"
|
||||||
|
msgstr "ਸਸਪੈਂਡ ਮੇਨੂ ਆਈਟਮ ਦੀ ਦਿੱਖ ਨੂੰ ਕੰਟਰੋਲ ਕਰੋ"
|
||||||
|
|
||||||
|
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:3
|
||||||
|
msgid "Enable hibernating"
|
||||||
|
msgstr "ਹਾਈਬਰਨੇਟ ਕਰਨਾ ਚਾਲੂ"
|
||||||
|
|
||||||
|
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:4
|
||||||
|
msgid "Control the visibility of the Hibernate menu item"
|
||||||
|
msgstr "ਹਾਈਬਰਨੇਟ ਮੇਨੂ ਆਈਟਮ ਦੀ ਦਿੱਖ ਨੂੰ ਕੰਟਰੋਲ ਕਰੋ"
|
||||||
|
|
||||||
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
|
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
|
||||||
msgid "Application and workspace list"
|
msgid "Application and workspace list"
|
||||||
@@ -95,13 +96,11 @@ msgstr ""
|
|||||||
"ਰੱਖਦਾ ਹੈ"
|
"ਰੱਖਦਾ ਹੈ"
|
||||||
|
|
||||||
#: ../extensions/auto-move-windows/prefs.js:55
|
#: ../extensions/auto-move-windows/prefs.js:55
|
||||||
#| msgid "Quit Application"
|
|
||||||
msgid "Application"
|
msgid "Application"
|
||||||
msgstr "ਐਪਲੀਕੇਸ਼ਨ"
|
msgstr "ਐਪਲੀਕੇਸ਼ਨ"
|
||||||
|
|
||||||
#: ../extensions/auto-move-windows/prefs.js:64
|
#: ../extensions/auto-move-windows/prefs.js:64
|
||||||
#: ../extensions/auto-move-windows/prefs.js:106
|
#: ../extensions/auto-move-windows/prefs.js:106
|
||||||
#| msgid "Workspace & Icons"
|
|
||||||
msgid "Workspace"
|
msgid "Workspace"
|
||||||
msgstr "ਵਰਕਸਪੇਸ"
|
msgstr "ਵਰਕਸਪੇਸ"
|
||||||
|
|
||||||
@@ -117,23 +116,23 @@ msgstr "ਨਵਾਂ ਮਿਲਾਉਣ ਨਿਯਮ ਬਣਾਉ"
|
|||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr "ਸ਼ਾਮਲ"
|
msgstr "ਸ਼ਾਮਲ"
|
||||||
|
|
||||||
#: ../extensions/dock/extension.js:489
|
#: ../extensions/dock/extension.js:600
|
||||||
msgid "Drag here to add favorites"
|
msgid "Drag here to add favorites"
|
||||||
msgstr "ਪਸੰਦ ਵਿੱਚ ਜੋੜਨ ਲਈ ਇੱਥੇ ਸੁੱਟੋ"
|
msgstr "ਪਸੰਦ ਵਿੱਚ ਜੋੜਨ ਲਈ ਇੱਥੇ ਸੁੱਟੋ"
|
||||||
|
|
||||||
#: ../extensions/dock/extension.js:815
|
#: ../extensions/dock/extension.js:926
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "ਨਵੀਂ ਵਿੰਡੋ"
|
msgstr "ਨਵੀਂ ਵਿੰਡੋ"
|
||||||
|
|
||||||
#: ../extensions/dock/extension.js:817
|
#: ../extensions/dock/extension.js:928
|
||||||
msgid "Quit Application"
|
msgid "Quit Application"
|
||||||
msgstr "ਐਪਲੀਕੇਸ਼ਨ ਬੰਦ ਕਰੋ"
|
msgstr "ਐਪਲੀਕੇਸ਼ਨ ਬੰਦ ਕਰੋ"
|
||||||
|
|
||||||
#: ../extensions/dock/extension.js:822
|
#: ../extensions/dock/extension.js:933
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "ਪਸੰਦ ਵਿੱਚੋਂ ਹਟਾਓ"
|
msgstr "ਪਸੰਦ ਵਿੱਚੋਂ ਹਟਾਓ"
|
||||||
|
|
||||||
#: ../extensions/dock/extension.js:823
|
#: ../extensions/dock/extension.js:934
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "ਪਸੰਦ 'ਚ ਸ਼ਾਮਲ ਕਰੋ"
|
msgstr "ਪਸੰਦ 'ਚ ਸ਼ਾਮਲ ਕਰੋ"
|
||||||
|
|
||||||
@@ -164,8 +163,6 @@ msgid "Autohide effect"
|
|||||||
msgstr "ਆਪੇ-ਓਹਲੇ ਹੋਣ ਪ੍ਰਭਾਵ"
|
msgstr "ਆਪੇ-ਓਹਲੇ ਹੋਣ ਪ੍ਰਭਾਵ"
|
||||||
|
|
||||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:7
|
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:7
|
||||||
#| msgid ""
|
|
||||||
#| "Sets the effect of the hide dock. Allowed values are 'resize' or 'rescale'"
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' and "
|
"Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' and "
|
||||||
"'move'"
|
"'move'"
|
||||||
@@ -181,7 +178,23 @@ msgstr "ਆਪੇ ਓਹਲੇ ਹੋਣ ਅੰਤਰਾਲ"
|
|||||||
msgid "Sets the time duration of the autohide effect."
|
msgid "Sets the time duration of the autohide effect."
|
||||||
msgstr "ਆਪੇ-ਓਹਲੇ ਕਰਨ ਦੇ ਪ੍ਰਭਾਵ ਦੀ ਸਮੇਂ ਦਾ ਅੰਤਰਾਲ ਸੈੱਟ ਕਰੋ।"
|
msgstr "ਆਪੇ-ਓਹਲੇ ਕਰਨ ਦੇ ਪ੍ਰਭਾਵ ਦੀ ਸਮੇਂ ਦਾ ਅੰਤਰਾਲ ਸੈੱਟ ਕਰੋ।"
|
||||||
|
|
||||||
#: ../extensions/drive-menu/extension.js:66
|
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:10
|
||||||
|
msgid "Monitor"
|
||||||
|
msgstr "ਮਾਨੀਟਰ"
|
||||||
|
|
||||||
|
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:11
|
||||||
|
msgid ""
|
||||||
|
"Sets monitor to display dock in. The default value (-1) is the primary "
|
||||||
|
"monitor."
|
||||||
|
msgstr ""
|
||||||
|
"ਡੌਕ ਵਿੱਚ ਵੇਖਾਉਣ ਲਈ ਨਿਗਾਰਨ ਸੈੱਟ ਕਰੋ। ਪ੍ਰਾਈਮਰੀ ਮਾਨੀਟਰ ਲਈ ਡਿਫਾਲਟ ਮੁੱਲ (-1) ਹੈ।"
|
||||||
|
|
||||||
|
#: ../extensions/drive-menu/extension.js:57
|
||||||
|
#| msgid "Removable Devices"
|
||||||
|
msgid "Removable devices"
|
||||||
|
msgstr "ਹਟਾਉਣਯੋਗ ਜੰਤਰ"
|
||||||
|
|
||||||
|
#: ../extensions/drive-menu/extension.js:68
|
||||||
msgid "Open file manager"
|
msgid "Open file manager"
|
||||||
msgstr "ਫਾਇਲ ਮੈਨੇਜਰ ਖੋਲ੍ਹੋ"
|
msgstr "ਫਾਇਲ ਮੈਨੇਜਰ ਖੋਲ੍ਹੋ"
|
||||||
|
|
||||||
@@ -256,7 +269,7 @@ msgid ""
|
|||||||
"restarting the shell to have any effect."
|
"restarting the shell to have any effect."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../extensions/places-menu/extension.js:37
|
#: ../extensions/places-menu/extension.js:39
|
||||||
msgid "Removable Devices"
|
msgid "Removable Devices"
|
||||||
msgstr "ਹਟਾਉਣਯੋਗ ਜੰਤਰ"
|
msgstr "ਹਟਾਉਣਯੋਗ ਜੰਤਰ"
|
||||||
|
|
||||||
@@ -269,23 +282,19 @@ msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
|||||||
msgstr "ਥੀਮ ਦਾ ਨਾਂ, ਜੋ ~/.themes/name/gnome-shell ਤੋਂ ਲੋਡ ਕੀਤਾ ਜਾਵੇਗਾ"
|
msgstr "ਥੀਮ ਦਾ ਨਾਂ, ਜੋ ~/.themes/name/gnome-shell ਤੋਂ ਲੋਡ ਕੀਤਾ ਜਾਵੇਗਾ"
|
||||||
|
|
||||||
#: ../extensions/workspace-indicator/extension.js:30
|
#: ../extensions/workspace-indicator/extension.js:30
|
||||||
#| msgid "Workspace & Icons"
|
|
||||||
msgid "Workspace Indicator"
|
msgid "Workspace Indicator"
|
||||||
msgstr "ਵਰਕਸਪੇਸ ਇੰਡੀਕੇਟਰ"
|
msgstr "ਵਰਕਸਪੇਸ ਇੰਡੀਕੇਟਰ"
|
||||||
|
|
||||||
#: ../extensions/workspace-indicator/prefs.js:151
|
#: ../extensions/workspace-indicator/prefs.js:141
|
||||||
#| msgid "Workspace & Icons"
|
|
||||||
msgid "Workspace names:"
|
msgid "Workspace names:"
|
||||||
msgstr "ਵਰਕਸਪੇਸ ਨਾਂ:"
|
msgstr "ਵਰਕਸਪੇਸ ਨਾਂ:"
|
||||||
|
|
||||||
#: ../extensions/workspace-indicator/prefs.js:162
|
#: ../extensions/workspace-indicator/prefs.js:152
|
||||||
#| msgid "Native"
|
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "ਨਾਂ"
|
msgstr "ਨਾਂ"
|
||||||
|
|
||||||
#: ../extensions/workspace-indicator/prefs.js:196
|
#: ../extensions/workspace-indicator/prefs.js:186
|
||||||
#, c-format
|
#, c-format
|
||||||
#| msgid "Workspace & Icons"
|
|
||||||
msgid "Workspace %d"
|
msgid "Workspace %d"
|
||||||
msgstr "ਵਰਕਸਪੇਸ %d"
|
msgstr "ਵਰਕਸਪੇਸ %d"
|
||||||
|
|
||||||
@@ -309,6 +318,22 @@ msgstr "ਉਤਲਾ ਹੇਠ"
|
|||||||
msgid "Configure display settings..."
|
msgid "Configure display settings..."
|
||||||
msgstr "ਡਿਸਪਲੇਅ ਸੈਟਿੰਗ ਸੰਰਚਨਾ..."
|
msgstr "ਡਿਸਪਲੇਅ ਸੈਟਿੰਗ ਸੰਰਚਨਾ..."
|
||||||
|
|
||||||
|
#~ msgid "The alt tab behaviour."
|
||||||
|
#~ msgstr "alt tab ਰਵੱਈਆ ਹੈ।"
|
||||||
|
|
||||||
|
#~| msgid ""
|
||||||
|
#~| "Sets the Alt-Tab behaviour. Possible values are: native, all_thumbnails "
|
||||||
|
#~| "and workspace_icons."
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "Sets the Alt-Tab behaviour. Possible values are: all_thumbnails and "
|
||||||
|
#~ "workspace_icons. See the configuration dialogs for details."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Alt-Tab ਰਵੱਈਆ ਸੈੱਟ ਕਰੋ। ਸੰਭਵ ਮੁੱਲ ਹਨ: all_thumbnails ਅਤੇ workspace_icons। ਵੇਰਵੇ ਲਈ "
|
||||||
|
#~ "ਸੰਰਚਨਾ ਡਾਈਲਾਗ ਵੇਖੋ।"
|
||||||
|
|
||||||
|
#~ msgid "Workspace & Icons"
|
||||||
|
#~ msgstr "ਵਰਕਸਪੇਸ ਅਤੇ ਆਈਕਾਨ"
|
||||||
|
|
||||||
#~ msgid "Available"
|
#~ msgid "Available"
|
||||||
#~ msgstr "ਉਪਲੱਬਧ"
|
#~ msgstr "ਉਪਲੱਬਧ"
|
||||||
|
|
||||||
|
|||||||
@@ -4,12 +4,14 @@
|
|||||||
# pomóc w jego rozwijaniu i pielęgnowaniu, napisz do nas:
|
# pomóc w jego rozwijaniu i pielęgnowaniu, napisz do nas:
|
||||||
# gnomepl@aviary.pl
|
# gnomepl@aviary.pl
|
||||||
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||||
|
# Piotr Drąg <piotrdrag@gmail.com>, 2011-2012.
|
||||||
|
# Aviary.pl <gnomepl@aviary.pl>, 2011-2012.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell-extensions\n"
|
"Project-Id-Version: gnome-shell-extensions\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2012-04-30 16:19+0200\n"
|
"POT-Creation-Date: 2012-09-04 00:15+0200\n"
|
||||||
"PO-Revision-Date: 2012-04-30 16:20+0200\n"
|
"PO-Revision-Date: 2012-09-04 00:17+0200\n"
|
||||||
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
|
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
|
||||||
"Language-Team: Polish <gnomepl@aviary.pl>\n"
|
"Language-Team: Polish <gnomepl@aviary.pl>\n"
|
||||||
"Language: pl\n"
|
"Language: pl\n"
|
||||||
@@ -22,76 +24,67 @@ msgstr ""
|
|||||||
"X-Poedit-Country: Poland\n"
|
"X-Poedit-Country: Poland\n"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
|
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
|
||||||
msgid "The alt tab behaviour."
|
msgid "The application icon mode."
|
||||||
msgstr "Zachowanie Alt+Tab."
|
msgstr "Tryb ikon programów."
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
|
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sets the Alt-Tab behaviour. Possible values are: all_thumbnails and "
|
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||||
"workspace_icons. See the configuration dialogs for details."
|
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||||
|
"only' (shows only the application icon) or 'both'."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ustawia zachowanie Alt-Tab. Możliwe wartości: all_thumbnails i "
|
"Konfiguruje, jak wyświetlać okna w przełączniku. Prawidłowe możliwości to "
|
||||||
"workspace_icons. Proszę zobaczyć okno konfiguracji, aby uzyskać więcej "
|
"\"thumbnail-only\" (wyświetla miniaturę okna), \"app-icon-only\" (wyświetla "
|
||||||
"informacji."
|
"tylko ikonę programu) lub \"both\" (wyświetla oba)."
|
||||||
|
|
||||||
|
#: ../extensions/alternate-tab/prefs.js:26
|
||||||
|
msgid "Thumbnail only"
|
||||||
|
msgstr "Tylko miniatury"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:27
|
#: ../extensions/alternate-tab/prefs.js:27
|
||||||
msgid "All & Thumbnails"
|
msgid "Application icon only"
|
||||||
msgstr "Wszystko i miniatury"
|
msgstr "Tylko ikony programów"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:28
|
#: ../extensions/alternate-tab/prefs.js:28
|
||||||
msgid ""
|
msgid "Thumbnail and application icon"
|
||||||
"This mode presents all applications from all workspaces in one selection "
|
msgstr "Miniatura i ikona programu"
|
||||||
"list. Instead of using the application icon of every window, it uses small "
|
|
||||||
"thumbnails resembling the window itself."
|
|
||||||
msgstr ""
|
|
||||||
"Ten tryb przedstawia wszystkie programy ze wszystkich obszarów roboczych i "
|
|
||||||
"na jednej liście wyboru. Zamiast używać ikony programu każdego okna używa "
|
|
||||||
"małych miniatur samych okien."
|
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:34
|
#: ../extensions/alternate-tab/prefs.js:43
|
||||||
msgid "Workspace & Icons"
|
msgid "Present windows as"
|
||||||
msgstr "Obszar roboczy i ikony"
|
msgstr "Wyświetlanie okien jako"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:35
|
#: ../extensions/alternate-tab/prefs.js:68
|
||||||
msgid ""
|
msgid "Show only windows in the current workspace"
|
||||||
"This mode let's you switch between the applications of your current "
|
msgstr "Wyświetlanie tylko okien w bieżącym obszarze roboczym"
|
||||||
"workspace and gives you additionally the option to switch to the last used "
|
|
||||||
"application of your previous workspace. This is always the last symbol in "
|
|
||||||
"the list and is segregated by a separator/vertical line if available. \n"
|
|
||||||
"Every window is represented by its application icon."
|
|
||||||
msgstr ""
|
|
||||||
"Ten tryb umożliwia przełączanie między programami na bieżącym obszarze "
|
|
||||||
"roboczym i udostępnia dodatkową opcję przełączenia na ostatnio użyty program "
|
|
||||||
"poprzedniego obszaru roboczego. Jest to zawsze ostatni symbol na liście, "
|
|
||||||
"oddzielony pionową linią. \n"
|
|
||||||
"Każde okno jest przedstawiane przez swoją ikonę."
|
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:41
|
|
||||||
msgid "Move current selection to front before closing the popup"
|
|
||||||
msgstr ""
|
|
||||||
"Przesuwanie bieżącego zaznaczenia na przód przed zamknięciem okna "
|
|
||||||
"wyskakującego"
|
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:58
|
|
||||||
msgid ""
|
|
||||||
"The Alternate Tab can be used in different modes, that affect the way "
|
|
||||||
"windows are chosen and presented."
|
|
||||||
msgstr ""
|
|
||||||
"Alternatywna tabulacja może być używana w różnych trybach, które wpływają na "
|
|
||||||
"sposób wybierania i przedstawiania okien."
|
|
||||||
|
|
||||||
#. add the new entries
|
#. add the new entries
|
||||||
#: ../extensions/alternative-status-menu/extension.js:64
|
#: ../extensions/alternative-status-menu/extension.js:68
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
msgstr "Uśpij"
|
msgstr "Uśpij"
|
||||||
|
|
||||||
#: ../extensions/alternative-status-menu/extension.js:69
|
#: ../extensions/alternative-status-menu/extension.js:73
|
||||||
msgid "Hibernate"
|
msgid "Hibernate"
|
||||||
msgstr "Hibernuj"
|
msgstr "Hibernuj"
|
||||||
|
|
||||||
#: ../extensions/alternative-status-menu/extension.js:74
|
#: ../extensions/alternative-status-menu/extension.js:78
|
||||||
msgid "Power Off..."
|
msgid "Power Off"
|
||||||
msgstr "Wyłącz komputer..."
|
msgstr "Wyłącz komputer"
|
||||||
|
|
||||||
|
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:1
|
||||||
|
msgid "Enable suspending"
|
||||||
|
msgstr "Włączenie usypiania"
|
||||||
|
|
||||||
|
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:2
|
||||||
|
msgid "Control the visibility of the Suspend menu item"
|
||||||
|
msgstr "Kontrola widoczności pozycji \"Uśpij\" menu"
|
||||||
|
|
||||||
|
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:3
|
||||||
|
msgid "Enable hibernating"
|
||||||
|
msgstr "Włączenie hibernacji"
|
||||||
|
|
||||||
|
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:4
|
||||||
|
msgid "Control the visibility of the Hibernate menu item"
|
||||||
|
msgstr "Kontrola widoczności pozycji \"Hibernuj\" menu"
|
||||||
|
|
||||||
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
|
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
|
||||||
msgid "Application and workspace list"
|
msgid "Application and workspace list"
|
||||||
@@ -126,23 +119,23 @@ msgstr "Utwórz nową pasującą regułę"
|
|||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr "Dodaj"
|
msgstr "Dodaj"
|
||||||
|
|
||||||
#: ../extensions/dock/extension.js:577
|
#: ../extensions/dock/extension.js:600
|
||||||
msgid "Drag here to add favorites"
|
msgid "Drag here to add favorites"
|
||||||
msgstr "Przeciągnięcie tutaj dodaje do ulubionych"
|
msgstr "Przeciągnięcie tutaj dodaje do ulubionych"
|
||||||
|
|
||||||
#: ../extensions/dock/extension.js:903
|
#: ../extensions/dock/extension.js:926
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Nowe okno"
|
msgstr "Nowe okno"
|
||||||
|
|
||||||
#: ../extensions/dock/extension.js:905
|
#: ../extensions/dock/extension.js:928
|
||||||
msgid "Quit Application"
|
msgid "Quit Application"
|
||||||
msgstr "Zakończ program"
|
msgstr "Zakończ program"
|
||||||
|
|
||||||
#: ../extensions/dock/extension.js:910
|
#: ../extensions/dock/extension.js:933
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Usuń z ulubionych"
|
msgstr "Usuń z ulubionych"
|
||||||
|
|
||||||
#: ../extensions/dock/extension.js:911
|
#: ../extensions/dock/extension.js:934
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Dodaj do ulubionych"
|
msgstr "Dodaj do ulubionych"
|
||||||
|
|
||||||
@@ -202,7 +195,11 @@ msgstr ""
|
|||||||
"Ustawia, na którym monitorze wyświetlać dok. Domyślna wartość (-1) oznacza "
|
"Ustawia, na którym monitorze wyświetlać dok. Domyślna wartość (-1) oznacza "
|
||||||
"główny monitor."
|
"główny monitor."
|
||||||
|
|
||||||
#: ../extensions/drive-menu/extension.js:66
|
#: ../extensions/drive-menu/extension.js:57
|
||||||
|
msgid "Removable devices"
|
||||||
|
msgstr "Urządzenia wymienne"
|
||||||
|
|
||||||
|
#: ../extensions/drive-menu/extension.js:68
|
||||||
msgid "Open file manager"
|
msgid "Open file manager"
|
||||||
msgstr "Otwórz menedżer plików"
|
msgstr "Otwórz menedżer plików"
|
||||||
|
|
||||||
@@ -286,10 +283,18 @@ msgstr ""
|
|||||||
"powłokę. Zmiana tego ustawienia wymaga ponownego uruchomienia powłoki, aby "
|
"powłokę. Zmiana tego ustawienia wymaga ponownego uruchomienia powłoki, aby "
|
||||||
"uwzględnić zmiany."
|
"uwzględnić zmiany."
|
||||||
|
|
||||||
#: ../extensions/places-menu/extension.js:37
|
#: ../extensions/places-menu/extension.js:39
|
||||||
msgid "Removable Devices"
|
msgid "Removable Devices"
|
||||||
msgstr "Urządzenia wymienne"
|
msgstr "Urządzenia wymienne"
|
||||||
|
|
||||||
|
#: ../extensions/systemMonitor/extension.js:213
|
||||||
|
msgid "CPU"
|
||||||
|
msgstr "Procesor"
|
||||||
|
|
||||||
|
#: ../extensions/systemMonitor/extension.js:266
|
||||||
|
msgid "Memory"
|
||||||
|
msgstr "Pamięć"
|
||||||
|
|
||||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
|
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
|
||||||
msgid "Theme name"
|
msgid "Theme name"
|
||||||
msgstr "Nazwa motywu"
|
msgstr "Nazwa motywu"
|
||||||
@@ -321,11 +326,11 @@ msgstr "Normalnie"
|
|||||||
|
|
||||||
#: ../extensions/xrandr-indicator/extension.js:31
|
#: ../extensions/xrandr-indicator/extension.js:31
|
||||||
msgid "Left"
|
msgid "Left"
|
||||||
msgstr "W lewo"
|
msgstr "Lewo"
|
||||||
|
|
||||||
#: ../extensions/xrandr-indicator/extension.js:32
|
#: ../extensions/xrandr-indicator/extension.js:32
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr "W prawo"
|
msgstr "Prawo"
|
||||||
|
|
||||||
#: ../extensions/xrandr-indicator/extension.js:33
|
#: ../extensions/xrandr-indicator/extension.js:33
|
||||||
msgid "Upside-down"
|
msgid "Upside-down"
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=extensions\n"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=extensions\n"
|
||||||
"POT-Creation-Date: 2012-06-08 12:07+0000\n"
|
"POT-Creation-Date: 2012-08-29 00:06+0000\n"
|
||||||
"PO-Revision-Date: 2012-06-08 20:51+0100\n"
|
"PO-Revision-Date: 2012-08-29 09:10+0100\n"
|
||||||
"Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
|
"Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
|
||||||
"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
|
"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
|
||||||
"Language: \n"
|
"Language: \n"
|
||||||
@@ -22,40 +22,32 @@ msgstr ""
|
|||||||
"X-Poedit-SourceCharset: utf-8\n"
|
"X-Poedit-SourceCharset: utf-8\n"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
|
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
|
||||||
msgid "The alt tab behaviour."
|
msgid "The application icon mode."
|
||||||
msgstr "Obnašanje tipk Alt-Tab"
|
msgstr "Ikonski način programa."
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
|
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
|
||||||
msgid "Sets the Alt-Tab behaviour. Possible values are: all_thumbnails and workspace_icons. See the configuration dialogs for details."
|
msgid "Configures how the windows are shown in the switcher. Valid possibilities are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-only' (shows only the application icon) or 'both'."
|
||||||
msgstr "Določi obnašanje tipk Alt-Tab. Mogoče vrednosti so: vse_sličice in ikone_delovne_površine. Za več podrobnosti si oglejte nastavitve."
|
msgstr "Nastavitev prikaza oken v preklopniku. Veljavne možnosti so 'le sličice', kar pokaže pomanjšano sličico okna, 'le ikono programa', kar pokaže ikono in možnost 'oboje', torej ikono in pomanjšano sličico."
|
||||||
|
|
||||||
|
#: ../extensions/alternate-tab/prefs.js:26
|
||||||
|
msgid "Thumbnail only"
|
||||||
|
msgstr "Le sličice"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:27
|
#: ../extensions/alternate-tab/prefs.js:27
|
||||||
msgid "All & Thumbnails"
|
msgid "Application icon only"
|
||||||
msgstr "Vse in sličice"
|
msgstr "Le ikono programa"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:28
|
#: ../extensions/alternate-tab/prefs.js:28
|
||||||
msgid "This mode presents all applications from all workspaces in one selection list. Instead of using the application icon of every window, it uses small thumbnails resembling the window itself."
|
msgid "Thumbnail and application icon"
|
||||||
msgstr "Ta način prikazuje vse programe na vseh delovnih površinah na enem izbirnem seznamu. Namesto uporabe ikone programa na vsakem oknu, uporablja majhne sličice, ki predstavljajo samo okno."
|
msgstr "Sličice in ikono programa"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:34
|
#: ../extensions/alternate-tab/prefs.js:43
|
||||||
msgid "Workspace & Icons"
|
msgid "Present windows as"
|
||||||
msgstr "Delovne površine in ikone"
|
msgstr "Pokaži okna kot"
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:35
|
#: ../extensions/alternate-tab/prefs.js:68
|
||||||
msgid ""
|
msgid "Show only windows in the current workspace"
|
||||||
"This mode let's you switch between the applications of your current workspace and gives you additionally the option to switch to the last used application of your previous workspace. This is always the last symbol in the list and is segregated by a separator/vertical line if available. \n"
|
msgstr "Pokaži le okna trenutne delovne površine"
|
||||||
"Every window is represented by its application icon."
|
|
||||||
msgstr ""
|
|
||||||
"Ta način omogoča preklop med programi trenutne delovne površine in hkrati omogoča izbiro na zadnje uporabljenega okna predhodne delovne površine. Ta predmet je vedno zapisan kot zadnji predmet seznama in je ločen z ločilnikom ali navpično črto.\n"
|
|
||||||
"Vsako okno je prikazano z ikono programa."
|
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:41
|
|
||||||
msgid "Move current selection to front before closing the popup"
|
|
||||||
msgstr "Premakni trenutni izbor v ospredje pred zapiranjem pojavnega okna"
|
|
||||||
|
|
||||||
#: ../extensions/alternate-tab/prefs.js:58
|
|
||||||
msgid "The Alternate Tab can be used in different modes, that affect the way windows are chosen and presented."
|
|
||||||
msgstr "Nadomestni zavihek je mogoče uporabiti pri različnih načinih dela, ki vplivajo na način izbire oken."
|
|
||||||
|
|
||||||
#. add the new entries
|
#. add the new entries
|
||||||
#: ../extensions/alternative-status-menu/extension.js:68
|
#: ../extensions/alternative-status-menu/extension.js:68
|
||||||
@@ -253,6 +245,14 @@ msgstr "Izbrana možnost določi postavitev nazivov oken na vrh posamezne sliči
|
|||||||
msgid "Removable Devices"
|
msgid "Removable Devices"
|
||||||
msgstr "Odstranljive naprave"
|
msgstr "Odstranljive naprave"
|
||||||
|
|
||||||
|
#: ../extensions/systemMonitor/extension.js:213
|
||||||
|
msgid "CPU"
|
||||||
|
msgstr "CPE"
|
||||||
|
|
||||||
|
#: ../extensions/systemMonitor/extension.js:266
|
||||||
|
msgid "Memory"
|
||||||
|
msgstr "Pomnilnik"
|
||||||
|
|
||||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
|
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
|
||||||
msgid "Theme name"
|
msgid "Theme name"
|
||||||
msgstr "Ime teme"
|
msgstr "Ime teme"
|
||||||
@@ -298,3 +298,48 @@ msgstr "Zgoraj-navzdol"
|
|||||||
msgid "Configure display settings..."
|
msgid "Configure display settings..."
|
||||||
msgstr "Nastavitve zaslona ..."
|
msgstr "Nastavitve zaslona ..."
|
||||||
|
|
||||||
|
#~ msgid "The alt tab behaviour."
|
||||||
|
#~ msgstr "Obnašanje tipk Alt-Tab"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "Sets the Alt-Tab behaviour. Possible values are: all_thumbnails and "
|
||||||
|
#~ "workspace_icons. See the configuration dialogs for details."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Določi obnašanje tipk Alt-Tab. Mogoče vrednosti so: vse_sličice in "
|
||||||
|
#~ "ikone_delovne_površine. Za več podrobnosti si oglejte nastavitve."
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "This mode presents all applications from all workspaces in one selection "
|
||||||
|
#~ "list. Instead of using the application icon of every window, it uses "
|
||||||
|
#~ "small thumbnails resembling the window itself."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Ta način prikazuje vse programe na vseh delovnih površinah na enem "
|
||||||
|
#~ "izbirnem seznamu. Namesto uporabe ikone programa na vsakem oknu, "
|
||||||
|
#~ "uporablja majhne sličice, ki predstavljajo samo okno."
|
||||||
|
|
||||||
|
#~ msgid "Workspace & Icons"
|
||||||
|
#~ msgstr "Delovne površine in ikone"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "This mode let's you switch between the applications of your current "
|
||||||
|
#~ "workspace and gives you additionally the option to switch to the last "
|
||||||
|
#~ "used application of your previous workspace. This is always the last "
|
||||||
|
#~ "symbol in the list and is segregated by a separator/vertical line if "
|
||||||
|
#~ "available. \n"
|
||||||
|
#~ "Every window is represented by its application icon."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Ta način omogoča preklop med programi trenutne delovne površine in hkrati "
|
||||||
|
#~ "omogoča izbiro na zadnje uporabljenega okna predhodne delovne površine. "
|
||||||
|
#~ "Ta predmet je vedno zapisan kot zadnji predmet seznama in je ločen z "
|
||||||
|
#~ "ločilnikom ali navpično črto.\n"
|
||||||
|
#~ "Vsako okno je prikazano z ikono programa."
|
||||||
|
|
||||||
|
#~ msgid "Move current selection to front before closing the popup"
|
||||||
|
#~ msgstr "Premakni trenutni izbor v ospredje pred zapiranjem pojavnega okna"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "The Alternate Tab can be used in different modes, that affect the way "
|
||||||
|
#~ "windows are chosen and presented."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Nadomestni zavihek je mogoče uporabiti pri različnih načinih dela, ki "
|
||||||
|
#~ "vplivajo na način izbire oken."
|
||||||
|
|||||||
Reference in New Issue
Block a user