├── .eslintrc.yml
├── .github
└── workflows
│ └── make.yml
├── .gitignore
├── COPYING
├── Makefile
├── README.md
├── Settings.ui
├── _stylesheet.scss
├── appIconIndicators.js
├── appIcons.js
├── appIconsDecorator.js
├── appSpread.js
├── dash.js
├── dbusmenuUtils.js
├── default.nix
├── dependencies
├── gi.js
└── shell
│ ├── extensions
│ └── extension.js
│ ├── misc.js
│ └── ui.js
├── desktopIconsIntegration.js
├── docking.js
├── extension.js
├── fileManager1API.js
├── imports.js
├── intellihide.js
├── launcherAPI.js
├── lint
├── eslintrc-gjs.yml
└── eslintrc-shell.yml
├── locations.js
├── locationsWorker.js
├── media
├── glossy.svg
├── highlight_stacked_bg.svg
├── highlight_stacked_bg_h.svg
├── logo.svg
└── screenshot.jpg
├── metadata.json
├── notificationsMonitor.js
├── po
├── ar.po
├── cs.po
├── de.po
├── el.po
├── es.po
├── eu.po
├── fr.po
├── gl.po
├── hu.po
├── id.po
├── it.po
├── ja.po
├── ko.po
├── nb.po
├── nl.po
├── pl.po
├── pt.po
├── pt_BR.po
├── ru.po
├── sk.po
├── sl.po
├── sr.po
├── sr@latin.po
├── sv.po
├── tr.po
├── uk_UA.po
├── zh_CN.po
└── zh_TW.po
├── prefs.js
├── schemas
└── org.gnome.shell.extensions.dash-to-dock.gschema.xml
├── theming.js
├── utils.js
└── windowPreview.js
/.eslintrc.yml:
--------------------------------------------------------------------------------
1 | ignorePatterns:
2 | - _build/**
3 |
4 | extends:
5 | - ./lint/eslintrc-gjs.yml
6 | - ./lint/eslintrc-shell.yml
7 |
8 | overrides:
9 | - files: ./*.js
10 | globals:
11 | global: readonly
12 | _: readonly
13 | C_: readonly
14 | N_: readonly
15 | ngettext: readonly
16 |
17 | rules:
18 | prefer-const: error
19 | prefer-destructuring: warn
20 | guard-for-in: error
21 | max-len:
22 | - error
23 | - code: 110
24 | ignoreUrls: true
25 | ignoreTemplateLiterals: true
26 |
27 | comma-dangle:
28 | - error
29 | - arrays: always-multiline
30 | objects: always-multiline
31 | imports: always-multiline
32 | functions: never
33 |
34 | parserOptions:
35 | sourceType: module
36 |
--------------------------------------------------------------------------------
/.github/workflows/make.yml:
--------------------------------------------------------------------------------
1 | ---
2 | name: Make
3 | 'on':
4 | pull_request:
5 | push:
6 | branches:
7 | - master
8 | - ubuntu-dock
9 | - make_ci
10 |
11 | jobs:
12 | make:
13 | name: Make
14 | runs-on: ubuntu-latest
15 | steps:
16 | - name: Check out the codebase.
17 | uses: actions/checkout@v4
18 |
19 | - name: Install dependencies.
20 | run: sudo apt-get install -y sassc gettext
21 |
22 | - name: Make
23 | run: make
24 |
25 | - name: Install modules
26 | run: sudo npm install eslint -g
27 |
28 | - name: Make Check
29 | run: make check
30 |
31 | - name: Make Install
32 | run: make install
33 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .~
2 | *~
3 | gschemas.compiled
4 | dash-to-dock@micxgx.gmail.com.zip
5 | *.mo
6 | po/dashtodock.pot
7 | stylesheet.css
8 | Settings.ui.h
9 | _build
10 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | # Basic Makefile
2 |
3 | UUID = dash-to-dock@micxgx.gmail.com
4 | BASE_MODULES = extension.js \
5 | metadata.json \
6 | COPYING \
7 | README.md \
8 | $(NULL)
9 |
10 | EXTRA_MODULES = \
11 | appSpread.js \
12 | dash.js \
13 | docking.js \
14 | appIcons.js \
15 | appIconsDecorator.js \
16 | appIconIndicators.js \
17 | fileManager1API.js \
18 | imports.js \
19 | launcherAPI.js \
20 | locations.js \
21 | locationsWorker.js \
22 | notificationsMonitor.js \
23 | windowPreview.js \
24 | intellihide.js \
25 | prefs.js \
26 | theming.js \
27 | utils.js \
28 | dbusmenuUtils.js \
29 | desktopIconsIntegration.js \
30 | Settings.ui \
31 | $(NULL)
32 |
33 | EXTRA_MEDIA = logo.svg \
34 | glossy.svg \
35 | highlight_stacked_bg.svg \
36 | highlight_stacked_bg_h.svg \
37 | $(NULL)
38 |
39 | TOLOCALIZE = prefs.js \
40 | docking.js \
41 | appIcons.js \
42 | appIconsDecorator.js \
43 | locations.js \
44 | $(NULL)
45 |
46 | MSGSRC = $(wildcard po/*.po)
47 | ifeq ($(strip $(DESTDIR)),)
48 | INSTALLTYPE = local
49 | INSTALLBASE = $(HOME)/.local/share/gnome-shell/extensions
50 | else
51 | INSTALLTYPE = system
52 | SHARE_PREFIX = $(DESTDIR)/usr/share
53 | INSTALLBASE = $(SHARE_PREFIX)/gnome-shell/extensions
54 | endif
55 | INSTALLNAME = dash-to-dock@micxgx.gmail.com
56 |
57 | # The command line passed variable VERSION is used to set the version string
58 | # in the metadata and in the generated zip-file. If no VERSION is passed, the
59 | # current commit SHA1 is used as version number in the metadata while the
60 | # generated zip file has no string attached.
61 | ifdef VERSION
62 | VSTRING = _v$(VERSION)
63 | else
64 | VERSION = $(shell git rev-parse HEAD)
65 | VSTRING =
66 | endif
67 |
68 | all: extension
69 |
70 | clean:
71 | rm -f ./schemas/gschemas.compiled
72 | rm -f stylesheet.css
73 | rm -rf _build
74 |
75 | extension: ./schemas/gschemas.compiled ./stylesheet.css $(MSGSRC:.po=.mo)
76 |
77 | ./schemas/gschemas.compiled: ./schemas/org.gnome.shell.extensions.dash-to-dock.gschema.xml
78 | glib-compile-schemas ./schemas/
79 |
80 | potfile: ./po/dashtodock.pot
81 |
82 | mergepo: potfile
83 | for l in $(MSGSRC); do \
84 | msgmerge -U $$l ./po/dashtodock.pot; \
85 | done;
86 |
87 | ./po/dashtodock.pot: $(TOLOCALIZE) Settings.ui
88 | mkdir -p po
89 | xgettext --keyword=__ --keyword=N__ --add-comments='Translators:' -o po/dashtodock.pot --package-name "Dash to Dock" --from-code=utf-8 $(TOLOCALIZE)
90 | intltool-extract --type=gettext/glade Settings.ui
91 | xgettext --keyword=_ --keyword=N_ --join-existing -o po/dashtodock.pot Settings.ui.h
92 |
93 | ./po/%.mo: ./po/%.po
94 | msgfmt -c $< -o $@
95 |
96 | ./stylesheet.css: ./_stylesheet.scss
97 | ifeq ($(SASS), ruby)
98 | sass --sourcemap=none --no-cache --scss _stylesheet.scss stylesheet.css
99 | else ifeq ($(SASS), dart)
100 | sass --no-source-map _stylesheet.scss stylesheet.css
101 | else ifeq ($(SASS), sassc)
102 | sassc --omit-map-comment _stylesheet.scss stylesheet.css
103 | else
104 | sassc --omit-map-comment _stylesheet.scss stylesheet.css
105 | endif
106 |
107 | install: install-local
108 |
109 | install-local: _build
110 | rm -rf $(INSTALLBASE)/$(INSTALLNAME)
111 | mkdir -p $(INSTALLBASE)/$(INSTALLNAME)
112 | cp -r ./_build/* $(INSTALLBASE)/$(INSTALLNAME)/
113 | ifeq ($(INSTALLTYPE),system)
114 | # system-wide settings and locale files
115 | rm -r $(INSTALLBASE)/$(INSTALLNAME)/schemas $(INSTALLBASE)/$(INSTALLNAME)/locale
116 | mkdir -p $(SHARE_PREFIX)/glib-2.0/schemas $(SHARE_PREFIX)/locale
117 | cp -r ./schemas/*gschema.* $(SHARE_PREFIX)/glib-2.0/schemas
118 | cp -r ./_build/locale/* $(SHARE_PREFIX)/locale
119 | endif
120 | -rm -fR _build
121 | echo done
122 |
123 | zip-file: _build check
124 | cd _build ; \
125 | zip -qr "$(UUID)$(VSTRING).zip" .
126 | mv _build/$(UUID)$(VSTRING).zip ./
127 | -rm -fR _build
128 |
129 | _build: all
130 | -rm -fR ./_build
131 | mkdir -p _build
132 | cp $(BASE_MODULES) $(EXTRA_MODULES) _build
133 | cp -a dependencies _build
134 | cp stylesheet.css _build
135 | mkdir -p _build/media
136 | cd media ; cp $(EXTRA_MEDIA) ../_build/media/
137 | mkdir -p _build/schemas
138 | cp schemas/*.xml _build/schemas/
139 | cp schemas/gschemas.compiled _build/schemas/
140 | mkdir -p _build/locale
141 | for l in $(MSGSRC:.po=.mo) ; do \
142 | lf=_build/locale/`basename $$l .mo`; \
143 | mkdir -p $$lf; \
144 | mkdir -p $$lf/LC_MESSAGES; \
145 | cp $$l $$lf/LC_MESSAGES/dashtodock.mo; \
146 | done;
147 | sed -i 's/"version": -1/"version": "$(VERSION)"/' _build/metadata.json;
148 |
149 | ifeq ($(strip $(ESLINT)),)
150 | ESLINT = eslint
151 | endif
152 |
153 | ifneq ($(strip $(ESLINT_TAP)),)
154 | ESLINT_ARGS = -f tap
155 | endif
156 |
157 | check:
158 | ESLINT_USE_FLAT_CONFIG=false $(ESLINT) $(ESLINT_ARGS) .
159 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Dash to Dock
2 | 
3 |
4 | ## A dock for the GNOME Shell
5 | This extension enhances the dash moving it out of the overview and transforming it in a dock for an easier launching of applications and a faster switching between windows and desktops without having to leave the desktop view.
6 |
7 | [
](https://extensions.gnome.org/extension/307/dash-to-dock)
8 |
9 | For additional installation instructions and more information visit [https://micheleg.github.io/dash-to-dock/](https://micheleg.github.io/dash-to-dock/).
10 |
11 | ## Installation from source
12 |
13 | The extension can be installed directly from source, either for the convenience of using git or to test the latest development version. Clone the desired branch with git
14 |
15 | ### Build Dependencies
16 |
17 | To compile the stylesheet you'll need an implementation of SASS. Dash to Dock supports `dart-sass` (`sass`), `sassc`, and `ruby-sass`. Every distro should have at least one of these implementations, we recommend using `dart-sass` (`sass`) or `sassc` over `ruby-sass` as `ruby-sass` is deprecated.
18 |
19 | By default, Dash to Dock will attempt to build with `sassc`. To change this behavior set the `SASS` environment variable to either `dart` or `ruby`.
20 |
21 | ```bash
22 | export SASS=dart
23 | # or...
24 | export SASS=ruby
25 | ```
26 |
27 | ### Building
28 |
29 | Clone the repository or download the branch from github. A simple Makefile is included.
30 |
31 | Next use `make` to install the extension into your home directory. A Shell reload is required `Alt+F2 r Enter` under Xorg or under Wayland you may have to logout and login. The extension has to be enabled with *gnome-extensions-app* (GNOME Extensions) or with *dconf*.
32 |
33 | ```bash
34 | git clone https://github.com/micheleg/dash-to-dock.git
35 | make -C dash-to-dock install
36 | ```
37 |
38 | If `msgfmt` is not available on your system, you will see an error message like the following:
39 |
40 | ```bash
41 | make: msgfmt: No such file or directory
42 | ```
43 |
44 | In this case install the `gettext` package from your distribution's repository.
45 |
46 |
47 | ## Bug Reporting
48 |
49 | Bugs should be reported to the Github bug tracker [https://github.com/micheleg/dash-to-dock/issues](https://github.com/micheleg/dash-to-dock/issues).
50 |
51 | ## License
52 | Dash to Dock Gnome Shell extension is distributed under the terms of the GNU General Public License,
53 | version 2 or later. See the COPYING file for details.
54 |
--------------------------------------------------------------------------------
/appIconsDecorator.js:
--------------------------------------------------------------------------------
1 | // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
2 |
3 |
4 | import {
5 | Docking,
6 | AppIconIndicators,
7 | Utils,
8 | } from './imports.js';
9 |
10 | import {
11 | Gio,
12 | } from './dependencies/gi.js';
13 |
14 | import {
15 | AppMenu,
16 | AppDisplay,
17 | Main,
18 | PopupMenu,
19 | } from './dependencies/shell/ui.js';
20 |
21 | const Labels = Object.freeze({
22 | GENERIC: Symbol('generic'),
23 | ICONS: Symbol('icons'),
24 | });
25 |
26 | export class AppIconsDecorator {
27 | constructor() {
28 | this._signals = new Utils.GlobalSignalsHandler();
29 | this._methodInjections = new Utils.InjectionsHandler();
30 | this._propertyInjections = new Utils.PropertyInjectionsHandler(
31 | null, {allowNewProperty: true});
32 | this._indicators = new Set();
33 |
34 | this._patchAppIcons();
35 | this._decorateIcons();
36 | }
37 |
38 | destroy() {
39 | this._signals?.destroy();
40 | delete this._signals;
41 | this._methodInjections?.destroy();
42 | delete this._methodInjections;
43 | this._propertyInjections?.destroy();
44 | delete this._propertyInjections;
45 | this._indicators?.forEach(i => i.destroy());
46 | this._indicators?.clear();
47 | delete this._indicators;
48 | }
49 |
50 | _decorateIcon(parentIcon, signalLabel = Labels.GENERIC) {
51 | const indicator = new AppIconIndicators.UnityIndicator(parentIcon);
52 | this._indicators.add(indicator);
53 | this._signals.addWithLabel(signalLabel, parentIcon, 'destroy', () => {
54 | this._indicators.delete(indicator);
55 | indicator.destroy();
56 | });
57 | return indicator;
58 | }
59 |
60 | _decorateIcons() {
61 | const {appDisplay} = Docking.DockManager.getDefault().overviewControls;
62 |
63 | const decorateAppIcons = () => {
64 | this._indicators.forEach(i => i.destroy());
65 | this._indicators.clear();
66 | this._signals.removeWithLabel(Labels.ICONS);
67 |
68 | const decorateViewIcons = view => {
69 | const items = view.getAllItems();
70 | items.forEach(i => {
71 | if (i instanceof AppDisplay.AppIcon) {
72 | this._decorateIcon(i, Labels.ICONS);
73 | } else if (i instanceof AppDisplay.FolderIcon) {
74 | decorateViewIcons(i.view);
75 | this._signals.addWithLabel(Labels.ICONS, i.view,
76 | 'view-loaded', () => decorateAppIcons());
77 | }
78 | });
79 | };
80 | decorateViewIcons(appDisplay);
81 | };
82 |
83 | this._signals.add(appDisplay, 'view-loaded', () => decorateAppIcons());
84 | decorateAppIcons();
85 | }
86 |
87 | _patchAppIcons() {
88 | const self = this;
89 |
90 | this._methodInjections.add(AppDisplay.AppSearchProvider.prototype,
91 | 'createResultObject', function (originalFunction, ...args) {
92 | /* eslint-disable no-invalid-this */
93 | const result = originalFunction.call(this, ...args);
94 | if (result instanceof AppDisplay.AppIcon)
95 | self._decorateIcon(result);
96 | return result;
97 | /* eslint-enable no-invalid-this */
98 | });
99 |
100 | this._methodInjections.add(AppDisplay.AppIcon.prototype,
101 | 'activate', function (originalFunction, ...args) {
102 | /* eslint-disable no-invalid-this */
103 | if (this.updating) {
104 | const icon = Gio.Icon.new_for_string('action-unavailable-symbolic');
105 | Main.osdWindowManager.show(-1, icon,
106 | _('%s is updating, try again later').format(this.name),
107 | null);
108 | return;
109 | }
110 |
111 | originalFunction.call(this, ...args);
112 | /* eslint-enable no-invalid-this */
113 | });
114 |
115 | const appIconsTypes = [
116 | AppDisplay.AppSearchProvider,
117 | AppDisplay.AppIcon,
118 | ];
119 | appIconsTypes.forEach(type =>
120 | this._propertyInjections.add(type.prototype, 'updating', {
121 | get() {
122 | return !!this.__d2dUpdating;
123 | },
124 | set(updating) {
125 | if (this.updating === updating)
126 | return;
127 | this.__d2dUpdating = updating;
128 | if (updating)
129 | this.add_style_class_name('updating');
130 | else
131 | this.remove_style_class_name('updating');
132 | },
133 | }));
134 |
135 | this._methodInjections.add(AppMenu.AppMenu.prototype,
136 | 'open', function (originalFunction, ...args) {
137 | /* eslint-disable no-invalid-this */
138 | if (!this.sourceActor.updating) {
139 | originalFunction.call(this, ...args);
140 | return;
141 | }
142 |
143 | if (this.isOpen)
144 | return;
145 |
146 | if (this.isEmpty())
147 | return;
148 |
149 | // Temporarily hide all the menu items a part the Pinning and
150 | // the details one while we're updating.
151 | const validItems = [
152 | this._toggleFavoriteItem,
153 | this._detailsItem,
154 | ];
155 | const items = this._getMenuItems().filter(
156 | i => !validItems.includes(i)).map(i =>
157 | i instanceof PopupMenu.PopupMenuBase ? i.actor : i);
158 | const itemsVisibility = items.map(i => i.visible);
159 | items.forEach(i => (i.visible = false));
160 | const menuClosedId = this.connect('menu-closed', () => {
161 | this.disconnect(menuClosedId);
162 | items.forEach((i, idx) => (i.visible = itemsVisibility[idx]));
163 | });
164 | originalFunction.call(this, ...args);
165 | /* eslint-enable no-invalid-this */
166 | });
167 | }
168 | }
169 |
--------------------------------------------------------------------------------
/appSpread.js:
--------------------------------------------------------------------------------
1 | import {Atk, Clutter} from './dependencies/gi.js';
2 |
3 | import {
4 | Main,
5 | SearchController,
6 | Workspace,
7 | WorkspaceThumbnail,
8 | } from './dependencies/shell/ui.js';
9 |
10 | import {Utils} from './imports.js';
11 |
12 | export class AppSpread {
13 | constructor() {
14 | this.app = null;
15 | this.supported = true;
16 | this.windows = [];
17 |
18 | // fail early and do nothing, if mandatory gnome shell functions are missing
19 | if (Main.overview.isDummy ||
20 | !Workspace?.Workspace?.prototype._isOverviewWindow ||
21 | !WorkspaceThumbnail?.WorkspaceThumbnail?.prototype._isOverviewWindow) {
22 | log('Dash to dock: Unable to temporarily replace shell functions ' +
23 | 'for app spread - using previews instead');
24 | this.supported = false;
25 | return;
26 | }
27 |
28 | this._signalHandlers = new Utils.GlobalSignalsHandler();
29 | this._methodInjections = new Utils.InjectionsHandler();
30 | this._vfuncInjections = new Utils.VFuncInjectionsHandler();
31 | }
32 |
33 | get isInAppSpread() {
34 | return !!this.app;
35 | }
36 |
37 | destroy() {
38 | if (!this.supported)
39 | return;
40 | this._hideAppSpread();
41 | this._signalHandlers.destroy();
42 | this._methodInjections.destroy();
43 | this._vfuncInjections.destroy();
44 | }
45 |
46 | toggle(app) {
47 | const newApp = this.app !== app;
48 | if (this.app)
49 | Main.overview.hide(); // also triggers hook 'hidden'
50 |
51 | if (app && newApp)
52 | this._showAppSpread(app);
53 | }
54 |
55 | _updateWindows() {
56 | this.windows = this.app.get_windows();
57 | }
58 |
59 | _restoreDefaultWindows() {
60 | const {workspaceManager} = global;
61 |
62 | for (let i = 0; i < workspaceManager.nWorkspaces; i++) {
63 | const metaWorkspace = workspaceManager.get_workspace_by_index(i);
64 | metaWorkspace.list_windows().forEach(w => metaWorkspace.emit('window-added', w));
65 | }
66 | }
67 |
68 | _filterWindows() {
69 | const {workspaceManager} = global;
70 |
71 | for (let i = 0; i < workspaceManager.nWorkspaces; i++) {
72 | const metaWorkspace = workspaceManager.get_workspace_by_index(i);
73 | metaWorkspace.list_windows().filter(w => !this.windows.includes(w)).forEach(
74 | w => metaWorkspace.emit('window-removed', w));
75 | }
76 | }
77 |
78 | _restoreDefaultOverview() {
79 | this._hideAppSpread();
80 | this._restoreDefaultWindows();
81 | }
82 |
83 | _showAppSpread(app) {
84 | if (this.isInAppSpread)
85 | return;
86 |
87 | // Checked in overview "hide" event handler _hideAppSpread
88 | this.app = app;
89 | this._updateWindows();
90 |
91 | // we need to hook into overview 'hidden' like this, in case app spread
92 | // overview is hidden by choosing another app it should then do its
93 | // cleanup too
94 | this._signalHandlers.add(Main.overview, 'hidden', () => this._hideAppSpread());
95 |
96 | const appSpread = this;
97 | this._methodInjections.add([
98 | // Filter workspaces to only show current app windows
99 | Workspace.Workspace.prototype, '_isOverviewWindow',
100 | function (originalMethod, window) {
101 | /* eslint-disable no-invalid-this */
102 | const isOverviewWindow = originalMethod.call(this, window);
103 | return isOverviewWindow && appSpread.windows.includes(window);
104 | /* eslint-enable no-invalid-this */
105 | },
106 | ],
107 | [
108 | // Filter thumbnails to only show current app windows
109 | WorkspaceThumbnail.WorkspaceThumbnail.prototype, '_isOverviewWindow',
110 | function (originalMethod, windowActor) {
111 | /* eslint-disable no-invalid-this */
112 | const isOverviewWindow = originalMethod.call(this, windowActor);
113 | return isOverviewWindow && appSpread.windows.includes(windowActor.metaWindow);
114 | /* eslint-enable no-invalid-this */
115 | },
116 | ]);
117 |
118 | const activitiesButton = Main.panel.statusArea?.activities;
119 |
120 | if (activitiesButton) {
121 | this._signalHandlers.add(Main.overview, 'showing', () => {
122 | activitiesButton.remove_style_pseudo_class('overview');
123 | activitiesButton.remove_accessible_state(Atk.StateType.CHECKED);
124 | });
125 |
126 | this._vfuncInjections.add([
127 | activitiesButton.constructor.prototype,
128 | 'event',
129 | function (event) {
130 | if (event.type() === Clutter.EventType.TOUCH_END ||
131 | event.type() === Clutter.EventType.BUTTON_RELEASE) {
132 | if (Main.overview.shouldToggleByCornerOrButton())
133 | appSpread._restoreDefaultOverview();
134 | }
135 | return Clutter.EVENT_PROPAGATE;
136 | },
137 | ],
138 | [
139 | activitiesButton.constructor.prototype,
140 | 'key_release_event',
141 | function (keyEvent) {
142 | const {keyval} = keyEvent;
143 | if (keyval === Clutter.KEY_Return || keyval === Clutter.KEY_space) {
144 | if (Main.overview.shouldToggleByCornerOrButton())
145 | appSpread._restoreDefaultOverview();
146 | }
147 | return Clutter.EVENT_PROPAGATE;
148 | },
149 | ]);
150 | }
151 |
152 | this._signalHandlers.add(Main.overview.dash.showAppsButton, 'notify::checked', () => {
153 | if (Main.overview.dash.showAppsButton.checked)
154 | this._restoreDefaultOverview();
155 | });
156 |
157 | // If closing windows in AppSpread, and only one window left:
158 | // exit app spread and focus remaining window (handled in _hideAppSpread)
159 | this._signalHandlers.add(this.app, 'windows-changed', () => {
160 | this._updateWindows();
161 |
162 | if (this.windows.length <= 1)
163 | Main.overview.hide();
164 | });
165 |
166 | this._disableSearch();
167 |
168 | Main.overview.show();
169 | }
170 |
171 | _hideAppSpread() {
172 | if (!this.isInAppSpread)
173 | return;
174 |
175 | if (Main.overview.visible) {
176 | Main.panel.statusArea?.activities.add_style_pseudo_class('overview');
177 | Main.panel.statusArea?.activities.add_accessible_state(Atk.StateType.CHECKED);
178 | }
179 |
180 | // Restore original behaviour
181 | this.app = null;
182 | this._enableSearch();
183 | this._methodInjections.clear();
184 | this._signalHandlers.clear();
185 | this._vfuncInjections.clear();
186 |
187 | // Check reason for leaving AppSpread was closing app windows and only one window left...
188 | if (this.windows.length === 1)
189 | Main.activateWindow(this.windows[0]);
190 |
191 | this.windows = [];
192 | }
193 |
194 | _disableSearch() {
195 | if (!SearchController.SearchController.prototype._shouldTriggerSearch)
196 | return;
197 |
198 | if (Main.overview.searchEntry)
199 | Main.overview.searchEntry.opacity = 0;
200 |
201 | this._methodInjections.add(
202 | SearchController.SearchController.prototype,
203 | '_shouldTriggerSearch', () => false);
204 | }
205 |
206 | _enableSearch() {
207 | if (Main.overview.searchEntry)
208 | Main.overview.searchEntry.opacity = 255;
209 | }
210 | }
211 |
--------------------------------------------------------------------------------
/dbusmenuUtils.js:
--------------------------------------------------------------------------------
1 | // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
2 |
3 | import {
4 | Atk,
5 | Clutter,
6 | Gio,
7 | GLib,
8 | St,
9 | } from './dependencies/gi.js';
10 |
11 | import {PopupMenu} from './dependencies/shell/ui.js';
12 |
13 | import {Utils} from './imports.js';
14 |
15 | // Dbusmenu features not (yet) supported:
16 | //
17 | // * The CHILD_DISPLAY property
18 | //
19 | // This seems to have only one possible value in the Dbusmenu API, so
20 | // there's little point in depending on it--the code in libdbusmenu sets it
21 | // if and only if an item has children, so for our purposes it's simpler
22 | // and more intuitive to just check children.length. (This does ignore the
23 | // possibility of a program not using libdbusmenu and setting CHILD_DISPLAY
24 | // independently, perhaps to indicate that an childless menu item should
25 | // nevertheless be displayed like a submenu.)
26 | //
27 | // * Children more than two levels deep
28 | //
29 | // PopupMenu doesn't seem to support submenus in submenus.
30 | //
31 | // * Shortcut keys
32 | //
33 | // If these keys are supposed to be installed as global shortcuts, we'd
34 | // have to query these aggressively and not wait for the DBus menu to be
35 | // mapped to a popup menu. A shortcut key that only works once the popup
36 | // menu is open and has key focus is possibly of marginal value.
37 |
38 | /**
39 | *
40 | */
41 | export async function haveDBusMenu() {
42 | try {
43 | const {default: DBusMenu} = await import('gi://Dbusmenu');
44 | return DBusMenu;
45 | } catch (e) {
46 | log(`Failed to import DBusMenu, quicklists are not available: ${e}`);
47 | return null;
48 | }
49 | }
50 |
51 | const DBusMenu = await haveDBusMenu();
52 |
53 | /**
54 | * @param dbusmenuItem
55 | * @param deep
56 | */
57 | export function makePopupMenuItem(dbusmenuItem, deep) {
58 | // These are the only properties guaranteed to be available when the root
59 | // item is first announced. Other properties might be loaded already, but
60 | // be sure to connect to Dbusmenu.MENUITEM_SIGNAL_PROPERTY_CHANGED to get
61 | // the most up-to-date values in case they aren't.
62 | const itemType = dbusmenuItem.property_get(DBusMenu.MENUITEM_PROP_TYPE);
63 | const label = dbusmenuItem.property_get(DBusMenu.MENUITEM_PROP_LABEL);
64 | const visible = dbusmenuItem.property_get_bool(DBusMenu.MENUITEM_PROP_VISIBLE);
65 | const enabled = dbusmenuItem.property_get_bool(DBusMenu.MENUITEM_PROP_ENABLED);
66 | const accessibleDesc = dbusmenuItem.property_get(DBusMenu.MENUITEM_PROP_ACCESSIBLE_DESC);
67 | // const childDisplay = dbusmenuItem.property_get(Dbusmenu.MENUITEM_PROP_CHILD_DISPLAY);
68 |
69 | let item;
70 | const signalsHandler = new Utils.GlobalSignalsHandler();
71 | const wantIcon = itemType === DBusMenu.CLIENT_TYPES_IMAGE;
72 |
73 | // If the basic type of the menu item needs to change, call this.
74 | const recreateItem = () => {
75 | const newItem = makePopupMenuItem(dbusmenuItem, deep);
76 | const parentMenu = item._parent;
77 | parentMenu.addMenuItem(newItem);
78 | // Reminder: Clutter thinks of later entries in the child list as
79 | // "above" earlier ones, so "above" here means "below" in terms of the
80 | // menu's vertical order.
81 | parentMenu.actor.set_child_above_sibling(newItem.actor, item.actor);
82 | if (newItem.menu)
83 | parentMenu.actor.set_child_above_sibling(newItem.menu.actor, newItem.actor);
84 |
85 | parentMenu.actor.remove_child(item.actor);
86 | item.destroy();
87 | item = null;
88 | };
89 |
90 | const updateDisposition = () => {
91 | const disposition = dbusmenuItem.property_get(DBusMenu.MENUITEM_PROP_DISPOSITION);
92 | let iconName = null;
93 | switch (disposition) {
94 | case DBusMenu.MENUITEM_DISPOSITION_ALERT:
95 | case DBusMenu.MENUITEM_DISPOSITION_WARNING:
96 | iconName = 'dialog-warning-symbolic';
97 | break;
98 | case DBusMenu.MENUITEM_DISPOSITION_INFORMATIVE:
99 | iconName = 'dialog-information-symbolic';
100 | break;
101 | }
102 | if (iconName) {
103 | item._dispositionIcon = new St.Icon({
104 | icon_name: iconName,
105 | style_class: 'popup-menu-icon',
106 | y_align: Clutter.ActorAlign.CENTER,
107 | y_expand: true,
108 | });
109 | let expander;
110 | for (let child = item.label.get_next_sibling(); ; child = child.get_next_sibling()) {
111 | if (!child) {
112 | expander = new St.Bin({
113 | style_class: 'popup-menu-item-expander',
114 | x_expand: true,
115 | });
116 | item.actor.add_child(expander);
117 | break;
118 | } else if (child instanceof St.Widget &&
119 | child.has_style_class_name('popup-menu-item-expander')) {
120 | expander = child;
121 | break;
122 | }
123 | }
124 | item.actor.insert_child_above(item._dispositionIcon, expander);
125 | } else if (item._dispositionIcon) {
126 | item.actor.remove_child(item._dispositionIcon);
127 | item._dispositionIcon = null;
128 | }
129 | };
130 |
131 | const updateIcon = () => {
132 | if (!wantIcon)
133 | return;
134 |
135 | const iconData = dbusmenuItem.property_get_byte_array(DBusMenu.MENUITEM_PROP_ICON_DATA);
136 | const iconName = dbusmenuItem.property_get(DBusMenu.MENUITEM_PROP_ICON_NAME);
137 | if (iconName)
138 | item.icon.icon_name = iconName;
139 | else if (iconData.length)
140 | item.icon.gicon = Gio.BytesIcon.new(iconData);
141 | };
142 |
143 | const updateOrnament = () => {
144 | const toggleType = dbusmenuItem.property_get(DBusMenu.MENUITEM_PROP_TOGGLE_TYPE);
145 | switch (toggleType) {
146 | case DBusMenu.MENUITEM_TOGGLE_CHECK:
147 | item.actor.accessible_role = Atk.Role.CHECK_MENU_ITEM;
148 | break;
149 | case DBusMenu.MENUITEM_TOGGLE_RADIO:
150 | item.actor.accessible_role = Atk.Role.RADIO_MENU_ITEM;
151 | break;
152 | default:
153 | item.actor.accessible_role = Atk.Role.MENU_ITEM;
154 | }
155 | let ornament = PopupMenu.Ornament.NONE;
156 | const state = dbusmenuItem.property_get_int(DBusMenu.MENUITEM_PROP_TOGGLE_STATE);
157 | if (state === DBusMenu.MENUITEM_TOGGLE_STATE_UNKNOWN) {
158 | // PopupMenu doesn't natively support an "unknown" ornament, but we
159 | // can hack one in:
160 | item.setOrnament(ornament);
161 | item.actor.add_accessible_state(Atk.StateType.INDETERMINATE);
162 | item._ornamentLabel.text = '\u2501';
163 | item.actor.remove_style_pseudo_class('checked');
164 | } else {
165 | item.actor.remove_accessible_state(Atk.StateType.INDETERMINATE);
166 | if (state === DBusMenu.MENUITEM_TOGGLE_STATE_CHECKED) {
167 | if (toggleType === DBusMenu.MENUITEM_TOGGLE_CHECK)
168 | ornament = PopupMenu.Ornament.CHECK;
169 | else if (toggleType === DBusMenu.MENUITEM_TOGGLE_RADIO)
170 | ornament = PopupMenu.Ornament.DOT;
171 |
172 | item.actor.add_style_pseudo_class('checked');
173 | } else {
174 | item.actor.remove_style_pseudo_class('checked');
175 | }
176 | item.setOrnament(ornament);
177 | }
178 | };
179 |
180 | const onPropertyChanged = (_, name, value) => {
181 | // `value` is null when a property is cleared, so handle those cases
182 | // with sensible defaults.
183 | switch (name) {
184 | case DBusMenu.MENUITEM_PROP_TYPE:
185 | recreateItem();
186 | break;
187 | case DBusMenu.MENUITEM_PROP_ENABLED:
188 | item.setSensitive(value ? value.unpack() : false);
189 | break;
190 | case DBusMenu.MENUITEM_PROP_LABEL:
191 | item.label.text = value ? value.unpack() : '';
192 | break;
193 | case DBusMenu.MENUITEM_PROP_VISIBLE:
194 | item.actor.visible = value ? value.unpack() : false;
195 | break;
196 | case DBusMenu.MENUITEM_PROP_DISPOSITION:
197 | updateDisposition();
198 | break;
199 | case DBusMenu.MENUITEM_PROP_ACCESSIBLE_DESC:
200 | item.actor.get_accessible().accessible_description = value && value.unpack() || '';
201 | break;
202 | case DBusMenu.MENUITEM_PROP_ICON_DATA:
203 | case DBusMenu.MENUITEM_PROP_ICON_NAME:
204 | updateIcon();
205 | break;
206 | case DBusMenu.MENUITEM_PROP_TOGGLE_TYPE:
207 | case DBusMenu.MENUITEM_PROP_TOGGLE_STATE:
208 | updateOrnament();
209 | break;
210 | }
211 | };
212 |
213 |
214 | // Start actually building the menu item.
215 | const children = dbusmenuItem.get_children();
216 | if (children.length && !deep) {
217 | // Make a submenu.
218 | item = new PopupMenu.PopupSubMenuMenuItem(label, wantIcon);
219 | const updateChildren = () => {
220 | const itemChildren = dbusmenuItem.get_children();
221 | if (!itemChildren.length) {
222 | recreateItem();
223 | return;
224 | }
225 |
226 | item.menu.removeAll();
227 | itemChildren.forEach(remoteChild =>
228 | item.menu.addMenuItem(makePopupMenuItem(remoteChild, true)));
229 | };
230 | updateChildren();
231 | signalsHandler.add(
232 | [dbusmenuItem, DBusMenu.MENUITEM_SIGNAL_CHILD_ADDED, updateChildren],
233 | [dbusmenuItem, DBusMenu.MENUITEM_SIGNAL_CHILD_MOVED, updateChildren],
234 | [dbusmenuItem, DBusMenu.MENUITEM_SIGNAL_CHILD_REMOVED, updateChildren]);
235 | } else {
236 | // Don't make a submenu.
237 | if (!deep) {
238 | // We only have the potential to get a submenu if we aren't deep.
239 | signalsHandler.add(
240 | [dbusmenuItem, DBusMenu.MENUITEM_SIGNAL_CHILD_ADDED, recreateItem],
241 | [dbusmenuItem, DBusMenu.MENUITEM_SIGNAL_CHILD_MOVED, recreateItem],
242 | [dbusmenuItem, DBusMenu.MENUITEM_SIGNAL_CHILD_REMOVED, recreateItem]);
243 | }
244 |
245 | if (itemType === DBusMenu.CLIENT_TYPES_SEPARATOR) {
246 | item = new PopupMenu.PopupSeparatorMenuItem();
247 | } else if (wantIcon) {
248 | item = new PopupMenu.PopupImageMenuItem(label, null);
249 | item.icon = item._icon;
250 | } else {
251 | item = new PopupMenu.PopupMenuItem(label);
252 | }
253 | }
254 |
255 | // Set common initial properties.
256 | item.actor.visible = visible;
257 | item.setSensitive(enabled);
258 | if (accessibleDesc)
259 | item.actor.get_accessible().accessible_description = accessibleDesc;
260 |
261 | updateDisposition();
262 | updateIcon();
263 | updateOrnament();
264 |
265 | // Prevent an initial resize flicker.
266 | if (wantIcon)
267 | item.icon.icon_size = 16;
268 |
269 |
270 | signalsHandler.add(dbusmenuItem, DBusMenu.MENUITEM_SIGNAL_PROPERTY_CHANGED, onPropertyChanged);
271 |
272 | // Connections on item will be lost when item is disposed; there's no need
273 | // to add them to signalsHandler.
274 | item.connect('activate', () =>
275 | dbusmenuItem.handle_event(DBusMenu.MENUITEM_EVENT_ACTIVATED,
276 | new GLib.Variant('i', 0), Math.floor(Date.now() / 1000)));
277 | item.connect('destroy', () => signalsHandler.destroy());
278 |
279 | return item;
280 | }
281 |
--------------------------------------------------------------------------------
/default.nix:
--------------------------------------------------------------------------------
1 | with import {};
2 | stdenv.mkDerivation {
3 | name = "dash-to-dock";
4 | buildInputs = [ gnumake glib sassc ];
5 | }
6 |
--------------------------------------------------------------------------------
/dependencies/gi.js:
--------------------------------------------------------------------------------
1 | export {default as Atk} from 'gi://Atk';
2 | export {default as Clutter} from 'gi://Clutter';
3 | export {default as Cogl} from 'gi://Cogl';
4 | export {default as GLib} from 'gi://GLib';
5 | export {default as GObject} from 'gi://GObject';
6 | export {default as GdkPixbuf} from 'gi://GdkPixbuf';
7 | export {default as Gio} from 'gi://Gio';
8 | export {default as Meta} from 'gi://Meta';
9 | export {default as Mtk} from 'gi://Mtk';
10 | export {default as Pango} from 'gi://Pango';
11 | export {default as Shell} from 'gi://Shell';
12 | export {default as St} from 'gi://St';
13 |
14 |
--------------------------------------------------------------------------------
/dependencies/shell/extensions/extension.js:
--------------------------------------------------------------------------------
1 | export * as Extension from 'resource:///org/gnome/shell/extensions/extension.js';
2 |
--------------------------------------------------------------------------------
/dependencies/shell/misc.js:
--------------------------------------------------------------------------------
1 | export * as AnimationUtils from 'resource:///org/gnome/shell/misc/animationUtils.js';
2 | export * as Config from 'resource:///org/gnome/shell/misc/config.js';
3 | export * as ExtensionUtils from 'resource:///org/gnome/shell/misc/extensionUtils.js';
4 | export * as ParentalControlsManager from 'resource:///org/gnome/shell/misc/parentalControlsManager.js';
5 | export * as Util from 'resource:///org/gnome/shell/misc/util.js';
6 |
--------------------------------------------------------------------------------
/dependencies/shell/ui.js:
--------------------------------------------------------------------------------
1 | export * as AppDisplay from 'resource:///org/gnome/shell/ui/appDisplay.js';
2 | export * as AppMenu from 'resource:///org/gnome/shell/ui/appMenu.js';
3 | export * as AppFavorites from 'resource:///org/gnome/shell/ui/appFavorites.js';
4 | export * as BoxPointer from 'resource:///org/gnome/shell/ui/boxpointer.js';
5 | export * as DND from 'resource:///org/gnome/shell/ui/dnd.js';
6 | export * as Dash from 'resource:///org/gnome/shell/ui/dash.js';
7 | export * as Layout from 'resource:///org/gnome/shell/ui/layout.js';
8 | export * as Main from 'resource:///org/gnome/shell/ui/main.js';
9 | export * as Overview from 'resource:///org/gnome/shell/ui/overview.js';
10 | export * as OverviewControls from 'resource:///org/gnome/shell/ui/overviewControls.js';
11 | export * as PointerWatcher from 'resource:///org/gnome/shell/ui/pointerWatcher.js';
12 | export * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
13 | export * as SearchController from 'resource:///org/gnome/shell/ui/searchController.js';
14 | export * as ShellMountOperation from 'resource:///org/gnome/shell/ui/shellMountOperation.js';
15 | export * as Workspace from 'resource:///org/gnome/shell/ui/workspace.js';
16 | export * as WorkspaceSwitcherPopup from 'resource:///org/gnome/shell/ui/workspaceSwitcherPopup.js';
17 | export * as WorkspaceThumbnail from 'resource:///org/gnome/shell/ui/workspaceThumbnail.js';
18 | export * as WorkspacesView from 'resource:///org/gnome/shell/ui/workspacesView.js';
19 |
--------------------------------------------------------------------------------
/desktopIconsIntegration.js:
--------------------------------------------------------------------------------
1 | /*
2 | * The code in this file is distributed under a "1-clause BSD license",
3 | * which makes it compatible with GPLv2 and GPLv3 too, and others.
4 | *
5 | * License text:
6 | *
7 | * Copyright (C) 2021 Sergio Costas (rastersoft@gmail.com)
8 | *
9 | * Redistribution and use in source and binary forms, with or without modification,
10 | * are permitted provided that the following conditions are met:
11 | *
12 | * 1. Redistributions of source code must retain the above copyright notice,
13 | * this list of conditions and the following disclaimer.
14 | *
15 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
19 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 | * POSSIBILITY OF SUCH DAMAGE.
26 | */
27 |
28 | /**
29 | * Integration class
30 | *
31 | * This class must be added to other extensions in order to integrate
32 | * them with Desktop Icons NG. It allows an extension to notify how much margin
33 | * it uses in each side of each monitor.
34 | *
35 | * DON'T SEND PATCHES TO THIS FILE TO THE EXTENSION MAINTAINER. SEND THEM TO
36 | * DESKTOP ICONS NG MAINTAINER: https://gitlab.com/rastersoft/desktop-icons-ng
37 | *
38 | * In the *enable()* function, create a *DesktopIconsUsableAreaClass()*
39 | * object with
40 | *
41 | * new DesktopIconsIntegration.DesktopIconsUsableAreaClass(object);
42 | *
43 | * Now, in the *disable()* function just call to the *destroy()* method before
44 | * nullifying the pointer. You must create a new object in enable() the next
45 | * time the extension is enabled.
46 | *
47 | * In your code, every time you change the margins, you should call first to
48 | * *resetMargins()* method to clear the current margins, and then call to
49 | * *setMargins(...)* method as many times as you need to set the margins in each
50 | * monitor. You don't need to call it for all the monitors, only for those where
51 | * you are painting something. If you don't set values for a monitor, they will
52 | * be considered zero.
53 | *
54 | * The margins values are relative to the monitor border.
55 | *
56 | *******************************************************************************/
57 |
58 | import GLib from 'gi://GLib';
59 | import * as Main from 'resource:///org/gnome/shell/ui/main.js';
60 | import * as ExtensionUtils from 'resource:///org/gnome/shell/misc/extensionUtils.js';
61 | import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js';
62 |
63 | const IDENTIFIER_UUID = '130cbc66-235c-4bd6-8571-98d2d8bba5e2';
64 |
65 | export class DesktopIconsUsableAreaClass {
66 | _checkIfExtensionIsEnabled(extension) {
67 | return (extension?.state === ExtensionUtils.ExtensionState.ENABLED) ||
68 | (extension?.state === ExtensionUtils.ExtensionState.ACTIVE);
69 | }
70 |
71 | constructor() {
72 | const Me = Extension.lookupByURL(import.meta.url);
73 | this._UUID = Me.uuid;
74 | this._extensionManager = Main.extensionManager;
75 | this._timedMarginsID = 0;
76 | this._margins = {};
77 | this._emID = this._extensionManager.connect('extension-state-changed', (_obj, extension) => {
78 | if (!extension)
79 | return;
80 |
81 | // If an extension is being enabled and lacks the
82 | // DesktopIconsUsableArea object, we can avoid launching a refresh
83 | if (this._checkIfExtensionIsEnabled(extension)) {
84 | this._sendMarginsToExtension(extension);
85 | return;
86 | }
87 | // if the extension is being disabled, we must do a full refresh,
88 | // because if there were other extensions originally
89 | // loaded after that extension, those extensions will be disabled
90 | // and enabled again without notification
91 | this._changedMargins();
92 | });
93 | }
94 |
95 | /**
96 | * Sets or updates the top, bottom, left and right margins for a
97 | * monitor. Values are measured from the monitor border (and NOT from
98 | * the workspace border).
99 | *
100 | * @param {int} monitor Monitor number to which set the margins.
101 | * A negative value means "the primary monitor".
102 | * @param {int} top Top margin in pixels
103 | * @param {int} bottom Bottom margin in pixels
104 | * @param {int} left Left margin in pixels
105 | * @param {int} right Right margin in pixels
106 | */
107 | setMargins(monitor, top, bottom, left, right) {
108 | this._margins[monitor] = {
109 | top,
110 | bottom,
111 | left,
112 | right,
113 | };
114 | this._changedMargins();
115 | }
116 |
117 | /**
118 | * Clears the current margins. Must be called before configuring the monitors
119 | * margins with setMargins().
120 | */
121 | resetMargins() {
122 | this._margins = {};
123 | this._changedMargins();
124 | }
125 |
126 | /**
127 | * Disconnects all the signals and removes the margins.
128 | */
129 | destroy() {
130 | if (this._emID) {
131 | this._extensionManager.disconnect(this._emID);
132 | this._emID = 0;
133 | }
134 | if (this._timedMarginsID) {
135 | GLib.source_remove(this._timedMarginsID);
136 | this._timedMarginsID = 0;
137 | }
138 | this._margins = null;
139 | this._changedMargins();
140 | }
141 |
142 | _changedMargins() {
143 | if (this._timedMarginsID)
144 | GLib.source_remove(this._timedMarginsID);
145 |
146 | this._timedMarginsID = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 100, () => {
147 | this._sendMarginsToAll();
148 | this._timedMarginsID = 0;
149 | return GLib.SOURCE_REMOVE;
150 | });
151 | }
152 |
153 | _sendMarginsToAll() {
154 | this._extensionManager.getUuids().forEach(uuid =>
155 | this._sendMarginsToExtension(this._extensionManager.lookup(uuid)));
156 | }
157 |
158 | _sendMarginsToExtension(extension) {
159 | // check that the extension is an extension that has the logic to accept
160 | // working margins
161 | if (!this._checkIfExtensionIsEnabled(extension))
162 | return;
163 |
164 | const usableArea = extension?.stateObj?.DesktopIconsUsableArea;
165 | if (usableArea?.uuid === IDENTIFIER_UUID) {
166 | usableArea.setMarginsForExtension(
167 | this._UUID, this._margins);
168 | }
169 | }
170 | }
171 |
--------------------------------------------------------------------------------
/extension.js:
--------------------------------------------------------------------------------
1 | // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
2 |
3 | import {DockManager} from './docking.js';
4 | import {Extension} from './dependencies/shell/extensions/extension.js';
5 |
6 | // We export this so it can be accessed by other extensions
7 | export let dockManager;
8 |
9 | export default class DashToDockExtension extends Extension.Extension {
10 | enable() {
11 | dockManager = new DockManager(this);
12 | }
13 |
14 | disable() {
15 | dockManager?.destroy();
16 | dockManager = null;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/fileManager1API.js:
--------------------------------------------------------------------------------
1 | // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
2 |
3 | import {GLib, Gio} from './dependencies/gi.js';
4 | const {signals: Signals} = imports;
5 |
6 | import {Utils} from './imports.js';
7 |
8 | const FileManager1Iface = '\
9 | \
10 | ';
11 |
12 | const FileManager1Proxy = Gio.DBusProxy.makeProxyWrapper(FileManager1Iface);
13 |
14 | const Labels = Object.freeze({
15 | WINDOWS: Symbol('windows'),
16 | });
17 |
18 | /**
19 | * This class implements a client for the org.freedesktop.FileManager1 dbus
20 | * interface, and specifically for the OpenWindowsWithLocations property
21 | * which is published by Nautilus, but is not an official part of the interface.
22 | *
23 | * The property is a map from window identifiers to a list of locations open in
24 | * the window.
25 | */
26 | export class FileManager1Client {
27 | constructor() {
28 | this._signalsHandler = new Utils.GlobalSignalsHandler();
29 | this._cancellable = new Gio.Cancellable();
30 |
31 | this._windowsByPath = new Map();
32 | this._windowsByLocation = new Map();
33 | this._proxy = new FileManager1Proxy(Gio.DBus.session,
34 | 'org.freedesktop.FileManager1',
35 | '/org/freedesktop/FileManager1',
36 | (initable, error) => {
37 | // Use async construction to avoid blocking on errors.
38 | if (error) {
39 | if (!error.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
40 | global.log(error);
41 | } else {
42 | this._updateWindows();
43 | this._updateLocationMap();
44 | }
45 | }, this._cancellable);
46 |
47 | this._signalsHandler.add([
48 | this._proxy,
49 | 'g-properties-changed',
50 | this._onPropertyChanged.bind(this),
51 | ], [
52 | // We must additionally listen for Screen events to know when to
53 | // rebuild our location map when the set of available windows changes.
54 | global.workspaceManager,
55 | 'workspace-added',
56 | () => this._onWindowsChanged(),
57 | ], [
58 | global.workspaceManager,
59 | 'workspace-removed',
60 | () => this._onWindowsChanged(),
61 | ], [
62 | global.display,
63 | 'window-entered-monitor',
64 | () => this._onWindowsChanged(),
65 | ], [
66 | global.display,
67 | 'window-left-monitor',
68 | () => this._onWindowsChanged(),
69 | ]);
70 | }
71 |
72 | destroy() {
73 | if (this._windowsUpdateIdle) {
74 | GLib.source_remove(this._windowsUpdateIdle);
75 | delete this._windowsUpdateIdle;
76 | }
77 | this._cancellable.cancel();
78 | this._signalsHandler.destroy();
79 | this._windowsByLocation.clear();
80 | this._windowsByPath.clear();
81 | this._proxy = null;
82 | }
83 |
84 | /**
85 | * Return an array of windows that are showing a location or
86 | * sub-directories of that location.
87 | *
88 | * @param location
89 | */
90 | getWindows(location) {
91 | if (!location)
92 | return [];
93 |
94 | location += location.endsWith('/') ? '' : '/';
95 | const windows = [];
96 | this._windowsByLocation.forEach((wins, l) => {
97 | if (l.startsWith(location))
98 | windows.push(...wins);
99 | });
100 | return [...new Set(windows)];
101 | }
102 |
103 | _onPropertyChanged(proxy, changed, _invalidated) {
104 | const property = changed.unpack();
105 | if (property &&
106 | ('OpenWindowsWithLocations' in property))
107 | this._updateLocationMap();
108 | }
109 |
110 | _updateWindows() {
111 | const oldSize = this._windowsByPath.size;
112 | const oldPaths = this._windowsByPath.keys();
113 | this._windowsByPath = Utils.getWindowsByObjectPath();
114 |
115 | if (oldSize !== this._windowsByPath.size)
116 | return true;
117 |
118 | return [...oldPaths].some(path => !this._windowsByPath.has(path));
119 | }
120 |
121 | _onWindowsChanged() {
122 | if (this._windowsUpdateIdle)
123 | return;
124 |
125 | this._windowsUpdateIdle = GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
126 | if (this._updateWindows())
127 | this._updateLocationMap();
128 |
129 | delete this._windowsUpdateIdle;
130 | return GLib.SOURCE_REMOVE;
131 | });
132 | }
133 |
134 | _updateLocationMap() {
135 | const properties = this._proxy.get_cached_property_names();
136 | if (!properties) {
137 | // Nothing to check yet.
138 | return;
139 | }
140 |
141 | if (properties.includes('OpenWindowsWithLocations'))
142 | this._updateFromPaths();
143 | }
144 |
145 | _locationMapsEquals(mapA, mapB) {
146 | if (mapA.size !== mapB.size)
147 | return false;
148 |
149 | const setsEquals = (a, b) => a.size === b.size &&
150 | [...a].every(value => b.has(value));
151 |
152 | for (const [key, val] of mapA) {
153 | const windowsSet = mapB.get(key);
154 | if (!windowsSet || !setsEquals(windowsSet, val))
155 | return false;
156 | }
157 | return true;
158 | }
159 |
160 | _updateFromPaths() {
161 | const locationsByWindowsPath = this._proxy.OpenWindowsWithLocations;
162 |
163 | const windowsByLocation = new Map();
164 | this._signalsHandler.removeWithLabel(Labels.WINDOWS);
165 |
166 | Object.entries(locationsByWindowsPath).forEach(([windowPath, locations]) => {
167 | locations.forEach(location => {
168 | const win = this._windowsByPath.get(windowPath);
169 | const windowGroup = win ? [win] : [];
170 |
171 | win?.foreach_transient(w => windowGroup.push(w) || true);
172 |
173 | windowGroup.forEach(window => {
174 | location += location.endsWith('/') ? '' : '/';
175 | // Use a set to deduplicate when a window has a
176 | // location open in multiple tabs.
177 | const windows = windowsByLocation.get(location) || new Set();
178 | windows.add(window);
179 |
180 | if (windows.size === 1)
181 | windowsByLocation.set(location, windows);
182 |
183 | this._signalsHandler.addWithLabel(Labels.WINDOWS, window,
184 | 'unmanaged', () => {
185 | const wins = this._windowsByLocation.get(location);
186 | wins.delete(window);
187 | if (!wins.size)
188 | this._windowsByLocation.delete(location);
189 | this.emit('windows-changed');
190 | });
191 | });
192 | });
193 | });
194 |
195 | if (!this._locationMapsEquals(this._windowsByLocation, windowsByLocation)) {
196 | this._windowsByLocation = windowsByLocation;
197 | this.emit('windows-changed');
198 | }
199 | }
200 | }
201 | Signals.addSignalMethods(FileManager1Client.prototype);
202 |
--------------------------------------------------------------------------------
/imports.js:
--------------------------------------------------------------------------------
1 | export * as AppIconIndicators from './appIconIndicators.js';
2 | export * as AppIcons from './appIcons.js';
3 | export * as AppIconsDecorator from './appIconsDecorator.js';
4 | export * as AppSpread from './appSpread.js';
5 | export * as DockDash from './dash.js';
6 | export * as DBusMenuUtils from './dbusmenuUtils.js';
7 | export * as DesktopIconsIntegration from './desktopIconsIntegration.js';
8 | export * as Docking from './docking.js';
9 | export * as Extension from './extension.js';
10 | export * as FileManager1API from './fileManager1API.js';
11 | export * as Intellihide from './intellihide.js';
12 | export * as LauncherAPI from './launcherAPI.js';
13 | export * as Locations from './locations.js';
14 | export * as NotificationsMonitor from './notificationsMonitor.js';
15 | export * as Theming from './theming.js';
16 | export * as Utils from './utils.js';
17 | export * as WindowPreview from './windowPreview.js';
18 |
--------------------------------------------------------------------------------
/intellihide.js:
--------------------------------------------------------------------------------
1 | // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
2 |
3 | import {
4 | GLib,
5 | Meta,
6 | Shell,
7 | } from './dependencies/gi.js';
8 |
9 | import {
10 | Docking,
11 | Utils,
12 | } from './imports.js';
13 |
14 | const {signals: Signals} = imports;
15 |
16 | // A good compromise between reactivity and efficiency; to be tuned.
17 | const INTELLIHIDE_CHECK_INTERVAL = 100;
18 |
19 | const OverlapStatus = Object.freeze({
20 | UNDEFINED: -1,
21 | FALSE: 0,
22 | TRUE: 1,
23 | });
24 |
25 | const IntellihideMode = Object.freeze({
26 | ALL_WINDOWS: 0,
27 | FOCUS_APPLICATION_WINDOWS: 1,
28 | MAXIMIZED_WINDOWS: 2,
29 | ALWAYS_ON_TOP: 3,
30 | });
31 |
32 | // List of windows type taken into account. Order is important (keep the original
33 | // enum order).
34 | const handledWindowTypes = [
35 | Meta.WindowType.NORMAL,
36 | Meta.WindowType.DOCK,
37 | Meta.WindowType.DIALOG,
38 | Meta.WindowType.MODAL_DIALOG,
39 | Meta.WindowType.TOOLBAR,
40 | Meta.WindowType.MENU,
41 | Meta.WindowType.UTILITY,
42 | Meta.WindowType.SPLASHSCREEN,
43 | Meta.WindowType.DROPDOWN_MENU,
44 | ];
45 |
46 | // List of applications, ignore windows of these applications in considering intellihide
47 | const ignoreApps = ['com.rastersoft.ding', 'com.desktop.ding'];
48 |
49 | /**
50 | * A rough and ugly implementation of the intellihide behaviour.
51 | * Intallihide object: emit 'status-changed' signal when the overlap of windows
52 | * with the provided targetBoxClutter.ActorBox changes;
53 | */
54 | export class Intellihide {
55 | constructor(monitorIndex) {
56 | // Load settings
57 | this._monitorIndex = monitorIndex;
58 |
59 | this._signalsHandler = new Utils.GlobalSignalsHandler();
60 | this._tracker = Shell.WindowTracker.get_default();
61 | this._focusApp = null; // The application whose window is focused.
62 | this._topApp = null; // The application whose window is on top on the monitor with the dock.
63 |
64 | this._isEnabled = false;
65 | this.status = OverlapStatus.UNDEFINED;
66 | this._targetBox = null;
67 |
68 | this._checkOverlapTimeoutContinue = false;
69 | this._checkOverlapTimeoutId = 0;
70 |
71 | this._trackedWindows = new Map();
72 |
73 | // Connect global signals
74 | this._signalsHandler.add([
75 | // Add signals on windows created from now on
76 | global.display,
77 | 'window-created',
78 | this._windowCreated.bind(this),
79 | ], [
80 | // triggered for instance when the window list order changes,
81 | // included when the workspace is switched
82 | global.display,
83 | 'restacked',
84 | this._checkOverlap.bind(this),
85 | ], [
86 | // when windows are alwasy on top, the focus window can change
87 | // without the windows being restacked. Thus monitor window focus change.
88 | this._tracker,
89 | 'notify::focus-app',
90 | this._checkOverlap.bind(this),
91 | ], [
92 | // update wne monitor changes, for instance in multimonitor when monitor are attached
93 | Utils.getMonitorManager(),
94 | 'monitors-changed',
95 | this._checkOverlap.bind(this),
96 | ]);
97 | }
98 |
99 | destroy() {
100 | // Disconnect global signals
101 | this._signalsHandler.destroy();
102 |
103 | // Remove residual windows signals
104 | this.disable();
105 | }
106 |
107 | enable() {
108 | this._isEnabled = true;
109 | this._status = OverlapStatus.UNDEFINED;
110 | global.get_window_actors().forEach(function (wa) {
111 | this._addWindowSignals(wa);
112 | }, this);
113 | this._doCheckOverlap();
114 | }
115 |
116 | disable() {
117 | this._isEnabled = false;
118 |
119 | for (const wa of this._trackedWindows.keys())
120 | this._removeWindowSignals(wa);
121 |
122 | this._trackedWindows.clear();
123 |
124 | if (this._checkOverlapTimeoutId > 0) {
125 | GLib.source_remove(this._checkOverlapTimeoutId);
126 | this._checkOverlapTimeoutId = 0;
127 | }
128 | }
129 |
130 | _windowCreated(display, metaWindow) {
131 | this._addWindowSignals(metaWindow.get_compositor_private());
132 | this._doCheckOverlap();
133 | }
134 |
135 | _addWindowSignals(wa) {
136 | if (!this._handledWindow(wa))
137 | return;
138 | const signalId = wa.connect('notify::allocation', this._checkOverlap.bind(this));
139 | this._trackedWindows.set(wa, signalId);
140 | wa.connect('destroy', this._removeWindowSignals.bind(this));
141 | }
142 |
143 | _removeWindowSignals(wa) {
144 | if (this._trackedWindows.get(wa)) {
145 | wa.disconnect(this._trackedWindows.get(wa));
146 | this._trackedWindows.delete(wa);
147 | }
148 | }
149 |
150 | updateTargetBox(box) {
151 | this._targetBox = box;
152 | this._checkOverlap();
153 | }
154 |
155 | forceUpdate() {
156 | this._status = OverlapStatus.UNDEFINED;
157 | this._doCheckOverlap();
158 | }
159 |
160 | getOverlapStatus() {
161 | return this._status === OverlapStatus.TRUE;
162 | }
163 |
164 | _checkOverlap() {
165 | if (!this._isEnabled || !this._targetBox)
166 | return;
167 |
168 | /* Limit the number of calls to the doCheckOverlap function */
169 | if (this._checkOverlapTimeoutId) {
170 | this._checkOverlapTimeoutContinue = true;
171 | return;
172 | }
173 |
174 | this._doCheckOverlap();
175 |
176 | this._checkOverlapTimeoutId = GLib.timeout_add(
177 | GLib.PRIORITY_DEFAULT, INTELLIHIDE_CHECK_INTERVAL, () => {
178 | this._doCheckOverlap();
179 | if (this._checkOverlapTimeoutContinue) {
180 | this._checkOverlapTimeoutContinue = false;
181 | return GLib.SOURCE_CONTINUE;
182 | } else {
183 | this._checkOverlapTimeoutId = 0;
184 | return GLib.SOURCE_REMOVE;
185 | }
186 | });
187 | }
188 |
189 | _doCheckOverlap() {
190 | if (!this._isEnabled || !this._targetBox)
191 | return;
192 |
193 | let overlaps = OverlapStatus.FALSE;
194 | let windows = global.get_window_actors().filter(wa => this._handledWindow(wa));
195 |
196 | if (windows.length > 0) {
197 | /*
198 | * Get the top window on the monitor where the dock is placed.
199 | * The idea is that we dont want to overlap with the windows of the topmost application,
200 | * event is it's not the focused app -- for instance because in multimonitor the user
201 | * select a window in the secondary monitor.
202 | */
203 |
204 | let topWindow = null;
205 | for (let i = windows.length - 1; i >= 0; i--) {
206 | const metaWin = windows[i].get_meta_window();
207 | if (metaWin.get_monitor() === this._monitorIndex) {
208 | topWindow = metaWin;
209 | break;
210 | }
211 | }
212 |
213 | if (topWindow) {
214 | this._topApp = this._tracker.get_window_app(topWindow);
215 | // If there isn't a focused app, use that of the window on top
216 | this._focusApp = this._tracker.focus_app || this._topApp;
217 |
218 | windows = windows.filter(this._intellihideFilterInteresting, this);
219 |
220 | for (let i = 0; i < windows.length; i++) {
221 | const win = windows[i].get_meta_window();
222 |
223 | if (win) {
224 | const rect = win.get_frame_rect();
225 |
226 | const test = (rect.x < this._targetBox.x2) &&
227 | (rect.x + rect.width > this._targetBox.x1) &&
228 | (rect.y < this._targetBox.y2) &&
229 | (rect.y + rect.height > this._targetBox.y1);
230 |
231 | if (test) {
232 | overlaps = OverlapStatus.TRUE;
233 | break;
234 | }
235 | }
236 | }
237 | }
238 | }
239 |
240 | if (this._status !== overlaps) {
241 | this._status = overlaps;
242 | this.emit('status-changed', this._status);
243 | }
244 | }
245 |
246 | // Filter interesting windows to be considered for intellihide.
247 | // Consider all windows visible on the current workspace.
248 | // Optionally skip windows of other applications
249 | _intellihideFilterInteresting(wa) {
250 | const metaWin = wa.get_meta_window();
251 | const currentWorkspace = global.workspace_manager.get_active_workspace_index();
252 | const workspace = metaWin.get_workspace();
253 | const workspaceIndex = workspace.index();
254 |
255 | // Depending on the intellihide mode, exclude non-relevent windows
256 | switch (Docking.DockManager.settings.intellihideMode) {
257 | case IntellihideMode.ALL_WINDOWS:
258 | // Do nothing
259 | break;
260 |
261 | case IntellihideMode.FOCUS_APPLICATION_WINDOWS:
262 | // Skip windows of other apps
263 | if (this._focusApp) {
264 | // The DropDownTerminal extension is not an application per se
265 | // so we match its window by wm class instead
266 | if (metaWin.get_wm_class() === 'DropDownTerminalWindow')
267 | return true;
268 |
269 | const currentApp = this._tracker.get_window_app(metaWin);
270 | const focusWindow = global.display.get_focus_window();
271 |
272 | // Consider half maximized windows side by side
273 | // and windows which are alwayson top
274 | if (currentApp !== this._focusApp && currentApp !== this._topApp &&
275 | !((focusWindow && focusWindow.maximized_vertically &&
276 | !focusWindow.maximized_horizontally) &&
277 | (metaWin.maximized_vertically && !metaWin.maximized_horizontally) &&
278 | metaWin.get_monitor() === focusWindow.get_monitor()) &&
279 | !metaWin.is_above())
280 | return false;
281 | }
282 | break;
283 |
284 | case IntellihideMode.MAXIMIZED_WINDOWS:
285 | // Skip unmaximized windows
286 | if (!metaWin.maximized_vertically && !metaWin.maximized_horizontally && !metaWin.fullscreen)
287 | return false;
288 | break;
289 |
290 | case IntellihideMode.ALWAYS_ON_TOP:
291 | // Always on top, except for fullscreen windows
292 | if (this._focusApp) {
293 | const {focusWindow} = global.display;
294 | if (!focusWindow?.fullscreen)
295 | return false;
296 | }
297 | break;
298 | }
299 |
300 | if (workspaceIndex === currentWorkspace && metaWin.showing_on_its_workspace())
301 | return true;
302 | else
303 | return false;
304 | }
305 |
306 | // Filter windows by type
307 | // inspired by Opacify@gnome-shell.localdomain.pl
308 | _handledWindow(wa) {
309 | const metaWindow = wa.get_meta_window();
310 |
311 | if (!metaWindow)
312 | return false;
313 |
314 | // The DING extension desktop window needs to be excluded
315 | // so we match its window by application id and window property.
316 | const wmApp = metaWindow.get_gtk_application_id();
317 | if (ignoreApps.includes(wmApp) && metaWindow.is_skip_taskbar())
318 | return false;
319 |
320 | // The DropDownTerminal extension uses the POPUP_MENU window type hint
321 | // so we match its window by wm class instead
322 | if (metaWindow.get_wm_class() === 'DropDownTerminalWindow')
323 | return true;
324 |
325 | const wtype = metaWindow.get_window_type();
326 | for (let i = 0; i < handledWindowTypes.length; i++) {
327 | const hwtype = handledWindowTypes[i];
328 | if (hwtype === wtype)
329 | return true;
330 | else if (hwtype > wtype)
331 | return false;
332 | }
333 | return false;
334 | }
335 | }
336 |
337 | Signals.addSignalMethods(Intellihide.prototype);
338 |
--------------------------------------------------------------------------------
/launcherAPI.js:
--------------------------------------------------------------------------------
1 | // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
2 |
3 | import {Gio} from './dependencies/gi.js';
4 | import {DBusMenuUtils} from './imports.js';
5 |
6 | const DBusMenu = await DBusMenuUtils.haveDBusMenu();
7 |
8 | export class LauncherEntryRemoteModel {
9 | constructor() {
10 | this._entrySourceStacks = new Map();
11 | this._remoteMaps = new Map();
12 |
13 | this._launcher_entry_dbus_signal_id =
14 | Gio.DBus.session.signal_subscribe(null, // sender
15 | 'com.canonical.Unity.LauncherEntry', // iface
16 | 'Update', // member
17 | null, // path
18 | null, // arg0
19 | Gio.DBusSignalFlags.NONE,
20 | (_connection, senderName, _objectPath, _interfaceName, _signalName, parameters) =>
21 | this._onUpdate(senderName, ...parameters.deep_unpack()));
22 |
23 | this._dbus_name_owner_changed_signal_id =
24 | Gio.DBus.session.signal_subscribe('org.freedesktop.DBus', // sender
25 | 'org.freedesktop.DBus', // interface
26 | 'NameOwnerChanged', // member
27 | '/org/freedesktop/DBus', // path
28 | null, // arg0
29 | Gio.DBusSignalFlags.NONE,
30 | (connection, _senderName, _objectPath, _interfaceName, _signalName, parameters) =>
31 | this._onDBusNameChange(...parameters.deep_unpack().slice(1)));
32 |
33 | this._acquireUnityDBus();
34 | }
35 |
36 | destroy() {
37 | if (this._launcher_entry_dbus_signal_id)
38 | Gio.DBus.session.signal_unsubscribe(this._launcher_entry_dbus_signal_id);
39 |
40 |
41 | if (this._dbus_name_owner_changed_signal_id)
42 | Gio.DBus.session.signal_unsubscribe(this._dbus_name_owner_changed_signal_id);
43 |
44 |
45 | this._releaseUnityDBus();
46 | }
47 |
48 | _lookupStackById(appId) {
49 | let sourceStack = this._entrySourceStacks.get(appId);
50 | if (!sourceStack) {
51 | sourceStack = new PropertySourceStack(new LauncherEntry(),
52 | launcherEntryDefaults);
53 | this._entrySourceStacks.set(appId, sourceStack);
54 | }
55 |
56 | return sourceStack;
57 | }
58 |
59 | lookupById(appId) {
60 | return this._lookupStackById(appId).target;
61 | }
62 |
63 | _acquireUnityDBus() {
64 | if (!this._unity_bus_id) {
65 | this._unity_bus_id = Gio.DBus.session.own_name('com.canonical.Unity',
66 | Gio.BusNameOwnerFlags.ALLOW_REPLACEMENT | Gio.BusNameOwnerFlags.REPLACE,
67 | null, () => (this._unity_bus_id = 0));
68 | }
69 | }
70 |
71 | _releaseUnityDBus() {
72 | if (this._unity_bus_id) {
73 | Gio.DBus.session.unown_name(this._unity_bus_id);
74 | this._unity_bus_id = 0;
75 | }
76 | }
77 |
78 | _onDBusNameChange(before, after) {
79 | if (!before || !this._remoteMaps.size)
80 | return;
81 |
82 | const remoteMap = this._remoteMaps.get(before);
83 | if (!remoteMap)
84 | return;
85 |
86 | this._remoteMaps.delete(before);
87 | if (after && !this._remoteMaps.has(after)) {
88 | this._remoteMaps.set(after, remoteMap);
89 | } else {
90 | for (const [appId, remote] of remoteMap) {
91 | const sourceStack = this._entrySourceStacks.get(appId);
92 | const changed = sourceStack.remove(remote);
93 | if (changed)
94 | sourceStack.target._emitChangedEvents(changed);
95 | }
96 | }
97 | }
98 |
99 | _onUpdate(senderName, appUri, properties) {
100 | if (!senderName)
101 | return;
102 |
103 |
104 | const appId = appUri.replace(/(^\w+:|^)\/\//, '');
105 | if (!appId)
106 | return;
107 |
108 |
109 | let remoteMap = this._remoteMaps.get(senderName);
110 | if (!remoteMap)
111 | this._remoteMaps.set(senderName, remoteMap = new Map());
112 |
113 | let remote = remoteMap.get(appId);
114 | if (!remote)
115 | remoteMap.set(appId, remote = Object.assign({}, launcherEntryDefaults));
116 |
117 | for (const name in properties) {
118 | if (name === 'quicklist' && DBusMenu) {
119 | const quicklistPath = properties[name].unpack();
120 | if (quicklistPath &&
121 | (!remote._quicklistMenuClient ||
122 | remote._quicklistMenuClient.dbus_object !== quicklistPath)) {
123 | remote.quicklist = null;
124 | let menuClient = remote._quicklistMenuClient;
125 | if (menuClient) {
126 | menuClient.dbus_object = quicklistPath;
127 | } else {
128 | // This property should not be enumerable
129 | Object.defineProperty(remote, '_quicklistMenuClient', {
130 | writable: true,
131 | value: menuClient = new DBusMenu.Client({
132 | dbus_name: senderName,
133 | dbus_object: quicklistPath,
134 | }),
135 | });
136 | }
137 | const handler = () => {
138 | const root = menuClient.get_root();
139 | if (remote.quicklist !== root) {
140 | remote.quicklist = root;
141 | if (sourceStack.isTop(remote)) {
142 | sourceStack.target.quicklist = root;
143 | sourceStack.target._emitChangedEvents(['quicklist']);
144 | }
145 | }
146 | };
147 | menuClient.connect(DBusMenu.CLIENT_SIGNAL_ROOT_CHANGED, handler);
148 | }
149 | } else {
150 | remote[name] = properties[name].unpack();
151 | }
152 | }
153 |
154 | const sourceStack = this._lookupStackById(appId);
155 | sourceStack.target._emitChangedEvents(sourceStack.update(remote));
156 | }
157 | }
158 |
159 | const launcherEntryDefaults = Object.freeze({
160 | count: 0,
161 | progress: 0,
162 | urgent: false,
163 | updating: false,
164 | quicklist: null,
165 | 'count-visible': false,
166 | 'progress-visible': false,
167 | });
168 |
169 | const LauncherEntry = class DashToDockLauncherEntry {
170 | constructor() {
171 | this._connections = new Map();
172 | this._handlers = new Map();
173 | this._nextId = 0;
174 | }
175 |
176 | connect(eventNames, callback) {
177 | if (typeof eventNames === 'string')
178 | eventNames = [eventNames];
179 |
180 | callback(this, this);
181 | const id = this._nextId++;
182 | const handler = {id, callback};
183 | eventNames.forEach(name => {
184 | let handlerList = this._handlers.get(name);
185 | if (!handlerList)
186 | this._handlers.set(name, handlerList = []);
187 |
188 | handlerList.push(handler);
189 | });
190 | this._connections.set(id, eventNames);
191 | return id;
192 | }
193 |
194 | disconnect(id) {
195 | const eventNames = this._connections.get(id);
196 | if (!eventNames)
197 | return;
198 |
199 | this._connections.delete(id);
200 | eventNames.forEach(name => {
201 | const handlerList = this._handlers.get(name);
202 | if (handlerList) {
203 | for (let i = 0, iMax = handlerList.length; i < iMax; i++) {
204 | if (handlerList[i].id === id) {
205 | handlerList.splice(i, 1);
206 | break;
207 | }
208 | }
209 | }
210 | });
211 | }
212 |
213 | _emitChangedEvents(propertyNames) {
214 | const handlers = new Set();
215 | propertyNames.forEach(name => {
216 | const handlerList = this._handlers.get(`${name}-changed`);
217 | if (handlerList) {
218 | for (let i = 0, iMax = handlerList.length; i < iMax; i++)
219 | handlers.add(handlerList[i]);
220 | }
221 | });
222 | Array.from(handlers).sort((x, y) => x.id - y.id).forEach(handler => handler.callback(this, this));
223 | }
224 | };
225 |
226 | for (const [name, defaultValue] of Object.entries(launcherEntryDefaults)) {
227 | const jsName = name.replaceAll('-', '_');
228 | LauncherEntry.prototype[jsName] = defaultValue;
229 | if (jsName !== name) {
230 | Object.defineProperty(LauncherEntry.prototype, name, {
231 | get() {
232 | return this[jsName];
233 | },
234 | set(value) {
235 | this[jsName] = value;
236 | },
237 | });
238 | }
239 | }
240 |
241 | const PropertySourceStack = class DashToDockPropertySourceStack {
242 | constructor(target, bottom) {
243 | this.target = target;
244 | this._bottom = bottom;
245 | this._stack = [];
246 | }
247 |
248 | isTop(source) {
249 | return this._stack.length > 0 && this._stack[this._stack.length - 1] === source;
250 | }
251 |
252 | update(source) {
253 | if (!this.isTop(source)) {
254 | this.remove(source);
255 | this._stack.push(source);
256 | }
257 | return this._assignFrom(source);
258 | }
259 |
260 | remove(source) {
261 | const stack = this._stack;
262 | const top = stack[stack.length - 1];
263 | if (top === source) {
264 | stack.length--;
265 | return this._assignFrom(stack.length > 0 ? stack[stack.length - 1] : this._bottom);
266 | }
267 | for (let i = 0, iMax = stack.length; i < iMax; i++) {
268 | if (stack[i] === source) {
269 | stack.splice(i, 1);
270 | break;
271 | }
272 | }
273 |
274 | return null;
275 | }
276 |
277 | _assignFrom(source) {
278 | const changedProperties = [];
279 | for (const name in source) {
280 | if (this.target[name] !== source[name]) {
281 | this.target[name] = source[name];
282 | changedProperties.push(name);
283 | }
284 | }
285 | return changedProperties;
286 | }
287 | };
288 |
--------------------------------------------------------------------------------
/lint/eslintrc-gjs.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # SPDX-License-Identifier: MIT OR LGPL-2.0-or-later
3 | # SPDX-FileCopyrightText: 2018 Claudio André
4 | env:
5 | es2021: true
6 | extends: 'eslint:recommended'
7 | rules:
8 | array-bracket-newline:
9 | - error
10 | - consistent
11 | array-bracket-spacing:
12 | - error
13 | - never
14 | array-callback-return: error
15 | arrow-parens:
16 | - error
17 | - as-needed
18 | arrow-spacing: error
19 | block-scoped-var: error
20 | block-spacing: error
21 | brace-style: error
22 | # Waiting for this to have matured a bit in eslint
23 | # camelcase:
24 | # - error
25 | # - properties: never
26 | # allow: [^vfunc_, ^on_, _instance_init]
27 | comma-dangle:
28 | - error
29 | - arrays: always-multiline
30 | objects: always-multiline
31 | functions: never
32 | comma-spacing:
33 | - error
34 | - before: false
35 | after: true
36 | comma-style:
37 | - error
38 | - last
39 | computed-property-spacing: error
40 | curly:
41 | - error
42 | - multi-or-nest
43 | - consistent
44 | dot-location:
45 | - error
46 | - property
47 | eol-last: error
48 | eqeqeq: error
49 | func-call-spacing: error
50 | func-name-matching: error
51 | func-style:
52 | - error
53 | - declaration
54 | - allowArrowFunctions: true
55 | indent:
56 | - error
57 | - 4
58 | - ignoredNodes:
59 | # Allow not indenting the body of GObject.registerClass, since in the
60 | # future it's intended to be a decorator
61 | - 'CallExpression[callee.object.name=GObject][callee.property.name=registerClass] > ClassExpression:first-child'
62 | # Allow dedenting chained member expressions
63 | MemberExpression: 'off'
64 | key-spacing:
65 | - error
66 | - beforeColon: false
67 | afterColon: true
68 | keyword-spacing:
69 | - error
70 | - before: true
71 | after: true
72 | linebreak-style:
73 | - error
74 | - unix
75 | lines-between-class-members:
76 | - error
77 | - always
78 | - exceptAfterSingleLine: true
79 | max-nested-callbacks: error
80 | max-statements-per-line: error
81 | new-parens: error
82 | no-array-constructor: error
83 | no-await-in-loop: error
84 | no-caller: error
85 | no-constant-condition:
86 | - error
87 | - checkLoops: false
88 | no-div-regex: error
89 | no-empty:
90 | - error
91 | - allowEmptyCatch: true
92 | no-extra-bind: error
93 | no-extra-parens:
94 | - error
95 | - all
96 | - conditionalAssign: false
97 | nestedBinaryExpressions: false
98 | returnAssign: false
99 | no-implicit-coercion:
100 | - error
101 | - allow:
102 | - '!!'
103 | no-invalid-this: error
104 | no-iterator: error
105 | no-label-var: error
106 | no-lonely-if: error
107 | no-loop-func: error
108 | no-nested-ternary: error
109 | no-new-object: error
110 | no-new-wrappers: error
111 | no-octal-escape: error
112 | no-proto: error
113 | no-prototype-builtins: 'off'
114 | no-restricted-globals: [error, window]
115 | no-restricted-properties:
116 | - error
117 | - object: Lang
118 | property: copyProperties
119 | message: Use Object.assign()
120 | - object: Lang
121 | property: bind
122 | message: Use arrow notation or Function.prototype.bind()
123 | - object: Lang
124 | property: Class
125 | message: Use ES6 classes
126 | no-restricted-syntax:
127 | - error
128 | - selector: >-
129 | MethodDefinition[key.name="_init"] >
130 | FunctionExpression[params.length=1] >
131 | BlockStatement[body.length=1]
132 | CallExpression[arguments.length=1][callee.object.type="Super"][callee.property.name="_init"] >
133 | Identifier:first-child
134 | message: _init() that only calls super._init() is unnecessary
135 | - selector: >-
136 | MethodDefinition[key.name="_init"] >
137 | FunctionExpression[params.length=0] >
138 | BlockStatement[body.length=1]
139 | CallExpression[arguments.length=0][callee.object.type="Super"][callee.property.name="_init"]
140 | message: _init() that only calls super._init() is unnecessary
141 | - selector: BinaryExpression[operator="instanceof"][right.name="Array"]
142 | message: Use Array.isArray()
143 | no-return-assign: error
144 | no-return-await: error
145 | no-self-compare: error
146 | no-shadow: error
147 | no-shadow-restricted-names: error
148 | no-spaced-func: error
149 | no-tabs: error
150 | no-template-curly-in-string: error
151 | no-throw-literal: error
152 | no-trailing-spaces: error
153 | no-undef-init: error
154 | no-unneeded-ternary: error
155 | no-unused-expressions: error
156 | no-unused-vars:
157 | - error
158 | # Vars use a suffix _ instead of a prefix because of file-scope private vars
159 | - varsIgnorePattern: (^unused|_$)
160 | argsIgnorePattern: ^(unused|_)
161 | no-useless-call: error
162 | no-useless-computed-key: error
163 | no-useless-concat: error
164 | no-useless-constructor: error
165 | no-useless-rename: error
166 | no-useless-return: error
167 | no-whitespace-before-property: error
168 | no-with: error
169 | nonblock-statement-body-position:
170 | - error
171 | - below
172 | object-curly-newline:
173 | - error
174 | - consistent: true
175 | multiline: true
176 | object-curly-spacing: error
177 | object-shorthand: error
178 | operator-assignment: error
179 | operator-linebreak: error
180 | padded-blocks:
181 | - error
182 | - never
183 | # These may be a bit controversial, we can try them out and enable them later
184 | # prefer-const: error
185 | # prefer-destructuring: error
186 | prefer-numeric-literals: error
187 | prefer-promise-reject-errors: error
188 | prefer-rest-params: error
189 | prefer-spread: error
190 | prefer-template: error
191 | quotes:
192 | - error
193 | - single
194 | - avoidEscape: true
195 | require-await: error
196 | rest-spread-spacing: error
197 | semi:
198 | - error
199 | - always
200 | semi-spacing:
201 | - error
202 | - before: false
203 | after: true
204 | semi-style: error
205 | space-before-blocks: error
206 | space-before-function-paren:
207 | - error
208 | - named: never
209 | # for `function ()` and `async () =>`, preserve space around keywords
210 | anonymous: always
211 | asyncArrow: always
212 | space-in-parens: error
213 | space-infix-ops:
214 | - error
215 | - int32Hint: false
216 | space-unary-ops: error
217 | spaced-comment: error
218 | switch-colon-spacing: error
219 | symbol-description: error
220 | template-curly-spacing: error
221 | template-tag-spacing: error
222 | unicode-bom: error
223 | wrap-iife:
224 | - error
225 | - inside
226 | yield-star-spacing: error
227 | yoda: error
228 | globals:
229 | ARGV: readonly
230 | Debugger: readonly
231 | GIRepositoryGType: readonly
232 | globalThis: readonly
233 | imports: readonly
234 | Intl: readonly
235 | log: readonly
236 | logError: readonly
237 | print: readonly
238 | printerr: readonly
239 | window: readonly
240 | TextEncoder: readonly
241 | TextDecoder: readonly
242 | console: readonly
243 | setTimeout: readonly
244 | setInterval: readonly
245 | clearTimeout: readonly
246 | clearInterval: readonly
247 | parserOptions:
248 | ecmaVersion: 2022
249 |
--------------------------------------------------------------------------------
/lint/eslintrc-shell.yml:
--------------------------------------------------------------------------------
1 | rules:
2 | camelcase:
3 | - error
4 | - properties: never
5 | allow: [^vfunc_, ^on_]
6 | consistent-return: error
7 | eqeqeq:
8 | - error
9 | - smart
10 | key-spacing:
11 | - error
12 | - mode: minimum
13 | beforeColon: false
14 | afterColon: true
15 | prefer-arrow-callback: error
16 |
17 | overrides:
18 | - files:
19 | - js/**
20 | - tests/shell/**
21 | excludedFiles:
22 | - js/portalHelper/*
23 | - js/extensions/*
24 | globals:
25 | global: readonly
26 | _: readonly
27 | C_: readonly
28 | N_: readonly
29 | ngettext: readonly
30 | - files: subprojects/extensions-app/js/**
31 | globals:
32 | _: readonly
33 | C_: readonly
34 | N_: readonly
35 |
--------------------------------------------------------------------------------
/locationsWorker.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env gjs
2 |
3 | import GLib from 'gi://GLib';
4 | import Gio from 'gi://Gio';
5 |
6 | const GJS_SUPPORTS_FILE_IFACE_PROMISES = imports.system.version >= 17101;
7 |
8 | if (GJS_SUPPORTS_FILE_IFACE_PROMISES)
9 | Gio._promisify(Gio.File.prototype, 'query_default_handler_async');
10 |
11 | function getHandlerAppAsync(location, cancellable) {
12 | if (!location)
13 | return null;
14 |
15 | if (!GJS_SUPPORTS_FILE_IFACE_PROMISES) {
16 | Gio._promisify(location.constructor.prototype,
17 | 'query_default_handler_async',
18 | 'query_default_handler_finish');
19 | }
20 |
21 | return location.query_default_handler_async(
22 | GLib.PRIORITY_DEFAULT, cancellable);
23 | }
24 |
25 | async function mainAsync(argv) {
26 | if (argv.length < 1) {
27 | const currentBinary = GLib.path_get_basename(new Error().fileName);
28 | printerr(`Usage: ${currentBinary} uri [ --timeout ]`);
29 | return 1;
30 | }
31 |
32 | const [action, uri] = argv;
33 | let timeout = 200;
34 |
35 | if (action !== 'handler')
36 | throw new TypeError(`Unexpected action ${action}`);
37 |
38 | for (let i = 1; i < argv.length; ++i) {
39 | if (argv[i] === '--timeout' && i < argv.length - 1)
40 | timeout = argv[++i];
41 | }
42 |
43 | const location = Gio.File.new_for_uri(uri);
44 | const cancellable = new Gio.Cancellable();
45 |
46 | // GVfs providers could hang when querying the file information, so we
47 | // workaround this by using the async API in a sync way, but we need to
48 | // use a timeout to avoid this to hang forever, better than hang the
49 | // shell.
50 | let launchMaxWaitId;
51 |
52 | try {
53 | const handler = await Promise.race([
54 | getHandlerAppAsync(location, cancellable),
55 | new Promise((_resolve, reject) => {
56 | launchMaxWaitId = GLib.timeout_add(
57 | GLib.PRIORITY_DEFAULT, timeout, () => {
58 | launchMaxWaitId = 0;
59 | cancellable.cancel();
60 | reject(new GLib.Error(Gio.IOErrorEnum,
61 | Gio.IOErrorEnum.TIMED_OUT,
62 | `Searching for ${location.get_uri()} ` +
63 | 'handler took too long'));
64 | return GLib.SOURCE_REMOVE;
65 | });
66 | }),
67 | ]);
68 |
69 | print(handler.get_id());
70 | } catch (e) {
71 | printerr(e.message);
72 | logError(e);
73 | return e.code ? e.code : GLib.MAXUINT8;
74 | } finally {
75 | if (launchMaxWaitId)
76 | GLib.source_remove(launchMaxWaitId);
77 | }
78 |
79 | return 0;
80 | }
81 |
82 | function main(args) {
83 | let ret;
84 | const loop = new GLib.MainLoop(null, false);
85 | mainAsync(args).then(r => (ret = r)).catch(logError).finally(() => loop.quit());
86 | loop.run();
87 |
88 | return ret;
89 | }
90 |
91 | imports.system.exit(main(ARGV));
92 |
--------------------------------------------------------------------------------
/media/glossy.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
140 |
--------------------------------------------------------------------------------
/media/highlight_stacked_bg.svg:
--------------------------------------------------------------------------------
1 |
2 |
83 |
--------------------------------------------------------------------------------
/media/highlight_stacked_bg_h.svg:
--------------------------------------------------------------------------------
1 |
2 |
83 |
--------------------------------------------------------------------------------
/media/screenshot.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/micheleg/dash-to-dock/816d585207c2964225b33ab944766b0b62e65de4/media/screenshot.jpg
--------------------------------------------------------------------------------
/metadata.json:
--------------------------------------------------------------------------------
1 | {
2 | "shell-version": [
3 | "45",
4 | "46",
5 | "47",
6 | "48"
7 | ],
8 | "uuid": "dash-to-dock@micxgx.gmail.com",
9 | "name": "Dash to Dock",
10 | "description": "A dock for the Gnome Shell. This extension moves the dash out of the overview transforming it in a dock for an easier launching of applications and a faster switching between windows and desktops. Side and bottom placement options are available.",
11 | "original-author": "micxgx@gmail.com",
12 | "url": "https://micheleg.github.io/dash-to-dock/",
13 | "gettext-domain": "dashtodock",
14 | "version": 100
15 | }
16 |
--------------------------------------------------------------------------------
/notificationsMonitor.js:
--------------------------------------------------------------------------------
1 | // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
2 |
3 | import {Gio} from './dependencies/gi.js';
4 | import {Main} from './dependencies/shell/ui.js';
5 |
6 | import {
7 | Docking,
8 | Utils,
9 | } from './imports.js';
10 |
11 | const {signals: Signals} = imports;
12 |
13 | const Labels = Object.freeze({
14 | SOURCES: Symbol('sources'),
15 | NOTIFICATIONS: Symbol('notifications'),
16 | });
17 | export class NotificationsMonitor {
18 | constructor() {
19 | this._settings = new Gio.Settings({
20 | schema_id: 'org.gnome.desktop.notifications',
21 | });
22 |
23 | this._appNotifications = Object.create(null);
24 | this._signalsHandler = new Utils.GlobalSignalsHandler(this);
25 |
26 | const getIsEnabled = () => !this.dndMode &&
27 | Docking.DockManager.settings.showIconsNotificationsCounter;
28 |
29 | this._isEnabled = getIsEnabled();
30 | const checkIsEnabled = () => {
31 | const isEnabled = getIsEnabled();
32 | if (isEnabled !== this._isEnabled) {
33 | this._isEnabled = isEnabled;
34 | this.emit('state-changed');
35 |
36 | this._updateState();
37 | }
38 | };
39 |
40 | this._dndMode = !this._settings.get_boolean('show-banners');
41 | this._signalsHandler.add(this._settings, 'changed::show-banners', () => {
42 | this._dndMode = !this._settings.get_boolean('show-banners');
43 | checkIsEnabled();
44 | });
45 | this._signalsHandler.add(Docking.DockManager.settings,
46 | 'changed::show-icons-notifications-counter', checkIsEnabled);
47 |
48 | this._updateState();
49 | }
50 |
51 | destroy() {
52 | this.emit('destroy');
53 | this._signalsHandler?.destroy();
54 | this._signalsHandler = null;
55 | this._appNotifications = null;
56 | this._settings = null;
57 | }
58 |
59 | get enabled() {
60 | return this._isEnabled;
61 | }
62 |
63 | get dndMode() {
64 | return this._dndMode;
65 | }
66 |
67 | getAppNotificationsCount(appId) {
68 | return this._appNotifications[appId] ?? 0;
69 | }
70 |
71 | _updateState() {
72 | if (this.enabled) {
73 | this._signalsHandler.addWithLabel(Labels.SOURCES, Main.messageTray,
74 | 'source-added', () => this._checkNotifications());
75 | this._signalsHandler.addWithLabel(Labels.SOURCES, Main.messageTray,
76 | 'source-removed', () => this._checkNotifications());
77 | } else {
78 | this._signalsHandler.removeWithLabel(Labels.SOURCES);
79 | }
80 |
81 | this._checkNotifications();
82 | }
83 |
84 | _checkNotifications() {
85 | this._appNotifications = Object.create(null);
86 | this._signalsHandler.removeWithLabel(Labels.NOTIFICATIONS);
87 |
88 | if (this.enabled) {
89 | Main.messageTray.getSources().forEach(source => {
90 | this._signalsHandler.addWithLabel(Labels.NOTIFICATIONS, source,
91 | 'notification-added', () => this._checkNotifications());
92 |
93 | source.notifications.forEach(notification => {
94 | const app = notification.source?.app ?? notification.source?._app;
95 | const appId = app?.id ?? app?._appId;
96 |
97 | if (appId) {
98 | if (notification.resident) {
99 | if (notification.acknowledged)
100 | return;
101 |
102 | this._signalsHandler.addWithLabel(Labels.NOTIFICATIONS,
103 | notification, 'notify::acknowledged',
104 | () => this._checkNotifications());
105 | }
106 |
107 | this._signalsHandler.addWithLabel(Labels.NOTIFICATIONS,
108 | notification, 'destroy', () => this._checkNotifications());
109 |
110 | this._appNotifications[appId] =
111 | (this._appNotifications[appId] ?? 0) + 1;
112 | }
113 | });
114 | });
115 | }
116 |
117 | this.emit('changed');
118 | }
119 | }
120 |
121 | Signals.addSignalMethods(NotificationsMonitor.prototype);
122 |
--------------------------------------------------------------------------------
/po/el.po:
--------------------------------------------------------------------------------
1 | # SOME DESCRIPTIVE TITLE.
2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the PACKAGE package.
4 | # FIRST AUTHOR , YEAR.
5 | # Δημήτριος-Ρωμανός Ησαΐας , 2017.
6 | # Vangelis Skarmoutsos , 2017.
7 | #
8 | msgid ""
9 | msgstr ""
10 | "Project-Id-Version: Dash to Dock\n"
11 | "Report-Msgid-Bugs-To: \n"
12 | "POT-Creation-Date: 2017-06-04 12:35+0100\n"
13 | "PO-Revision-Date: 2017-09-29 21:48+0300\n"
14 | "Last-Translator: Vangelis Skarmoutsos \n"
15 | "Language-Team:\n"
16 | "Language: el\n"
17 | "MIME-Version: 1.0\n"
18 | "Content-Type: text/plain; charset=UTF-8\n"
19 | "Content-Transfer-Encoding: 8bit\n"
20 | "X-Generator: Poedit 2.0.3\n"
21 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
22 |
23 | #: prefs.js:113
24 | msgid "Primary monitor"
25 | msgstr "Κύρια οθόνη"
26 |
27 | #: prefs.js:122 prefs.js:129
28 | msgid "Secondary monitor "
29 | msgstr "Δευτερεύουσα οθόνη "
30 |
31 | #: prefs.js:154 Settings.ui.h:29
32 | msgid "Right"
33 | msgstr "Δεξιά"
34 |
35 | #: prefs.js:155 Settings.ui.h:26
36 | msgid "Left"
37 | msgstr "Αριστερά"
38 |
39 | #: prefs.js:205
40 | msgid "Intelligent autohide customization"
41 | msgstr "Προσαρμογή έξυπνης απόκρυψης"
42 |
43 | #: prefs.js:212 prefs.js:393 prefs.js:450
44 | msgid "Reset to defaults"
45 | msgstr "Επαναφορά στις προεπιλογές"
46 |
47 | #: prefs.js:386
48 | msgid "Show dock and application numbers"
49 | msgstr "Προβολή της μπάρας και της αρίθμησης εφαρμογών"
50 |
51 | #: prefs.js:443
52 | msgid "Customize middle-click behavior"
53 | msgstr "Προσαρμογή συμπεριφοράς μεσαίου κλικ"
54 |
55 | #: prefs.js:514
56 | msgid "Customize running indicators"
57 | msgstr "Προσαρμογή δεικτών τρεχόντων εφαρμογών"
58 |
59 | #: appIcons.js:804
60 | msgid "All Windows"
61 | msgstr "Όλα τα παράθυρα"
62 |
63 | #: Settings.ui.h:1
64 | msgid "Customize indicator style"
65 | msgstr "Προσαρμογή του στυλ του δείκτη"
66 |
67 | #: Settings.ui.h:2
68 | msgid "Color"
69 | msgstr "Χρώμα"
70 |
71 | #: Settings.ui.h:3
72 | msgid "Border color"
73 | msgstr "Χρώμα περιγράμματος"
74 |
75 | #: Settings.ui.h:4
76 | msgid "Border width"
77 | msgstr "Πλάτος περιγράμματος"
78 |
79 | #: Settings.ui.h:5
80 | msgid "Number overlay"
81 | msgstr "Επίστρωση αριθμού"
82 |
83 | #: Settings.ui.h:6
84 | msgid ""
85 | "Temporarily show the application numbers over the icons, corresponding to "
86 | "the shortcut."
87 | msgstr ""
88 | "Προσωρινή εμφάνιση αριθμών εφαρμογής πάνω από τα εικονίδια, που αντιστοιχούν "
89 | "στη συντόμευση πληκτρολογίου."
90 |
91 | #: Settings.ui.h:7
92 | msgid "Show the dock if it is hidden"
93 | msgstr "Προβολή της μπάρας αν είναι κρυμμένη"
94 |
95 | #: Settings.ui.h:8
96 | msgid ""
97 | "If using autohide, the dock will appear for a short time when triggering the "
98 | "shortcut."
99 | msgstr ""
100 | "Αν χρησιμοποιείται η αυτόματη απόκρυψη, η μπάρα θα εμφανίζεται για λίγο "
101 | "χρόνο όταν πατιέται η συντόμευση."
102 |
103 | #: Settings.ui.h:9
104 | msgid "Shortcut for the options above"
105 | msgstr "Συντόμευση για τις παραπάνω επιλογές"
106 |
107 | #: Settings.ui.h:10
108 | msgid "Syntax: , , , "
109 | msgstr "Σύνταξη: , , , "
110 |
111 | #: Settings.ui.h:11
112 | msgid "Hide timeout (s)"
113 | msgstr "Καθυστέρηση απόκρυψης"
114 |
115 | #: Settings.ui.h:12
116 | msgid ""
117 | "When set to minimize, double clicking minimizes all the windows of the "
118 | "application."
119 | msgstr ""
120 | "Όταν είναι ρυθμισμένο στην ελαχιστοποίηση, το διπλό κλικ ελαχιστοποιεί όλα "
121 | "τα παράθυρα της εφαρμογής."
122 |
123 | #: Settings.ui.h:13
124 | msgid "Shift+Click action"
125 | msgstr "Λειτουργία του Shift+Click"
126 |
127 | #: Settings.ui.h:14
128 | msgid "Raise window"
129 | msgstr "Ανύψωση παραθύρου"
130 |
131 | #: Settings.ui.h:15
132 | msgid "Minimize window"
133 | msgstr "Ελαχιστοποίηση παραθύρου"
134 |
135 | #: Settings.ui.h:16
136 | msgid "Launch new instance"
137 | msgstr "Εκκίνηση νέου παραθύρου"
138 |
139 | #: Settings.ui.h:17
140 | msgid "Cycle through windows"
141 | msgstr "Περιήγηση στα ανοικτά παράθυρα"
142 |
143 | #: Settings.ui.h:18
144 | msgid "Quit"
145 | msgstr "Έξοδος"
146 |
147 | #: Settings.ui.h:19
148 | msgid "Behavior for Middle-Click."
149 | msgstr "Συμπεριφορά μεσαίου κλικ."
150 |
151 | #: Settings.ui.h:20
152 | msgid "Middle-Click action"
153 | msgstr "Λειτουργία του μεσαίου κλικ"
154 |
155 | #: Settings.ui.h:21
156 | msgid "Behavior for Shift+Middle-Click."
157 | msgstr "Συμπεριφορά Shift+Μεσαίο κλικ."
158 |
159 | #: Settings.ui.h:22
160 | msgid "Shift+Middle-Click action"
161 | msgstr "Λειτουργία του Shift+Μεσαίο κλικ"
162 |
163 | #: Settings.ui.h:23
164 | msgid "Show the dock on"
165 | msgstr "Εμφάνιση της μπάρας στην"
166 |
167 | #: Settings.ui.h:24
168 | msgid "Show on all monitors"
169 | msgstr "Εμφάνιση σε όλες τις οθόνες"
170 |
171 | #: Settings.ui.h:25
172 | msgid "Position on screen"
173 | msgstr "Θέση στην οθόνη"
174 |
175 | #: Settings.ui.h:27
176 | msgid "Bottom"
177 | msgstr "Κάτω"
178 |
179 | #: Settings.ui.h:28
180 | msgid "Top"
181 | msgstr "Πάνω"
182 |
183 | #: Settings.ui.h:30
184 | msgid ""
185 | "Hide the dock when it obstructs a window of the the current application. "
186 | "More refined settings are available."
187 | msgstr ""
188 | "Απόκρυψη της μπάρας όταν εμποδίζει ένα παράθυρο της τρέχουσας εφαρμογής. Πιο "
189 | "εξειδικευμένες επιλογές είναι επίσης διαθέσιμες."
190 |
191 | #: Settings.ui.h:31
192 | msgid "Intelligent autohide"
193 | msgstr "Έξυπνη απόκρυψη"
194 |
195 | #: Settings.ui.h:32
196 | msgid "Dock size limit"
197 | msgstr "Περιορισμός μεγέθους μπάρας"
198 |
199 | #: Settings.ui.h:33
200 | msgid "Panel mode: extend to the screen edge"
201 | msgstr "Λειτουργιά πάνελ: επέκταση της μπάρας ως τις άκρες της οθόνης"
202 |
203 | #: Settings.ui.h:34
204 | msgid "Icon size limit"
205 | msgstr "Περιορισμός μεγέθους εικονιδίων"
206 |
207 | #: Settings.ui.h:35
208 | msgid "Fixed icon size: scroll to reveal other icons"
209 | msgstr ""
210 | "Σταθερό μέγεθος εικονιδίων: κύλιση για την εμφάνιση περαιτέρω εικονιδίων"
211 |
212 | #: Settings.ui.h:36
213 | msgid "Position and size"
214 | msgstr "Θέση και μέγεθος"
215 |
216 | #: Settings.ui.h:37
217 | msgid "Show favorite applications"
218 | msgstr "Εμφάνιση αγαπημένων εφαρμογών"
219 |
220 | #: Settings.ui.h:38
221 | msgid "Show running applications"
222 | msgstr "Εμφάνιση εκτελούμενων εφαρμογών"
223 |
224 | #: Settings.ui.h:39
225 | msgid "Isolate workspaces"
226 | msgstr "Απομόνωση χώρων εργασίας"
227 |
228 | #: Settings.ui.h:40
229 | msgid "Show open windows previews"
230 | msgstr "Εμφάνιση προεπισκόπησης ανοικτών παραθύρων"
231 |
232 | #: Settings.ui.h:41
233 | msgid ""
234 | "If disabled, these settings are accessible from gnome-tweak-tool or the "
235 | "extension website."
236 | msgstr ""
237 | "Αν είναι απενεργοποιημένο, αυτές οι ρυθμίσεις είναι προσβάσιμες από το "
238 | "εργαλείο μικρορυθμίσεων του GNOME ή τον ιστοτόπο επεκτάσεων."
239 |
240 | #: Settings.ui.h:42
241 | msgid "Show Applications icon"
242 | msgstr "Εμφάνιση εικονιδίου Εφαρμογές"
243 |
244 | #: Settings.ui.h:43
245 | msgid "Move the applications button at the beginning of the dock"
246 | msgstr "Μετακίνηση του πλήκτρου εφαρμογών στην αρχή της μπάρας"
247 |
248 | #: Settings.ui.h:44
249 | msgid "Animate Show Applications"
250 | msgstr "Ενεργοποίηση γραφικών κατά την Εμφάνιση Εφαρμογών"
251 |
252 | #: Settings.ui.h:45
253 | msgid "Launchers"
254 | msgstr "Εκκινητές"
255 |
256 | #: Settings.ui.h:46
257 | msgid ""
258 | "Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
259 | "together with Shift and Ctrl."
260 | msgstr ""
261 | "Ενεργοποίηση του Super+(0-9) ως συντομεύσεις για την ενεργοποίηση εφαρμογών. "
262 | "Μπορεί επίσης να χρησιμοποιηθεί με το Shift και το Ctrl."
263 |
264 | #: Settings.ui.h:47
265 | msgid "Use keyboard shortcuts to activate apps"
266 | msgstr "Χρήση συντομεύσεων πληκτρολογίου για την ενεργοποίηση εφαρμογών"
267 |
268 | #: Settings.ui.h:48
269 | msgid "Behaviour when clicking on the icon of a running application."
270 | msgstr "Συμπεριφορά κατά το κλικ σε εικονίδιο τρέχουσας εφαρμογής."
271 |
272 | #: Settings.ui.h:49
273 | msgid "Click action"
274 | msgstr "Συμπεριφορά κλικ"
275 |
276 | #: Settings.ui.h:50
277 | msgid "Minimize"
278 | msgstr "Ελαχιστοποίηση"
279 |
280 | #: Settings.ui.h:51
281 | msgid "Minimize or overview"
282 | msgstr "Ελαχιστοποίηση ή επισκόπηση"
283 |
284 | #: Settings.ui.h:52
285 | msgid "Behaviour when scrolling on the icon of an application."
286 | msgstr "Συμπεριφορά κατά την κύλιση σε εικονίδιο τρέχουσας εφαρμογής."
287 |
288 | #: Settings.ui.h:53
289 | msgid "Scroll action"
290 | msgstr "Συμπεριφορά κύλισης"
291 |
292 | #: Settings.ui.h:54
293 | msgid "Do nothing"
294 | msgstr "Καμία δράση"
295 |
296 | #: Settings.ui.h:55
297 | msgid "Switch workspace"
298 | msgstr "Αλλαγή χώρου εργασίας"
299 |
300 | #: Settings.ui.h:56
301 | msgid "Behavior"
302 | msgstr "Συμπεριφορά"
303 |
304 | #: Settings.ui.h:57
305 | msgid ""
306 | "Few customizations meant to integrate the dock with the default GNOME theme. "
307 | "Alternatively, specific options can be enabled below."
308 | msgstr ""
309 | "Μερικές προσαρμογές στοχεύουν στο να ενοποιήσουν την μπάρα με το "
310 | "προκαθορισμένο θέμα του GNOME. Εναλλακτικά, ειδικές επιλογές μπορούν να "
311 | "ενεργοποιηθούν παρακάτω."
312 |
313 | #: Settings.ui.h:58
314 | msgid "Use built-in theme"
315 | msgstr "Χρήση ενσωματωμένου θέματος"
316 |
317 | #: Settings.ui.h:59
318 | msgid "Save space reducing padding and border radius."
319 | msgstr "Εξοικονόμηση χώρου μειώνοντας τα κενά και τα περιθώρια."
320 |
321 | #: Settings.ui.h:60
322 | msgid "Shrink the dash"
323 | msgstr "Σμίκρυνση της μπάρας"
324 |
325 | #: Settings.ui.h:61
326 | msgid "Show a dot for each windows of the application."
327 | msgstr "Εμφανίζει μία τελεία για κάθε παράθυρο της εφαρμογής."
328 |
329 | #: Settings.ui.h:62
330 | msgid "Show windows counter indicators"
331 | msgstr "Εμφάνιση μετρητή παραθύρων"
332 |
333 | #: Settings.ui.h:63
334 | msgid "Set the background color for the dash."
335 | msgstr "Ορισμός χρώματος φόντου της μπάρας."
336 |
337 | #: Settings.ui.h:64
338 | msgid "Customize the dash color"
339 | msgstr "Προσαρμογή του χρώματος της μπάρας"
340 |
341 | #: Settings.ui.h:65
342 | msgid "Tune the dash background opacity."
343 | msgstr "Αλλαγή της αδιαφάνειας του φόντου της μπάρας."
344 |
345 | #: Settings.ui.h:66
346 | msgid "Customize opacity"
347 | msgstr "Προσαρμογή αδιαφάνειας"
348 |
349 | #: Settings.ui.h:67
350 | msgid "Opacity"
351 | msgstr "Αδιαφάνεια"
352 |
353 | #: Settings.ui.h:68
354 | msgid "Force straight corner\n"
355 | msgstr "Εξαναγκασμός ευθείας γωνίας\n"
356 |
357 | #: Settings.ui.h:70
358 | msgid "Appearance"
359 | msgstr "Εμφάνιση"
360 |
361 | #: Settings.ui.h:71
362 | msgid "version: "
363 | msgstr "έκδοση: "
364 |
365 | #: Settings.ui.h:72
366 | msgid "Moves the dash out of the overview transforming it in a dock"
367 | msgstr ""
368 | "Μετακινεί το ταμπλό και εκτός της προεπισκόπησης μετατρέποντάς το σε μπάρα "
369 | "εφαρμογών"
370 |
371 | #: Settings.ui.h:73
372 | msgid "Created by"
373 | msgstr "Δημιουργήθηκε από"
374 |
375 | #: Settings.ui.h:74
376 | msgid "Webpage"
377 | msgstr "Ιστοσελίδα"
378 |
379 | #: Settings.ui.h:75
380 | msgid ""
381 | "This program comes with ABSOLUTELY NO WARRANTY.\n"
382 | "See the GNU General Public License, version 2 or later for details."
384 | msgstr ""
385 | "Αυτό πρόγραμμα παρέχεται χωρίς ΑΠΟΛΥΤΩΣ ΚΑΜΙΑ ΕΓΓΥΗΣΗ.\n"
386 | "Για λεπτομέρειες δείτε την Γενική δημόσια άδεια GNU, έκδοση 2 ή νεότερη. "
388 | "span>"
389 |
390 | #: Settings.ui.h:77
391 | msgid "About"
392 | msgstr "Περί"
393 |
394 | #: Settings.ui.h:78
395 | msgid "Show the dock by mouse hover on the screen edge."
396 | msgstr "Εμφάνιση της μπάρας όταν το ποντίκι πηγαίνει στην άκρη της οθόνης."
397 |
398 | #: Settings.ui.h:79
399 | msgid "Autohide"
400 | msgstr "Αυτόματη απόκρυψη"
401 |
402 | #: Settings.ui.h:80
403 | msgid "Push to show: require pressure to show the dock"
404 | msgstr "Πίεση για εμφάνιση: απαιτείται πίεση για την εμφάνιση της μπάρας"
405 |
406 | #: Settings.ui.h:81
407 | msgid "Enable in fullscreen mode"
408 | msgstr "Ενεργοποίηση σε κατάσταση πλήρους οθόνης"
409 |
410 | #: Settings.ui.h:82
411 | msgid "Show the dock when it doesn't obstruct application windows."
412 | msgstr "Εμφάνιση της μπάρας όταν δεν εμποδίζει τα παράθυρά των εφαρμογών."
413 |
414 | #: Settings.ui.h:83
415 | msgid "Dodge windows"
416 | msgstr "Αποφυγή παραθύρων"
417 |
418 | #: Settings.ui.h:84
419 | msgid "All windows"
420 | msgstr "Όλα τα παράθυρα"
421 |
422 | #: Settings.ui.h:85
423 | msgid "Only focused application's windows"
424 | msgstr "Μόνο τα παράθυρα της εστιασμένης εφαρμογής"
425 |
426 | #: Settings.ui.h:86
427 | msgid "Only maximized windows"
428 | msgstr "Μόνο μεγιστοποιημένα παράθυρα"
429 |
430 | #: Settings.ui.h:87
431 | msgid "Animation duration (s)"
432 | msgstr "Διάρκεια κίνησης γραφικών (s)"
433 |
434 | #: Settings.ui.h:88
435 | msgid "0.000"
436 | msgstr "0.000"
437 |
438 | #: Settings.ui.h:89
439 | msgid "Show timeout (s)"
440 | msgstr "Χρονικό όριο εμφάνισης"
441 |
442 | #: Settings.ui.h:90
443 | msgid "Pressure threshold"
444 | msgstr "Ελάχιστη πίεση"
445 |
--------------------------------------------------------------------------------
/po/gl.po:
--------------------------------------------------------------------------------
1 | # Dash to Dock galician translation.
2 | # This file is distributed under the same license as the Dash to Dock package.
3 | # Xosé M. Lamas , 2018.
4 | #
5 | msgid ""
6 | msgstr ""
7 | "Project-Id-Version: \n"
8 | "Report-Msgid-Bugs-To: \n"
9 | "POT-Creation-Date: 2018-03-30 11:27-0400\n"
10 | "PO-Revision-Date: 2018-03-30 16:42-0500\n"
11 | "Last-Translator: Xosé M. Lamas \n"
12 | "Language-Team: \n"
13 | "Language: gl\n"
14 | "MIME-Version: 1.0\n"
15 | "Content-Type: text/plain; charset=UTF-8\n"
16 | "Content-Transfer-Encoding: 8bit\n"
17 | "X-Generator: Poedit 2.0.3\n"
18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 |
20 | #: prefs.js:113
21 | msgid "Primary monitor"
22 | msgstr "Monitor principal"
23 |
24 | #: prefs.js:122 prefs.js:129
25 | msgid "Secondary monitor "
26 | msgstr "Monitor secundario"
27 |
28 | #: prefs.js:154 Settings.ui.h:29
29 | msgid "Right"
30 | msgstr "Dereita"
31 |
32 | #: prefs.js:155 Settings.ui.h:26
33 | msgid "Left"
34 | msgstr "Esquerda"
35 |
36 | #: prefs.js:205
37 | msgid "Intelligent autohide customization"
38 | msgstr "Personalización de agochamento intelixente"
39 |
40 | #: prefs.js:212 prefs.js:393 prefs.js:450
41 | msgid "Reset to defaults"
42 | msgstr "Restablecer aos valores por omisión"
43 |
44 | #: prefs.js:386
45 | msgid "Show dock and application numbers"
46 | msgstr "Mostrar dock e números do aplicativo"
47 |
48 | #: prefs.js:443
49 | msgid "Customize middle-click behavior"
50 | msgstr "Personalizar comportamento do botón central"
51 |
52 | #: prefs.js:514
53 | msgid "Customize running indicators"
54 | msgstr "Personalizar indicadores en execución"
55 |
56 | #: appIcons.js:804
57 | msgid "All Windows"
58 | msgstr "Todas as ventás"
59 |
60 | #: Settings.ui.h:1
61 | msgid "Customize indicator style"
62 | msgstr "Personalizar estilo do indicador"
63 |
64 | #: Settings.ui.h:2
65 | msgid "Color"
66 | msgstr "Cor"
67 |
68 | #: Settings.ui.h:3
69 | msgid "Border color"
70 | msgstr "Cor do borde"
71 |
72 | #: Settings.ui.h:4
73 | msgid "Border width"
74 | msgstr "Ancho do borde"
75 |
76 | #: Settings.ui.h:5
77 | msgid "Number overlay"
78 | msgstr "Número na vista extendida"
79 |
80 | #: Settings.ui.h:6
81 | msgid ""
82 | "Temporarily show the application numbers over the icons, corresponding to "
83 | "the shortcut."
84 | msgstr ""
85 | "Mostrar brevemente o número de aplicativo sobre a icona que corresponda "
86 | "ao atallo."
87 |
88 | #: Settings.ui.h:7
89 | msgid "Show the dock if it is hidden"
90 | msgstr "Mostrar o dock si está agochado"
91 |
92 | #: Settings.ui.h:8
93 | msgid ""
94 | "If using autohide, the dock will appear for a short time when triggering the "
95 | "shortcut."
96 | msgstr ""
97 | "Si se activa o agochamento automático, o dock aparecerá brevemente "
98 | "ao utilizar o atallo."
99 |
100 | #: Settings.ui.h:9
101 | msgid "Shortcut for the options above"
102 | msgstr "Atallo para os axustes de arriba"
103 |
104 | #: Settings.ui.h:10
105 | msgid "Syntax: , , , "
106 | msgstr "Sintaxe: , , , "
107 |
108 | #: Settings.ui.h:11
109 | msgid "Hide timeout (s)"
110 | msgstr "Tempo en agocharse (s)"
111 |
112 | #: Settings.ui.h:12
113 | msgid ""
114 | "When set to minimize, double clicking minimizes all the windows of the "
115 | "application."
116 | msgstr ""
117 | "Cando se establece minimizar, facendo duplo click minimiza todas as ventás "
118 | "do aplicativo."
119 |
120 | #: Settings.ui.h:13
121 | msgid "Shift+Click action"
122 | msgstr "Acción de Maiús + pulsación"
123 |
124 | #: Settings.ui.h:14
125 | msgid "Raise window"
126 | msgstr "Elevar ventá"
127 |
128 | #: Settings.ui.h:15
129 | msgid "Minimize window"
130 | msgstr "Minimizar ventá"
131 |
132 | #: Settings.ui.h:16
133 | msgid "Launch new instance"
134 | msgstr "Iniciar unha nova instancia"
135 |
136 | #: Settings.ui.h:17
137 | msgid "Cycle through windows"
138 | msgstr "Alternar entre ventás"
139 |
140 | #: Settings.ui.h:18
141 | msgid "Quit"
142 | msgstr "Saír"
143 |
144 | #: Settings.ui.h:19
145 | msgid "Behavior for Middle-Click."
146 | msgstr "Comportamento do botón central"
147 |
148 | #: Settings.ui.h:20
149 | msgid "Middle-Click action"
150 | msgstr "Acción do botón central"
151 |
152 | #: Settings.ui.h:21
153 | msgid "Behavior for Shift+Middle-Click."
154 | msgstr "Comportamento de Maiús + botón central"
155 |
156 | #: Settings.ui.h:22
157 | msgid "Shift+Middle-Click action"
158 | msgstr "Acción de Maiús + botón central"
159 |
160 | #: Settings.ui.h:23
161 | msgid "Show the dock on"
162 | msgstr "Mostrar o dock en"
163 |
164 | #: Settings.ui.h:24
165 | msgid "Show on all monitors"
166 | msgstr "Mostrar en todos os monitores"
167 |
168 | #: Settings.ui.h:25
169 | msgid "Position on screen"
170 | msgstr "Posición na pantalla"
171 |
172 | #: Settings.ui.h:27
173 | msgid "Bottom"
174 | msgstr "Inferior"
175 |
176 | #: Settings.ui.h:28
177 | msgid "Top"
178 | msgstr "Superior"
179 |
180 | #: Settings.ui.h:30
181 | msgid ""
182 | "Hide the dock when it obstructs a window of the current application. More "
183 | "refined settings are available."
184 | msgstr ""
185 | "Agochar o dock cando obstrúe a ventá do aplicativo actual. Dispoñibles "
186 | "máis opcións."
187 |
188 | #: Settings.ui.h:31
189 | msgid "Intelligent autohide"
190 | msgstr "Agochamento automático intelixente"
191 |
192 | #: Settings.ui.h:32
193 | msgid "Dock size limit"
194 | msgstr "Tamaño máximo do dock"
195 |
196 | #: Settings.ui.h:33
197 | msgid "Panel mode: extend to the screen edge"
198 | msgstr "Modo panel: extender ate os bordes da pantalla"
199 |
200 | #: Settings.ui.h:34
201 | msgid "Icon size limit"
202 | msgstr "Tamaño máximo das iconas"
203 |
204 | #: Settings.ui.h:35
205 | msgid "Fixed icon size: scroll to reveal other icons"
206 | msgstr "Tamaño fixo das iconas: desprazarse para mostrar outros"
207 |
208 | #: Settings.ui.h:36
209 | msgid "Position and size"
210 | msgstr "Posición e tamaño"
211 |
212 | #: Settings.ui.h:37
213 | msgid "Show favorite applications"
214 | msgstr "Mostrar aplicativos favoritos"
215 |
216 | #: Settings.ui.h:38
217 | msgid "Show running applications"
218 | msgstr "Mostrar aplicativos en execución"
219 |
220 | #: Settings.ui.h:39
221 | msgid "Isolate workspaces"
222 | msgstr "Illar os espazos de traballo"
223 |
224 | #: Settings.ui.h:40
225 | msgid "Show open windows previews"
226 | msgstr "Mostrar vista rápida de ventás"
227 |
228 | #: Settings.ui.h:41
229 | msgid ""
230 | "If disabled, these settings are accessible from gnome-tweak-tool or the "
231 | "extension website."
232 | msgstr ""
233 | "Si está deshabilitado, estas opcions están dispoñibles desde gnome-tweak-tool "
234 | "ou desde o sitio web de extensións."
235 |
236 | #: Settings.ui.h:42
237 | msgid "Show Applications icon"
238 | msgstr "Mostrar a icona Aplicativos"
239 |
240 | #: Settings.ui.h:43
241 | msgid "Move the applications button at the beginning of the dock"
242 | msgstr "Mover o botón de aplicativos ao principio do dock"
243 |
244 | #: Settings.ui.h:44
245 | msgid "Animate Show Applications"
246 | msgstr "Animar Mostrar aplicativos"
247 |
248 | #: Settings.ui.h:45
249 | msgid "Launchers"
250 | msgstr "Lanzadores"
251 |
252 | #: Settings.ui.h:46
253 | msgid ""
254 | "Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
255 | "together with Shift and Ctrl."
256 | msgstr ""
257 | "Habilitar Súper+(0-9) como atallos para activar aplicativos. Tamén puede "
258 | "ser utilizado xunto con Maiús e Ctrl."
259 |
260 | #: Settings.ui.h:47
261 | msgid "Use keyboard shortcuts to activate apps"
262 | msgstr "Usar atallos de teclado para activar aplicativos"
263 |
264 | #: Settings.ui.h:48
265 | msgid "Behaviour when clicking on the icon of a running application."
266 | msgstr "Comportamiento ao pulsar na icona de un aplicativo en execución."
267 |
268 | #: Settings.ui.h:49
269 | msgid "Click action"
270 | msgstr "Acción de pulsación"
271 |
272 | #: Settings.ui.h:50
273 | msgid "Minimize"
274 | msgstr "Minimizar"
275 |
276 | #: Settings.ui.h:51
277 | msgid "Minimize or overview"
278 | msgstr "Minimizar ou vista de actividades"
279 |
280 | #: Settings.ui.h:52
281 | msgid "Behaviour when scrolling on the icon of an application."
282 | msgstr "Comportamiento ao utilizar a roda sobre a icona de un aplicativo."
283 |
284 | #: Settings.ui.h:53
285 | msgid "Scroll action"
286 | msgstr "Acción de desprazamento"
287 |
288 | #: Settings.ui.h:54
289 | msgid "Do nothing"
290 | msgstr "Non facer nada"
291 |
292 | #: Settings.ui.h:55
293 | msgid "Switch workspace"
294 | msgstr "Cambiar de espazo de traballo."
295 |
296 | #: Settings.ui.h:56
297 | msgid "Behavior"
298 | msgstr "Comportamento"
299 |
300 | #: Settings.ui.h:57
301 | msgid ""
302 | "Few customizations meant to integrate the dock with the default GNOME theme. "
303 | "Alternatively, specific options can be enabled below."
304 | msgstr ""
305 | "Utilizar o decorado predeterminado de GNOME. De xeito alternativo, poden habilitarse "
306 | "certos axustes aquí abaixo."
307 |
308 | #: Settings.ui.h:58
309 | msgid "Use built-in theme"
310 | msgstr "Utilizar o decorado incorporado"
311 |
312 | #: Settings.ui.h:59
313 | msgid "Save space reducing padding and border radius."
314 | msgstr "Reducir as marxes para gañar espazo."
315 |
316 | #: Settings.ui.h:60
317 | msgid "Shrink the dash"
318 | msgstr "Comprimir o taboleiro"
319 |
320 | #: Settings.ui.h:61
321 | msgid "Show a dot for each windows of the application."
322 | msgstr "Mostrar un punto por cada ventá do aplicativo."
323 |
324 | #: Settings.ui.h:62
325 | msgid "Show windows counter indicators"
326 | msgstr "Mostrar contador de ventás"
327 |
328 | #: Settings.ui.h:63
329 | msgid "Set the background color for the dash."
330 | msgstr "Escoller a cor de fondo do taboleiro."
331 |
332 | #: Settings.ui.h:64
333 | msgid "Customize the dash color"
334 | msgstr "Personalizar a cor do dock"
335 |
336 | #: Settings.ui.h:65
337 | msgid "Tune the dash background opacity."
338 | msgstr "Axustar a opacidade do fondo."
339 |
340 | #: Settings.ui.h:66
341 | msgid "Customize opacity"
342 | msgstr "Personalizar opacidade"
343 |
344 | #: Settings.ui.h:67
345 | msgid "Opacity"
346 | msgstr "Opacidade"
347 |
348 | #: Settings.ui.h:68
349 | msgid "Force straight corner\n"
350 | msgstr "Forzar esquinas rectas\n"
351 |
352 | #: Settings.ui.h:70
353 | msgid "Appearance"
354 | msgstr "Aparencia"
355 |
356 | #: Settings.ui.h:71
357 | msgid "version: "
358 | msgstr "versión: "
359 |
360 | #: Settings.ui.h:72
361 | msgid "Moves the dash out of the overview transforming it in a dock"
362 | msgstr ""
363 | "Move o panel da vista de actividades transformándoo nun dock"
364 |
365 | #: Settings.ui.h:73
366 | msgid "Created by"
367 | msgstr "Creado por"
368 |
369 | #: Settings.ui.h:74
370 | msgid "Webpage"
371 | msgstr "Sitio web"
372 |
373 | #: Settings.ui.h:75
374 | msgid ""
375 | "This program comes with ABSOLUTELY NO WARRANTY.\n"
376 | "See the GNU General Public License, version 2 or later for details."
378 | msgstr ""
379 | "Este programa ven SIN GARANTÍA ALGUNHA.\n"
380 | "Consulte a Licenza Pública Xeral de GNU, versión 2 ou posterior para obter "
382 | "máis detalles."
383 |
384 | #: Settings.ui.h:77
385 | msgid "About"
386 | msgstr "Sobre o"
387 |
388 | #: Settings.ui.h:78
389 | msgid "Show the dock by mouse hover on the screen edge."
390 | msgstr "Mostrar o dock ao pasar o punteiro sobre o borde da pantalla."
391 |
392 | #: Settings.ui.h:79
393 | msgid "Autohide"
394 | msgstr "Agochar automáticamente"
395 |
396 | #: Settings.ui.h:80
397 | msgid "Push to show: require pressure to show the dock"
398 | msgstr "Empurrar para mostrasr: require facer presión para mostrar o dock"
399 |
400 | #: Settings.ui.h:81
401 | msgid "Enable in fullscreen mode"
402 | msgstr "Activar en modo de pantalla completa"
403 |
404 | #: Settings.ui.h:82
405 | msgid "Show the dock when it doesn't obstruct application windows."
406 | msgstr "Mostrar o dock cando non cubra outras ventás de aplicativos."
407 |
408 | #: Settings.ui.h:83
409 | msgid "Dodge windows"
410 | msgstr "Evitar as ventás"
411 |
412 | #: Settings.ui.h:84
413 | msgid "All windows"
414 | msgstr "Todas as ventás"
415 |
416 | #: Settings.ui.h:85
417 | msgid "Only focused application's windows"
418 | msgstr "Só as ventás do aplicativo activo"
419 |
420 | #: Settings.ui.h:86
421 | msgid "Only maximized windows"
422 | msgstr "Só as ventás maximizadas"
423 |
424 | #: Settings.ui.h:87
425 | msgid "Animation duration (s)"
426 | msgstr "Duración da animación (s)"
427 |
428 | #: Settings.ui.h:88
429 | msgid "0.000"
430 | msgstr "0.000"
431 |
432 | #: Settings.ui.h:89
433 | msgid "Show timeout (s)"
434 | msgstr "Tempo de aparición"
435 |
436 | #: Settings.ui.h:90
437 | msgid "Pressure threshold"
438 | msgstr "Límite de presión"
439 |
--------------------------------------------------------------------------------
/po/id.po:
--------------------------------------------------------------------------------
1 | # SOME DESCRIPTIVE TITLE.
2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the PACKAGE package.
4 | # FIRST AUTHOR , YEAR.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: Dash-to-Dock\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-06-04 12:35+0100\n"
11 | "PO-Revision-Date: 2017-10-02 11:25+0700\n"
12 | "Last-Translator: Mahyuddin \n"
13 | "Language-Team: Mahyuddin \n"
14 | "Language: id\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "Plural-Forms: nplurals=1; plural=0;\n"
19 | "X-Generator: Poedit 1.8.11\n"
20 |
21 | #: prefs.js:113
22 | msgid "Primary monitor"
23 | msgstr "Monitor primer"
24 |
25 | #: prefs.js:122 prefs.js:129
26 | msgid "Secondary monitor "
27 | msgstr "Monitor sekunder"
28 |
29 | #: prefs.js:154 Settings.ui.h:29
30 | msgid "Right"
31 | msgstr "Kanan"
32 |
33 | #: prefs.js:155 Settings.ui.h:26
34 | msgid "Left"
35 | msgstr "Kiri"
36 |
37 | #: prefs.js:205
38 | msgid "Intelligent autohide customization"
39 | msgstr "Kustomisasi autohide yang cerdas"
40 |
41 | #: prefs.js:212 prefs.js:393 prefs.js:450
42 | msgid "Reset to defaults"
43 | msgstr "Setel ulang ke bawaan"
44 |
45 | #: prefs.js:386
46 | msgid "Show dock and application numbers"
47 | msgstr "Tampilkan dock dan nomor aplikasi"
48 |
49 | #: prefs.js:443
50 | msgid "Customize middle-click behavior"
51 | msgstr "Sesuaikan perilaku klik menengah"
52 |
53 | #: prefs.js:514
54 | msgid "Customize running indicators"
55 | msgstr "Sesuaikan indikator yang sedang berjalan"
56 |
57 | #: appIcons.js:804
58 | msgid "All Windows"
59 | msgstr "Semua Jendela"
60 |
61 | #: Settings.ui.h:1
62 | msgid "Customize indicator style"
63 | msgstr "Sesuaikan gaya indikator"
64 |
65 | #: Settings.ui.h:2
66 | msgid "Color"
67 | msgstr "Warna"
68 |
69 | #: Settings.ui.h:3
70 | msgid "Border color"
71 | msgstr "Warna border"
72 |
73 | #: Settings.ui.h:4
74 | msgid "Border width"
75 | msgstr "Lebar border"
76 |
77 | #: Settings.ui.h:5
78 | msgid "Number overlay"
79 | msgstr "Nomor overlay"
80 |
81 | #: Settings.ui.h:6
82 | msgid ""
83 | "Temporarily show the application numbers over the icons, corresponding to "
84 | "the shortcut."
85 | msgstr ""
86 | "Untuk sementara menunjukkan nomor aplikasi di atas ikon, sesuai dengan "
87 | "pintasan."
88 |
89 | #: Settings.ui.h:7
90 | msgid "Show the dock if it is hidden"
91 | msgstr "Tunjukkan dock jika tersembunyi"
92 |
93 | #: Settings.ui.h:8
94 | msgid ""
95 | "If using autohide, the dock will appear for a short time when triggering the "
96 | "shortcut."
97 | msgstr ""
98 | "Jika menggunakan autohide, dock akan muncul dalam waktu singkat saat memicu "
99 | "pintasan."
100 |
101 | #: Settings.ui.h:9
102 | msgid "Shortcut for the options above"
103 | msgstr "Pintasan untuk opsi di atas"
104 |
105 | #: Settings.ui.h:10
106 | msgid "Syntax: , , , "
107 | msgstr "Sintaks: , , , "
108 |
109 | #: Settings.ui.h:11
110 | msgid "Hide timeout (s)"
111 | msgstr "Sembunyikan batas waktu (s)"
112 |
113 | #: Settings.ui.h:12
114 | msgid ""
115 | "When set to minimize, double clicking minimizes all the windows of the "
116 | "application."
117 | msgstr ""
118 | "Bila disetel untuk meminimalkan, klik ganda meminimalkan semua jendela "
119 | "aplikasi."
120 |
121 | #: Settings.ui.h:13
122 | msgid "Shift+Click action"
123 | msgstr "Tindakan Shift+Klik"
124 |
125 | #: Settings.ui.h:14
126 | msgid "Raise window"
127 | msgstr "Menaikkan jendela"
128 |
129 | #: Settings.ui.h:15
130 | msgid "Minimize window"
131 | msgstr "Minimalkan jendela"
132 |
133 | #: Settings.ui.h:16
134 | msgid "Launch new instance"
135 | msgstr "Luncurkan contoh baru"
136 |
137 | #: Settings.ui.h:17
138 | msgid "Cycle through windows"
139 | msgstr "Siklus melalui jendela"
140 |
141 | #: Settings.ui.h:18
142 | msgid "Quit"
143 | msgstr "Berhenti"
144 |
145 | #: Settings.ui.h:19
146 | msgid "Behavior for Middle-Click."
147 | msgstr "Perilaku untuk Klik-Tengah."
148 |
149 | #: Settings.ui.h:20
150 | msgid "Middle-Click action"
151 | msgstr "Tindakan Klik-Tengah"
152 |
153 | #: Settings.ui.h:21
154 | msgid "Behavior for Shift+Middle-Click."
155 | msgstr "Perilaku untuk Shift+Klik-Tengah."
156 |
157 | #: Settings.ui.h:22
158 | msgid "Shift+Middle-Click action"
159 | msgstr "Tindakan Shift+Klik-Tengah"
160 |
161 | #: Settings.ui.h:23
162 | msgid "Show the dock on"
163 | msgstr "Tunjukkan dock pada"
164 |
165 | #: Settings.ui.h:24
166 | msgid "Show on all monitors"
167 | msgstr "Tunjukkan pada semua monitor"
168 |
169 | #: Settings.ui.h:25
170 | msgid "Position on screen"
171 | msgstr "Posisi pada layar"
172 |
173 | #: Settings.ui.h:27
174 | msgid "Bottom"
175 | msgstr "Bawah"
176 |
177 | #: Settings.ui.h:28
178 | msgid "Top"
179 | msgstr "Atas"
180 |
181 | #: Settings.ui.h:30
182 | msgid ""
183 | "Hide the dock when it obstructs a window of the current application. More "
184 | "refined settings are available."
185 | msgstr ""
186 | "Sembunyikan dock saat menghalangi jendela aplikasi saat ini. Setelan yang "
187 | "lebih halus juga tersedia."
188 |
189 | #: Settings.ui.h:31
190 | msgid "Intelligent autohide"
191 | msgstr "Autohide cerdas"
192 |
193 | #: Settings.ui.h:32
194 | msgid "Dock size limit"
195 | msgstr "Batas ukuran dock"
196 |
197 | #: Settings.ui.h:33
198 | msgid "Panel mode: extend to the screen edge"
199 | msgstr "Mode panel: meluas ke tepi layar"
200 |
201 | #: Settings.ui.h:34
202 | msgid "Icon size limit"
203 | msgstr "Batas ukuran ikon"
204 |
205 | #: Settings.ui.h:35
206 | msgid "Fixed icon size: scroll to reveal other icons"
207 | msgstr "Ukuran ikon tetap: gulir untuk menampilkan ikon lain"
208 |
209 | #: Settings.ui.h:36
210 | msgid "Position and size"
211 | msgstr "Posisi dan ukuran"
212 |
213 | #: Settings.ui.h:37
214 | msgid "Show favorite applications"
215 | msgstr "Tampilkan aplikasi favorit"
216 |
217 | #: Settings.ui.h:38
218 | msgid "Show running applications"
219 | msgstr "Tampilkan aplikasi yang sedang berjalan"
220 |
221 | #: Settings.ui.h:39
222 | msgid "Isolate workspaces"
223 | msgstr "Isolasi ruang kerja"
224 |
225 | #: Settings.ui.h:40
226 | msgid "Show open windows previews"
227 | msgstr "Tampilkan pratinjau windows yang terbuka"
228 |
229 | #: Settings.ui.h:41
230 | msgid ""
231 | "If disabled, these settings are accessible from gnome-tweak-tool or the "
232 | "extension website."
233 | msgstr ""
234 | "Jika dinonaktifkan, setelan ini dapat diakses dari gnome-tweak-tool atau "
235 | "situs ekstensi."
236 |
237 | #: Settings.ui.h:42
238 | msgid "Show Applications icon"
239 | msgstr "Tampilkan ikon Aplikasi i>"
240 |
241 | #: Settings.ui.h:43
242 | msgid "Move the applications button at the beginning of the dock"
243 | msgstr "Pindahkan tombol aplikasi di awal dock"
244 |
245 | #: Settings.ui.h:44
246 | msgid "Animate Show Applications"
247 | msgstr "Animasi Tampilkan Aplikasi"
248 |
249 | #: Settings.ui.h:45
250 | msgid "Launchers"
251 | msgstr "Peluncur"
252 |
253 | #: Settings.ui.h:46
254 | msgid ""
255 | "Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
256 | "together with Shift and Ctrl."
257 | msgstr ""
258 | "Aktifkan Super+(0-9) sebagai cara pintas untuk mengaktifkan aplikasi. Ini "
259 | "juga bisa digunakan bersamaan dengan Shift dan Ctrl."
260 |
261 | #: Settings.ui.h:47
262 | msgid "Use keyboard shortcuts to activate apps"
263 | msgstr "Gunakan pintasan papan tik untuk mengaktifkan aplikasi"
264 |
265 | #: Settings.ui.h:48
266 | msgid "Behaviour when clicking on the icon of a running application."
267 | msgstr "Perilaku saat mengklik ikon aplikasi yang sedang berjalan."
268 |
269 | #: Settings.ui.h:49
270 | msgid "Click action"
271 | msgstr "Klik tindakan"
272 |
273 | #: Settings.ui.h:50
274 | msgid "Minimize"
275 | msgstr "Minimalkan"
276 |
277 | #: Settings.ui.h:51
278 | msgid "Minimize or overview"
279 | msgstr "Minimalkan atau ikhtisar"
280 |
281 | #: Settings.ui.h:52
282 | msgid "Behaviour when scrolling on the icon of an application."
283 | msgstr "Perilaku saat menggulir pada ikon aplikasi."
284 |
285 | #: Settings.ui.h:53
286 | msgid "Scroll action"
287 | msgstr "Gulir tindakan"
288 |
289 | #: Settings.ui.h:54
290 | msgid "Do nothing"
291 | msgstr "Tidak melakukan apapun"
292 |
293 | #: Settings.ui.h:55
294 | msgid "Switch workspace"
295 | msgstr "Beralih ruang kerja"
296 |
297 | #: Settings.ui.h:56
298 | msgid "Behavior"
299 | msgstr "Perilaku"
300 |
301 | #: Settings.ui.h:57
302 | msgid ""
303 | "Few customizations meant to integrate the dock with the default GNOME theme. "
304 | "Alternatively, specific options can be enabled below."
305 | msgstr ""
306 | "Beberapa penyesuaian dimaksudkan untuk mengintegrasikan dock dengan tema "
307 | "GNOME bawaan. Sebagai alternatif, pilihan spesifik dapat diaktifkan di bawah "
308 | "ini."
309 |
310 | #: Settings.ui.h:58
311 | msgid "Use built-in theme"
312 | msgstr "Gunakan tema bawaan"
313 |
314 | #: Settings.ui.h:59
315 | msgid "Save space reducing padding and border radius."
316 | msgstr "Hemat ruang padding mengurangi dan radius border."
317 |
318 | #: Settings.ui.h:60
319 | msgid "Shrink the dash"
320 | msgstr "Penyusutan dash"
321 |
322 | #: Settings.ui.h:61
323 | msgid "Show a dot for each windows of the application."
324 | msgstr "Tampilkan titik untuk setiap jendela aplikasi."
325 |
326 | #: Settings.ui.h:62
327 | msgid "Show windows counter indicators"
328 | msgstr "Tampilkan indikator counter jendela"
329 |
330 | #: Settings.ui.h:63
331 | msgid "Set the background color for the dash."
332 | msgstr "Atur warna latar belakang untuk dash."
333 |
334 | #: Settings.ui.h:64
335 | msgid "Customize the dash color"
336 | msgstr "Sesuaikan warna dash."
337 |
338 | #: Settings.ui.h:65
339 | msgid "Tune the dash background opacity."
340 | msgstr "Cocokkan opacity latar belakang."
341 |
342 | #: Settings.ui.h:66
343 | msgid "Customize opacity"
344 | msgstr "Menyesuaikan opacity"
345 |
346 | #: Settings.ui.h:67
347 | msgid "Opacity"
348 | msgstr "Opacity"
349 |
350 | #: Settings.ui.h:68
351 | msgid "Force straight corner\n"
352 | msgstr "Paksa sudut lurus\n"
353 |
354 | #: Settings.ui.h:70
355 | msgid "Appearance"
356 | msgstr "Penampilan"
357 |
358 | #: Settings.ui.h:71
359 | msgid "version: "
360 | msgstr "versi: "
361 |
362 | #: Settings.ui.h:72
363 | msgid "Moves the dash out of the overview transforming it in a dock"
364 | msgstr "Memindahkan dash keluar dari ikhtisar yang mengubahnya di dock"
365 |
366 | #: Settings.ui.h:73
367 | msgid "Created by"
368 | msgstr "Dibuat oleh"
369 |
370 | #: Settings.ui.h:74
371 | msgid "Webpage"
372 | msgstr "Halaman web"
373 |
374 | #: Settings.ui.h:75
375 | msgid ""
376 | "This program comes with ABSOLUTELY NO WARRANTY.\n"
377 | "See the GNU General Public License, version 2 or later for details."
379 | msgstr ""
380 | "Program ini hadir dengan TIDAK ADA JAMINAN TIDAK "
381 | "BENAR.\n"
382 | "Lihat "
383 | "GNU General Public License, versi 2 atau yang lebih baru untuk "
384 | "detailnya. Span>"
385 |
386 | #: Settings.ui.h:77
387 | msgid "About"
388 | msgstr "Tentang"
389 |
390 | #: Settings.ui.h:78
391 | msgid "Show the dock by mouse hover on the screen edge."
392 | msgstr "Tunjukkan dock dengan mouse hover di tepi layar."
393 |
394 | #: Settings.ui.h:79
395 | msgid "Autohide"
396 | msgstr "Autohide"
397 |
398 | #: Settings.ui.h:80
399 | msgid "Push to show: require pressure to show the dock"
400 | msgstr "Tekan untuk tampilkan: butuh tekanan untuk menunjukkan dock"
401 |
402 | #: Settings.ui.h:81
403 | msgid "Enable in fullscreen mode"
404 | msgstr "Aktifkan dalam mode layar penuh"
405 |
406 | #: Settings.ui.h:82
407 | msgid "Show the dock when it doesn't obstruct application windows."
408 | msgstr "Tunjukkan dokk bila tidak menghalangi jendela aplikasi."
409 |
410 | #: Settings.ui.h:83
411 | msgid "Dodge windows"
412 | msgstr "Dodge jendela"
413 |
414 | #: Settings.ui.h:84
415 | msgid "All windows"
416 | msgstr "Semua jendela"
417 |
418 | #: Settings.ui.h:85
419 | msgid "Only focused application's windows"
420 | msgstr "Hanya fokus aplikasi jendela"
421 |
422 | #: Settings.ui.h:86
423 | msgid "Only maximized windows"
424 | msgstr "Hanya jendela yang maksimal"
425 |
426 | #: Settings.ui.h:87
427 | msgid "Animation duration (s)"
428 | msgstr "Durasi animasi (s)"
429 |
430 | #: Settings.ui.h:88
431 | msgid "0.000"
432 | msgstr "0.000"
433 |
434 | #: Settings.ui.h:89
435 | msgid "Show timeout (s)"
436 | msgstr "Tampilkan batas waktu (s)"
437 |
438 | #: Settings.ui.h:90
439 | msgid "Pressure threshold"
440 | msgstr "Ambang tekanan"
441 |
442 | #~ msgid ""
443 | #~ "With fixed icon size, only the edge of the dock and the Show "
444 | #~ "Applications icon are active."
445 | #~ msgstr ""
446 | #~ "Con la dimensione fissa delle icone, solo il bordo della dock e l'icona "
447 | #~ " Mostra Applicazioni sono attive."
448 |
449 | #~ msgid "Switch workspace by scrolling on the dock"
450 | #~ msgstr "Cambia spazio di lavoro scorrendo sulla dock"
451 |
--------------------------------------------------------------------------------
/po/ja.po:
--------------------------------------------------------------------------------
1 | # Dash to Dock master ja.po
2 | # Copyright (C) 2013-2017, 2019-2020 THE dash-to-dock'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the dash-to-dock package.
4 | # Jiro Matsuzawa , 2013.
5 | # Debonne Hooties , 2014-2017.
6 | # sicklylife , 2019-2020.
7 | # Ryo Nakano , 2019.
8 | #
9 | msgid ""
10 | msgstr ""
11 | "Project-Id-Version: dash-to-dock master\n"
12 | "Report-Msgid-Bugs-To: \n"
13 | "POT-Creation-Date: 2020-06-14 23:00+0900\n"
14 | "PO-Revision-Date: 2020-06-15 07:30+0900\n"
15 | "Last-Translator: sicklylife \n"
16 | "Language-Team: Japanese <>\n"
17 | "Language: ja\n"
18 | "MIME-Version: 1.0\n"
19 | "Content-Type: text/plain; charset=UTF-8\n"
20 | "Content-Transfer-Encoding: 8bit\n"
21 | "Plural-Forms: nplurals=1; plural=0;\n"
22 |
23 | #: appIcons.js:797
24 | msgid "All Windows"
25 | msgstr "ウィンドウプレビューの表示"
26 |
27 | #: appIcons.js:808
28 | msgid "New Window"
29 | msgstr "新しいウィンドウ"
30 |
31 | #: appIcons.js:823
32 | msgid "Launch using Dedicated Graphics Card"
33 | msgstr "専用のグラフィックカードを使用して起動"
34 |
35 | #: appIcons.js:851
36 | msgid "Remove from Favorites"
37 | msgstr "お気に入りから削除"
38 |
39 | #: appIcons.js:857
40 | msgid "Add to Favorites"
41 | msgstr "お気に入りに追加"
42 |
43 | #: appIcons.js:868
44 | msgid "Show Details"
45 | msgstr "詳細を表示"
46 |
47 | # ここの翻訳は GNOME Shell の訳が優先される様子
48 | #: appIcons.js:896 appIcons.js:914 Settings.ui.h:11
49 | msgid "Quit"
50 | msgstr "終了"
51 |
52 | # ここの「Quit」は GNOME Shell の訳に合わせた方が良さげ
53 | #: appIcons.js:916
54 | #, javascript-format
55 | msgid "Quit %d Windows"
56 | msgstr "%d 個のウィンドウを終了"
57 |
58 | #. Translators: %s is "Settings", which is automatically translated. You
59 | #. can also translate the full message if this fits better your language.
60 | #: appIcons.js:1134
61 | #, javascript-format
62 | msgid "Dash to Dock %s"
63 | msgstr "Dash to Dock の%s"
64 |
65 | #: appIcons.js:1134
66 | msgid "Settings"
67 | msgstr "設定"
68 |
69 | #: docking.js:1188
70 | msgid "Dash"
71 | msgstr "Dash"
72 |
73 | #: locations.js:65
74 | msgid "Trash"
75 | msgstr "ゴミ箱"
76 |
77 | #: locations.js:74
78 | msgid "Empty Trash"
79 | msgstr "ゴミ箱を空にする"
80 |
81 | #: locations.js:192
82 | msgid "Mount"
83 | msgstr "マウント"
84 |
85 | #: locations.js:235
86 | msgid "Eject"
87 | msgstr "取り出す"
88 |
89 | #: locations.js:240
90 | msgid "Unmount"
91 | msgstr "アンマウント"
92 |
93 | #: prefs.js:268
94 | msgid "Primary monitor"
95 | msgstr "プライマリーモニター"
96 |
97 | #: prefs.js:277 prefs.js:284
98 | msgid "Secondary monitor "
99 | msgstr "セカンダリーモニター"
100 |
101 | #: prefs.js:309 Settings.ui.h:28
102 | msgid "Right"
103 | msgstr "右"
104 |
105 | #: prefs.js:310 Settings.ui.h:25
106 | msgid "Left"
107 | msgstr "左"
108 |
109 | #: prefs.js:360
110 | msgid "Intelligent autohide customization"
111 | msgstr "インテリジェント表示の設定"
112 |
113 | #: prefs.js:367 prefs.js:560 prefs.js:616
114 | msgid "Reset to defaults"
115 | msgstr "既定値にリセット"
116 |
117 | #: prefs.js:553
118 | msgid "Show dock and application numbers"
119 | msgstr "ドック表示とアプリケーション番号"
120 |
121 | #: prefs.js:609
122 | msgid "Customize middle-click behavior"
123 | msgstr "中ボタンクリック時のアクション"
124 |
125 | #: prefs.js:692
126 | msgid "Customize running indicators"
127 | msgstr "インジケーターの表示設定"
128 |
129 | #: prefs.js:804 Settings.ui.h:74
130 | msgid "Customize opacity"
131 | msgstr "不透明度の調整"
132 |
133 | #: Settings.ui.h:1
134 | msgid ""
135 | "When set to minimize, double clicking minimizes all the windows of the "
136 | "application."
137 | msgstr ""
138 | "[ウィンドウの最小化] に設定したときは、アイコンをダブルクリックするとそのアプ"
139 | "リケーションのウィンドウをすべて最小化します。"
140 |
141 | #: Settings.ui.h:2
142 | msgid "Shift+Click action"
143 | msgstr "Shift + クリック時のアクション"
144 |
145 | #: Settings.ui.h:3
146 | msgid "Raise window"
147 | msgstr "ウィンドウの再表示"
148 |
149 | #: Settings.ui.h:4
150 | msgid "Minimize window"
151 | msgstr "ウィンドウの最小化"
152 |
153 | #: Settings.ui.h:5
154 | msgid "Launch new instance"
155 | msgstr "新しいウィンドウを開く"
156 |
157 | #: Settings.ui.h:6
158 | msgid "Cycle through windows"
159 | msgstr "ウィンドウの切り替え"
160 |
161 | #: Settings.ui.h:7
162 | msgid "Minimize or overview"
163 | msgstr "ウィンドウの最小化またはオーバービュー"
164 |
165 | #: Settings.ui.h:8
166 | msgid "Show window previews"
167 | msgstr "ウィンドウのプレビュー表示"
168 |
169 | #: Settings.ui.h:9
170 | msgid "Minimize or show previews"
171 | msgstr "ウィンドウの最小化またはプレビュー表示"
172 |
173 | #: Settings.ui.h:10
174 | msgid "Focus or show previews"
175 | msgstr "フォーカスまたはプレビュー表示"
176 |
177 | #: Settings.ui.h:12
178 | msgid "Behavior for Middle-Click."
179 | msgstr "中ボタンをクリックしたときの動作を設定します。"
180 |
181 | #: Settings.ui.h:13
182 | msgid "Middle-Click action"
183 | msgstr "中ボタンクリック時のアクション"
184 |
185 | #: Settings.ui.h:14
186 | msgid "Behavior for Shift+Middle-Click."
187 | msgstr "Shift を押しながら中ボタンをクリックしたときの動作を設定します。"
188 |
189 | #: Settings.ui.h:15
190 | msgid "Shift+Middle-Click action"
191 | msgstr "Shift + 中ボタンクリック時のアクション"
192 |
193 | #: Settings.ui.h:16
194 | msgid "Enable Unity7 like glossy backlit items"
195 | msgstr "Unity7 のような色付きのアイテム背景"
196 |
197 | #: Settings.ui.h:17
198 | msgid "Use dominant color"
199 | msgstr "ドミナントカラーを使用"
200 |
201 | #: Settings.ui.h:18
202 | msgid "Customize indicator style"
203 | msgstr "表示スタイルの設定"
204 |
205 | #: Settings.ui.h:19
206 | msgid "Color"
207 | msgstr "ボディ色"
208 |
209 | #: Settings.ui.h:20
210 | msgid "Border color"
211 | msgstr "縁取り色"
212 |
213 | #: Settings.ui.h:21
214 | msgid "Border width"
215 | msgstr "縁取り幅"
216 |
217 | #: Settings.ui.h:22
218 | msgid "Show the dock on"
219 | msgstr "ドックを表示するモニター"
220 |
221 | #: Settings.ui.h:23
222 | msgid "Show on all monitors"
223 | msgstr "すべてのモニターで表示"
224 |
225 | #: Settings.ui.h:24
226 | msgid "Position on screen"
227 | msgstr "表示位置"
228 |
229 | #: Settings.ui.h:26
230 | msgid "Bottom"
231 | msgstr "下"
232 |
233 | #: Settings.ui.h:27
234 | msgid "Top"
235 | msgstr "上"
236 |
237 | #: Settings.ui.h:29
238 | msgid ""
239 | "Hide the dock when it obstructs a window of the current application. More "
240 | "refined settings are available."
241 | msgstr ""
242 | "開いているウィンドウの邪魔にならないようドックの表示/非表示を自動的に切り替え"
243 | "ます。より洗練された表示設定も可能です。"
244 |
245 | #: Settings.ui.h:30
246 | msgid "Intelligent autohide"
247 | msgstr "インテリジェント表示"
248 |
249 | #: Settings.ui.h:31
250 | msgid "Dock size limit"
251 | msgstr "ドックサイズの上限"
252 |
253 | #: Settings.ui.h:32
254 | msgid "Panel mode: extend to the screen edge"
255 | msgstr "パネルモード (画面の端までドックを拡張)"
256 |
257 | #: Settings.ui.h:33
258 | msgid "Icon size limit"
259 | msgstr "アイコンサイズの上限"
260 |
261 | #: Settings.ui.h:34
262 | msgid "Fixed icon size: scroll to reveal other icons"
263 | msgstr "アイコンサイズの固定 (隠れたアイコンはスクロールで表示)"
264 |
265 | #: Settings.ui.h:35
266 | msgid "Position and size"
267 | msgstr "位置とサイズ"
268 |
269 | #: Settings.ui.h:36
270 | msgid "Show favorite applications"
271 | msgstr "お気に入りアプリケーションの表示"
272 |
273 | #: Settings.ui.h:37
274 | msgid "Show running applications"
275 | msgstr "実行中アプリケーションの表示"
276 |
277 | #: Settings.ui.h:38
278 | msgid "Isolate workspaces"
279 | msgstr "現在のワークスペースのみ表示"
280 |
281 | #: Settings.ui.h:39
282 | msgid "Isolate monitors"
283 | msgstr "現在のモニターのみ表示"
284 |
285 | #: Settings.ui.h:40
286 | msgid "Show open windows previews"
287 | msgstr "ウィンドウのプレビューを右クリックで表示可能にする"
288 |
289 | #: Settings.ui.h:41
290 | msgid ""
291 | "If disabled, these settings are accessible from gnome-tweak-tool or the "
292 | "extension website."
293 | msgstr ""
294 | "オフにしたときは gnome-tweak-tool または拡張機能ウェブサイトを経由してこの設"
295 | "定ダイアログにアクセスします。"
296 |
297 | #: Settings.ui.h:42
298 | msgid "Show Applications icon"
299 | msgstr "[アプリケーションを表示する] アイコンの表示"
300 |
301 | #: Settings.ui.h:43
302 | msgid "Move the applications button at the beginning of the dock"
303 | msgstr "ドックの先頭 (最上段または左端) に表示"
304 |
305 | #: Settings.ui.h:44
306 | msgid "Animate Show Applications"
307 | msgstr "アニメーションしながらアプリケーション一覧を表示"
308 |
309 | #: Settings.ui.h:45
310 | msgid "Show trash can"
311 | msgstr "ゴミ箱を表示"
312 |
313 | #: Settings.ui.h:46
314 | msgid "Show mounted volumes and devices"
315 | msgstr "マウントしたボリュームとデバイスを表示"
316 |
317 | #: Settings.ui.h:47
318 | msgid "Launchers"
319 | msgstr "ランチャー"
320 |
321 | #: Settings.ui.h:48
322 | msgid ""
323 | "Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
324 | "together with Shift and Ctrl."
325 | msgstr ""
326 | "Super キーと番号 (0-9) を同時に押すことでアプリケーションのアクティブ化を可"
327 | "能にします。\n"
328 | "Shift キーまたは Ctrl キーを Super キーとともに押しても機能します。"
329 |
330 | #: Settings.ui.h:49
331 | msgid "Use keyboard shortcuts to activate apps"
332 | msgstr "アプリのアクティブ化にキーボードショートカットを使用"
333 |
334 | #: Settings.ui.h:50
335 | msgid "Behaviour when clicking on the icon of a running application."
336 | msgstr "実行中アプリケーションのアイコンをクリックしたときの動作を設定します。"
337 |
338 | #: Settings.ui.h:51
339 | msgid "Click action"
340 | msgstr "クリック時のアクション"
341 |
342 | #: Settings.ui.h:52
343 | msgid "Minimize"
344 | msgstr "ウィンドウの最小化"
345 |
346 | #: Settings.ui.h:53
347 | msgid "Behaviour when scrolling on the icon of an application."
348 | msgstr ""
349 | "実行中アプリケーションのアイコン上でスクロールしたときの動作を設定します。"
350 |
351 | #: Settings.ui.h:54
352 | msgid "Scroll action"
353 | msgstr "スクロール時のアクション"
354 |
355 | #: Settings.ui.h:55
356 | msgid "Do nothing"
357 | msgstr "何もしない"
358 |
359 | #: Settings.ui.h:56
360 | msgid "Switch workspace"
361 | msgstr "ワークスペースの切り替え"
362 |
363 | #: Settings.ui.h:57
364 | msgid "Behavior"
365 | msgstr "動作"
366 |
367 | #: Settings.ui.h:58
368 | msgid ""
369 | "Few customizations meant to integrate the dock with the default GNOME theme. "
370 | "Alternatively, specific options can be enabled below."
371 | msgstr ""
372 | "この設定がオンのときは、お使いの GNOME テーマとの調和を図るためカスタマイズは"
373 | "無効になります。オフのときには以下のカスタマイズが可能です。"
374 |
375 | #: Settings.ui.h:59
376 | msgid "Use built-in theme"
377 | msgstr "ビルトインテーマの使用"
378 |
379 | #: Settings.ui.h:60
380 | msgid "Save space reducing padding and border radius."
381 | msgstr "境界線の太さとパディングを減らして表示域を小さくします。"
382 |
383 | #: Settings.ui.h:61
384 | msgid "Shrink the dash"
385 | msgstr "Dash の縮小表示"
386 |
387 | #: Settings.ui.h:62
388 | msgid "Customize windows counter indicators"
389 | msgstr "ウィンドウ数インジケーターの設定"
390 |
391 | #: Settings.ui.h:63
392 | msgid "Default"
393 | msgstr "デフォルト"
394 |
395 | #: Settings.ui.h:64
396 | msgid "Dots"
397 | msgstr ""
398 |
399 | #: Settings.ui.h:65
400 | msgid "Squares"
401 | msgstr ""
402 |
403 | #: Settings.ui.h:66
404 | msgid "Dashes"
405 | msgstr ""
406 |
407 | #: Settings.ui.h:67
408 | msgid "Segmented"
409 | msgstr ""
410 |
411 | #: Settings.ui.h:68
412 | msgid "Solid"
413 | msgstr ""
414 |
415 | #: Settings.ui.h:69
416 | msgid "Ciliora"
417 | msgstr ""
418 |
419 | #: Settings.ui.h:70
420 | msgid "Metro"
421 | msgstr ""
422 |
423 | #: Settings.ui.h:71
424 | msgid "Set the background color for the dash."
425 | msgstr "Dash の背景色を設定します"
426 |
427 | #: Settings.ui.h:72
428 | msgid "Customize the dash color"
429 | msgstr "Dash 背景色の設定"
430 |
431 | #: Settings.ui.h:73
432 | msgid "Tune the dash background opacity."
433 | msgstr "Dash 背景の不透明度を調整します。"
434 |
435 | #: Settings.ui.h:75
436 | msgid "Fixed"
437 | msgstr "固定"
438 |
439 | #: Settings.ui.h:76
440 | msgid "Dynamic"
441 | msgstr "動的"
442 |
443 | #: Settings.ui.h:77
444 | msgid "Opacity"
445 | msgstr "不透明度"
446 |
447 | #: Settings.ui.h:78
448 | msgid "Force straight corner"
449 | msgstr "角を丸めない"
450 |
451 | #: Settings.ui.h:79
452 | msgid "Appearance"
453 | msgstr "外観"
454 |
455 | #: Settings.ui.h:80
456 | msgid "version: "
457 | msgstr "バージョン: "
458 |
459 | #: Settings.ui.h:81
460 | msgid "Moves the dash out of the overview transforming it in a dock"
461 | msgstr ""
462 | "Dash をドック化してアクティビティ画面以外でも Dash 操作を可能にします。"
463 |
464 | #: Settings.ui.h:82
465 | msgid "Created by"
466 | msgstr "作者:"
467 |
468 | #: Settings.ui.h:83
469 | msgid "Webpage"
470 | msgstr "ウェブページ"
471 |
472 | #: Settings.ui.h:84
473 | msgid ""
474 | "This program comes with ABSOLUTELY NO WARRANTY.\n"
475 | "See the GNU General Public License, version 2 or later for details."
477 | msgstr ""
478 | "このプログラムに保証は一切ありません。\n"
479 | "詳しくは GNU 一般公衆ライセンス (GPL) バージョン 2 またはそれ以降のバージョン"
481 | "をご覧ください。"
482 |
483 | #: Settings.ui.h:86
484 | msgid "About"
485 | msgstr "情報"
486 |
487 | #: Settings.ui.h:87
488 | msgid "Customize minimum and maximum opacity values"
489 | msgstr "不透明度の最小値と最大値の設定"
490 |
491 | #: Settings.ui.h:88
492 | msgid "Minimum opacity"
493 | msgstr "最小不透明度"
494 |
495 | #: Settings.ui.h:89
496 | msgid "Maximum opacity"
497 | msgstr "最大不透明度"
498 |
499 | #: Settings.ui.h:90
500 | msgid "Number overlay"
501 | msgstr "番号の表示"
502 |
503 | #: Settings.ui.h:91
504 | msgid ""
505 | "Temporarily show the application numbers over the icons, corresponding to "
506 | "the shortcut."
507 | msgstr ""
508 | "ショートカットキーが押されたときに、アイコン上にアプリケーション番号を一時的"
509 | "に表示します。"
510 |
511 | #: Settings.ui.h:92
512 | msgid "Show the dock if it is hidden"
513 | msgstr "ドックが非表示なら一時的に表示"
514 |
515 | #: Settings.ui.h:93
516 | msgid ""
517 | "If using autohide, the dock will appear for a short time when triggering the "
518 | "shortcut."
519 | msgstr ""
520 | "ドックが表示されていない状態のとき、ショーカットキーで一時的にドックを表示し"
521 | "ます。"
522 |
523 | #: Settings.ui.h:94
524 | msgid "Shortcut for the options above"
525 | msgstr "上記設定のためのショートカットキー"
526 |
527 | #: Settings.ui.h:95
528 | msgid "Syntax: , , , "
529 | msgstr "表記法: , , , "
530 |
531 | #: Settings.ui.h:96
532 | msgid "Hide timeout (s)"
533 | msgstr "非表示までのタイムアウト (秒)"
534 |
535 | #: Settings.ui.h:97
536 | msgid "Show the dock by mouse hover on the screen edge."
537 | msgstr ""
538 | "ドックを表示したいとき、ポインターを画面端に移動するとドックが表示されます。"
539 |
540 | #: Settings.ui.h:98
541 | msgid "Autohide"
542 | msgstr "オンデマンド表示"
543 |
544 | #: Settings.ui.h:99
545 | msgid "Push to show: require pressure to show the dock"
546 | msgstr ""
547 | "押し込んで表示 (画面外にポインターを移動するようにマウスを動かして表示)"
548 |
549 | #: Settings.ui.h:100
550 | msgid "Enable in fullscreen mode"
551 | msgstr "フルスクリーンモード時でも表示"
552 |
553 | #: Settings.ui.h:101
554 | msgid "Show the dock when it doesn't obstruct application windows."
555 | msgstr ""
556 | "ドックを常に表示しますが、アプリケーションウィンドウと重なるときは表示しませ"
557 | "ん。"
558 |
559 | #: Settings.ui.h:102
560 | msgid "Dodge windows"
561 | msgstr "ウィンドウ重なり防止"
562 |
563 | #: Settings.ui.h:103
564 | msgid "All windows"
565 | msgstr "すべてのウィンドウが対象"
566 |
567 | #: Settings.ui.h:104
568 | msgid "Only focused application's windows"
569 | msgstr "フォーカスされたアプリケーションのウィンドウが対象"
570 |
571 | #: Settings.ui.h:105
572 | msgid "Only maximized windows"
573 | msgstr "最大化されたウィンドウが対象"
574 |
575 | #: Settings.ui.h:106
576 | msgid "Animation duration (s)"
577 | msgstr "アニメーション表示時間 (秒)"
578 |
579 | #: Settings.ui.h:107
580 | msgid "Show timeout (s)"
581 | msgstr "表示までのタイムアウト (秒)"
582 |
583 | #: Settings.ui.h:108
584 | msgid "Pressure threshold"
585 | msgstr "押し込み量 (ピクセル)"
586 |
--------------------------------------------------------------------------------
/po/nb.po:
--------------------------------------------------------------------------------
1 | # Norwegian Bokmål translation for Dash to Dock.
2 | # Copyright (C) 2018 Michele
3 | # This file is distributed under the same license as the dash-to-dock package.
4 | # Harald H. , 2018.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: Dash-to-Dock\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2018-02-28 09:47+0100\n"
11 | "PO-Revision-Date: 2018-03-02 11:02+0100\n"
12 | "Language-Team: \n"
13 | "MIME-Version: 1.0\n"
14 | "Content-Type: text/plain; charset=UTF-8\n"
15 | "Content-Transfer-Encoding: 8bit\n"
16 | "X-Generator: Poedit 1.8.7.1\n"
17 | "Last-Translator: Harald H. \n"
18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 | "Language: nb\n"
20 |
21 | #: prefs.js:131
22 | msgid "Primary monitor"
23 | msgstr "Primærskjerm"
24 |
25 | #: prefs.js:140 prefs.js:147
26 | msgid "Secondary monitor "
27 | msgstr "Sekundærskjerm"
28 |
29 | #: prefs.js:172 Settings.ui.h:26
30 | msgid "Right"
31 | msgstr "Høyre"
32 |
33 | #: prefs.js:173 Settings.ui.h:23
34 | msgid "Left"
35 | msgstr "Venstre"
36 |
37 | #: prefs.js:223
38 | msgid "Intelligent autohide customization"
39 | msgstr "Tilpass intelligent autoskjul"
40 |
41 | #: prefs.js:230 prefs.js:415 prefs.js:472
42 | msgid "Reset to defaults"
43 | msgstr "Tilbakestill til standard"
44 |
45 | #: prefs.js:408
46 | msgid "Show dock and application numbers"
47 | msgstr "Vis dokk og programnumre"
48 |
49 | #: prefs.js:465
50 | msgid "Customize middle-click behavior"
51 | msgstr "Tilpass oppførsel for mellomklikk"
52 |
53 | #: prefs.js:548
54 | msgid "Customize running indicators"
55 | msgstr "Tilpass kjørende indikatorer"
56 |
57 | #: prefs.js:662
58 | #: Settings.ui.h:70
59 | msgid "Customize opacity"
60 | msgstr "Tilpass gjennomsiktighet"
61 |
62 | #: appIcons.js:763
63 | msgid "All Windows"
64 | msgstr "Alle vinduer"
65 |
66 | #. Translators: %s is "Settings", which is automatically translated. You
67 | #. can also translate the full message if this fits better your language.
68 | #: appIcons.js:1069
69 | #, javascript-format
70 | msgid "Dash to Dock %s"
71 | msgstr "Dash to Dock %s"
72 |
73 | #: Settings.ui.h:1
74 | msgid ""
75 | "When set to minimize, double clicking minimizes all the windows of the "
76 | "application."
77 | msgstr ""
78 | "Når satt til minimer vil dobbeltklikking minimere alle åpne instanser av "
79 | "programmet."
80 |
81 | #: Settings.ui.h:2
82 | msgid "Shift+Click action"
83 | msgstr "Handling for Shift + klikk"
84 |
85 | #: Settings.ui.h:3
86 | msgid "Raise window"
87 | msgstr "Fremhev vindu"
88 |
89 | #: Settings.ui.h:4
90 | msgid "Minimize window"
91 | msgstr "Minimer vindu"
92 |
93 | #: Settings.ui.h:5
94 | msgid "Launch new instance"
95 | msgstr "Åpne ny instans"
96 |
97 | #: Settings.ui.h:6
98 | msgid "Cycle through windows"
99 | msgstr "Veksle mellom vinduer"
100 |
101 | #: Settings.ui.h:7
102 | msgid "Minimize or overview"
103 | msgstr "Minimer eller oversikt"
104 |
105 | #: Settings.ui.h:8
106 | msgid "Show window previews"
107 | msgstr "Vis forhåndsvisning"
108 |
109 | #: Settings.ui.h:9
110 | msgid "Quit"
111 | msgstr "Avslutt"
112 |
113 | #: Settings.ui.h:10
114 | msgid "Behavior for Middle-Click."
115 | msgstr "Oppførsel for mellomklikk."
116 |
117 | #: Settings.ui.h:11
118 | msgid "Middle-Click action"
119 | msgstr "Mellomklikk"
120 |
121 | #: Settings.ui.h:12
122 | msgid "Behavior for Shift+Middle-Click."
123 | msgstr "Oppførsel for Shift + mellomklikk."
124 |
125 | #: Settings.ui.h:13
126 | msgid "Shift+Middle-Click action"
127 | msgstr "Shift + mellomklikk"
128 |
129 | #: Settings.ui.h:14
130 | msgid "Enable Unity7 like glossy backlit items"
131 | msgstr "Aktiver Unity7-lignende bakgrunnsglans"
132 |
133 | #: Settings.ui.h:15
134 | msgid "Use dominant color"
135 | msgstr "Bruk dominerende farge"
136 |
137 | #: Settings.ui.h:16
138 | msgid "Customize indicator style"
139 | msgstr "Tilpass indikatorstil"
140 |
141 | #: Settings.ui.h:17
142 | msgid "Color"
143 | msgstr "Farge"
144 |
145 | #: Settings.ui.h:18
146 | msgid "Border color"
147 | msgstr "Kantfarge"
148 |
149 | #: Settings.ui.h:19
150 | msgid "Border width"
151 | msgstr "Kantbredde"
152 |
153 | #: Settings.ui.h:20
154 | msgid "Show the dock on"
155 | msgstr "Vis dokken på"
156 |
157 | #: Settings.ui.h:21
158 | msgid "Show on all monitors"
159 | msgstr "Vis på alle skjermer"
160 |
161 | #: Settings.ui.h:22
162 | msgid "Position on screen"
163 | msgstr "Skjermposisjon"
164 |
165 | #: Settings.ui.h:24
166 | msgid "Bottom"
167 | msgstr "Bunn"
168 |
169 | #: Settings.ui.h:25
170 | msgid "Top"
171 | msgstr "Topp"
172 |
173 | #: Settings.ui.h:27
174 | msgid ""
175 | "Hide the dock when it obstructs a window of the current application. More "
176 | "refined settings are available."
177 | msgstr ""
178 | "Skjul dokken når den forstyrrer et aktivt programvindu. Flere innstillinger "
179 | "er tilgjengelig."
180 |
181 | #: Settings.ui.h:28
182 | msgid "Intelligent autohide"
183 | msgstr "Intelligent autoskjul"
184 |
185 | #: Settings.ui.h:29
186 | msgid "Dock size limit"
187 | msgstr "Maks dokkstørrelse"
188 |
189 | #: Settings.ui.h:30
190 | msgid "Panel mode: extend to the screen edge"
191 | msgstr "Panelmodus: strekker seg til skjermkanten"
192 |
193 | #: Settings.ui.h:31
194 | msgid "Icon size limit"
195 | msgstr "Ikonstørrelse"
196 |
197 | #: Settings.ui.h:32
198 | msgid "Fixed icon size: scroll to reveal other icons"
199 | msgstr "Fast ikonstørrelse: rull for vise andre ikoner"
200 |
201 | #: Settings.ui.h:33
202 | msgid "Position and size"
203 | msgstr "Posisjon og størrelse"
204 |
205 | #: Settings.ui.h:34
206 | msgid "Show favorite applications"
207 | msgstr "Vis favorittprogrammer"
208 |
209 | #: Settings.ui.h:35
210 | msgid "Show running applications"
211 | msgstr "Vis kjørende programmer"
212 |
213 | #: Settings.ui.h:36
214 | msgid "Isolate workspaces"
215 | msgstr "Isoler arbeidsområder"
216 |
217 | #: Settings.ui.h:37
218 | msgid "Isolate monitors"
219 | msgstr "Isoler skjermer"
220 |
221 | #: Settings.ui.h:38
222 | msgid "Show open windows previews"
223 | msgstr "Vis forhåndsvisning av åpne vinduer"
224 |
225 | #: Settings.ui.h:39
226 | msgid ""
227 | "If disabled, these settings are accessible from gnome-tweak-tool or the "
228 | "extension website."
229 | msgstr ""
230 | "Om deaktivert er disse innstillingene tilgjengelig i gnome-tweak-tool eller "
231 | "på nettsiden for utvidelser."
232 |
233 | #: Settings.ui.h:40
234 | msgid "Show Applications icon"
235 | msgstr "Vis programmer ikon"
236 |
237 | #: Settings.ui.h:41
238 | msgid "Move the applications button at the beginning of the dock"
239 | msgstr "Flytt programmer-knappen til starten av dokken"
240 |
241 | #: Settings.ui.h:42
242 | msgid "Animate Show Applications"
243 | msgstr "Animere Vis programmer"
244 |
245 | #: Settings.ui.h:43
246 | msgid "Launchers"
247 | msgstr "Utløsere"
248 |
249 | #: Settings.ui.h:44
250 | msgid ""
251 | "Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
252 | "together with Shift and Ctrl."
253 | msgstr ""
254 | "Bruk Super+(0-9) som snarvei for å aktivere apper. Den kan også brukes i "
255 | "kombinasjon med Shift og Ctrl."
256 |
257 | #: Settings.ui.h:45
258 | msgid "Use keyboard shortcuts to activate apps"
259 | msgstr "Bruk tastatursnarveier for å åpne apper"
260 |
261 | #: Settings.ui.h:46
262 | msgid "Behaviour when clicking on the icon of a running application."
263 | msgstr "Oppførsel når du klikker på ikonet for et åpent program."
264 |
265 | #: Settings.ui.h:47
266 | msgid "Click action"
267 | msgstr "Klikkhandling"
268 |
269 | #: Settings.ui.h:48
270 | msgid "Minimize"
271 | msgstr "Minimer"
272 |
273 | #: Settings.ui.h:49
274 | msgid "Behaviour when scrolling on the icon of an application."
275 | msgstr "Oppførsel ved rulling over et programikon."
276 |
277 | #: Settings.ui.h:50
278 | msgid "Scroll action"
279 | msgstr "Rullehandling"
280 |
281 | #: Settings.ui.h:51
282 | msgid "Do nothing"
283 | msgstr "Ikke gjør noe"
284 |
285 | #: Settings.ui.h:52
286 | msgid "Switch workspace"
287 | msgstr "Bytt arbeidsområde"
288 |
289 | #: Settings.ui.h:53
290 | msgid "Behavior"
291 | msgstr "Oppførsel"
292 |
293 | #: Settings.ui.h:54
294 | msgid ""
295 | "Few customizations meant to integrate the dock with the default GNOME theme. "
296 | "Alternatively, specific options can be enabled below."
297 | msgstr ""
298 | "Enkelte tilpasninger som forsøker å integrere dokken med det standard GNOME-"
299 | "temaet. Alternativt kan bestemte valg aktiveres nedenfor."
300 |
301 | #: Settings.ui.h:55
302 | msgid "Use built-in theme"
303 | msgstr "Bruk innebygget tema"
304 |
305 | #: Settings.ui.h:56
306 | msgid "Save space reducing padding and border radius."
307 | msgstr "Spar plass ved å redusere utfylling og kant-radius."
308 |
309 | #: Settings.ui.h:57
310 | msgid "Shrink the dash"
311 | msgstr "Krymp dash"
312 |
313 | #: Settings.ui.h:58
314 | msgid "Customize windows counter indicators"
315 | msgstr "Tilpass vinduenes nummer-indikatorer"
316 |
317 | #: Settings.ui.h:59
318 | msgid "Default"
319 | msgstr "Standard"
320 |
321 | #: Settings.ui.h:60
322 | msgid "Dots"
323 | msgstr "Prikker"
324 |
325 | #: Settings.ui.h:61
326 | msgid "Squares"
327 | msgstr "Firkanter"
328 |
329 | #: Settings.ui.h:62
330 | msgid "Dashes"
331 | msgstr "Streker"
332 |
333 | #: Settings.ui.h:63
334 | msgid "Segmented"
335 | msgstr "Segmentert"
336 |
337 | #: Settings.ui.h:64
338 | msgid "Solid"
339 | msgstr "Solid"
340 |
341 | #: Settings.ui.h:65
342 | msgid "Ciliora"
343 | msgstr "Ciliora"
344 |
345 | #: Settings.ui.h:66
346 | msgid "Metro"
347 | msgstr "Metro"
348 |
349 | #: Settings.ui.h:67
350 | msgid "Set the background color for the dash."
351 | msgstr "Avgjør bakgrunnsfargen."
352 |
353 | #: Settings.ui.h:68
354 | msgid "Customize the dash color"
355 | msgstr "Tilpass fargen"
356 |
357 | #: Settings.ui.h:69
358 | msgid "Tune the dash background opacity."
359 | msgstr "Justere bakgrunnens gjennomsiktighet."
360 |
361 | #: Settings.ui.h:71
362 | msgid "Fixed"
363 | msgstr "Fast"
364 |
365 | #: Settings.ui.h:72
366 | msgid "Adaptive"
367 | msgstr "Adaptiv"
368 |
369 | #: Settings.ui.h:73
370 | msgid "Dynamic"
371 | msgstr "Dynamisk"
372 |
373 | #: Settings.ui.h:74
374 | msgid "Opacity"
375 | msgstr "Gjennomsiktighet"
376 |
377 | #: Settings.ui.h:75
378 | msgid "Force straight corner\n"
379 | msgstr "Tving rette hjørner\n"
380 |
381 | #: Settings.ui.h:77
382 | msgid "Appearance"
383 | msgstr "Utseende"
384 |
385 | #: Settings.ui.h:78
386 | msgid "version: "
387 | msgstr "versjon: "
388 |
389 | #: Settings.ui.h:79
390 | msgid "Moves the dash out of the overview transforming it in a dock"
391 | msgstr "Flytter dash ut av oversikten og omformer den til en dokk"
392 |
393 | #: Settings.ui.h:80
394 | msgid "Created by"
395 | msgstr "Laget av"
396 |
397 | #: Settings.ui.h:81
398 | msgid "Webpage"
399 | msgstr "Nettside"
400 |
401 | #: Settings.ui.h:82
402 | msgid ""
403 | "This program comes with ABSOLUTELY NO WARRANTY.\n"
404 | "See the GNU General Public License, version 2 or later for details."
406 | msgstr ""
407 | "Dette programmet leveres med ABSOLUTT INGEN GARANTI.\n"
408 | "Se GNU "
409 | "General Public License, versjon 2 eller senere for detaljer."
410 |
411 | #: Settings.ui.h:84
412 | msgid "About"
413 | msgstr "Om"
414 |
415 | #: Settings.ui.h:85
416 | msgid "Customize minimum and maximum opacity values"
417 | msgstr "Tilpass verdier for minimum og maks gjennomsiktighet"
418 |
419 | #: Settings.ui.h:86
420 | msgid "Minimum opacity"
421 | msgstr "Minimum gjennomsiktighet"
422 |
423 | #: Settings.ui.h:87
424 | msgid "Maximum opacity"
425 | msgstr "Maksimum gjennomsiktighet"
426 |
427 | #: Settings.ui.h:88
428 | msgid "Number overlay"
429 | msgstr "Nummerert overlag"
430 |
431 | #: Settings.ui.h:89
432 | msgid ""
433 | "Temporarily show the application numbers over the icons, corresponding to "
434 | "the shortcut."
435 | msgstr "Midlertidig vis programnummer over ikoner, som svarer til snarveien."
436 |
437 | #: Settings.ui.h:90
438 | msgid "Show the dock if it is hidden"
439 | msgstr "Vis dokken om den er skjult"
440 |
441 | #: Settings.ui.h:91
442 | msgid ""
443 | "If using autohide, the dock will appear for a short time when triggering the "
444 | "shortcut."
445 | msgstr ""
446 | "Om autoskjul er i bruk vil dokken vises en kort stund når snarveien utløses."
447 |
448 | #: Settings.ui.h:92
449 | msgid "Shortcut for the options above"
450 | msgstr "Snarvei for valgene ovenfor"
451 |
452 | #: Settings.ui.h:93
453 | msgid "Syntax: , , , "
454 | msgstr "Syntaks: , , , "
455 |
456 | #: Settings.ui.h:94
457 | msgid "Hide timeout (s)"
458 | msgstr "Skjuleperiode (s)"
459 |
460 | #: Settings.ui.h:95
461 | msgid "Show the dock by mouse hover on the screen edge."
462 | msgstr "Vis dokken når musepekeren holdes langs skjermkanten."
463 |
464 | #: Settings.ui.h:96
465 | msgid "Autohide"
466 | msgstr "Autoskjul"
467 |
468 | #: Settings.ui.h:97
469 | msgid "Push to show: require pressure to show the dock"
470 | msgstr "Dytt for å vise: krev et økt trykk for å vise dokken"
471 |
472 | #: Settings.ui.h:98
473 | msgid "Enable in fullscreen mode"
474 | msgstr "Aktiver i fullskjermmodus"
475 |
476 | #: Settings.ui.h:99
477 | msgid "Show the dock when it doesn't obstruct application windows."
478 | msgstr "Vis dokken når den ikke forstyrrer programvinduer."
479 |
480 | #: Settings.ui.h:100
481 | msgid "Dodge windows"
482 | msgstr "Smett unna vinduer"
483 |
484 | #: Settings.ui.h:101
485 | msgid "All windows"
486 | msgstr "Alle vinduer"
487 |
488 | #: Settings.ui.h:102
489 | msgid "Only focused application's windows"
490 | msgstr "Kun fokuserte programvinduer"
491 |
492 | #: Settings.ui.h:103
493 | msgid "Only maximized windows"
494 | msgstr "Kun maksimerte programvinduer"
495 |
496 | #: Settings.ui.h:104
497 | msgid "Animation duration (s)"
498 | msgstr "Animasjonsvarighet (s)"
499 |
500 | #: Settings.ui.h:105
501 | msgid "Show timeout (s)"
502 | msgstr "Visningslengde (s)"
503 |
504 | #: Settings.ui.h:106
505 | msgid "Pressure threshold"
506 | msgstr "Trykkterskel"
507 |
--------------------------------------------------------------------------------
/po/pt.po:
--------------------------------------------------------------------------------
1 | # Dash to Dock portuguese translation.
2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the Dash to Dock package.
4 | # Carlos Alberto Junior Spohr Poletto , 2012.
5 | # Hugo Carvalho , 2021.
6 | #
7 | msgid ""
8 | msgstr ""
9 | "Project-Id-Version: Dash to Dock\n"
10 | "Report-Msgid-Bugs-To: \n"
11 | "POT-Creation-Date: 2019-03-06 01:57-0600\n"
12 | "PO-Revision-Date: 2021-11-06 15:25+0000\n"
13 | "Last-Translator: Hugo Carvalho \n"
14 | "Language-Team: Portuguese\n"
15 | "Language: pt\n"
16 | "MIME-Version: 1.0\n"
17 | "Content-Type: text/plain; charset=UTF-8\n"
18 | "Content-Transfer-Encoding: 8bit\n"
19 | "X-Generator: Poedit 3.0\n"
20 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
21 |
22 | #: prefs.js:264
23 | msgid "Primary monitor"
24 | msgstr "Monitor principal"
25 |
26 | #: prefs.js:273 prefs.js:280
27 | msgid "Secondary monitor "
28 | msgstr "Monitor secundário "
29 |
30 | #: prefs.js:305 Settings.ui.h:28
31 | msgid "Right"
32 | msgstr "Direita"
33 |
34 | #: prefs.js:306 Settings.ui.h:25
35 | msgid "Left"
36 | msgstr "Esquerda"
37 |
38 | #: prefs.js:356
39 | msgid "Intelligent autohide customization"
40 | msgstr "Personalização da ocultação automática inteligente"
41 |
42 | #: prefs.js:363 prefs.js:548 prefs.js:604
43 | msgid "Reset to defaults"
44 | msgstr "Repor predefinições"
45 |
46 | #: prefs.js:541
47 | msgid "Show dock and application numbers"
48 | msgstr "Mostrar os números da dock e aplicações"
49 |
50 | #: prefs.js:597
51 | msgid "Customize middle-click behavior"
52 | msgstr "Personalizar comportamento do clique do meio"
53 |
54 | #: prefs.js:680
55 | msgid "Customize running indicators"
56 | msgstr "Personalizar indicadores de execução"
57 |
58 | #: prefs.js:792 Settings.ui.h:72
59 | msgid "Customize opacity"
60 | msgstr "Personalizar opacidade"
61 |
62 | #: appIcons.js:790
63 | msgid "All Windows"
64 | msgstr "Todas as janelas"
65 |
66 | #. Translators: %s is "Settings", which is automatically translated. You
67 | #. can also translate the full message if this fits better your language.
68 | #: appIcons.js:1092
69 | #, javascript-format
70 | msgid "Dash to Dock %s"
71 | msgstr "%s do Dash to Dock"
72 |
73 | #: Settings.ui.h:1
74 | msgid ""
75 | "When set to minimize, double clicking minimizes all the windows of the "
76 | "application."
77 | msgstr ""
78 | "Quando definido para minimizar, o duplo clique minimiza todas as janelas da "
79 | "aplicação."
80 |
81 | #: Settings.ui.h:2
82 | msgid "Shift+Click action"
83 | msgstr "Ação de Shift+Clique"
84 |
85 | #: Settings.ui.h:3
86 | msgid "Raise window"
87 | msgstr "Levantar janela"
88 |
89 | #: Settings.ui.h:4
90 | msgid "Minimize window"
91 | msgstr "Minimizar janela"
92 |
93 | #: Settings.ui.h:5
94 | msgid "Launch new instance"
95 | msgstr "Abrir nova janela"
96 |
97 | #: Settings.ui.h:6
98 | msgid "Cycle through windows"
99 | msgstr "Percorrer janelas"
100 |
101 | #: Settings.ui.h:7
102 | msgid "Minimize or overview"
103 | msgstr "Minimizar ou antever"
104 |
105 | #: Settings.ui.h:8
106 | msgid "Show window previews"
107 | msgstr "Mostrar antevisão das janelas abertas"
108 |
109 | #: Settings.ui.h:9
110 | msgid "Minimize or show previews"
111 | msgstr "Minimizar ou antever"
112 |
113 | #: Settings.ui.h:10
114 | msgid "Focus or show previews"
115 | msgstr "Focar ou antever"
116 |
117 | #: Settings.ui.h:11
118 | msgid "Quit"
119 | msgstr "Sair"
120 |
121 | #: Settings.ui.h:12
122 | msgid "Behavior for Middle-Click."
123 | msgstr "Comportamento do clique do meio."
124 |
125 | #: Settings.ui.h:13
126 | msgid "Middle-Click action"
127 | msgstr "Ação do clique do meio"
128 |
129 | #: Settings.ui.h:14
130 | msgid "Behavior for Shift+Middle-Click."
131 | msgstr "Comportamento do Shift+Clique do meio."
132 |
133 | #: Settings.ui.h:15
134 | msgid "Shift+Middle-Click action"
135 | msgstr "Ação do Shift+Clique do meio"
136 |
137 | #: Settings.ui.h:16
138 | msgid "Enable Unity7 like glossy backlit items"
139 | msgstr "Usar efeito polido no fundo (estilo Unity7)"
140 |
141 | #: Settings.ui.h:17
142 | msgid "Use dominant color"
143 | msgstr "Usar cor dominante"
144 |
145 | #: Settings.ui.h:18
146 | msgid "Customize indicator style"
147 | msgstr "Personalizar indicadores"
148 |
149 | #: Settings.ui.h:19
150 | msgid "Color"
151 | msgstr "Cor"
152 |
153 | #: Settings.ui.h:20
154 | msgid "Border color"
155 | msgstr "Cor da borda"
156 |
157 | #: Settings.ui.h:21
158 | msgid "Border width"
159 | msgstr "Largura da borda"
160 |
161 | #: Settings.ui.h:22
162 | msgid "Show the dock on"
163 | msgstr "Mostrar a dock em"
164 |
165 | #: Settings.ui.h:23
166 | msgid "Show on all monitors"
167 | msgstr "Mostrar em todos os monitores"
168 |
169 | #: Settings.ui.h:24
170 | msgid "Position on screen"
171 | msgstr "Posição no ecrã"
172 |
173 | #: Settings.ui.h:26
174 | msgid "Bottom"
175 | msgstr "Em baixo"
176 |
177 | #: Settings.ui.h:27
178 | msgid "Top"
179 | msgstr "Em cima"
180 |
181 | #: Settings.ui.h:29
182 | msgid ""
183 | "Hide the dock when it obstructs a window of the current application. More "
184 | "refined settings are available."
185 | msgstr ""
186 | "Ocultar a dock quando esta obstruir uma janela da aplicação atual. Estão "
187 | "disponíveis definições mais detalhadas."
188 |
189 | #: Settings.ui.h:30
190 | msgid "Intelligent autohide"
191 | msgstr "Ocultação inteligente"
192 |
193 | #: Settings.ui.h:31
194 | msgid "Dock size limit"
195 | msgstr "Limite do tamanho da dock"
196 |
197 | #: Settings.ui.h:32
198 | msgid "Panel mode: extend to the screen edge"
199 | msgstr "Modo painel: expandir até ao limite do ecrã"
200 |
201 | #: Settings.ui.h:33
202 | msgid "Icon size limit"
203 | msgstr "Limite do tamanho dos ícones"
204 |
205 | #: Settings.ui.h:34
206 | msgid "Fixed icon size: scroll to reveal other icons"
207 | msgstr "Tamanho fixo dos ícones: scroll para revelar outros ícones"
208 |
209 | #: Settings.ui.h:35
210 | msgid "Position and size"
211 | msgstr "Posição e dimensão"
212 |
213 | #: Settings.ui.h:36
214 | msgid "Show favorite applications"
215 | msgstr "Mostrar aplicações favoritas"
216 |
217 | #: Settings.ui.h:37
218 | msgid "Show running applications"
219 | msgstr "Mostrar aplicações em execução"
220 |
221 | #: Settings.ui.h:38
222 | msgid "Isolate workspaces"
223 | msgstr "Isolar áreas de trabalho"
224 |
225 | #: Settings.ui.h:39
226 | msgid "Isolate monitors"
227 | msgstr "Isolar monitores"
228 |
229 | #: Settings.ui.h:40
230 | msgid "Show open windows previews"
231 | msgstr "Mostrar antevisão das janelas abertas"
232 |
233 | #: Settings.ui.h:41
234 | msgid ""
235 | "If disabled, these settings are accessible from gnome-tweak-tool or the "
236 | "extension website."
237 | msgstr ""
238 | "Se desativadas, estas definições estão acessíveis através do gnome-tweak-"
239 | "tool ou no site das extensões."
240 |
241 | #: Settings.ui.h:42
242 | msgid "Show Applications icon"
243 | msgstr "Mostrar ícone das Aplicações"
244 |
245 | #: Settings.ui.h:43
246 | msgid "Move the applications button at the beginning of the dock"
247 | msgstr "Mover o botão das aplicações para o início da dock"
248 |
249 | #: Settings.ui.h:44
250 | msgid "Animate Show Applications"
251 | msgstr "Animar Mostrar aplicações"
252 |
253 | #: Settings.ui.h:45
254 | msgid "Launchers"
255 | msgstr "Lançadores"
256 |
257 | #: Settings.ui.h:46
258 | msgid ""
259 | "Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
260 | "together with Shift and Ctrl."
261 | msgstr ""
262 | "Usar Super+(0-9) como atalhos para as aplicações. Também pode ser usado com "
263 | "Shift e Ctrl."
264 |
265 | #: Settings.ui.h:47
266 | msgid "Use keyboard shortcuts to activate apps"
267 | msgstr "Usar atalhos de teclado para aplicações"
268 |
269 | #: Settings.ui.h:48
270 | msgid "Behaviour when clicking on the icon of a running application."
271 | msgstr "Comportamento do clique no ícone de uma aplicação em execução."
272 |
273 | #: Settings.ui.h:49
274 | msgid "Click action"
275 | msgstr "Ação do clique"
276 |
277 | #: Settings.ui.h:50
278 | msgid "Minimize"
279 | msgstr "Minimizar"
280 |
281 | #: Settings.ui.h:51
282 | msgid "Behaviour when scrolling on the icon of an application."
283 | msgstr "Comportamento do scroll no ícone de uma aplicação."
284 |
285 | #: Settings.ui.h:52
286 | msgid "Scroll action"
287 | msgstr "Ação do scroll"
288 |
289 | #: Settings.ui.h:53
290 | msgid "Do nothing"
291 | msgstr "Não fazer nada"
292 |
293 | #: Settings.ui.h:54
294 | msgid "Switch workspace"
295 | msgstr "Alternar espaço de trabalho"
296 |
297 | #: Settings.ui.h:55
298 | msgid "Behavior"
299 | msgstr "Comportamento"
300 |
301 | #: Settings.ui.h:56
302 | msgid ""
303 | "Few customizations meant to integrate the dock with the default GNOME theme. "
304 | "Alternatively, specific options can be enabled below."
305 | msgstr ""
306 | "Menos opções visando a integração da dock com o tema predefinido do GNOME. "
307 | "Alternativamente, opções mais detalhadas podem ser ativadas abaixo."
308 |
309 | #: Settings.ui.h:57
310 | msgid "Use built-in theme"
311 | msgstr "Usar tema embutido"
312 |
313 | #: Settings.ui.h:58
314 | msgid "Save space reducing padding and border radius."
315 | msgstr "Poupar espaço reduzindo o preenchimento e as bordas."
316 |
317 | #: Settings.ui.h:59
318 | msgid "Shrink the dash"
319 | msgstr "Encolher a dock"
320 |
321 | #: Settings.ui.h:60
322 | msgid "Customize windows counter indicators"
323 | msgstr "Mostrar indicador com contagem de janelas"
324 |
325 | #: Settings.ui.h:61
326 | msgid "Default"
327 | msgstr "Predefinição"
328 |
329 | #: Settings.ui.h:62
330 | msgid "Dots"
331 | msgstr "Pontos"
332 |
333 | #: Settings.ui.h:63
334 | msgid "Squares"
335 | msgstr "Quadrados"
336 |
337 | #: Settings.ui.h:64
338 | msgid "Dashes"
339 | msgstr "Linhas"
340 |
341 | #: Settings.ui.h:65
342 | msgid "Segmented"
343 | msgstr "Segmentado"
344 |
345 | #: Settings.ui.h:66
346 | msgid "Solid"
347 | msgstr "Sólido"
348 |
349 | #: Settings.ui.h:67
350 | msgid "Ciliora"
351 | msgstr "Ciliora"
352 |
353 | #: Settings.ui.h:68
354 | msgid "Metro"
355 | msgstr "Metro"
356 |
357 | #: Settings.ui.h:69
358 | msgid "Set the background color for the dash."
359 | msgstr "Definir a cor de fundo do painel."
360 |
361 | #: Settings.ui.h:70
362 | msgid "Customize the dash color"
363 | msgstr "Personalizar a cor do painel"
364 |
365 | #: Settings.ui.h:71
366 | msgid "Tune the dash background opacity."
367 | msgstr "Afinar a cor de fundo do painel."
368 |
369 | #: Settings.ui.h:73
370 | msgid "Fixed"
371 | msgstr "Fixo"
372 |
373 | #: Settings.ui.h:74
374 | msgid "Dynamic"
375 | msgstr "Dinâmico"
376 |
377 | #: Settings.ui.h:75
378 | msgid "Opacity"
379 | msgstr "Opacidade"
380 |
381 | #: Settings.ui.h:76
382 | msgid "Force straight corner\n"
383 | msgstr "Forçar cantos retos\n"
384 |
385 | #: Settings.ui.h:78
386 | msgid "Appearance"
387 | msgstr "Aparência"
388 |
389 | #: Settings.ui.h:79
390 | msgid "version: "
391 | msgstr "versão: "
392 |
393 | #: Settings.ui.h:80
394 | msgid "Moves the dash out of the overview transforming it in a dock"
395 | msgstr "Retira o painel da vista de Atividades, tornando-o numa dock"
396 |
397 | #: Settings.ui.h:81
398 | msgid "Created by"
399 | msgstr "Criado por"
400 |
401 | #: Settings.ui.h:82
402 | msgid "Webpage"
403 | msgstr "Página web"
404 |
405 | #: Settings.ui.h:83
406 | msgid ""
407 | "This program comes with ABSOLUTELY NO WARRANTY.\n"
408 | "See the GNU General Public License, version 2 or later for details."
410 | msgstr ""
411 | "Este programa é distribuído SEM QUALQUER GARANTIA.\n"
412 | "Veja a Licença Pública Geral GNU, versão 2 ou superior para mais detalhes."
414 | "span>"
415 |
416 | #: Settings.ui.h:85
417 | msgid "About"
418 | msgstr "Acerca"
419 |
420 | #: Settings.ui.h:86
421 | msgid "Customize minimum and maximum opacity values"
422 | msgstr "Personalizar valor mínimo e máximo da opacidade"
423 |
424 | #: Settings.ui.h:87
425 | msgid "Minimum opacity"
426 | msgstr "Opacidade mínima"
427 |
428 | #: Settings.ui.h:88
429 | msgid "Maximum opacity"
430 | msgstr "Opacidade máxima"
431 |
432 | #: Settings.ui.h:89
433 | msgid "Number overlay"
434 | msgstr "Números sobrepostos"
435 |
436 | #: Settings.ui.h:90
437 | msgid ""
438 | "Temporarily show the application numbers over the icons, corresponding to "
439 | "the shortcut."
440 | msgstr ""
441 | "Mostrar temporariamente o número das aplicações sobre os ícones, "
442 | "correspondendo os atalhos."
443 |
444 | #: Settings.ui.h:91
445 | msgid "Show the dock if it is hidden"
446 | msgstr "Mostrar a doca se estiver ocultada"
447 |
448 | #: Settings.ui.h:92
449 | msgid ""
450 | "If using autohide, the dock will appear for a short time when triggering the "
451 | "shortcut."
452 | msgstr ""
453 | "Se a ocultação inteligente estiver ativa, a dock aparecerá temporariamente "
454 | "ao utilizar o atalho."
455 |
456 | #: Settings.ui.h:93
457 | msgid "Shortcut for the options above"
458 | msgstr "Atalho para as opções acima"
459 |
460 | #: Settings.ui.h:94
461 | msgid "Syntax: , , , "
462 | msgstr "Síntaxe: , , , "
463 |
464 | #: Settings.ui.h:95
465 | msgid "Hide timeout (s)"
466 | msgstr "Tempo limite para ocultar (s)"
467 |
468 | #: Settings.ui.h:96
469 | msgid "Show the dock by mouse hover on the screen edge."
470 | msgstr "Mostrar a dock ao passar o rato na margem do ecrã."
471 |
472 | #: Settings.ui.h:97
473 | msgid "Autohide"
474 | msgstr "Ocultação inteligente"
475 |
476 | #: Settings.ui.h:98
477 | msgid "Push to show: require pressure to show the dock"
478 | msgstr "Pressionar para mostrar: requerer pressão para mostrar a dock"
479 |
480 | #: Settings.ui.h:99
481 | msgid "Enable in fullscreen mode"
482 | msgstr "Ativar no modo de ecrã inteiro"
483 |
484 | #: Settings.ui.h:100
485 | msgid "Show the dock when it doesn't obstruct application windows."
486 | msgstr "Mostrar a dock quando esta não obstrui as janelas."
487 |
488 | #: Settings.ui.h:101
489 | msgid "Dodge windows"
490 | msgstr "Esquivar as janelas"
491 |
492 | #: Settings.ui.h:102
493 | msgid "All windows"
494 | msgstr "Todas as janelas"
495 |
496 | #: Settings.ui.h:103
497 | msgid "Only focused application's windows"
498 | msgstr "Apenas janelas da aplicação focada"
499 |
500 | #: Settings.ui.h:104
501 | msgid "Only maximized windows"
502 | msgstr "Apenas janelas maximizadas"
503 |
504 | #: Settings.ui.h:105
505 | msgid "Animation duration (s)"
506 | msgstr "Tempo da animação (s)"
507 |
508 | #: Settings.ui.h:106
509 | msgid "Show timeout (s)"
510 | msgstr "Mostrar tempo limite (s)"
511 |
512 | #: Settings.ui.h:107
513 | msgid "Pressure threshold"
514 | msgstr "Limite de pressão"
515 |
--------------------------------------------------------------------------------
/po/sk.po:
--------------------------------------------------------------------------------
1 | # Slovak translation of dash-to-dock.
2 | # Copyright (C) 2016 Dušan Kazik
3 | # This file is distributed under the same license as the PACKAGE package.
4 | # Dušan Kazik , 2015, 2016.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: \n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-06-04 12:35+0100\n"
11 | "PO-Revision-Date: 2019-09-23 10:49+0200\n"
12 | "Last-Translator: Jose Riha \n"
13 | "Language-Team: \n"
14 | "Language: sk\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "X-Generator: Poedit 2.2.1\n"
19 | "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
20 |
21 | #: prefs.js:113
22 | msgid "Primary monitor"
23 | msgstr "Hlavnom monitore"
24 |
25 | #: prefs.js:122 prefs.js:129
26 | msgid "Secondary monitor "
27 | msgstr "Vedľajšom monitore "
28 |
29 | #: prefs.js:154 Settings.ui.h:29
30 | msgid "Right"
31 | msgstr "Vpravo"
32 |
33 | #: prefs.js:155 Settings.ui.h:26
34 | msgid "Left"
35 | msgstr "Vľavo"
36 |
37 | #: prefs.js:205
38 | msgid "Intelligent autohide customization"
39 | msgstr "Prispôsobenie inteligentného automatického skrývania"
40 |
41 | #: prefs.js:212 prefs.js:393 prefs.js:450
42 | msgid "Reset to defaults"
43 | msgstr "Obnoviť pôvodné"
44 |
45 | #: prefs.js:386
46 | msgid "Show dock and application numbers"
47 | msgstr "Zobraziť dok a čísla aplikácii"
48 |
49 | #: prefs.js:443
50 | msgid "Customize middle-click behavior"
51 | msgstr "Prispôsobenie správania prostredného tlačidla"
52 |
53 | #: prefs.js:514
54 | msgid "Customize running indicators"
55 | msgstr "Prispôsobenie indikátorov spustených aplikácií"
56 |
57 | #: appIcons.js:804
58 | msgid "All Windows"
59 | msgstr "Všetky okná"
60 |
61 | #: Settings.ui.h:1
62 | msgid "Customize indicator style"
63 | msgstr "Prispôsobenie štýlu indikátorov"
64 |
65 | #: Settings.ui.h:2
66 | msgid "Color"
67 | msgstr "Farba"
68 |
69 | #: Settings.ui.h:3
70 | msgid "Border color"
71 | msgstr "Farba okraja"
72 |
73 | #: Settings.ui.h:4
74 | msgid "Border width"
75 | msgstr "Šírka okraja"
76 |
77 | #: Settings.ui.h:5
78 | msgid "Number overlay"
79 | msgstr "Čísla aplikácii"
80 |
81 | #: Settings.ui.h:6
82 | msgid ""
83 | "Temporarily show the application numbers over the icons, corresponding to "
84 | "the shortcut."
85 | msgstr "Krátko zobraziť čísla aplikácii zodpovedajúce klávesovej skratke."
86 |
87 | #: Settings.ui.h:7
88 | msgid "Show the dock if it is hidden"
89 | msgstr "Zobraziť dok, ak je skrytý"
90 |
91 | #: Settings.ui.h:8
92 | msgid ""
93 | "If using autohide, the dock will appear for a short time when triggering the "
94 | "shortcut."
95 | msgstr ""
96 | "Ak je zapnuté automatické skrývanie, stlačením klávesovej skratky sa dok na "
97 | "okamih zobrazí."
98 |
99 | #: Settings.ui.h:9
100 | msgid "Shortcut for the options above"
101 | msgstr "Klávesová skratka"
102 |
103 | #: Settings.ui.h:10
104 | msgid "Syntax: , , , "
105 | msgstr "Syntax: , , , "
106 |
107 | #: Settings.ui.h:11
108 | msgid "Hide timeout (s)"
109 | msgstr "Časový limit na skrytie (s)"
110 |
111 | #: Settings.ui.h:12
112 | msgid ""
113 | "When set to minimize, double clicking minimizes all the windows of the "
114 | "application."
115 | msgstr ""
116 | "Keď je nastavené na minimalizovanie, dvojklik minimalizuje všetky okná "
117 | "aplikácie."
118 |
119 | #: Settings.ui.h:13
120 | msgid "Shift+Click action"
121 | msgstr "Akcia Shift+Kliknutie"
122 |
123 | #: Settings.ui.h:14
124 | msgid "Raise window"
125 | msgstr "Preniesť okno do popredia"
126 |
127 | #: Settings.ui.h:15
128 | msgid "Minimize window"
129 | msgstr "Minimalizovať okno"
130 |
131 | #: Settings.ui.h:16
132 | msgid "Launch new instance"
133 | msgstr "Spustiť novú inštanciu"
134 |
135 | #: Settings.ui.h:17
136 | msgid "Cycle through windows"
137 | msgstr "Striedať okná"
138 |
139 | #: Settings.ui.h:18
140 | msgid "Quit"
141 | msgstr "Ukončiť"
142 |
143 | #: Settings.ui.h:19
144 | msgid "Behavior for Middle-Click."
145 | msgstr "Správanie stredného tlačidla myši."
146 |
147 | #: Settings.ui.h:20
148 | msgid "Middle-Click action"
149 | msgstr "Akcia po kliknutí stredným tlačidlom"
150 |
151 | #: Settings.ui.h:21
152 | msgid "Behavior for Shift+Middle-Click."
153 | msgstr "Správanie stredného tlačidla pri stlačenom Shifte."
154 |
155 | #: Settings.ui.h:22
156 | msgid "Shift+Middle-Click action"
157 | msgstr "Akcia pri Shift+Klik stredným tlačidlom myši"
158 |
159 | #: Settings.ui.h:23
160 | msgid "Show the dock on"
161 | msgstr "Zobraziť dok na"
162 |
163 | #: Settings.ui.h:24
164 | msgid "Show on all monitors"
165 | msgstr "Zobraziť na všetkých monitoroch"
166 |
167 | #: Settings.ui.h:25
168 | msgid "Position on screen"
169 | msgstr "Pozícia na obrazovke"
170 |
171 | #: Settings.ui.h:27
172 | msgid "Bottom"
173 | msgstr "Na spodku"
174 |
175 | #: Settings.ui.h:28
176 | msgid "Top"
177 | msgstr "Na vrchu"
178 |
179 | #: Settings.ui.h:30
180 | msgid ""
181 | "Hide the dock when it obstructs a window of the current application. More "
182 | "refined settings are available."
183 | msgstr ""
184 | "Skryť dok, keď zasahuje do okna aktuálnej aplikácie. Sú dostupné "
185 | "podrobnejšie nastavenia."
186 |
187 | #: Settings.ui.h:31
188 | msgid "Intelligent autohide"
189 | msgstr "Inteligentné automatické skrývanie"
190 |
191 | #: Settings.ui.h:32
192 | msgid "Dock size limit"
193 | msgstr "Limit veľkosti doku"
194 |
195 | #: Settings.ui.h:33
196 | msgid "Panel mode: extend to the screen edge"
197 | msgstr "Režim panelu: roztiahnutie ku hranám obrazovky"
198 |
199 | #: Settings.ui.h:34
200 | msgid "Icon size limit"
201 | msgstr "Limit veľkosti ikon"
202 |
203 | #: Settings.ui.h:35
204 | msgid "Fixed icon size: scroll to reveal other icons"
205 | msgstr "Pevná veľkosť ikon: rolovaním odhalíte ostatné ikony"
206 |
207 | #: Settings.ui.h:36
208 | msgid "Position and size"
209 | msgstr "Pozícia a veľkosť"
210 |
211 | #: Settings.ui.h:37
212 | msgid "Show favorite applications"
213 | msgstr "Zobraziť obľúbené aplikácie"
214 |
215 | #: Settings.ui.h:38
216 | msgid "Show running applications"
217 | msgstr "Zobraziť spustené aplikácie"
218 |
219 | #: Settings.ui.h:39
220 | msgid "Isolate workspaces"
221 | msgstr "Oddelené pracovné priestory"
222 |
223 | #: Settings.ui.h:40
224 | msgid "Show open windows previews"
225 | msgstr "Zobraziť náhľady otvorených okien"
226 |
227 | #: Settings.ui.h:41
228 | msgid ""
229 | "If disabled, these settings are accessible from gnome-tweak-tool or the "
230 | "extension website."
231 | msgstr ""
232 | "Ak je voľba zakázaná, tieto nastavenia sú dostupné z nástroja Vyladenie "
233 | "alebo webovej stránky rozšírenia."
234 |
235 | #: Settings.ui.h:42
236 | msgid "Show Applications icon"
237 | msgstr "Zobraziť ikonu Aplikácie"
238 |
239 | #: Settings.ui.h:43
240 | msgid "Move the applications button at the beginning of the dock"
241 | msgstr "Premiestni tlačidlo aplikácií na začiatok doku"
242 |
243 | #: Settings.ui.h:44
244 | msgid "Animate Show Applications"
245 | msgstr "Animovať položku Zobraziť aplikácie"
246 |
247 | #: Settings.ui.h:45
248 | msgid "Launchers"
249 | msgstr "Spúšťače"
250 |
251 | #: Settings.ui.h:46
252 | msgid ""
253 | "Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
254 | "together with Shift and Ctrl."
255 | msgstr ""
256 | "Povoliť aktiváciu aplikácií klávesovými skratkami Super+(0+9). Túto skratku "
257 | "je možné tiež použiť so stlačeným Shiftom a Ctrl."
258 |
259 | #: Settings.ui.h:47
260 | msgid "Use keyboard shortcuts to activate apps"
261 | msgstr "Použiť klávesovú skratku na aktiváciu aplikácií"
262 |
263 | #: Settings.ui.h:48
264 | msgid "Behaviour when clicking on the icon of a running application."
265 | msgstr "Správanie pri kliknutí na ikonu spustenej aplikácie."
266 |
267 | #: Settings.ui.h:49
268 | msgid "Click action"
269 | msgstr "Akcia po kliknutí"
270 |
271 | #: Settings.ui.h:50
272 | msgid "Minimize"
273 | msgstr "Minimalizovať"
274 |
275 | #: Settings.ui.h:51
276 | msgid "Minimize or overview"
277 | msgstr "Minimalizovať okno alebo zobraziť prehľad"
278 |
279 | #: Settings.ui.h:52
280 | msgid "Behaviour when scrolling on the icon of an application."
281 | msgstr "Správanie pri použití kolieska myši na ikone aplikácie."
282 |
283 | #: Settings.ui.h:53
284 | msgid "Scroll action"
285 | msgstr "Akcia pri použití kolieska myši"
286 |
287 | #: Settings.ui.h:54
288 | msgid "Do nothing"
289 | msgstr "Nevykonať nič"
290 |
291 | #: Settings.ui.h:55
292 | msgid "Switch workspace"
293 | msgstr "Prepnúť pracovnú plochu"
294 |
295 | #: Settings.ui.h:56
296 | msgid "Behavior"
297 | msgstr "Správanie"
298 |
299 | #: Settings.ui.h:57
300 | msgid ""
301 | "Few customizations meant to integrate the dock with the default GNOME theme. "
302 | "Alternatively, specific options can be enabled below."
303 | msgstr ""
304 | "Niekoľko úprav na integrovanie doku s predvolenou témou prostredia GNOME. "
305 | "Alternatívne môžu byť povolené špecifické voľby nižšie."
306 |
307 | #: Settings.ui.h:58
308 | msgid "Use built-in theme"
309 | msgstr "Použiť zabudovanú tému"
310 |
311 | #: Settings.ui.h:59
312 | msgid "Save space reducing padding and border radius."
313 | msgstr "Ušetrí miesto zmenšením rádiusu odsadenia a okrajov."
314 |
315 | #: Settings.ui.h:60
316 | msgid "Shrink the dash"
317 | msgstr "Zmenšiť panel"
318 |
319 | #: Settings.ui.h:61
320 | msgid "Show a dot for each windows of the application."
321 | msgstr "Zobrazí bodku za každé okno aplikácie."
322 |
323 | #: Settings.ui.h:62
324 | msgid "Show windows counter indicators"
325 | msgstr "Zobraziť indikátory počítadiel okien"
326 |
327 | #: Settings.ui.h:63
328 | msgid "Set the background color for the dash."
329 | msgstr "Nastaví farbu pozadia panelu."
330 |
331 | #: Settings.ui.h:64
332 | msgid "Customize the dash color"
333 | msgstr "Prispôsobenie farby panelu"
334 |
335 | #: Settings.ui.h:65
336 | msgid "Tune the dash background opacity."
337 | msgstr "Vyladí krytie pozadia panelu."
338 |
339 | #: Settings.ui.h:66
340 | msgid "Customize opacity"
341 | msgstr "Prispôsobenie krytia"
342 |
343 | #: Settings.ui.h:67
344 | msgid "Opacity"
345 | msgstr "Krytie"
346 |
347 | #: Settings.ui.h:68
348 | msgid "Force straight corner\n"
349 | msgstr "Zakázať zaoblené rohy\n"
350 |
351 | #: Settings.ui.h:70
352 | msgid "Appearance"
353 | msgstr "Vzhľad"
354 |
355 | #: Settings.ui.h:71
356 | msgid "version: "
357 | msgstr "verzia: "
358 |
359 | #: Settings.ui.h:72
360 | msgid "Moves the dash out of the overview transforming it in a dock"
361 | msgstr "Presunie panel z prehľadu transformovaním do doku"
362 |
363 | #: Settings.ui.h:73
364 | msgid "Created by"
365 | msgstr "Vytvoril"
366 |
367 | #: Settings.ui.h:74
368 | msgid "Webpage"
369 | msgstr "Webová stránka"
370 |
371 | #: Settings.ui.h:75
372 | msgid ""
373 | "This program comes with ABSOLUTELY NO WARRANTY.\n"
374 | "See the GNU General Public License, version 2 or later for details."
376 | msgstr ""
377 | "Tento program je ABSOLÚTNE BEZ ZÁRUKY.\n"
378 | "Pre viac podrobností si pozrite Licenciu GNU General Public, verzie 2 alebo novšiu"
380 | "a>."
381 |
382 | #: Settings.ui.h:77
383 | msgid "About"
384 | msgstr "O rozšírení"
385 |
386 | #: Settings.ui.h:78
387 | msgid "Show the dock by mouse hover on the screen edge."
388 | msgstr "Zobrazí dok prejdením myši na hranu obrazovky."
389 |
390 | #: Settings.ui.h:79
391 | msgid "Autohide"
392 | msgstr "Automatické skrytie"
393 |
394 | #: Settings.ui.h:80
395 | msgid "Push to show: require pressure to show the dock"
396 | msgstr "Zobraziť dok až po zatlačení na okraj obrazovky"
397 |
398 | #: Settings.ui.h:81
399 | msgid "Enable in fullscreen mode"
400 | msgstr "Povoliť v režime na celú obrazovku"
401 |
402 | #: Settings.ui.h:82
403 | msgid "Show the dock when it doesn't obstruct application windows."
404 | msgstr "Zobrazí dok, keď nebude zasahovať do okien aplikácií."
405 |
406 | #: Settings.ui.h:83
407 | msgid "Dodge windows"
408 | msgstr "Vyhýbať sa oknám"
409 |
410 | #: Settings.ui.h:84
411 | msgid "All windows"
412 | msgstr "Všetky okná"
413 |
414 | #: Settings.ui.h:85
415 | msgid "Only focused application's windows"
416 | msgstr "Iba zamerané okná aplikácií"
417 |
418 | #: Settings.ui.h:86
419 | msgid "Only maximized windows"
420 | msgstr "Iba maximalizované okná"
421 |
422 | #: Settings.ui.h:87
423 | msgid "Animation duration (s)"
424 | msgstr "Trvanie animácie (s)"
425 |
426 | #: Settings.ui.h:88
427 | msgid "0.000"
428 | msgstr "0.000"
429 |
430 | #: Settings.ui.h:89
431 | msgid "Show timeout (s)"
432 | msgstr "Zobraziť časový limit (s)"
433 |
434 | #: Settings.ui.h:90
435 | msgid "Pressure threshold"
436 | msgstr "Medza tlaku"
437 |
438 | #~ msgid ""
439 | #~ "With fixed icon size, only the edge of the dock and the Show "
440 | #~ "Applications icon are active."
441 | #~ msgstr ""
442 | #~ "S pevnou veľkosťou ikon je aktívna iba hrana doku a ikona Zobraziť "
443 | #~ "aplikácie."
444 |
445 | #~ msgid "Switch workspace by scrolling on the dock"
446 | #~ msgstr "Prepínať pracovné priestory rolovaním na doku"
447 |
--------------------------------------------------------------------------------
/po/sr.po:
--------------------------------------------------------------------------------
1 | # SOME DESCRIPTIVE TITLE.
2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the PACKAGE package.
4 | # FIRST AUTHOR , YEAR.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: \n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-09-16 13:45+0200\n"
11 | "PO-Revision-Date: 2017-09-20 18:59+0200\n"
12 | "Last-Translator: Слободан Терзић \n"
13 | "Language-Team: \n"
14 | "Language: sr\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "X-Generator: Poedit 2.0.3\n"
19 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
20 | "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
21 |
22 | #: prefs.js:113
23 | msgid "Primary monitor"
24 | msgstr "примарном монитору"
25 |
26 | #: prefs.js:122 prefs.js:129
27 | msgid "Secondary monitor "
28 | msgstr "секундарном монитору"
29 |
30 | #: prefs.js:154 Settings.ui.h:31
31 | msgid "Right"
32 | msgstr "десно"
33 |
34 | #: prefs.js:155 Settings.ui.h:28
35 | msgid "Left"
36 | msgstr "лево"
37 |
38 | #: prefs.js:205
39 | msgid "Intelligent autohide customization"
40 | msgstr "Поставке интелигентног аутоматског сакривања"
41 |
42 | #: prefs.js:212 prefs.js:397 prefs.js:454
43 | msgid "Reset to defaults"
44 | msgstr "Поврати основно"
45 |
46 | #: prefs.js:390
47 | msgid "Show dock and application numbers"
48 | msgstr "Прикажи док и бројеве програма"
49 |
50 | #: prefs.js:447
51 | msgid "Customize middle-click behavior"
52 | msgstr "Прилагоћавање понашања средњег клика"
53 |
54 | #: prefs.js:518
55 | msgid "Customize running indicators"
56 | msgstr "Прилагођавање индикатора покренутих"
57 |
58 | #: appIcons.js:1144
59 | msgid "All Windows"
60 | msgstr "Сви прозори"
61 |
62 | #. Translators: %s is "Settings", which is automatically translated. You
63 | #. can also translate the full message if this fits better your language.
64 | #: appIcons.js:1450
65 | #, javascript-format
66 | msgid "Dash to Dock %s"
67 | msgstr "%s плоче/панела"
68 |
69 | #: Settings.ui.h:1
70 | msgid "Customize indicator style"
71 | msgstr "Прилагоћавање стила индикатора"
72 |
73 | #: Settings.ui.h:2
74 | msgid "Color"
75 | msgstr "Боја"
76 |
77 | #: Settings.ui.h:3
78 | msgid "Border color"
79 | msgstr "Боја ивице"
80 |
81 | #: Settings.ui.h:4
82 | msgid "Border width"
83 | msgstr "Ширина ивице"
84 |
85 | #: Settings.ui.h:5
86 | msgid "Number overlay"
87 | msgstr "Бројне налепнице"
88 |
89 | #: Settings.ui.h:6
90 | msgid ""
91 | "Temporarily show the application numbers over the icons, corresponding to "
92 | "the shortcut."
93 | msgstr ""
94 | "Привремено прикажи бројеве програма изнад иконица, према припадајућој "
95 | "пречици."
96 |
97 | #: Settings.ui.h:7
98 | msgid "Show the dock if it is hidden"
99 | msgstr "Прикажи док уколико је сакривен"
100 |
101 | #: Settings.ui.h:8
102 | msgid ""
103 | "If using autohide, the dock will appear for a short time when triggering the "
104 | "shortcut."
105 | msgstr ""
106 | "Уколико се користи аутоматско сакривање, док ће се приказати на тренутак при "
107 | "окидању пречице."
108 |
109 | #: Settings.ui.h:9
110 | msgid "Shortcut for the options above"
111 | msgstr "Пречица за горе наведене опције"
112 |
113 | #: Settings.ui.h:10
114 | msgid "Syntax: , , , "
115 | msgstr "Синтакса: , , , "
116 |
117 | #: Settings.ui.h:11
118 | msgid "Hide timeout (s)"
119 | msgstr "Застој скривања"
120 |
121 | #: Settings.ui.h:12
122 | msgid ""
123 | "When set to minimize, double clicking minimizes all the windows of the "
124 | "application."
125 | msgstr ""
126 | "Кад је постављено на минимизовање, дупли клик минимизује све прозоре "
127 | "програма."
128 |
129 | #: Settings.ui.h:13
130 | msgid "Shift+Click action"
131 | msgstr "Радња шифт+клика"
132 |
133 | #: Settings.ui.h:14
134 | msgid "Raise window"
135 | msgstr "издигни прозор"
136 |
137 | #: Settings.ui.h:15
138 | msgid "Minimize window"
139 | msgstr "минимизуј прозор"
140 |
141 | #: Settings.ui.h:16
142 | msgid "Launch new instance"
143 | msgstr "покрени нови примерак"
144 |
145 | #: Settings.ui.h:17
146 | msgid "Cycle through windows"
147 | msgstr "кружење кроз прозоре"
148 |
149 | #: Settings.ui.h:18
150 | msgid "Minimize or overview"
151 | msgstr "минимиуј или преглед"
152 |
153 | #: Settings.ui.h:19
154 | msgid "Show window previews"
155 | msgstr "прикажи сличице прозора"
156 |
157 | #: Settings.ui.h:20
158 | msgid "Quit"
159 | msgstr "напусти"
160 |
161 | #: Settings.ui.h:21
162 | msgid "Behavior for Middle-Click."
163 | msgstr "Понашање средњег клика."
164 |
165 | #: Settings.ui.h:22
166 | msgid "Middle-Click action"
167 | msgstr "Радња средњег клика"
168 |
169 | #: Settings.ui.h:23
170 | msgid "Behavior for Shift+Middle-Click."
171 | msgstr "Пoнашање шифт+средњег клика."
172 |
173 | #: Settings.ui.h:24
174 | msgid "Shift+Middle-Click action"
175 | msgstr "Радња шифт+средњегклика"
176 |
177 | #: Settings.ui.h:25
178 | msgid "Show the dock on"
179 | msgstr "Прикажи док на"
180 |
181 | #: Settings.ui.h:26
182 | msgid "Show on all monitors"
183 | msgstr "Прикажи на свим мониторима"
184 |
185 | #: Settings.ui.h:27
186 | msgid "Position on screen"
187 | msgstr "Позиција на екрану"
188 |
189 | #: Settings.ui.h:29
190 | msgid "Bottom"
191 | msgstr "дно"
192 |
193 | #: Settings.ui.h:30
194 | msgid "Top"
195 | msgstr "врх"
196 |
197 | #: Settings.ui.h:32
198 | msgid ""
199 | "Hide the dock when it obstructs a window of the current application. More "
200 | "refined settings are available."
201 | msgstr ""
202 | "Сакриј док када је на путу прозора тренутног програма. Доступне су финије "
203 | "поставке."
204 |
205 | #: Settings.ui.h:33
206 | msgid "Intelligent autohide"
207 | msgstr "Интелигентно аутоматско сакривање"
208 |
209 | #: Settings.ui.h:34
210 | msgid "Dock size limit"
211 | msgstr "Ограничење величине дока"
212 |
213 | #: Settings.ui.h:35
214 | msgid "Panel mode: extend to the screen edge"
215 | msgstr "Режим панела: проширен до ивица екрана"
216 |
217 | #: Settings.ui.h:36
218 | msgid "Icon size limit"
219 | msgstr "Ограничење величине иконица"
220 |
221 | #: Settings.ui.h:37
222 | msgid "Fixed icon size: scroll to reveal other icons"
223 | msgstr "Устаљена величина иконица: клизајте за друге иконе"
224 |
225 | #: Settings.ui.h:38
226 | msgid "Position and size"
227 | msgstr "Позиција и величина"
228 |
229 | #: Settings.ui.h:39
230 | msgid "Show favorite applications"
231 | msgstr "Приказ омиљених програма"
232 |
233 | #: Settings.ui.h:40
234 | msgid "Show running applications"
235 | msgstr "Приказ покренутих програма"
236 |
237 | #: Settings.ui.h:41
238 | msgid "Isolate workspaces"
239 | msgstr "Изолуј радне просторе"
240 |
241 | #: Settings.ui.h:42
242 | msgid "Isolate monitors"
243 | msgstr "Изолуј мониторе"
244 |
245 | #: Settings.ui.h:43
246 | msgid "Show open windows previews"
247 | msgstr "Прикажи сличице отворених прозора"
248 |
249 | #: Settings.ui.h:44
250 | msgid ""
251 | "If disabled, these settings are accessible from gnome-tweak-tool or the "
252 | "extension website."
253 | msgstr ""
254 | "Уколико је онемогућено, ове поставке су доступне кроз алатку за лицкање или "
255 | "веб сајт проширења."
256 |
257 | #: Settings.ui.h:45
258 | msgid "Show Applications icon"
259 | msgstr "Приказ иконице Прикажи програме"
260 |
261 | #: Settings.ui.h:46
262 | msgid "Move the applications button at the beginning of the dock"
263 | msgstr "Помери дугме програма на почетак дока"
264 |
265 | #: Settings.ui.h:47
266 | msgid "Animate Show Applications"
267 | msgstr "Анимирај приказ програма"
268 |
269 | #: Settings.ui.h:48
270 | msgid "Launchers"
271 | msgstr "Покретачи"
272 |
273 | #: Settings.ui.h:49
274 | msgid ""
275 | "Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
276 | "together with Shift and Ctrl."
277 | msgstr ""
278 | "Укључује Супер+(0-9) као пречице за активацију програма. Такође је могуће "
279 | "користити уз shift и ctrl."
280 |
281 | #: Settings.ui.h:50
282 | msgid "Use keyboard shortcuts to activate apps"
283 | msgstr "Активирај програме пречицама тастатуре"
284 |
285 | #: Settings.ui.h:51
286 | msgid "Behaviour when clicking on the icon of a running application."
287 | msgstr "Понашање при клику на покренути програм."
288 |
289 | #: Settings.ui.h:52
290 | msgid "Click action"
291 | msgstr "Радња клика"
292 |
293 | #: Settings.ui.h:53
294 | msgid "Minimize"
295 | msgstr "минимизуј"
296 |
297 | #: Settings.ui.h:54
298 | msgid "Behaviour when scrolling on the icon of an application."
299 | msgstr "Понашање при клизању на иконицу покренутог програма."
300 |
301 | #: Settings.ui.h:55
302 | msgid "Scroll action"
303 | msgstr "Радња клизања на иконицу"
304 |
305 | #: Settings.ui.h:56
306 | msgid "Do nothing"
307 | msgstr "ништа"
308 |
309 | #: Settings.ui.h:57
310 | msgid "Switch workspace"
311 | msgstr "пребаци радни простор"
312 |
313 | #: Settings.ui.h:58
314 | msgid "Behavior"
315 | msgstr "Понашање"
316 |
317 | #: Settings.ui.h:59
318 | msgid ""
319 | "Few customizations meant to integrate the dock with the default GNOME theme. "
320 | "Alternatively, specific options can be enabled below."
321 | msgstr ""
322 | "Неколико поставки намењених уграђивању дока у основну тему Гнома. "
323 | "Алтернативно, посебне поставке се могу уредити испод."
324 |
325 | #: Settings.ui.h:60
326 | msgid "Use built-in theme"
327 | msgstr "Користи уграђену тему"
328 |
329 | #: Settings.ui.h:61
330 | msgid "Save space reducing padding and border radius."
331 | msgstr "Чува простор сужавањем попуне и опсега ивица."
332 |
333 | #: Settings.ui.h:62
334 | msgid "Shrink the dash"
335 | msgstr "Скупи плочу"
336 |
337 | #: Settings.ui.h:63
338 | msgid "Show a dot for each windows of the application."
339 | msgstr "Приказује тачку за сваки прозор програма."
340 |
341 | #: Settings.ui.h:64
342 | msgid "Show windows counter indicators"
343 | msgstr "Приказ индикаторa бројача прозора."
344 |
345 | #: Settings.ui.h:65
346 | msgid "Set the background color for the dash."
347 | msgstr "Постави позадинску боју плоче."
348 |
349 | #: Settings.ui.h:66
350 | msgid "Customize the dash color"
351 | msgstr "Прилагоди боју плоче"
352 |
353 | #: Settings.ui.h:67
354 | msgid "Tune the dash background opacity."
355 | msgstr "Прилагоди прозирност позадине плоче."
356 |
357 | #: Settings.ui.h:68
358 | msgid "Customize opacity"
359 | msgstr "Прилагоћавање прозирности"
360 |
361 | #: Settings.ui.h:69
362 | msgid "Opacity"
363 | msgstr "Прозирност"
364 |
365 | #: Settings.ui.h:70
366 | msgid "Enable Unity7 like glossy backlit items"
367 | msgstr "Укључи позадинске ефекте попут Unity7"
368 |
369 | #: Settings.ui.h:71
370 | msgid "Force straight corner\n"
371 | msgstr "Наметни равне углове\n"
372 |
373 | #: Settings.ui.h:73
374 | msgid "Appearance"
375 | msgstr "Изглед"
376 |
377 | #: Settings.ui.h:74
378 | msgid "version: "
379 | msgstr "верзија: "
380 |
381 | #: Settings.ui.h:75
382 | msgid "Moves the dash out of the overview transforming it in a dock"
383 | msgstr "Помера плочу из глобалног приказа, претварајући је у док"
384 |
385 | #: Settings.ui.h:76
386 | msgid "Created by"
387 | msgstr "Направи"
388 |
389 | #: Settings.ui.h:77
390 | msgid "Webpage"
391 | msgstr "Веб страница"
392 |
393 | #: Settings.ui.h:78
394 | msgid ""
395 | "This program comes with ABSOLUTELY NO WARRANTY.\n"
396 | "See the GNU General Public License, version 2 or later for details."
398 | msgstr ""
399 | "Овај програм се доставља БЕЗ ИКАКВИХ ГАРАНЦИЈА.\n"
400 | "Погледајте ГНУову Општу Јавну лиценцу, верзија 2 или каснија, за детаље."
402 |
403 | #: Settings.ui.h:80
404 | msgid "About"
405 | msgstr "О програму"
406 |
407 | #: Settings.ui.h:81
408 | msgid "Show the dock by mouse hover on the screen edge."
409 | msgstr "Прикажи док прелазом миша пеко ивице екрана."
410 |
411 | #: Settings.ui.h:82
412 | msgid "Autohide"
413 | msgstr "Аутоматско сакривање"
414 |
415 | #: Settings.ui.h:83
416 | msgid "Push to show: require pressure to show the dock"
417 | msgstr "Приказ притиском: захтева притисак за приказ дока"
418 |
419 | #: Settings.ui.h:84
420 | msgid "Enable in fullscreen mode"
421 | msgstr "Омогући у целоекранском режиму"
422 |
423 | #: Settings.ui.h:85
424 | msgid "Show the dock when it doesn't obstruct application windows."
425 | msgstr "Приказује док када није на путу прозорима програма."
426 |
427 | #: Settings.ui.h:86
428 | msgid "Dodge windows"
429 | msgstr "Избегавање розора"
430 |
431 | #: Settings.ui.h:87
432 | msgid "All windows"
433 | msgstr "Сви прозори"
434 |
435 | #: Settings.ui.h:88
436 | msgid "Only focused application's windows"
437 | msgstr "Само прозор фокусираног програма"
438 |
439 | #: Settings.ui.h:89
440 | msgid "Only maximized windows"
441 | msgstr "Само максимизовани прозори"
442 |
443 | #: Settings.ui.h:90
444 | msgid "Animation duration (s)"
445 | msgstr "Трајање(а) анимације"
446 |
447 | #: Settings.ui.h:91
448 | msgid "Show timeout (s)"
449 | msgstr "Застој приказивања"
450 |
451 | #: Settings.ui.h:92
452 | msgid "Pressure threshold"
453 | msgstr "Праг притиска"
454 |
455 | #~ msgid "0.000"
456 | #~ msgstr "0,000"
457 |
458 | #, fuzzy
459 | #~ msgid ""
460 | #~ "With fixed icon size, only the edge of the dock and the Show "
461 | #~ "Applications icon are active."
462 | #~ msgstr ""
463 | #~ "Ако се иконе преклапају на доку, приказује се само икона Прикажи "
464 | #~ "програме."
465 |
466 | #~ msgid "Switch workspace by scrolling on the dock"
467 | #~ msgstr "Промена радног простора клизањем по доку"
468 |
469 | #~ msgid "Only consider windows of the focused application"
470 | #~ msgstr "Разматрај само прозор фокусираног програма"
471 |
--------------------------------------------------------------------------------
/po/sr@latin.po:
--------------------------------------------------------------------------------
1 | # SOME DESCRIPTIVE TITLE.
2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the PACKAGE package.
4 | # FIRST AUTHOR , YEAR.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: \n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2017-09-16 13:45+0200\n"
11 | "PO-Revision-Date: 2017-09-20 18:56+0200\n"
12 | "Last-Translator: Slobodan Terzić \n"
13 | "Language-Team: \n"
14 | "Language: sr@latin\n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 | "X-Generator: Poedit 2.0.3\n"
19 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
20 | "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
21 |
22 | #: prefs.js:113
23 | msgid "Primary monitor"
24 | msgstr "primarnom monitoru"
25 |
26 | #: prefs.js:122 prefs.js:129
27 | msgid "Secondary monitor "
28 | msgstr "sekundarnom monitoru"
29 |
30 | #: prefs.js:154 Settings.ui.h:31
31 | msgid "Right"
32 | msgstr "desno"
33 |
34 | #: prefs.js:155 Settings.ui.h:28
35 | msgid "Left"
36 | msgstr "levo"
37 |
38 | #: prefs.js:205
39 | msgid "Intelligent autohide customization"
40 | msgstr "Postavke inteligentnog automatskog sakrivanja"
41 |
42 | #: prefs.js:212 prefs.js:397 prefs.js:454
43 | msgid "Reset to defaults"
44 | msgstr "Povrati osnovno"
45 |
46 | #: prefs.js:390
47 | msgid "Show dock and application numbers"
48 | msgstr "Prikaži dok i brojeve programa"
49 |
50 | #: prefs.js:447
51 | msgid "Customize middle-click behavior"
52 | msgstr "Prilagoćavanje ponašanja srednjeg klika"
53 |
54 | #: prefs.js:518
55 | msgid "Customize running indicators"
56 | msgstr "Prilagođavanje indikatora pokrenutih"
57 |
58 | #: appIcons.js:1144
59 | msgid "All Windows"
60 | msgstr "Svi prozori"
61 |
62 | #. Translators: %s is "Settings", which is automatically translated. You
63 | #. can also translate the full message if this fits better your language.
64 | #: appIcons.js:1450
65 | #, javascript-format
66 | msgid "Dash to Dock %s"
67 | msgstr "%s ploče/panela"
68 |
69 | #: Settings.ui.h:1
70 | msgid "Customize indicator style"
71 | msgstr "Prilagoćavanje stila indikatora"
72 |
73 | #: Settings.ui.h:2
74 | msgid "Color"
75 | msgstr "Boja"
76 |
77 | #: Settings.ui.h:3
78 | msgid "Border color"
79 | msgstr "Boja ivice"
80 |
81 | #: Settings.ui.h:4
82 | msgid "Border width"
83 | msgstr "Širina ivice"
84 |
85 | #: Settings.ui.h:5
86 | msgid "Number overlay"
87 | msgstr "Brojne nalepnice"
88 |
89 | #: Settings.ui.h:6
90 | msgid ""
91 | "Temporarily show the application numbers over the icons, corresponding to the "
92 | "shortcut."
93 | msgstr ""
94 | "Privremeno prikaži brojeve programa iznad ikonica, prema pripadajućoj prečici."
95 |
96 | #: Settings.ui.h:7
97 | msgid "Show the dock if it is hidden"
98 | msgstr "Prikaži dok ukoliko je sakriven"
99 |
100 | #: Settings.ui.h:8
101 | msgid ""
102 | "If using autohide, the dock will appear for a short time when triggering the "
103 | "shortcut."
104 | msgstr ""
105 | "Ukoliko se koristi automatsko sakrivanje, dok će se prikazati na trenutak pri "
106 | "okidanju prečice."
107 |
108 | #: Settings.ui.h:9
109 | msgid "Shortcut for the options above"
110 | msgstr "Prečica za gore navedene opcije"
111 |
112 | #: Settings.ui.h:10
113 | msgid "Syntax: , , , "
114 | msgstr "Sintaksa: , , , "
115 |
116 | #: Settings.ui.h:11
117 | msgid "Hide timeout (s)"
118 | msgstr "Zastoj skrivanja"
119 |
120 | #: Settings.ui.h:12
121 | msgid ""
122 | "When set to minimize, double clicking minimizes all the windows of the "
123 | "application."
124 | msgstr ""
125 | "Kad je postavljeno na minimizovanje, dupli klik minimizuje sve prozore "
126 | "programa."
127 |
128 | #: Settings.ui.h:13
129 | msgid "Shift+Click action"
130 | msgstr "Radnja šift+klika"
131 |
132 | #: Settings.ui.h:14
133 | msgid "Raise window"
134 | msgstr "izdigni prozor"
135 |
136 | #: Settings.ui.h:15
137 | msgid "Minimize window"
138 | msgstr "minimizuj prozor"
139 |
140 | #: Settings.ui.h:16
141 | msgid "Launch new instance"
142 | msgstr "pokreni novi primerak"
143 |
144 | #: Settings.ui.h:17
145 | msgid "Cycle through windows"
146 | msgstr "kruženje kroz prozore"
147 |
148 | #: Settings.ui.h:18
149 | msgid "Minimize or overview"
150 | msgstr "minimiuj ili pregled"
151 |
152 | #: Settings.ui.h:19
153 | msgid "Show window previews"
154 | msgstr "prikaži sličice prozora"
155 |
156 | #: Settings.ui.h:20
157 | msgid "Quit"
158 | msgstr "napusti"
159 |
160 | #: Settings.ui.h:21
161 | msgid "Behavior for Middle-Click."
162 | msgstr "Ponašanje srednjeg klika."
163 |
164 | #: Settings.ui.h:22
165 | msgid "Middle-Click action"
166 | msgstr "Radnja srednjeg klika"
167 |
168 | #: Settings.ui.h:23
169 | msgid "Behavior for Shift+Middle-Click."
170 | msgstr "Ponašanje šift+srednjeg klika."
171 |
172 | #: Settings.ui.h:24
173 | msgid "Shift+Middle-Click action"
174 | msgstr "Radnja šift+srednjegklika"
175 |
176 | #: Settings.ui.h:25
177 | msgid "Show the dock on"
178 | msgstr "Prikaži dok na"
179 |
180 | #: Settings.ui.h:26
181 | msgid "Show on all monitors"
182 | msgstr "Prikaži na svim monitorima"
183 |
184 | #: Settings.ui.h:27
185 | msgid "Position on screen"
186 | msgstr "Pozicija na ekranu"
187 |
188 | #: Settings.ui.h:29
189 | msgid "Bottom"
190 | msgstr "dno"
191 |
192 | #: Settings.ui.h:30
193 | msgid "Top"
194 | msgstr "vrh"
195 |
196 | #: Settings.ui.h:32
197 | msgid ""
198 | "Hide the dock when it obstructs a window of the current application. More "
199 | "refined settings are available."
200 | msgstr ""
201 | "Sakrij dok kada je na putu prozora trenutnog programa. Dostupne su finije "
202 | "postavke."
203 |
204 | #: Settings.ui.h:33
205 | msgid "Intelligent autohide"
206 | msgstr "Inteligentno automatsko sakrivanje"
207 |
208 | #: Settings.ui.h:34
209 | msgid "Dock size limit"
210 | msgstr "Ograničenje veličine doka"
211 |
212 | #: Settings.ui.h:35
213 | msgid "Panel mode: extend to the screen edge"
214 | msgstr "Režim panela: proširen do ivica ekrana"
215 |
216 | #: Settings.ui.h:36
217 | msgid "Icon size limit"
218 | msgstr "Ograničenje veličine ikonica"
219 |
220 | #: Settings.ui.h:37
221 | msgid "Fixed icon size: scroll to reveal other icons"
222 | msgstr "Ustaljena veličina ikonica: klizajte za druge ikone"
223 |
224 | #: Settings.ui.h:38
225 | msgid "Position and size"
226 | msgstr "Pozicija i veličina"
227 |
228 | #: Settings.ui.h:39
229 | msgid "Show favorite applications"
230 | msgstr "Prikaz omiljenih programa"
231 |
232 | #: Settings.ui.h:40
233 | msgid "Show running applications"
234 | msgstr "Prikaz pokrenutih programa"
235 |
236 | #: Settings.ui.h:41
237 | msgid "Isolate workspaces"
238 | msgstr "Izoluj radne prostore"
239 |
240 | #: Settings.ui.h:42
241 | msgid "Isolate monitors"
242 | msgstr "Izoluj monitore"
243 |
244 | #: Settings.ui.h:43
245 | msgid "Show open windows previews"
246 | msgstr "Prikaži sličice otvorenih prozora"
247 |
248 | #: Settings.ui.h:44
249 | msgid ""
250 | "If disabled, these settings are accessible from gnome-tweak-tool or the "
251 | "extension website."
252 | msgstr ""
253 | "Ukoliko je onemogućeno, ove postavke su dostupne kroz alatku za lickanje ili "
254 | "veb sajt proširenja."
255 |
256 | #: Settings.ui.h:45
257 | msgid "Show Applications icon"
258 | msgstr "Prikaz ikonice Prikaži programe"
259 |
260 | #: Settings.ui.h:46
261 | msgid "Move the applications button at the beginning of the dock"
262 | msgstr "Pomeri dugme programa na početak doka"
263 |
264 | #: Settings.ui.h:47
265 | msgid "Animate Show Applications"
266 | msgstr "Animiraj prikaz programa"
267 |
268 | #: Settings.ui.h:48
269 | msgid "Launchers"
270 | msgstr "Pokretači"
271 |
272 | #: Settings.ui.h:49
273 | msgid ""
274 | "Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
275 | "together with Shift and Ctrl."
276 | msgstr ""
277 | "Uključuje Super+(0-9) kao prečice za aktivaciju programa. Takođe je moguće "
278 | "koristiti uz shift i ctrl."
279 |
280 | #: Settings.ui.h:50
281 | msgid "Use keyboard shortcuts to activate apps"
282 | msgstr "Aktiviraj programe prečicama tastature"
283 |
284 | #: Settings.ui.h:51
285 | msgid "Behaviour when clicking on the icon of a running application."
286 | msgstr "Ponašanje pri kliku na pokrenuti program."
287 |
288 | #: Settings.ui.h:52
289 | msgid "Click action"
290 | msgstr "Radnja klika"
291 |
292 | #: Settings.ui.h:53
293 | msgid "Minimize"
294 | msgstr "minimizuj"
295 |
296 | #: Settings.ui.h:54
297 | msgid "Behaviour when scrolling on the icon of an application."
298 | msgstr "Ponašanje pri klizanju na ikonicu pokrenutog programa."
299 |
300 | #: Settings.ui.h:55
301 | msgid "Scroll action"
302 | msgstr "Radnja klizanja na ikonicu"
303 |
304 | #: Settings.ui.h:56
305 | msgid "Do nothing"
306 | msgstr "ništa"
307 |
308 | #: Settings.ui.h:57
309 | msgid "Switch workspace"
310 | msgstr "prebaci radni prostor"
311 |
312 | #: Settings.ui.h:58
313 | msgid "Behavior"
314 | msgstr "Ponašanje"
315 |
316 | #: Settings.ui.h:59
317 | msgid ""
318 | "Few customizations meant to integrate the dock with the default GNOME theme. "
319 | "Alternatively, specific options can be enabled below."
320 | msgstr ""
321 | "Nekoliko postavki namenjenih ugrađivanju doka u osnovnu temu Gnoma. "
322 | "Alternativno, posebne postavke se mogu urediti ispod."
323 |
324 | #: Settings.ui.h:60
325 | msgid "Use built-in theme"
326 | msgstr "Koristi ugrađenu temu"
327 |
328 | #: Settings.ui.h:61
329 | msgid "Save space reducing padding and border radius."
330 | msgstr "Čuva prostor sužavanjem popune i opsega ivica."
331 |
332 | #: Settings.ui.h:62
333 | msgid "Shrink the dash"
334 | msgstr "Skupi ploču"
335 |
336 | #: Settings.ui.h:63
337 | msgid "Show a dot for each windows of the application."
338 | msgstr "Prikazuje tačku za svaki prozor programa."
339 |
340 | #: Settings.ui.h:64
341 | msgid "Show windows counter indicators"
342 | msgstr "Prikaz indikatora brojača prozora."
343 |
344 | #: Settings.ui.h:65
345 | msgid "Set the background color for the dash."
346 | msgstr "Postavi pozadinsku boju ploče."
347 |
348 | #: Settings.ui.h:66
349 | msgid "Customize the dash color"
350 | msgstr "Prilagodi boju ploče"
351 |
352 | #: Settings.ui.h:67
353 | msgid "Tune the dash background opacity."
354 | msgstr "Prilagodi prozirnost pozadine ploče."
355 |
356 | #: Settings.ui.h:68
357 | msgid "Customize opacity"
358 | msgstr "Prilagoćavanje prozirnosti"
359 |
360 | #: Settings.ui.h:69
361 | msgid "Opacity"
362 | msgstr "Prozirnost"
363 |
364 | #: Settings.ui.h:70
365 | msgid "Enable Unity7 like glossy backlit items"
366 | msgstr "Uključi pozadinske efekte poput Unity7"
367 |
368 | #: Settings.ui.h:71
369 | msgid "Force straight corner\n"
370 | msgstr "Nametni ravne uglove\n"
371 |
372 | #: Settings.ui.h:73
373 | msgid "Appearance"
374 | msgstr "Izgled"
375 |
376 | #: Settings.ui.h:74
377 | msgid "version: "
378 | msgstr "verzija: "
379 |
380 | #: Settings.ui.h:75
381 | msgid "Moves the dash out of the overview transforming it in a dock"
382 | msgstr "Pomera ploču iz globalnog prikaza, pretvarajući je u dok"
383 |
384 | #: Settings.ui.h:76
385 | msgid "Created by"
386 | msgstr "Napravi"
387 |
388 | #: Settings.ui.h:77
389 | msgid "Webpage"
390 | msgstr "Veb stranica"
391 |
392 | #: Settings.ui.h:78
393 | msgid ""
394 | "This program comes with ABSOLUTELY NO WARRANTY.\n"
395 | "See the GNU General Public License, version 2 or later for details."
397 | msgstr ""
398 | "Ovaj program se dostavlja BEZ IKAKVIH GARANCIJA.\n"
399 | "Pogledajte GNUovu Opštu Javnu licencu, verzija 2 ili kasnija, za detalje."
401 |
402 | #: Settings.ui.h:80
403 | msgid "About"
404 | msgstr "O programu"
405 |
406 | #: Settings.ui.h:81
407 | msgid "Show the dock by mouse hover on the screen edge."
408 | msgstr "Prikaži dok prelazom miša peko ivice ekrana."
409 |
410 | #: Settings.ui.h:82
411 | msgid "Autohide"
412 | msgstr "Automatsko sakrivanje"
413 |
414 | #: Settings.ui.h:83
415 | msgid "Push to show: require pressure to show the dock"
416 | msgstr "Prikaz pritiskom: zahteva pritisak za prikaz doka"
417 |
418 | #: Settings.ui.h:84
419 | msgid "Enable in fullscreen mode"
420 | msgstr "Omogući u celoekranskom režimu"
421 |
422 | #: Settings.ui.h:85
423 | msgid "Show the dock when it doesn't obstruct application windows."
424 | msgstr "Prikazuje dok kada nije na putu prozorima programa."
425 |
426 | #: Settings.ui.h:86
427 | msgid "Dodge windows"
428 | msgstr "Izbegavanje rozora"
429 |
430 | #: Settings.ui.h:87
431 | msgid "All windows"
432 | msgstr "Svi prozori"
433 |
434 | #: Settings.ui.h:88
435 | msgid "Only focused application's windows"
436 | msgstr "Samo prozor fokusiranog programa"
437 |
438 | #: Settings.ui.h:89
439 | msgid "Only maximized windows"
440 | msgstr "Samo maksimizovani prozori"
441 |
442 | #: Settings.ui.h:90
443 | msgid "Animation duration (s)"
444 | msgstr "Trajanje(a) animacije"
445 |
446 | #: Settings.ui.h:91
447 | msgid "Show timeout (s)"
448 | msgstr "Zastoj prikazivanja"
449 |
450 | #: Settings.ui.h:92
451 | msgid "Pressure threshold"
452 | msgstr "Prag pritiska"
453 |
454 | #~ msgid "0.000"
455 | #~ msgstr "0,000"
456 |
457 | #, fuzzy
458 | #~ msgid ""
459 | #~ "With fixed icon size, only the edge of the dock and the Show "
460 | #~ "Applications icon are active."
461 | #~ msgstr ""
462 | #~ "Ako se ikone preklapaju na doku, prikazuje se samo ikona Prikaži "
463 | #~ "programe."
464 |
465 | #~ msgid "Switch workspace by scrolling on the dock"
466 | #~ msgstr "Promena radnog prostora klizanjem po doku"
467 |
468 | #~ msgid "Only consider windows of the focused application"
469 | #~ msgstr "Razmatraj samo prozor fokusiranog programa"
470 |
--------------------------------------------------------------------------------