diff --git a/esbuild.mjs b/esbuild.mjs index 1f78905a..1764bb8e 100644 --- a/esbuild.mjs +++ b/esbuild.mjs @@ -9,6 +9,10 @@ import types from '@babel/types'; import traverseBabel from '@babel/traverse'; import generatorBabel from '@babel/generator'; import { ESLint } from "eslint"; +import { fileURLToPath } from 'url'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); const traverse = traverseBabel.default; const generator = generatorBabel.default; @@ -56,8 +60,9 @@ function init(meta) { const prefsBanner = `// For GNOME Shell version before 45 const Me = imports.misc.extensionUtils.getCurrentExtension(); class ExtensionPreferences { - constructor(metadata) { + constructor(metadata, path) { this.metadata = metadata; + this.path = path; } getSettings() { @@ -73,7 +78,7 @@ function init() { function fillPreferencesWindow(window) { const metadata = imports.misc.extensionUtils.getCurrentExtension().metadata; - const prefs = new TilingShellExtensionPreferences(metadata); + const prefs = new TilingShellExtensionPreferences(metadata, Me.dir.get_path()); prefs.fillPreferencesWindow(window); } `; @@ -88,11 +93,35 @@ async function preprocess(files) { // drop lines tagged with "// @esbuild-drop-next-line" text = text.replace(/\/\/\s*@esbuild-drop-next-line\s*\n.*?;/gs, ''); + // Convert @ path aliases to relative imports + text = text.replace( + /import\s+([\s\S]*?)\s+from\s+['"]@([^'"]+)['"]/g, + (_match, imports, aliasPath) => { + // Remove .js extension if present for resolution + aliasPath = aliasPath.replace(/\.js$/, ''); + + // Replace dots with slashes to handle paths like @gi.prefs -> gi/prefs + aliasPath = aliasPath.replace(/\./g, '/'); + + // Calculate relative path from current file to src/ + const currentFileDir = path.dirname(filename); + const targetPath = path.resolve(__dirname, distDir, aliasPath); + let relativePath = path.relative(currentFileDir, targetPath).replace(/\\/g, '/'); + + // Ensure relative path starts with ./ or ../ + if (!relativePath.startsWith('.')) { + relativePath = './' + relativePath; + } + + return `import ${imports} from "${relativePath}.js"`; + } + ); + // Ensure every import has ".js" at end end, excluding GJS imports text = text.replace( /import\s+([\s\S]*?)\s+from\s+['"]([^'"]+)['"]/g, (_match, imports, importPath) => { - if (!importPath.endsWith('.js') && !importPath.startsWith('gi://')) { + if (!importPath.endsWith('.js') && !importPath.startsWith('gi://') && !importPath.startsWith('resource://')) { importPath += '.js'; } return `import ${imports} from "${importPath}"`; @@ -198,13 +227,36 @@ function convertImports(text, currentFilePath, rootDirName) { // replace import of Config text = text.replaceAll('import * as Config from "resource:///org/gnome/Shell/Extensions/js/misc/config.js";', "const Config = imports.misc.config;"); + // handle @ path aliases (convert to relative imports) + text = text.replace( + /import\s+(?:\{([^}]+)\}|([^\s]+))\s+from\s+"@([^"]+)";/gm, + (match, destructured, single, aliasPath) => { + // Remove .js extension if present + aliasPath = aliasPath.replace(/\.js$/, ''); + + // Convert @ alias to Me.imports path + const modulePath = aliasPath.replace(/\//g, '.'); + + if (destructured) { + return destructured + .split(',') + .map(i => i.trim()) + .filter(Boolean) + .map(v => `const ${v} = Me.imports.${modulePath}.${v};`) + .join('\n'); + } else { + return `const ${single} = Me.imports.${modulePath}.${single};`; + } + } + ); + // handle relative imports const relativeCurrent = currentFilePath.replace( new RegExp(`^${rootDirName}[\\\\/]`), '' ); text = text.replace( - /import\s+(?:\{([\s\S]+?)\}|([^\s]+))\s+from\s+"([\.]{1,2}\/[^"]+)";/gm, + /import\s+(?:\{([^}]+)\}|([^\s]+))\s+from\s+"(\.{1,2}\/[^"]+)";/gm, (_, destructured, single, importPath) => { const currentAbs = path.resolve(rootDirName, relativeCurrent); const fullPath = path.resolve(path.dirname(currentAbs), importPath).replace(/\.(js|ts)$/, ''); @@ -278,8 +330,9 @@ function printError(text) { async function processLegacyFiles(files) { await Promise.all(files.map(async (filePath) => { - const jsFileContent = await fs.readFile(filePath, 'utf-8'); - const convertedContent = convertImports(jsFileContent, filePath, distLegacyDir); + try { + const jsFileContent = await fs.readFile(filePath, 'utf-8'); + const convertedContent = convertImports(jsFileContent, filePath, distLegacyDir); // append banners let finalContent; @@ -296,13 +349,18 @@ async function processLegacyFiles(files) { } await fs.writeFile(filePath, finalContent, 'utf-8'); + } catch (error) { + console.error(`\x1b[31mError processing file: ${filePath}\x1b[0m`); + console.error(error); + throw error; + } })); } // build extension build({ logLevel: "info", - entryPoints: ['src/**/*.ts', 'src/styles/stylesheet.scss', 'src/prefs.ts'], + entryPoints: ['src/**/*.ts', 'src/styles/stylesheet.scss', 'src/styles/prefs.scss', 'src/prefs.ts'], outdir: distDir, bundle: false, treeShaking: false, @@ -319,6 +377,8 @@ build({ // Post-build sync steps fsSync.renameSync(path.resolve(distDir, "styles/stylesheet.css"), path.resolve(distDir, "stylesheet.css")); fsSync.cpSync(resourcesDir, distDir, { recursive: true }); + fsSync.renameSync(path.resolve(distDir, "styles/prefs.css"), path.resolve(distDir, "prefs.css")); + fsSync.cpSync(resourcesDir, distDir, { recursive: true }); // preprocess extension files in parallel console.log(" 🛠️ ", "Preprocessing extension files..."); diff --git a/package.json b/package.json index a53e786b..5131575b 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,17 @@ { "name": "tilingshell", - "version": "17.2", + "version": "17.3", "author": "Domenico Ferraro ", "private": true, "license": "GPL v2.0", "scripts": { - "build": "npm run clean && node esbuild.mjs && npm run build:schema", + "build": "npm run clean && node esbuild.mjs && npm run build:schema && npm run build:resources", "clean": "rm -rf dist; rm -rf dist_legacy", "update-translations": "npm run create:translations && npm run merge:translations && npm run build:translations", "build:schema": "npm run clean:schema && glib-compile-schemas ./resources/schemas --targetdir=./dist/schemas/ && cp ./dist/schemas/ ./dist_legacy/ -r", + "build:resources": "npm run clean:resources && glib-compile-resources --sourcedir=./resources --target=./dist/resources.gresource ./resources/resources.gresource.xml && cp ./dist/*.gresource ./dist_legacy/ -r", "clean:schema": "rm -rf ./dist/schemas/*.compiled; rm -rf ./dist_legacy/schemas/*.compiled", + "clean:resources": "rm -rf ./dist/*.gresource; rm -rf ./dist_legacy/*.gresource", "build:package": "npm run clean:package; npm run build && cd ./dist && zip -qr ../tilingshell@ferrarodomenico.com.zip * && cd ../dist_legacy && zip -qr ../GNOME.42-44.tilingshell@ferrarodomenico.com.zip *", "clean:package": "rm -rf './dist/tilingshell@ferrarodomenico.com.zip'; rm -rf './dist_legacy/tilingshell@ferrarodomenico.com.zip'", "install:extension": "mkdir -p ~/.local/share/gnome-shell/extensions/tilingshell@ferrarodomenico.com && cp ./dist$([ $(gnome-shell --version | grep -o -E '[0-9]+' | head -n 1) -le 44 ] && echo '_legacy')/* ~/.local/share/gnome-shell/extensions/tilingshell@ferrarodomenico.com/ -r", diff --git a/resources/icons/chevron-left-symbolic.svg b/resources/icons/chevron-left-symbolic.svg new file mode 100644 index 00000000..cb38cced --- /dev/null +++ b/resources/icons/chevron-left-symbolic.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/resources/icons/chevron-right-symbolic.svg b/resources/icons/chevron-right-symbolic.svg new file mode 100644 index 00000000..1408ff6a --- /dev/null +++ b/resources/icons/chevron-right-symbolic.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/resources/icons/edge-adaptive-symbolic.svg b/resources/icons/edge-adaptive-symbolic.svg new file mode 100644 index 00000000..d1ce9177 --- /dev/null +++ b/resources/icons/edge-adaptive-symbolic.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/resources/icons/edge-default-symbolic.svg b/resources/icons/edge-default-symbolic.svg new file mode 100644 index 00000000..65d3c463 --- /dev/null +++ b/resources/icons/edge-default-symbolic.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/resources/icons/edge-granular-symbolic.svg b/resources/icons/edge-granular-symbolic.svg new file mode 100644 index 00000000..84f52562 --- /dev/null +++ b/resources/icons/edge-granular-symbolic.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/resources/locale/cs/LC_MESSAGES/tilingshell.mo b/resources/locale/cs/LC_MESSAGES/tilingshell.mo index f859b754..7dad27a2 100644 Binary files a/resources/locale/cs/LC_MESSAGES/tilingshell.mo and b/resources/locale/cs/LC_MESSAGES/tilingshell.mo differ diff --git a/resources/locale/de/LC_MESSAGES/tilingshell.mo b/resources/locale/de/LC_MESSAGES/tilingshell.mo index 272d2da1..5bf37d25 100644 Binary files a/resources/locale/de/LC_MESSAGES/tilingshell.mo and b/resources/locale/de/LC_MESSAGES/tilingshell.mo differ diff --git a/resources/locale/es/LC_MESSAGES/tilingshell.mo b/resources/locale/es/LC_MESSAGES/tilingshell.mo index 19a7a051..baa06b1d 100644 Binary files a/resources/locale/es/LC_MESSAGES/tilingshell.mo and b/resources/locale/es/LC_MESSAGES/tilingshell.mo differ diff --git a/resources/locale/fr/LC_MESSAGES/tilingshell.mo b/resources/locale/fr/LC_MESSAGES/tilingshell.mo index 00dabb53..77d7b48b 100644 Binary files a/resources/locale/fr/LC_MESSAGES/tilingshell.mo and b/resources/locale/fr/LC_MESSAGES/tilingshell.mo differ diff --git a/resources/locale/it/LC_MESSAGES/tilingshell.mo b/resources/locale/it/LC_MESSAGES/tilingshell.mo index 4c92cd5e..e813ff4a 100644 Binary files a/resources/locale/it/LC_MESSAGES/tilingshell.mo and b/resources/locale/it/LC_MESSAGES/tilingshell.mo differ diff --git a/resources/locale/ka/LC_MESSAGES/tilingshell.mo b/resources/locale/ka/LC_MESSAGES/tilingshell.mo new file mode 100644 index 00000000..38478120 Binary files /dev/null and b/resources/locale/ka/LC_MESSAGES/tilingshell.mo differ diff --git a/resources/locale/nl/LC_MESSAGES/tilingshell.mo b/resources/locale/nl/LC_MESSAGES/tilingshell.mo index 86a078e1..c2dabee9 100644 Binary files a/resources/locale/nl/LC_MESSAGES/tilingshell.mo and b/resources/locale/nl/LC_MESSAGES/tilingshell.mo differ diff --git a/resources/locale/pl/LC_MESSAGES/tilingshell.mo b/resources/locale/pl/LC_MESSAGES/tilingshell.mo index 1ea4bb8b..9d64850a 100644 Binary files a/resources/locale/pl/LC_MESSAGES/tilingshell.mo and b/resources/locale/pl/LC_MESSAGES/tilingshell.mo differ diff --git a/resources/locale/pt_BR/LC_MESSAGES/tilingshell.mo b/resources/locale/pt_BR/LC_MESSAGES/tilingshell.mo index 9e97fd5b..ba9f9504 100644 Binary files a/resources/locale/pt_BR/LC_MESSAGES/tilingshell.mo and b/resources/locale/pt_BR/LC_MESSAGES/tilingshell.mo differ diff --git a/resources/locale/ru/LC_MESSAGES/tilingshell.mo b/resources/locale/ru/LC_MESSAGES/tilingshell.mo index ae2ced12..f0eb9f5c 100644 Binary files a/resources/locale/ru/LC_MESSAGES/tilingshell.mo and b/resources/locale/ru/LC_MESSAGES/tilingshell.mo differ diff --git a/resources/locale/tr/LC_MESSAGES/tilingshell.mo b/resources/locale/tr/LC_MESSAGES/tilingshell.mo index 27443a4f..9514f10f 100644 Binary files a/resources/locale/tr/LC_MESSAGES/tilingshell.mo and b/resources/locale/tr/LC_MESSAGES/tilingshell.mo differ diff --git a/resources/locale/uk/LC_MESSAGES/tilingshell.mo b/resources/locale/uk/LC_MESSAGES/tilingshell.mo index 50f8c72a..88864ffe 100644 Binary files a/resources/locale/uk/LC_MESSAGES/tilingshell.mo and b/resources/locale/uk/LC_MESSAGES/tilingshell.mo differ diff --git a/resources/locale/zh_CN/LC_MESSAGES/tilingshell.mo b/resources/locale/zh_CN/LC_MESSAGES/tilingshell.mo index a8883c5f..3f7aeff3 100644 Binary files a/resources/locale/zh_CN/LC_MESSAGES/tilingshell.mo and b/resources/locale/zh_CN/LC_MESSAGES/tilingshell.mo differ diff --git a/resources/locale/zh_TW/LC_MESSAGES/tilingshell.mo b/resources/locale/zh_TW/LC_MESSAGES/tilingshell.mo index 5adaab2f..40a5e668 100644 Binary files a/resources/locale/zh_TW/LC_MESSAGES/tilingshell.mo and b/resources/locale/zh_TW/LC_MESSAGES/tilingshell.mo differ diff --git a/resources/metadata.json b/resources/metadata.json index 36cb8841..d3ba685a 100644 --- a/resources/metadata.json +++ b/resources/metadata.json @@ -13,7 +13,7 @@ "49" ], "version": 99, - "version-name": "17.2", + "version-name": "17.3", "url": "https://github.com/domferr/tilingshell", "settings-schema": "org.gnome.shell.extensions.tilingshell", "gettext-domain": "tilingshell", diff --git a/resources/resources.gresource.xml b/resources/resources.gresource.xml new file mode 100644 index 00000000..0676ec01 --- /dev/null +++ b/resources/resources.gresource.xml @@ -0,0 +1,8 @@ + + + + icons/edge-adaptive-symbolic.svg + icons/edge-default-symbolic.svg + icons/edge-granular-symbolic.svg + + diff --git a/resources/schemas/org.gnome.shell.extensions.tilingshell.gschema.xml b/resources/schemas/org.gnome.shell.extensions.tilingshell.gschema.xml index fe670da7..2921e737 100644 --- a/resources/schemas/org.gnome.shell.extensions.tilingshell.gschema.xml +++ b/resources/schemas/org.gnome.shell.extensions.tilingshell.gschema.xml @@ -27,6 +27,11 @@ Enable snap assist Move the window on top of the screen to snap assist it. + + false + Sync layout when tiling with Snap Assistant + Change the desktop layout to match the layout used when tiling a window with Snap Assistant. + true Shows indicator @@ -102,6 +107,11 @@ Enable auto tiling Automatically tile a new window to the best tile according to the current layout. + + false + Raise tiled windows together + When one tiled window is raised, raise all tiled windows into the foreground together. + '{}' Overridden settings @@ -189,8 +199,17 @@ false - Enable window suggestions for screen edge snapping - Suggests windows to occupy empty tiles when snapping to screen edges. + Enable window suggestions for screen edge tiling + Suggests windows to occupy empty tiles when tiling to screen edges. + + + '[]' + Application custom rules + List of applications with custom feature settings (custom border, tiling, snap to border). + + 'default' + Edge tiling behavior + Controls how windows snap to screen edges:\n'default' (corners snap to quarters, edges to halves),\n'adaptive' (snap to layout tiles by column),\n'granular' (snap to exact tile under cursor). diff --git a/src/components/applicationPicker.ts b/src/components/applicationPicker.ts new file mode 100644 index 00000000..fdfe6be1 --- /dev/null +++ b/src/components/applicationPicker.ts @@ -0,0 +1,337 @@ +import { Gtk, Adw, Gio } from '@gi.prefs'; +import { gettext as _ } from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js'; +import { logger } from '@utils/logger'; + +const debug = logger('ApplicationPicker'); + +interface ApplicationInfo { + name: string; + appId: string; + icon?: string; +} + +export class ApplicationPicker { + /** + * Get a list of installed applications with their application IDs + */ + private static getInstalledApplications(): ApplicationInfo[] { + const applications: ApplicationInfo[] = []; + const appInfos = Gio.AppInfo.get_all(); + + for (const appInfo of appInfos) { + if (!appInfo.should_show()) continue; + + const desktopApp = appInfo as Gio.DesktopAppInfo; + const name = appInfo.get_display_name() || appInfo.get_name(); + + if (!name) continue; + const appId = ApplicationPicker.tryGetAppId(desktopApp); + + if (!appId) continue; + + // Get icon + const iconObj = appInfo.get_icon(); + const icon = iconObj ? iconObj.to_string() || '' : ''; + + applications.push({ name, appId, icon }); + } + + // Sort by name + applications.sort((a, b) => a.name.localeCompare(b.name)); + + return applications; + } + + private static tryGetAppId( + desktopApp: Gio.DesktopAppInfo, + ): string | undefined { + const desktopId = desktopApp.get_id(); + if (!desktopId) return undefined; + + // Remove .desktop extension and convert to lowercase + const appId = desktopId.replace(/\.desktop$/, '').toLowerCase(); + + return appId; + } + + /** + * Show application picker dialog + */ + static showPicker( + parentWindow: Gtk.Window, + existingAppIds: Set, + onSelect: (appName: string, appId: string) => void, + ): void { + // Create dialog window + const dialog = new Adw.Window({ + modal: true, + hide_on_close: true, + transient_for: parentWindow, + default_width: 500, + default_height: 600, + }); + + // Create header bar + const headerBar = new Adw.HeaderBar(); + dialog.set_title(_('Select Application')); + + // Create toolbar view + const toolbarView = new Adw.ToolbarView(); + toolbarView.add_top_bar(headerBar); + + // Create main content box + const contentBox = new Gtk.Box({ + orientation: Gtk.Orientation.VERTICAL, + spacing: 0, + }); + + // Search entry + const searchEntry = new Gtk.SearchEntry({ + placeholder_text: _('Search applications...'), + margin_start: 12, + margin_end: 12, + margin_top: 12, + margin_bottom: 6, + }); + + contentBox.append(searchEntry); + + // Scrolled window for app list + const scrolledWindow = new Gtk.ScrolledWindow({ + vexpand: true, + hexpand: true, + }); + + const listBox = new Gtk.ListBox({ + selection_mode: Gtk.SelectionMode.NONE, + css_classes: ['boxed-list'], + margin_start: 12, + margin_end: 12, + margin_top: 6, + margin_bottom: 12, + }); + + scrolledWindow.set_child(listBox); + contentBox.append(scrolledWindow); + + // Info label + const infoLabel = new Gtk.Label({ + label: _( + 'Tip: If an application is not listed, you can enter it manually below.', + ), + wrap: true, + margin_start: 12, + margin_end: 12, + margin_bottom: 12, + css_classes: ['dim-label', 'caption'], + halign: Gtk.Align.START, + }); + contentBox.append(infoLabel); + + // Manual entry section + const manualBox = new Gtk.Box({ + orientation: Gtk.Orientation.VERTICAL, + spacing: 12, + margin_start: 12, + margin_end: 12, + margin_bottom: 12, + }); + + const manualLabel = new Gtk.Label({ + label: _('Or enter manually:'), + halign: Gtk.Align.START, + css_classes: ['heading'], + }); + manualBox.append(manualLabel); + + // Manual name entry + const nameEntry = new Gtk.Entry({ + placeholder_text: _('Application Name'), + hexpand: true, + }); + manualBox.append(nameEntry); + + // Manual application ID entry + const appIdEntry = new Gtk.Entry({ + placeholder_text: _('Application ID (e.g., org.gnome.Nautilus)'), + hexpand: true, + }); + manualBox.append(appIdEntry); + + // Error label for duplicates + const errorLabel = new Gtk.Label({ + label: _('This application is already in the list'), + wrap: true, + halign: Gtk.Align.START, + css_classes: ['error', 'caption'], + visible: false, + }); + manualBox.append(errorLabel); + + // Manual add button + const addManualButton = new Gtk.Button({ + label: _('Add Manually'), + css_classes: ['suggested-action'], + halign: Gtk.Align.END, + sensitive: false, + }); + manualBox.append(addManualButton); + + contentBox.append(manualBox); + + // Get applications + const applications = this.getInstalledApplications(); + const rows = new Map(); + + // Populate list + for (const app of applications) { + const isDuplicate = existingAppIds.has(app.appId.toLowerCase()); + + const row = new Gtk.ListBoxRow({ + activatable: !isDuplicate, + }); + + const rowBox = new Gtk.Box({ + orientation: Gtk.Orientation.HORIZONTAL, + spacing: 12, + margin_start: 12, + margin_end: 12, + margin_top: 8, + margin_bottom: 8, + }); + + // App icon + if (app.icon) { + const icon = new Gtk.Image({ + icon_name: app.icon, + pixel_size: 32, + valign: Gtk.Align.CENTER, + }); + rowBox.append(icon); + } + + // App info + const labelBox = new Gtk.Box({ + orientation: Gtk.Orientation.VERTICAL, + spacing: 2, + hexpand: true, + valign: Gtk.Align.CENTER, + }); + + const nameLabel = new Gtk.Label({ + label: app.name, + halign: Gtk.Align.START, + wrap: false, + ellipsize: 3, // PANGO_ELLIPSIZE_END + }); + labelBox.append(nameLabel); + + const appIdLabel = new Gtk.Label({ + label: isDuplicate + ? `${app.appId} (${_('already added')})` + : app.appId, + halign: Gtk.Align.START, + css_classes: isDuplicate + ? ['dim-label', 'caption', 'error'] + : ['dim-label', 'caption'], + wrap: false, + ellipsize: 3, + }); + labelBox.append(appIdLabel); + + rowBox.append(labelBox); + + if (!isDuplicate) { + // Add chevron + const chevron = new Gtk.Image({ + icon_name: 'go-next-symbolic', + valign: Gtk.Align.CENTER, + }); + rowBox.append(chevron); + } + + row.set_child(rowBox); + listBox.append(row); + + if (!isDuplicate) rows.set(row, app); + else row.set_sensitive(false); + } + + // Handle row activation + listBox.connect('row-activated', (_listBox, row) => { + const app = rows.get(row); + if (app) { + onSelect(app.name, app.appId); + dialog.close(); + } + }); + + // Search functionality + listBox.set_filter_func((row) => { + const searchText = searchEntry.get_text().toLowerCase(); + if (!searchText) return true; + + const app = rows.get(row); + if (!app) { + // Check disabled rows too + const child = row.get_child() as Gtk.Box; + if (!child) return false; + + // Get the text from labels + const labelBox = child + .get_first_child() + ?.get_next_sibling() as Gtk.Box; + if (!labelBox) return false; + + const nameLabel = labelBox.get_first_child() as Gtk.Label; + const appIdLabel = nameLabel?.get_next_sibling() as Gtk.Label; + + const name = nameLabel?.get_label().toLowerCase() || ''; + const appId = appIdLabel?.get_label().toLowerCase() || ''; + + return name.includes(searchText) || appId.includes(searchText); + } + + return ( + app.name.toLowerCase().includes(searchText) || + app.appId.toLowerCase().includes(searchText) + ); + }); + + searchEntry.connect('search-changed', () => { + listBox.invalidate_filter(); + }); + + // Manual entry validation + const updateManualButton = () => { + const name = nameEntry.get_text().trim(); + const appId = appIdEntry.get_text().trim(); + const isDuplicate = + appId.length > 0 && existingAppIds.has(appId.toLowerCase()); + + errorLabel.set_visible(isDuplicate); + addManualButton.set_sensitive( + name.length > 0 && appId.length > 0 && !isDuplicate, + ); + }; + + nameEntry.connect('changed', updateManualButton); + appIdEntry.connect('changed', updateManualButton); + + addManualButton.connect('clicked', () => { + const name = nameEntry.get_text().trim(); + const appId = appIdEntry.get_text().trim(); + if (name && appId) { + onSelect(name, appId); + dialog.close(); + } + }); + + toolbarView.set_content(contentBox); + dialog.set_content(toolbarView); + dialog.present(); + + // Focus search entry + searchEntry.grab_focus(); + } +} diff --git a/src/components/customApplicationRulePrefs.ts b/src/components/customApplicationRulePrefs.ts new file mode 100644 index 00000000..56a44bdf --- /dev/null +++ b/src/components/customApplicationRulePrefs.ts @@ -0,0 +1,453 @@ +import { Gtk, Adw } from '@gi.prefs'; +import Settings from '@settings/settings'; +import { logger } from '@utils/logger'; +import { gettext as _ } from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js'; +import { ConfigRules } from './customRulesManager'; +import { ApplicationPicker } from './applicationPicker'; + +const debug = logger('customApplicationRulePrefs'); + +interface ApplicationRowData { + row: Adw.ActionRow; + appId: string; + config: ConfigRules; +} + +export class CustomApplicationRulePrefs { + private existingAppsId: Set = new Set(); + private applicationRows: ApplicationRowData[] = []; + private customRulesGroup!: Adw.PreferencesGroup; + + /** + * Build the custom rules preferences group + */ + buildCustomRulesGroup( + parentWindow: Adw.PreferencesWindow, + ): Adw.PreferencesGroup { + this.customRulesGroup = new Adw.PreferencesGroup({ + title: _('Application Custom Rules'), + description: _( + 'Configure which features are enabled for specific applications', + ), + }); + + // Add fullscreen default rule first (non-deletable) + const fullscreenDefaultRow = this.createCustomRulesApplicationRow( + _('Fullscreen Applications'), + 'fullscreen', + { + customBorder: false, + autoTiling: false, + snapAssist: false, + windowSuggestions: false, + resizeComplementing: false, + spanMultipleTiles: false, + }, + true, // isDefault + ); + this.customRulesGroup.add(fullscreenDefaultRow); + + // Load customRules from settings + const savedCustomRules = Settings.get_application_custom_rules(); + savedCustomRules.forEach((app) => { + const appRow = this.createCustomRulesApplicationRow( + app.name, + app.appId, + app.ruleConfig, + ); + this.customRulesGroup.add(appRow); + }); + + // Add button to add new application to customRules + const addAppBtn = this.buildButtonRow( + _('Add Application'), + _('Add application to customRules'), + _('Configure features for a new application'), + () => { + ApplicationPicker.showPicker( + parentWindow, + this.existingAppsId, + (appName, appId) => { + debug(`Adding application: ${appName} (${appId})`); + const newAppRow = this.createCustomRulesApplicationRow( + appName, + appId, + ); + // Insert before the "Add Application" button + // Remove button, add new row, then re-add button to keep it at the bottom + this.customRulesGroup.remove(addAppBtn); + this.customRulesGroup.add(newAppRow); + this.customRulesGroup.add(addAppBtn); + this.saveCustomRules(); + }, + ); + }, + ); + this.customRulesGroup.add(addAppBtn); + + return this.customRulesGroup; + } + + /** + * Save custom rules to settings + */ + private saveCustomRules(): void { + const customRules = this.applicationRows.map( + ({ row, appId, config }) => { + return { + name: row.get_title(), + appId, + ruleConfig: config, + }; + }, + ); + Settings.save_application_custom_rules(customRules); + } + + /** + * Create a custom rules application row + */ + private createCustomRulesApplicationRow( + appName: string, + appId: string, + config: ConfigRules = { + customBorder: true, + autoTiling: true, + snapAssist: true, + windowSuggestions: true, + resizeComplementing: true, + spanMultipleTiles: true, + }, + isDefault = false, + ): Adw.ActionRow { + const ruleConfig = Object.assign( + { + customBorder: true, + autoTiling: true, + snapAssist: true, + windowSuggestions: true, + resizeComplementing: true, + spanMultipleTiles: true, + }, + config, + ); + + const appRow = new Adw.ActionRow({ + title: appName, + subtitle: isDefault + ? _('Default rule (cannot be deleted)') + : `App ID: ${appId}`, + activatable: true, + }); + + // Add chevron icon to indicate it opens a window + appRow.add_suffix( + new Gtk.Image({ + icon_name: 'go-next-symbolic', + valign: Gtk.Align.CENTER, + }), + ); + + if (!isDefault && appId) this.existingAppsId.add(appId.toLowerCase()); + + // Store row with config (only for custom rules) + if (!isDefault) { + const rowData: ApplicationRowData = { + row: appRow, + appId, + config: ruleConfig, + }; + this.applicationRows.push(rowData); + } + + // Open rules window when row is clicked + appRow.connect('activated', () => { + this.showRulesWindow(appName, appId, ruleConfig, isDefault); + }); + + return appRow; + } + + /** + * Show window with grouped rules for an application + */ + private showRulesWindow( + appName: string, + appId: string, + config: ConfigRules, + isDefault: boolean, + ): void { + // Create dialog window + const rulesWindow = new Adw.Window({ + modal: true, + hide_on_close: true, + default_width: 500, + default_height: 600, + }); + + // Create header bar + const headerBar = new Adw.HeaderBar(); + rulesWindow.set_title(appName); + + // Create toolbar view + const toolbarView = new Adw.ToolbarView(); + toolbarView.add_top_bar(headerBar); + + // Create scrollable content + const scrolledWindow = new Gtk.ScrolledWindow({ + vexpand: true, + hexpand: true, + }); + + const preferencesPage = new Adw.PreferencesPage(); + scrolledWindow.set_child(preferencesPage); + + // Application info group + const infoGroup = new Adw.PreferencesGroup({ + title: _('Application Information'), + }); + + const nameRow = new Adw.ActionRow({ + title: _('Name'), + subtitle: appName, + activatable: false, + }); + infoGroup.add(nameRow); + + const appIdRow = new Adw.ActionRow({ + title: _('Application ID'), + subtitle: isDefault ? _('N/A (default rule)') : appId, + activatable: false, + }); + infoGroup.add(appIdRow); + preferencesPage.add(infoGroup); + + // Appearance Section + const appearenceGroup = new Adw.PreferencesGroup({ + title: _('Appearance'), + description: _('Configure the appearance of Tiling Shell'), + }); + + const customBorderSwitch = new Gtk.Switch({ + vexpand: false, + valign: Gtk.Align.CENTER, + active: config.customBorder, + sensitive: !isDefault, + }); + if (!isDefault) { + customBorderSwitch.connect('notify::active', () => { + config.customBorder = customBorderSwitch.get_active(); + this.saveCustomRules(); + }); + } + const customBorderRow = new Adw.ActionRow({ + title: _('Custom border'), + subtitle: _('Show custom border for this application'), + activatableWidget: customBorderSwitch, + }); + customBorderRow.add_suffix(customBorderSwitch); + appearenceGroup.add(customBorderRow); + preferencesPage.add(appearenceGroup); + + // Behavior section + const behaviourGroup = new Adw.PreferencesGroup({ + title: _('Behaviour'), + description: _('Configure the behaviour of Tiling Shell'), + }); + + const autoTilingSwitch = new Gtk.Switch({ + vexpand: false, + valign: Gtk.Align.CENTER, + active: config.autoTiling, + sensitive: !isDefault, + }); + if (!isDefault) { + autoTilingSwitch.connect('notify::active', () => { + config.autoTiling = autoTilingSwitch.get_active(); + this.saveCustomRules(); + }); + } + const autoTilingRow = new Adw.ActionRow({ + title: _('Auto-tiling'), + subtitle: _('Automatically tile new windows for this application'), + activatableWidget: autoTilingSwitch, + }); + autoTilingRow.add_suffix(autoTilingSwitch); + behaviourGroup.add(autoTilingRow); + + const spanMultipleTilesSwitch = new Gtk.Switch({ + vexpand: false, + valign: Gtk.Align.CENTER, + active: config.spanMultipleTiles, + sensitive: !isDefault, + }); + if (!isDefault) { + spanMultipleTilesSwitch.connect('notify::active', () => { + config.spanMultipleTiles = spanMultipleTilesSwitch.get_active(); + this.saveCustomRules(); + }); + } + const spanMultipleTilesRow = new Adw.ActionRow({ + title: _('Span multiple tiles'), + subtitle: _('Allow this application to span multiple tiles'), + activatableWidget: spanMultipleTilesSwitch, + }); + spanMultipleTilesRow.add_suffix(spanMultipleTilesSwitch); + behaviourGroup.add(spanMultipleTilesRow); + + const resizeComplementingSwitch = new Gtk.Switch({ + vexpand: false, + valign: Gtk.Align.CENTER, + active: config.resizeComplementing, + sensitive: !isDefault, + }); + if (!isDefault) { + resizeComplementingSwitch.connect('notify::active', () => { + config.resizeComplementing = + resizeComplementingSwitch.get_active(); + this.saveCustomRules(); + }); + } + const resizeComplementingRow = new Adw.ActionRow({ + title: _('Resize complementing windows'), + subtitle: _( + 'Auto-resize nearby windows when this window is resized', + ), + activatableWidget: resizeComplementingSwitch, + }); + resizeComplementingRow.add_suffix(resizeComplementingSwitch); + behaviourGroup.add(resizeComplementingRow); + preferencesPage.add(behaviourGroup); + + // Assistants group + const assistantsGroup = new Adw.PreferencesGroup({ + title: _('Assistants'), + description: _('Helper features and suggestions'), + }); + + const snapAssistSwitch = new Gtk.Switch({ + vexpand: false, + valign: Gtk.Align.CENTER, + active: config.snapAssist, + sensitive: !isDefault, + }); + if (!isDefault) { + snapAssistSwitch.connect('notify::active', () => { + config.snapAssist = snapAssistSwitch.get_active(); + this.saveCustomRules(); + }); + } + const snapAssistRow = new Adw.ActionRow({ + title: _('Snap assistant'), + subtitle: _('Enable snap assistant for this application'), + activatableWidget: snapAssistSwitch, + }); + snapAssistRow.add_suffix(snapAssistSwitch); + assistantsGroup.add(snapAssistRow); + + const windowSuggestionsSwitch = new Gtk.Switch({ + vexpand: false, + valign: Gtk.Align.CENTER, + active: config.windowSuggestions, + sensitive: !isDefault, + }); + if (!isDefault) { + windowSuggestionsSwitch.connect('notify::active', () => { + config.windowSuggestions = windowSuggestionsSwitch.get_active(); + this.saveCustomRules(); + }); + } + const windowSuggestionsRow = new Adw.ActionRow({ + title: _('Window suggestions'), + subtitle: _( + "Suggest this application's windows to fill empty tiles", + ), + activatableWidget: windowSuggestionsSwitch, + }); + windowSuggestionsRow.add_suffix(windowSuggestionsSwitch); + assistantsGroup.add(windowSuggestionsRow); + preferencesPage.add(assistantsGroup); + + // Delete button for custom rules + if (!isDefault) { + const deleteGroup = new Adw.PreferencesGroup({ + title: _('Delete Rule'), + }); + + const deleteButton = new Gtk.Button({ + label: _('Delete Application Rule'), + css_classes: ['destructive-action'], + halign: Gtk.Align.CENTER, + margin_top: 12, + margin_bottom: 12, + }); + deleteButton.connect('clicked', () => { + this.existingAppsId.delete(appId.toLowerCase()); + // Find and remove from array + const index = this.applicationRows.findIndex( + (item) => item.appId === appId, + ); + if (index > -1) { + const rowToRemove = this.applicationRows[index].row; + this.applicationRows.splice(index, 1); + this.customRulesGroup.remove(rowToRemove); + } + this.saveCustomRules(); + rulesWindow.close(); + }); + + const deleteRow = new Adw.ActionRow({ + activatable: false, + }); + deleteRow.set_child(deleteButton); + deleteGroup.add(deleteRow); + preferencesPage.add(deleteGroup); + } else { + // Info for default rule + const subInfoGroup = new Adw.PreferencesGroup(); + const infoRow = new Adw.ActionRow({ + title: _('This is a default rule'), + subtitle: _( + 'All features are disabled for fullscreen applications by default', + ), + activatable: false, + }); + infoRow.add_prefix( + new Gtk.Image({ + icon_name: 'dialog-information-symbolic', + valign: Gtk.Align.CENTER, + }), + ); + subInfoGroup.add(infoRow); + preferencesPage.add(subInfoGroup); + } + + toolbarView.set_content(scrolledWindow); + rulesWindow.set_content(toolbarView); + rulesWindow.present(); + } + + /** + * Build a button row + */ + private buildButtonRow( + label: string, + title: string, + subtitle: string, + onClick: () => void, + styleClass?: string, + ): Adw.ActionRow { + const btn = new Gtk.Button({ + label, + vexpand: false, + valign: Gtk.Align.CENTER, + }); + if (styleClass) btn.add_css_class(styleClass); + btn.connect('clicked', onClick); + + const row = new Adw.ActionRow({ title, subtitle }); + row.add_suffix(btn); + row.set_activatable_widget(btn); + return row; + } +} diff --git a/src/components/customRulesManager.ts b/src/components/customRulesManager.ts new file mode 100644 index 00000000..8fdd8f21 --- /dev/null +++ b/src/components/customRulesManager.ts @@ -0,0 +1,230 @@ +import { GObject, Meta, Shell, Gio } from '@gi.ext'; +import SignalHandling from '@utils/signalHandling'; +import { logger } from '@utils/logger'; +import { registerGObjectClass } from '@utils/gjs'; +import Settings from '@settings/settings'; + +const debug = logger('CustomRulesManager'); + +export type ConfigRules = { + customBorder: boolean; + autoTiling: boolean; + snapAssist: boolean; + windowSuggestions: boolean; + resizeComplementing: boolean; + spanMultipleTiles: boolean; +}; + +export interface CustomApplicationRules { + name: string; + appId: string; + ruleConfig?: ConfigRules; +} + +export class CustomRulesManager extends GObject.Object { + static { registerGObjectClass(this, { + GTypeName: 'CustomRulesManager', + Signals: { + 'customRules-changed': { + param_types: [], + }, + }, + })}; + + // Add emit method to satisfy TypeScript + emit(signal: string, ...args: unknown[]): void { + // @ts-ignore + super.emit(signal, ...args); + } + + private readonly _signals: SignalHandling; + private _customRules: CustomApplicationRules[]; + + constructor() { + super(); + this._signals = new SignalHandling(); + this._customRules = []; + } + + public enable(): void { + this._loadCustomRules(); + + // reload customRules when settings change + this._signals.connect( + Settings, + Settings.KEY_APPLICATION_CUSTOMRULES, + () => { + this._loadCustomRules(); + }, + ); + } + + public destroy(): void { + this._signals.disconnect(); + this._customRules = []; + } + + private _loadCustomRules(): void { + this._customRules = Settings.get_application_custom_rules(); + debug( + `Loaded customRules with ${this._customRules.length} applications`, + ); + this.emit('customRules-changed'); + } + + /** + * Get the default rule for fullscreen applications + * @returns The default rule with all features disabled + */ + private _getFullscreenDefaultRule(): CustomApplicationRules { + return ( + this._customRules.find( + (entry) => entry.appId.toLowerCase() === 'fullscreen', + ) || { + name: 'Fullscreen Applications', + appId: 'fullscreen', + ruleConfig: { + customBorder: false, + autoTiling: false, + snapAssist: false, + windowSuggestions: false, + resizeComplementing: false, + spanMultipleTiles: false, + }, + } + ); + } + + /** + * Get the customRules entry for a window by its application ID + * @param window The window to check + * @returns The customRules entry if found, undefined otherwise + */ + private _getCustomRulesEntry( + window: Meta.Window, + ): CustomApplicationRules | undefined { + // Check if the window is fullscreen first - apply default rule + if (window.is_fullscreen()) return this._getFullscreenDefaultRule(); + + // Get the app using WindowTracker - this properly handles all window types + const tracker = Shell.WindowTracker.get_default(); + const app = tracker.get_window_app(window); + if (!app) return undefined; + + // Get the desktop app info to retrieve the desktop file ID + const desktopApp = app.get_app_info() as Gio.DesktopAppInfo; + if (!desktopApp) return undefined; + + const desktopId = desktopApp.get_id(); + if (!desktopId) return undefined; + + // Remove .desktop extension and convert to lowercase to match stored format + const appId = desktopId.replace(/\.desktop$/, '').toLowerCase(); + + return this._customRules.find( + (entry) => entry.appId.toLowerCase() === appId.toLowerCase(), + ); + } + + /** + * Check if custom border is enabled for a window + * @param window The window to check + * @returns true if custom border should be enabled, false otherwise + */ + public isCustomBorderEnabled(window: Meta.Window): boolean { + const entry = this._getCustomRulesEntry(window); + + if (!entry) return true; + return entry.ruleConfig?.customBorder ?? true; + } + + /** + * Check if auto-tiling is enabled for a window + * @param window The window to check + * @returns true if auto-tiling should be enabled, false otherwise + */ + public isAutoTilingEnabled(window: Meta.Window): boolean { + const entry = this._getCustomRulesEntry(window); + + if (!entry) return true; + return entry.ruleConfig?.autoTiling ?? true; + } + + /** + * Check if snap assistant is enabled for a window + * @param window The window to check + * @returns true if snap assistant should be enabled, false otherwise + */ + public isSnapAssistEnabled(window: Meta.Window): boolean { + const entry = this._getCustomRulesEntry(window); + + if (!entry) return true; + return entry.ruleConfig?.snapAssist ?? true; + } + + /** + * Check if window suggestions are enabled for a window + * @param window The window to check + * @returns true if window suggestions should be enabled, false otherwise + */ + public isWindowSuggestionsEnabled(window: Meta.Window): boolean { + const entry = this._getCustomRulesEntry(window); + + if (!entry) return true; + return entry.ruleConfig?.windowSuggestions ?? true; + } + + /** + * Check if resize complementing windows is enabled for a window + * @param window The window to check + * @returns true if resize complementing should be enabled, false otherwise + */ + public isResizeComplementingEnabled(window: Meta.Window): boolean { + const entry = this._getCustomRulesEntry(window); + + if (!entry) return true; + return entry.ruleConfig?.resizeComplementing ?? true; + } + + /** + * Check if span multiple tiles is enabled for a window + * @param window The window to check + * @returns true if span multiple tiles should be enabled, false otherwise + */ + public isSpanMultipleTilesEnabled(window: Meta.Window): boolean { + const entry = this._getCustomRulesEntry(window); + + if (!entry) return true; + return entry.ruleConfig?.spanMultipleTiles ?? true; + } + + /** + * Check if a window is customRulesed (any feature disabled) + * @param window The window to check + * @returns true if the window is in the customRules, false otherwise + */ + public isCustomRulesed(window: Meta.Window): boolean { + return this._getCustomRulesEntry(window) !== undefined; + } + + /** + * Check if an application ID is managed by customRules + * @param appId The application ID to check + * @returns true if the application ID is in the customRules, false otherwise + */ + public isApplicationManagedByCustomRules(appId: string): boolean { + return ( + this._customRules.find( + (entry) => entry.appId.toLowerCase() === appId.toLowerCase(), + ) !== undefined + ); + } + + /** + * Get all customRules entries + * @returns Array of customRules applications + */ + public getCustomRules(): CustomApplicationRules[] { + return [...this._customRules]; + } +} diff --git a/src/components/editor/editorDialog.ts b/src/components/editor/editorDialog.ts index 62d99234..7bbd0ef9 100644 --- a/src/components/editor/editorDialog.ts +++ b/src/components/editor/editorDialog.ts @@ -32,6 +32,7 @@ export default class EditorDialog extends ModalDialog.ModalDialog { legend: boolean; onClose: () => void; path: string; + onReorderLayout: (_fromIndex: number, _toIndex: number) => void; }) { super({ destroyOnClose: true, @@ -233,26 +234,57 @@ export default class EditorDialog extends ModalDialog.ModalDialog { onSelectLayout: (_ind: number, _lay: Layout) => void; onNewLayout: () => void; onClose: () => void; + onReorderLayout: (_fromIndex: number, _toIndex: number) => void; path: string; }) { const gaps = Settings.get_inner_gaps(1).top > 0 ? this._gapsSize : 0; this._layoutsBoxLayout.destroy_all_children(); params.layouts.forEach((lay, btnInd) => { - const box = new St.BoxLayout({ + const layoutBox = new St.BoxLayout({ xAlign: Clutter.ActorAlign.CENTER, styleClass: 'layout-button-container', ...widgetOrientation(true), }); - this._layoutsBoxLayout.add_child(box); + this._layoutsBoxLayout.add_child(layoutBox); const btn = new LayoutButton( - box, + layoutBox, lay, gaps, this._layoutHeight, this._layoutWidth, ); + const moveAndDeleteButtonsBox = new St.BoxLayout({ + xAlign: Clutter.ActorAlign.CENTER, + //styleClass: 'layout-button-container', + ...widgetOrientation(false), + }); + layoutBox.add_child(moveAndDeleteButtonsBox); if (params.layouts.length > 1) { + // move left button if not first layout + if (btnInd >= 1) { + const moveLeftBtn = new St.Button({ + xExpand: false, + xAlign: Clutter.ActorAlign.CENTER, + styleClass: + 'message-list-clear-button icon-button button delete-layout-button', + }); + moveLeftBtn.child = new St.Icon({ + gicon: Gio.icon_new_for_string( + `${params.path}/icons/chevron-left-symbolic.svg`, + ), + iconSize: 16, + }); + moveLeftBtn.connect('clicked', () => { + params.onReorderLayout(btnInd, btnInd-1); + this._drawLayouts({ + ...params, + layouts: GlobalState.get().layouts, + }); + }); + moveAndDeleteButtonsBox.add_child(moveLeftBtn); + } + // delete button const deleteBtn = new St.Button({ xExpand: false, xAlign: Clutter.ActorAlign.CENTER, @@ -272,7 +304,30 @@ export default class EditorDialog extends ModalDialog.ModalDialog { layouts: GlobalState.get().layouts, }); }); - box.add_child(deleteBtn); + moveAndDeleteButtonsBox.add_child(deleteBtn); + // move right button if not last layout + if (btnInd + 1 < params.layouts.length) { + const moveRightBtn = new St.Button({ + xExpand: false, + xAlign: Clutter.ActorAlign.CENTER, + styleClass: + 'message-list-clear-button icon-button button delete-layout-button', + }); + moveRightBtn.child = new St.Icon({ + gicon: Gio.icon_new_for_string( + `${params.path}/icons/chevron-right-symbolic.svg`, + ), + iconSize: 16, + }); + moveRightBtn.connect('clicked', () => { + params.onReorderLayout(btnInd, btnInd+1); + this._drawLayouts({ + ...params, + layouts: GlobalState.get().layouts, + }); + }); + moveAndDeleteButtonsBox.add_child(moveRightBtn); + } } btn.connect('clicked', () => { params.onSelectLayout(btnInd, lay); diff --git a/src/components/raiseTogether/raiseTogetherManager.ts b/src/components/raiseTogether/raiseTogetherManager.ts new file mode 100644 index 00000000..9cc98751 --- /dev/null +++ b/src/components/raiseTogether/raiseTogetherManager.ts @@ -0,0 +1,94 @@ +import { Meta } from '../../gi/ext'; +import SignalHandling from '../../utils/signalHandling'; +import Settings from '../../settings/settings'; +import { getWindows } from '../../utils/ui'; +import ExtendedWindow from '../tilingsystem/extendedWindow'; + +export class RaiseTogetherManager { + private readonly _signals: SignalHandling; + private readonly _raiseId: { [windowId: string]: { id: number, win: Meta.Window } }; // map window id to 'raised' signal id + + constructor() { + this._signals = new SignalHandling(); + this._raiseId = {}; + } + + public enable(): void { + if (Settings.RAISE_TOGETHER) this._turnOn(); + + // enable/disable based on user preferences + this._signals.connect(Settings, Settings.KEY_RAISE_TOGETHER, () => { + if (Settings.RAISE_TOGETHER) this._turnOn(); + else this._turnOff(); + }); + } + + public destroy() { + this._signals.disconnect(); + + const toDelete: string[] = []; + Object.keys(this._raiseId).forEach((key) => { + this._raiseId[key].win.disconnect(this._raiseId[key].id); + toDelete.push(key); + }); + toDelete.forEach((key) => delete this._raiseId[key]); + } + + public _turnOn() { + getWindows().forEach((win) => this._connectRaisedSignal(win)); + + this._signals.connect( + global.display, + 'window-created', + (_display: Meta.Display, window: Meta.Window) => { + this._connectRaisedSignal(window); + }, + ); + } + + private _turnOff() { + this.destroy(); + this.enable(); + } + + private _connectRaisedSignal(window: Meta.Window) { + const raisedId = this._signals.connect(window, "raised", () => { + if (!(window as ExtendedWindow).assignedTile) return; // window not tiled + + this._onTiledWindowRaised(window); + }); + this._raiseId[window.get_id()] = { id: raisedId, win: window }; + window.connect("unmanaged", () => { + delete this._raiseId[window.get_id()]; + }); + } + + private _onTiledWindowRaised(tiledWindow: Meta.Window) { + const workspace = tiledWindow.get_workspace(); + getWindows(workspace).forEach(winSameWorkspace => { + if (!(winSameWorkspace as ExtendedWindow).assignedTile) return; // window not tiled + + this._stopRaiseSignalHandling(winSameWorkspace); + winSameWorkspace.raise(); + this._restartRaiseSignalHandling(winSameWorkspace); + }); + + this._stopRaiseSignalHandling(tiledWindow); + tiledWindow.raise(); + this._restartRaiseSignalHandling(tiledWindow); + } + + private _stopRaiseSignalHandling(window: Meta.Window) { + const data = this._raiseId[window.get_id()]; + if (!data) return; + + window.block_signal_handler(data.id); + } + + private _restartRaiseSignalHandling(window: Meta.Window) { + const data = this._raiseId[window.get_id()]; + if (!data) return; + + window.unblock_signal_handler(data.id); + } +} diff --git a/src/components/tilingsystem/edgeTilingManager.ts b/src/components/tilingsystem/edgeTilingManager.ts index f3115064..3bb0be2e 100644 --- a/src/components/tilingsystem/edgeTilingManager.ts +++ b/src/components/tilingsystem/edgeTilingManager.ts @@ -5,7 +5,12 @@ import { } from '../../utils/ui'; import { GObject, Mtk } from '../../gi/ext'; import Settings from '../../settings/settings'; +import { EdgeTilingMode } from '../../settings/settings'; import { registerGObjectClass } from '../../utils/gjs'; +import { logger } from '../../utils/logger'; +import Layout from '../layout/Layout'; +import GlobalState from '../../utils/globalState'; +import Tile from '../../components/layout/Tile'; const TOP_EDGE_TILING_OFFSET = 8; const QUARTER_PERCENTAGE = 0.5; @@ -38,6 +43,10 @@ export default class EdgeTilingManager extends GObject.Object { private _workArea: Mtk.Rectangle; private _quarterActivationPercentage: number; private _edgeTilingOffset: number; + private _currentLayout: Layout | null; + private _monitorIndex: number = 0; + private _workspaceIndex: number = 0; + private _debug: (...args: unknown[]) => void; // activation zones private _topLeft: Mtk.Rectangle; @@ -62,8 +71,10 @@ export default class EdgeTilingManager extends GObject.Object { this._leftCenter = buildRectangle(); this._rightCenter = buildRectangle(); this._activeEdgeTile = null; + this._currentLayout = null; this.workarea = initialWorkArea; this._quarterActivationPercentage = Settings.QUARTER_TILING_THRESHOLD; + this._debug = logger('EdgeTilingManager'); Settings.bind( Settings.KEY_QUARTER_TILING_THRESHOLD, this, @@ -95,6 +106,22 @@ export default class EdgeTilingManager extends GObject.Object { this._updateActivationZones(); } + public set monitorIndex(index: number) { + this._monitorIndex = index; + } + + public set workspaceIndex(index: number) { + this._workspaceIndex = index; + this._updateCurrentLayout(); + } + + private _updateCurrentLayout() { + this._currentLayout = GlobalState.get().getSelectedLayoutOfMonitor( + this._monitorIndex, + this._workspaceIndex, + ); + } + private _updateActivationZones() { const width = Math.ceil( this._workArea.width * this._quarterActivationPercentage, @@ -181,63 +208,82 @@ export default class EdgeTilingManager extends GObject.Object { if (!this._activeEdgeTile) this._activeEdgeTile = buildRectangle(); + // Get the current edge tiling mode + const edgeSnapMode = Settings.EDGE_TILING_MODE; + + // Default behavior - initialize with quarter tiling previewRect.width = this._workArea.width * QUARTER_PERCENTAGE; previewRect.height = this._workArea.height * QUARTER_PERCENTAGE; previewRect.y = this._workArea.y; previewRect.x = this._workArea.x; + + // Handle different snapping modes + switch (edgeSnapMode) { + case EdgeTilingMode.DEFAULT: + // Default behavior - quarters for corners, halves for edges + return this._handleDefaultEdgeTiling(x, y, previewRect); + case EdgeTilingMode.ADAPTIVE: + // Adaptive behavior - snap to layout tiles by column + return this._handleAdaptiveEdgeTiling(x, y, previewRect); + case EdgeTilingMode.GRANULAR: + // Granular behavior - snap to exact tile under cursor + return this._handleGranularEdgeTiling(x, y, previewRect); + default: + return this._handleDefaultEdgeTiling(x, y, previewRect); + } + } + + private _handleDefaultEdgeTiling( + x: number, + y: number, + previewRect: Mtk.Rectangle, + ): { changed: boolean; rect: Mtk.Rectangle } { + // This implements the original edge tiling behavior: + // - corners snap to quarters + // - edges snap to half screen + if (isPointInsideRect({ x, y }, this._topCenter)) { previewRect.width = this._workArea.width; previewRect.height = this._workArea.height; - this._activeEdgeTile = this._topCenter; - // center-left (full edge tile) } else if (isPointInsideRect({ x, y }, this._leftCenter)) { previewRect.width = this._workArea.width * QUARTER_PERCENTAGE; previewRect.height = this._workArea.height; - this._activeEdgeTile = this._leftCenter; - // center-right (full edge tile) } else if (isPointInsideRect({ x, y }, this._rightCenter)) { previewRect.x = this._workArea.x + this._workArea.width - previewRect.width; previewRect.width = this._workArea.width * QUARTER_PERCENTAGE; previewRect.height = this._workArea.height; - this._activeEdgeTile = this._rightCenter; - // left side } else if (x <= this._workArea.x + this._workArea.width / 2) { - // top-left corner + // Left half of screen if (isPointInsideRect({ x, y }, this._topLeft)) { this._activeEdgeTile = this._topLeft; - // bottom-left corner } else if (isPointInsideRect({ x, y }, this._bottomLeft)) { previewRect.y = this._workArea.y + this._workArea.height - previewRect.height; this._activeEdgeTile = this._bottomLeft; - // bottom-center } else { return { changed: false, rect: previewRect, }; } - // right side } else { + // Right half of screen previewRect.x = this._workArea.x + this._workArea.width - previewRect.width; - // top-right corner if (isPointInsideRect({ x, y }, this._topRight)) { this._activeEdgeTile = this._topRight; - // bottom-right corner } else if (isPointInsideRect({ x, y }, this._bottomRight)) { previewRect.y = this._workArea.y + this._workArea.height - previewRect.height; this._activeEdgeTile = this._bottomRight; - // bottom-center } else { return { changed: false, @@ -246,17 +292,339 @@ export default class EdgeTilingManager extends GObject.Object { } } - // uncomment to show active tile debugging - /* global.windowGroup.get_children().filter(c => c.get_name() === "debug")[0]?.destroy(); - const debug = new St.Widget({ - x: this._activeEdgeTile.x, - y: this._activeEdgeTile.y, - height: this._activeEdgeTile.height, - width: this._activeEdgeTile.width, - style: "border: 2px solid red", - name: "debug" - }); - global.windowGroup.add_child(debug);*/ + // Uncomment to show visual debug + // Clean up any existing debug widget + // global.windowGroup + // .get_children() + // .filter((c) => c.get_name() === 'debug')[0] + // ?.destroy(); + + // // Create a new debug widget + // const debug = new St.Widget({ + // x: this._activeEdgeTile.x, + // y: this._activeEdgeTile.y, + // height: this._activeEdgeTile.height, + // width: this._activeEdgeTile.width, + // style: 'border: 2px solid red', + // name: 'debug', + // }); + // global.windowGroup.add_child(debug); + + return { + changed: true, + rect: previewRect, + }; + } + + private _handleAdaptiveEdgeTiling( + x: number, + y: number, + previewRect: Mtk.Rectangle, + ): { changed: boolean; rect: Mtk.Rectangle } { + // Adaptive mode: snap to layout tiles by column + // - corners snap to corner tiles + // - edges snap to entire column of tiles + + if (!this._currentLayout) + return this._handleDefaultEdgeTiling(x, y, previewRect); + + if (isPointInsideRect({ x, y }, this._topCenter)) { + previewRect.width = this._workArea.width; + previewRect.height = this._workArea.height; + this._activeEdgeTile = this._topCenter; + } else if (isPointInsideRect({ x, y }, this._leftCenter)) { + // Get left column tiles + const leftColumnTiles = this._getLeftColumnTiles(); + + if (leftColumnTiles.length > 0) { + const minX = Math.min(...leftColumnTiles.map((tile) => tile.x)); + const exactLeftColumnTiles = leftColumnTiles.filter( + (tile) => Math.abs(tile.x - minX) < 0.01, + ); + + // Snap to entire column + const newRect = this._createRectForColumnTiles( + exactLeftColumnTiles, + false, + ); + previewRect.x = this._workArea.x + this._workArea.width * minX; + previewRect.y = newRect.y; + previewRect.width = newRect.width; + previewRect.height = newRect.height; + } + + this._activeEdgeTile = this._leftCenter; + } else if (isPointInsideRect({ x, y }, this._rightCenter)) { + // Get right column tiles + const rightColumnTiles = this._getRightColumnTiles(); + + if (rightColumnTiles.length > 0) { + // Find the maximum X coordinate (in case there are multiple right-aligned columns) + const maxEndX = Math.max( + ...rightColumnTiles.map((tile) => tile.x + tile.width), + ); + // Find all tiles with this end X coordinate + const exactRightColumnTiles = rightColumnTiles.filter( + (tile) => Math.abs(tile.x + tile.width - maxEndX) < 0.01, + ); + + // Snap to entire column + const newRect = this._createRectForColumnTiles( + exactRightColumnTiles, + true, + ); + + // Calculate the starting X position based on the actual tiles + const rightMostX = Math.min( + ...exactRightColumnTiles.map((tile) => tile.x), + ); + previewRect.x = + this._workArea.x + this._workArea.width * rightMostX; + previewRect.y = newRect.y; + previewRect.width = newRect.width; + previewRect.height = newRect.height; + } else { + previewRect.x = + this._workArea.x + this._workArea.width - previewRect.width; + } + + this._activeEdgeTile = this._rightCenter; + } else if (isPointInsideRect({ x, y }, this._topLeft)) { + // Snap to top-left corner tile + const topLeftTile = this._findTileAtCorner('top-left'); + if (topLeftTile) { + previewRect.width = this._workArea.width * topLeftTile.width; + previewRect.height = this._workArea.height * topLeftTile.height; + previewRect.x = + this._workArea.x + this._workArea.width * topLeftTile.x; + previewRect.y = + this._workArea.y + this._workArea.height * topLeftTile.y; + } + this._activeEdgeTile = this._topLeft; + } else if (isPointInsideRect({ x, y }, this._bottomLeft)) { + // Snap to bottom-left corner tile + const bottomLeftTile = this._findTileAtCorner('bottom-left'); + if (bottomLeftTile) { + previewRect.width = this._workArea.width * bottomLeftTile.width; + previewRect.height = + this._workArea.height * bottomLeftTile.height; + previewRect.x = + this._workArea.x + this._workArea.width * bottomLeftTile.x; + previewRect.y = + this._workArea.y + this._workArea.height * bottomLeftTile.y; + } else { + previewRect.y = + this._workArea.y + + this._workArea.height - + previewRect.height; + } + this._activeEdgeTile = this._bottomLeft; + } else if (isPointInsideRect({ x, y }, this._topRight)) { + // Snap to top-right corner tile + const topRightTile = this._findTileAtCorner('top-right'); + if (topRightTile) { + previewRect.width = this._workArea.width * topRightTile.width; + previewRect.height = + this._workArea.height * topRightTile.height; + previewRect.x = + this._workArea.x + this._workArea.width * topRightTile.x; + previewRect.y = + this._workArea.y + this._workArea.height * topRightTile.y; + } else { + previewRect.x = + this._workArea.x + this._workArea.width - previewRect.width; + } + this._activeEdgeTile = this._topRight; + } else if (isPointInsideRect({ x, y }, this._bottomRight)) { + // Snap to bottom-right corner tile + const bottomRightTile = this._findTileAtCorner('bottom-right'); + if (bottomRightTile) { + previewRect.width = + this._workArea.width * bottomRightTile.width; + previewRect.height = + this._workArea.height * bottomRightTile.height; + previewRect.x = + this._workArea.x + this._workArea.width * bottomRightTile.x; + previewRect.y = + this._workArea.y + + this._workArea.height * bottomRightTile.y; + } else { + previewRect.x = + this._workArea.x + this._workArea.width - previewRect.width; + previewRect.y = + this._workArea.y + + this._workArea.height - + previewRect.height; + } + this._activeEdgeTile = this._bottomRight; + } else { + return { + changed: false, + rect: previewRect, + }; + } + + // Uncomment to show visual debug + // // Clean up any existing debug widget + // global.windowGroup + // .get_children() + // .filter((c) => c.get_name() === 'debug')[0] + // ?.destroy(); + + // // Create a new debug widget + // const debug = new St.Widget({ + // x: this._activeEdgeTile.x, + // y: this._activeEdgeTile.y, + // height: this._activeEdgeTile.height, + // width: this._activeEdgeTile.width, + // style: 'border: 2px solid red', + // name: 'debug', + // }); + // global.windowGroup.add_child(debug); + + return { + changed: true, + rect: previewRect, + }; + } + + private _handleGranularEdgeTiling( + x: number, + y: number, + previewRect: Mtk.Rectangle, + ): { changed: boolean; rect: Mtk.Rectangle } { + // Granular mode: snap to exact tile under cursor + // - corners snap to corner tiles + // - edges snap to the exact tile the cursor is over + + if (!this._currentLayout) + return this._handleDefaultEdgeTiling(x, y, previewRect); + + if (isPointInsideRect({ x, y }, this._topCenter)) { + previewRect.width = this._workArea.width; + previewRect.height = this._workArea.height; + this._activeEdgeTile = this._topCenter; + } else if (isPointInsideRect({ x, y }, this._leftCenter)) { + // Find the tile exactly at cursor position on left edge + const leftTile = this._findExactTileAtEdge('left', { x, y }); + + if (leftTile) { + const newRect = this._createRectForSingleTile(leftTile); + previewRect.x = newRect.x; + previewRect.y = newRect.y; + previewRect.width = newRect.width; + previewRect.height = newRect.height; + } + + this._activeEdgeTile = this._leftCenter; + } else if (isPointInsideRect({ x, y }, this._rightCenter)) { + // Find the tile exactly at cursor position on right edge + const rightTile = this._findExactTileAtEdge('right', { x, y }); + + if (rightTile) { + const newRect = this._createRectForSingleTile(rightTile); + previewRect.x = newRect.x; + previewRect.y = newRect.y; + previewRect.width = newRect.width; + previewRect.height = newRect.height; + } else { + previewRect.x = + this._workArea.x + this._workArea.width - previewRect.width; + } + + this._activeEdgeTile = this._rightCenter; + } else if (isPointInsideRect({ x, y }, this._topLeft)) { + // Snap to top-left corner tile + const topLeftTile = this._findTileAtCorner('top-left'); + if (topLeftTile) { + previewRect.width = this._workArea.width * topLeftTile.width; + previewRect.height = this._workArea.height * topLeftTile.height; + previewRect.x = + this._workArea.x + this._workArea.width * topLeftTile.x; + previewRect.y = + this._workArea.y + this._workArea.height * topLeftTile.y; + } + this._activeEdgeTile = this._topLeft; + } else if (isPointInsideRect({ x, y }, this._bottomLeft)) { + // Snap to bottom-left corner tile + const bottomLeftTile = this._findTileAtCorner('bottom-left'); + if (bottomLeftTile) { + previewRect.width = this._workArea.width * bottomLeftTile.width; + previewRect.height = + this._workArea.height * bottomLeftTile.height; + previewRect.x = + this._workArea.x + this._workArea.width * bottomLeftTile.x; + previewRect.y = + this._workArea.y + this._workArea.height * bottomLeftTile.y; + } else { + previewRect.y = + this._workArea.y + + this._workArea.height - + previewRect.height; + } + this._activeEdgeTile = this._bottomLeft; + } else if (isPointInsideRect({ x, y }, this._topRight)) { + // Snap to top-right corner tile + const topRightTile = this._findTileAtCorner('top-right'); + if (topRightTile) { + previewRect.width = this._workArea.width * topRightTile.width; + previewRect.height = + this._workArea.height * topRightTile.height; + previewRect.x = + this._workArea.x + this._workArea.width * topRightTile.x; + previewRect.y = + this._workArea.y + this._workArea.height * topRightTile.y; + } else { + previewRect.x = + this._workArea.x + this._workArea.width - previewRect.width; + } + this._activeEdgeTile = this._topRight; + } else if (isPointInsideRect({ x, y }, this._bottomRight)) { + // Snap to bottom-right corner tile + const bottomRightTile = this._findTileAtCorner('bottom-right'); + if (bottomRightTile) { + previewRect.width = + this._workArea.width * bottomRightTile.width; + previewRect.height = + this._workArea.height * bottomRightTile.height; + previewRect.x = + this._workArea.x + this._workArea.width * bottomRightTile.x; + previewRect.y = + this._workArea.y + + this._workArea.height * bottomRightTile.y; + } else { + previewRect.x = + this._workArea.x + this._workArea.width - previewRect.width; + previewRect.y = + this._workArea.y + + this._workArea.height - + previewRect.height; + } + this._activeEdgeTile = this._bottomRight; + } else { + return { + changed: false, + rect: previewRect, + }; + } + + // Uncomment to show visual debug + // // Clean up any existing debug widget + // global.windowGroup + // .get_children() + // .filter((c) => c.get_name() === 'debug')[0] + // ?.destroy(); + + // // Create a new debug widget + // const debug = new St.Widget({ + // x: this._activeEdgeTile.x, + // y: this._activeEdgeTile.y, + // height: this._activeEdgeTile.height, + // width: this._activeEdgeTile.width, + // style: 'border: 2px solid red', + // name: 'debug', + // }); + // global.windowGroup.add_child(debug); return { changed: true, @@ -264,6 +632,85 @@ export default class EdgeTilingManager extends GObject.Object { }; } + private _getLeftColumnTiles() { + if (!this._currentLayout) return []; + return this._currentLayout.tiles.filter( + (tile) => Math.abs(tile.x) < 0.01, // Tiles starting at x=0 + ); + } + + private _getRightColumnTiles() { + if (!this._currentLayout) return []; + return this._currentLayout.tiles.filter( + (tile) => Math.abs(tile.x + tile.width - 1) < 0.01, // Tiles ending at x=1 + ); + } + + private _createRectForColumnTiles( + tiles: Tile[], + isRightSide: boolean = false, + ): Mtk.Rectangle { + const rect = buildRectangle(); + rect.y = this._workArea.y; + + if (tiles.length === 0) { + // Use default quarter tiling if no tiles found + rect.width = this._workArea.width * QUARTER_PERCENTAGE; + rect.height = this._workArea.height; + + if (isRightSide) + rect.x = this._workArea.x + this._workArea.width - rect.width; + else rect.x = this._workArea.x; + + return rect; + } + + // When we have tiles, use their actual dimensions + // Get the minimum x and maximum width to create a rect that covers all tiles in column + const minX = Math.min(...tiles.map((tile) => tile.x)); + const maxWidth = Math.max(...tiles.map((tile) => tile.width)); + + rect.width = this._workArea.width * maxWidth; + rect.height = this._workArea.height; + rect.x = this._workArea.x + this._workArea.width * minX; + + return rect; + } + + private _findTileAtCorner( + corner: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right', + ) { + if (!this._currentLayout) return null; + + switch (corner) { + case 'top-left': + return this._currentLayout.tiles.find( + (tile) => + Math.abs(tile.x) < 0.01 && Math.abs(tile.y) < 0.01, + ); + case 'top-right': + return this._currentLayout.tiles.find( + (tile) => + Math.abs(tile.x + tile.width - 1) < 0.01 && + Math.abs(tile.y) < 0.01, + ); + case 'bottom-left': + return this._currentLayout.tiles.find( + (tile) => + Math.abs(tile.x) < 0.01 && + Math.abs(tile.y + tile.height - 1) < 0.01, + ); + case 'bottom-right': + return this._currentLayout.tiles.find( + (tile) => + Math.abs(tile.x + tile.width - 1) < 0.01 && + Math.abs(tile.y + tile.height - 1) < 0.01, + ); + } + + return null; + } + public needMaximize(): boolean { return ( this._activeEdgeTile !== null && @@ -275,4 +722,176 @@ export default class EdgeTilingManager extends GObject.Object { public abortEdgeTiling() { this._activeEdgeTile = null; } + + private _findClosestTileToPosition( + pointerPos: { x: number; y: number }, + candidateTiles: Tile[], + ): Tile | null { + if (!candidateTiles.length) return null; + + // Convert pointer position to relative coordinates (0-1) + const relativeY = + (pointerPos.y - this._workArea.y) / this._workArea.height; + + // Find the tile whose y-range contains the pointer + const containingTiles = candidateTiles.filter( + (tile) => relativeY >= tile.y && relativeY <= tile.y + tile.height, + ); + + // If no tile directly contains the point, find the closest + if (containingTiles.length === 0) { + return candidateTiles.reduce( + (closest, tile) => { + // Find distance to the center of the tile + const tileCenter = { + x: tile.x + tile.width / 2, + y: tile.y + tile.height / 2, + }; + + const tileCenterPx = { + x: + this._workArea.x + + tileCenter.x * this._workArea.width, + y: + this._workArea.y + + tileCenter.y * this._workArea.height, + }; + + const distance = Math.sqrt( + Math.pow(pointerPos.x - tileCenterPx.x, 2) + + Math.pow(pointerPos.y - tileCenterPx.y, 2), + ); + + // Return the closest tile + if (!closest) return tile; + const closestCenter = { + x: closest.x + closest.width / 2, + y: closest.y + closest.height / 2, + }; + + const closestCenterPx = { + x: + this._workArea.x + + closestCenter.x * this._workArea.width, + y: + this._workArea.y + + closestCenter.y * this._workArea.height, + }; + + const closestDistance = Math.sqrt( + Math.pow(pointerPos.x - closestCenterPx.x, 2) + + Math.pow(pointerPos.y - closestCenterPx.y, 2), + ); + + return distance < closestDistance ? tile : closest; + }, + null as Tile | null, + ); + } + + // If multiple tiles contain the point, find the closest + if (containingTiles.length > 1) { + return containingTiles.reduce( + (closest, tile) => { + const tileCenterX = + this._workArea.x + + (tile.x + tile.width / 2) * this._workArea.width; + const distance = Math.abs(pointerPos.x - tileCenterX); + + if (!closest) return tile; + + const closestCenterX = + this._workArea.x + + (closest.x + closest.width / 2) * this._workArea.width; + const closestDistance = Math.abs( + pointerPos.x - closestCenterX, + ); + + return distance < closestDistance ? tile : closest; + }, + null as Tile | null, + ); + } + + // Return the single containing tile + return containingTiles[0]; + } + + private _createRectForSingleTile(tile: Tile | null): Mtk.Rectangle { + const rect = buildRectangle(); + + if (!tile) { + // Default to quarter tiling + rect.width = this._workArea.width * QUARTER_PERCENTAGE; + rect.height = this._workArea.height * QUARTER_PERCENTAGE; + rect.x = this._workArea.x; + rect.y = this._workArea.y; + return rect; + } + + // Create rect based on the single tile + rect.width = this._workArea.width * tile.width; + rect.height = this._workArea.height * tile.height; + rect.x = this._workArea.x + this._workArea.width * tile.x; + rect.y = this._workArea.y + this._workArea.height * tile.y; + + return rect; + } + + private _findTilesAtEdge( + edge: 'left' | 'right' | 'top' | 'bottom', + ): Tile[] { + if (!this._currentLayout) return []; + + // Find all tiles that touch this edge + const tiles = this._currentLayout.tiles.filter((tile) => { + // Determine if tile is on the specified edge + switch (edge) { + case 'left': + return Math.abs(tile.x) < 0.01; + case 'right': + return Math.abs(tile.x + tile.width - 1) < 0.01; + case 'top': + return Math.abs(tile.y) < 0.01; + case 'bottom': + return Math.abs(tile.y + tile.height - 1) < 0.01; + } + return false; + }); + + return tiles; + } + + private _findExactTileAtEdge( + edge: 'left' | 'right' | 'top' | 'bottom', + pointerPos: { x: number; y: number }, + ): Tile | null { + const edgeTiles = this._findTilesAtEdge(edge); + if (edgeTiles.length === 0) return null; + + // Convert pointer position to relative coordinates (0-1) + const relativeX = + (pointerPos.x - this._workArea.x) / this._workArea.width; + const relativeY = + (pointerPos.y - this._workArea.y) / this._workArea.height; + + // Find the tile that contains the pointer position + for (const tile of edgeTiles) { + const tileMinY = tile.y; + const tileMaxY = tile.y + tile.height; + const tileMinX = tile.x; + const tileMaxX = tile.x + tile.width; + + // Check if pointer is within this tile's vertical/horizontal range based on edge + if (edge === 'left' || edge === 'right') { + if (relativeY >= tileMinY && relativeY <= tileMaxY) return tile; + } else if (relativeX >= tileMinX && relativeX <= tileMaxX) { + // top or bottom + return tile; + } + } + + // If no tile directly contains the point, find the closest one + return this._findClosestTileToPosition(pointerPos, edgeTiles); + } } diff --git a/src/components/tilingsystem/resizeManager.ts b/src/components/tilingsystem/resizeManager.ts index 35125834..d68b6dc4 100644 --- a/src/components/tilingsystem/resizeManager.ts +++ b/src/components/tilingsystem/resizeManager.ts @@ -3,12 +3,15 @@ import SignalHandling from '../../utils/signalHandling'; import Settings from '../../settings/settings'; import ExtendedWindow from './extendedWindow'; import { getWindows } from '../../utils/ui'; +import { CustomRulesManager } from '@components/customRulesManager'; export class ResizingManager { private _signals: SignalHandling | null; + private readonly _customRulesManager: CustomRulesManager; - constructor() { + constructor(customRulesManager: CustomRulesManager) { this._signals = null; + this._customRulesManager = customRulesManager; } public enable() { @@ -27,6 +30,12 @@ export class ResizingManager { grabOp === Meta.GrabOp.KEYBOARD_MOVING || grabOp === Meta.GrabOp.MOVING; if (moving || !Settings.RESIZE_COMPLEMENTING_WINDOWS) return; + if ( + !this._customRulesManager.isResizeComplementingEnabled( + window, + ) + ) + return; this._onWindowResizingBegin(window, grabOp & ~1024); }, diff --git a/src/components/tilingsystem/tilingManager.ts b/src/components/tilingsystem/tilingManager.ts index 07738a19..ad3a0855 100644 --- a/src/components/tilingsystem/tilingManager.ts +++ b/src/components/tilingsystem/tilingManager.ts @@ -15,7 +15,7 @@ import { import TilingLayout from '../../components/tilingsystem/tilingLayout'; import SnapAssist from '../snapassist/snapAssist'; import SelectionTilePreview from '../tilepreview/selectionTilePreview'; -import { ActivationKey } from '../../settings/settings'; +import { ActivationKey, EdgeTilingMode } from '../../settings/settings'; import Settings from '../../settings/settings'; import SignalHandling from '../../utils/signalHandling'; import Layout from '../layout/Layout'; @@ -30,6 +30,7 @@ import { KeyBindingsDirection } from '../../keybindings'; import TilingShellWindowManager from '../../components/windowManager/tilingShellWindowManager'; import TilingLayoutWithSuggestions from '../windowsSuggestions/tilingLayoutWithSuggestions'; import { maximizeWindow, unmaximizeWindow } from '../../utils/gnomesupport'; +import { CustomRulesManager } from '../customRulesManager'; const MINIMUM_DISTANCE_TO_RESTORE_ORIGINAL_SIZE = 90; @@ -78,12 +79,19 @@ export class TilingManager { private readonly _signals: SignalHandling; private readonly _debug: (..._content: unknown[]) => void; + private readonly _customRulesManager: CustomRulesManager; /** * Constructs a new TilingManager instance. * @param monitor The monitor to manage tiling for. + * @param enableScaling Whether to enable scaling for the monitor. + * @param customRulesManager The custom rules manager instance. */ - constructor(monitor: Monitor, enableScaling: boolean) { + constructor( + monitor: Monitor, + enableScaling: boolean, + customRulesManager: CustomRulesManager, + ) { this._isGrabbingWindow = false; this._wasSpanMultipleTilesActivated = false; this._wasTilingSystemActivated = false; @@ -91,6 +99,7 @@ export class TilingManager { this._enableScaling = enableScaling; this._monitor = monitor; this._signals = new SignalHandling(); + this._customRulesManager = customRulesManager; this._debug = logger(`TilingManager ${monitor.index}`); @@ -102,6 +111,7 @@ export class TilingManager { `Work area for monitor ${this._monitor.index}: ${this._workArea.x} ${this._workArea.y} ${this._workArea.width}x${this._workArea.height}`, ); this._edgeTilingManager = new EdgeTilingManager(this._workArea); + this._edgeTilingManager.monitorIndex = this._monitor.index; // handle scale factor of the monitor const monitorScalingFactor = this._enableScaling @@ -507,6 +517,32 @@ export class TilingManager { TouchPointer.get().onTouchEvent(x, y); }, ); + // Add Wacom tablet support, listen to tablet events + this._signals.connect( + global.stage, + 'captured-event', + (_source, event: Clutter.Event) => { + const device = event.get_source_device(); + if (!device) return; + + const deviceType = device.get_device_type(); + + // Check for tablet device types + if (deviceType === Clutter.InputDeviceType.TABLET_DEVICE || + deviceType === Clutter.InputDeviceType.PEN_DEVICE) { + + const eventType = event.type(); + // Capture motion events from tablet + if (eventType === Clutter.EventType.MOTION) { + const [x, y] = event.get_coords(); + TouchPointer.get().onTouchEvent(x, y); + // Move the actual mouse cursor to match tablet position + const seat = Clutter.get_default_backend().get_default_seat(); + seat.warp_pointer(x, y); + } + } + }, + ); // workaround for gnome-shell bug https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2857 if ( @@ -544,19 +580,19 @@ export class TilingManager { ): boolean { if (key === ActivationKey.NONE) return true; - let val = 2; + let mask = Clutter.ModifierType.CONTROL_MASK; switch (key) { case ActivationKey.CTRL: - val = 2; // Clutter.ModifierType.CONTROL_MASK + mask = Clutter.ModifierType.CONTROL_MASK; break; case ActivationKey.ALT: - val = 3; // Clutter.ModifierType.MOD1_MASK + mask = Clutter.ModifierType.MOD1_MASK; break; case ActivationKey.SUPER: - val = 6; // Clutter.ModifierType.SUPER_MASK + mask = Clutter.ModifierType.SUPER_MASK; break; } - return (modifier & (1 << val)) !== 0; + return (modifier & mask) === mask; } private _onMovingWindow(window: Meta.Window, grabOp: number) { @@ -570,6 +606,8 @@ export class TilingManager { const tilingLayout = this._workspaceTilingLayout.get(currentWs); if (!tilingLayout) return GLib.SOURCE_REMOVE; + this._edgeTilingManager.workspaceIndex = currentWs.index(); + // if the window was moved into another monitor and it is still grabbed if ( !window.allows_resize() || @@ -663,11 +701,14 @@ export class TilingManager { ? false : this._activationKeyStatus(modifier, deactivationKey); const allowSpanMultipleTiles = - Settings.SPAN_MULTIPLE_TILES && isSpanMultiTilesActivated; + Settings.SPAN_MULTIPLE_TILES && + isSpanMultiTilesActivated && + this._customRulesManager.isSpanMultipleTilesEnabled(window); const showTilingSystem = Settings.TILING_SYSTEM && isTilingSystemActivated && - !isTilingSystemDeactivated; + !isTilingSystemDeactivated && + this._customRulesManager.isAutoTilingEnabled(window); // ensure we handle window movement only when needed // if the snap assistant activation key status is not changed and the mouse is on the same position as before // and the tiling system activation key status is not changed, we have nothing to do @@ -713,7 +754,10 @@ export class TilingManager { this._edgeTilingManager.abortEdgeTiling(); } - if (Settings.SNAP_ASSIST) { + if ( + Settings.SNAP_ASSIST && + this._customRulesManager.isSnapAssistEnabled(window) + ) { this._snapAssist.onMovingWindow( window, currPointerPos, @@ -821,12 +865,13 @@ export class TilingManager { this._edgeTilingManager.abortEdgeTiling(); const canShowTilingSuggestions = - (wasSnapAssistingLayout && + ((wasSnapAssistingLayout && Settings.ENABLE_SNAP_ASSISTANT_WINDOWS_SUGGESTIONS) || - (wasEdgeTiling && - Settings.ENABLE_SCREEN_EDGES_WINDOWS_SUGGESTIONS) || - (isTilingSystemActivated && - Settings.ENABLE_TILING_SYSTEM_WINDOWS_SUGGESTIONS); + (wasEdgeTiling && + Settings.ENABLE_SCREEN_EDGES_WINDOWS_SUGGESTIONS) || + (isTilingSystemActivated && + Settings.ENABLE_TILING_SYSTEM_WINDOWS_SUGGESTIONS)) && + this._customRulesManager.isWindowSuggestionsEnabled(window); // abort if the pointer is moving on another monitor: the user moved // the window to another monitor not handled by this tiling manager @@ -846,54 +891,36 @@ export class TilingManager { }); this._easeWindowRect(window, desiredWindowRect); + // Sync the desktop layout to match the snap-assisted layout if enabled + if (wasSnapAssistingLayout && Settings.SNAP_ASSIST_SYNC_LAYOUT) { + GlobalState.get().setSelectedLayoutOfMonitor( + wasSnapAssistingLayout.id, + this._monitor.index, + ); + } + if (!tilingLayout || !canShowTilingSuggestions) return; // retrieve the current layout for the monitor and workspace // were the window was tiled const layout = wasEdgeTiling - ? new Layout( - [ - // top-left - new Tile({ - x: 0, - y: 0, - width: 0.5, - height: 0.5, - groups: [], - }), - // top-right - new Tile({ - x: 0.5, - y: 0, - width: 0.5, - height: 0.5, - groups: [], - }), - // bottom-left - new Tile({ - x: 0, - y: 0.5, - width: 0.5, - height: 0.5, - groups: [], - }), - // bottom-right - new Tile({ - x: 0.5, - y: 0.5, - width: 0.5, - height: 0.5, - groups: [], - }), - ], - 'edge-tiling-layout', - ) - : wasSnapAssistingLayout + ? (Settings.EDGE_TILING_MODE === EdgeTilingMode.DEFAULT + ? new Layout([ + new Tile({ x: 0, y: 0, height: 0.5, width: 0.5, groups: []}), + new Tile({ x: 0.5, y: 0, height: 0.5, width: 0.5, groups: []}), + new Tile({ x: 0, y: 0.5, height: 0.5, width: 0.5, groups: []}), + new Tile({ x: 0.5, y: 0.5, height: 0.5, width: 0.5, groups: []})], + "quarters" + ) + : GlobalState.get().getSelectedLayoutOfMonitor( + this._monitor.index, + window.get_workspace().index()) + ): (wasSnapAssistingLayout ? wasSnapAssistingLayout : GlobalState.get().getSelectedLayoutOfMonitor( this._monitor.index, window.get_workspace().index(), - ); + )); this._openWindowsSuggestions( window, desiredWindowRect, @@ -923,7 +950,10 @@ export class TilingManager { (extWin as ExtendedWindow).assignedTile ) tiledWindows.push(extWin as ExtendedWindow); - else nontiledWindows.push(extWin); + else if ( + this._customRulesManager.isWindowSuggestionsEnabled(extWin) + ) + nontiledWindows.push(extWin); }); if (nontiledWindows.length === 0) return; @@ -971,7 +1001,7 @@ export class TilingManager { // apply animations when tiling the window windowActor.remove_all_transitions(); - // @ts-expect-error "Main.wm has the private function _prepareAnimationInfo" + // @ts-expect-error "Main.wm has the "private" function _prepareAnimationInfo" Main.wm._prepareAnimationInfo( global.windowManager, windowActor, @@ -1262,6 +1292,9 @@ export class TilingManager { ) return; + // check custom rules for this window + if (!this._customRulesManager.isAutoTilingEnabled(window)) return; + (window as ExtendedWindow).assignedTile = undefined; const vacantTile = this._findEmptyTile(window); if (!vacantTile) return; @@ -1279,7 +1312,8 @@ export class TilingManager { !window.maximizedHorizontally && !window.maximizedVertically && window.get_transient_for() === null && - !window.is_attached_dialog() + !window.is_attached_dialog() && + this._customRulesManager.isAutoTilingEnabled(window) ) this._easeWindowRectFromTile(vacantTile, window, true); diff --git a/src/components/windowBorder/windowBorder.ts b/src/components/windowBorder/windowBorder.ts index 50dadb3d..a0ed3da0 100644 --- a/src/components/windowBorder/windowBorder.ts +++ b/src/components/windowBorder/windowBorder.ts @@ -9,6 +9,8 @@ import { getScalingFactorOf, getScalingFactorSupportString, } from '../../utils/ui'; +import { CustomRulesManager } from './customRulesManager'; +import { BlacklistManager } from './blacklistManager'; Gio._promisify(Shell.Screenshot, 'composite_to_stream'); @@ -31,7 +33,7 @@ export default class WindowBorder extends St.DrawingArea { private _borderRadiusValue: [number, number, number, number]; private _timeout: GLib.Source | undefined; private _delayedSmartBorderRadius: boolean; - private _borderWidth: number; + private _scaledBorderWidth: number; constructor(win: Meta.Window, enableScaling: boolean) { super({ @@ -39,7 +41,7 @@ export default class WindowBorder extends St.DrawingArea { }); this._signals = new SignalHandling(); this._bindings = []; - this._borderWidth = 1; + this._scaledBorderWidth = 1; this._window = win; this._windowMonitor = win.get_monitor(); this._enableScaling = enableScaling; @@ -55,7 +57,6 @@ export default class WindowBorder extends St.DrawingArea { this.close(); global.windowGroup.add_child(this); this.trackWindow(win, true); - this.connect('destroy', () => { this._bindings.forEach((b) => b.unbind()); this._bindings = []; @@ -91,16 +92,6 @@ export default class WindowBorder extends St.DrawingArea { ), ); - const winRect = this._window.get_frame_rect(); - this.set_position( - winRect.x - this._borderWidth, - winRect.y - this._borderWidth, - ); - this.set_size( - winRect.width + 2 * this._borderWidth, - winRect.height + 2 * this._borderWidth, - ); - if (Settings.ENABLE_SMART_WINDOW_BORDER_RADIUS) { const cached_radius = (this._window as WindowWithCachedRadius) .__ts_cached_radius; @@ -116,6 +107,15 @@ export default class WindowBorder extends St.DrawingArea { } } this.updateStyle(); + const winRect = this._window.get_frame_rect(); + this.set_position( + winRect.x - this._scaledBorderWidth, + winRect.y - this._scaledBorderWidth, + ); + this.set_size( + winRect.width + (2 * this._scaledBorderWidth), + winRect.height + (2 * this._scaledBorderWidth), + ); const isMaximized = this._window.maximizedVertically && @@ -131,6 +131,7 @@ export default class WindowBorder extends St.DrawingArea { this._signals.connect(global.display, 'restacked', () => { this.queue_repaint(); // a transient window might have been opened + global.windowGroup.set_child_above_sibling(this, null); }); this._signals.connect(this._window, 'position-changed', () => { @@ -155,8 +156,8 @@ export default class WindowBorder extends St.DrawingArea { const rect = this._window.get_frame_rect(); this.set_position( - rect.x - this._borderWidth, - rect.y - this._borderWidth, + rect.x - this._scaledBorderWidth, + rect.y - this._scaledBorderWidth, ); // if the window changes monitor, we may have a different scaling factor if (this._windowMonitor !== win.get_monitor()) { @@ -188,8 +189,8 @@ export default class WindowBorder extends St.DrawingArea { const rect = this._window.get_frame_rect(); this.set_size( - rect.width + 2 * this._borderWidth, - rect.height + 2 * this._borderWidth, + rect.width + (2 * this._scaledBorderWidth), + rect.height + (2 * this._scaledBorderWidth), ); // if the window changes monitor, we may have a different scaling factor if (this._windowMonitor !== win.get_monitor()) { @@ -330,11 +331,12 @@ export default class WindowBorder extends St.DrawingArea { (alreadyScaled ? 1 : scalingFactor) * (Settings.WINDOW_BORDER_WIDTH / (alreadyScaled ? scalingFactor : 1)); + this._scaledBorderWidth = scalingFactor * Settings.WINDOW_BORDER_WIDTH; const borderColor = Settings.WINDOW_USE_CUSTOM_BORDER_COLOR ? Settings.WINDOW_BORDER_COLOR : '-st-accent-color'; const radius = this._borderRadiusValue.map((val) => { - const valWithBorder = val === 0 ? val : val + borderWidth; + const valWithBorder = val === 0 ? val : (val + borderWidth); return ( (alreadyScaled ? 1 : scalingFactor) * (valWithBorder / (alreadyScaled ? scalingFactor : 1)) @@ -344,20 +346,10 @@ export default class WindowBorder extends St.DrawingArea { const scalingFactorSupportString = monitorScalingFactor ? `${getScalingFactorSupportString(monitorScalingFactor)};` : ''; - - if (this._borderWidth !== borderWidth) { - const diff = this._borderWidth - borderWidth; - this._borderWidth = borderWidth; - this.set_size( - this.get_width() - 2 * diff, - this.get_height() - 2 * diff, - ); - this.set_position(this.get_x() + diff, this.get_y() + diff); - } this.set_style( `border-color: ${borderColor}; border-radius: ${radius[St.Corner.TOPLEFT]}px ${radius[St.Corner.TOPRIGHT]}px ${radius[St.Corner.BOTTOMRIGHT]}px ${radius[St.Corner.BOTTOMLEFT]}px; ${scalingFactorSupportString}`, ); - // not setting border-width: ${borderWidth}px since we will use this._borderWidth in vfunc_repaint + // not setting border-width: ${borderWidth}px since we will draw the border manually in vfunc_repaint } vfunc_repaint() { @@ -366,7 +358,7 @@ export default class WindowBorder extends St.DrawingArea { const [width, height] = this.get_surface_size(); if (!width || !height) return; - const borderWidth = this._borderWidth; + const borderWidth = this._scaledBorderWidth; const borderColor = themeNode.get_border_color(null); const radius = [0, 0, 0, 0]; radius[St.Corner.TOPLEFT] = themeNode.get_border_radius(St.Corner.TOPLEFT); diff --git a/src/components/windowBorder/windowBorderManager.ts b/src/components/windowBorder/windowBorderManager.ts index b4d45773..bf12fe55 100644 --- a/src/components/windowBorder/windowBorderManager.ts +++ b/src/components/windowBorder/windowBorderManager.ts @@ -2,6 +2,7 @@ import { Gio } from '../../gi/ext'; import WindowBorder from './windowBorder'; import SignalHandling from '../../utils/signalHandling'; import Settings from '../../settings/settings'; +import { CustomRulesManager } from '../customRulesManager'; export class WindowBorderManager { private readonly _signals: SignalHandling; @@ -9,14 +10,19 @@ export class WindowBorderManager { private _border: WindowBorder | null; private _enableScaling: boolean; private _interfaceSettings: Gio.Settings; + private _customRulesManager: CustomRulesManager; - constructor(enableScaling: boolean) { + constructor( + enableScaling: boolean, + customRulesManager: CustomRulesManager, + ) { this._signals = new SignalHandling(); this._border = null; this._enableScaling = enableScaling; this._interfaceSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.interface', }); + this._customRulesManager = customRulesManager; } public enable(): void { @@ -31,6 +37,15 @@ export class WindowBorderManager { else this._turnOff(); }, ); + + // re-evaluate current window when customRules changes + this._signals.connect( + this._customRulesManager, + 'customRules-changed', + () => { + this._onWindowFocused(); + }, + ); } private _turnOn() { @@ -70,6 +85,7 @@ export class WindowBorderManager { private _onWindowFocused(): void { // connect signals on the window and create the border const metaWindow = global.display.focus_window; + if ( !metaWindow || metaWindow.get_wm_class() === null || @@ -80,6 +96,13 @@ export class WindowBorderManager { return; } + // Check if window is customRulesed for custom border + if (!this._customRulesManager.isCustomBorderEnabled(metaWindow)) { + this._border?.destroy(); + this._border = null; + return; + } + if (!this._border) this._border = new WindowBorder(metaWindow, this._enableScaling); else this._border.trackWindow(metaWindow); @@ -98,4 +121,4 @@ display.connect('restacked', (display) => { wg.set_child_above_sibling(winBorder, winActor); }); }); -*/ +*/ \ No newline at end of file diff --git a/src/components/windowsSuggestions/suggestedWindowPreview.ts b/src/components/windowsSuggestions/suggestedWindowPreview.ts index 35ace13f..c5e0036d 100644 --- a/src/components/windowsSuggestions/suggestedWindowPreview.ts +++ b/src/components/windowsSuggestions/suggestedWindowPreview.ts @@ -237,8 +237,7 @@ export default class SuggestedWindowPreview extends Shell.WindowPreview { } _addWindow(metaWindow: Meta.Window) { - this.clone = - this.windowContainer.layout_manager.add_window(metaWindow); + this.clone = this.windowContainer.layout_manager.add_window(metaWindow); // if (!clone) return; /* // We expect this to be used for all interaction rather than diff --git a/src/extension.ts b/src/extension.ts index d96c98b6..8f39580b 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -50,6 +50,8 @@ import OverriddenAltTab from './components/altTab/overriddenAltTab'; import { LayoutSwitcherPopup } from './components/layoutSwitcher/layoutSwitcher'; import { unmaximizeWindow } from './utils/gnomesupport'; import * as Config from 'resource:///org/gnome/shell/misc/config.js'; +import { CustomRulesManager } from './components/customRulesManager'; +import { RaiseTogetherManager } from './components/raiseTogether/raiseTogetherManager'; const debug = logger('extension'); @@ -62,7 +64,9 @@ export default class TilingShellExtension extends Extension { private _keybindings: KeyBindings | null; private _resizingManager: ResizingManager | null; private _windowBorderManager: WindowBorderManager | null; - + private _customRulesManager: CustomRulesManager | null; + private _raiseTogetherManager: RaiseTogetherManager | null; + constructor(metadata: ExtensionMetadata) { super(metadata); this._signals = null; @@ -73,6 +77,8 @@ export default class TilingShellExtension extends Extension { this._keybindings = null; this._resizingManager = null; this._windowBorderManager = null; + this._customRulesManager = null; + this._raiseTogetherManager = null; } createIndicator() { @@ -135,6 +141,11 @@ export default class TilingShellExtension extends Extension { ); } + // initialize CustomRulesManager before creating TilingManagers + if (this._customRulesManager) this._customRulesManager.destroy(); + this._customRulesManager = new CustomRulesManager(); + this._customRulesManager.enable(); + if (Main.layoutManager._startingUp) { this._signals.connect( Main.layoutManager, @@ -149,15 +160,19 @@ export default class TilingShellExtension extends Extension { this._setupSignals(); } - this._resizingManager = new ResizingManager(); + this._resizingManager = new ResizingManager(this._customRulesManager); this._resizingManager.enable(); if (this._windowBorderManager) this._windowBorderManager.destroy(); this._windowBorderManager = new WindowBorderManager( !this._fractionalScalingEnabled, + this._customRulesManager, ); this._windowBorderManager.enable(); + this._raiseTogetherManager = new RaiseTogetherManager(); + this._raiseTogetherManager.enable(); + this.createIndicator(); if (this._dbus) this._dbus.disable(); @@ -179,7 +194,11 @@ export default class TilingShellExtension extends Extension { this._tilingManagers.forEach((tm) => tm.destroy()); this._tilingManagers = getMonitors().map( (monitor) => - new TilingManager(monitor, !this._fractionalScalingEnabled), + new TilingManager( + monitor, + !this._fractionalScalingEnabled, + this._customRulesManager as CustomRulesManager, + ), ); this._tilingManagers.forEach((tm) => tm.enable()); } @@ -225,6 +244,7 @@ export default class TilingShellExtension extends Extension { this._windowBorderManager.destroy(); this._windowBorderManager = new WindowBorderManager( this._fractionalScalingEnabled, + this._customRulesManager as CustomRulesManager, ); this._windowBorderManager.enable(); }, @@ -767,6 +787,12 @@ export default class TilingShellExtension extends Extension { this._windowBorderManager?.destroy(); this._windowBorderManager = null; + this._customRulesManager?.destroy(); + this._customRulesManager = null; + + this._raiseTogetherManager?.destroy(); + this._raiseTogetherManager = null; + // disable dbus this._dbus?.disable(); this._dbus = null; diff --git a/src/indicator/defaultMenu.ts b/src/indicator/defaultMenu.ts index f968df17..26c793d2 100644 --- a/src/indicator/defaultMenu.ts +++ b/src/indicator/defaultMenu.ts @@ -108,20 +108,40 @@ class LayoutsRow extends St.BoxLayout { showMonitorName: boolean, monitorsDetails: { name: string; - x: number; - y: number; - height: number; - width: number; + index?: number; + x?: number; + y?: number; + height?: number; + width?: number; }[], ) { if (!showMonitorName) this._label.hide(); else this._label.show(); - const details = monitorsDetails.find( - (m) => m.x === this._monitor.x && m.y === this._monitor.y, + debug(`updateMonitorName: monitor=${this._monitor.index}, x=${this._monitor.x}, y=${this._monitor.y}`); + debug(`updateMonitorName: monitorsDetails=${JSON.stringify(monitorsDetails)}`); + + // Try to match by index first, then fall back to coordinates + let details = monitorsDetails.find( + (m) => m.index === this._monitor.index, ); - if (!details) return; + if (details) { + debug(`updateMonitorName: matched by index ${this._monitor.index}`); + } + if (!details) { + details = monitorsDetails.find( + (m) => m.x === this._monitor.x && m.y === this._monitor.y, + ); + if (details) { + debug(`updateMonitorName: matched by coordinates (${this._monitor.x}, ${this._monitor.y})`); + } + } + if (!details) { + debug(`updateMonitorName: no match found for monitor ${this._monitor.index}`); + return; + } + debug(`updateMonitorName: setting label to "${details.name}"`); this._label.set_text(details.name); } } @@ -256,6 +276,22 @@ export default class DefaultMenu implements CurrentMenu { return; } + // GNOME 49+ has Meta.Monitor with get_display_name() + const monitorsDetails: { + name: string; + index: number; + x: number; + y: number; + }[] | undefined = this._get_display_name(); + + if (monitorsDetails) { + this._layoutsRows.forEach((lr) => + lr.updateMonitorName(true, monitorsDetails), + ); + return; + } + + // Fallback for GNOME < 49: use subprocess with Gdk try { // Since Gdk.Monitor has monitor's name but we can't import Gdk into gnome-shell, we run a gjs code in a subprocess. // This code will just get all the monitors, printing into JSON format to stdout each monitor's name and geometry. @@ -275,9 +311,9 @@ export default class DefaultMenu implements CurrentMenu { const [, stdout, stderr] = pr.communicate_utf8_finish(res); if (pr.get_successful()) { debug(stdout); - const monitorsDetails = JSON.parse(stdout); + const parsedMonitorsDetails = JSON.parse(stdout); this._layoutsRows.forEach((lr) => - lr.updateMonitorName(true, monitorsDetails), + lr.updateMonitorName(true, parsedMonitorsDetails), ); } else { debug('error:', stderr); @@ -289,6 +325,41 @@ export default class DefaultMenu implements CurrentMenu { } } + // Use GNOME 49+'s Meta.Monitor with get_display_name() + private _get_display_name() { + const monitorManager = global.backend.get_monitor_manager(); + if (!monitorManager.get_logical_monitors) return undefined; + + const logicalMonitors = monitorManager.get_logical_monitors(); + if (!logicalMonitors || logicalMonitors.length <= 0) return undefined; + + const monitorsDetails: { + name: string; + index: number; + x: number; + y: number; + }[] = []; + logicalMonitors.forEach(logicalMonitor => { + const metaMonitors = logicalMonitor.get_monitors(); + if (metaMonitors.length <= 0) return; + + const metaMonitor = metaMonitors[0]; + if (!metaMonitor.get_display_name) return; + + // MetaLogicalMonitor has x, y as direct properties + const x = (logicalMonitor as any).x ?? 0; + const y = (logicalMonitor as any).y ?? 0; + monitorsDetails.push({ + name: metaMonitor.get_display_name(), + index: logicalMonitor.get_number(), + x, + y, + }); + }); + + return monitorsDetails; + } + private _updateScaling() { const newScalingFactor = getScalingFactorOf(this._container)[1]; if (this._scalingFactor === newScalingFactor) return; diff --git a/src/indicator/indicator.ts b/src/indicator/indicator.ts index 37c4ab0a..213e83b0 100644 --- a/src/indicator/indicator.ts +++ b/src/indicator/indicator.ts @@ -21,7 +21,7 @@ enum IndicatorState { export default class Indicator extends PanelMenu.Button { static { registerGObjectClass(this) } - + private _layoutEditor: LayoutEditor | null; private _editorDialog: EditorDialog | null; private _currentMenu: CurrentMenu | null; @@ -162,6 +162,9 @@ export default class Indicator extends PanelMenu.Button { this._editorDialog?.destroy(); this._editorDialog = null; }, + onReorderLayout: (fromIndex: number, toIndex: number) => { + GlobalState.get().swapLayouts(fromIndex, toIndex); + }, path: this._path, legend: showLegend, }); diff --git a/src/prefs.ts b/src/prefs.ts index c9dc0bb6..c35d6778 100644 --- a/src/prefs.ts +++ b/src/prefs.ts @@ -21,7 +21,7 @@ import { Gtk, Adw, Gio, GLib, Gdk, GObject } from './gi/prefs'; import Settings from './settings/settings'; -import { ActivationKey } from './settings/settings'; +import { EdgeTilingMode, ActivationKey } from './settings/settings'; import { logger } from './utils/logger'; import { ExtensionPreferences } from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js'; import Layout from './components/layout/Layout'; @@ -29,12 +29,32 @@ import SettingsExport from './settings/settingsExport'; import { gettext as _ } from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js'; // @ts-expect-error "Module exists" import * as Config from 'resource:///org/gnome/Shell/Extensions/js/misc/config.js'; +import { CustomApplicationRulePrefs } from '@components/customApplicationRulePrefs'; const debug = logger('prefs'); +const RESOURCES_PREFIX = "/org/gnome/Shell/Extensions/tilingshell"; // must match the prefix in resources.gresources.xml export default class TilingShellExtensionPreferences extends ExtensionPreferences { private GNOME_VERSION_MAJOR = Number(Config.PACKAGE_VERSION.split('.')[0]); + loadCssAndResources() { + const resource = Gio.Resource.load(`${this.path}/resources.gresource`); + Gio.resources_register(resource); + + const provider = new Gtk.CssProvider(); + provider.load_from_path(`${this.path}/prefs.css`); + + Gtk.StyleContext.add_provider_for_display( + Gdk.Display.get_default(), + provider, + Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION + ); + + Gtk.IconTheme + .get_for_display(Gdk.Display.get_default()) + .add_resource_path(`${RESOURCES_PREFIX}/icons`); + } + /** * This function is called when the preferences window is first created to fill * the `Adw.PreferencesWindow`. @@ -43,6 +63,7 @@ export default class TilingShellExtensionPreferences extends ExtensionPreference */ fillPreferencesWindow(window: Adw.PreferencesWindow): Promise { Settings.initialize(this.getSettings()); + this.loadCssAndResources(); const prefsPage = new Adw.PreferencesPage({ name: 'general', @@ -64,7 +85,6 @@ export default class TilingShellExtensionPreferences extends ExtensionPreference _('Whether to show the panel indicator'), ); appearenceGroup.add(showIndicatorRow); - const innerGapsRow = this._buildSpinButtonRow( Settings.KEY_INNER_GAPS, _('Inner gaps'), @@ -129,7 +149,7 @@ export default class TilingShellExtensionPreferences extends ExtensionPreference this._buildSwitchRow( Settings.KEY_ENABLE_SMART_WINDOW_BORDER_RADIUS, _('Smart border radius'), - _('Dynamically adapt to the window’s actual border radius'), + _("Dynamically adapt to the window's actual border radius"), ), ); windowBorderExpanderRow.add_row( @@ -200,6 +220,20 @@ export default class TilingShellExtensionPreferences extends ExtensionPreference ); behaviourGroup.add(snapAssistRow); + const snapAssistSyncLayoutRow = this._buildSwitchRow( + Settings.KEY_SNAP_ASSIST_SYNC_LAYOUT, + _('Sync layout when tiling with Snap Assistant'), + _( + 'Change the desktop layout to match the layout used when tiling a window with Snap Assistant', + ), + ); + Settings.bind( + Settings.KEY_SNAP_ASSIST, + snapAssistSyncLayoutRow, + 'sensitive', + ); + behaviourGroup.add(snapAssistSyncLayoutRow); + const enableTilingSystemRow = this._buildSwitchRow( Settings.KEY_TILING_SYSTEM, _('Enable Tiling System'), @@ -278,6 +312,15 @@ export default class TilingShellExtensionPreferences extends ExtensionPreference ); behaviourGroup.add(overrideAltTabRow); + const raiseTogetherRow = this._buildSwitchRow( + Settings.KEY_RAISE_TOGETHER, + _('Raise tiled windows together'), + _( + 'When one tiled window is raised, raise all tiled windows into the foreground together', + ), + ); + behaviourGroup.add(raiseTogetherRow); + // Screen Edges section const activeScreenEdgesGroup = new Adw.PreferencesGroup({ title: _('Screen Edges'), @@ -343,6 +386,13 @@ export default class TilingShellExtensionPreferences extends ExtensionPreference ); activeScreenEdgesGroup.add(edgeTilingOffset); + // Create dropdown for edge tiling mode + const edgeTilingBehaviourRow = this._buildEdgeTilingBehaviourRow( + Settings.EDGE_TILING_MODE, + (newMode: EdgeTilingMode) => Settings.EDGE_TILING_MODE = newMode, + ); + activeScreenEdgesGroup.add(edgeTilingBehaviourRow); + prefsPage.add(activeScreenEdgesGroup); // Windows suggestions section @@ -372,15 +422,20 @@ export default class TilingShellExtensionPreferences extends ExtensionPreference const screenEdgesWindowSuggestionRow = this._buildSwitchRow( Settings.KEY_ENABLE_SCREEN_EDGES_WINDOWS_SUGGESTIONS, - _('Enable window suggestions for screen edge snapping'), + _('Enable window suggestions for screen edge tiling'), _( - 'Suggests windows to occupy empty tiles when snapping to screen edges', + 'Suggests windows to occupy empty tiles when tiling to screen edges', ), ); windowsSuggestionsGroup.add(screenEdgesWindowSuggestionRow); prefsPage.add(windowsSuggestionsGroup); + // Custom Rules section + const customRulesPrefs = new CustomApplicationRulePrefs(); + const customRulesGroup = customRulesPrefs.buildCustomRulesGroup(window); + prefsPage.add(customRulesGroup); + // Layouts section const layoutsGroup = new Adw.PreferencesGroup({ title: _('Layouts'), @@ -985,6 +1040,107 @@ export default class TilingShellExtensionPreferences extends ExtensionPreference return Promise.resolve(); } + _createEdgeTilingBehaviourOption(title: string, subtitle: string, iconName: string) { + const button = new Gtk.ToggleButton({ + canFocus: true, + valign: Gtk.Align.FILL, + cssClasses: ['option'], + hexpand: true, + vexpand: false, + }); + + const distance = 12; + + const content = new Gtk.Box({ + orientation: Gtk.Orientation.VERTICAL, + margin_top: 0, + margin_bottom: distance, + margin_start: 0, + margin_end: 0, + }); + + const image = new Gtk.Image({ + iconName: iconName, + pixel_size: 96, + margin_top: distance, + margin_bottom: distance, + margin_start: 0, + margin_end: 0, + }); + + const titleLabel = new Gtk.Label({ + label: title, + wrap: true, + xalign: 0, + css_classes: ['title'] + }); + + const subtitleLabel = new Gtk.Label({ + label: subtitle, + wrap: true, + xalign: 0, + css_classes: ['caption'] + }); + + content.append(image); + content.append(titleLabel); + content.append(subtitleLabel); + + button.set_child(content); + + return button; + } + + _buildEdgeTilingBehaviourRow(currentMode: EdgeTilingMode, onModeChange: (newMode: EdgeTilingMode) => void) { + const row = new Adw.ActionRow({ + activatable: false, + title: _("Choose how windows snap to screen edges"), + cssClasses: ['edge-tiling-behaviour'] + }); + (row.get_child() as Gtk.Box).set_orientation(Gtk.Orientation.VERTICAL); + + const content = new Gtk.Box({ + orientation: Gtk.Orientation.HORIZONTAL, + halign: Gtk.Align.FILL, + valign: Gtk.Align.FILL, + homogeneous: true, // all children same size + spacing: 2, + cssClasses: ['content'], + margin_bottom: 6, + }); + const defaultBtn = this._createEdgeTilingBehaviourOption( + _('Default'), + _('Follow quarters or screen halves'), + 'edge-default-symbolic' + ); + defaultBtn.connect("toggled", () => onModeChange(EdgeTilingMode.DEFAULT)); + const adaptiveBtn = this._createEdgeTilingBehaviourOption( + _('Adaptive'), + _('Follow corners of selected layout or screen halves'), + 'edge-adaptive-symbolic' + ); + adaptiveBtn.connect("toggled", () => onModeChange(EdgeTilingMode.ADAPTIVE)); + const granularBtn = this._createEdgeTilingBehaviourOption( + _('Granular'), + _('Follow currently selected layout'), + 'edge-granular-symbolic' + ); + granularBtn.connect("toggled", () => onModeChange(EdgeTilingMode.GRANULAR)); + content.append(defaultBtn); + content.append(adaptiveBtn); + content.append(granularBtn); + // make them mutually exclusive + defaultBtn.set_group(adaptiveBtn); + granularBtn.set_group(adaptiveBtn); + // set the currently activated one + if (currentMode === EdgeTilingMode.ADAPTIVE) adaptiveBtn.set_active(true); + else if (currentMode === EdgeTilingMode.GRANULAR) granularBtn.set_active(true); + else defaultBtn.set_active(true); + (row.get_child() as Gtk.Box).append(content); + + return row; + } + _buildSwitchRow( settingsKey: string, title: string, diff --git a/src/settings/settings.ts b/src/settings/settings.ts index 4ba2931f..95544715 100644 --- a/src/settings/settings.ts +++ b/src/settings/settings.ts @@ -1,6 +1,7 @@ import { Gio, GObject, GLib } from '../gi/shared'; import Layout from '../components/layout/Layout'; import Tile from '../components/layout/Tile'; +import { CustomApplicationRules } from '@components/customRulesManager'; export enum ActivationKey { NONE = -1, @@ -9,6 +10,12 @@ export enum ActivationKey { SUPER, } +export enum EdgeTilingMode { + DEFAULT = 'default', + ADAPTIVE = 'adaptive', + GRANULAR = 'granular', +} + /** ------------- Utility functions ------------- */ function get_string(key: string): string { return ( @@ -82,6 +89,7 @@ export default class Settings { static KEY_WINDOW_USE_CUSTOM_BORDER_COLOR = 'window-use-custom-border-color'; static KEY_TILING_SYSTEM = 'enable-tiling-system'; static KEY_SNAP_ASSIST = 'enable-snap-assist'; + static KEY_SNAP_ASSIST_SYNC_LAYOUT = 'snap-assist-sync-layout'; static KEY_SHOW_INDICATOR = 'show-indicator'; static KEY_TILING_SYSTEM_ACTIVATION_KEY = 'tiling-system-activation-key'; static KEY_TILING_SYSTEM_DEACTIVATION_KEY = 'tiling-system-deactivation-key'; @@ -95,6 +103,7 @@ export default class Settings { static KEY_ENABLE_BLUR_SELECTED_TILEPREVIEW = 'enable-blur-selected-tilepreview'; static KEY_ENABLE_MOVE_KEYBINDINGS = 'enable-move-keybindings'; static KEY_ENABLE_AUTO_TILING = 'enable-autotiling'; + static KEY_RAISE_TOGETHER = 'raise-together'; static KEY_ACTIVE_SCREEN_EDGES = 'active-screen-edges'; static KEY_TOP_EDGE_MAXIMIZE = 'top-edge-maximize'; static KEY_OVERRIDE_WINDOW_MENU = 'override-window-menu'; @@ -113,7 +122,9 @@ export default class Settings { static KEY_EDGE_TILING_OFFSET = 'edge-tiling-offset'; static KEY_ENABLE_TILING_SYSTEM_WINDOWS_SUGGESTIONS = 'enable-tiling-system-windows-suggestions'; static KEY_ENABLE_SNAP_ASSISTANT_WINDOWS_SUGGESTIONS = 'enable-snap-assistant-windows-suggestions'; - static KEY_ENABLE_SCREEN_EDGES_WINDOWS_SUGGESTIONS = 'enable-screen-edges-windows-suggestions'; + static KEY_ENABLE_SCREEN_EDGES_WINDOWS_SUGGESTIONS = 'enable-screen-edges-windows-suggestions'; + static KEY_APPLICATION_CUSTOMRULES = 'application-custom-rules'; + static KEY_EDGE_TILING_MODE = 'edge-tiling-mode'; static SETTING_MOVE_WINDOW_RIGHT = 'move-window-right'; static SETTING_MOVE_WINDOW_LEFT = 'move-window-left'; @@ -194,6 +205,14 @@ export default class Settings { set_boolean(Settings.KEY_SNAP_ASSIST, val); } + static get SNAP_ASSIST_SYNC_LAYOUT(): boolean { + return get_boolean(Settings.KEY_SNAP_ASSIST_SYNC_LAYOUT); + } + + static set SNAP_ASSIST_SYNC_LAYOUT(val: boolean) { + set_boolean(Settings.KEY_SNAP_ASSIST_SYNC_LAYOUT, val); + } + static get SHOW_INDICATOR(): boolean { return get_boolean(Settings.KEY_SHOW_INDICATOR); } @@ -323,6 +342,14 @@ export default class Settings { set_boolean(Settings.KEY_ENABLE_AUTO_TILING, val); } + static get RAISE_TOGETHER(): boolean { + return get_boolean(Settings.KEY_RAISE_TOGETHER); + } + + static set RAISE_TOGETHER(val: boolean) { + set_boolean(Settings.KEY_RAISE_TOGETHER, val); + } + static get ACTIVE_SCREEN_EDGES(): boolean { return get_boolean(Settings.KEY_ACTIVE_SCREEN_EDGES); } @@ -468,6 +495,18 @@ export default class Settings { set_boolean(Settings.KEY_ENABLE_SCREEN_EDGES_WINDOWS_SUGGESTIONS, val); } + static get EDGE_TILING_MODE(): EdgeTilingMode { + const value = get_string(Settings.KEY_EDGE_TILING_MODE); + if (Object.values(EdgeTilingMode).includes(value as EdgeTilingMode)) + return value as EdgeTilingMode; + + return EdgeTilingMode.DEFAULT; + } + + static set EDGE_TILING_MODE(val: EdgeTilingMode) { + set_string(Settings.KEY_EDGE_TILING_MODE, val); + } + static get_inner_gaps(scaleFactor: number = 1): { top: number; bottom: number; @@ -675,6 +714,41 @@ export default class Settings { ); } + static get_application_custom_rules(): Array { + try { + const json = get_string(Settings.KEY_APPLICATION_CUSTOMRULES); + const rules = JSON.parse(json) as Array; + + // Validate all rules - if any rule is invalid, clear all custom rules + const hasInvalidRule = rules.some( + (rule) => !rule.appId || !rule.name, + ); + + if (hasInvalidRule) { + console.warn( + 'TilingShell: Invalid or corrupted custom rules detected, clearing all custom rules', + ); + // Clear the invalid data + this.save_application_custom_rules([]); + return []; + } + + return rules; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + } catch (e) { + return []; + } + } + + static save_application_custom_rules( + customRules: Array, + ) { + set_string( + Settings.KEY_APPLICATION_CUSTOMRULES, + JSON.stringify(customRules), + ); + } + static connect(key: string, func: (..._arg: unknown[]) => void): number { return this._settings?.connect(`changed::${key}`, func) || -1; } diff --git a/src/styles/prefs.scss b/src/styles/prefs.scss new file mode 100644 index 00000000..182f5c6d --- /dev/null +++ b/src/styles/prefs.scss @@ -0,0 +1,21 @@ +.edge-tiling-behaviour .content { + border-radius: 12px; + background-color: transparent; + border: 2px solid rgb(128, 128, 128, .8); +} + +.edge-tiling-behaviour .option { + border-radius: 10px; + background-color: transparent; + border: 2px solid transparent; +} + +.edge-tiling-behaviour .option:hover { + background-color: #{'alpha(@accent_color, 0.2)'};//rgba(31, 170, 229, .2); + border: 2px solid #{'@accent_color'}; +} + +.edge-tiling-behaviour .option:checked { + background-color: #{'alpha(@accent_color, 0.4)'}; //rgba(31, 170, 229, .4); + border: 2px solid #{'@accent_color'}; +} diff --git a/src/utils/globalState.ts b/src/utils/globalState.ts index 585ccfc5..73996f38 100644 --- a/src/utils/globalState.ts +++ b/src/utils/globalState.ts @@ -283,6 +283,14 @@ export default class GlobalState extends GObject.Object { this.layouts = this._layouts; } + public swapLayouts(first: number, second: number) { + const tmp = this._layouts[first]; + this._layouts[first] = this._layouts[second]; + this._layouts[second] = tmp; + // easy way to trigger save and signal emission + this.layouts = this._layouts; + } + set layouts(layouts: Layout[]) { this._layouts = layouts; Settings.save_layouts_json(layouts); diff --git a/src/utils/signalHandling.ts b/src/utils/signalHandling.ts index a690fb1f..c2ed5e1f 100644 --- a/src/utils/signalHandling.ts +++ b/src/utils/signalHandling.ts @@ -19,6 +19,8 @@ export default class SignalHandling { ) { const signalId = obj.connect(key, fun); this._signalsIds[key] = { id: signalId, obj }; + + return signalId; } public disconnect(): boolean; diff --git a/translations/cs.po b/translations/cs.po index 2b83269a..c8c1ad3a 100644 --- a/translations/cs.po +++ b/translations/cs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-09 11:35+0100\n" +"POT-Creation-Date: 2026-01-03 22:57+0100\n" "PO-Revision-Date: 2025-10-02 22:40+0200\n" "Last-Translator: Amerey \n" "Language-Team: \n" @@ -18,213 +18,214 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.7\n" -#: dist/prefs.js:793 +#: dist/prefs.js:59 msgid "General" msgstr "Obecné" -#: dist/prefs.js:798 +#: dist/prefs.js:64 msgid "Appearance" msgstr "Vzhled" -#: dist/prefs.js:799 +#: dist/prefs.js:65 msgid "Configure the appearance of Tiling Shell" msgstr "Nastavení vzhledu Tiling Shell" -#: dist/prefs.js:804 +#: dist/prefs.js:70 msgid "Show Indicator" msgstr "Zobrazit ikonu" -#: dist/prefs.js:805 +#: dist/prefs.js:71 msgid "Whether to show the panel indicator" msgstr "Zda se má zobrazit ikona na panelu" -#: dist/prefs.js:810 +#: dist/prefs.js:76 msgid "Inner gaps" msgstr "Vnitřní mezery" -#: dist/prefs.js:811 +#: dist/prefs.js:77 msgid "Gaps between windows" msgstr "Mezery mezi okny" -#: dist/prefs.js:816 +#: dist/prefs.js:82 msgid "Outer gaps" msgstr "Vnější mezery" -#: dist/prefs.js:817 +#: dist/prefs.js:83 msgid "Gaps between a window and the monitor borders" msgstr "Mezery mezi oknem a okrajem monitoru" -#: dist/prefs.js:821 +#: dist/prefs.js:87 msgid "Blur (experimental feature)" msgstr "Rozostření (experimentální funkce)" -#: dist/prefs.js:823 +#: dist/prefs.js:89 msgid "Apply blur effect to Snap Assistant and tile previews" msgstr "Použít efekt rozostření na asistenta přichycení a náhledy dlaždic" -#: dist/prefs.js:829 +#: dist/prefs.js:95 msgid "Snap Assistant threshold" msgstr "Vzdálenost asistenta přichycení" -#: dist/prefs.js:831 +#: dist/prefs.js:97 msgid "Minimum distance from the Snap Assistant to the pointer to open it" msgstr "" "Minimální vzdálenost od asistenta přichycení k ukazateli pro jeho otevření" -#: dist/prefs.js:840 +#: dist/prefs.js:106 msgid "Snap Assistant" msgstr "Asistent přichycení" -#: dist/prefs.js:841 +#: dist/prefs.js:107 msgid "Apply blur effect to Snap Assistant" msgstr "Použít efekt rozostření na asistenta přichycení" -#: dist/prefs.js:847 +#: dist/prefs.js:113 msgid "Selected tile preview" msgstr "Náhled vybrané dlaždice" -#: dist/prefs.js:848 +#: dist/prefs.js:114 msgid "Apply blur effect to selected tile preview" msgstr "Použít efekt rozostření na vybraný náhled dlaždice" -#: dist/prefs.js:852 +#: dist/prefs.js:118 msgid "Window border" msgstr "Ohraničení okna" -#: dist/prefs.js:853 dist/prefs.js:860 +#: dist/prefs.js:119 dist/prefs.js:126 msgid "Show a border around focused window" msgstr "Zobrazení ohraničení kolem vybraného okna" -#: dist/prefs.js:859 +#: dist/prefs.js:125 msgid "Enable" msgstr "Povolit" -#: dist/prefs.js:866 +#: dist/prefs.js:132 msgid "Smart border radius" msgstr "Inteligentní poloměr ohraničení" -#: dist/prefs.js:867 -msgid "Dynamically adapt to the window’s actual border radius" +#: dist/prefs.js:133 +#, fuzzy +msgid "Dynamically adapt to the window's actual border radius" msgstr "Dynamicky se přizpůsobí skutečnému poloměru okraje okna" -#: dist/prefs.js:873 +#: dist/prefs.js:139 msgid "Width" msgstr "Šířka" -#: dist/prefs.js:874 +#: dist/prefs.js:140 msgid "The size of the border" msgstr "Velikost ohraničení" -#: dist/prefs.js:883 +#: dist/prefs.js:149 msgid "Border color" msgstr "Barva ohraničení" -#: dist/prefs.js:884 +#: dist/prefs.js:150 msgid "Choose the color of the border" msgstr "Vyberte barvu ohraničení" -#: dist/prefs.js:900 +#: dist/prefs.js:166 msgid "Animations" msgstr "Animace" -#: dist/prefs.js:901 +#: dist/prefs.js:167 msgid "Customize animations" msgstr "Přizpůsobení animací" -#: dist/prefs.js:907 +#: dist/prefs.js:173 msgid "Snap assistant animation time" msgstr "Doba animace asistenta přichycení" -#: dist/prefs.js:908 +#: dist/prefs.js:174 msgid "The snap assistant animation time in milliseconds" msgstr "Doba animace v milisekundách" -#: dist/prefs.js:916 +#: dist/prefs.js:182 msgid "Tiles animation time" msgstr "Doba animace dlaždic" -#: dist/prefs.js:917 +#: dist/prefs.js:183 msgid "The tiles animation time in milliseconds" msgstr "Doba animace v milisekundách" -#: dist/prefs.js:923 +#: dist/prefs.js:189 msgid "Behaviour" msgstr "Chování" -#: dist/prefs.js:924 +#: dist/prefs.js:190 msgid "Configure the behaviour of Tiling Shell" msgstr "Nastavení chování Tiling Shell" -#: dist/prefs.js:929 +#: dist/prefs.js:195 msgid "Enable Snap Assistant" msgstr "Povolit asistenta přichycení" -#: dist/prefs.js:930 +#: dist/prefs.js:196 msgid "Move the window on top of the screen to snap assist it" msgstr "" "Přesunutím okna k horní části obrazovky mužete vybrat pozici přichycení" -#: dist/prefs.js:935 +#: dist/prefs.js:201 msgid "Enable Tiling System" msgstr "Povolit systém dlaždic" -#: dist/prefs.js:936 +#: dist/prefs.js:202 msgid "Hold the activation key while moving a window to tile it" msgstr "Podržte aktivační klávesu a přesouvejte okno pro přichycení k dláždici" -#: dist/prefs.js:944 +#: dist/prefs.js:210 msgid "Tiling System deactivation key" msgstr "Klávesa pro deaktivaci systému dlaždic" -#: dist/prefs.js:946 +#: dist/prefs.js:212 msgid "" "Hold the deactivation key while moving a window to deactivate the tiling " "system" msgstr "" "Podržte deaktivační klávesu při pohybu okna pro deaktivaci systému dláždic" -#: dist/prefs.js:954 +#: dist/prefs.js:220 msgid "Span multiple tiles" msgstr "Rozvržení přes více dlaždic" -#: dist/prefs.js:955 +#: dist/prefs.js:221 msgid "Hold the activation key to span multiple tiles" msgstr "Podržte aktivační klávesu, abyste překlenuli více dlaždic" -#: dist/prefs.js:964 +#: dist/prefs.js:230 msgid "Enable Auto Tiling" msgstr "Povolit automatické dlaždice" -#: dist/prefs.js:965 +#: dist/prefs.js:231 msgid "Automatically tile new windows to the best tile" msgstr "Automaticky vložte nová okna na nejvhodnějsí dlaždice" -#: dist/prefs.js:970 +#: dist/prefs.js:236 msgid "Enable auto-resize of the complementing tiled windows" msgstr "Povolit automatickou změnu velikosti doplňujících dlaždicových oken" -#: dist/prefs.js:972 +#: dist/prefs.js:238 msgid "" "When a tiled window is resized, auto-resize the other tiled windows near it" msgstr "" "Když se změní velikost dlaždicového okna, automaticky změníte velikost " "ostatních dlaždicových oken poblíž" -#: dist/prefs.js:978 +#: dist/prefs.js:244 msgid "Restore window size" msgstr "Obnovit velikost okna" -#: dist/prefs.js:980 +#: dist/prefs.js:246 msgid "Whether to restore the windows to their original size when untiled" msgstr "Zda vrátit okna do původní velikosti, když nejsou v dlaždicích" -#: dist/prefs.js:986 +#: dist/prefs.js:252 msgid "Add snap assistant and auto-tile buttons to window menu" msgstr "" "Přidat do nabídky okna asistenta přichycení a tlačítka automatického " "rozložení" -#: dist/prefs.js:988 +#: dist/prefs.js:254 msgid "" "Add snap assistant and auto-tile buttons in the menu that shows up when you " "right click on a window title" @@ -232,11 +233,11 @@ msgstr "" "Když kliknete pravým tlačítkem myši na název okna, zobrazí se v nabídce " "tlačítka asistenta přichycení a automatického rozložení" -#: dist/prefs.js:994 +#: dist/prefs.js:260 msgid "Add tiled windows to ALT+TAB menu" msgstr "Přidat dlaždicová okna do nabídky ALT+TAB" -#: dist/prefs.js:996 +#: dist/prefs.js:262 msgid "" "Add the tiled windows to the ALT+TAB menu to open all the tiled windows at " "once" @@ -244,421 +245,444 @@ msgstr "" "Přidáním dlaždicových oken do nabídky ALT+TAB otevřete všechna dlaždicová " "okna najednou" -#: dist/prefs.js:1001 +#: dist/prefs.js:267 msgid "Screen Edges" msgstr "Okraje obrazovky" -#: dist/prefs.js:1003 +#: dist/prefs.js:269 msgid "" "Drag windows against the top, left and right screen edges to resize them" msgstr "" "Přetažením oken proti hornímu, levému a pravému okraji obrazovky změníte " "jejich velikost" -#: dist/prefs.js:1017 +#: dist/prefs.js:283 msgid "Drag against top edge to maximize window" msgstr "Tažením proti hornímu okraji okno maximalizujete" -#: dist/prefs.js:1018 +#: dist/prefs.js:284 msgid "Drag windows against the top edge to maximize them" msgstr "Přetáhněte okna proti hornímu okraji, abyste je maximalizovali" -#: dist/prefs.js:1027 +#: dist/prefs.js:293 msgid "Quarter tiling activation area" msgstr "Plocha pro aktivaci dláždic" -#: dist/prefs.js:1028 +#: dist/prefs.js:294 #, javascript-format msgid "Activation area to trigger quarter tiling (%% of the screen)" msgstr "Aktivační oblast pro spuštění dláždic (%% obrazovky)" -#: dist/prefs.js:1044 +#: dist/prefs.js:310 msgid "Edge tiling offset" msgstr "Odsazení dlaždic od okraje obrazovky" -#: dist/prefs.js:1045 +#: dist/prefs.js:311 msgid "Offset from the screen edge to trigger edge tiling (in pixels)" msgstr "Odsazení od okraje obrazovky pro spuštění dláždic (v pixelech)" -#: dist/prefs.js:1062 +#: dist/prefs.js:333 msgid "Windows suggestions" msgstr "Návrhy oken" -#: dist/prefs.js:1063 +#: dist/prefs.js:334 msgid "Enable and disable windows suggestions" msgstr "Povolit a zakázat návrhy oken" -#: dist/prefs.js:1068 +#: dist/prefs.js:339 msgid "Enable window suggestions for the tiling system" msgstr "Povolit návrhy oken pro systém dlaždic" -#: dist/prefs.js:1070 +#: dist/prefs.js:341 msgid "" "Provides smart suggestions to fill empty tiles when using the tiling system" msgstr "" "Poskytuje chytré návrhy, jak vyplnit prázdné dlaždice při použití systému " "obkladů" -#: dist/prefs.js:1076 +#: dist/prefs.js:347 msgid "Enable window suggestions for the snap assistant" msgstr "Povolit návrhy oken pro asistenta přichycení" -#: dist/prefs.js:1078 +#: dist/prefs.js:349 msgid "" "Offers suggestions to populate empty tiles when using the snap assistant" msgstr "" "Nabízí návrhy k vyplnění prázdných dlaždic při použití asistenta přichycení" -#: dist/prefs.js:1084 +#: dist/prefs.js:355 msgid "Enable window suggestions for screen edge snapping" msgstr "Povolit návrhy oken pro přichycení okrajů obrazovky" -#: dist/prefs.js:1086 +#: dist/prefs.js:357 msgid "Suggests windows to occupy empty tiles when snapping to screen edges" msgstr "" "Navrhuje, aby okna obsadila prázdné dlaždice při přichycení k okrajům " "obrazovky" -#: dist/prefs.js:1092 +#: dist/prefs.js:363 msgid "Layouts" msgstr "Rozvržení" -#: dist/prefs.js:1093 +#: dist/prefs.js:364 msgid "Configure the layouts of Tiling Shell" msgstr "Nastavení rozvržení Tiling Shell" -#: dist/prefs.js:1097 dist/prefs.js:1098 +#: dist/prefs.js:368 dist/prefs.js:369 msgid "Edit layouts" msgstr "Upravit rozvržení" -#: dist/prefs.js:1099 +#: dist/prefs.js:370 msgid "Open the layouts editor" msgstr "Otevřete editor rozvržení" -#: dist/prefs.js:1104 dist/prefs.js:1105 dist/prefs.js:1109 +#: dist/prefs.js:375 dist/prefs.js:376 dist/prefs.js:380 msgid "Export layouts" msgstr "Exportovat rozvržení" -#: dist/prefs.js:1106 +#: dist/prefs.js:377 msgid "Export layouts to a file" msgstr "Exportujte rozvržení do souboru" -#: dist/prefs.js:1112 dist/prefs.js:1496 +#: dist/prefs.js:383 dist/prefs.js:767 msgid "Save" msgstr "Uložit" -#: dist/prefs.js:1113 dist/prefs.js:1167 dist/prefs.js:1497 dist/prefs.js:1552 +#: dist/prefs.js:384 dist/prefs.js:438 dist/prefs.js:768 dist/prefs.js:823 msgid "Cancel" msgstr "Zrušit" -#: dist/prefs.js:1158 dist/prefs.js:1159 +#: dist/prefs.js:429 dist/prefs.js:430 msgid "Import layouts" msgstr "Importovat rozvržení" -#: dist/prefs.js:1160 +#: dist/prefs.js:431 msgid "Import layouts from a file" msgstr "Importujte rozvržení ze souboru" -#: dist/prefs.js:1163 +#: dist/prefs.js:434 msgid "Select layouts file" msgstr "Vyberte soubor rozvržení" -#: dist/prefs.js:1166 dist/prefs.js:1551 +#: dist/prefs.js:437 dist/prefs.js:822 msgid "Open" msgstr "Otevřít" -#: dist/prefs.js:1214 dist/prefs.js:1215 +#: dist/prefs.js:485 dist/prefs.js:486 msgid "Reset layouts" msgstr "Resetovat rozvržení" -#: dist/prefs.js:1216 +#: dist/prefs.js:487 msgid "Bring back the default layouts" msgstr "Obnovte výchozí rozvržení" -#: dist/prefs.js:1229 +#: dist/prefs.js:500 msgid "Keybindings" msgstr "Klávesové zkratky" -#: dist/prefs.js:1231 +#: dist/prefs.js:502 msgid "Use hotkeys to perform actions on the focused window" msgstr "Pomocí klávesových zkratek provádějte akce na vybraném okně" -#: dist/prefs.js:1249 +#: dist/prefs.js:520 msgid "Move window to right tile" msgstr "Přesunout okno na pravou dlaždici" -#: dist/prefs.js:1251 +#: dist/prefs.js:522 msgid "Move the focused window to the tile on its right" msgstr "Přesuňte vybrané okno na dlaždici napravo" -#: dist/prefs.js:1260 +#: dist/prefs.js:531 msgid "Move window to left tile" msgstr "Přesunout okno na levou dlaždici" -#: dist/prefs.js:1261 +#: dist/prefs.js:532 msgid "Move the focused window to the tile on its left" msgstr "Přesuňte vybrané okno na dlaždici nalevo" -#: dist/prefs.js:1267 +#: dist/prefs.js:538 msgid "Move window to tile above" msgstr "Přesunout okno na dlaždici výše" -#: dist/prefs.js:1268 +#: dist/prefs.js:539 msgid "Move the focused window to the tile above" msgstr "Přesuňte vybrané okno na dlaždici výše" -#: dist/prefs.js:1274 +#: dist/prefs.js:545 msgid "Move window to tile below" msgstr "Přesunout okno na dlaždici níže" -#: dist/prefs.js:1275 +#: dist/prefs.js:546 msgid "Move the focused window to the tile below" msgstr "Přesuňte vybrané okno na dlaždici níže" -#: dist/prefs.js:1281 +#: dist/prefs.js:552 msgid "Span window to right tile" msgstr "Roztáhnout okno na pravou dlaždici" -#: dist/prefs.js:1282 +#: dist/prefs.js:553 msgid "Span the focused window to the tile on its right" msgstr "Roztáhněte vybrané okno na dlaždici napravo" -#: dist/prefs.js:1288 +#: dist/prefs.js:559 msgid "Span window to left tile" msgstr "Roztáhnout okno na levou dlaždici" -#: dist/prefs.js:1289 +#: dist/prefs.js:560 msgid "Span the focused window to the tile on its left" msgstr "Roztáhněte vybrané okno na dlaždici nalevo" -#: dist/prefs.js:1295 +#: dist/prefs.js:566 msgid "Span window above" msgstr "Roztáhnout okno výše" -#: dist/prefs.js:1296 +#: dist/prefs.js:567 msgid "Span the focused window to the tile above" msgstr "Roztáhněte vybrané okno na dlaždici výše" -#: dist/prefs.js:1302 +#: dist/prefs.js:573 msgid "Span window down" msgstr "Roztáhnout okno níže" -#: dist/prefs.js:1303 +#: dist/prefs.js:574 msgid "Span the focused window to the tile below" msgstr "Roztáhněte vybrané okno na dlaždici níže" -#: dist/prefs.js:1309 +#: dist/prefs.js:580 msgid "Span window to all tiles" msgstr "Roztáhnout okno na všechny dlaždice" -#: dist/prefs.js:1310 +#: dist/prefs.js:581 msgid "Span the focused window to all the tiles" msgstr "Roztáhněte vybrané okno na všechny dlaždice" -#: dist/prefs.js:1316 +#: dist/prefs.js:587 msgid "Untile focused window" msgstr "Odpojit vybrané okno z dlaždic" -#: dist/prefs.js:1324 +#: dist/prefs.js:595 msgid "Move window to the center" msgstr "Přesunout okno do středu" -#: dist/prefs.js:1326 +#: dist/prefs.js:597 msgid "Move the focused window to the center of the screen" msgstr "Přesuňte vybrané okno do středu obrazovky" -#: dist/prefs.js:1335 +#: dist/prefs.js:606 msgid "Focus window to the right" msgstr "Vybrat okno napravo" -#: dist/prefs.js:1337 +#: dist/prefs.js:608 msgid "Focus the window to the right of the current focused window" msgstr "Vyberte okno napravo od aktuálně aktivního okna" -#: dist/prefs.js:1344 +#: dist/prefs.js:615 msgid "Focus window to the left" msgstr "Vybrat okno nalevo" -#: dist/prefs.js:1345 +#: dist/prefs.js:616 msgid "Focus the window to the left of the current focused window" msgstr "Vyberte okno nalevo od aktuálně aktivního okna" -#: dist/prefs.js:1351 +#: dist/prefs.js:622 msgid "Focus window above" msgstr "Vybrat okno nahoře" -#: dist/prefs.js:1352 +#: dist/prefs.js:623 msgid "Focus the window above the current focused window" msgstr "Vyberte okno nad aktuálně aktivním oknem" -#: dist/prefs.js:1358 +#: dist/prefs.js:629 msgid "Focus window below" msgstr "Vybrat okno dole" -#: dist/prefs.js:1359 +#: dist/prefs.js:630 msgid "Focus the window below the current focused window" msgstr "Vyberte okno pod aktuálně aktivním oknem" -#: dist/prefs.js:1365 +#: dist/prefs.js:636 msgid "Focus next window" msgstr "Vybrat následující okno" -#: dist/prefs.js:1366 +#: dist/prefs.js:637 msgid "Focus the window next to the current focused window" msgstr "Vyberte okno za aktuálně aktivním oknem" -#: dist/prefs.js:1372 +#: dist/prefs.js:643 msgid "Focus previous window" msgstr "Vybrat předchozí okno" -#: dist/prefs.js:1373 +#: dist/prefs.js:644 msgid "Focus the window prior to the current focused window" msgstr "Vyberte okno před aktuálně aktivním oknem" -#: dist/prefs.js:1379 +#: dist/prefs.js:650 msgid "Highlight focused window" msgstr "Zvýraznit vybrané okno" -#: dist/prefs.js:1381 +#: dist/prefs.js:652 msgid "Minimize all the other windows and show only the focused window" msgstr "Minimalizovat všechna ostatní okna a zobrazit pouze vybrané okno" -#: dist/prefs.js:1388 +#: dist/prefs.js:659 msgid "Cycle layouts" msgstr "Procházet rozvržení" -#: dist/prefs.js:1389 +#: dist/prefs.js:660 msgid "Cycle through available workspace layouts" msgstr "Procházení dostupných rozvržení pracovního prostoru" -#: dist/prefs.js:1415 +#: dist/prefs.js:686 msgid "View and Customize all the Shortcuts" msgstr "Zobrazit a přizpůsobit všechny zkratky" -#: dist/prefs.js:1443 dist/prefs.js:1444 +#: dist/prefs.js:714 dist/prefs.js:715 msgid "View and Customize Shortcuts" msgstr "Zobrazit a přizpůsobit zkratky" -#: dist/prefs.js:1466 +#: dist/prefs.js:737 msgid "Enable next/previous window focus to wrap around" msgstr "Povolit další/předchozí vybrání okna" -#: dist/prefs.js:1468 +#: dist/prefs.js:739 msgid "When focusing next or previous window, wrap around at the window edge" msgstr "Při vybrání dalšího nebo předchozího okna zalomí okraje okna" -#: dist/prefs.js:1474 +#: dist/prefs.js:745 msgid "Restrict directional focus to tiled windows" msgstr "Omezení směrové navigace na okna s dlaždicemi" -#: dist/prefs.js:1476 +#: dist/prefs.js:747 msgid "When using directional focus navigation, only consider tiled windows" msgstr "" "Při použití směrové navigace bere v úvahu pouze dlaždicově uspořádaná okna" -#: dist/prefs.js:1481 +#: dist/prefs.js:752 msgid "Import, export and reset" msgstr "Import, export a reset" -#: dist/prefs.js:1483 +#: dist/prefs.js:754 msgid "Import, export and reset the settings of Tiling Shell" msgstr "Importujte, exportujte a resetujte nastavení Tiling Shell" -#: dist/prefs.js:1488 dist/prefs.js:1489 +#: dist/prefs.js:759 dist/prefs.js:760 msgid "Export settings" msgstr "Export nastavení" -#: dist/prefs.js:1490 +#: dist/prefs.js:761 msgid "Export settings to a file" msgstr "Exportujte nastavení do souboru" -#: dist/prefs.js:1493 +#: dist/prefs.js:764 msgid "Export settings to a text file" msgstr "Export nastavení do textového souboru" -#: dist/prefs.js:1500 +#: dist/prefs.js:771 msgid "Text file" msgstr "Textový soubor" -#: dist/prefs.js:1543 dist/prefs.js:1544 +#: dist/prefs.js:814 dist/prefs.js:815 msgid "Import settings" msgstr "Import nastavení" -#: dist/prefs.js:1545 +#: dist/prefs.js:816 msgid "Import settings from a file" msgstr "Importujte nastavení ze souboru" -#: dist/prefs.js:1548 +#: dist/prefs.js:819 msgid "Select a text file to import from" msgstr "Vyberte textový soubor, ze kterého chcete importovat" -#: dist/prefs.js:1590 dist/prefs.js:1591 +#: dist/prefs.js:861 dist/prefs.js:862 msgid "Reset settings" msgstr "Resetovat nastavení" -#: dist/prefs.js:1592 +#: dist/prefs.js:863 msgid "Bring back the default settings" msgstr "Obnovte výchozí nastavení" -#: dist/prefs.js:1607 +#: dist/prefs.js:878 msgid "Donate on ko-fi" msgstr "Darovat na ko-fi" -#: dist/prefs.js:1613 +#: dist/prefs.js:884 msgid "Report a bug" msgstr "Nahlásit chybu" -#: dist/prefs.js:1619 +#: dist/prefs.js:890 msgid "Request a feature" msgstr "Žádost o funkci" -#: dist/prefs.js:1627 +#: dist/prefs.js:898 msgid "Have issues, you want to suggest a new feature or contribute?" msgstr "Máte problémy, chcete navrhnout novou funkci nebo přispět?" -#: dist/prefs.js:1634 +#: dist/prefs.js:905 msgid "Open a new issue on" msgstr "Otevřít nový problém na" -#: dist/prefs.js:1814 +#: dist/prefs.js:970 +msgid "Choose how windows snap to screen edges" +msgstr "" + +#: dist/prefs.js:985 +msgid "Default" +msgstr "" + +#: dist/prefs.js:986 +#, fuzzy +msgid "Follow quarters or screen halves" +msgstr "Přesunout na nejlepší dlaždici" + +#: dist/prefs.js:991 +msgid "Adaptive" +msgstr "" + +#: dist/prefs.js:992 +msgid "Follow corners of selected layout or screen halves" +msgstr "" + +#: dist/prefs.js:997 +msgid "Granular" +msgstr "" + +#: dist/prefs.js:998 +msgid "Follow currently selected layout" +msgstr "" + +#: dist/prefs.js:1187 msgid "Choose custom color" msgstr "" -#: dist/prefs.js:1815 +#: dist/prefs.js:1188 msgid "Use system accent color" msgstr "" -#: dist/prefs.js:1866 dist/prefs.js:1889 +#: dist/prefs.js:1241 dist/prefs.js:1267 msgid "New accelerator…" msgstr "Nový akcelerátor…" -#: dist/prefs.js:1892 +#: dist/prefs.js:1270 msgid "Use Backspace to clear" msgstr "K vymazání použijte Backspace" -#: dist/extension.js:5809 -msgid "Edit Layouts" -msgstr "Upravit rozvržení" +#~ msgid "Edit Layouts" +#~ msgstr "Upravit rozvržení" -#: dist/extension.js:5819 -msgid "New Layout" -msgstr "Nové rozvržení" +#~ msgid "New Layout" +#~ msgstr "Nové rozvržení" -#: dist/extension.js:6004 -msgid "to split a tile" -msgstr "rozdělí dlaždici" +#~ msgid "to split a tile" +#~ msgstr "rozdělí dlaždici" -#: dist/extension.js:6043 -msgid "to split a tile vertically" -msgstr "rozdělí dlaždici vertikálně" +#~ msgid "to split a tile vertically" +#~ msgstr "rozdělí dlaždici vertikálně" -#: dist/extension.js:6063 -msgid "to delete a tile" -msgstr "smaže dlaždici" +#~ msgid "to delete a tile" +#~ msgstr "smaže dlaždici" -#: dist/extension.js:6087 -msgid "use the indicator button to save or cancel" -msgstr "použijte ikonu pro uložení nebo zrušení" +#~ msgid "use the indicator button to save or cancel" +#~ msgstr "použijte ikonu pro uložení nebo zrušení" #~ msgid "Menu" #~ msgstr "Menu" @@ -678,9 +702,6 @@ msgstr "použijte ikonu pro uložení nebo zrušení" #~ msgid "Start editing" #~ msgstr "Začít upravovat" -#~ msgid "Move to best tile" -#~ msgstr "Přesunout na nejlepší dlaždici" - #~ msgid "Move to leftmost tile" #~ msgstr "Přesunout na dlaždici, která je nejvíce vlevo" diff --git a/translations/de.po b/translations/de.po index bad34420..c2898104 100644 --- a/translations/de.po +++ b/translations/de.po @@ -8,179 +8,180 @@ msgid "" msgstr "" "Project-Id-Version: Tiling Shell\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-09 11:35+0100\n" -"PO-Revision-Date: 2025-03-30 22:18+0200\n" -"Last-Translator: Christoph Haas \n" +"POT-Creation-Date: 2026-01-03 22:57+0100\n" +"PO-Revision-Date: 2025-11-22 16:08+0100\n" +"Last-Translator: Christian Lauinger \n" "Language-Team: German\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.5\n" +"X-Generator: Poedit 3.6\n" -#: dist/prefs.js:793 +#: dist/prefs.js:59 msgid "General" msgstr "Allgemein" -#: dist/prefs.js:798 +#: dist/prefs.js:64 msgid "Appearance" msgstr "Erscheinungsbild" -#: dist/prefs.js:799 +#: dist/prefs.js:65 msgid "Configure the appearance of Tiling Shell" msgstr "Das Erscheinungsbild der Tiling Shell konfigurieren" -#: dist/prefs.js:804 +#: dist/prefs.js:70 msgid "Show Indicator" msgstr "Indikator anzeigen" -#: dist/prefs.js:805 +#: dist/prefs.js:71 msgid "Whether to show the panel indicator" msgstr "Ob der Panel-Indikator angezeigt wird" -#: dist/prefs.js:810 +#: dist/prefs.js:76 msgid "Inner gaps" msgstr "Innere Abstände" -#: dist/prefs.js:811 +#: dist/prefs.js:77 msgid "Gaps between windows" msgstr "Abstände zwischen Fenstern" -#: dist/prefs.js:816 +#: dist/prefs.js:82 msgid "Outer gaps" msgstr "Äußere Abstände" -#: dist/prefs.js:817 +#: dist/prefs.js:83 msgid "Gaps between a window and the monitor borders" msgstr "Abstände zwischen Fenstern und Monitorrändern" -#: dist/prefs.js:821 +#: dist/prefs.js:87 msgid "Blur (experimental feature)" msgstr "Unschärfe (experimentelle Funktion)" -#: dist/prefs.js:823 +#: dist/prefs.js:89 msgid "Apply blur effect to Snap Assistant and tile previews" msgstr "Unschärfe-Effekt auf Snap-Assistent und Kachel-Vorschauen anwenden" -#: dist/prefs.js:829 +#: dist/prefs.js:95 msgid "Snap Assistant threshold" msgstr "Snap-Assistent Schwellenwert" -#: dist/prefs.js:831 +#: dist/prefs.js:97 msgid "Minimum distance from the Snap Assistant to the pointer to open it" msgstr "" "Mindestabstand zwischen Snap-Assistent und Mauszeiger, um ihn zu öffnen" -#: dist/prefs.js:840 +#: dist/prefs.js:106 msgid "Snap Assistant" msgstr "Snap-Assistent" -#: dist/prefs.js:841 +#: dist/prefs.js:107 msgid "Apply blur effect to Snap Assistant" msgstr "Unschärfe-Effekt auf den Snap-Assistenten anwenden" -#: dist/prefs.js:847 +#: dist/prefs.js:113 msgid "Selected tile preview" msgstr "Vorschau der ausgewählten Kachel" -#: dist/prefs.js:848 +#: dist/prefs.js:114 msgid "Apply blur effect to selected tile preview" msgstr "Unschärfe-Effekt auf die ausgewählte Kachelvorschau anwenden" -#: dist/prefs.js:852 +#: dist/prefs.js:118 msgid "Window border" msgstr "Fensterrahmen" -#: dist/prefs.js:853 dist/prefs.js:860 +#: dist/prefs.js:119 dist/prefs.js:126 msgid "Show a border around focused window" msgstr "Rahmen um das fokussierte Fenster anzeigen" -#: dist/prefs.js:859 +#: dist/prefs.js:125 msgid "Enable" msgstr "Aktivieren" -#: dist/prefs.js:866 +#: dist/prefs.js:132 msgid "Smart border radius" msgstr "Intelligenter Rahmenradius" -#: dist/prefs.js:867 -msgid "Dynamically adapt to the window’s actual border radius" +#: dist/prefs.js:133 +#, fuzzy +msgid "Dynamically adapt to the window's actual border radius" msgstr "" "Rahmenradius dynamisch an den tatsächlichen Fensterrahmenradius anpassen" -#: dist/prefs.js:873 +#: dist/prefs.js:139 msgid "Width" msgstr "Breite" -#: dist/prefs.js:874 +#: dist/prefs.js:140 msgid "The size of the border" msgstr "Stärke des Rahmens" -#: dist/prefs.js:883 +#: dist/prefs.js:149 msgid "Border color" msgstr "Rahmenfarbe" -#: dist/prefs.js:884 +#: dist/prefs.js:150 msgid "Choose the color of the border" msgstr "Rahmenfarbe auswählen" -#: dist/prefs.js:900 +#: dist/prefs.js:166 msgid "Animations" msgstr "Animationen" -#: dist/prefs.js:901 +#: dist/prefs.js:167 msgid "Customize animations" msgstr "Animationen anpassen" -#: dist/prefs.js:907 +#: dist/prefs.js:173 msgid "Snap assistant animation time" msgstr "Animationsdauer des Snap-Assistenten" -#: dist/prefs.js:908 +#: dist/prefs.js:174 msgid "The snap assistant animation time in milliseconds" msgstr "Animationsdauer des Snap-Assistenten in Millisekunden" -#: dist/prefs.js:916 +#: dist/prefs.js:182 msgid "Tiles animation time" msgstr "Animationsdauer der Kacheln" -#: dist/prefs.js:917 +#: dist/prefs.js:183 msgid "The tiles animation time in milliseconds" msgstr "Animationsdauer der Kacheln in Millisekunden" -#: dist/prefs.js:923 +#: dist/prefs.js:189 msgid "Behaviour" msgstr "Verhalten" -#: dist/prefs.js:924 +#: dist/prefs.js:190 msgid "Configure the behaviour of Tiling Shell" msgstr "Verhalten der Tiling Shell konfigurieren" -#: dist/prefs.js:929 +#: dist/prefs.js:195 msgid "Enable Snap Assistant" msgstr "Snap-Assistent aktivieren" -#: dist/prefs.js:930 +#: dist/prefs.js:196 msgid "Move the window on top of the screen to snap assist it" msgstr "" "Fenster an den oberen Bildschirmrand bewegen, um den Snap-Assistenten zu " "verwenden" -#: dist/prefs.js:935 +#: dist/prefs.js:201 msgid "Enable Tiling System" msgstr "Kachel-System aktivieren" -#: dist/prefs.js:936 +#: dist/prefs.js:202 msgid "Hold the activation key while moving a window to tile it" msgstr "" "Aktivierungstaste beim Verschieben eines Fensters halten, um das Kachel-" "System zu aktivieren" -#: dist/prefs.js:944 +#: dist/prefs.js:210 msgid "Tiling System deactivation key" msgstr "Deaktivierungstaste des Kachel-Systems" -#: dist/prefs.js:946 +#: dist/prefs.js:212 msgid "" "Hold the deactivation key while moving a window to deactivate the tiling " "system" @@ -188,49 +189,49 @@ msgstr "" "Deaktivierungstaste beim Verschieben eines Fensters halten, um das Kachel-" "System zu deaktivieren" -#: dist/prefs.js:954 +#: dist/prefs.js:220 msgid "Span multiple tiles" msgstr "Mehrere Kacheln vereinen" -#: dist/prefs.js:955 +#: dist/prefs.js:221 msgid "Hold the activation key to span multiple tiles" msgstr "Aktivierungstaste halten, um mehrere Kacheln zu vereinen" -#: dist/prefs.js:964 +#: dist/prefs.js:230 msgid "Enable Auto Tiling" msgstr "Automatische Kachelung aktivieren" -#: dist/prefs.js:965 +#: dist/prefs.js:231 msgid "Automatically tile new windows to the best tile" msgstr "Neue Fenster automatisch der besten Kachel zuweisen" -#: dist/prefs.js:970 +#: dist/prefs.js:236 msgid "Enable auto-resize of the complementing tiled windows" msgstr "Automatische Größenänderung ergänzender gekachelter Fenster aktivieren" -#: dist/prefs.js:972 +#: dist/prefs.js:238 msgid "" "When a tiled window is resized, auto-resize the other tiled windows near it" msgstr "" "Andere gekachelte Fenster automatisch anpassen, wenn ein Fenster verändert " "wird" -#: dist/prefs.js:978 +#: dist/prefs.js:244 msgid "Restore window size" msgstr "Fenstergröße wiederherstellen" -#: dist/prefs.js:980 +#: dist/prefs.js:246 msgid "Whether to restore the windows to their original size when untiled" msgstr "" "Ob bei Fenstern nach Aufhebung der Kachelung ihre ursprüngliche Größe " "wiederhergestellt werden soll" -#: dist/prefs.js:986 +#: dist/prefs.js:252 msgid "Add snap assistant and auto-tile buttons to window menu" msgstr "" "Snap-Assistent und Auto-Kachel Schaltflächen zum Fenstermenü hinzufügen" -#: dist/prefs.js:988 +#: dist/prefs.js:254 msgid "" "Add snap assistant and auto-tile buttons in the menu that shows up when you " "right click on a window title" @@ -238,439 +239,763 @@ msgstr "" "Snap-Assistent- und Auto-Kachel-Schaltflächen zum Kontextmenü des Fensters " "hinzufügen" -#: dist/prefs.js:994 +#: dist/prefs.js:260 msgid "Add tiled windows to ALT+TAB menu" -msgstr "" +msgstr "Kachelfenster zum ALT+TAB-Menü hinzufügen" -#: dist/prefs.js:996 +#: dist/prefs.js:262 msgid "" "Add the tiled windows to the ALT+TAB menu to open all the tiled windows at " "once" msgstr "" +"Fügen Sie die gekachelten Fenster zum ALT+TAB-Menü hinzu, um alle " +"gekachelten Fenster gleichzeitig zu öffnen" -#: dist/prefs.js:1001 +#: dist/prefs.js:267 msgid "Screen Edges" msgstr "Bildschirmränder" -#: dist/prefs.js:1003 +#: dist/prefs.js:269 msgid "" "Drag windows against the top, left and right screen edges to resize them" msgstr "" "Ziehen Sie Fenster an die oberen, linken und rechten Bildschirmränder, um " "sie zu skalieren" -#: dist/prefs.js:1017 +#: dist/prefs.js:283 msgid "Drag against top edge to maximize window" msgstr "Ziehen Sie Fenster an den oberen Rand, um sie zu maximieren" -#: dist/prefs.js:1018 +#: dist/prefs.js:284 msgid "Drag windows against the top edge to maximize them" msgstr "Ziehen Sie Fenster an den oberen Rand, um sie zu maximieren" -#: dist/prefs.js:1027 +#: dist/prefs.js:293 msgid "Quarter tiling activation area" msgstr "Aktivierungsbereich für Viertelkacheln" -#: dist/prefs.js:1028 +#: dist/prefs.js:294 #, javascript-format msgid "Activation area to trigger quarter tiling (%% of the screen)" msgstr "Aktivierungsbereich, um Viertelkacheln auszulösen (%% des Bildschirms)" -#: dist/prefs.js:1044 +#: dist/prefs.js:310 msgid "Edge tiling offset" -msgstr "" +msgstr "Kantenversatz" -#: dist/prefs.js:1045 +#: dist/prefs.js:311 msgid "Offset from the screen edge to trigger edge tiling (in pixels)" msgstr "" +"Versatz vom Bildschirmrand zum Auslösen der Kantenanpassung (in Pixeln)" -#: dist/prefs.js:1062 +#: dist/prefs.js:333 msgid "Windows suggestions" msgstr "Fenstervorschläge" -#: dist/prefs.js:1063 +#: dist/prefs.js:334 msgid "Enable and disable windows suggestions" msgstr "Fenstervorschläge aktivieren und deaktivieren" -#: dist/prefs.js:1068 +#: dist/prefs.js:339 msgid "Enable window suggestions for the tiling system" msgstr "Fenstervorschläge für das Kachelsystem aktivieren" -#: dist/prefs.js:1070 +#: dist/prefs.js:341 msgid "" "Provides smart suggestions to fill empty tiles when using the tiling system" msgstr "" "Bietet intelligente Vorschläge, um leere Kacheln beim Verwenden des " "Kachelsystems zu füllen" -#: dist/prefs.js:1076 +#: dist/prefs.js:347 msgid "Enable window suggestions for the snap assistant" msgstr "Fenstervorschläge für den Snap-Assistenten aktivieren" -#: dist/prefs.js:1078 +#: dist/prefs.js:349 msgid "" "Offers suggestions to populate empty tiles when using the snap assistant" msgstr "" "Bietet Vorschläge, um leere Kacheln beim Verwenden des Snap-Assistenten zu " "füllen" -#: dist/prefs.js:1084 +#: dist/prefs.js:355 msgid "Enable window suggestions for screen edge snapping" msgstr "Fenstervorschläge für das Einrasten an Bildschirmrändern aktivieren" -#: dist/prefs.js:1086 +#: dist/prefs.js:357 msgid "Suggests windows to occupy empty tiles when snapping to screen edges" msgstr "" "Schlägt Fenster vor, um leere Kacheln beim Einrasten an Bildschirmrändern zu " "besetzen" -#: dist/prefs.js:1092 +#: dist/prefs.js:363 msgid "Layouts" msgstr "Layouts" -#: dist/prefs.js:1093 +#: dist/prefs.js:364 msgid "Configure the layouts of Tiling Shell" msgstr "Konfigurieren Sie die Layouts der Tiling Shell" -#: dist/prefs.js:1097 dist/prefs.js:1098 +#: dist/prefs.js:368 dist/prefs.js:369 msgid "Edit layouts" msgstr "Layouts bearbeiten" -#: dist/prefs.js:1099 +#: dist/prefs.js:370 msgid "Open the layouts editor" msgstr "Öffnen Sie den Layout-Editor" -#: dist/prefs.js:1104 dist/prefs.js:1105 dist/prefs.js:1109 +#: dist/prefs.js:375 dist/prefs.js:376 dist/prefs.js:380 msgid "Export layouts" msgstr "Layouts exportieren" -#: dist/prefs.js:1106 +#: dist/prefs.js:377 msgid "Export layouts to a file" msgstr "Layouts in eine Datei exportieren" -#: dist/prefs.js:1112 dist/prefs.js:1496 +#: dist/prefs.js:383 dist/prefs.js:767 msgid "Save" msgstr "Speichern" -#: dist/prefs.js:1113 dist/prefs.js:1167 dist/prefs.js:1497 dist/prefs.js:1552 +#: dist/prefs.js:384 dist/prefs.js:438 dist/prefs.js:768 dist/prefs.js:823 msgid "Cancel" msgstr "Abbrechen" -#: dist/prefs.js:1158 dist/prefs.js:1159 +#: dist/prefs.js:429 dist/prefs.js:430 msgid "Import layouts" msgstr "Layouts importieren" -#: dist/prefs.js:1160 +#: dist/prefs.js:431 msgid "Import layouts from a file" msgstr "Layouts aus einer Datei importieren" -#: dist/prefs.js:1163 +#: dist/prefs.js:434 msgid "Select layouts file" msgstr "Layouts-Datei auswählen" -#: dist/prefs.js:1166 dist/prefs.js:1551 +#: dist/prefs.js:437 dist/prefs.js:822 msgid "Open" msgstr "Öffnen" -#: dist/prefs.js:1214 dist/prefs.js:1215 +#: dist/prefs.js:485 dist/prefs.js:486 msgid "Reset layouts" msgstr "Layouts zurücksetzen" -#: dist/prefs.js:1216 +#: dist/prefs.js:487 msgid "Bring back the default layouts" msgstr "Standardlayouts wiederherstellen" -#: dist/prefs.js:1229 +#: dist/prefs.js:500 msgid "Keybindings" msgstr "Tastenkombinationen" -#: dist/prefs.js:1231 +#: dist/prefs.js:502 msgid "Use hotkeys to perform actions on the focused window" msgstr "" "Verwenden Sie Tastenkombinationen, um Aktionen am fokussierten Fenster " "auszuführen" -#: dist/prefs.js:1249 +#: dist/prefs.js:520 msgid "Move window to right tile" msgstr "Fenster zur rechten Kachel verschieben" -#: dist/prefs.js:1251 +#: dist/prefs.js:522 msgid "Move the focused window to the tile on its right" msgstr "" "Verschieben Sie das fokussierte Fenster zur Kachel auf der rechten Seite" -#: dist/prefs.js:1260 +#: dist/prefs.js:531 msgid "Move window to left tile" msgstr "Fenster zur linken Kachel verschieben" -#: dist/prefs.js:1261 +#: dist/prefs.js:532 msgid "Move the focused window to the tile on its left" msgstr "" "Verschieben Sie das fokussierte Fenster zur Kachel auf der linken Seite" -#: dist/prefs.js:1267 +#: dist/prefs.js:538 msgid "Move window to tile above" msgstr "Fenster zur oberen Kachel verschieben" -#: dist/prefs.js:1268 +#: dist/prefs.js:539 msgid "Move the focused window to the tile above" msgstr "Verschieben Sie das fokussierte Fenster zur oberen Kachel" -#: dist/prefs.js:1274 +#: dist/prefs.js:545 msgid "Move window to tile below" msgstr "Fenster zur unteren Kachel verschieben" -#: dist/prefs.js:1275 +#: dist/prefs.js:546 msgid "Move the focused window to the tile below" msgstr "Verschieben Sie das fokussierte Fenster zur unteren Kachel" -#: dist/prefs.js:1281 +#: dist/prefs.js:552 msgid "Span window to right tile" msgstr "Fenster auf rechte Kachel ausdehnen" -#: dist/prefs.js:1282 +#: dist/prefs.js:553 msgid "Span the focused window to the tile on its right" msgstr "" "Dehnen Sie das fokussierte Fenster auf die Kachel auf der rechten Seite aus" -#: dist/prefs.js:1288 +#: dist/prefs.js:559 msgid "Span window to left tile" msgstr "Fenster auf linke Kachel ausdehnen" -#: dist/prefs.js:1289 +#: dist/prefs.js:560 msgid "Span the focused window to the tile on its left" msgstr "" "Dehnen Sie das fokussierte Fenster auf die Kachel auf der linken Seite aus" -#: dist/prefs.js:1295 +#: dist/prefs.js:566 msgid "Span window above" msgstr "Fenster nach oben ausdehnen" -#: dist/prefs.js:1296 +#: dist/prefs.js:567 msgid "Span the focused window to the tile above" msgstr "Das fokussierte Fenster auf die obere Kachel ausdehnen" -#: dist/prefs.js:1302 +#: dist/prefs.js:573 msgid "Span window down" msgstr "Fenster nach unten ausdehnen" -#: dist/prefs.js:1303 +#: dist/prefs.js:574 msgid "Span the focused window to the tile below" msgstr "Das fokussierte Fenster auf die untere Kachel ausdehnen" -#: dist/prefs.js:1309 +#: dist/prefs.js:580 msgid "Span window to all tiles" msgstr "Fenster auf alle Kacheln ausdehnen" -#: dist/prefs.js:1310 +#: dist/prefs.js:581 msgid "Span the focused window to all the tiles" msgstr "Das fokussierte Fenster über alle Kacheln ausdehnen" -#: dist/prefs.js:1316 +#: dist/prefs.js:587 msgid "Untile focused window" msgstr "Kachelung des fokussierten Fensters aufheben" -#: dist/prefs.js:1324 +#: dist/prefs.js:595 msgid "Move window to the center" msgstr "Fenster in die Mitte verschieben" -#: dist/prefs.js:1326 +#: dist/prefs.js:597 msgid "Move the focused window to the center of the screen" msgstr "Das fokussierte Fenster in die Bildschirmmitte verschieben" -#: dist/prefs.js:1335 +#: dist/prefs.js:606 msgid "Focus window to the right" msgstr "Fenster rechts fokussieren" -#: dist/prefs.js:1337 +#: dist/prefs.js:608 msgid "Focus the window to the right of the current focused window" msgstr "Das Fenster rechts neben dem aktuell fokussierten Fenster fokussieren" -#: dist/prefs.js:1344 +#: dist/prefs.js:615 msgid "Focus window to the left" msgstr "Fenster links fokussieren" -#: dist/prefs.js:1345 +#: dist/prefs.js:616 msgid "Focus the window to the left of the current focused window" msgstr "Das Fenster links neben dem aktuell fokussierten Fenster fokussieren" -#: dist/prefs.js:1351 +#: dist/prefs.js:622 msgid "Focus window above" msgstr "Fenster oben fokussieren" -#: dist/prefs.js:1352 +#: dist/prefs.js:623 msgid "Focus the window above the current focused window" msgstr "Das Fenster oberhalb des aktuell fokussierten Fensters fokussieren" -#: dist/prefs.js:1358 +#: dist/prefs.js:629 msgid "Focus window below" msgstr "Fenster unten fokussieren" -#: dist/prefs.js:1359 +#: dist/prefs.js:630 msgid "Focus the window below the current focused window" msgstr "Das Fenster unterhalb des aktuell fokussierten Fensters fokussieren" -#: dist/prefs.js:1365 +#: dist/prefs.js:636 msgid "Focus next window" msgstr "Nächstes Fenster fokussieren" -#: dist/prefs.js:1366 +#: dist/prefs.js:637 msgid "Focus the window next to the current focused window" msgstr "Das nächste Fenster neben dem aktuell fokussierten Fenster fokussieren" -#: dist/prefs.js:1372 +#: dist/prefs.js:643 msgid "Focus previous window" msgstr "Vorheriges Fenster fokussieren" -#: dist/prefs.js:1373 +#: dist/prefs.js:644 msgid "Focus the window prior to the current focused window" msgstr "Das vorherige Fenster vor dem aktuell fokussierten Fenster fokussieren" -#: dist/prefs.js:1379 +#: dist/prefs.js:650 msgid "Highlight focused window" msgstr "Fokussiertes Fenster hervorheben" -#: dist/prefs.js:1381 +#: dist/prefs.js:652 msgid "Minimize all the other windows and show only the focused window" msgstr "" "Alle anderen Fenster minimieren und nur das fokussierte Fenster anzeigen" -#: dist/prefs.js:1388 -#, fuzzy +#: dist/prefs.js:659 msgid "Cycle layouts" -msgstr "Layouts zurücksetzen" +msgstr "Layouts durchblättern" -#: dist/prefs.js:1389 +#: dist/prefs.js:660 msgid "Cycle through available workspace layouts" -msgstr "" +msgstr "Durch die verfügbaren Arbeitsbereichslayouts blättern" -#: dist/prefs.js:1415 +#: dist/prefs.js:686 msgid "View and Customize all the Shortcuts" msgstr "Alle Tastenkombinationen anzeigen und anpassen" -#: dist/prefs.js:1443 dist/prefs.js:1444 +#: dist/prefs.js:714 dist/prefs.js:715 msgid "View and Customize Shortcuts" msgstr "Tastenkombinationen anzeigen und anpassen" -#: dist/prefs.js:1466 +#: dist/prefs.js:737 msgid "Enable next/previous window focus to wrap around" msgstr "Zyklisches Fokussieren des nächsten/vorherigen Fensters aktivieren" -#: dist/prefs.js:1468 +#: dist/prefs.js:739 msgid "When focusing next or previous window, wrap around at the window edge" msgstr "" "Beim Fokussieren des nächsten oder vorherigen Fensters am Rand umspringen" -#: dist/prefs.js:1474 +#: dist/prefs.js:745 msgid "Restrict directional focus to tiled windows" -msgstr "" +msgstr "Richtungsfokus auf gekachelte Fenster beschränken" -#: dist/prefs.js:1476 +#: dist/prefs.js:747 msgid "When using directional focus navigation, only consider tiled windows" msgstr "" +"Bei Verwendung der gerichteten Fokusnavigation nur gekachelte Fenster " +"berücksichtigen" -#: dist/prefs.js:1481 +#: dist/prefs.js:752 msgid "Import, export and reset" msgstr "Importieren, exportieren und zurücksetzen" -#: dist/prefs.js:1483 +#: dist/prefs.js:754 msgid "Import, export and reset the settings of Tiling Shell" msgstr "" "Einstellungen der Tiling Shell importieren, exportieren und zurücksetzen" -#: dist/prefs.js:1488 dist/prefs.js:1489 +#: dist/prefs.js:759 dist/prefs.js:760 msgid "Export settings" msgstr "Einstellungen exportieren" -#: dist/prefs.js:1490 +#: dist/prefs.js:761 msgid "Export settings to a file" msgstr "Einstellungen in eine Datei exportieren" -#: dist/prefs.js:1493 +#: dist/prefs.js:764 msgid "Export settings to a text file" msgstr "Einstellungen in eine Textdatei exportieren" -#: dist/prefs.js:1500 +#: dist/prefs.js:771 msgid "Text file" msgstr "Textdatei" -#: dist/prefs.js:1543 dist/prefs.js:1544 +#: dist/prefs.js:814 dist/prefs.js:815 msgid "Import settings" msgstr "Einstellungen importieren" -#: dist/prefs.js:1545 +#: dist/prefs.js:816 msgid "Import settings from a file" msgstr "Einstellungen aus einer Datei importieren" -#: dist/prefs.js:1548 +#: dist/prefs.js:819 msgid "Select a text file to import from" msgstr "Wählen Sie eine Textdatei zum Importieren aus" -#: dist/prefs.js:1590 dist/prefs.js:1591 +#: dist/prefs.js:861 dist/prefs.js:862 msgid "Reset settings" msgstr "Einstellungen zurücksetzen" -#: dist/prefs.js:1592 +#: dist/prefs.js:863 msgid "Bring back the default settings" msgstr "Standardeinstellungen wiederherstellen" -#: dist/prefs.js:1607 +#: dist/prefs.js:878 msgid "Donate on ko-fi" msgstr "Auf ko-fi spenden" -#: dist/prefs.js:1613 +#: dist/prefs.js:884 msgid "Report a bug" msgstr "Fehler melden" -#: dist/prefs.js:1619 +#: dist/prefs.js:890 msgid "Request a feature" msgstr "Feature anfordern" -#: dist/prefs.js:1627 +#: dist/prefs.js:898 msgid "Have issues, you want to suggest a new feature or contribute?" msgstr "" "Haben Sie Probleme, möchten Sie ein neues Feature vorschlagen oder beitragen?" -#: dist/prefs.js:1634 +#: dist/prefs.js:905 msgid "Open a new issue on" msgstr "Neuen Issue öffnen auf" -#: dist/prefs.js:1814 -msgid "Choose custom color" +#: dist/prefs.js:970 +msgid "Choose how windows snap to screen edges" msgstr "" -#: dist/prefs.js:1815 -msgid "Use system accent color" +#: dist/prefs.js:985 +msgid "Default" +msgstr "" + +#: dist/prefs.js:986 +#, fuzzy +msgid "Follow quarters or screen halves" +msgstr "Fenster zur besten Kachel verschieben" + +#: dist/prefs.js:991 +msgid "Adaptive" msgstr "" -#: dist/prefs.js:1866 dist/prefs.js:1889 +#: dist/prefs.js:992 +msgid "Follow corners of selected layout or screen halves" +msgstr "" + +#: dist/prefs.js:997 +msgid "Granular" +msgstr "" + +#: dist/prefs.js:998 +msgid "Follow currently selected layout" +msgstr "" + +#: dist/prefs.js:1187 +msgid "Choose custom color" +msgstr "Wählen Sie eine benutzerdefinierte Farbe" + +#: dist/prefs.js:1188 +msgid "Use system accent color" +msgstr "Systemakzentfarbe verwenden" + +#: dist/prefs.js:1241 dist/prefs.js:1267 msgid "New accelerator…" msgstr "Neues Tastenkürzel…" -#: dist/prefs.js:1892 +#: dist/prefs.js:1270 msgid "Use Backspace to clear" msgstr "Backspace zum Löschen verwenden" -#: dist/extension.js:5809 -msgid "Edit Layouts" -msgstr "Layouts bearbeiten" +#~ msgid "Last version installed" +#~ msgstr "Letzte installierte Version" + +#~ msgid "Last version installed of this extension." +#~ msgstr "Letzte installierte Version dieser Erweiterung." + +#~ msgid "Enable tiling system" +#~ msgstr "Kachel-System aktivieren" + +#~ msgid "Hold CTRL while moving a window to tile it." +#~ msgstr "" +#~ "Halten Sie die STRG-Taste gedrückt, während Sie ein Fenster verschieben, " +#~ "um es nebeneinander anzuordnen." + +#~ msgid "Tiling system activation key" +#~ msgstr "Aktivierungstaste des Kachel-Systems" + +#~ msgid "" +#~ "Which key to hold while moving a window to activate the tiling system." +#~ msgstr "" +#~ "Welche Taste muss beim Verschieben eines Fensters gedrückt gehalten " +#~ "werden, um das Kachelsystem zu aktivieren." + +#~ msgid "Tiling system deactivation key" +#~ msgstr "Deaktivierungstaste des Kachel-Systems" + +#~ msgid "" +#~ "Which key to hold while moving a window to deactivate the tiling system." +#~ msgstr "" +#~ "Welche Taste muss gedrückt gehalten werden, während ein Fenster " +#~ "verschoben wird, um das Kachelsystem zu deaktivieren." + +#~ msgid "Enable snap assist" +#~ msgstr "Snap-Assistent aktivieren" + +#~ msgid "Move the window on top of the screen to snap assist it." +#~ msgstr "" +#~ "Bewegen Sie das Fenster an den oberen Bildschirmrand, um es anzudocken." + +#~ msgid "Shows indicator" +#~ msgstr "Zeigt Indikator an" + +#~ msgid "Shows an indicator on top panel." +#~ msgstr "Zeigt einen Indikator auf dem oberen Bedienfeld an." + +#~ msgid "Internal gaps between tiles in a layout." +#~ msgstr "Interne Abstände zwischen Kacheln in einem Layout." + +#~ msgid "External gaps between the layout and the monitor borders." +#~ msgstr "Abstände zwischen Fenstern und Monitorrändern." + +#~ msgid "Hold ALT to span multiple tiles." +#~ msgstr "Aktivierungstaste halten, um mehrere Kacheln zu vereinen." + +#~ msgid "Key to span multiple tiles" +#~ msgstr "Taste zum Überspannen mehrerer Kacheln" + +#~ msgid "Which key to hold to span multiple tiles." +#~ msgstr "Aktivierungstaste halten, um mehrere Kacheln zu vereinen." + +#~ msgid "The layouts available to the tiling managers and the snap assist." +#~ msgstr "" +#~ "Die Layouts, die den Kachelungsmanagern und der Ausrichtungshilfe zur " +#~ "Verfügung stehen." + +#~ msgid "Selected layouts" +#~ msgstr "Ausgewählte Layouts" + +#~ msgid "Each monitor's active layout used by the monitor tiling manager." +#~ msgstr "" +#~ "Das aktive Layout jedes Monitors, das vom Monitor-Tiling-Manager " +#~ "verwendet wird." + +#~ msgid "Restore the windows to their original size when untiled." +#~ msgstr "" +#~ "Ob bei Fenstern nach Aufhebung der Kachelung ihre ursprüngliche Größe " +#~ "wiederhergestellt werden soll." + +#~ msgid "" +#~ "When a tiled window is resized, auto-resize the other tiled windows near " +#~ "it." +#~ msgstr "" +#~ "Wenn die Größe eines gekachelten Fensters geändert wird, werden die " +#~ "anderen gekachelten Fenster in seiner Nähe automatisch in der Größe " +#~ "angepasst." + +#~ msgid "Enable Snap Assistant blur" +#~ msgstr "Snap-Assistent verwischen aktivieren" + +#~ msgid "Blur snap assistant" +#~ msgstr "Snap-Assistent verwischen" + +#~ msgid "Enable selected tile preview blur" +#~ msgstr "Vorschaubildschirm für ausgewählte Kacheln unscharf darstellen" + +#~ msgid "Blur selected tile previews" +#~ msgstr "Ausgewählte Kachelvorschauen verwischen" + +#~ msgid "Enable keybindings" +#~ msgstr "Tastenkombinationen aktivieren" + +#~ msgid "Move focused window through tiles by using keybindings." +#~ msgstr "" +#~ "Verschieben Sie das fokussierte Fenster mithilfe von Tastenkombinationen " +#~ "durch die Kacheln." + +#~ msgid "Enable auto tiling" +#~ msgstr "Automatisches Kacheln aktivieren" + +#~ msgid "" +#~ "Automatically tile a new window to the best tile according to the current " +#~ "layout." +#~ msgstr "" +#~ "Ein neues Fenster automatisch entsprechend dem aktuellen Layout optimal " +#~ "anordnen." + +#~ msgid "Overridden settings" +#~ msgstr "Überschriebene Einstellungen" + +#~ msgid "The settings that are overridden and their old value." +#~ msgstr "Die überschriebenen Einstellungen und ihre alten Werte." + +#~ msgid "Active Screen Edges" +#~ msgstr "Aktive Bildschirmränder" + +#~ msgid "" +#~ "Drag windows against the top, left and right screen edges to resize them." +#~ msgstr "" +#~ "Ziehen Sie Fenster an den oberen, linken und rechten Bildschirmrand, um " +#~ "ihre Größe zu ändern." + +#~ msgid "Drag agains top edge to maximize window" +#~ msgstr "Ziehen Sie an der Oberkante, um das Fenster zu maximieren" + +#~ msgid "" +#~ "Add snap assistant and auto-tile buttons in the menu that shows up when " +#~ "you right click on a window title." +#~ msgstr "" +#~ "Fügen Sie die Schaltflächen „Ausrichten“ und „Automatisch anordnen“ in " +#~ "das Menü ein, das angezeigt wird, wenn Sie mit der rechten Maustaste auf " +#~ "einen Fenstertitel klicken." + +#~ msgid "Add tiled windows group to alt+tab menu" +#~ msgstr "Gruppierte Fenster zum Alt+Tab-Menü hinzufügen" + +#~ msgid "" +#~ "Add the tiled windows to the alt+tab menu to open all the tiled windows " +#~ "at once" +#~ msgstr "" +#~ "Fügen Sie die gekachelten Fenster zum Alt+Tab-Menü hinzu, um alle " +#~ "gekachelten Fenster gleichzeitig zu öffnen" + +#~ msgid "Snap Assistant's threshold to enlarge, shrink, open and close it." +#~ msgstr "" +#~ "Die Schwelle von Snap Assistant zum Vergrößern, Verkleinern, Öffnen und " +#~ "Schließen." + +#~ msgid "Quarter tiling threshold" +#~ msgstr "Viertel-Kachelschwelle" + +#~ msgid "Threshold to trigger quarter tiling." +#~ msgstr "Schwellenwert zum Auslösen der Viertel-Kachelung." + +#~ msgid "Offset to trigger edge tiling (left and right edge)." +#~ msgstr "Versatz zum Auslösen der Kantenanpassung (linker und rechter Rand)." + +#~ msgid "Enable window border" +#~ msgstr "Fensterrahmen aktivieren" + +#~ msgid "Show a border around focused window." +#~ msgstr "Zeige einen Rahmen um das fokussierte Fenster an." + +#~ msgid "Focused window border color" +#~ msgstr "Farbe des fokussierten Fensterrahmens" + +#~ msgid "The color of the focused window's border." +#~ msgstr "Die Farbe des Rahmens des fokussierten Fensters." + +#~ msgid "Use custom color" +#~ msgstr "Benutzerdefinierte Farbe verwenden" + +#~ msgid "Use the color defined here for the focused window's border." +#~ msgstr "" +#~ "Verwenden Sie die hier definierte Farbe für den Rahmen des fokussierten " +#~ "Fensters." + +#~ msgid "Focused window border width" +#~ msgstr "Breite des fokussierten Fensterrahmens" + +#~ msgid "The width of the focused window's border." +#~ msgstr "Die Breite des Rahmens des fokussierten Fensters." + +#~ msgid "Enable smart window border radius" +#~ msgstr "Intelligenten Rahmenradius aktivieren" + +#~ msgid "Dinamically adapt to the window's border radius." +#~ msgstr "" +#~ "Rahmenradius dynamisch an den tatsächlichen Fensterrahmenradius anpassen." + +#~ msgid "Snap assistant animation time (milliseconds)" +#~ msgstr "Animationsdauer des Snap-Assistenten (Millisekunden)" + +#~ msgid "Animation time in milliseconds of the snap assistant" +#~ msgstr "Animationsdauer des Snap-Assistenten in Millisekunden" + +#~ msgid "Tile animation time (milliseconds)" +#~ msgstr "Animationsdauer der Kacheln (Millisekunden)" + +#~ msgid "Animation time in milliseconds of the tiles" +#~ msgstr "Animationsdauer der Kacheln in Millisekunden" + +#~ msgid "" +#~ "Provides smart suggestions to fill empty tiles when using the tiling " +#~ "system." +#~ msgstr "" +#~ "Bietet intelligente Vorschläge, um leere Kacheln beim Verwenden des " +#~ "Kachelsystems zu füllen." + +#~ msgid "" +#~ "Offers suggestions to populate empty tiles when using the snap assistant." +#~ msgstr "" +#~ "Bietet Vorschläge, um leere Kacheln beim Verwenden des Snap-Assistenten " +#~ "zu füllen." + +#~ msgid "" +#~ "Suggests windows to occupy empty tiles when snapping to screen edges." +#~ msgstr "" +#~ "Schlägt Fenster vor, um leere Kacheln beim Einrasten an Bildschirmrändern " +#~ "zu besetzen." + +#~ msgid "Move focused window to the tile to its right" +#~ msgstr "" +#~ "Verschieben Sie das fokussierte Fenster zur Kachel auf der rechten Seite" + +#~ msgid "Move focused window to the tile to its left" +#~ msgstr "" +#~ "Verschieben Sie das fokussierte Fenster zur Kachel auf der linken Seite" + +#~ msgid "Move focused window to the tile above" +#~ msgstr "Verschieben Sie das fokussierte Fenster zur oberen Kachel" + +#~ msgid "Move focused window to the tile below" +#~ msgstr "Verschieben Sie das fokussierte Fenster zur unteren Kachel" + +#~ msgid "Span focused window to the tile to its right" +#~ msgstr "" +#~ "Dehnen Sie das fokussierte Fenster auf die Kachel auf der rechten Seite " +#~ "aus" + +#~ msgid "Span focused window to the tile to its left" +#~ msgstr "" +#~ "Dehnen Sie das fokussierte Fenster auf die Kachel auf der linken Seite aus" + +#~ msgid "Span focused window to the tile above" +#~ msgstr "Das fokussierte Fenster auf die obere Kachel ausdehnen" + +#~ msgid "Span focused window to the tile below" +#~ msgstr "Das fokussierte Fenster auf die untere Kachel ausdehnen" + +#~ msgid "Resize the focused window to span all tiles" +#~ msgstr "Das fokussierte Fenster über alle Kacheln ausdehnen" + +#~ msgid "Untile the focused window" +#~ msgstr "Kachelung des fokussierten Fensters aufheben" + +#~ msgid "Focus the window to the right the current focused window" +#~ msgstr "" +#~ "Das Fenster rechts neben dem aktuell fokussierten Fenster fokussieren" + +#~ msgid "Tiled windows" +#~ msgstr "Gekachelte Fenster" + +#~ msgid "Select the layout to edit" +#~ msgstr "Wählen Sie das zu bearbeitende Layout aus" + +#~ msgid "Close" +#~ msgstr "Schliessen" + +#~ msgid "to split a tile" +#~ msgstr "um eine Kachel zu teilen" + +#~ msgid "to split a tile vertically" +#~ msgstr "um eine Kachel vertikal zu teilen" + +#~ msgid "to delete a tile" +#~ msgstr "um eine Kachel zu löschen" + +#~ msgid "use the indicator button to save or cancel" +#~ msgstr "" +#~ "Verwenden Sie die Indikator-Schaltfläche zum Speichern oder Abbrechen" + +#~ msgid "How to use the editor" +#~ msgstr "Wie man den Editor verwendet" + +#~ msgid "Start editing" +#~ msgstr "Editieren starten" + +#~ msgid "Move to leftmost tile" +#~ msgstr "Fenster zur linken Kachel verschieben" -#: dist/extension.js:5819 -msgid "New Layout" -msgstr "Neues Layout" +#~ msgid "Move to rightmost tile" +#~ msgstr "Fenster zur rechten Kachel verschieben" -#: dist/extension.js:6004 -msgid "to split a tile" -msgstr "um eine Kachel zu teilen" +#~ msgid "Edit Layouts" +#~ msgstr "Layouts bearbeiten" -#: dist/extension.js:6043 -msgid "to split a tile vertically" -msgstr "um eine Kachel vertikal zu teilen" +#~ msgid "New Layout" +#~ msgstr "Neues Layout" -#: dist/extension.js:6063 -msgid "to delete a tile" -msgstr "um eine Kachel zu löschen" +#~ msgid "Menu" +#~ msgstr "Menü" -#: dist/extension.js:6087 -msgid "use the indicator button to save or cancel" -msgstr "Verwenden Sie die Indikator-Schaltfläche zum Speichern oder Abbrechen" +#~ msgid "Info" +#~ msgstr "Info" diff --git a/translations/es.po b/translations/es.po index c30d9b22..6df1e270 100644 --- a/translations/es.po +++ b/translations/es.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Tiling Shell\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-09 11:35+0100\n" +"POT-Creation-Date: 2026-01-03 22:57+0100\n" "PO-Revision-Date: 2025-01-13 23:11+0100\n" "Last-Translator: Óscar Fernández Díaz \n" "Language-Team: Spanish\n" @@ -19,168 +19,169 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Gtranslator 47.1\n" -#: dist/prefs.js:793 +#: dist/prefs.js:59 msgid "General" msgstr "General" -#: dist/prefs.js:798 +#: dist/prefs.js:64 msgid "Appearance" msgstr "Apariencia" -#: dist/prefs.js:799 +#: dist/prefs.js:65 msgid "Configure the appearance of Tiling Shell" msgstr "Configurar la apariencia de Tiling Shell" -#: dist/prefs.js:804 +#: dist/prefs.js:70 msgid "Show Indicator" msgstr "Mostrar indicador" -#: dist/prefs.js:805 +#: dist/prefs.js:71 msgid "Whether to show the panel indicator" msgstr "Si mostrar el indicador del panel" -#: dist/prefs.js:810 +#: dist/prefs.js:76 msgid "Inner gaps" msgstr "Espacios interiores" -#: dist/prefs.js:811 +#: dist/prefs.js:77 msgid "Gaps between windows" msgstr "Espacios entre ventanas" -#: dist/prefs.js:816 +#: dist/prefs.js:82 msgid "Outer gaps" msgstr "Espacios exteriores" -#: dist/prefs.js:817 +#: dist/prefs.js:83 msgid "Gaps between a window and the monitor borders" msgstr "Espacios entre una ventana y los bordes del monitor" -#: dist/prefs.js:821 +#: dist/prefs.js:87 msgid "Blur (experimental feature)" msgstr "Difuminado (función experimental)" -#: dist/prefs.js:823 +#: dist/prefs.js:89 msgid "Apply blur effect to Snap Assistant and tile previews" msgstr "" "Aplica un efecto de difuminado a Snap Assistant y a las vistas previas de " "los mosaicos" -#: dist/prefs.js:829 +#: dist/prefs.js:95 msgid "Snap Assistant threshold" msgstr "Umbral de Snap Assistant" -#: dist/prefs.js:831 +#: dist/prefs.js:97 msgid "Minimum distance from the Snap Assistant to the pointer to open it" msgstr "Distancia mínima del Snap Assistant al puntero para abrirlo" -#: dist/prefs.js:840 +#: dist/prefs.js:106 msgid "Snap Assistant" msgstr "Snap Assistant" -#: dist/prefs.js:841 +#: dist/prefs.js:107 msgid "Apply blur effect to Snap Assistant" msgstr "Aplicar efecto de difuminado a Snap Assistant" -#: dist/prefs.js:847 +#: dist/prefs.js:113 msgid "Selected tile preview" msgstr "Vista previa del mosaico seleccionado" -#: dist/prefs.js:848 +#: dist/prefs.js:114 msgid "Apply blur effect to selected tile preview" msgstr "" "Aplicar efecto de difuminado a la vista previa del mosaico seleccionado" -#: dist/prefs.js:852 +#: dist/prefs.js:118 msgid "Window border" msgstr "Borde de la ventana" -#: dist/prefs.js:853 dist/prefs.js:860 +#: dist/prefs.js:119 dist/prefs.js:126 msgid "Show a border around focused window" msgstr "Mostrar un borde alrededor de la ventana enfocada" -#: dist/prefs.js:859 +#: dist/prefs.js:125 msgid "Enable" msgstr "Activar" -#: dist/prefs.js:866 +#: dist/prefs.js:132 msgid "Smart border radius" msgstr "Radio de bordes inteligente" -#: dist/prefs.js:867 -msgid "Dynamically adapt to the window’s actual border radius" +#: dist/prefs.js:133 +#, fuzzy +msgid "Dynamically adapt to the window's actual border radius" msgstr "Adaptación dinámica al radio real del borde de la ventana" -#: dist/prefs.js:873 +#: dist/prefs.js:139 msgid "Width" msgstr "Anchura" -#: dist/prefs.js:874 +#: dist/prefs.js:140 msgid "The size of the border" msgstr "El tamaño del borde" -#: dist/prefs.js:883 +#: dist/prefs.js:149 msgid "Border color" msgstr "Color del borde" -#: dist/prefs.js:884 +#: dist/prefs.js:150 msgid "Choose the color of the border" msgstr "Elija el color del borde" -#: dist/prefs.js:900 +#: dist/prefs.js:166 msgid "Animations" msgstr "Animaciones" -#: dist/prefs.js:901 +#: dist/prefs.js:167 msgid "Customize animations" msgstr "Personalizar animaciones" -#: dist/prefs.js:907 +#: dist/prefs.js:173 msgid "Snap assistant animation time" msgstr "Tiempo de animación del Snap Assistant" -#: dist/prefs.js:908 +#: dist/prefs.js:174 msgid "The snap assistant animation time in milliseconds" msgstr "El tiempo de animación del Snap Assistant en milisegundos" -#: dist/prefs.js:916 +#: dist/prefs.js:182 msgid "Tiles animation time" msgstr "Tiempo de animación de los mosaicos" -#: dist/prefs.js:917 +#: dist/prefs.js:183 msgid "The tiles animation time in milliseconds" msgstr "El tiempo de animación de los mosaicos en milisegundos" -#: dist/prefs.js:923 +#: dist/prefs.js:189 msgid "Behaviour" msgstr "Comportamiento" -#: dist/prefs.js:924 +#: dist/prefs.js:190 msgid "Configure the behaviour of Tiling Shell" msgstr "Configurar el comportamiento de Tiling Shell" -#: dist/prefs.js:929 +#: dist/prefs.js:195 msgid "Enable Snap Assistant" msgstr "Activar Snap Assistant" -#: dist/prefs.js:930 +#: dist/prefs.js:196 msgid "Move the window on top of the screen to snap assist it" msgstr "Mover la ventana por encima de la pantalla para que se ajuste a ella" -#: dist/prefs.js:935 +#: dist/prefs.js:201 msgid "Enable Tiling System" msgstr "Activar el sistema de mosaicos" -#: dist/prefs.js:936 +#: dist/prefs.js:202 msgid "Hold the activation key while moving a window to tile it" msgstr "" "Mantenga pulsada la tecla de activación mientras mueve una ventana para " "colocarla en mosaico" -#: dist/prefs.js:944 +#: dist/prefs.js:210 msgid "Tiling System deactivation key" msgstr "Tecla de desactivación del sistema de mosaicos" -#: dist/prefs.js:946 +#: dist/prefs.js:212 msgid "" "Hold the deactivation key while moving a window to deactivate the tiling " "system" @@ -188,49 +189,49 @@ msgstr "" "Mantenga pulsada la tecla de desactivación mientras desplaza una ventana " "para desactivar el sistema de mosaicos" -#: dist/prefs.js:954 +#: dist/prefs.js:220 msgid "Span multiple tiles" msgstr "Extender varios mosaicos" -#: dist/prefs.js:955 +#: dist/prefs.js:221 msgid "Hold the activation key to span multiple tiles" msgstr "Mantenga pulsada la tecla de activación para extender varios mosaicos" -#: dist/prefs.js:964 +#: dist/prefs.js:230 msgid "Enable Auto Tiling" msgstr "Activar mosaico automático" -#: dist/prefs.js:965 +#: dist/prefs.js:231 msgid "Automatically tile new windows to the best tile" msgstr "Colocar automáticamente los mosaicos nuevos en el mejor mosaico" -#: dist/prefs.js:970 +#: dist/prefs.js:236 msgid "Enable auto-resize of the complementing tiled windows" msgstr "" "Activar el redimensionamiento automático de las ventanas en mosaico " "complementarias" -#: dist/prefs.js:972 +#: dist/prefs.js:238 msgid "" "When a tiled window is resized, auto-resize the other tiled windows near it" msgstr "" "Cuando se redimensiona una ventana en mosaico, se redimensionan " "automáticamente las demás ventanas en mosaico cercanas" -#: dist/prefs.js:978 +#: dist/prefs.js:244 msgid "Restore window size" msgstr "Restaurar tamaño de ventana" -#: dist/prefs.js:980 +#: dist/prefs.js:246 msgid "Whether to restore the windows to their original size when untiled" msgstr "Si se restablece el tamaño original de las ventanas al cerrarlas" -#: dist/prefs.js:986 +#: dist/prefs.js:252 msgid "Add snap assistant and auto-tile buttons to window menu" msgstr "" "Añadir botones de Snap Assistant y mosaico automático al menú de la ventana" -#: dist/prefs.js:988 +#: dist/prefs.js:254 msgid "" "Add snap assistant and auto-tile buttons in the menu that shows up when you " "right click on a window title" @@ -238,442 +239,465 @@ msgstr "" "Añade botones de Snap Assistant y mosaico automático en el menú que aparece " "al hacer clic con el botón derecho del ratón en el título de una ventana" -#: dist/prefs.js:994 +#: dist/prefs.js:260 msgid "Add tiled windows to ALT+TAB menu" msgstr "" -#: dist/prefs.js:996 +#: dist/prefs.js:262 msgid "" "Add the tiled windows to the ALT+TAB menu to open all the tiled windows at " "once" msgstr "" -#: dist/prefs.js:1001 +#: dist/prefs.js:267 msgid "Screen Edges" msgstr "Bordes de pantalla" -#: dist/prefs.js:1003 +#: dist/prefs.js:269 msgid "" "Drag windows against the top, left and right screen edges to resize them" msgstr "" "Arrastra las ventanas contra los bordes superior, izquierdo y derecho de la " "pantalla para cambiar su tamaño" -#: dist/prefs.js:1017 +#: dist/prefs.js:283 msgid "Drag against top edge to maximize window" msgstr "Arrastrar contra el borde superior para maximizar la ventana" -#: dist/prefs.js:1018 +#: dist/prefs.js:284 msgid "Drag windows against the top edge to maximize them" msgstr "Arrastra las ventanas contra el borde superior para maximizarlas" -#: dist/prefs.js:1027 +#: dist/prefs.js:293 msgid "Quarter tiling activation area" msgstr "Área de activación de cuartos de mosaico" -#: dist/prefs.js:1028 +#: dist/prefs.js:294 #, fuzzy, javascript-format msgid "Activation area to trigger quarter tiling (%% of the screen)" msgstr "" "Área de activación para accionar el cuarto de mosaico (% de la pantalla)" -#: dist/prefs.js:1044 +#: dist/prefs.js:310 msgid "Edge tiling offset" msgstr "" -#: dist/prefs.js:1045 +#: dist/prefs.js:311 msgid "Offset from the screen edge to trigger edge tiling (in pixels)" msgstr "" -#: dist/prefs.js:1062 +#: dist/prefs.js:333 msgid "Windows suggestions" msgstr "Sugerencias de ventanas" -#: dist/prefs.js:1063 +#: dist/prefs.js:334 msgid "Enable and disable windows suggestions" msgstr "Activar y desactivar las sugerencias de ventanas" -#: dist/prefs.js:1068 +#: dist/prefs.js:339 msgid "Enable window suggestions for the tiling system" msgstr "Activar las sugerencias de ventanas para el sistema de mosaicos" -#: dist/prefs.js:1070 +#: dist/prefs.js:341 msgid "" "Provides smart suggestions to fill empty tiles when using the tiling system" msgstr "" "Ofrece sugerencias inteligentes para rellenar los mosaicos vacíos al usar el " "sistema de mosaicos" -#: dist/prefs.js:1076 +#: dist/prefs.js:347 msgid "Enable window suggestions for the snap assistant" msgstr "Activar las sugerencias de ventanas para el Snap Assistant" -#: dist/prefs.js:1078 +#: dist/prefs.js:349 msgid "" "Offers suggestions to populate empty tiles when using the snap assistant" msgstr "" "Ofrece sugerencias para rellenar los mosaicos vacíos cuando se usa el Snap " "Assistant" -#: dist/prefs.js:1084 +#: dist/prefs.js:355 msgid "Enable window suggestions for screen edge snapping" msgstr "" "Activar las sugerencias de ventanas para ajustar los bordes de la pantalla" -#: dist/prefs.js:1086 +#: dist/prefs.js:357 msgid "Suggests windows to occupy empty tiles when snapping to screen edges" msgstr "" "Sugiere que las ventanas ocupen los mosaicos vacíos al ajustarse a los " "bordes de la pantalla" -#: dist/prefs.js:1092 +#: dist/prefs.js:363 msgid "Layouts" msgstr "Diseños" -#: dist/prefs.js:1093 +#: dist/prefs.js:364 msgid "Configure the layouts of Tiling Shell" msgstr "Configurar los diseños de Tiling Shell" -#: dist/prefs.js:1097 dist/prefs.js:1098 +#: dist/prefs.js:368 dist/prefs.js:369 msgid "Edit layouts" msgstr "Editar diseños" -#: dist/prefs.js:1099 +#: dist/prefs.js:370 msgid "Open the layouts editor" msgstr "Abrir el editor de diseños" -#: dist/prefs.js:1104 dist/prefs.js:1105 dist/prefs.js:1109 +#: dist/prefs.js:375 dist/prefs.js:376 dist/prefs.js:380 msgid "Export layouts" msgstr "Exportar diseños" -#: dist/prefs.js:1106 +#: dist/prefs.js:377 msgid "Export layouts to a file" msgstr "Exportar diseños a un archivo" -#: dist/prefs.js:1112 dist/prefs.js:1496 +#: dist/prefs.js:383 dist/prefs.js:767 msgid "Save" msgstr "Guardar" -#: dist/prefs.js:1113 dist/prefs.js:1167 dist/prefs.js:1497 dist/prefs.js:1552 +#: dist/prefs.js:384 dist/prefs.js:438 dist/prefs.js:768 dist/prefs.js:823 msgid "Cancel" msgstr "Cancelar" -#: dist/prefs.js:1158 dist/prefs.js:1159 +#: dist/prefs.js:429 dist/prefs.js:430 msgid "Import layouts" msgstr "Importar diseños" -#: dist/prefs.js:1160 +#: dist/prefs.js:431 msgid "Import layouts from a file" msgstr "Importar diseños desde un archivo" -#: dist/prefs.js:1163 +#: dist/prefs.js:434 msgid "Select layouts file" msgstr "Seleccionar archivo de diseños" -#: dist/prefs.js:1166 dist/prefs.js:1551 +#: dist/prefs.js:437 dist/prefs.js:822 msgid "Open" msgstr "Abrir" -#: dist/prefs.js:1214 dist/prefs.js:1215 +#: dist/prefs.js:485 dist/prefs.js:486 msgid "Reset layouts" msgstr "Restablecer diseños" -#: dist/prefs.js:1216 +#: dist/prefs.js:487 msgid "Bring back the default layouts" msgstr "Restablecer los diseños predeterminados" -#: dist/prefs.js:1229 +#: dist/prefs.js:500 msgid "Keybindings" msgstr "Atajos del teclado" -#: dist/prefs.js:1231 +#: dist/prefs.js:502 msgid "Use hotkeys to perform actions on the focused window" msgstr "Usar atajos del teclado para realizar acciones en la ventana enfocada" -#: dist/prefs.js:1249 +#: dist/prefs.js:520 msgid "Move window to right tile" msgstr "Mover la ventana al mosaico de la derecha" -#: dist/prefs.js:1251 +#: dist/prefs.js:522 msgid "Move the focused window to the tile on its right" msgstr "Mover la ventana enfocada al mosaico de su derecha" -#: dist/prefs.js:1260 +#: dist/prefs.js:531 msgid "Move window to left tile" msgstr "Mover la ventana al mosaico de la izquierda" -#: dist/prefs.js:1261 +#: dist/prefs.js:532 msgid "Move the focused window to the tile on its left" msgstr "Mover la ventana enfocada al mosaico de su izquierda" -#: dist/prefs.js:1267 +#: dist/prefs.js:538 msgid "Move window to tile above" msgstr "Mover la ventana al mosaico de arriba" -#: dist/prefs.js:1268 +#: dist/prefs.js:539 msgid "Move the focused window to the tile above" msgstr "Mover la ventana enfocada al mosaico de arriba" -#: dist/prefs.js:1274 +#: dist/prefs.js:545 msgid "Move window to tile below" msgstr "Mover la ventana al mosaico de abajo" -#: dist/prefs.js:1275 +#: dist/prefs.js:546 msgid "Move the focused window to the tile below" msgstr "Mover la ventana enfocada al mosaico de abajo" -#: dist/prefs.js:1281 +#: dist/prefs.js:552 msgid "Span window to right tile" msgstr "Extender la ventana hacia el mosaico derecho" -#: dist/prefs.js:1282 +#: dist/prefs.js:553 msgid "Span the focused window to the tile on its right" msgstr "Extender la ventana enfocada al mosaico de su derecha" -#: dist/prefs.js:1288 +#: dist/prefs.js:559 msgid "Span window to left tile" msgstr "Extender la ventana hacia el mosaico izquierdo" -#: dist/prefs.js:1289 +#: dist/prefs.js:560 msgid "Span the focused window to the tile on its left" msgstr "Extender la ventana enfocada al mosaico de su izquierda" -#: dist/prefs.js:1295 +#: dist/prefs.js:566 msgid "Span window above" msgstr "Extender la ventana hacia arriba" -#: dist/prefs.js:1296 +#: dist/prefs.js:567 msgid "Span the focused window to the tile above" msgstr "Extender la ventana enfocada al mosaico superior" -#: dist/prefs.js:1302 +#: dist/prefs.js:573 msgid "Span window down" msgstr "Extender la ventana hacia abajo" -#: dist/prefs.js:1303 +#: dist/prefs.js:574 msgid "Span the focused window to the tile below" msgstr "Extender la ventana enfocada al mosaico inferior" -#: dist/prefs.js:1309 +#: dist/prefs.js:580 msgid "Span window to all tiles" msgstr "Extender la ventana a todas los mosaicos" -#: dist/prefs.js:1310 +#: dist/prefs.js:581 msgid "Span the focused window to all the tiles" msgstr "Extender la ventana enfocada a todos los mosaicos" -#: dist/prefs.js:1316 +#: dist/prefs.js:587 msgid "Untile focused window" msgstr "Desanclar ventana enfocada" -#: dist/prefs.js:1324 +#: dist/prefs.js:595 msgid "Move window to the center" msgstr "Mover la ventana al centro" -#: dist/prefs.js:1326 +#: dist/prefs.js:597 msgid "Move the focused window to the center of the screen" msgstr "Mover la ventana enfocada al centro de la pantalla" -#: dist/prefs.js:1335 +#: dist/prefs.js:606 msgid "Focus window to the right" msgstr "Enfocar la ventana de la derecha" -#: dist/prefs.js:1337 +#: dist/prefs.js:608 msgid "Focus the window to the right of the current focused window" msgstr "" "Enfoca la ventana situada a la derecha de la ventana enfocada actualmente" -#: dist/prefs.js:1344 +#: dist/prefs.js:615 msgid "Focus window to the left" msgstr "Enfocar la ventana de la izquierda" -#: dist/prefs.js:1345 +#: dist/prefs.js:616 msgid "Focus the window to the left of the current focused window" msgstr "" "Enfoca la ventana situada a la izquierda de la ventana enfocada actualmente" -#: dist/prefs.js:1351 +#: dist/prefs.js:622 msgid "Focus window above" msgstr "Enfocar la ventana superior" -#: dist/prefs.js:1352 +#: dist/prefs.js:623 msgid "Focus the window above the current focused window" msgstr "Enfoca la ventana situada encima de la ventana enfocada actualmente" -#: dist/prefs.js:1358 +#: dist/prefs.js:629 msgid "Focus window below" msgstr "Enfocar la ventana inferior" -#: dist/prefs.js:1359 +#: dist/prefs.js:630 msgid "Focus the window below the current focused window" msgstr "Enfoca la ventana situada debajo de la ventana enfocada actualmente" -#: dist/prefs.js:1365 +#: dist/prefs.js:636 msgid "Focus next window" msgstr "Enfocar la ventana siguiente" -#: dist/prefs.js:1366 +#: dist/prefs.js:637 msgid "Focus the window next to the current focused window" msgstr "Enfoca la ventana siguiente a la ventana enfocada actualmente" -#: dist/prefs.js:1372 +#: dist/prefs.js:643 msgid "Focus previous window" msgstr "Enfocar la ventana anterior" -#: dist/prefs.js:1373 +#: dist/prefs.js:644 msgid "Focus the window prior to the current focused window" msgstr "Enfoca la ventana anterior a la ventana enfocada actualmente" -#: dist/prefs.js:1379 +#: dist/prefs.js:650 #, fuzzy msgid "Highlight focused window" msgstr "Desanclar ventana enfocada" -#: dist/prefs.js:1381 +#: dist/prefs.js:652 #, fuzzy msgid "Minimize all the other windows and show only the focused window" msgstr "Usar atajos del teclado para realizar acciones en la ventana enfocada" -#: dist/prefs.js:1388 +#: dist/prefs.js:659 #, fuzzy msgid "Cycle layouts" msgstr "Restablecer diseños" -#: dist/prefs.js:1389 +#: dist/prefs.js:660 msgid "Cycle through available workspace layouts" msgstr "" -#: dist/prefs.js:1415 +#: dist/prefs.js:686 msgid "View and Customize all the Shortcuts" msgstr "Ver y personalizar todos los atajos" -#: dist/prefs.js:1443 dist/prefs.js:1444 +#: dist/prefs.js:714 dist/prefs.js:715 msgid "View and Customize Shortcuts" msgstr "Ver y personalizar los atajos" -#: dist/prefs.js:1466 +#: dist/prefs.js:737 msgid "Enable next/previous window focus to wrap around" msgstr "" "Permitir que el foco de la ventana siguiente/anterior se envuelva alrededor" -#: dist/prefs.js:1468 +#: dist/prefs.js:739 msgid "When focusing next or previous window, wrap around at the window edge" msgstr "" "Al enfocar la ventana siguiente o anterior, se envuelve en el borde de la " "ventana" -#: dist/prefs.js:1474 +#: dist/prefs.js:745 msgid "Restrict directional focus to tiled windows" msgstr "" -#: dist/prefs.js:1476 +#: dist/prefs.js:747 msgid "When using directional focus navigation, only consider tiled windows" msgstr "" -#: dist/prefs.js:1481 +#: dist/prefs.js:752 msgid "Import, export and reset" msgstr "Importar, exportar y restablecer" -#: dist/prefs.js:1483 +#: dist/prefs.js:754 msgid "Import, export and reset the settings of Tiling Shell" msgstr "Importar, exportar y restablecer la configuración de Tiling Shell" -#: dist/prefs.js:1488 dist/prefs.js:1489 +#: dist/prefs.js:759 dist/prefs.js:760 msgid "Export settings" msgstr "Exportar configuración" -#: dist/prefs.js:1490 +#: dist/prefs.js:761 msgid "Export settings to a file" msgstr "Exportar la configuración a un archivo" -#: dist/prefs.js:1493 +#: dist/prefs.js:764 msgid "Export settings to a text file" msgstr "Exportar la configuración a un archivo de texto" -#: dist/prefs.js:1500 +#: dist/prefs.js:771 msgid "Text file" msgstr "Archivo de texto" -#: dist/prefs.js:1543 dist/prefs.js:1544 +#: dist/prefs.js:814 dist/prefs.js:815 msgid "Import settings" msgstr "Importar configuración" -#: dist/prefs.js:1545 +#: dist/prefs.js:816 msgid "Import settings from a file" msgstr "Importar la configuración desde un archivo" -#: dist/prefs.js:1548 +#: dist/prefs.js:819 msgid "Select a text file to import from" msgstr "Seleccione un archivo de texto para importar" -#: dist/prefs.js:1590 dist/prefs.js:1591 +#: dist/prefs.js:861 dist/prefs.js:862 msgid "Reset settings" msgstr "Restablecer configuración" -#: dist/prefs.js:1592 +#: dist/prefs.js:863 msgid "Bring back the default settings" msgstr "Restablecer la configuración predeterminada" -#: dist/prefs.js:1607 +#: dist/prefs.js:878 msgid "Donate on ko-fi" msgstr "Donar en ko-fi" -#: dist/prefs.js:1613 +#: dist/prefs.js:884 msgid "Report a bug" msgstr "Informar de un error" -#: dist/prefs.js:1619 +#: dist/prefs.js:890 msgid "Request a feature" msgstr "Solicitar una característica" -#: dist/prefs.js:1627 +#: dist/prefs.js:898 msgid "Have issues, you want to suggest a new feature or contribute?" msgstr "" "¿Tiene algún problema, quiere sugerir una característica nueva o contribuir?" -#: dist/prefs.js:1634 +#: dist/prefs.js:905 msgid "Open a new issue on" msgstr "¡Abra una incidencia nueva en" -#: dist/prefs.js:1814 +#: dist/prefs.js:970 +msgid "Choose how windows snap to screen edges" +msgstr "" + +#: dist/prefs.js:985 +msgid "Default" +msgstr "" + +#: dist/prefs.js:986 +#, fuzzy +msgid "Follow quarters or screen halves" +msgstr "Mover al mejor mosaico" + +#: dist/prefs.js:991 +msgid "Adaptive" +msgstr "" + +#: dist/prefs.js:992 +msgid "Follow corners of selected layout or screen halves" +msgstr "" + +#: dist/prefs.js:997 +msgid "Granular" +msgstr "" + +#: dist/prefs.js:998 +msgid "Follow currently selected layout" +msgstr "" + +#: dist/prefs.js:1187 msgid "Choose custom color" msgstr "" -#: dist/prefs.js:1815 +#: dist/prefs.js:1188 msgid "Use system accent color" msgstr "" -#: dist/prefs.js:1866 dist/prefs.js:1889 +#: dist/prefs.js:1241 dist/prefs.js:1267 msgid "New accelerator…" msgstr "Atajo nuevo…" -#: dist/prefs.js:1892 +#: dist/prefs.js:1270 msgid "Use Backspace to clear" msgstr "Use Retroceso para borrar" -#: dist/extension.js:5809 -msgid "Edit Layouts" -msgstr "Editar diseños" +#~ msgid "Edit Layouts" +#~ msgstr "Editar diseños" -#: dist/extension.js:5819 -msgid "New Layout" -msgstr "Diseño nuevo" +#~ msgid "New Layout" +#~ msgstr "Diseño nuevo" -#: dist/extension.js:6004 -msgid "to split a tile" -msgstr "para dividir un mosaico" +#~ msgid "to split a tile" +#~ msgstr "para dividir un mosaico" -#: dist/extension.js:6043 -msgid "to split a tile vertically" -msgstr "para dividir un mosaico verticalmente" +#~ msgid "to split a tile vertically" +#~ msgstr "para dividir un mosaico verticalmente" -#: dist/extension.js:6063 -msgid "to delete a tile" -msgstr "para quitar un mosaico" +#~ msgid "to delete a tile" +#~ msgstr "para quitar un mosaico" -#: dist/extension.js:6087 -msgid "use the indicator button to save or cancel" -msgstr "usar el botón indicador para guardar o cancelar" +#~ msgid "use the indicator button to save or cancel" +#~ msgstr "usar el botón indicador para guardar o cancelar" #~ msgid "Menu" #~ msgstr "Menú" @@ -693,9 +717,6 @@ msgstr "usar el botón indicador para guardar o cancelar" #~ msgid "Start editing" #~ msgstr "Comenzar edición" -#~ msgid "Move to best tile" -#~ msgstr "Mover al mejor mosaico" - #~ msgid "Move to leftmost tile" #~ msgstr "Mover al mosaico más a la izquierda" diff --git a/translations/fr.po b/translations/fr.po index 75da95eb..9423e77b 100644 --- a/translations/fr.po +++ b/translations/fr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Tiling Shell\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-09 11:35+0100\n" +"POT-Creation-Date: 2026-01-03 22:57+0100\n" "PO-Revision-Date: 2025-03-23 14:33+0100\n" "Last-Translator: Nicolas Bénard \n" "Language-Team: French\n" @@ -19,167 +19,168 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Gtranslator 47.1\n" -#: dist/prefs.js:793 +#: dist/prefs.js:59 msgid "General" msgstr "Général" -#: dist/prefs.js:798 +#: dist/prefs.js:64 msgid "Appearance" msgstr "Apparence" -#: dist/prefs.js:799 +#: dist/prefs.js:65 msgid "Configure the appearance of Tiling Shell" msgstr "Configurer l'apparence de Tiling Shell" -#: dist/prefs.js:804 +#: dist/prefs.js:70 msgid "Show Indicator" msgstr "Afficher l'indicateur" -#: dist/prefs.js:805 +#: dist/prefs.js:71 msgid "Whether to show the panel indicator" msgstr "Afficher ou non l'indicateur dans le panneau" -#: dist/prefs.js:810 +#: dist/prefs.js:76 msgid "Inner gaps" msgstr "Espaces internes" -#: dist/prefs.js:811 +#: dist/prefs.js:77 msgid "Gaps between windows" msgstr "Espaces entre les fenêtres" -#: dist/prefs.js:816 +#: dist/prefs.js:82 msgid "Outer gaps" msgstr "Espaces externes" -#: dist/prefs.js:817 +#: dist/prefs.js:83 msgid "Gaps between a window and the monitor borders" msgstr "Espaces entre une fenêtre et les bords de l'écran" -#: dist/prefs.js:821 +#: dist/prefs.js:87 msgid "Blur (experimental feature)" msgstr "Flou (fonctionnalité expérimentale)" -#: dist/prefs.js:823 +#: dist/prefs.js:89 msgid "Apply blur effect to Snap Assistant and tile previews" msgstr "" "Appliquer un effet de flou à l'assistant d'ancrage et aux aperçus des tuiles" -#: dist/prefs.js:829 +#: dist/prefs.js:95 msgid "Snap Assistant threshold" msgstr "Seuil de l'assistant d'ancrage" -#: dist/prefs.js:831 +#: dist/prefs.js:97 msgid "Minimum distance from the Snap Assistant to the pointer to open it" msgstr "" "Distance minimale entre l'assistant d'ancrage et le pointeur pour l'ouvrir" -#: dist/prefs.js:840 +#: dist/prefs.js:106 msgid "Snap Assistant" msgstr "Assistant d'ancrage" -#: dist/prefs.js:841 +#: dist/prefs.js:107 msgid "Apply blur effect to Snap Assistant" msgstr "Appliquer un effet de flou à l'assistant d'ancrage" -#: dist/prefs.js:847 +#: dist/prefs.js:113 msgid "Selected tile preview" msgstr "Aperçu de la tuile sélectionnée" -#: dist/prefs.js:848 +#: dist/prefs.js:114 msgid "Apply blur effect to selected tile preview" msgstr "Appliquer un effet de flou à l'aperçu de la tuile sélectionnée" -#: dist/prefs.js:852 +#: dist/prefs.js:118 msgid "Window border" msgstr "Bordure de fenêtre" -#: dist/prefs.js:853 dist/prefs.js:860 +#: dist/prefs.js:119 dist/prefs.js:126 msgid "Show a border around focused window" msgstr "Afficher une bordure autour de la fenêtre active" -#: dist/prefs.js:859 +#: dist/prefs.js:125 msgid "Enable" msgstr "Activer" -#: dist/prefs.js:866 +#: dist/prefs.js:132 msgid "Smart border radius" msgstr "Rayon de bordure intelligent" -#: dist/prefs.js:867 -msgid "Dynamically adapt to the window’s actual border radius" +#: dist/prefs.js:133 +#, fuzzy +msgid "Dynamically adapt to the window's actual border radius" msgstr "S'adapte dynamiquement au rayon de bordure réel de la fenêtre" -#: dist/prefs.js:873 +#: dist/prefs.js:139 msgid "Width" msgstr "Largeur" -#: dist/prefs.js:874 +#: dist/prefs.js:140 msgid "The size of the border" msgstr "Taille de la bordure" -#: dist/prefs.js:883 +#: dist/prefs.js:149 msgid "Border color" msgstr "Couleur de la bordure" -#: dist/prefs.js:884 +#: dist/prefs.js:150 msgid "Choose the color of the border" msgstr "Choisir la couleur de la bordure" -#: dist/prefs.js:900 +#: dist/prefs.js:166 msgid "Animations" msgstr "Animations" -#: dist/prefs.js:901 +#: dist/prefs.js:167 msgid "Customize animations" msgstr "Personnaliser les animations" -#: dist/prefs.js:907 +#: dist/prefs.js:173 msgid "Snap assistant animation time" msgstr "Durée de l'animation de l'assistant d'ancrage" -#: dist/prefs.js:908 +#: dist/prefs.js:174 msgid "The snap assistant animation time in milliseconds" msgstr "Durée de l'animation de l'assistant d'ancrage en millisecondes" -#: dist/prefs.js:916 +#: dist/prefs.js:182 msgid "Tiles animation time" msgstr "Durée de l'animation des tuiles" -#: dist/prefs.js:917 +#: dist/prefs.js:183 msgid "The tiles animation time in milliseconds" msgstr "Durée de l'animation des tuiles en millisecondes" -#: dist/prefs.js:923 +#: dist/prefs.js:189 msgid "Behaviour" msgstr "Comportement" -#: dist/prefs.js:924 +#: dist/prefs.js:190 msgid "Configure the behaviour of Tiling Shell" msgstr "Configurer le comportement de Tiling Shell" -#: dist/prefs.js:929 +#: dist/prefs.js:195 msgid "Enable Snap Assistant" msgstr "Activer l'assistant d'ancrage" -#: dist/prefs.js:930 +#: dist/prefs.js:196 msgid "Move the window on top of the screen to snap assist it" msgstr "" "Déplacer la fenêtre en haut de l'écran pour activer l'assistant d'ancrage" -#: dist/prefs.js:935 +#: dist/prefs.js:201 msgid "Enable Tiling System" msgstr "Activer le système de tuiles" -#: dist/prefs.js:936 +#: dist/prefs.js:202 msgid "Hold the activation key while moving a window to tile it" msgstr "" "Maintenir la touche d'activation en déplaçant une fenêtre pour l'ancrer" -#: dist/prefs.js:944 +#: dist/prefs.js:210 msgid "Tiling System deactivation key" msgstr "Touche de désactivation du système de tuilage" -#: dist/prefs.js:946 +#: dist/prefs.js:212 msgid "" "Hold the deactivation key while moving a window to deactivate the tiling " "system" @@ -187,50 +188,50 @@ msgstr "" "Maintenez la touche de désactivation tout en déplaçant une fenêtre pour " "désactiver le système de tuilage" -#: dist/prefs.js:954 +#: dist/prefs.js:220 msgid "Span multiple tiles" msgstr "Étendre sur plusieurs tuiles" -#: dist/prefs.js:955 +#: dist/prefs.js:221 msgid "Hold the activation key to span multiple tiles" msgstr "Maintenir la touche d'activation pour étendre sur plusieurs tuiles" -#: dist/prefs.js:964 +#: dist/prefs.js:230 msgid "Enable Auto Tiling" msgstr "Activer le tuilage automatique" -#: dist/prefs.js:965 +#: dist/prefs.js:231 msgid "Automatically tile new windows to the best tile" msgstr "Carrelez automatiquement les nouvelles fenêtres sur la meilleure tuile" -#: dist/prefs.js:970 +#: dist/prefs.js:236 msgid "Enable auto-resize of the complementing tiled windows" msgstr "Activer le redimensionnement automatique des fenêtres adjacentes" -#: dist/prefs.js:972 +#: dist/prefs.js:238 msgid "" "When a tiled window is resized, auto-resize the other tiled windows near it" msgstr "" "Lorsque qu'une fenêtre ancrée est redimensionnée, ajuster automatiquement " "les autres fenêtres adjacentes" -#: dist/prefs.js:978 +#: dist/prefs.js:244 msgid "Restore window size" msgstr "Restaurer la taille de la fenêtre" -#: dist/prefs.js:980 +#: dist/prefs.js:246 msgid "Whether to restore the windows to their original size when untiled" msgstr "" "Restaurer ou non la taille d'origine des fenêtres lorsqu'elles sont " "désancrées" -#: dist/prefs.js:986 +#: dist/prefs.js:252 msgid "Add snap assistant and auto-tile buttons to window menu" msgstr "" "Ajouter des boutons pour l'assistant d'ancrage et l'ancrage automatique au " "menu de la fenêtre" -#: dist/prefs.js:988 +#: dist/prefs.js:254 msgid "" "Add snap assistant and auto-tile buttons in the menu that shows up when you " "right click on a window title" @@ -238,444 +239,467 @@ msgstr "" "Ajouter des boutons pour l'assistant d'ancrage et l'ancrage automatique dans " "le menu contextuel du titre de la fenêtre" -#: dist/prefs.js:994 +#: dist/prefs.js:260 msgid "Add tiled windows to ALT+TAB menu" msgstr "" -#: dist/prefs.js:996 +#: dist/prefs.js:262 msgid "" "Add the tiled windows to the ALT+TAB menu to open all the tiled windows at " "once" msgstr "" -#: dist/prefs.js:1001 +#: dist/prefs.js:267 msgid "Screen Edges" msgstr "Bords de l'écran" -#: dist/prefs.js:1003 +#: dist/prefs.js:269 msgid "" "Drag windows against the top, left and right screen edges to resize them" msgstr "" "Faites glisser les fenêtres contre les bords supérieur, gauche et droit de " "l'écran pour les redimensionner" -#: dist/prefs.js:1017 +#: dist/prefs.js:283 msgid "Drag against top edge to maximize window" msgstr "Faites glisser contre le bord supérieur pour maximiser la fenêtre" -#: dist/prefs.js:1018 +#: dist/prefs.js:284 msgid "Drag windows against the top edge to maximize them" msgstr "" "Faites glisser les fenêtres contre le bord supérieur pour les maximiser" -#: dist/prefs.js:1027 +#: dist/prefs.js:293 msgid "Quarter tiling activation area" msgstr "Zone d'activation du quadrillage" -#: dist/prefs.js:1028 +#: dist/prefs.js:294 #, fuzzy, javascript-format msgid "Activation area to trigger quarter tiling (%% of the screen)" msgstr "Zone d'activation pour déclencher le quadrillage (en % de l'écran)" -#: dist/prefs.js:1044 +#: dist/prefs.js:310 msgid "Edge tiling offset" msgstr "" -#: dist/prefs.js:1045 +#: dist/prefs.js:311 msgid "Offset from the screen edge to trigger edge tiling (in pixels)" msgstr "" -#: dist/prefs.js:1062 +#: dist/prefs.js:333 msgid "Windows suggestions" msgstr "Suggestions de fenêtres" -#: dist/prefs.js:1063 +#: dist/prefs.js:334 msgid "Enable and disable windows suggestions" msgstr "Activer et désactiver les suggestions de fenêtres" -#: dist/prefs.js:1068 +#: dist/prefs.js:339 msgid "Enable window suggestions for the tiling system" msgstr "Activer les suggestions de fenêtres pour le système de tuilage" -#: dist/prefs.js:1070 +#: dist/prefs.js:341 msgid "" "Provides smart suggestions to fill empty tiles when using the tiling system" msgstr "" "Fournit des suggestions intelligentes pour remplir les tuiles vides lors de " "l'utilisation du système de tuilage" -#: dist/prefs.js:1076 +#: dist/prefs.js:347 msgid "Enable window suggestions for the snap assistant" msgstr "Activer les suggestions de fenêtres pour l'assistant de fixation" -#: dist/prefs.js:1078 +#: dist/prefs.js:349 msgid "" "Offers suggestions to populate empty tiles when using the snap assistant" msgstr "" "Propose des suggestions pour remplir les tuiles vides lors de l'utilisation " "de l'assistant de fixation" -#: dist/prefs.js:1084 +#: dist/prefs.js:355 msgid "Enable window suggestions for screen edge snapping" msgstr "" "Activer les suggestions de fenêtres pour l'ancrage aux bords de l'écran" -#: dist/prefs.js:1086 +#: dist/prefs.js:357 msgid "Suggests windows to occupy empty tiles when snapping to screen edges" msgstr "" "Propose des fenêtres pour occuper les tuiles vides lorsqu'elles sont ancrées " "aux bords de l'écran" -#: dist/prefs.js:1092 +#: dist/prefs.js:363 msgid "Layouts" msgstr "Dispositions" -#: dist/prefs.js:1093 +#: dist/prefs.js:364 msgid "Configure the layouts of Tiling Shell" msgstr "Configurer les dispositions de Tiling Shell" -#: dist/prefs.js:1097 dist/prefs.js:1098 +#: dist/prefs.js:368 dist/prefs.js:369 msgid "Edit layouts" msgstr "Modifier les dispositions" -#: dist/prefs.js:1099 +#: dist/prefs.js:370 msgid "Open the layouts editor" msgstr "Ouvrir l'éditeur de dispositions" -#: dist/prefs.js:1104 dist/prefs.js:1105 dist/prefs.js:1109 +#: dist/prefs.js:375 dist/prefs.js:376 dist/prefs.js:380 msgid "Export layouts" msgstr "Exporter les dispositions" -#: dist/prefs.js:1106 +#: dist/prefs.js:377 msgid "Export layouts to a file" msgstr "Exporter les dispositions dans un fichier" -#: dist/prefs.js:1112 dist/prefs.js:1496 +#: dist/prefs.js:383 dist/prefs.js:767 msgid "Save" msgstr "Enregistrer" -#: dist/prefs.js:1113 dist/prefs.js:1167 dist/prefs.js:1497 dist/prefs.js:1552 +#: dist/prefs.js:384 dist/prefs.js:438 dist/prefs.js:768 dist/prefs.js:823 msgid "Cancel" msgstr "Annuler" -#: dist/prefs.js:1158 dist/prefs.js:1159 +#: dist/prefs.js:429 dist/prefs.js:430 msgid "Import layouts" msgstr "Importer des dispositions" -#: dist/prefs.js:1160 +#: dist/prefs.js:431 msgid "Import layouts from a file" msgstr "Importer des dispositions depuis un fichier" -#: dist/prefs.js:1163 +#: dist/prefs.js:434 msgid "Select layouts file" msgstr "Sélectionner un fichier de dispositions" -#: dist/prefs.js:1166 dist/prefs.js:1551 +#: dist/prefs.js:437 dist/prefs.js:822 msgid "Open" msgstr "Ouvrir" -#: dist/prefs.js:1214 dist/prefs.js:1215 +#: dist/prefs.js:485 dist/prefs.js:486 msgid "Reset layouts" msgstr "Réinitialiser les dispositions" -#: dist/prefs.js:1216 +#: dist/prefs.js:487 msgid "Bring back the default layouts" msgstr "Restaurer les dispositions par défaut" -#: dist/prefs.js:1229 +#: dist/prefs.js:500 msgid "Keybindings" msgstr "Raccourcis clavier" -#: dist/prefs.js:1231 +#: dist/prefs.js:502 msgid "Use hotkeys to perform actions on the focused window" msgstr "" "Utiliser des raccourcis pour effectuer des actions sur la fenêtre active" -#: dist/prefs.js:1249 +#: dist/prefs.js:520 msgid "Move window to right tile" msgstr "Déplacer la fenêtre vers la tuile de droite" -#: dist/prefs.js:1251 +#: dist/prefs.js:522 msgid "Move the focused window to the tile on its right" msgstr "Déplacer la fenêtre active vers la tuile à sa droite" -#: dist/prefs.js:1260 +#: dist/prefs.js:531 msgid "Move window to left tile" msgstr "Déplacer la fenêtre vers la tuile de gauche" -#: dist/prefs.js:1261 +#: dist/prefs.js:532 msgid "Move the focused window to the tile on its left" msgstr "Déplacer la fenêtre active vers la tuile à sa gauche" -#: dist/prefs.js:1267 +#: dist/prefs.js:538 msgid "Move window to tile above" msgstr "Déplacer la fenêtre vers la tuile au-dessus" -#: dist/prefs.js:1268 +#: dist/prefs.js:539 msgid "Move the focused window to the tile above" msgstr "Déplacer la fenêtre active vers la tuile au-dessus" -#: dist/prefs.js:1274 +#: dist/prefs.js:545 msgid "Move window to tile below" msgstr "Déplacer la fenêtre vers la tuile en dessous" -#: dist/prefs.js:1275 +#: dist/prefs.js:546 msgid "Move the focused window to the tile below" msgstr "Déplacer la fenêtre active vers la tuile en dessous" -#: dist/prefs.js:1281 +#: dist/prefs.js:552 msgid "Span window to right tile" msgstr "Étendre la fenêtre vers la tuile de droite" -#: dist/prefs.js:1282 +#: dist/prefs.js:553 msgid "Span the focused window to the tile on its right" msgstr "Étendre la fenêtre active vers la tuile à sa droite" -#: dist/prefs.js:1288 +#: dist/prefs.js:559 msgid "Span window to left tile" msgstr "Étendre la fenêtre vers la tuile de gauche" -#: dist/prefs.js:1289 +#: dist/prefs.js:560 msgid "Span the focused window to the tile on its left" msgstr "Étendre la fenêtre active vers la tuile à sa gauche" -#: dist/prefs.js:1295 +#: dist/prefs.js:566 msgid "Span window above" msgstr "Étendre la fenêtre vers la tuile au-dessus" -#: dist/prefs.js:1296 +#: dist/prefs.js:567 msgid "Span the focused window to the tile above" msgstr "Étendre la fenêtre active vers la tuile au-dessus" -#: dist/prefs.js:1302 +#: dist/prefs.js:573 msgid "Span window down" msgstr "Étendre la fenêtre vers la tuile en dessous" -#: dist/prefs.js:1303 +#: dist/prefs.js:574 msgid "Span the focused window to the tile below" msgstr "Étendre la fenêtre active vers la tuile en dessous" -#: dist/prefs.js:1309 +#: dist/prefs.js:580 msgid "Span window to all tiles" msgstr "Étendre la fenêtre à toutes les tuiles" -#: dist/prefs.js:1310 +#: dist/prefs.js:581 msgid "Span the focused window to all the tiles" msgstr "Étendre la fenêtre active à toutes les tuiles" -#: dist/prefs.js:1316 +#: dist/prefs.js:587 msgid "Untile focused window" msgstr "Détacher la fenêtre active" -#: dist/prefs.js:1324 +#: dist/prefs.js:595 msgid "Move window to the center" msgstr "Déplacer la fenêtre au centre" -#: dist/prefs.js:1326 +#: dist/prefs.js:597 msgid "Move the focused window to the center of the screen" msgstr "Déplacer la fenêtre active au centre de l'écran" -#: dist/prefs.js:1335 +#: dist/prefs.js:606 msgid "Focus window to the right" msgstr "Focus sur la fenêtre à droite" -#: dist/prefs.js:1337 +#: dist/prefs.js:608 msgid "Focus the window to the right of the current focused window" msgstr "Mettre le focus sur la fenêtre à droite de la fenêtre active" -#: dist/prefs.js:1344 +#: dist/prefs.js:615 msgid "Focus window to the left" msgstr "Focus sur la fenêtre à gauche" -#: dist/prefs.js:1345 +#: dist/prefs.js:616 msgid "Focus the window to the left of the current focused window" msgstr "Mettre le focus sur la fenêtre à gauche de la fenêtre active" -#: dist/prefs.js:1351 +#: dist/prefs.js:622 msgid "Focus window above" msgstr "Focus sur la fenêtre au-dessus" -#: dist/prefs.js:1352 +#: dist/prefs.js:623 msgid "Focus the window above the current focused window" msgstr "Mettre le focus sur la fenêtre au-dessus de la fenêtre active" -#: dist/prefs.js:1358 +#: dist/prefs.js:629 msgid "Focus window below" msgstr "Focus sur la fenêtre en dessous" -#: dist/prefs.js:1359 +#: dist/prefs.js:630 msgid "Focus the window below the current focused window" msgstr "Mettre le focus sur la fenêtre en dessous de la fenêtre active" -#: dist/prefs.js:1365 +#: dist/prefs.js:636 msgid "Focus next window" msgstr "Focus sur la fenêtre suivante" -#: dist/prefs.js:1366 +#: dist/prefs.js:637 msgid "Focus the window next to the current focused window" msgstr "" "Mettre le focus sur la fenêtre suivante à la fenêtre actuellement active" -#: dist/prefs.js:1372 +#: dist/prefs.js:643 msgid "Focus previous window" msgstr "Focus sur la fenêtre précédente" -#: dist/prefs.js:1373 +#: dist/prefs.js:644 msgid "Focus the window prior to the current focused window" msgstr "" "Mettre le focus sur la fenêtre précédente à la fenêtre actuellement active" -#: dist/prefs.js:1379 +#: dist/prefs.js:650 #, fuzzy msgid "Highlight focused window" msgstr "Détacher la fenêtre active" -#: dist/prefs.js:1381 +#: dist/prefs.js:652 #, fuzzy msgid "Minimize all the other windows and show only the focused window" msgstr "" "Utiliser des raccourcis pour effectuer des actions sur la fenêtre active" -#: dist/prefs.js:1388 +#: dist/prefs.js:659 #, fuzzy msgid "Cycle layouts" msgstr "Réinitialiser les dispositions" -#: dist/prefs.js:1389 +#: dist/prefs.js:660 msgid "Cycle through available workspace layouts" msgstr "" -#: dist/prefs.js:1415 +#: dist/prefs.js:686 msgid "View and Customize all the Shortcuts" msgstr "Afficher et personnaliser tous les raccourcis" -#: dist/prefs.js:1443 dist/prefs.js:1444 +#: dist/prefs.js:714 dist/prefs.js:715 msgid "View and Customize Shortcuts" msgstr "Afficher et personnaliser les raccourcis" -#: dist/prefs.js:1466 +#: dist/prefs.js:737 msgid "Enable next/previous window focus to wrap around" msgstr "Activer le focus suivant/précédent de la fenêtre pour revenir au début" -#: dist/prefs.js:1468 +#: dist/prefs.js:739 msgid "When focusing next or previous window, wrap around at the window edge" msgstr "" "Lorsque vous vous concentrez sur la fenêtre suivante ou précédente, faites-" "le rebondir sur le bord de la fenêtre" -#: dist/prefs.js:1474 +#: dist/prefs.js:745 msgid "Restrict directional focus to tiled windows" msgstr "" -#: dist/prefs.js:1476 +#: dist/prefs.js:747 msgid "When using directional focus navigation, only consider tiled windows" msgstr "" -#: dist/prefs.js:1481 +#: dist/prefs.js:752 msgid "Import, export and reset" msgstr "Importer, exporter et réinitialiser" -#: dist/prefs.js:1483 +#: dist/prefs.js:754 msgid "Import, export and reset the settings of Tiling Shell" msgstr "Importer, exporter et réinitialiser les paramètres de Tiling Shell" -#: dist/prefs.js:1488 dist/prefs.js:1489 +#: dist/prefs.js:759 dist/prefs.js:760 msgid "Export settings" msgstr "Exporter les paramètres" -#: dist/prefs.js:1490 +#: dist/prefs.js:761 msgid "Export settings to a file" msgstr "Exporter les paramètres vers un fichier" -#: dist/prefs.js:1493 +#: dist/prefs.js:764 msgid "Export settings to a text file" msgstr "Exporter les paramètres vers un fichier texte" -#: dist/prefs.js:1500 +#: dist/prefs.js:771 msgid "Text file" msgstr "Fichier texte" -#: dist/prefs.js:1543 dist/prefs.js:1544 +#: dist/prefs.js:814 dist/prefs.js:815 msgid "Import settings" msgstr "Importer les paramètres" -#: dist/prefs.js:1545 +#: dist/prefs.js:816 msgid "Import settings from a file" msgstr "Importer les paramètres à partir d'un fichier" -#: dist/prefs.js:1548 +#: dist/prefs.js:819 msgid "Select a text file to import from" msgstr "Sélectionner un fichier texte à importer" -#: dist/prefs.js:1590 dist/prefs.js:1591 +#: dist/prefs.js:861 dist/prefs.js:862 msgid "Reset settings" msgstr "Réinitialiser les paramètres" -#: dist/prefs.js:1592 +#: dist/prefs.js:863 msgid "Bring back the default settings" msgstr "Rétablir les paramètres par défaut" -#: dist/prefs.js:1607 +#: dist/prefs.js:878 msgid "Donate on ko-fi" msgstr "Faire un don sur ko-fi" -#: dist/prefs.js:1613 +#: dist/prefs.js:884 msgid "Report a bug" msgstr "Signaler un bug" -#: dist/prefs.js:1619 +#: dist/prefs.js:890 msgid "Request a feature" msgstr "Demander une fonctionnalité" -#: dist/prefs.js:1627 +#: dist/prefs.js:898 msgid "Have issues, you want to suggest a new feature or contribute?" msgstr "" "Vous avez des problèmes, vous souhaitez suggérer une nouvelle fonctionnalité " "ou contribuer ?" -#: dist/prefs.js:1634 +#: dist/prefs.js:905 msgid "Open a new issue on" msgstr "Ouvrir un nouveau problème sur" -#: dist/prefs.js:1814 +#: dist/prefs.js:970 +msgid "Choose how windows snap to screen edges" +msgstr "" + +#: dist/prefs.js:985 +msgid "Default" +msgstr "" + +#: dist/prefs.js:986 +#, fuzzy +msgid "Follow quarters or screen halves" +msgstr "Déplacer vers la meilleure tuile" + +#: dist/prefs.js:991 +msgid "Adaptive" +msgstr "" + +#: dist/prefs.js:992 +msgid "Follow corners of selected layout or screen halves" +msgstr "" + +#: dist/prefs.js:997 +msgid "Granular" +msgstr "" + +#: dist/prefs.js:998 +msgid "Follow currently selected layout" +msgstr "" + +#: dist/prefs.js:1187 msgid "Choose custom color" msgstr "" -#: dist/prefs.js:1815 +#: dist/prefs.js:1188 msgid "Use system accent color" msgstr "" -#: dist/prefs.js:1866 dist/prefs.js:1889 +#: dist/prefs.js:1241 dist/prefs.js:1267 msgid "New accelerator…" msgstr "Nouveau raccourci…" -#: dist/prefs.js:1892 +#: dist/prefs.js:1270 msgid "Use Backspace to clear" msgstr "Utilisez Backspace pour effacer" -#: dist/extension.js:5809 -msgid "Edit Layouts" -msgstr "Modifier les dispositions" +#~ msgid "Edit Layouts" +#~ msgstr "Modifier les dispositions" -#: dist/extension.js:5819 -msgid "New Layout" -msgstr "Nouvelle disposition" +#~ msgid "New Layout" +#~ msgstr "Nouvelle disposition" -#: dist/extension.js:6004 -msgid "to split a tile" -msgstr "pour diviser une tuile" +#~ msgid "to split a tile" +#~ msgstr "pour diviser une tuile" -#: dist/extension.js:6043 -msgid "to split a tile vertically" -msgstr "pour diviser une tuile verticalement" +#~ msgid "to split a tile vertically" +#~ msgstr "pour diviser une tuile verticalement" -#: dist/extension.js:6063 -msgid "to delete a tile" -msgstr "pour supprimer une tuile" +#~ msgid "to delete a tile" +#~ msgstr "pour supprimer une tuile" -#: dist/extension.js:6087 -msgid "use the indicator button to save or cancel" -msgstr "utilisez le bouton d'indicateur pour enregistrer ou annuler" +#~ msgid "use the indicator button to save or cancel" +#~ msgstr "utilisez le bouton d'indicateur pour enregistrer ou annuler" #~ msgid "Menu" #~ msgstr "Menu" @@ -695,9 +719,6 @@ msgstr "utilisez le bouton d'indicateur pour enregistrer ou annuler" #~ msgid "Start editing" #~ msgstr "Commencer à modifier" -#~ msgid "Move to best tile" -#~ msgstr "Déplacer vers la meilleure tuile" - #~ msgid "Move to leftmost tile" #~ msgstr "Déplacer vers la tuile la plus à gauche" diff --git a/translations/it.po b/translations/it.po index 7c344ab9..8b847c72 100644 --- a/translations/it.po +++ b/translations/it.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: Tiling Shell\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-09 11:35+0100\n" -"PO-Revision-Date: 2025-10-09 20:11+0200\n" +"POT-Creation-Date: 2026-01-03 22:57+0100\n" +"PO-Revision-Date: 2026-01-02 21:11+0200\n" "Last-Translator: Albano Battistella \n" "Language-Team: Italian <>\n" "Language: it\n" @@ -11,168 +11,169 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: dist/prefs.js:793 +#: dist/prefs.js:59 msgid "General" msgstr "Generale" -#: dist/prefs.js:798 +#: dist/prefs.js:64 msgid "Appearance" msgstr "Aspetto" -#: dist/prefs.js:799 +#: dist/prefs.js:65 msgid "Configure the appearance of Tiling Shell" msgstr "Configura l'aspetto di Tiling Shell" -#: dist/prefs.js:804 +#: dist/prefs.js:70 msgid "Show Indicator" msgstr "Mostra icona" -#: dist/prefs.js:805 +#: dist/prefs.js:71 msgid "Whether to show the panel indicator" msgstr "Se mostrare l'indicatore del pannello oppure no" -#: dist/prefs.js:810 +#: dist/prefs.js:76 msgid "Inner gaps" msgstr "Spazi interni" -#: dist/prefs.js:811 +#: dist/prefs.js:77 msgid "Gaps between windows" msgstr "Spazi tra le finestre" -#: dist/prefs.js:816 +#: dist/prefs.js:82 msgid "Outer gaps" msgstr "Spazi esterni" -#: dist/prefs.js:817 +#: dist/prefs.js:83 msgid "Gaps between a window and the monitor borders" msgstr "Spazi tra una finestra e i bordi del monitor" -#: dist/prefs.js:821 +#: dist/prefs.js:87 msgid "Blur (experimental feature)" msgstr "Sfocatura (funzione sperimentale)" -#: dist/prefs.js:823 +#: dist/prefs.js:89 msgid "Apply blur effect to Snap Assistant and tile previews" msgstr "" "Applica l'effetto sfocatura allo Snap Assistant e alle anteprime dei riquadri" -#: dist/prefs.js:829 +#: dist/prefs.js:95 msgid "Snap Assistant threshold" msgstr "Soglia di attivazione dello Snap Assistant" -#: dist/prefs.js:831 +#: dist/prefs.js:97 msgid "Minimum distance from the Snap Assistant to the pointer to open it" msgstr "Distanza minima dallo Snap Assistant al puntatore per aprirlo" -#: dist/prefs.js:840 +#: dist/prefs.js:106 msgid "Snap Assistant" msgstr "Snap Assistant" -#: dist/prefs.js:841 +#: dist/prefs.js:107 msgid "Apply blur effect to Snap Assistant" msgstr "Applica l'effetto sfocatura allo Snap Assistant" -#: dist/prefs.js:847 +#: dist/prefs.js:113 msgid "Selected tile preview" msgstr "Anteprima del riquadro selezionato" -#: dist/prefs.js:848 +#: dist/prefs.js:114 msgid "Apply blur effect to selected tile preview" msgstr "Applica l'effetto sfocato all'anteprima del riquadro selezionato" -#: dist/prefs.js:852 +#: dist/prefs.js:118 msgid "Window border" msgstr "Bordo della finestra" -#: dist/prefs.js:853 dist/prefs.js:860 +#: dist/prefs.js:119 dist/prefs.js:126 msgid "Show a border around focused window" msgstr "Mostra un bordo attorno alla finestra selezionata" -#: dist/prefs.js:859 +#: dist/prefs.js:125 msgid "Enable" msgstr "Abilita" -#: dist/prefs.js:866 +#: dist/prefs.js:132 msgid "Smart border radius" msgstr "Border radius intelligente" -#: dist/prefs.js:867 -msgid "Dynamically adapt to the window’s actual border radius" +#: dist/prefs.js:133 +#, fuzzy +msgid "Dynamically adapt to the window's actual border radius" msgstr "Adatta dinamicamente al border radius della finestra" -#: dist/prefs.js:873 +#: dist/prefs.js:139 msgid "Width" msgstr "Larghezza" -#: dist/prefs.js:874 +#: dist/prefs.js:140 msgid "The size of the border" msgstr "La dimensione del bordo" -#: dist/prefs.js:883 +#: dist/prefs.js:149 msgid "Border color" msgstr "Colore bordo" -#: dist/prefs.js:884 +#: dist/prefs.js:150 msgid "Choose the color of the border" msgstr "Scegli il colore del bordo" -#: dist/prefs.js:900 +#: dist/prefs.js:166 msgid "Animations" msgstr "Animazioni" -#: dist/prefs.js:901 +#: dist/prefs.js:167 msgid "Customize animations" msgstr "Personalizza animazioni" -#: dist/prefs.js:907 +#: dist/prefs.js:173 msgid "Snap assistant animation time" msgstr "Tempo di animazione dello Snap Assistant" -#: dist/prefs.js:908 +#: dist/prefs.js:174 msgid "The snap assistant animation time in milliseconds" msgstr "Tempo di animazione delo Snap Assistant in millisecondi" -#: dist/prefs.js:916 +#: dist/prefs.js:182 msgid "Tiles animation time" msgstr "Tempo di animazione dei riquadri" -#: dist/prefs.js:917 +#: dist/prefs.js:183 msgid "The tiles animation time in milliseconds" msgstr "Il tempo di animazione dei riquadri in millisecondi" -#: dist/prefs.js:923 +#: dist/prefs.js:189 msgid "Behaviour" msgstr "Comportamento" -#: dist/prefs.js:924 +#: dist/prefs.js:190 msgid "Configure the behaviour of Tiling Shell" msgstr "Configura il comportamento di Tiling Shell" -#: dist/prefs.js:929 +#: dist/prefs.js:195 msgid "Enable Snap Assistant" msgstr "Abilita Snap Assistant" -#: dist/prefs.js:930 +#: dist/prefs.js:196 msgid "Move the window on top of the screen to snap assist it" msgstr "" "Sposta la finestra nella parte superiore dello schermo per usare lo Snap " "Assistant" -#: dist/prefs.js:935 +#: dist/prefs.js:201 msgid "Enable Tiling System" msgstr "Abilita sistema di tiling" -#: dist/prefs.js:936 +#: dist/prefs.js:202 msgid "Hold the activation key while moving a window to tile it" msgstr "" "Tieni premuto il tasto di attivazione mentre sposti una finestra per " "affiancarla" -#: dist/prefs.js:944 +#: dist/prefs.js:210 msgid "Tiling System deactivation key" msgstr "Tasto di disattivazione del sistema di tiling" -#: dist/prefs.js:946 +#: dist/prefs.js:212 msgid "" "Hold the deactivation key while moving a window to deactivate the tiling " "system" @@ -180,48 +181,48 @@ msgstr "" "Tieni premuto il tasto di disattivazione mentre sposti una finestra per " "chiudere il sistema di tiling" -#: dist/prefs.js:954 +#: dist/prefs.js:220 msgid "Span multiple tiles" msgstr "Unisci più riquadri" -#: dist/prefs.js:955 +#: dist/prefs.js:221 msgid "Hold the activation key to span multiple tiles" msgstr "Tieni premuto il tasto di attivazione per unire più riquadri" -#: dist/prefs.js:964 +#: dist/prefs.js:230 msgid "Enable Auto Tiling" msgstr "Abilita sistema di tiling automatico" -#: dist/prefs.js:965 +#: dist/prefs.js:231 msgid "Automatically tile new windows to the best tile" msgstr "Posiziona automaticamente le nuove finestre nel migliore riquadro" -#: dist/prefs.js:970 +#: dist/prefs.js:236 msgid "Enable auto-resize of the complementing tiled windows" msgstr "Abilita il ridimensionamento automatico delle finestre affiancate" -#: dist/prefs.js:972 +#: dist/prefs.js:238 msgid "" "When a tiled window is resized, auto-resize the other tiled windows near it" msgstr "" "Quando una finestra viene ridimensionata, ridimensiona automaticamente le " "altre finestre affiancate ad essa" -#: dist/prefs.js:978 +#: dist/prefs.js:244 msgid "Restore window size" msgstr "Ripristina le dimensioni della finestra" -#: dist/prefs.js:980 +#: dist/prefs.js:246 msgid "Whether to restore the windows to their original size when untiled" msgstr "Se ripristinare le finestre alle dimensioni originali oppure no" -#: dist/prefs.js:986 +#: dist/prefs.js:252 msgid "Add snap assistant and auto-tile buttons to window menu" msgstr "" "Aggiungi lo Snap Assistant e i pulsanti di affiancamento automatico al menu " "della finestra" -#: dist/prefs.js:988 +#: dist/prefs.js:254 msgid "" "Add snap assistant and auto-tile buttons in the menu that shows up when you " "right click on a window title" @@ -230,11 +231,11 @@ msgstr "" "visualizzato quando si fa clic con il pulsante destro del mouse sul titolo " "di una finestra" -#: dist/prefs.js:994 +#: dist/prefs.js:260 msgid "Add tiled windows to ALT+TAB menu" msgstr "Aggiungi finestre affiancate al menu ALT+TAB" -#: dist/prefs.js:996 +#: dist/prefs.js:262 msgid "" "Add the tiled windows to the ALT+TAB menu to open all the tiled windows at " "once" @@ -242,433 +243,456 @@ msgstr "" "Aggiungi le finestre affiancate al menu ALT+TAB per aprirle tutte " "contemporaneamente" -#: dist/prefs.js:1001 +#: dist/prefs.js:267 msgid "Screen Edges" msgstr "Bordi dello schermo" -#: dist/prefs.js:1003 +#: dist/prefs.js:269 msgid "" "Drag windows against the top, left and right screen edges to resize them" msgstr "" "Trascina le finestre contro i bordi superiore, sinistro e destro dello " "schermo per ridimensionarle" -#: dist/prefs.js:1017 +#: dist/prefs.js:283 msgid "Drag against top edge to maximize window" msgstr "Trascina contro il bordo superiore per ingrandire la finestra" -#: dist/prefs.js:1018 +#: dist/prefs.js:284 msgid "Drag windows against the top edge to maximize them" msgstr "Trascina le finestre contro il bordo superiore per massimizzarle" -#: dist/prefs.js:1027 +#: dist/prefs.js:293 msgid "Quarter tiling activation area" msgstr "Area di attivazione della divisione in quarti" -#: dist/prefs.js:1028 +#: dist/prefs.js:294 #, javascript-format msgid "Activation area to trigger quarter tiling (%% of the screen)" msgstr "" "Area di attivazione per attivare la divisione in quarti (%% dello schermo)" -#: dist/prefs.js:1044 +#: dist/prefs.js:310 msgid "Edge tiling offset" msgstr "Distanza massima dal bordo" -#: dist/prefs.js:1045 +#: dist/prefs.js:311 msgid "Offset from the screen edge to trigger edge tiling (in pixels)" msgstr "" "Distanza massima dal bordo dello schermo, in pixels, per attivare la " "divisione in quarti" -#: dist/prefs.js:1062 +#: dist/prefs.js:333 msgid "Windows suggestions" msgstr "Finestre suggerite" -#: dist/prefs.js:1063 +#: dist/prefs.js:334 msgid "Enable and disable windows suggestions" msgstr "Abilita e disabilita il suggerimento delle finestre" -#: dist/prefs.js:1068 +#: dist/prefs.js:339 msgid "Enable window suggestions for the tiling system" msgstr "Abilita il suggerimento delle finestre quando usi il sistema di tiling" -#: dist/prefs.js:1070 +#: dist/prefs.js:341 msgid "" "Provides smart suggestions to fill empty tiles when using the tiling system" msgstr "" "Fornisce suggerimenti intelligenti per riempire i riquadri vuoti quando " "viene usato il sistema di tiling" -#: dist/prefs.js:1076 +#: dist/prefs.js:347 msgid "Enable window suggestions for the snap assistant" msgstr "Abilita il suggerimento delle finestre quando usi lo snap assistant" -#: dist/prefs.js:1078 +#: dist/prefs.js:349 msgid "" "Offers suggestions to populate empty tiles when using the snap assistant" msgstr "" "Offre suggerimenti per popolare i riquadri vuoti quando viene usato lo snap " "assistant" -#: dist/prefs.js:1084 +#: dist/prefs.js:355 msgid "Enable window suggestions for screen edge snapping" msgstr "" "Abilita il suggerimento delle finestre quando usi i bordi attivi dello " "schermo" -#: dist/prefs.js:1086 +#: dist/prefs.js:357 msgid "Suggests windows to occupy empty tiles when snapping to screen edges" msgstr "" "Suggerisce le finestre per occupare i riquadri vuoti quando usi i bordi " "attivi dello schermo" -#: dist/prefs.js:1092 +#: dist/prefs.js:363 msgid "Layouts" msgstr "Layouts" -#: dist/prefs.js:1093 +#: dist/prefs.js:364 msgid "Configure the layouts of Tiling Shell" msgstr "Configura i layout di Tiling Shell" -#: dist/prefs.js:1097 dist/prefs.js:1098 +#: dist/prefs.js:368 dist/prefs.js:369 msgid "Edit layouts" msgstr "Modifica layouts" -#: dist/prefs.js:1099 +#: dist/prefs.js:370 msgid "Open the layouts editor" msgstr "Apre l'editor dei layouts" -#: dist/prefs.js:1104 dist/prefs.js:1105 dist/prefs.js:1109 +#: dist/prefs.js:375 dist/prefs.js:376 dist/prefs.js:380 msgid "Export layouts" msgstr "Esporta layouts" -#: dist/prefs.js:1106 +#: dist/prefs.js:377 msgid "Export layouts to a file" msgstr "Esporta layouts in un file" -#: dist/prefs.js:1112 dist/prefs.js:1496 +#: dist/prefs.js:383 dist/prefs.js:767 msgid "Save" msgstr "Salva" -#: dist/prefs.js:1113 dist/prefs.js:1167 dist/prefs.js:1497 dist/prefs.js:1552 +#: dist/prefs.js:384 dist/prefs.js:438 dist/prefs.js:768 dist/prefs.js:823 msgid "Cancel" msgstr "Annulla" -#: dist/prefs.js:1158 dist/prefs.js:1159 +#: dist/prefs.js:429 dist/prefs.js:430 msgid "Import layouts" msgstr "Importa layouts" -#: dist/prefs.js:1160 +#: dist/prefs.js:431 msgid "Import layouts from a file" msgstr "Importa layouts da un file" -#: dist/prefs.js:1163 +#: dist/prefs.js:434 msgid "Select layouts file" msgstr "Seleziona file di layouts" -#: dist/prefs.js:1166 dist/prefs.js:1551 +#: dist/prefs.js:437 dist/prefs.js:822 msgid "Open" msgstr "Apri" -#: dist/prefs.js:1214 dist/prefs.js:1215 +#: dist/prefs.js:485 dist/prefs.js:486 msgid "Reset layouts" msgstr "Ripristina layouts" -#: dist/prefs.js:1216 +#: dist/prefs.js:487 msgid "Bring back the default layouts" msgstr "Ripristina i layouts predefiniti" -#: dist/prefs.js:1229 +#: dist/prefs.js:500 msgid "Keybindings" msgstr "Scorciatoie da tastiera" -#: dist/prefs.js:1231 +#: dist/prefs.js:502 msgid "Use hotkeys to perform actions on the focused window" msgstr "" "Usa i tasti di scelta rapida per eseguire azioni sulla finestra selezionata" -#: dist/prefs.js:1249 +#: dist/prefs.js:520 msgid "Move window to right tile" msgstr "Sposta la finestra nel riquadro destro" -#: dist/prefs.js:1251 +#: dist/prefs.js:522 msgid "Move the focused window to the tile on its right" msgstr "Sposta la finestra selezionata sul riquadro alla sua destra" -#: dist/prefs.js:1260 +#: dist/prefs.js:531 msgid "Move window to left tile" msgstr "Sposta la finestra nel riquadro sinistro" -#: dist/prefs.js:1261 +#: dist/prefs.js:532 msgid "Move the focused window to the tile on its left" msgstr "Sposta la finestra selezionata sul riquadro alla sua sinistra" -#: dist/prefs.js:1267 +#: dist/prefs.js:538 msgid "Move window to tile above" msgstr "Sposta la finestra nel riquadro sopra" -#: dist/prefs.js:1268 +#: dist/prefs.js:539 msgid "Move the focused window to the tile above" msgstr "Sposta la finestra selezionata sul riquadro sopra" -#: dist/prefs.js:1274 +#: dist/prefs.js:545 msgid "Move window to tile below" msgstr "Sposta la finestra sul riquadro sottostante" -#: dist/prefs.js:1275 +#: dist/prefs.js:546 msgid "Move the focused window to the tile below" msgstr "Sposta la finestra selezionata sul riquadro sottostante" -#: dist/prefs.js:1281 +#: dist/prefs.js:552 msgid "Span window to right tile" msgstr "Estendi la finestra al riquadro destro" -#: dist/prefs.js:1282 +#: dist/prefs.js:553 msgid "Span the focused window to the tile on its right" msgstr "Extendi la finestra selezionata sul riquadro alla sua destra" -#: dist/prefs.js:1288 +#: dist/prefs.js:559 msgid "Span window to left tile" msgstr "Estendi la finestra al riquadro sinistro" -#: dist/prefs.js:1289 +#: dist/prefs.js:560 msgid "Span the focused window to the tile on its left" msgstr "Estendi la finestra selezionata al riquadro alla sua sinistra" -#: dist/prefs.js:1295 +#: dist/prefs.js:566 msgid "Span window above" msgstr "Estendi finestra verso l'alto" -#: dist/prefs.js:1296 +#: dist/prefs.js:567 msgid "Span the focused window to the tile above" msgstr "Estendi la finestra selezionata al riquadro in alto" -#: dist/prefs.js:1302 +#: dist/prefs.js:573 msgid "Span window down" msgstr "Estendi finestra verso il basso" -#: dist/prefs.js:1303 +#: dist/prefs.js:574 msgid "Span the focused window to the tile below" msgstr "Estendi la finestra selezionata al riquadro sottostante" -#: dist/prefs.js:1309 +#: dist/prefs.js:580 msgid "Span window to all tiles" msgstr "Estendi la finestra a tutti i riquadri" -#: dist/prefs.js:1310 +#: dist/prefs.js:581 msgid "Span the focused window to all the tiles" msgstr "Estendi la finestra selezionata a tutti i riquadri" -#: dist/prefs.js:1316 +#: dist/prefs.js:587 msgid "Untile focused window" msgstr "Sgancia la finestra selezionata" -#: dist/prefs.js:1324 +#: dist/prefs.js:595 msgid "Move window to the center" msgstr "Sposta la finestra al centro" -#: dist/prefs.js:1326 +#: dist/prefs.js:597 msgid "Move the focused window to the center of the screen" msgstr "Sposta la finestra selezionata al centro dello schermo" -#: dist/prefs.js:1335 +#: dist/prefs.js:606 msgid "Focus window to the right" msgstr "Seleziona finestra a destra" -#: dist/prefs.js:1337 +#: dist/prefs.js:608 msgid "Focus the window to the right of the current focused window" msgstr "Seleziona la finestra a destra della finestra attualmente selezionata" -#: dist/prefs.js:1344 +#: dist/prefs.js:615 msgid "Focus window to the left" msgstr "Seleziona finestra a sinistra" -#: dist/prefs.js:1345 +#: dist/prefs.js:616 msgid "Focus the window to the left of the current focused window" msgstr "" "Seleziona la finestra a sinistra della finestra attualmente selezionata" -#: dist/prefs.js:1351 +#: dist/prefs.js:622 msgid "Focus window above" msgstr "Seleziona finestra in alto" -#: dist/prefs.js:1352 +#: dist/prefs.js:623 msgid "Focus the window above the current focused window" msgstr "Seleziona la finestra in alto alla finestra attualmente selezionata" -#: dist/prefs.js:1358 +#: dist/prefs.js:629 msgid "Focus window below" msgstr "Seleziona la finestra in basso" -#: dist/prefs.js:1359 +#: dist/prefs.js:630 msgid "Focus the window below the current focused window" msgstr "Seleziona la finestra in basso alla finestra attualmente selezionata" -#: dist/prefs.js:1365 +#: dist/prefs.js:636 msgid "Focus next window" msgstr "Seleziona finestra successiva" -#: dist/prefs.js:1366 +#: dist/prefs.js:637 msgid "Focus the window next to the current focused window" msgstr "Seleziona la finestra successiva alla finestra attualmente selezionata" -#: dist/prefs.js:1372 +#: dist/prefs.js:643 msgid "Focus previous window" msgstr "Seleziona finestra precedente" -#: dist/prefs.js:1373 +#: dist/prefs.js:644 msgid "Focus the window prior to the current focused window" msgstr "Seleziona la finestra precedente alla finestra attualmente selezionata" -#: dist/prefs.js:1379 +#: dist/prefs.js:650 msgid "Highlight focused window" msgstr "Evidenzia la finestra focalizzata" -#: dist/prefs.js:1381 +#: dist/prefs.js:652 msgid "Minimize all the other windows and show only the focused window" msgstr "" "Riduci a icona tutte le altre finestre e mostra solo la finestra focalizzata" -#: dist/prefs.js:1388 +#: dist/prefs.js:659 msgid "Cycle layouts" msgstr "Scorri layouts" -#: dist/prefs.js:1389 +#: dist/prefs.js:660 msgid "Cycle through available workspace layouts" msgstr "Scorri i layout dell'area di lavoro disponibili" -#: dist/prefs.js:1415 +#: dist/prefs.js:686 msgid "View and Customize all the Shortcuts" msgstr "Visualizza e personalizza tutte le scorciatoie" -#: dist/prefs.js:1443 dist/prefs.js:1444 +#: dist/prefs.js:714 dist/prefs.js:715 msgid "View and Customize Shortcuts" msgstr "Visualizza e personalizza le scorciatoie" -#: dist/prefs.js:1466 +#: dist/prefs.js:737 msgid "Enable next/previous window focus to wrap around" msgstr "Permetti al focus del successore/precedente di ricominciare da capo" -#: dist/prefs.js:1468 +#: dist/prefs.js:739 msgid "When focusing next or previous window, wrap around at the window edge" msgstr "" "Quando passi il focus alla finestra successiva o precedente, ricomincia da " "capo se non ci sono altre finestre" -#: dist/prefs.js:1474 +#: dist/prefs.js:745 msgid "Restrict directional focus to tiled windows" msgstr "Limita la messa a fuoco direzionale alle finestre affiancate" -#: dist/prefs.js:1476 +#: dist/prefs.js:747 msgid "When using directional focus navigation, only consider tiled windows" msgstr "" "Quando si utilizza la navigazione con messa a fuoco direzionale, " "consideraresolo le finestre affiancate" -#: dist/prefs.js:1481 +#: dist/prefs.js:752 msgid "Import, export and reset" msgstr "Importa, esporta e resetta" -#: dist/prefs.js:1483 +#: dist/prefs.js:754 msgid "Import, export and reset the settings of Tiling Shell" msgstr "Importa, esporta e resetta le impostazioni di Tiling Shell" -#: dist/prefs.js:1488 dist/prefs.js:1489 +#: dist/prefs.js:759 dist/prefs.js:760 msgid "Export settings" msgstr "Esporta le impostazioni" -#: dist/prefs.js:1490 +#: dist/prefs.js:761 msgid "Export settings to a file" msgstr "Esporta le impostazioni in un file" -#: dist/prefs.js:1493 +#: dist/prefs.js:764 msgid "Export settings to a text file" msgstr "Esporta le impostazioni in un file di testo" -#: dist/prefs.js:1500 +#: dist/prefs.js:771 msgid "Text file" msgstr "File di testo" -#: dist/prefs.js:1543 dist/prefs.js:1544 +#: dist/prefs.js:814 dist/prefs.js:815 msgid "Import settings" msgstr "Importa le impostazioni" -#: dist/prefs.js:1545 +#: dist/prefs.js:816 msgid "Import settings from a file" msgstr "Importa le impostazioni da un file" -#: dist/prefs.js:1548 +#: dist/prefs.js:819 msgid "Select a text file to import from" msgstr "Seleziona un file di testo dal quale importare le impostazioni" -#: dist/prefs.js:1590 dist/prefs.js:1591 +#: dist/prefs.js:861 dist/prefs.js:862 msgid "Reset settings" msgstr "Resetta le impostazioni" -#: dist/prefs.js:1592 +#: dist/prefs.js:863 msgid "Bring back the default settings" msgstr "Ripristina le impostazioni predefinite" -#: dist/prefs.js:1607 +#: dist/prefs.js:878 msgid "Donate on ko-fi" msgstr "Fai una donazione" -#: dist/prefs.js:1613 +#: dist/prefs.js:884 msgid "Report a bug" msgstr "Segnala un bug" -#: dist/prefs.js:1619 +#: dist/prefs.js:890 msgid "Request a feature" msgstr "Richiedi una funzionalità" -#: dist/prefs.js:1627 +#: dist/prefs.js:898 msgid "Have issues, you want to suggest a new feature or contribute?" msgstr "Hai problemi, vuoi suggerire una nuova funzionalità o contribuire?" -#: dist/prefs.js:1634 +#: dist/prefs.js:905 msgid "Open a new issue on" msgstr "Apri una nuova issue su" -#: dist/prefs.js:1814 +#: dist/prefs.js:970 +msgid "Choose how windows snap to screen edges" +msgstr "Scegli come le finestre vengono mosse verso i bordi dello schermo" + +#: dist/prefs.js:985 +msgid "Default" +msgstr "Default" + +#: dist/prefs.js:986 +#, fuzzy +msgid "Follow quarters or screen halves" +msgstr "Sposta nel riquadro migliore" + +#: dist/prefs.js:991 +msgid "Adaptive" +msgstr "Adattivo" + +#: dist/prefs.js:992 +msgid "Follow corners of selected layout or screen halves" +msgstr "Segui gli angoli del layout selezionato o la metà dello schermo" + +#: dist/prefs.js:997 +msgid "Granular" +msgstr "Granulare" + +#: dist/prefs.js:998 +msgid "Follow currently selected layout" +msgstr "Segui il layout selezionato" + +#: dist/prefs.js:1187 msgid "Choose custom color" -msgstr "" +msgstr "Scegli colore personalizzato" -#: dist/prefs.js:1815 +#: dist/prefs.js:1188 msgid "Use system accent color" -msgstr "" +msgstr "Usa il colore predefinito del sistema" -#: dist/prefs.js:1866 dist/prefs.js:1889 +#: dist/prefs.js:1241 dist/prefs.js:1267 msgid "New accelerator…" msgstr "Nuova scorciatoia" -#: dist/prefs.js:1892 +#: dist/prefs.js:1270 msgid "Use Backspace to clear" msgstr "Usa Backspace per eliminare" -#: dist/extension.js:5809 -msgid "Edit Layouts" -msgstr "Modifica layout" +#~ msgid "Edit Layouts" +#~ msgstr "Modifica layout" -#: dist/extension.js:5819 -msgid "New Layout" -msgstr "Nuovo layout" +#~ msgid "New Layout" +#~ msgstr "Nuovo layout" -#: dist/extension.js:6004 -msgid "to split a tile" -msgstr "per dividere un riquadro" +#~ msgid "to split a tile" +#~ msgstr "per dividere un riquadro" -#: dist/extension.js:6043 -msgid "to split a tile vertically" -msgstr "per dividere un riquadro verticalmente" +#~ msgid "to split a tile vertically" +#~ msgstr "per dividere un riquadro verticalmente" -#: dist/extension.js:6063 -msgid "to delete a tile" -msgstr "per cancellare un riquadro" +#~ msgid "to delete a tile" +#~ msgstr "per cancellare un riquadro" -#: dist/extension.js:6087 -msgid "use the indicator button to save or cancel" -msgstr "usa l'icona sul pannello superiore per salvare o annullare" +#~ msgid "use the indicator button to save or cancel" +#~ msgstr "usa l'icona sul pannello superiore per salvare o annullare" #~ msgid "Menu" #~ msgstr "Menu" @@ -688,9 +712,6 @@ msgstr "usa l'icona sul pannello superiore per salvare o annullare" #~ msgid "Start editing" #~ msgstr "Inizia la modifica" -#~ msgid "Move to best tile" -#~ msgstr "Sposta nel riquadro migliore" - #~ msgid "Move to leftmost tile" #~ msgstr "Sposta nel riquadro più a sinistra" diff --git a/translations/ka.po b/translations/ka.po new file mode 100644 index 00000000..60e2492f --- /dev/null +++ b/translations/ka.po @@ -0,0 +1,681 @@ +# Georgian translation for tilingshell +# Copyright (c) 2025 tilingshell's authors +# This file is distributed under the same license as the tilingshell package. +# Ekaterine Papava , 2025. +# +msgid "" +msgstr "" +"Project-Id-Version: tilingshell\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-01-03 22:57+0100\n" +"PO-Revision-Date: 2025-12-13 06:31+0100\n" +"Last-Translator: Ekaterine Papava \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.8\n" + +#: dist/prefs.js:59 +msgid "General" +msgstr "ზოგადი" + +#: dist/prefs.js:64 +msgid "Appearance" +msgstr "გარეგნობა" + +#: dist/prefs.js:65 +msgid "Configure the appearance of Tiling Shell" +msgstr "Tiling Shell-ის გარეგნობის მორგება" + +#: dist/prefs.js:70 +msgid "Show Indicator" +msgstr "მაჩვენებლის ვერსია" + +#: dist/prefs.js:71 +msgid "Whether to show the panel indicator" +msgstr "ნაჩვენები იქნება თუ არა პანელის მაჩვენებელი" + +#: dist/prefs.js:76 +msgid "Inner gaps" +msgstr "შიდა გამოტოვებები" + +#: dist/prefs.js:77 +msgid "Gaps between windows" +msgstr "გამოტოვებები ფანჯრებს შორის" + +#: dist/prefs.js:82 +msgid "Outer gaps" +msgstr "გარე გამოტოვებები" + +#: dist/prefs.js:83 +msgid "Gaps between a window and the monitor borders" +msgstr "გამოტოვებები ფანჯრებსა და ეკრანის საზღვრებს შორის" + +#: dist/prefs.js:87 +msgid "Blur (experimental feature)" +msgstr "გაბუნდოვნება (ექსპერიმენტული ფუნქცია)" + +#: dist/prefs.js:89 +msgid "Apply blur effect to Snap Assistant and tile previews" +msgstr "" +"ბუნდოვნების ეფექტის გადატარება მიმაგრების დამხმარეზე და ფილის მინიატურებზე" + +#: dist/prefs.js:95 +msgid "Snap Assistant threshold" +msgstr "მიმაგრების დამხმარის ზღვარი" + +#: dist/prefs.js:97 +msgid "Minimum distance from the Snap Assistant to the pointer to open it" +msgstr "მინიმალური დაშორება მიმაგრების დამხმარიდან კურსორამდე, მის გასახსნელად" + +#: dist/prefs.js:106 +msgid "Snap Assistant" +msgstr "მიმაგრების დამხმარე" + +#: dist/prefs.js:107 +msgid "Apply blur effect to Snap Assistant" +msgstr "ბუნდოვნების ეფექტის გადატარება მიმაგრების დამხმარეზე" + +#: dist/prefs.js:113 +msgid "Selected tile preview" +msgstr "არჩეული ფილის მინიატურა" + +#: dist/prefs.js:114 +msgid "Apply blur effect to selected tile preview" +msgstr "ბუნდოვნების ეფექტის გადატარება მონიშნული ფილის მინიატურაზე" + +#: dist/prefs.js:118 +msgid "Window border" +msgstr "ფანჯარის ჩარჩო" + +#: dist/prefs.js:119 dist/prefs.js:126 +msgid "Show a border around focused window" +msgstr "საზღვრის დახატვა ფოკუსის მქონე ფანჯრის გარშემო" + +#: dist/prefs.js:125 +msgid "Enable" +msgstr "ჩართვა" + +#: dist/prefs.js:132 +msgid "Smart border radius" +msgstr "ჭკვიანი საზღვრის რადიუსი" + +#: dist/prefs.js:133 +#, fuzzy +msgid "Dynamically adapt to the window's actual border radius" +msgstr "ფანჯრის მიმდინარე საზღვრის რადიუსის დინამიკური მორგება" + +#: dist/prefs.js:139 +msgid "Width" +msgstr "სიგანე" + +#: dist/prefs.js:140 +msgid "The size of the border" +msgstr "საზღვრის ზომა" + +#: dist/prefs.js:149 +msgid "Border color" +msgstr "საზღვრის ფერი" + +#: dist/prefs.js:150 +msgid "Choose the color of the border" +msgstr "საზღვრის ფერის არჩევა" + +#: dist/prefs.js:166 +msgid "Animations" +msgstr "ანიმაციები" + +#: dist/prefs.js:167 +msgid "Customize animations" +msgstr "ანიმაციების მორგება" + +#: dist/prefs.js:173 +msgid "Snap assistant animation time" +msgstr "მიმაგრების დამხმარის ანიმაციის დრო" + +#: dist/prefs.js:174 +msgid "The snap assistant animation time in milliseconds" +msgstr "მიმაგრების დამხმარის ანიმაციის დრო მილიწამებში" + +#: dist/prefs.js:182 +msgid "Tiles animation time" +msgstr "ფილების ანიმაციის დრო" + +#: dist/prefs.js:183 +msgid "The tiles animation time in milliseconds" +msgstr "ფილების ანიმაციის დრო მილიწამებში" + +#: dist/prefs.js:189 +msgid "Behaviour" +msgstr "ქცევა" + +#: dist/prefs.js:190 +msgid "Configure the behaviour of Tiling Shell" +msgstr "Tiling Shell-ის ქცევის მორგება" + +#: dist/prefs.js:195 +msgid "Enable Snap Assistant" +msgstr "მიმაგრების დამხმარის ჩართვა" + +#: dist/prefs.js:196 +msgid "Move the window on top of the screen to snap assist it" +msgstr "" +"გადაიტანეთ ფანჯარა ეკრანის ზედა მხარეს მიმაგრების დამხმარის გამოსაძახებლად" + +#: dist/prefs.js:201 +msgid "Enable Tiling System" +msgstr "ფილების სისტემის ჩართვა" + +#: dist/prefs.js:202 +msgid "Hold the activation key while moving a window to tile it" +msgstr "გეჭიროთ აქტივაციის ღილაკზე ფანჯრის მოძრაობისას მის მოსათავსებლად" + +#: dist/prefs.js:210 +msgid "Tiling System deactivation key" +msgstr "ფილების სისტემის დეაქტივაციის ღილაკი" + +#: dist/prefs.js:212 +msgid "" +"Hold the deactivation key while moving a window to deactivate the tiling " +"system" +msgstr "" +"გეჭიროთ დეაქტივაციის ღილაკზე ფანჯრის მოძრაობისას ფილების სისტემის " +"დეაქტივაციისთვის" + +#: dist/prefs.js:220 +msgid "Span multiple tiles" +msgstr "გაწელვა ერთზე მეტ ფილაზე" + +#: dist/prefs.js:221 +msgid "Hold the activation key to span multiple tiles" +msgstr "გეჭიროთ აქტივაციის ღილაკზე ერთზე მეტ ფილაზე გასაწელად" + +#: dist/prefs.js:230 +msgid "Enable Auto Tiling" +msgstr "ავტოფილების ჩართვა" + +#: dist/prefs.js:231 +msgid "Automatically tile new windows to the best tile" +msgstr "ახალი ფანჯრების ავტომატური განთავსება საუკეთესო ფილაზე" + +#: dist/prefs.js:236 +msgid "Enable auto-resize of the complementing tiled windows" +msgstr "მეზობელი ფილების ზომის ავტომატური შეცვლის ცართვა" + +#: dist/prefs.js:238 +msgid "" +"When a tiled window is resized, auto-resize the other tiled windows near it" +msgstr "" +"როცა ფანჯარას ზომა შეეცვლება, მისო ახლომდებარე ფანჯრების ზომის ავტომატური " +"შეცვლა" + +#: dist/prefs.js:244 +msgid "Restore window size" +msgstr "ფანჯრის ზომის აღდგენა" + +#: dist/prefs.js:246 +msgid "Whether to restore the windows to their original size when untiled" +msgstr "აღდგება თუ არა ფანჯრები მათ ორიგინალ ზომებამდე მათი ფილიდან მოხსნისას" + +#: dist/prefs.js:252 +msgid "Add snap assistant and auto-tile buttons to window menu" +msgstr "" + +#: dist/prefs.js:254 +msgid "" +"Add snap assistant and auto-tile buttons in the menu that shows up when you " +"right click on a window title" +msgstr "" + +#: dist/prefs.js:260 +msgid "Add tiled windows to ALT+TAB menu" +msgstr "" + +#: dist/prefs.js:262 +msgid "" +"Add the tiled windows to the ALT+TAB menu to open all the tiled windows at " +"once" +msgstr "" + +#: dist/prefs.js:267 +msgid "Screen Edges" +msgstr "ეკრანის კიდეები" + +#: dist/prefs.js:269 +msgid "" +"Drag windows against the top, left and right screen edges to resize them" +msgstr "" + +#: dist/prefs.js:283 +msgid "Drag against top edge to maximize window" +msgstr "" + +#: dist/prefs.js:284 +msgid "Drag windows against the top edge to maximize them" +msgstr "" + +#: dist/prefs.js:293 +msgid "Quarter tiling activation area" +msgstr "მეოთხედი ფილის აქტივაციის არე" + +#: dist/prefs.js:294 +#, javascript-format +msgid "Activation area to trigger quarter tiling (%% of the screen)" +msgstr "" + +#: dist/prefs.js:310 +msgid "Edge tiling offset" +msgstr "წიბოს ფილის წანაცვლება" + +#: dist/prefs.js:311 +msgid "Offset from the screen edge to trigger edge tiling (in pixels)" +msgstr "" + +#: dist/prefs.js:333 +msgid "Windows suggestions" +msgstr "ფანჯრის მინიშნებები" + +#: dist/prefs.js:334 +msgid "Enable and disable windows suggestions" +msgstr "ფანჯრის მინიშნებების ჩართვა და გამორთვა" + +#: dist/prefs.js:339 +msgid "Enable window suggestions for the tiling system" +msgstr "ფანჯრის მინიშნებების ჩართვა ფილების სისტემისთვის" + +#: dist/prefs.js:341 +msgid "" +"Provides smart suggestions to fill empty tiles when using the tiling system" +msgstr "" + +#: dist/prefs.js:347 +msgid "Enable window suggestions for the snap assistant" +msgstr "" + +#: dist/prefs.js:349 +msgid "" +"Offers suggestions to populate empty tiles when using the snap assistant" +msgstr "" + +#: dist/prefs.js:355 +msgid "Enable window suggestions for screen edge snapping" +msgstr "" + +#: dist/prefs.js:357 +msgid "Suggests windows to occupy empty tiles when snapping to screen edges" +msgstr "" + +#: dist/prefs.js:363 +msgid "Layouts" +msgstr "განლაგებები" + +#: dist/prefs.js:364 +msgid "Configure the layouts of Tiling Shell" +msgstr "Tiling Shell-ის განლაგებების მორგება" + +#: dist/prefs.js:368 dist/prefs.js:369 +msgid "Edit layouts" +msgstr "განლაგებების ჩასწორება" + +#: dist/prefs.js:370 +msgid "Open the layouts editor" +msgstr "განლაგებების რედაქტორის გახსნა" + +#: dist/prefs.js:375 dist/prefs.js:376 dist/prefs.js:380 +msgid "Export layouts" +msgstr "განლაგებების გატანა" + +#: dist/prefs.js:377 +msgid "Export layouts to a file" +msgstr "განლაგებების გატანა ფაილში" + +#: dist/prefs.js:383 dist/prefs.js:767 +msgid "Save" +msgstr "შენახვა" + +#: dist/prefs.js:384 dist/prefs.js:438 dist/prefs.js:768 dist/prefs.js:823 +msgid "Cancel" +msgstr "გაუქმება" + +#: dist/prefs.js:429 dist/prefs.js:430 +msgid "Import layouts" +msgstr "განლაგებების შემოტანა" + +#: dist/prefs.js:431 +msgid "Import layouts from a file" +msgstr "განლაგებების შემოტანა ფაილიდან" + +#: dist/prefs.js:434 +msgid "Select layouts file" +msgstr "აირჩიეთ განლაგებების ფაილი" + +#: dist/prefs.js:437 dist/prefs.js:822 +msgid "Open" +msgstr "გახსნა" + +#: dist/prefs.js:485 dist/prefs.js:486 +msgid "Reset layouts" +msgstr "განლაგებების ჩამოყრა" + +#: dist/prefs.js:487 +msgid "Bring back the default layouts" +msgstr "ნაგულისხმევი განლაგებების დაბრუნება" + +#: dist/prefs.js:500 +msgid "Keybindings" +msgstr "კლავიატურის მალსახმობები" + +#: dist/prefs.js:502 +msgid "Use hotkeys to perform actions on the focused window" +msgstr "" +"გამოიყენეთ კლავიატურის მალსახმობები ფოკუსის მქონე ფანჯარაზე ქმედებების " +"განსახორციელებლად" + +#: dist/prefs.js:520 +msgid "Move window to right tile" +msgstr "ფანჯრის გადატანა მარჯვენა ფილაზე" + +#: dist/prefs.js:522 +msgid "Move the focused window to the tile on its right" +msgstr "ფოკუსის მქონე ფანჯრის გადატანა ფილაზე მარჯვნივ" + +#: dist/prefs.js:531 +msgid "Move window to left tile" +msgstr "ფანჯრის გადატანა მარცხენა ფილაზე" + +#: dist/prefs.js:532 +msgid "Move the focused window to the tile on its left" +msgstr "ფოკუსის მქონე ფანჯრის გადატანა ფილაზე მარცხნივ" + +#: dist/prefs.js:538 +msgid "Move window to tile above" +msgstr "ფანჯრის გადატანა ზედა ფილაზე" + +#: dist/prefs.js:539 +msgid "Move the focused window to the tile above" +msgstr "ფოკუსის მქონე ფანჯრის გადატანა ფილაზე ზემოთ" + +#: dist/prefs.js:545 +msgid "Move window to tile below" +msgstr "ფანჯრის გადატანა ქვედა ფილაზე" + +#: dist/prefs.js:546 +msgid "Move the focused window to the tile below" +msgstr "ფოკუსის მქონე ფანჯრის გადატანა ფილაზე ქვემოთ" + +#: dist/prefs.js:552 +msgid "Span window to right tile" +msgstr "ფანჯრის გაწელვა მარჯვენა ფილამდე" + +#: dist/prefs.js:553 +msgid "Span the focused window to the tile on its right" +msgstr "ფოკუსის მქონე ფანჯრის გაწელვა ფილამდე მარჯვნივ" + +#: dist/prefs.js:559 +msgid "Span window to left tile" +msgstr "ფანჯრის გაწელვა მარცხენა ფილამდე" + +#: dist/prefs.js:560 +msgid "Span the focused window to the tile on its left" +msgstr "ფოკუსის მქონე ფანჯრის გაწელვა ფილამდე მარცხნივ" + +#: dist/prefs.js:566 +msgid "Span window above" +msgstr "ფანჯრის გაწელვა ზედა ფილამდე" + +#: dist/prefs.js:567 +msgid "Span the focused window to the tile above" +msgstr "ფოკუსის მქონე ფანჯრის გაწელვა ფილამდე ზემოთ" + +#: dist/prefs.js:573 +msgid "Span window down" +msgstr "ფანჯრის გაწელვა ქვედა ფილამდე" + +#: dist/prefs.js:574 +msgid "Span the focused window to the tile below" +msgstr "ფოკუსის მქონე ფანჯრის გაწელვა ფილამდე ქვემოთ" + +#: dist/prefs.js:580 +msgid "Span window to all tiles" +msgstr "ფანჯრის გაწელვა ყველა ფილამდე" + +#: dist/prefs.js:581 +msgid "Span the focused window to all the tiles" +msgstr "ფოკუსის მქონე ფანჯრის გაწელვა ყველა ფილამდე" + +#: dist/prefs.js:587 +msgid "Untile focused window" +msgstr "ფოკუსის მქონე ფანჯრის ფილიდან მოცილება" + +#: dist/prefs.js:595 +msgid "Move window to the center" +msgstr "ფანჯრის გადატანა ცენტრისკენ" + +#: dist/prefs.js:597 +msgid "Move the focused window to the center of the screen" +msgstr "" + +#: dist/prefs.js:606 +msgid "Focus window to the right" +msgstr "ფოკუსის გადართვა მარჯვენა ფანჯარაზე" + +#: dist/prefs.js:608 +msgid "Focus the window to the right of the current focused window" +msgstr "" +"ფოკუსის გადატანა ამჟამად ფოკუსის მქონე ფანჯრიდან მარჯვენა მხარეს არსებულ " +"ფანჯარაზე" + +#: dist/prefs.js:615 +msgid "Focus window to the left" +msgstr "ფოკუსის გადართვა მარცხენა ფანჯარაზე" + +#: dist/prefs.js:616 +msgid "Focus the window to the left of the current focused window" +msgstr "" +"ფოკუსის გადატანა ამჟამად ფოკუსის მქონე ფანჯრიდან მარცხენა მხარეს არსებულ " +"ფანჯარაზე" + +#: dist/prefs.js:622 +msgid "Focus window above" +msgstr "ფოკუსის გადართვა ზედა ფანჯარაზე" + +#: dist/prefs.js:623 +msgid "Focus the window above the current focused window" +msgstr "" +"ფოკუსის გადატანა ამჟამად ფოკუსის მქონე ფანჯრიდან ზემო მხარეს არსებულ " +"ფანჯარაზე" + +#: dist/prefs.js:629 +msgid "Focus window below" +msgstr "ფოკუსის გადართვა ქვედა ფანჯარაზე" + +#: dist/prefs.js:630 +msgid "Focus the window below the current focused window" +msgstr "" +"ფოკუსის გადატანა ამჟამად ფოკუსის მქონე ფანჯრიდან ქვემო მხარეს არსებულ " +"ფანჯარაზე" + +#: dist/prefs.js:636 +msgid "Focus next window" +msgstr "ფოკუსის გადართვა შემდეგ ფანჯარაზე" + +#: dist/prefs.js:637 +msgid "Focus the window next to the current focused window" +msgstr "ფოკუსის გადატანა ამჟამად ფოკუსის მქონე ფანჯრიდან შემდეგ ფანჯარაზე" + +#: dist/prefs.js:643 +msgid "Focus previous window" +msgstr "ფოკუსის გადართვა წინა ფანჯარაზე" + +#: dist/prefs.js:644 +msgid "Focus the window prior to the current focused window" +msgstr "ფოკუსის გადატანა ამჟამად ფოკუსის მქონე ფანჯრიდან წინა ფანჯარაზე" + +#: dist/prefs.js:650 +msgid "Highlight focused window" +msgstr "ფოკუსის მქონე ფანჯრის გამოკვეთა" + +#: dist/prefs.js:652 +msgid "Minimize all the other windows and show only the focused window" +msgstr "ყველა სხვა ფანჯრის ჩაკეცვა და, მხოლოდ, ფოკუსის მქონე ფანჯრის ჩვენება" + +#: dist/prefs.js:659 +msgid "Cycle layouts" +msgstr "გადართვა განლაგებების შორის" + +#: dist/prefs.js:660 +msgid "Cycle through available workspace layouts" +msgstr "წრიული გადართვა ხელმისაწვდომი სამუშაო სივრცის განლაგებების შორის" + +#: dist/prefs.js:686 +msgid "View and Customize all the Shortcuts" +msgstr "ნახეთ და მოირგეთ ყველა მალსახმობი" + +#: dist/prefs.js:714 dist/prefs.js:715 +msgid "View and Customize Shortcuts" +msgstr "მალსახმობების ნახვა და მორცება" + +#: dist/prefs.js:737 +msgid "Enable next/previous window focus to wrap around" +msgstr "" + +#: dist/prefs.js:739 +msgid "When focusing next or previous window, wrap around at the window edge" +msgstr "" + +#: dist/prefs.js:745 +msgid "Restrict directional focus to tiled windows" +msgstr "" + +#: dist/prefs.js:747 +msgid "When using directional focus navigation, only consider tiled windows" +msgstr "" + +#: dist/prefs.js:752 +msgid "Import, export and reset" +msgstr "შემოტანა, გატანა და ჩამოყრა" + +#: dist/prefs.js:754 +msgid "Import, export and reset the settings of Tiling Shell" +msgstr "Tiling Shell-ის პარამეტრების შემოტანა, გატანა და ჩამოყრა" + +#: dist/prefs.js:759 dist/prefs.js:760 +msgid "Export settings" +msgstr "გატანის მორგება" + +#: dist/prefs.js:761 +msgid "Export settings to a file" +msgstr "პარამეტრების გატანა ფაილში" + +#: dist/prefs.js:764 +msgid "Export settings to a text file" +msgstr "პარამეტრების გატანა ტექსტურ ფაილში" + +#: dist/prefs.js:771 +msgid "Text file" +msgstr "ტექსტური ფაილი" + +#: dist/prefs.js:814 dist/prefs.js:815 +msgid "Import settings" +msgstr "პარამეტრების შემოტანა" + +#: dist/prefs.js:816 +msgid "Import settings from a file" +msgstr "პარამეტრების შემოტანა ფაილიდან" + +#: dist/prefs.js:819 +msgid "Select a text file to import from" +msgstr "აირჩიეთ შემოსატანი ტექსტური ფაილი" + +#: dist/prefs.js:861 dist/prefs.js:862 +msgid "Reset settings" +msgstr "პარამეტრების ნაგულისხმებ მნიშვნელობაზე დაბრუნება" + +#: dist/prefs.js:863 +msgid "Bring back the default settings" +msgstr "ნაგულისხმევი პარამეტრების დაბრუნება" + +#: dist/prefs.js:878 +msgid "Donate on ko-fi" +msgstr "შემოგვწირეთ ko-fi-ზე" + +#: dist/prefs.js:884 +msgid "Report a bug" +msgstr "შეცდომის პატაკი" + +#: dist/prefs.js:890 +msgid "Request a feature" +msgstr "ფუნქციის მოთხოვნა" + +#: dist/prefs.js:898 +msgid "Have issues, you want to suggest a new feature or contribute?" +msgstr "" +"გაქვთ პრობლემები, გნებავთ, შემოგვთავაზოთ ახალი ფუნქცია, ან იყოთ მოხალისე?" + +#: dist/prefs.js:905 +msgid "Open a new issue on" +msgstr "გახსენით ახალი ბილეთი პრობლემის შესახებ ბმულზე" + +#: dist/prefs.js:970 +msgid "Choose how windows snap to screen edges" +msgstr "" + +#: dist/prefs.js:985 +msgid "Default" +msgstr "" + +#: dist/prefs.js:986 +msgid "Follow quarters or screen halves" +msgstr "" + +#: dist/prefs.js:991 +msgid "Adaptive" +msgstr "" + +#: dist/prefs.js:992 +msgid "Follow corners of selected layout or screen halves" +msgstr "" + +#: dist/prefs.js:997 +msgid "Granular" +msgstr "" + +#: dist/prefs.js:998 +msgid "Follow currently selected layout" +msgstr "" + +#: dist/prefs.js:1187 +msgid "Choose custom color" +msgstr "აირჩიეთ სასურველი ფერი" + +#: dist/prefs.js:1188 +msgid "Use system accent color" +msgstr "სისტემური აქცენტის ფერის გამოყენება" + +#: dist/prefs.js:1241 dist/prefs.js:1267 +msgid "New accelerator…" +msgstr "ახალი აქსელერატორი…" + +#: dist/prefs.js:1270 +msgid "Use Backspace to clear" +msgstr "გასასუფთავებლად გამოიყენეთ ღილაკი Backspace" + +#~ msgid "Edit Layouts" +#~ msgstr "განლაგებების ჩასწორება" + +#~ msgid "New Layout" +#~ msgstr "ახალი განლაგება" + +#~ msgid "to split a tile" +#~ msgstr "ფილის გასაყოფად" + +#~ msgid "to split a tile vertically" +#~ msgstr "ფილის ვერტიკალურად გასაყოფად" + +#~ msgid "to delete a tile" +#~ msgstr "ფილის წასაშლელად" + +#~ msgid "use the indicator button to save or cancel" +#~ msgstr "გამოიყენეთ მაჩვენებლის ღილაკი შესანახად, ან გასაუქმებლად" diff --git a/translations/nl.po b/translations/nl.po index 7840947f..c19d354a 100644 --- a/translations/nl.po +++ b/translations/nl.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Tiling Shell\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-09 11:35+0100\n" +"POT-Creation-Date: 2026-01-03 22:57+0100\n" "PO-Revision-Date: 2025-04-22 22:05+0200\n" "Last-Translator: Mathias \n" "Language-Team: Dutch <>\n" @@ -11,168 +11,169 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: dist/prefs.js:793 +#: dist/prefs.js:59 msgid "General" msgstr "Algemeen" -#: dist/prefs.js:798 +#: dist/prefs.js:64 msgid "Appearance" msgstr "Uiterlijk" -#: dist/prefs.js:799 +#: dist/prefs.js:65 msgid "Configure the appearance of Tiling Shell" msgstr "Configureer het uiterlijk van Tiling Shell" -#: dist/prefs.js:804 +#: dist/prefs.js:70 msgid "Show Indicator" msgstr "Toon indicator" -#: dist/prefs.js:805 +#: dist/prefs.js:71 msgid "Whether to show the panel indicator" msgstr "Bepaal of de paneelindicator getoond wordt" -#: dist/prefs.js:810 +#: dist/prefs.js:76 msgid "Inner gaps" msgstr "Binnenmarges" -#: dist/prefs.js:811 +#: dist/prefs.js:77 msgid "Gaps between windows" msgstr "Afstanden tussen vensters" -#: dist/prefs.js:816 +#: dist/prefs.js:82 msgid "Outer gaps" msgstr "Buitenmarges" -#: dist/prefs.js:817 +#: dist/prefs.js:83 msgid "Gaps between a window and the monitor borders" msgstr "Afstanden tussen een venster en de monitorranden" -#: dist/prefs.js:821 +#: dist/prefs.js:87 msgid "Blur (experimental feature)" msgstr "Vervagen (experimentele functie)" -#: dist/prefs.js:823 +#: dist/prefs.js:89 msgid "Apply blur effect to Snap Assistant and tile previews" msgstr "Vervagingseffect toepassen op de snap-assistent en tegelvoorbeelden" -#: dist/prefs.js:829 +#: dist/prefs.js:95 msgid "Snap Assistant threshold" msgstr "Snap-assistent drempel" -#: dist/prefs.js:831 +#: dist/prefs.js:97 msgid "Minimum distance from the Snap Assistant to the pointer to open it" msgstr "" "Minimale afstand tussen de snap-assistent en de cursor om deze te openen" -#: dist/prefs.js:840 +#: dist/prefs.js:106 msgid "Snap Assistant" msgstr "Snap-assistent" -#: dist/prefs.js:841 +#: dist/prefs.js:107 msgid "Apply blur effect to Snap Assistant" msgstr "Vervagingseffect toepassen op de snap-assistent" -#: dist/prefs.js:847 +#: dist/prefs.js:113 msgid "Selected tile preview" msgstr "Voorbeeld van geselecteerde tegel" -#: dist/prefs.js:848 +#: dist/prefs.js:114 msgid "Apply blur effect to selected tile preview" msgstr "Vervagingseffect toepassen op het voorbeeld van de geselecteerde tegel" -#: dist/prefs.js:852 +#: dist/prefs.js:118 msgid "Window border" msgstr "Vensteromranding" -#: dist/prefs.js:853 dist/prefs.js:860 +#: dist/prefs.js:119 dist/prefs.js:126 msgid "Show a border around focused window" msgstr "Toon een rand rond het actieve venster" -#: dist/prefs.js:859 +#: dist/prefs.js:125 msgid "Enable" msgstr "Inschakelen" -#: dist/prefs.js:866 +#: dist/prefs.js:132 msgid "Smart border radius" msgstr "Slimme randafronding" -#: dist/prefs.js:867 -msgid "Dynamically adapt to the window’s actual border radius" +#: dist/prefs.js:133 +#, fuzzy +msgid "Dynamically adapt to the window's actual border radius" msgstr "Dynamisch aanpassen aan de werkelijke randafronding van het venster" -#: dist/prefs.js:873 +#: dist/prefs.js:139 msgid "Width" msgstr "Breedte" -#: dist/prefs.js:874 +#: dist/prefs.js:140 msgid "The size of the border" msgstr "De dikte van de rand" -#: dist/prefs.js:883 +#: dist/prefs.js:149 msgid "Border color" msgstr "Randkleur" -#: dist/prefs.js:884 +#: dist/prefs.js:150 msgid "Choose the color of the border" msgstr "Kies de kleur van de rand" -#: dist/prefs.js:900 +#: dist/prefs.js:166 msgid "Animations" msgstr "Animaties" -#: dist/prefs.js:901 +#: dist/prefs.js:167 msgid "Customize animations" msgstr "Aangepaste animaties" -#: dist/prefs.js:907 +#: dist/prefs.js:173 msgid "Snap assistant animation time" msgstr "Animatietijd van de snap-assistent" -#: dist/prefs.js:908 +#: dist/prefs.js:174 msgid "The snap assistant animation time in milliseconds" msgstr "De animatietijd van de snap-assistent in milliseconden" -#: dist/prefs.js:916 +#: dist/prefs.js:182 msgid "Tiles animation time" msgstr "Animatietijd van tegels" -#: dist/prefs.js:917 +#: dist/prefs.js:183 msgid "The tiles animation time in milliseconds" msgstr "De animatietijd van de tegels in milliseconden" -#: dist/prefs.js:923 +#: dist/prefs.js:189 msgid "Behaviour" msgstr "Gedrag" -#: dist/prefs.js:924 +#: dist/prefs.js:190 msgid "Configure the behaviour of Tiling Shell" msgstr "Configureer het gedrag van Tiling Shell" -#: dist/prefs.js:929 +#: dist/prefs.js:195 msgid "Enable Snap Assistant" msgstr "Schakel snap-assistent in" -#: dist/prefs.js:930 +#: dist/prefs.js:196 msgid "Move the window on top of the screen to snap assist it" msgstr "" "Verplaats het venster naar de bovenkant van het scherm om de snap-assistent " "te activeren" -#: dist/prefs.js:935 +#: dist/prefs.js:201 msgid "Enable Tiling System" msgstr "Schakel het tegel-systeem in" -#: dist/prefs.js:936 +#: dist/prefs.js:202 msgid "Hold the activation key while moving a window to tile it" msgstr "" "Houd de activerings-toets ingedrukt tijdens het verplaatsen van een venster " "om het in de indeling te plaatsen" -#: dist/prefs.js:944 +#: dist/prefs.js:210 msgid "Tiling System deactivation key" msgstr "Toets voor het deactiveren van het tegel-systeem" -#: dist/prefs.js:946 +#: dist/prefs.js:212 msgid "" "Hold the deactivation key while moving a window to deactivate the tiling " "system" @@ -180,53 +181,53 @@ msgstr "" "Houd de deactiverings-toets ingedrukt tijdens het verplaatsen van een " "venster om het tegel-systeem te deactiveren" -#: dist/prefs.js:954 +#: dist/prefs.js:220 msgid "Span multiple tiles" msgstr "Over meerdere tegels plaatsen" -#: dist/prefs.js:955 +#: dist/prefs.js:221 msgid "Hold the activation key to span multiple tiles" msgstr "" "Houd de activerings-toets ingedrukt om een venster over meerdere tegels te " "plaatsen" -#: dist/prefs.js:964 +#: dist/prefs.js:230 msgid "Enable Auto Tiling" msgstr "Schakel automatisch tegelen in" -#: dist/prefs.js:965 +#: dist/prefs.js:231 msgid "Automatically tile new windows to the best tile" msgstr "Plaats nieuwe vensters automatisch in de meest geschikte tegel" -#: dist/prefs.js:970 +#: dist/prefs.js:236 msgid "Enable auto-resize of the complementing tiled windows" msgstr "" "Schakel automatische aanpassing van de grootte van de omliggende tegels in" -#: dist/prefs.js:972 +#: dist/prefs.js:238 msgid "" "When a tiled window is resized, auto-resize the other tiled windows near it" msgstr "" "Wanneer een tegelvenster wordt aangepast, pas de grootte van de aangrenzende " "tegelvensters automatisch aan" -#: dist/prefs.js:978 +#: dist/prefs.js:244 msgid "Restore window size" msgstr "Herstel venstergrootte" -#: dist/prefs.js:980 +#: dist/prefs.js:246 msgid "Whether to restore the windows to their original size when untiled" msgstr "" "Bepaal of vensters naar hun oorspronkelijke grootte worden hersteld wanneer " "ze uit de indeling worden gehaald" -#: dist/prefs.js:986 +#: dist/prefs.js:252 msgid "Add snap assistant and auto-tile buttons to window menu" msgstr "" "Voeg knoppen voor snap-assistent en automatisch tegelen toe aan het " "venstermenu" -#: dist/prefs.js:988 +#: dist/prefs.js:254 msgid "" "Add snap assistant and auto-tile buttons in the menu that shows up when you " "right click on a window title" @@ -234,433 +235,455 @@ msgstr "" "Voeg knoppen voor snap-assistent en automatisch tegelen toe aan het menu dat " "verschijnt wanneer je met de rechtermuisknop op een venstertitel klikt" -#: dist/prefs.js:994 +#: dist/prefs.js:260 msgid "Add tiled windows to ALT+TAB menu" msgstr "" -#: dist/prefs.js:996 +#: dist/prefs.js:262 msgid "" "Add the tiled windows to the ALT+TAB menu to open all the tiled windows at " "once" msgstr "" -#: dist/prefs.js:1001 +#: dist/prefs.js:267 msgid "Screen Edges" msgstr "Schermranden" -#: dist/prefs.js:1003 +#: dist/prefs.js:269 msgid "" "Drag windows against the top, left and right screen edges to resize them" msgstr "" "Versleep vensters tegen de boven-, linker- en rechterschermranden om hun " "grootte aan te passen" -#: dist/prefs.js:1017 +#: dist/prefs.js:283 msgid "Drag against top edge to maximize window" msgstr "Versleep tegen de bovenrand om het venster te maximaliseren" -#: dist/prefs.js:1018 +#: dist/prefs.js:284 msgid "Drag windows against the top edge to maximize them" msgstr "Versleep vensters tegen de bovenrand om ze te maximaliseren" -#: dist/prefs.js:1027 +#: dist/prefs.js:293 msgid "Quarter tiling activation area" msgstr "Activeringsgebied voor kwart-tegeling" -#: dist/prefs.js:1028 +#: dist/prefs.js:294 #, javascript-format msgid "Activation area to trigger quarter tiling (%% of the screen)" msgstr "Activeringsgebied om kwart-tegeling te activeren (%% van het scherm)" -#: dist/prefs.js:1044 +#: dist/prefs.js:310 msgid "Edge tiling offset" msgstr "" -#: dist/prefs.js:1045 +#: dist/prefs.js:311 msgid "Offset from the screen edge to trigger edge tiling (in pixels)" msgstr "" -#: dist/prefs.js:1062 +#: dist/prefs.js:333 msgid "Windows suggestions" msgstr "Venstersuggesties" -#: dist/prefs.js:1063 +#: dist/prefs.js:334 msgid "Enable and disable windows suggestions" msgstr "Schakel venstersuggesties in of uit" -#: dist/prefs.js:1068 +#: dist/prefs.js:339 msgid "Enable window suggestions for the tiling system" msgstr "Schakel venstersuggesties voor het tegel-systeem in" -#: dist/prefs.js:1070 +#: dist/prefs.js:341 msgid "" "Provides smart suggestions to fill empty tiles when using the tiling system" msgstr "" "Biedt slimme suggesties om lege tegels te vullen bij gebruik van het tegel-" "systeem" -#: dist/prefs.js:1076 +#: dist/prefs.js:347 msgid "Enable window suggestions for the snap assistant" msgstr "Schakel venstersuggesties voor de snap-assistent in" -#: dist/prefs.js:1078 +#: dist/prefs.js:349 msgid "" "Offers suggestions to populate empty tiles when using the snap assistant" msgstr "" "Biedt suggesties om lege tegels te vullen bij gebruik van de snap-assistent" -#: dist/prefs.js:1084 +#: dist/prefs.js:355 msgid "Enable window suggestions for screen edge snapping" msgstr "Schakel venstersuggesties voor het vastklikken aan de schermrand in" -#: dist/prefs.js:1086 +#: dist/prefs.js:357 msgid "Suggests windows to occupy empty tiles when snapping to screen edges" msgstr "" "Stelt vensters voor om lege tegels te vullen wanneer ze vastklikken aan de " "schermranden" -#: dist/prefs.js:1092 +#: dist/prefs.js:363 msgid "Layouts" msgstr "Indelingen" -#: dist/prefs.js:1093 +#: dist/prefs.js:364 msgid "Configure the layouts of Tiling Shell" msgstr "Configureer de indelingen van Tiling Shell" -#: dist/prefs.js:1097 dist/prefs.js:1098 +#: dist/prefs.js:368 dist/prefs.js:369 msgid "Edit layouts" msgstr "Bewerk indelingen" -#: dist/prefs.js:1099 +#: dist/prefs.js:370 msgid "Open the layouts editor" msgstr "Open de indelings-editor" -#: dist/prefs.js:1104 dist/prefs.js:1105 dist/prefs.js:1109 +#: dist/prefs.js:375 dist/prefs.js:376 dist/prefs.js:380 msgid "Export layouts" msgstr "Exporteer indelingen" -#: dist/prefs.js:1106 +#: dist/prefs.js:377 msgid "Export layouts to a file" msgstr "Exporteer indelingen naar een bestand" -#: dist/prefs.js:1112 dist/prefs.js:1496 +#: dist/prefs.js:383 dist/prefs.js:767 msgid "Save" msgstr "Opslaan" -#: dist/prefs.js:1113 dist/prefs.js:1167 dist/prefs.js:1497 dist/prefs.js:1552 +#: dist/prefs.js:384 dist/prefs.js:438 dist/prefs.js:768 dist/prefs.js:823 msgid "Cancel" msgstr "Annuleren" -#: dist/prefs.js:1158 dist/prefs.js:1159 +#: dist/prefs.js:429 dist/prefs.js:430 msgid "Import layouts" msgstr "Importeer indelingen" -#: dist/prefs.js:1160 +#: dist/prefs.js:431 msgid "Import layouts from a file" msgstr "Importeer indelingen vanuit een bestand" -#: dist/prefs.js:1163 +#: dist/prefs.js:434 msgid "Select layouts file" msgstr "Selecteer indelingsbestand" -#: dist/prefs.js:1166 dist/prefs.js:1551 +#: dist/prefs.js:437 dist/prefs.js:822 msgid "Open" msgstr "Openen" -#: dist/prefs.js:1214 dist/prefs.js:1215 +#: dist/prefs.js:485 dist/prefs.js:486 msgid "Reset layouts" msgstr "Herstel standaardindelingen" -#: dist/prefs.js:1216 +#: dist/prefs.js:487 msgid "Bring back the default layouts" msgstr "Herstel de standaardindelingen" -#: dist/prefs.js:1229 +#: dist/prefs.js:500 msgid "Keybindings" msgstr "Sneltoetsen" -#: dist/prefs.js:1231 +#: dist/prefs.js:502 msgid "Use hotkeys to perform actions on the focused window" msgstr "Gebruik sneltoetsen om acties op het actieve venster uit te voeren" -#: dist/prefs.js:1249 +#: dist/prefs.js:520 msgid "Move window to right tile" msgstr "Verplaats venster naar de rechter tegel" -#: dist/prefs.js:1251 +#: dist/prefs.js:522 msgid "Move the focused window to the tile on its right" msgstr "Verplaats het actieve venster naar de tegel rechts ervan" -#: dist/prefs.js:1260 +#: dist/prefs.js:531 msgid "Move window to left tile" msgstr "Verplaats venster naar de linker tegel" -#: dist/prefs.js:1261 +#: dist/prefs.js:532 msgid "Move the focused window to the tile on its left" msgstr "Verplaats het actieve venster naar de tegel links ervan" -#: dist/prefs.js:1267 +#: dist/prefs.js:538 msgid "Move window to tile above" msgstr "Verplaats venster naar de tegel erboven" -#: dist/prefs.js:1268 +#: dist/prefs.js:539 msgid "Move the focused window to the tile above" msgstr "Verplaats het actieve venster naar de tegel erboven" -#: dist/prefs.js:1274 +#: dist/prefs.js:545 msgid "Move window to tile below" msgstr "Verplaats venster naar de tegel eronder" -#: dist/prefs.js:1275 +#: dist/prefs.js:546 msgid "Move the focused window to the tile below" msgstr "Verplaats het actieve venster naar de tegel eronder" -#: dist/prefs.js:1281 +#: dist/prefs.js:552 msgid "Span window to right tile" msgstr "Breid venster uit naar de rechter tegel" -#: dist/prefs.js:1282 +#: dist/prefs.js:553 msgid "Span the focused window to the tile on its right" msgstr "Breid het actieve venster uit naar de tegel rechts ervan" -#: dist/prefs.js:1288 +#: dist/prefs.js:559 msgid "Span window to left tile" msgstr "Breid venster uit naar de linker tegel" -#: dist/prefs.js:1289 +#: dist/prefs.js:560 msgid "Span the focused window to the tile on its left" msgstr "Breid het actieve venster uit naar de tegel links ervan" -#: dist/prefs.js:1295 +#: dist/prefs.js:566 msgid "Span window above" msgstr "Breid venster uit naar de tegel erboven" -#: dist/prefs.js:1296 +#: dist/prefs.js:567 msgid "Span the focused window to the tile above" msgstr "Breid het actieve venster uit naar de tegel erboven" -#: dist/prefs.js:1302 +#: dist/prefs.js:573 msgid "Span window down" msgstr "Breid venster uit naar de tegel eronder" -#: dist/prefs.js:1303 +#: dist/prefs.js:574 msgid "Span the focused window to the tile below" msgstr "Breid het actieve venster uit naar de tegel eronder" -#: dist/prefs.js:1309 +#: dist/prefs.js:580 msgid "Span window to all tiles" msgstr "Breid venster uit over alle tegels" -#: dist/prefs.js:1310 +#: dist/prefs.js:581 msgid "Span the focused window to all the tiles" msgstr "Breid het actieve venster uit over alle tegels" -#: dist/prefs.js:1316 +#: dist/prefs.js:587 msgid "Untile focused window" msgstr "Haal het actieve venster uit de tegelindeling" -#: dist/prefs.js:1324 +#: dist/prefs.js:595 msgid "Move window to the center" msgstr "Verplaats venster naar het midden" -#: dist/prefs.js:1326 +#: dist/prefs.js:597 msgid "Move the focused window to the center of the screen" msgstr "Verplaats het actieve venster naar het midden van het scherm" -#: dist/prefs.js:1335 +#: dist/prefs.js:606 msgid "Focus window to the right" msgstr "Zet de focus op het venster rechts" -#: dist/prefs.js:1337 +#: dist/prefs.js:608 msgid "Focus the window to the right of the current focused window" msgstr "Zet de focus op het venster rechts van het huidige actieve venster" -#: dist/prefs.js:1344 +#: dist/prefs.js:615 msgid "Focus window to the left" msgstr "Zet de focus op het venster links" -#: dist/prefs.js:1345 +#: dist/prefs.js:616 msgid "Focus the window to the left of the current focused window" msgstr "Zet de focus op het venster links van het huidige actieve venster" -#: dist/prefs.js:1351 +#: dist/prefs.js:622 msgid "Focus window above" msgstr "Zet de focus op het venster erboven" -#: dist/prefs.js:1352 +#: dist/prefs.js:623 msgid "Focus the window above the current focused window" msgstr "Zet de focus op het venster boven het huidige actieve venster" -#: dist/prefs.js:1358 +#: dist/prefs.js:629 msgid "Focus window below" msgstr "Zet de focus op het venster eronder" -#: dist/prefs.js:1359 +#: dist/prefs.js:630 msgid "Focus the window below the current focused window" msgstr "Zet de focus op het venster onder het huidige actieve venster" -#: dist/prefs.js:1365 +#: dist/prefs.js:636 msgid "Focus next window" msgstr "Zet de focus op het volgende venster" -#: dist/prefs.js:1366 +#: dist/prefs.js:637 msgid "Focus the window next to the current focused window" msgstr "Zet de focus op het venster naast het huidige actieve venster" -#: dist/prefs.js:1372 +#: dist/prefs.js:643 msgid "Focus previous window" msgstr "Zet de focus op het vorige venster" -#: dist/prefs.js:1373 +#: dist/prefs.js:644 msgid "Focus the window prior to the current focused window" msgstr "Zet de focus op het venster vóór het huidige actieve venster" -#: dist/prefs.js:1379 +#: dist/prefs.js:650 msgid "Highlight focused window" msgstr "Markeer het actieve venster" -#: dist/prefs.js:1381 +#: dist/prefs.js:652 msgid "Minimize all the other windows and show only the focused window" msgstr "Minimaliseer alle andere vensters en toon alleen het actieve venster" -#: dist/prefs.js:1388 +#: dist/prefs.js:659 #, fuzzy msgid "Cycle layouts" msgstr "Herstel standaardindelingen" -#: dist/prefs.js:1389 +#: dist/prefs.js:660 msgid "Cycle through available workspace layouts" msgstr "" -#: dist/prefs.js:1415 +#: dist/prefs.js:686 msgid "View and Customize all the Shortcuts" msgstr "Bekijk en pas alle sneltoetsen aan" -#: dist/prefs.js:1443 dist/prefs.js:1444 +#: dist/prefs.js:714 dist/prefs.js:715 msgid "View and Customize Shortcuts" msgstr "Bekijk en pas sneltoetsen aan" -#: dist/prefs.js:1466 +#: dist/prefs.js:737 msgid "Enable next/previous window focus to wrap around" msgstr "" "Schakel doorlopen van de focus in zodat deze bij het bereiken van de rand " "omgaat" -#: dist/prefs.js:1468 +#: dist/prefs.js:739 msgid "When focusing next or previous window, wrap around at the window edge" msgstr "" "Wanneer je op het volgende of vorige venster focust, gaat de focus bij de " "vensterrand door" -#: dist/prefs.js:1474 +#: dist/prefs.js:745 msgid "Restrict directional focus to tiled windows" msgstr "" -#: dist/prefs.js:1476 +#: dist/prefs.js:747 msgid "When using directional focus navigation, only consider tiled windows" msgstr "" -#: dist/prefs.js:1481 +#: dist/prefs.js:752 msgid "Import, export and reset" msgstr "Importeer, exporteer en reset" -#: dist/prefs.js:1483 +#: dist/prefs.js:754 msgid "Import, export and reset the settings of Tiling Shell" msgstr "Importeer, exporteer en herstel de instellingen van Tiling Shell" -#: dist/prefs.js:1488 dist/prefs.js:1489 +#: dist/prefs.js:759 dist/prefs.js:760 msgid "Export settings" msgstr "Exporteer instellingen" -#: dist/prefs.js:1490 +#: dist/prefs.js:761 msgid "Export settings to a file" msgstr "Exporteer instellingen naar een bestand" -#: dist/prefs.js:1493 +#: dist/prefs.js:764 msgid "Export settings to a text file" msgstr "Exporteer instellingen naar een tekstbestand" -#: dist/prefs.js:1500 +#: dist/prefs.js:771 msgid "Text file" msgstr "Tekstbestand" -#: dist/prefs.js:1543 dist/prefs.js:1544 +#: dist/prefs.js:814 dist/prefs.js:815 msgid "Import settings" msgstr "Importeer instellingen" -#: dist/prefs.js:1545 +#: dist/prefs.js:816 msgid "Import settings from a file" msgstr "Importeer instellingen vanuit een bestand" -#: dist/prefs.js:1548 +#: dist/prefs.js:819 msgid "Select a text file to import from" msgstr "Selecteer een tekstbestand om uit te importeren" -#: dist/prefs.js:1590 dist/prefs.js:1591 +#: dist/prefs.js:861 dist/prefs.js:862 msgid "Reset settings" msgstr "Herstel instellingen" -#: dist/prefs.js:1592 +#: dist/prefs.js:863 msgid "Bring back the default settings" msgstr "Herstel de standaardinstellingen" -#: dist/prefs.js:1607 +#: dist/prefs.js:878 msgid "Donate on ko-fi" msgstr "Doneer via ko-fi" -#: dist/prefs.js:1613 +#: dist/prefs.js:884 msgid "Report a bug" msgstr "Meld een bug" -#: dist/prefs.js:1619 +#: dist/prefs.js:890 msgid "Request a feature" msgstr "Vraag een functie aan" -#: dist/prefs.js:1627 +#: dist/prefs.js:898 msgid "Have issues, you want to suggest a new feature or contribute?" msgstr "" "Heb je problemen of wil je een nieuwe functie voorstellen of bijdragen?" -#: dist/prefs.js:1634 +#: dist/prefs.js:905 msgid "Open a new issue on" msgstr "Open een nieuw probleem op" -#: dist/prefs.js:1814 +#: dist/prefs.js:970 +msgid "Choose how windows snap to screen edges" +msgstr "" + +#: dist/prefs.js:985 +msgid "Default" +msgstr "" + +#: dist/prefs.js:986 +msgid "Follow quarters or screen halves" +msgstr "" + +#: dist/prefs.js:991 +msgid "Adaptive" +msgstr "" + +#: dist/prefs.js:992 +msgid "Follow corners of selected layout or screen halves" +msgstr "" + +#: dist/prefs.js:997 +msgid "Granular" +msgstr "" + +#: dist/prefs.js:998 +msgid "Follow currently selected layout" +msgstr "" + +#: dist/prefs.js:1187 msgid "Choose custom color" msgstr "" -#: dist/prefs.js:1815 +#: dist/prefs.js:1188 msgid "Use system accent color" msgstr "" -#: dist/prefs.js:1866 dist/prefs.js:1889 +#: dist/prefs.js:1241 dist/prefs.js:1267 msgid "New accelerator…" msgstr "Nieuwe sneltoets…" -#: dist/prefs.js:1892 +#: dist/prefs.js:1270 msgid "Use Backspace to clear" msgstr "Gebruik Backspace om te wissen" -#: dist/extension.js:5809 -msgid "Edit Layouts" -msgstr "Bewerk indelingen" +#~ msgid "Edit Layouts" +#~ msgstr "Bewerk indelingen" -#: dist/extension.js:5819 -msgid "New Layout" -msgstr "Nieuwe indeling" +#~ msgid "New Layout" +#~ msgstr "Nieuwe indeling" -#: dist/extension.js:6004 -msgid "to split a tile" -msgstr "om een tegel te splitsen" +#~ msgid "to split a tile" +#~ msgstr "om een tegel te splitsen" -#: dist/extension.js:6043 -msgid "to split a tile vertically" -msgstr "om een tegel verticaal te splitsen" +#~ msgid "to split a tile vertically" +#~ msgstr "om een tegel verticaal te splitsen" -#: dist/extension.js:6063 -msgid "to delete a tile" -msgstr "om een tegel te verwijderen" +#~ msgid "to delete a tile" +#~ msgstr "om een tegel te verwijderen" -#: dist/extension.js:6087 -msgid "use the indicator button to save or cancel" -msgstr "gebruik de indicator-knop om op te slaan of te annuleren" +#~ msgid "use the indicator button to save or cancel" +#~ msgstr "gebruik de indicator-knop om op te slaan of te annuleren" diff --git a/translations/pl.po b/translations/pl.po index 5d85006a..ec975ceb 100644 --- a/translations/pl.po +++ b/translations/pl.po @@ -1,4 +1,3 @@ -# # pkly @github <>, 2025. # Adam Lewicki , 2025. # @@ -6,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Tiling Shell\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-09 11:35+0100\n" -"PO-Revision-Date: 2025-09-28 11:45+0200\n" +"POT-Creation-Date: 2026-01-03 22:57+0100\n" +"PO-Revision-Date: 2025-11-13 19:42+0100\n" "Last-Translator: Adam Lewicki \n" "Language-Team: Polish\n" "Language: pl\n" @@ -16,167 +15,168 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -"X-Generator: Poedit 3.7\n" +"X-Generator: Poedit 3.8\n" -#: dist/prefs.js:793 +#: dist/prefs.js:59 msgid "General" msgstr "Ogólne" -#: dist/prefs.js:798 +#: dist/prefs.js:64 msgid "Appearance" msgstr "Wygląd" -#: dist/prefs.js:799 +#: dist/prefs.js:65 msgid "Configure the appearance of Tiling Shell" msgstr "Skonfiguruj wygląd Układania okien" -#: dist/prefs.js:804 +#: dist/prefs.js:70 msgid "Show Indicator" msgstr "Pokaż wskaźnik" -#: dist/prefs.js:805 +#: dist/prefs.js:71 msgid "Whether to show the panel indicator" msgstr "Pokazywanie ikony wskaźnika na panelu" -#: dist/prefs.js:810 +#: dist/prefs.js:76 msgid "Inner gaps" msgstr "Wewnętrzna przerwa" -#: dist/prefs.js:811 +#: dist/prefs.js:77 msgid "Gaps between windows" msgstr "Przerwy między oknami" -#: dist/prefs.js:816 +#: dist/prefs.js:82 msgid "Outer gaps" msgstr "Zewnętrzne przerwy" -#: dist/prefs.js:817 +#: dist/prefs.js:83 msgid "Gaps between a window and the monitor borders" msgstr "Przerwy pomiędzy oknami i granicami monitora" -#: dist/prefs.js:821 +#: dist/prefs.js:87 msgid "Blur (experimental feature)" msgstr "Rozmycie (funkcja eksperymentalna)" -#: dist/prefs.js:823 +#: dist/prefs.js:89 msgid "Apply blur effect to Snap Assistant and tile previews" msgstr "Zastosuj efekt rozmycia do Asystenta przyciągania i podglądów kafelków" -#: dist/prefs.js:829 +#: dist/prefs.js:95 msgid "Snap Assistant threshold" msgstr "Progi Asystenta przyciągania" -#: dist/prefs.js:831 +#: dist/prefs.js:97 msgid "Minimum distance from the Snap Assistant to the pointer to open it" msgstr "" "Minimalna odległość otwarcia względem wskaźnika od Asystenta przyciągania" -#: dist/prefs.js:840 +#: dist/prefs.js:106 msgid "Snap Assistant" msgstr "Asystent przyciągania" -#: dist/prefs.js:841 +#: dist/prefs.js:107 msgid "Apply blur effect to Snap Assistant" msgstr "Zastosuj efekt rozmycia do Asystenta przyciągania" -#: dist/prefs.js:847 +#: dist/prefs.js:113 msgid "Selected tile preview" msgstr "Podgląd wybra kafelka" -#: dist/prefs.js:848 +#: dist/prefs.js:114 msgid "Apply blur effect to selected tile preview" msgstr "Zastosuj efekt rozmycia do zaznaczonej strefy" -#: dist/prefs.js:852 +#: dist/prefs.js:118 msgid "Window border" msgstr "Obramowanie okna" -#: dist/prefs.js:853 dist/prefs.js:860 +#: dist/prefs.js:119 dist/prefs.js:126 msgid "Show a border around focused window" msgstr "Pokaż obramowanie wokół aktywnego okna" -#: dist/prefs.js:859 +#: dist/prefs.js:125 msgid "Enable" msgstr "Włącz" -#: dist/prefs.js:866 +#: dist/prefs.js:132 msgid "Smart border radius" msgstr "Inteligentny promień obramowania" -#: dist/prefs.js:867 -msgid "Dynamically adapt to the window’s actual border radius" +#: dist/prefs.js:133 +#, fuzzy +msgid "Dynamically adapt to the window's actual border radius" msgstr "Dynamicznie dopasowuj do rzeczywistego promienia obramowania okna" -#: dist/prefs.js:873 +#: dist/prefs.js:139 msgid "Width" msgstr "Szerokość" -#: dist/prefs.js:874 +#: dist/prefs.js:140 msgid "The size of the border" msgstr "Rozmiar obramowania" -#: dist/prefs.js:883 +#: dist/prefs.js:149 msgid "Border color" msgstr "Kolor obramowania" -#: dist/prefs.js:884 +#: dist/prefs.js:150 msgid "Choose the color of the border" msgstr "Wybiera kolor obramowania" -#: dist/prefs.js:900 +#: dist/prefs.js:166 msgid "Animations" msgstr "Animacje" -#: dist/prefs.js:901 +#: dist/prefs.js:167 msgid "Customize animations" msgstr "Dostosuj animacje" -#: dist/prefs.js:907 +#: dist/prefs.js:173 msgid "Snap assistant animation time" msgstr "Czas trwania animacji Asystenta przyciągania" -#: dist/prefs.js:908 +#: dist/prefs.js:174 msgid "The snap assistant animation time in milliseconds" msgstr "Czas trwania animacji Asystenta przyciągania w milisekundach" -#: dist/prefs.js:916 +#: dist/prefs.js:182 msgid "Tiles animation time" msgstr "Czas animacji" -#: dist/prefs.js:917 +#: dist/prefs.js:183 msgid "The tiles animation time in milliseconds" msgstr "Czas trwania animacji kafelków w milisekundach" -#: dist/prefs.js:923 +#: dist/prefs.js:189 msgid "Behaviour" msgstr "Zachowanie" -#: dist/prefs.js:924 +#: dist/prefs.js:190 msgid "Configure the behaviour of Tiling Shell" msgstr "Skonfiguruj zachowanie Układania okien" -#: dist/prefs.js:929 +#: dist/prefs.js:195 msgid "Enable Snap Assistant" msgstr "Włącz Asystenta przyciągania" -#: dist/prefs.js:930 +#: dist/prefs.js:196 msgid "Move the window on top of the screen to snap assist it" msgstr "" "Przesuń okno na górną krawędź ekranu, aby wywołać Asystenta przyciągania" -#: dist/prefs.js:935 +#: dist/prefs.js:201 msgid "Enable Tiling System" msgstr "Włącz system układania okien" -#: dist/prefs.js:936 +#: dist/prefs.js:202 msgid "Hold the activation key while moving a window to tile it" msgstr "Przytrzymaj klawisz aktywacji podczas przesuwania okna, aby je ułożyć" -#: dist/prefs.js:944 +#: dist/prefs.js:210 msgid "Tiling System deactivation key" msgstr "Klawisz deaktywacji systemu układania okien" -#: dist/prefs.js:946 +#: dist/prefs.js:212 msgid "" "Hold the deactivation key while moving a window to deactivate the tiling " "system" @@ -184,48 +184,48 @@ msgstr "" "Przytrzymaj klawisz deaktywacji podczas przesuwania okna, aby wyłączyć " "system układania okien" -#: dist/prefs.js:954 +#: dist/prefs.js:220 msgid "Span multiple tiles" msgstr "Rozciągnij na wiele kafelków" -#: dist/prefs.js:955 +#: dist/prefs.js:221 msgid "Hold the activation key to span multiple tiles" msgstr "Przytrzymaj klawisz aktywacji, aby rozciągnąć na wiele kafelków" -#: dist/prefs.js:964 +#: dist/prefs.js:230 msgid "Enable Auto Tiling" msgstr "Włącz automatyczne układanie" -#: dist/prefs.js:965 +#: dist/prefs.js:231 msgid "Automatically tile new windows to the best tile" msgstr "Automatycznie układaj nowe okna do najlepszego kafelka" -#: dist/prefs.js:970 +#: dist/prefs.js:236 msgid "Enable auto-resize of the complementing tiled windows" msgstr "Włącz automatyczną zmianę rozmiaru sąsiednich ułożonych okien" -#: dist/prefs.js:972 +#: dist/prefs.js:238 msgid "" "When a tiled window is resized, auto-resize the other tiled windows near it" msgstr "" "Gdy rozmiar ułożonego okna jest zmieniany, automatycznie zmień rozmiar " "sąsiednich ułożonych okien" -#: dist/prefs.js:978 +#: dist/prefs.js:244 msgid "Restore window size" msgstr "Przywróć rozmiar okna" -#: dist/prefs.js:980 +#: dist/prefs.js:246 msgid "Whether to restore the windows to their original size when untiled" msgstr "Przywracaj okna do ich oryginalnego rozmiaru po usunięciu z układu" -#: dist/prefs.js:986 +#: dist/prefs.js:252 msgid "Add snap assistant and auto-tile buttons to window menu" msgstr "" "Dodaj przyciski Asystenta przyciągania i automatycznego układania do menu " "okna" -#: dist/prefs.js:988 +#: dist/prefs.js:254 msgid "" "Add snap assistant and auto-tile buttons in the menu that shows up when you " "right click on a window title" @@ -233,438 +233,443 @@ msgstr "" "Dodaj przyciski Asystenta przyciągania i automatycznego układania do menu " "wyświetlanego po kliknięciu prawym przyciskiem myszy na pasku tytułu okna" -#: dist/prefs.js:994 +#: dist/prefs.js:260 msgid "Add tiled windows to ALT+TAB menu" msgstr "Dodaj ułożone okna do menu ALT+TAB" -#: dist/prefs.js:996 +#: dist/prefs.js:262 msgid "" "Add the tiled windows to the ALT+TAB menu to open all the tiled windows at " "once" msgstr "" "Dodaj ułożone okna do menu ALT+TAB, aby otworzyć je wszystkie jednocześnie" -#: dist/prefs.js:1001 +#: dist/prefs.js:267 msgid "Screen Edges" msgstr "Krawędzie ekranu" -#: dist/prefs.js:1003 +#: dist/prefs.js:269 msgid "" "Drag windows against the top, left and right screen edges to resize them" msgstr "" "Przeciągnij okna do górnej, lewej lub prawej krawędzi ekranu, aby zmienić " "ich rozmiar" -#: dist/prefs.js:1017 +#: dist/prefs.js:283 msgid "Drag against top edge to maximize window" msgstr "Przeciągnij do górnej krawędzi, aby zmaksymalizować okno" -#: dist/prefs.js:1018 +#: dist/prefs.js:284 msgid "Drag windows against the top edge to maximize them" msgstr "Przeciągnij okna do górnej krawędzi, aby je zmaksymalizować" -#: dist/prefs.js:1027 +#: dist/prefs.js:293 msgid "Quarter tiling activation area" msgstr "Obszar aktywacji ćwiartkowego układania" -#: dist/prefs.js:1028 +#: dist/prefs.js:294 #, javascript-format msgid "Activation area to trigger quarter tiling (%% of the screen)" msgstr "Obszar aktywacji ćwiartkowego układania (%% ekranu)" -#: dist/prefs.js:1044 +#: dist/prefs.js:310 msgid "Edge tiling offset" msgstr "Przesunięcie krawędzi układania" -#: dist/prefs.js:1045 +#: dist/prefs.js:311 msgid "Offset from the screen edge to trigger edge tiling (in pixels)" msgstr "" "Odległość od krawędzi ekranu do aktywacji układania krawędziowego (w " "pikselach)" -#: dist/prefs.js:1062 +#: dist/prefs.js:333 msgid "Windows suggestions" msgstr "Sugestie okien" -#: dist/prefs.js:1063 +#: dist/prefs.js:334 msgid "Enable and disable windows suggestions" msgstr "Włącz i wyłącz sugestie okien" -#: dist/prefs.js:1068 +#: dist/prefs.js:339 msgid "Enable window suggestions for the tiling system" msgstr "Włącz podpowiedzi okien dla systemu układania" -#: dist/prefs.js:1070 +#: dist/prefs.js:341 msgid "" "Provides smart suggestions to fill empty tiles when using the tiling system" msgstr "" "Wyświetlaj inteligentne podpowiedzi wypełniania pustych kafelków podczas " "korzystania z systemu układania" -#: dist/prefs.js:1076 +#: dist/prefs.js:347 msgid "Enable window suggestions for the snap assistant" msgstr "Włącz podpowiedzi okien dla Asystenta przyciągania" -#: dist/prefs.js:1078 +#: dist/prefs.js:349 msgid "" "Offers suggestions to populate empty tiles when using the snap assistant" msgstr "" "Wyświetlaj podpowiedzi wypełniania pustych kafelków podczas korzystania z " "Asystenta przyciągania" -#: dist/prefs.js:1084 +#: dist/prefs.js:355 msgid "Enable window suggestions for screen edge snapping" msgstr "Włącz podpowiedzi okien dla przyciągania do krawędzi ekranu" -#: dist/prefs.js:1086 +#: dist/prefs.js:357 msgid "Suggests windows to occupy empty tiles when snapping to screen edges" msgstr "" "Sugeruj okna do zajęcia pustych kafelków podczas przyciągania do krawędzi " "ekranu" -#: dist/prefs.js:1092 +#: dist/prefs.js:363 msgid "Layouts" msgstr "Układy" -#: dist/prefs.js:1093 +#: dist/prefs.js:364 msgid "Configure the layouts of Tiling Shell" msgstr "Skonfiguruj układy Układania okien" -#: dist/prefs.js:1097 dist/prefs.js:1098 +#: dist/prefs.js:368 dist/prefs.js:369 msgid "Edit layouts" msgstr "Edytuj układy" -#: dist/prefs.js:1099 +#: dist/prefs.js:370 msgid "Open the layouts editor" msgstr "Otwórz edytor układów" -#: dist/prefs.js:1104 dist/prefs.js:1105 dist/prefs.js:1109 +#: dist/prefs.js:375 dist/prefs.js:376 dist/prefs.js:380 msgid "Export layouts" msgstr "Eksportuj układy" -#: dist/prefs.js:1106 +#: dist/prefs.js:377 msgid "Export layouts to a file" msgstr "Eksportuj układy do pliku" -#: dist/prefs.js:1112 dist/prefs.js:1496 +#: dist/prefs.js:383 dist/prefs.js:767 msgid "Save" msgstr "Zapisz" -#: dist/prefs.js:1113 dist/prefs.js:1167 dist/prefs.js:1497 dist/prefs.js:1552 +#: dist/prefs.js:384 dist/prefs.js:438 dist/prefs.js:768 dist/prefs.js:823 msgid "Cancel" msgstr "Anuluj" -#: dist/prefs.js:1158 dist/prefs.js:1159 +#: dist/prefs.js:429 dist/prefs.js:430 msgid "Import layouts" msgstr "Importuj układy" -#: dist/prefs.js:1160 +#: dist/prefs.js:431 msgid "Import layouts from a file" msgstr "Importuj układy z pliku" -#: dist/prefs.js:1163 +#: dist/prefs.js:434 msgid "Select layouts file" msgstr "Wybierz plik układów" -#: dist/prefs.js:1166 dist/prefs.js:1551 +#: dist/prefs.js:437 dist/prefs.js:822 msgid "Open" msgstr "Otwórz" -#: dist/prefs.js:1214 dist/prefs.js:1215 +#: dist/prefs.js:485 dist/prefs.js:486 msgid "Reset layouts" msgstr "Resetuj układy" -#: dist/prefs.js:1216 +#: dist/prefs.js:487 msgid "Bring back the default layouts" msgstr "Przywróć domyślne układy" -#: dist/prefs.js:1229 +#: dist/prefs.js:500 msgid "Keybindings" msgstr "Skróty klawiszowe" -#: dist/prefs.js:1231 +#: dist/prefs.js:502 msgid "Use hotkeys to perform actions on the focused window" msgstr "Używaj skrótów klawiszowych do wykonywania akcji na aktywnym oknie" -#: dist/prefs.js:1249 +#: dist/prefs.js:520 msgid "Move window to right tile" msgstr "Przenieś okno do prawego kafelka" -#: dist/prefs.js:1251 +#: dist/prefs.js:522 msgid "Move the focused window to the tile on its right" msgstr "Przenieś aktywne okno do kafelka po prawej" -#: dist/prefs.js:1260 +#: dist/prefs.js:531 msgid "Move window to left tile" msgstr "Przenieś okno do lewego kafelka" -#: dist/prefs.js:1261 +#: dist/prefs.js:532 msgid "Move the focused window to the tile on its left" msgstr "Przenieś aktywne okno do kafelka po lewej" -#: dist/prefs.js:1267 +#: dist/prefs.js:538 msgid "Move window to tile above" msgstr "Przenieś okno do kafelka powyżej" -#: dist/prefs.js:1268 +#: dist/prefs.js:539 msgid "Move the focused window to the tile above" msgstr "Przenieś aktywne okno do kafelka powyżej" -#: dist/prefs.js:1274 +#: dist/prefs.js:545 msgid "Move window to tile below" msgstr "Przenieś okno do kafelka poniżej" -#: dist/prefs.js:1275 +#: dist/prefs.js:546 msgid "Move the focused window to the tile below" msgstr "Przenieś aktywne okno do kafelka poniżej" -#: dist/prefs.js:1281 +#: dist/prefs.js:552 msgid "Span window to right tile" msgstr "Rozciągnij okno na prawy kafelek" -#: dist/prefs.js:1282 +#: dist/prefs.js:553 msgid "Span the focused window to the tile on its right" msgstr "Rozciągnij aktywne okno na kafelek po prawej" -#: dist/prefs.js:1288 +#: dist/prefs.js:559 msgid "Span window to left tile" msgstr "Rozciągnij okno na lewy kafelek" -#: dist/prefs.js:1289 +#: dist/prefs.js:560 msgid "Span the focused window to the tile on its left" msgstr "Rozciągnij aktywne okno na kafelek po lewej" -#: dist/prefs.js:1295 +#: dist/prefs.js:566 msgid "Span window above" msgstr "Rozciągnij okno na kafelek powyżej" -#: dist/prefs.js:1296 +#: dist/prefs.js:567 msgid "Span the focused window to the tile above" msgstr "Rozciągnij aktywne okno na kafelek powyżej" -#: dist/prefs.js:1302 +#: dist/prefs.js:573 msgid "Span window down" msgstr "Rozciągnij okno na kafelek poniżej" -#: dist/prefs.js:1303 +#: dist/prefs.js:574 msgid "Span the focused window to the tile below" msgstr "Rozciągnij aktywne okno na kafelek poniżej" -#: dist/prefs.js:1309 +#: dist/prefs.js:580 msgid "Span window to all tiles" msgstr "Rozciągnij okno na wszystkie kafelki" -#: dist/prefs.js:1310 +#: dist/prefs.js:581 msgid "Span the focused window to all the tiles" msgstr "Rozciągnij aktywne okno na wszystkie kafelki" -#: dist/prefs.js:1316 +#: dist/prefs.js:587 msgid "Untile focused window" msgstr "Usuń aktywne okno z układu" -#: dist/prefs.js:1324 +#: dist/prefs.js:595 msgid "Move window to the center" msgstr "Przenieś okno na środek" -#: dist/prefs.js:1326 +#: dist/prefs.js:597 msgid "Move the focused window to the center of the screen" msgstr "Przenieś aktywne okno na środek ekranu" -#: dist/prefs.js:1335 +#: dist/prefs.js:606 msgid "Focus window to the right" msgstr "Aktywuj okno po prawej" -#: dist/prefs.js:1337 +#: dist/prefs.js:608 msgid "Focus the window to the right of the current focused window" msgstr "Aktywuj okno po prawej stronie od aktualnie aktywnego okna" -#: dist/prefs.js:1344 +#: dist/prefs.js:615 msgid "Focus window to the left" msgstr "Aktywuj okno po lewej" -#: dist/prefs.js:1345 +#: dist/prefs.js:616 msgid "Focus the window to the left of the current focused window" msgstr "Aktywuj okno po lewej stronie od aktualnie aktywnego okna" -#: dist/prefs.js:1351 +#: dist/prefs.js:622 msgid "Focus window above" msgstr "Aktywuj okno powyżej" -#: dist/prefs.js:1352 +#: dist/prefs.js:623 msgid "Focus the window above the current focused window" msgstr "Aktywuj okno powyżej aktualnie aktywnego okna" -#: dist/prefs.js:1358 +#: dist/prefs.js:629 msgid "Focus window below" msgstr "Aktywuj okno poniżej" -#: dist/prefs.js:1359 +#: dist/prefs.js:630 msgid "Focus the window below the current focused window" msgstr "Aktywuj okno poniżej aktualnie aktywnego okna" -#: dist/prefs.js:1365 +#: dist/prefs.js:636 msgid "Focus next window" msgstr "Aktywuj następne okno" -#: dist/prefs.js:1366 +#: dist/prefs.js:637 msgid "Focus the window next to the current focused window" msgstr "Aktywuj następne okno obok aktualnie aktywnego" -#: dist/prefs.js:1372 +#: dist/prefs.js:643 msgid "Focus previous window" msgstr "Aktywuj poprzednie okno" -#: dist/prefs.js:1373 +#: dist/prefs.js:644 msgid "Focus the window prior to the current focused window" msgstr "Aktywuj poprzednie okno obok aktualnie aktywnego" -#: dist/prefs.js:1379 +#: dist/prefs.js:650 msgid "Highlight focused window" msgstr "Podświetl aktywne okno" -#: dist/prefs.js:1381 +#: dist/prefs.js:652 msgid "Minimize all the other windows and show only the focused window" msgstr "Zminimalizuj wszystkie inne okna i pokaż tylko aktywne okno" -#: dist/prefs.js:1388 +#: dist/prefs.js:659 msgid "Cycle layouts" msgstr "Przełącz układy" -#: dist/prefs.js:1389 +#: dist/prefs.js:660 msgid "Cycle through available workspace layouts" msgstr "Przełączaj dostępne układy obszaru roboczego" -#: dist/prefs.js:1415 +#: dist/prefs.js:686 msgid "View and Customize all the Shortcuts" msgstr "Wyświetl i dostosuj wszystkie skróty" -#: dist/prefs.js:1443 dist/prefs.js:1444 +#: dist/prefs.js:714 dist/prefs.js:715 msgid "View and Customize Shortcuts" msgstr "Wyświetl i dostosuj skróty" -#: dist/prefs.js:1466 +#: dist/prefs.js:737 msgid "Enable next/previous window focus to wrap around" msgstr "Włącz zawijanie aktywnego okna do następnego/poprzedniego" -#: dist/prefs.js:1468 +#: dist/prefs.js:739 msgid "When focusing next or previous window, wrap around at the window edge" msgstr "" "Podczas przełączania na następne lub poprzednie aktywne okno, zawijaj po " "osiągnięciu krawędzi okien" -#: dist/prefs.js:1474 +#: dist/prefs.js:745 msgid "Restrict directional focus to tiled windows" msgstr "Ogranicz aktywację kierunkową do ułożonych okien" -#: dist/prefs.js:1476 +#: dist/prefs.js:747 msgid "When using directional focus navigation, only consider tiled windows" msgstr "" "Podczas przełączania na następne lub poprzednie aktywne okno, zawijaj po " "osiągnięciu krawędzi okien" -#: dist/prefs.js:1481 +#: dist/prefs.js:752 msgid "Import, export and reset" msgstr "Import, eksport i reset" -#: dist/prefs.js:1483 +#: dist/prefs.js:754 msgid "Import, export and reset the settings of Tiling Shell" msgstr "Importuj, eksportuj i resetuj ustawienia Układania okien" -#: dist/prefs.js:1488 dist/prefs.js:1489 +#: dist/prefs.js:759 dist/prefs.js:760 msgid "Export settings" msgstr "Eksportuj ustawienia" -#: dist/prefs.js:1490 +#: dist/prefs.js:761 msgid "Export settings to a file" msgstr "Eksportuj ustawienia do pliku" -#: dist/prefs.js:1493 +#: dist/prefs.js:764 msgid "Export settings to a text file" msgstr "Eksportuj ustawienia do pliku tekstowego" -#: dist/prefs.js:1500 +#: dist/prefs.js:771 msgid "Text file" msgstr "Plik tekstowy" -#: dist/prefs.js:1543 dist/prefs.js:1544 +#: dist/prefs.js:814 dist/prefs.js:815 msgid "Import settings" msgstr "Importuj ustawienia" -#: dist/prefs.js:1545 +#: dist/prefs.js:816 msgid "Import settings from a file" msgstr "Importuj ustawienia z pliku" -#: dist/prefs.js:1548 +#: dist/prefs.js:819 msgid "Select a text file to import from" msgstr "Wybierz plik tekstowy do importu" -#: dist/prefs.js:1590 dist/prefs.js:1591 +#: dist/prefs.js:861 dist/prefs.js:862 msgid "Reset settings" msgstr "Resetuj ustawienia" -#: dist/prefs.js:1592 +#: dist/prefs.js:863 msgid "Bring back the default settings" msgstr "Przywróć ustawienia domyślne" -#: dist/prefs.js:1607 +#: dist/prefs.js:878 msgid "Donate on ko-fi" msgstr "Dotacja na ko-fi" -#: dist/prefs.js:1613 +#: dist/prefs.js:884 msgid "Report a bug" msgstr "Zgłoś błąd" -#: dist/prefs.js:1619 +#: dist/prefs.js:890 msgid "Request a feature" msgstr "Zgłoś propozycję funkcji" -#: dist/prefs.js:1627 +#: dist/prefs.js:898 msgid "Have issues, you want to suggest a new feature or contribute?" msgstr "Masz problemy, chcesz zasugerować nową funkcję lub wnieść swój wkład?" -#: dist/prefs.js:1634 +#: dist/prefs.js:905 msgid "Open a new issue on" msgstr "Otwórz nowe zgłoszenie na" -#: dist/prefs.js:1814 -msgid "Choose custom color" +#: dist/prefs.js:970 +msgid "Choose how windows snap to screen edges" msgstr "" -#: dist/prefs.js:1815 -msgid "Use system accent color" +#: dist/prefs.js:985 +msgid "Default" msgstr "" -#: dist/prefs.js:1866 dist/prefs.js:1889 -msgid "New accelerator…" -msgstr "Nowy skrót…" +#: dist/prefs.js:986 +#, fuzzy +msgid "Follow quarters or screen halves" +msgstr "Przesuń do najlepszej strefy" -#: dist/prefs.js:1892 -msgid "Use Backspace to clear" -msgstr "Użyj Backspace, aby wyczyścić" +#: dist/prefs.js:991 +msgid "Adaptive" +msgstr "" -#: dist/extension.js:5809 -msgid "Edit Layouts" -msgstr "Edytuj układy" +#: dist/prefs.js:992 +msgid "Follow corners of selected layout or screen halves" +msgstr "" -#: dist/extension.js:5819 -msgid "New Layout" -msgstr "Nowy układ" +#: dist/prefs.js:997 +msgid "Granular" +msgstr "" -#: dist/extension.js:6004 -msgid "to split a tile" -msgstr "aby podzielić kafelek" +#: dist/prefs.js:998 +msgid "Follow currently selected layout" +msgstr "" -#: dist/extension.js:6043 -msgid "to split a tile vertically" -msgstr "aby podzielić kafelek pionowo" +#: dist/prefs.js:1187 +msgid "Choose custom color" +msgstr "Wybierz własny kolor" -#: dist/extension.js:6063 -msgid "to delete a tile" -msgstr "aby usunąć kafelek" +#: dist/prefs.js:1188 +msgid "Use system accent color" +msgstr "Użyj systemowego koloru akcentu" -#: dist/extension.js:6087 -msgid "use the indicator button to save or cancel" -msgstr "użyj przycisku wskaźnika, aby zapisać lub anulować" +#: dist/prefs.js:1241 dist/prefs.js:1267 +msgid "New accelerator…" +msgstr "Nowy skrót…" + +#: dist/prefs.js:1270 +msgid "Use Backspace to clear" +msgstr "Użyj Backspace, aby wyczyścić" #~ msgid "Last version installed" #~ msgstr "Zainstalowano najnowszą wersję" @@ -834,6 +839,12 @@ msgstr "użyj przycisku wskaźnika, aby zapisać lub anulować" #~ msgid "The color of the focused window's border." #~ msgstr "Kolor obramowania aktywnego okna." +#~ msgid "Use custom color" +#~ msgstr "Użyj własnego koloru" + +#~ msgid "Use the color defined here for the focused window's border." +#~ msgstr "Użyj zdefiniowanego tutaj koloru dla obramowania aktywnego okna." + #~ msgid "Focused window border width" #~ msgstr "Szerokość obramowania aktywnego okna" @@ -919,21 +930,36 @@ msgstr "użyj przycisku wskaźnika, aby zapisać lub anulować" #~ msgid "Close" #~ msgstr "Zamknij" +#~ msgid "to split a tile" +#~ msgstr "aby podzielić kafelek" + +#~ msgid "to split a tile vertically" +#~ msgstr "aby podzielić kafelek pionowo" + +#~ msgid "to delete a tile" +#~ msgstr "aby usunąć kafelek" + +#~ msgid "use the indicator button to save or cancel" +#~ msgstr "użyj przycisku wskaźnika, aby zapisać lub anulować" + #~ msgid "How to use the editor" #~ msgstr "Jak używać edytora" #~ msgid "Start editing" #~ msgstr "Rozpocznij edycje" -#~ msgid "Move to best tile" -#~ msgstr "Przesuń do najlepszej strefy" - #~ msgid "Move to leftmost tile" #~ msgstr "Przesuń do strefy najbardziej po lewej" #~ msgid "Move to rightmost tile" #~ msgstr "Przesuń do strefy najbardziej po prawej" +#~ msgid "Edit Layouts" +#~ msgstr "Edytuj układy" + +#~ msgid "New Layout" +#~ msgstr "Nowy układ" + #~ msgid "Menu" #~ msgstr "Menu" diff --git a/translations/pt_BR.po b/translations/pt_BR.po index b4405397..18396b3b 100644 --- a/translations/pt_BR.po +++ b/translations/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Tiling Shell\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-09 11:35+0100\n" +"POT-Creation-Date: 2026-01-03 22:57+0100\n" "PO-Revision-Date: 2025-02-18 10:20-0300\n" "Last-Translator: Rodrigo Mantoan \n" "Language-Team: Portuguese\n" @@ -18,163 +18,164 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Gtranslator 47.1\n" -#: dist/prefs.js:793 +#: dist/prefs.js:59 msgid "General" msgstr "Geral" -#: dist/prefs.js:798 +#: dist/prefs.js:64 msgid "Appearance" msgstr "Aparência" -#: dist/prefs.js:799 +#: dist/prefs.js:65 msgid "Configure the appearance of Tiling Shell" msgstr "Configurar a aparência do Tiling Shell" -#: dist/prefs.js:804 +#: dist/prefs.js:70 msgid "Show Indicator" msgstr "Mostrar indicador" -#: dist/prefs.js:805 +#: dist/prefs.js:71 msgid "Whether to show the panel indicator" msgstr "Se deve mostrar o indicador no painel" -#: dist/prefs.js:810 +#: dist/prefs.js:76 msgid "Inner gaps" msgstr "Espaçamentos internos" -#: dist/prefs.js:811 +#: dist/prefs.js:77 msgid "Gaps between windows" msgstr "Espaçamento entre janelas" -#: dist/prefs.js:816 +#: dist/prefs.js:82 msgid "Outer gaps" msgstr "Espacamentos externos" -#: dist/prefs.js:817 +#: dist/prefs.js:83 msgid "Gaps between a window and the monitor borders" msgstr "Espaçamento entre a janela e as bordas do monitor" -#: dist/prefs.js:821 +#: dist/prefs.js:87 msgid "Blur (experimental feature)" msgstr "Desfoque (recurso experimental)" -#: dist/prefs.js:823 +#: dist/prefs.js:89 msgid "Apply blur effect to Snap Assistant and tile previews" msgstr "Aplicar efeito de desfoque ao Snap Assistant e às pré-visualizações" -#: dist/prefs.js:829 +#: dist/prefs.js:95 msgid "Snap Assistant threshold" msgstr "Limites do Snap Assistant" -#: dist/prefs.js:831 +#: dist/prefs.js:97 msgid "Minimum distance from the Snap Assistant to the pointer to open it" msgstr "Distância mínima do Snap Assistant até o ponteiro para ativá-lo" -#: dist/prefs.js:840 +#: dist/prefs.js:106 msgid "Snap Assistant" msgstr "Snap Assistant" -#: dist/prefs.js:841 +#: dist/prefs.js:107 msgid "Apply blur effect to Snap Assistant" msgstr "Aplicar efeito de desfoque ao Snap Assistant" -#: dist/prefs.js:847 +#: dist/prefs.js:113 msgid "Selected tile preview" msgstr "Pré-visualização do mosaico selecionado" -#: dist/prefs.js:848 +#: dist/prefs.js:114 msgid "Apply blur effect to selected tile preview" msgstr "Aplicar efeito de desfoque à pré-visualização do mosaico selecionado" -#: dist/prefs.js:852 +#: dist/prefs.js:118 msgid "Window border" msgstr "Borda da janela" -#: dist/prefs.js:853 dist/prefs.js:860 +#: dist/prefs.js:119 dist/prefs.js:126 msgid "Show a border around focused window" msgstr "Exibir uma borda ao redor da janela focada" -#: dist/prefs.js:859 +#: dist/prefs.js:125 msgid "Enable" msgstr "Ativar" -#: dist/prefs.js:866 +#: dist/prefs.js:132 msgid "Smart border radius" msgstr "Raio de borda inteligente" -#: dist/prefs.js:867 -msgid "Dynamically adapt to the window’s actual border radius" +#: dist/prefs.js:133 +#, fuzzy +msgid "Dynamically adapt to the window's actual border radius" msgstr "Adaptar dinamicamente ao raio real da borda da janela" -#: dist/prefs.js:873 +#: dist/prefs.js:139 msgid "Width" msgstr "Largura" -#: dist/prefs.js:874 +#: dist/prefs.js:140 msgid "The size of the border" msgstr "O tamanho da borda" -#: dist/prefs.js:883 +#: dist/prefs.js:149 msgid "Border color" msgstr "Cor da borda" -#: dist/prefs.js:884 +#: dist/prefs.js:150 msgid "Choose the color of the border" msgstr "Escolha a cor da borda" -#: dist/prefs.js:900 +#: dist/prefs.js:166 msgid "Animations" msgstr "Animações" -#: dist/prefs.js:901 +#: dist/prefs.js:167 msgid "Customize animations" msgstr "Personalizar animações" -#: dist/prefs.js:907 +#: dist/prefs.js:173 msgid "Snap assistant animation time" msgstr "Tempo de animação do Snap Assistant" -#: dist/prefs.js:908 +#: dist/prefs.js:174 msgid "The snap assistant animation time in milliseconds" msgstr "O tempo de animação do Snap Assistant em milissegundos" -#: dist/prefs.js:916 +#: dist/prefs.js:182 msgid "Tiles animation time" msgstr "Tempo de animação dos mosaicos" -#: dist/prefs.js:917 +#: dist/prefs.js:183 msgid "The tiles animation time in milliseconds" msgstr "O tempo de animação dos mosaicos em milissegundos" -#: dist/prefs.js:923 +#: dist/prefs.js:189 msgid "Behaviour" msgstr "Comportamento" -#: dist/prefs.js:924 +#: dist/prefs.js:190 msgid "Configure the behaviour of Tiling Shell" msgstr "Configurar o comportamento do Tiling Shell" -#: dist/prefs.js:929 +#: dist/prefs.js:195 msgid "Enable Snap Assistant" msgstr "Ativar Snap Assistant" -#: dist/prefs.js:930 +#: dist/prefs.js:196 msgid "Move the window on top of the screen to snap assist it" msgstr "Mover a janela para o topo da tela para ativar o Snap Assistant" -#: dist/prefs.js:935 +#: dist/prefs.js:201 msgid "Enable Tiling System" msgstr "Ativar sistema de mosaicos" -#: dist/prefs.js:936 +#: dist/prefs.js:202 msgid "Hold the activation key while moving a window to tile it" msgstr "Segure a tecla de ativação ao mover uma janela para mosaicar" -#: dist/prefs.js:944 +#: dist/prefs.js:210 msgid "Tiling System deactivation key" msgstr "Tecla de desativação do sistema de mosaicos" -#: dist/prefs.js:946 +#: dist/prefs.js:212 msgid "" "Hold the deactivation key while moving a window to deactivate the tiling " "system" @@ -182,49 +183,49 @@ msgstr "" "Mantenha pressionada a tecla de desativação enquanto move uma janela para " "desativar o sistema de mosaicos" -#: dist/prefs.js:954 +#: dist/prefs.js:220 msgid "Span multiple tiles" msgstr "Expandir para múltiplos mosaicos" -#: dist/prefs.js:955 +#: dist/prefs.js:221 msgid "Hold the activation key to span multiple tiles" msgstr "Segure a tecla de ativação para expandir para múltiplos mosaicos" -#: dist/prefs.js:964 +#: dist/prefs.js:230 msgid "Enable Auto Tiling" msgstr "Ativar mosaico automático" -#: dist/prefs.js:965 +#: dist/prefs.js:231 msgid "Automatically tile new windows to the best tile" msgstr "Organizar automaticamente novas janelas no melhor mosaico" -#: dist/prefs.js:970 +#: dist/prefs.js:236 msgid "Enable auto-resize of the complementing tiled windows" msgstr "" "Ativar redimensionamento automático das janelas em mosaico complementares" -#: dist/prefs.js:972 +#: dist/prefs.js:238 msgid "" "When a tiled window is resized, auto-resize the other tiled windows near it" msgstr "" "Quando uma janela em mosaico for redimensionada, redimensione " "automaticamente as outras próximas" -#: dist/prefs.js:978 +#: dist/prefs.js:244 msgid "Restore window size" msgstr "Restaurar tamanho da janela" -#: dist/prefs.js:980 +#: dist/prefs.js:246 msgid "Whether to restore the windows to their original size when untiled" msgstr "" "Se as janelas devem ser restauradas ao tamanho original ao serem desanexadas" -#: dist/prefs.js:986 +#: dist/prefs.js:252 msgid "Add snap assistant and auto-tile buttons to window menu" msgstr "" "Adicionar botões do Snap Assistant e mosaico automático ao menu da janela" -#: dist/prefs.js:988 +#: dist/prefs.js:254 msgid "" "Add snap assistant and auto-tile buttons in the menu that shows up when you " "right click on a window title" @@ -232,432 +233,455 @@ msgstr "" "Adiciona os botões do Snap Assistant e mosaico automático no menu exibido ao " "clicar com o botão direito no título da janela" -#: dist/prefs.js:994 +#: dist/prefs.js:260 msgid "Add tiled windows to ALT+TAB menu" msgstr "" -#: dist/prefs.js:996 +#: dist/prefs.js:262 msgid "" "Add the tiled windows to the ALT+TAB menu to open all the tiled windows at " "once" msgstr "" -#: dist/prefs.js:1001 +#: dist/prefs.js:267 msgid "Screen Edges" msgstr "Bordes da tela" -#: dist/prefs.js:1003 +#: dist/prefs.js:269 msgid "" "Drag windows against the top, left and right screen edges to resize them" msgstr "" "Arraste as janelas para as bordas superior, esquerda e direita da tela para " "redimensioná-las" -#: dist/prefs.js:1017 +#: dist/prefs.js:283 msgid "Drag against top edge to maximize window" msgstr "Arrastar para a borda superior para maximizar a janela" -#: dist/prefs.js:1018 +#: dist/prefs.js:284 msgid "Drag windows against the top edge to maximize them" msgstr "Arraste as janelas para a borda superior para maximizá-las" -#: dist/prefs.js:1027 +#: dist/prefs.js:293 msgid "Quarter tiling activation area" msgstr "Área de ativação de mosaico em quatro partes" -#: dist/prefs.js:1028 +#: dist/prefs.js:294 #, fuzzy, javascript-format msgid "Activation area to trigger quarter tiling (%% of the screen)" msgstr "Área de ativação para ativar o mosaico em quatro partes (% da tela)" -#: dist/prefs.js:1044 +#: dist/prefs.js:310 msgid "Edge tiling offset" msgstr "" -#: dist/prefs.js:1045 +#: dist/prefs.js:311 msgid "Offset from the screen edge to trigger edge tiling (in pixels)" msgstr "" -#: dist/prefs.js:1062 +#: dist/prefs.js:333 msgid "Windows suggestions" msgstr "Sugestões de janelas" -#: dist/prefs.js:1063 +#: dist/prefs.js:334 msgid "Enable and disable windows suggestions" msgstr "Ativar e desativar sugestões de janelas" -#: dist/prefs.js:1068 +#: dist/prefs.js:339 msgid "Enable window suggestions for the tiling system" msgstr "Ativar sugestões de janelas para o sistema de mosaicos" -#: dist/prefs.js:1070 +#: dist/prefs.js:341 msgid "" "Provides smart suggestions to fill empty tiles when using the tiling system" msgstr "" "Fornece sugestões inteligentes para preencher espaços vazios ao usar o " "sistema de mosaicos" -#: dist/prefs.js:1076 +#: dist/prefs.js:347 msgid "Enable window suggestions for the snap assistant" msgstr "Ativar sugestões de janelas para o Snap Assistant" -#: dist/prefs.js:1078 +#: dist/prefs.js:349 msgid "" "Offers suggestions to populate empty tiles when using the snap assistant" msgstr "" "Oferece sugestões para preencher espaços vazios ao usar o Snap Assistant" -#: dist/prefs.js:1084 +#: dist/prefs.js:355 msgid "Enable window suggestions for screen edge snapping" msgstr "Ativar sugestões de janelas para encaixe nas bordas da tela" -#: dist/prefs.js:1086 +#: dist/prefs.js:357 msgid "Suggests windows to occupy empty tiles when snapping to screen edges" msgstr "" "Sugere janelas para ocupar espaços vazios ao encaixar nas bordas da tela" -#: dist/prefs.js:1092 +#: dist/prefs.js:363 msgid "Layouts" msgstr "Layouts" -#: dist/prefs.js:1093 +#: dist/prefs.js:364 msgid "Configure the layouts of Tiling Shell" msgstr "Configurar os layouts do Tiling Shell" -#: dist/prefs.js:1097 dist/prefs.js:1098 +#: dist/prefs.js:368 dist/prefs.js:369 msgid "Edit layouts" msgstr "Editar layouts" -#: dist/prefs.js:1099 +#: dist/prefs.js:370 msgid "Open the layouts editor" msgstr "Abrir o editor de layouts" -#: dist/prefs.js:1104 dist/prefs.js:1105 dist/prefs.js:1109 +#: dist/prefs.js:375 dist/prefs.js:376 dist/prefs.js:380 msgid "Export layouts" msgstr "Exportar layouts" -#: dist/prefs.js:1106 +#: dist/prefs.js:377 msgid "Export layouts to a file" msgstr "Exportar layouts para um arquivo" -#: dist/prefs.js:1112 dist/prefs.js:1496 +#: dist/prefs.js:383 dist/prefs.js:767 msgid "Save" msgstr "Salvar" -#: dist/prefs.js:1113 dist/prefs.js:1167 dist/prefs.js:1497 dist/prefs.js:1552 +#: dist/prefs.js:384 dist/prefs.js:438 dist/prefs.js:768 dist/prefs.js:823 msgid "Cancel" msgstr "Cancelar" -#: dist/prefs.js:1158 dist/prefs.js:1159 +#: dist/prefs.js:429 dist/prefs.js:430 msgid "Import layouts" msgstr "Importar layouts" -#: dist/prefs.js:1160 +#: dist/prefs.js:431 msgid "Import layouts from a file" msgstr "Importar layouts de um arquivo" -#: dist/prefs.js:1163 +#: dist/prefs.js:434 msgid "Select layouts file" msgstr "Selecionar arquivo de layouts" -#: dist/prefs.js:1166 dist/prefs.js:1551 +#: dist/prefs.js:437 dist/prefs.js:822 msgid "Open" msgstr "Abrir" -#: dist/prefs.js:1214 dist/prefs.js:1215 +#: dist/prefs.js:485 dist/prefs.js:486 msgid "Reset layouts" msgstr "Redefinir layouts" -#: dist/prefs.js:1216 +#: dist/prefs.js:487 msgid "Bring back the default layouts" msgstr "Restaurar layouts padrão" -#: dist/prefs.js:1229 +#: dist/prefs.js:500 msgid "Keybindings" msgstr "Atalhos de teclado" -#: dist/prefs.js:1231 +#: dist/prefs.js:502 msgid "Use hotkeys to perform actions on the focused window" msgstr "Use atalhos de teclado para realizar ações na janela focada" -#: dist/prefs.js:1249 +#: dist/prefs.js:520 msgid "Move window to right tile" msgstr "Mover a janela para o mosaico da direita" -#: dist/prefs.js:1251 +#: dist/prefs.js:522 msgid "Move the focused window to the tile on its right" msgstr "Mover a janela focada para o mosaico à sua direita" -#: dist/prefs.js:1260 +#: dist/prefs.js:531 msgid "Move window to left tile" msgstr "Mover a janela para o mosaico da esquerda" -#: dist/prefs.js:1261 +#: dist/prefs.js:532 msgid "Move the focused window to the tile on its left" msgstr "Mover a janela focada para o mosaico à sua esquerda" -#: dist/prefs.js:1267 +#: dist/prefs.js:538 msgid "Move window to tile above" msgstr "Mover a janela para o mosaico acima" -#: dist/prefs.js:1268 +#: dist/prefs.js:539 msgid "Move the focused window to the tile above" msgstr "Mover a janela focada para o mosaico acima" -#: dist/prefs.js:1274 +#: dist/prefs.js:545 msgid "Move window to tile below" msgstr "Mover a janela para o mosaico abaixo" -#: dist/prefs.js:1275 +#: dist/prefs.js:546 msgid "Move the focused window to the tile below" msgstr "Mover a janela focada para o mosaico abaixo" -#: dist/prefs.js:1281 +#: dist/prefs.js:552 msgid "Span window to right tile" msgstr "Expandir a janela para o mosaico da direita" -#: dist/prefs.js:1282 +#: dist/prefs.js:553 msgid "Span the focused window to the tile on its right" msgstr "Expandir a janela focada para o mosaico à sua direita" -#: dist/prefs.js:1288 +#: dist/prefs.js:559 msgid "Span window to left tile" msgstr "Expandir a janela para o mosaico da esquerda" -#: dist/prefs.js:1289 +#: dist/prefs.js:560 msgid "Span the focused window to the tile on its left" msgstr "Expandir a janela focada para o mosaico à sua esquerda" -#: dist/prefs.js:1295 +#: dist/prefs.js:566 msgid "Span window above" msgstr "Expandir a janela acima" -#: dist/prefs.js:1296 +#: dist/prefs.js:567 msgid "Span the focused window to the tile above" msgstr "Expandir a janela focada para o mosaico acima" -#: dist/prefs.js:1302 +#: dist/prefs.js:573 msgid "Span window down" msgstr "Expandir a janela abaixo" -#: dist/prefs.js:1303 +#: dist/prefs.js:574 msgid "Span the focused window to the tile below" msgstr "Expandir a janela focada para o mosaico abaixo" -#: dist/prefs.js:1309 +#: dist/prefs.js:580 msgid "Span window to all tiles" msgstr "Expandir a janela para todos os mosaicos" -#: dist/prefs.js:1310 +#: dist/prefs.js:581 msgid "Span the focused window to all the tiles" msgstr "Expande a janela focada para todos os mosaicos" -#: dist/prefs.js:1316 +#: dist/prefs.js:587 msgid "Untile focused window" msgstr "Remover janela focada do mosaico" -#: dist/prefs.js:1324 +#: dist/prefs.js:595 msgid "Move window to the center" msgstr "Mover a janela para o centro" -#: dist/prefs.js:1326 +#: dist/prefs.js:597 msgid "Move the focused window to the center of the screen" msgstr "Move a janela focada para o centro da tela" -#: dist/prefs.js:1335 +#: dist/prefs.js:606 msgid "Focus window to the right" msgstr "Focar janela à direita" -#: dist/prefs.js:1337 +#: dist/prefs.js:608 msgid "Focus the window to the right of the current focused window" msgstr "Foca a janela à direita da janela focada" -#: dist/prefs.js:1344 +#: dist/prefs.js:615 msgid "Focus window to the left" msgstr "Focar janela à esquerda" -#: dist/prefs.js:1345 +#: dist/prefs.js:616 msgid "Focus the window to the left of the current focused window" msgstr "Foca a janela à esquerda da janela focada " -#: dist/prefs.js:1351 +#: dist/prefs.js:622 msgid "Focus window above" msgstr "Focar janela acima" -#: dist/prefs.js:1352 +#: dist/prefs.js:623 msgid "Focus the window above the current focused window" msgstr "Foca a janela acima da janela focada" -#: dist/prefs.js:1358 +#: dist/prefs.js:629 msgid "Focus window below" msgstr "Focar janela abaixo" -#: dist/prefs.js:1359 +#: dist/prefs.js:630 msgid "Focus the window below the current focused window" msgstr "Foca a janela abaixo da janela focada" -#: dist/prefs.js:1365 +#: dist/prefs.js:636 msgid "Focus next window" msgstr "Focar próxima janela" -#: dist/prefs.js:1366 +#: dist/prefs.js:637 msgid "Focus the window next to the current focused window" msgstr "Focar a próxima janela adjacente à que está atualmente em foco" -#: dist/prefs.js:1372 +#: dist/prefs.js:643 msgid "Focus previous window" msgstr "Focar janela anterior" -#: dist/prefs.js:1373 +#: dist/prefs.js:644 msgid "Focus the window prior to the current focused window" msgstr "Focar a janela anterior à que está atualmente em foco" -#: dist/prefs.js:1379 +#: dist/prefs.js:650 #, fuzzy msgid "Highlight focused window" msgstr "Remover janela focada do mosaico" -#: dist/prefs.js:1381 +#: dist/prefs.js:652 #, fuzzy msgid "Minimize all the other windows and show only the focused window" msgstr "Use atalhos de teclado para realizar ações na janela focada" -#: dist/prefs.js:1388 +#: dist/prefs.js:659 #, fuzzy msgid "Cycle layouts" msgstr "Redefinir layouts" -#: dist/prefs.js:1389 +#: dist/prefs.js:660 msgid "Cycle through available workspace layouts" msgstr "" -#: dist/prefs.js:1415 +#: dist/prefs.js:686 msgid "View and Customize all the Shortcuts" msgstr "Visualizar e Personalizar todos os Atalhos" -#: dist/prefs.js:1443 dist/prefs.js:1444 +#: dist/prefs.js:714 dist/prefs.js:715 msgid "View and Customize Shortcuts" msgstr "Visualizar e Personalizar Atalhos" -#: dist/prefs.js:1466 +#: dist/prefs.js:737 msgid "Enable next/previous window focus to wrap around" msgstr "Permitir que o foco da janela seguinte/anterior se repita" -#: dist/prefs.js:1468 +#: dist/prefs.js:739 msgid "When focusing next or previous window, wrap around at the window edge" msgstr "Ao focar a janela seguinte ou anterior, envolva a borda da janela" -#: dist/prefs.js:1474 +#: dist/prefs.js:745 msgid "Restrict directional focus to tiled windows" msgstr "" -#: dist/prefs.js:1476 +#: dist/prefs.js:747 msgid "When using directional focus navigation, only consider tiled windows" msgstr "" -#: dist/prefs.js:1481 +#: dist/prefs.js:752 msgid "Import, export and reset" msgstr "Importar, exportar e redefinir" -#: dist/prefs.js:1483 +#: dist/prefs.js:754 msgid "Import, export and reset the settings of Tiling Shell" msgstr "Importar, exportar e redefinir as configurações do Tiling Shell" -#: dist/prefs.js:1488 dist/prefs.js:1489 +#: dist/prefs.js:759 dist/prefs.js:760 msgid "Export settings" msgstr "Exportar configurações" -#: dist/prefs.js:1490 +#: dist/prefs.js:761 msgid "Export settings to a file" msgstr "Exporta as configurações para um arquivo" -#: dist/prefs.js:1493 +#: dist/prefs.js:764 msgid "Export settings to a text file" msgstr "Exportar configurações para um arquivo de texto" -#: dist/prefs.js:1500 +#: dist/prefs.js:771 msgid "Text file" msgstr "Arquivo de texto" -#: dist/prefs.js:1543 dist/prefs.js:1544 +#: dist/prefs.js:814 dist/prefs.js:815 msgid "Import settings" msgstr "Importar configurações de um arquivo" -#: dist/prefs.js:1545 +#: dist/prefs.js:816 msgid "Import settings from a file" msgstr "Importar configurações de um arquivo" -#: dist/prefs.js:1548 +#: dist/prefs.js:819 msgid "Select a text file to import from" msgstr "Selecionar um arquivo de texto para importar" -#: dist/prefs.js:1590 dist/prefs.js:1591 +#: dist/prefs.js:861 dist/prefs.js:862 msgid "Reset settings" msgstr "Redefinir configurações" -#: dist/prefs.js:1592 +#: dist/prefs.js:863 msgid "Bring back the default settings" msgstr "Restaurar configurações padrão" -#: dist/prefs.js:1607 +#: dist/prefs.js:878 msgid "Donate on ko-fi" msgstr "Doar no Ko-fi" -#: dist/prefs.js:1613 +#: dist/prefs.js:884 msgid "Report a bug" msgstr "Relatar um erro" -#: dist/prefs.js:1619 +#: dist/prefs.js:890 msgid "Request a feature" msgstr "Solicitar um recurso" -#: dist/prefs.js:1627 +#: dist/prefs.js:898 msgid "Have issues, you want to suggest a new feature or contribute?" msgstr "Tem algum problema, deseja sugerir um novo recurso ou contribuir?" -#: dist/prefs.js:1634 +#: dist/prefs.js:905 msgid "Open a new issue on" msgstr "Abrir um novo problema em" -#: dist/prefs.js:1814 +#: dist/prefs.js:970 +msgid "Choose how windows snap to screen edges" +msgstr "" + +#: dist/prefs.js:985 +msgid "Default" +msgstr "" + +#: dist/prefs.js:986 +#, fuzzy +msgid "Follow quarters or screen halves" +msgstr "Mover para o melhor mosaico" + +#: dist/prefs.js:991 +msgid "Adaptive" +msgstr "" + +#: dist/prefs.js:992 +msgid "Follow corners of selected layout or screen halves" +msgstr "" + +#: dist/prefs.js:997 +msgid "Granular" +msgstr "" + +#: dist/prefs.js:998 +msgid "Follow currently selected layout" +msgstr "" + +#: dist/prefs.js:1187 msgid "Choose custom color" msgstr "" -#: dist/prefs.js:1815 +#: dist/prefs.js:1188 msgid "Use system accent color" msgstr "" -#: dist/prefs.js:1866 dist/prefs.js:1889 +#: dist/prefs.js:1241 dist/prefs.js:1267 msgid "New accelerator…" msgstr "Novo atalho…" -#: dist/prefs.js:1892 +#: dist/prefs.js:1270 msgid "Use Backspace to clear" msgstr "Pressione Backspace para limpar" -#: dist/extension.js:5809 -msgid "Edit Layouts" -msgstr "Editar layouts" +#~ msgid "Edit Layouts" +#~ msgstr "Editar layouts" -#: dist/extension.js:5819 -msgid "New Layout" -msgstr "Novo layout" +#~ msgid "New Layout" +#~ msgstr "Novo layout" -#: dist/extension.js:6004 -msgid "to split a tile" -msgstr "para dividir um mosaico" +#~ msgid "to split a tile" +#~ msgstr "para dividir um mosaico" -#: dist/extension.js:6043 -msgid "to split a tile vertically" -msgstr "para dividir um mosaico verticalmente" +#~ msgid "to split a tile vertically" +#~ msgstr "para dividir um mosaico verticalmente" -#: dist/extension.js:6063 -msgid "to delete a tile" -msgstr "para excluir um mosaico" +#~ msgid "to delete a tile" +#~ msgstr "para excluir um mosaico" -#: dist/extension.js:6087 -msgid "use the indicator button to save or cancel" -msgstr "use o botão indicador para salvar ou cancelar" +#~ msgid "use the indicator button to save or cancel" +#~ msgstr "use o botão indicador para salvar ou cancelar" #~ msgid "Menu" #~ msgstr "Menu" @@ -677,9 +701,6 @@ msgstr "use o botão indicador para salvar ou cancelar" #~ msgid "Start editing" #~ msgstr "Iniciar edição" -#~ msgid "Move to best tile" -#~ msgstr "Mover para o melhor mosaico" - #~ msgid "Move to leftmost tile" #~ msgstr "Mover para o mosaico mais à esquerda" diff --git a/translations/ru.po b/translations/ru.po index 392890c1..506a1ab3 100644 --- a/translations/ru.po +++ b/translations/ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Tiling Shell\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-09 11:35+0100\n" +"POT-Creation-Date: 2026-01-03 22:57+0100\n" "PO-Revision-Date: 2025-03-30 00:08+0700\n" "Last-Translator: Victor \n" "Language-Team: Russian\n" @@ -18,165 +18,166 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: dist/prefs.js:793 +#: dist/prefs.js:59 msgid "General" msgstr "Общие" -#: dist/prefs.js:798 +#: dist/prefs.js:64 msgid "Appearance" msgstr "Внешний вид" -#: dist/prefs.js:799 +#: dist/prefs.js:65 msgid "Configure the appearance of Tiling Shell" msgstr "Настройка внешнего вида Tiling Shell" -#: dist/prefs.js:804 +#: dist/prefs.js:70 msgid "Show Indicator" msgstr "Показать индикатор" -#: dist/prefs.js:805 +#: dist/prefs.js:71 msgid "Whether to show the panel indicator" msgstr "Отображать ли индикатор на панели" -#: dist/prefs.js:810 +#: dist/prefs.js:76 msgid "Inner gaps" msgstr "Внутренние отступы" -#: dist/prefs.js:811 +#: dist/prefs.js:77 msgid "Gaps between windows" msgstr "Отступы между окнами" -#: dist/prefs.js:816 +#: dist/prefs.js:82 msgid "Outer gaps" msgstr "Внешние отступы" -#: dist/prefs.js:817 +#: dist/prefs.js:83 msgid "Gaps between a window and the monitor borders" msgstr "Отступы между окном и границами монитора" -#: dist/prefs.js:821 +#: dist/prefs.js:87 msgid "Blur (experimental feature)" msgstr "Размытие (экспериментальная функция)" -#: dist/prefs.js:823 +#: dist/prefs.js:89 msgid "Apply blur effect to Snap Assistant and tile previews" msgstr "Применить эффект размытия к Snap Assistant и превью плиток" -#: dist/prefs.js:829 +#: dist/prefs.js:95 msgid "Snap Assistant threshold" msgstr "Порог срабатывания Snap Assistant" -#: dist/prefs.js:831 +#: dist/prefs.js:97 msgid "Minimum distance from the Snap Assistant to the pointer to open it" msgstr "" "Минимальное расстояние от указателя до Snap Assistant для его активации" -#: dist/prefs.js:840 +#: dist/prefs.js:106 msgid "Snap Assistant" msgstr "Snap Assistant" -#: dist/prefs.js:841 +#: dist/prefs.js:107 msgid "Apply blur effect to Snap Assistant" msgstr "Применить эффект размытия к Snap Assistant" -#: dist/prefs.js:847 +#: dist/prefs.js:113 msgid "Selected tile preview" msgstr "Превью выбранной плитки" -#: dist/prefs.js:848 +#: dist/prefs.js:114 msgid "Apply blur effect to selected tile preview" msgstr "Применить эффект размытия к превью выбранной плитки" -#: dist/prefs.js:852 +#: dist/prefs.js:118 msgid "Window border" msgstr "Граница окна" -#: dist/prefs.js:853 dist/prefs.js:860 +#: dist/prefs.js:119 dist/prefs.js:126 msgid "Show a border around focused window" msgstr "Показать границу вокруг активного окна" -#: dist/prefs.js:859 +#: dist/prefs.js:125 msgid "Enable" msgstr "Включить" -#: dist/prefs.js:866 +#: dist/prefs.js:132 msgid "Smart border radius" msgstr "Умный радиус границ" -#: dist/prefs.js:867 -msgid "Dynamically adapt to the window’s actual border radius" +#: dist/prefs.js:133 +#, fuzzy +msgid "Dynamically adapt to the window's actual border radius" msgstr "Динамически подстраиваться под радиус границ окна" -#: dist/prefs.js:873 +#: dist/prefs.js:139 msgid "Width" msgstr "Ширина" -#: dist/prefs.js:874 +#: dist/prefs.js:140 msgid "The size of the border" msgstr "Размер границы" -#: dist/prefs.js:883 +#: dist/prefs.js:149 msgid "Border color" msgstr "Цвет границы" -#: dist/prefs.js:884 +#: dist/prefs.js:150 msgid "Choose the color of the border" msgstr "Выберите цвет границы" -#: dist/prefs.js:900 +#: dist/prefs.js:166 msgid "Animations" msgstr "Анимации" -#: dist/prefs.js:901 +#: dist/prefs.js:167 msgid "Customize animations" msgstr "Настройка анимаций" # #: dist/prefs.js:886 -#: dist/prefs.js:907 +#: dist/prefs.js:173 msgid "Snap assistant animation time" msgstr "Время анимации Snap Assistant" -#: dist/prefs.js:908 +#: dist/prefs.js:174 msgid "The snap assistant animation time in milliseconds" msgstr "Длительность анимации Snap Assistant в миллисекундах" -#: dist/prefs.js:916 +#: dist/prefs.js:182 msgid "Tiles animation time" msgstr "Время анимации плиток" -#: dist/prefs.js:917 +#: dist/prefs.js:183 msgid "The tiles animation time in milliseconds" msgstr "Длительность анимации плиток в миллисекундах" -#: dist/prefs.js:923 +#: dist/prefs.js:189 msgid "Behaviour" msgstr "Поведение" -#: dist/prefs.js:924 +#: dist/prefs.js:190 msgid "Configure the behaviour of Tiling Shell" msgstr "Настройка поведения Tiling Shell" -#: dist/prefs.js:929 +#: dist/prefs.js:195 msgid "Enable Snap Assistant" msgstr "Включить Snap Assistant" -#: dist/prefs.js:930 +#: dist/prefs.js:196 msgid "Move the window on top of the screen to snap assist it" msgstr "Переместите окно к верхнему краю экрана для вызова Snap Assistant" -#: dist/prefs.js:935 +#: dist/prefs.js:201 msgid "Enable Tiling System" msgstr "Включить тайлинг систему" -#: dist/prefs.js:936 +#: dist/prefs.js:202 msgid "Hold the activation key while moving a window to tile it" msgstr "Удерживайте клавишу активации при перемещении окна для его размещения" -#: dist/prefs.js:944 +#: dist/prefs.js:210 msgid "Tiling System deactivation key" msgstr "Клавиша отключения тайлинг системы" -#: dist/prefs.js:946 +#: dist/prefs.js:212 msgid "" "Hold the deactivation key while moving a window to deactivate the tiling " "system" @@ -184,46 +185,46 @@ msgstr "" "Удерживайте клавишу отключения при перемещении окна, чтобы отключить тайлинг " "систему" -#: dist/prefs.js:954 +#: dist/prefs.js:220 msgid "Span multiple tiles" msgstr "Растянуть на несколько плиток" -#: dist/prefs.js:955 +#: dist/prefs.js:221 msgid "Hold the activation key to span multiple tiles" msgstr "" "Удерживайте клавишу активации, чтобы растянуть окно на несколько плиток" -#: dist/prefs.js:964 +#: dist/prefs.js:230 msgid "Enable Auto Tiling" msgstr "Включить автотайлинг" -#: dist/prefs.js:965 +#: dist/prefs.js:231 msgid "Automatically tile new windows to the best tile" msgstr "Автоматически размещать новые окна в подходящие плитки" -#: dist/prefs.js:970 +#: dist/prefs.js:236 msgid "Enable auto-resize of the complementing tiled windows" msgstr "Включить автоизменение размера соседних плиток" -#: dist/prefs.js:972 +#: dist/prefs.js:238 msgid "" "When a tiled window is resized, auto-resize the other tiled windows near it" msgstr "" "При изменении размера плитки автоматически менять размер соседних плиток" -#: dist/prefs.js:978 +#: dist/prefs.js:244 msgid "Restore window size" msgstr "Восстанавливать размер окна" -#: dist/prefs.js:980 +#: dist/prefs.js:246 msgid "Whether to restore the windows to their original size when untiled" msgstr "Восстанавливать ли оригинальный размер окон при откреплении от плитки" -#: dist/prefs.js:986 +#: dist/prefs.js:252 msgid "Add snap assistant and auto-tile buttons to window menu" msgstr "Добавить кнопки Snap Assistant и автотайлинга в меню окна" -#: dist/prefs.js:988 +#: dist/prefs.js:254 msgid "" "Add snap assistant and auto-tile buttons in the menu that shows up when you " "right click on a window title" @@ -231,428 +232,450 @@ msgstr "" "Добавить кнопки Snap Assistant и автотайлинга в меню, вызываемое правым " "кликом по заголовку окна" -#: dist/prefs.js:994 +#: dist/prefs.js:260 msgid "Add tiled windows to ALT+TAB menu" msgstr "" -#: dist/prefs.js:996 +#: dist/prefs.js:262 msgid "" "Add the tiled windows to the ALT+TAB menu to open all the tiled windows at " "once" msgstr "" -#: dist/prefs.js:1001 +#: dist/prefs.js:267 msgid "Screen Edges" msgstr "Границы экрана" -#: dist/prefs.js:1003 +#: dist/prefs.js:269 msgid "" "Drag windows against the top, left and right screen edges to resize them" msgstr "" "Перетаскивание окна к верхней, левой или правой границе экрана для изменения " "их размера" -#: dist/prefs.js:1017 +#: dist/prefs.js:283 msgid "Drag against top edge to maximize window" msgstr "Перетаскивание к верхней границе для максимизации окна" -#: dist/prefs.js:1018 +#: dist/prefs.js:284 msgid "Drag windows against the top edge to maximize them" msgstr "Перетаскивание окна к верхней границе экрана, чтобы развернуть его" -#: dist/prefs.js:1027 +#: dist/prefs.js:293 msgid "Quarter tiling activation area" msgstr "Область активации тайлинга на четверть" -#: dist/prefs.js:1028 +#: dist/prefs.js:294 #, javascript-format msgid "Activation area to trigger quarter tiling (%% of the screen)" msgstr "Область активации тайлинга на четверть (%% от экрана)" -#: dist/prefs.js:1044 +#: dist/prefs.js:310 msgid "Edge tiling offset" msgstr "" -#: dist/prefs.js:1045 +#: dist/prefs.js:311 msgid "Offset from the screen edge to trigger edge tiling (in pixels)" msgstr "" -#: dist/prefs.js:1062 +#: dist/prefs.js:333 msgid "Windows suggestions" msgstr "Подсказки размещения окон" -#: dist/prefs.js:1063 +#: dist/prefs.js:334 msgid "Enable and disable windows suggestions" msgstr "Включение и отключение подсказок размещения окон" -#: dist/prefs.js:1068 +#: dist/prefs.js:339 msgid "Enable window suggestions for the tiling system" msgstr "Включить подсказки размещения окон для тайлинг системы" -#: dist/prefs.js:1070 +#: dist/prefs.js:341 msgid "" "Provides smart suggestions to fill empty tiles when using the tiling system" msgstr "" "Предлагает умные варианты для заполнения пустых плиток при использовании " "тайлинг системы" -#: dist/prefs.js:1076 +#: dist/prefs.js:347 msgid "Enable window suggestions for the snap assistant" msgstr "Включить подсказки размещения окон для Snap Assistant" -#: dist/prefs.js:1078 +#: dist/prefs.js:349 msgid "" "Offers suggestions to populate empty tiles when using the snap assistant" msgstr "" "Предлагает варианты заполнения пустых плиток при использовании Snap Assistant" -#: dist/prefs.js:1084 +#: dist/prefs.js:355 msgid "Enable window suggestions for screen edge snapping" msgstr "Включить подсказки размещения окон при привязке к краям экрана" -#: dist/prefs.js:1086 +#: dist/prefs.js:357 msgid "Suggests windows to occupy empty tiles when snapping to screen edges" msgstr "" "Предлагает окна для заполнения пустых плиток при привязке к краям экрана" -#: dist/prefs.js:1092 +#: dist/prefs.js:363 msgid "Layouts" msgstr "Макеты" -#: dist/prefs.js:1093 +#: dist/prefs.js:364 msgid "Configure the layouts of Tiling Shell" msgstr "Настройка макетов Tiling Shell" -#: dist/prefs.js:1097 dist/prefs.js:1098 +#: dist/prefs.js:368 dist/prefs.js:369 msgid "Edit layouts" msgstr "Редактировать макеты" -#: dist/prefs.js:1099 +#: dist/prefs.js:370 msgid "Open the layouts editor" msgstr "Открыть редактор макетов" -#: dist/prefs.js:1104 dist/prefs.js:1105 dist/prefs.js:1109 +#: dist/prefs.js:375 dist/prefs.js:376 dist/prefs.js:380 msgid "Export layouts" msgstr "Экспорт макетов" -#: dist/prefs.js:1106 +#: dist/prefs.js:377 msgid "Export layouts to a file" msgstr "Экспортировать макеты в файл" -#: dist/prefs.js:1112 dist/prefs.js:1496 +#: dist/prefs.js:383 dist/prefs.js:767 msgid "Save" msgstr "Сохранить" -#: dist/prefs.js:1113 dist/prefs.js:1167 dist/prefs.js:1497 dist/prefs.js:1552 +#: dist/prefs.js:384 dist/prefs.js:438 dist/prefs.js:768 dist/prefs.js:823 msgid "Cancel" msgstr "Отмена" -#: dist/prefs.js:1158 dist/prefs.js:1159 +#: dist/prefs.js:429 dist/prefs.js:430 msgid "Import layouts" msgstr "Импорт макетов" -#: dist/prefs.js:1160 +#: dist/prefs.js:431 msgid "Import layouts from a file" msgstr "Импортировать макеты из файла" -#: dist/prefs.js:1163 +#: dist/prefs.js:434 msgid "Select layouts file" msgstr "Выберите файл макетов" -#: dist/prefs.js:1166 dist/prefs.js:1551 +#: dist/prefs.js:437 dist/prefs.js:822 msgid "Open" msgstr "Открыть" -#: dist/prefs.js:1214 dist/prefs.js:1215 +#: dist/prefs.js:485 dist/prefs.js:486 msgid "Reset layouts" msgstr "Сброс макетов" -#: dist/prefs.js:1216 +#: dist/prefs.js:487 msgid "Bring back the default layouts" msgstr "Восстановить макеты по умолчанию" -#: dist/prefs.js:1229 +#: dist/prefs.js:500 msgid "Keybindings" msgstr "Горячие клавиши" -#: dist/prefs.js:1231 +#: dist/prefs.js:502 msgid "Use hotkeys to perform actions on the focused window" msgstr "Используйте горячие клавиши для действий с активным окном" -#: dist/prefs.js:1249 +#: dist/prefs.js:520 msgid "Move window to right tile" msgstr "Переместить окно в правую плитку" -#: dist/prefs.js:1251 +#: dist/prefs.js:522 msgid "Move the focused window to the tile on its right" msgstr "Переместить активное окно в плитку справа" -#: dist/prefs.js:1260 +#: dist/prefs.js:531 msgid "Move window to left tile" msgstr "Переместить окно в левую плитку" -#: dist/prefs.js:1261 +#: dist/prefs.js:532 msgid "Move the focused window to the tile on its left" msgstr "Переместить активное окно в плитку слева" -#: dist/prefs.js:1267 +#: dist/prefs.js:538 msgid "Move window to tile above" msgstr "Переместить окно в плитку выше" -#: dist/prefs.js:1268 +#: dist/prefs.js:539 msgid "Move the focused window to the tile above" msgstr "Переместить активное окно в плитку сверху" -#: dist/prefs.js:1274 +#: dist/prefs.js:545 msgid "Move window to tile below" msgstr "Переместить окно в плитку ниже" -#: dist/prefs.js:1275 +#: dist/prefs.js:546 msgid "Move the focused window to the tile below" msgstr "Переместить активное окно в плитку снизу" -#: dist/prefs.js:1281 +#: dist/prefs.js:552 msgid "Span window to right tile" msgstr "Растянуть окно на правую плитку" -#: dist/prefs.js:1282 +#: dist/prefs.js:553 msgid "Span the focused window to the tile on its right" msgstr "Растянуть активное окно на плитку справа" -#: dist/prefs.js:1288 +#: dist/prefs.js:559 msgid "Span window to left tile" msgstr "Растянуть окно на левую плитку" -#: dist/prefs.js:1289 +#: dist/prefs.js:560 msgid "Span the focused window to the tile on its left" msgstr "Растянуть активное окно на плитку слева" -#: dist/prefs.js:1295 +#: dist/prefs.js:566 msgid "Span window above" msgstr "Растянуть окно вверх" -#: dist/prefs.js:1296 +#: dist/prefs.js:567 msgid "Span the focused window to the tile above" msgstr "Растянуть активное окно на плитку сверху" -#: dist/prefs.js:1302 +#: dist/prefs.js:573 msgid "Span window down" msgstr "Растянуть окно вниз" -#: dist/prefs.js:1303 +#: dist/prefs.js:574 msgid "Span the focused window to the tile below" msgstr "Растянуть активное окно на плитку снизу" -#: dist/prefs.js:1309 +#: dist/prefs.js:580 msgid "Span window to all tiles" msgstr "Растянуть окно на все плитки" -#: dist/prefs.js:1310 +#: dist/prefs.js:581 msgid "Span the focused window to all the tiles" msgstr "Растянуть активное окно на все плитки" -#: dist/prefs.js:1316 +#: dist/prefs.js:587 msgid "Untile focused window" msgstr "Извлечь активное окно из тайлинга" -#: dist/prefs.js:1324 +#: dist/prefs.js:595 msgid "Move window to the center" msgstr "Переместить окно в центр" -#: dist/prefs.js:1326 +#: dist/prefs.js:597 msgid "Move the focused window to the center of the screen" msgstr "Переместить активное окно в центр экрана" -#: dist/prefs.js:1335 +#: dist/prefs.js:606 msgid "Focus window to the right" msgstr "Фокус на окне справа" -#: dist/prefs.js:1337 +#: dist/prefs.js:608 msgid "Focus the window to the right of the current focused window" msgstr "Сфокусироваться на окне справа от текущего" -#: dist/prefs.js:1344 +#: dist/prefs.js:615 msgid "Focus window to the left" msgstr "Фокус на окне слева" -#: dist/prefs.js:1345 +#: dist/prefs.js:616 msgid "Focus the window to the left of the current focused window" msgstr "Сфокусироваться на окне слева от текущего" -#: dist/prefs.js:1351 +#: dist/prefs.js:622 msgid "Focus window above" msgstr "Фокус на окне сверху" -#: dist/prefs.js:1352 +#: dist/prefs.js:623 msgid "Focus the window above the current focused window" msgstr "Сфокусироваться на окне выше текущего" -#: dist/prefs.js:1358 +#: dist/prefs.js:629 msgid "Focus window below" msgstr "Фокус на окне снизу" -#: dist/prefs.js:1359 +#: dist/prefs.js:630 msgid "Focus the window below the current focused window" msgstr "Сфокусироваться на окне ниже текущего" -#: dist/prefs.js:1365 +#: dist/prefs.js:636 msgid "Focus next window" msgstr "Фокус на следующем окне" -#: dist/prefs.js:1366 +#: dist/prefs.js:637 msgid "Focus the window next to the current focused window" msgstr "Сфокусироваться на следующем окне относительно текущего" -#: dist/prefs.js:1372 +#: dist/prefs.js:643 msgid "Focus previous window" msgstr "Фокус на предыдущем окне" -#: dist/prefs.js:1373 +#: dist/prefs.js:644 msgid "Focus the window prior to the current focused window" msgstr "Сфокусироваться на предыдущем окне относительно текущего" -#: dist/prefs.js:1379 +#: dist/prefs.js:650 msgid "Highlight focused window" msgstr "Выделить активное окно" -#: dist/prefs.js:1381 +#: dist/prefs.js:652 msgid "Minimize all the other windows and show only the focused window" msgstr "Свернуть все остальные окна и показать только активное" -#: dist/prefs.js:1388 +#: dist/prefs.js:659 #, fuzzy msgid "Cycle layouts" msgstr "Сброс макетов" -#: dist/prefs.js:1389 +#: dist/prefs.js:660 msgid "Cycle through available workspace layouts" msgstr "" -#: dist/prefs.js:1415 +#: dist/prefs.js:686 msgid "View and Customize all the Shortcuts" msgstr "Просмотр и настройка всех сочетаний клавиш" -#: dist/prefs.js:1443 dist/prefs.js:1444 +#: dist/prefs.js:714 dist/prefs.js:715 msgid "View and Customize Shortcuts" msgstr "Просмотр и настройка горячих клавиш" -#: dist/prefs.js:1466 +#: dist/prefs.js:737 msgid "Enable next/previous window focus to wrap around" msgstr "Включить зацикливание при переключении окон" -#: dist/prefs.js:1468 +#: dist/prefs.js:739 msgid "When focusing next or previous window, wrap around at the window edge" msgstr "" "При переключении между окнами переходить от последнего к первому и наоборот" -#: dist/prefs.js:1474 +#: dist/prefs.js:745 msgid "Restrict directional focus to tiled windows" msgstr "" -#: dist/prefs.js:1476 +#: dist/prefs.js:747 msgid "When using directional focus navigation, only consider tiled windows" msgstr "" -#: dist/prefs.js:1481 +#: dist/prefs.js:752 msgid "Import, export and reset" msgstr "Импорт, экспорт и сброс" -#: dist/prefs.js:1483 +#: dist/prefs.js:754 msgid "Import, export and reset the settings of Tiling Shell" msgstr "Импорт, экспорт и сброс настроек Tiling Shell" -#: dist/prefs.js:1488 dist/prefs.js:1489 +#: dist/prefs.js:759 dist/prefs.js:760 msgid "Export settings" msgstr "Экспорт настроек" -#: dist/prefs.js:1490 +#: dist/prefs.js:761 msgid "Export settings to a file" msgstr "Экспортировать настройки в файл" -#: dist/prefs.js:1493 +#: dist/prefs.js:764 msgid "Export settings to a text file" msgstr "Экспортировать настройки в текстовый файл" -#: dist/prefs.js:1500 +#: dist/prefs.js:771 msgid "Text file" msgstr "Текстовый файл" -#: dist/prefs.js:1543 dist/prefs.js:1544 +#: dist/prefs.js:814 dist/prefs.js:815 msgid "Import settings" msgstr "Импорт настроек" -#: dist/prefs.js:1545 +#: dist/prefs.js:816 msgid "Import settings from a file" msgstr "Импортировать настройки из файла" -#: dist/prefs.js:1548 +#: dist/prefs.js:819 msgid "Select a text file to import from" msgstr "Выберите текстовый файл для импорта" -#: dist/prefs.js:1590 dist/prefs.js:1591 +#: dist/prefs.js:861 dist/prefs.js:862 msgid "Reset settings" msgstr "Сброс настроек" -#: dist/prefs.js:1592 +#: dist/prefs.js:863 msgid "Bring back the default settings" msgstr "Восстановить настройки по умолчанию" -#: dist/prefs.js:1607 +#: dist/prefs.js:878 msgid "Donate on ko-fi" msgstr "Поддержать на Ko-fi" -#: dist/prefs.js:1613 +#: dist/prefs.js:884 msgid "Report a bug" msgstr "Сообщить об ошибке" -#: dist/prefs.js:1619 +#: dist/prefs.js:890 msgid "Request a feature" msgstr "Предложить новую функцию" -#: dist/prefs.js:1627 +#: dist/prefs.js:898 msgid "Have issues, you want to suggest a new feature or contribute?" msgstr "Возникли проблемы, есть идея или хотите внести вклад?" -#: dist/prefs.js:1634 +#: dist/prefs.js:905 msgid "Open a new issue on" msgstr "Открыть новую задачу на" -#: dist/prefs.js:1814 +#: dist/prefs.js:970 +msgid "Choose how windows snap to screen edges" +msgstr "" + +#: dist/prefs.js:985 +msgid "Default" +msgstr "" + +#: dist/prefs.js:986 +msgid "Follow quarters or screen halves" +msgstr "" + +#: dist/prefs.js:991 +msgid "Adaptive" +msgstr "" + +#: dist/prefs.js:992 +msgid "Follow corners of selected layout or screen halves" +msgstr "" + +#: dist/prefs.js:997 +msgid "Granular" +msgstr "" + +#: dist/prefs.js:998 +msgid "Follow currently selected layout" +msgstr "" + +#: dist/prefs.js:1187 msgid "Choose custom color" msgstr "" -#: dist/prefs.js:1815 +#: dist/prefs.js:1188 msgid "Use system accent color" msgstr "" -#: dist/prefs.js:1866 dist/prefs.js:1889 +#: dist/prefs.js:1241 dist/prefs.js:1267 msgid "New accelerator…" msgstr "Новое сочетание клавиш…" -#: dist/prefs.js:1892 +#: dist/prefs.js:1270 msgid "Use Backspace to clear" msgstr "Нажмите Backspace для очистки" -#: dist/extension.js:5809 -msgid "Edit Layouts" -msgstr "Редактировать макеты" +#~ msgid "Edit Layouts" +#~ msgstr "Редактировать макеты" -#: dist/extension.js:5819 -msgid "New Layout" -msgstr "Новый макет" +#~ msgid "New Layout" +#~ msgstr "Новый макет" -#: dist/extension.js:6004 -msgid "to split a tile" -msgstr "для разделения плитки" +#~ msgid "to split a tile" +#~ msgstr "для разделения плитки" -#: dist/extension.js:6043 -msgid "to split a tile vertically" -msgstr "для вертикального разделения плитки" +#~ msgid "to split a tile vertically" +#~ msgstr "для вертикального разделения плитки" -#: dist/extension.js:6063 -msgid "to delete a tile" -msgstr "для удаления плитки" +#~ msgid "to delete a tile" +#~ msgstr "для удаления плитки" -#: dist/extension.js:6087 -msgid "use the indicator button to save or cancel" -msgstr "используйте кнопку-индикатор для сохранения или отмены" +#~ msgid "use the indicator button to save or cancel" +#~ msgstr "используйте кнопку-индикатор для сохранения или отмены" diff --git a/translations/tilingshell@ferrarodomenico.com.pot b/translations/tilingshell@ferrarodomenico.com.pot index f8464da1..3766bcf2 100644 --- a/translations/tilingshell@ferrarodomenico.com.pot +++ b/translations/tilingshell@ferrarodomenico.com.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-09 11:35+0100\n" +"POT-Creation-Date: 2026-01-03 22:57+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,625 +17,629 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: dist/prefs.js:793 +#: dist/prefs.js:59 msgid "General" msgstr "" -#: dist/prefs.js:798 +#: dist/prefs.js:64 msgid "Appearance" msgstr "" -#: dist/prefs.js:799 +#: dist/prefs.js:65 msgid "Configure the appearance of Tiling Shell" msgstr "" -#: dist/prefs.js:804 +#: dist/prefs.js:70 msgid "Show Indicator" msgstr "" -#: dist/prefs.js:805 +#: dist/prefs.js:71 msgid "Whether to show the panel indicator" msgstr "" -#: dist/prefs.js:810 +#: dist/prefs.js:76 msgid "Inner gaps" msgstr "" -#: dist/prefs.js:811 +#: dist/prefs.js:77 msgid "Gaps between windows" msgstr "" -#: dist/prefs.js:816 +#: dist/prefs.js:82 msgid "Outer gaps" msgstr "" -#: dist/prefs.js:817 +#: dist/prefs.js:83 msgid "Gaps between a window and the monitor borders" msgstr "" -#: dist/prefs.js:821 +#: dist/prefs.js:87 msgid "Blur (experimental feature)" msgstr "" -#: dist/prefs.js:823 +#: dist/prefs.js:89 msgid "Apply blur effect to Snap Assistant and tile previews" msgstr "" -#: dist/prefs.js:829 +#: dist/prefs.js:95 msgid "Snap Assistant threshold" msgstr "" -#: dist/prefs.js:831 +#: dist/prefs.js:97 msgid "Minimum distance from the Snap Assistant to the pointer to open it" msgstr "" -#: dist/prefs.js:840 +#: dist/prefs.js:106 msgid "Snap Assistant" msgstr "" -#: dist/prefs.js:841 +#: dist/prefs.js:107 msgid "Apply blur effect to Snap Assistant" msgstr "" -#: dist/prefs.js:847 +#: dist/prefs.js:113 msgid "Selected tile preview" msgstr "" -#: dist/prefs.js:848 +#: dist/prefs.js:114 msgid "Apply blur effect to selected tile preview" msgstr "" -#: dist/prefs.js:852 +#: dist/prefs.js:118 msgid "Window border" msgstr "" -#: dist/prefs.js:853 dist/prefs.js:860 +#: dist/prefs.js:119 dist/prefs.js:126 msgid "Show a border around focused window" msgstr "" -#: dist/prefs.js:859 +#: dist/prefs.js:125 msgid "Enable" msgstr "" -#: dist/prefs.js:866 +#: dist/prefs.js:132 msgid "Smart border radius" msgstr "" -#: dist/prefs.js:867 -msgid "Dynamically adapt to the window’s actual border radius" +#: dist/prefs.js:133 +msgid "Dynamically adapt to the window's actual border radius" msgstr "" -#: dist/prefs.js:873 +#: dist/prefs.js:139 msgid "Width" msgstr "" -#: dist/prefs.js:874 +#: dist/prefs.js:140 msgid "The size of the border" msgstr "" -#: dist/prefs.js:883 +#: dist/prefs.js:149 msgid "Border color" msgstr "" -#: dist/prefs.js:884 +#: dist/prefs.js:150 msgid "Choose the color of the border" msgstr "" -#: dist/prefs.js:900 +#: dist/prefs.js:166 msgid "Animations" msgstr "" -#: dist/prefs.js:901 +#: dist/prefs.js:167 msgid "Customize animations" msgstr "" -#: dist/prefs.js:907 +#: dist/prefs.js:173 msgid "Snap assistant animation time" msgstr "" -#: dist/prefs.js:908 +#: dist/prefs.js:174 msgid "The snap assistant animation time in milliseconds" msgstr "" -#: dist/prefs.js:916 +#: dist/prefs.js:182 msgid "Tiles animation time" msgstr "" -#: dist/prefs.js:917 +#: dist/prefs.js:183 msgid "The tiles animation time in milliseconds" msgstr "" -#: dist/prefs.js:923 +#: dist/prefs.js:189 msgid "Behaviour" msgstr "" -#: dist/prefs.js:924 +#: dist/prefs.js:190 msgid "Configure the behaviour of Tiling Shell" msgstr "" -#: dist/prefs.js:929 +#: dist/prefs.js:195 msgid "Enable Snap Assistant" msgstr "" -#: dist/prefs.js:930 +#: dist/prefs.js:196 msgid "Move the window on top of the screen to snap assist it" msgstr "" -#: dist/prefs.js:935 +#: dist/prefs.js:201 msgid "Enable Tiling System" msgstr "" -#: dist/prefs.js:936 +#: dist/prefs.js:202 msgid "Hold the activation key while moving a window to tile it" msgstr "" -#: dist/prefs.js:944 +#: dist/prefs.js:210 msgid "Tiling System deactivation key" msgstr "" -#: dist/prefs.js:946 +#: dist/prefs.js:212 msgid "" "Hold the deactivation key while moving a window to deactivate the tiling " "system" msgstr "" -#: dist/prefs.js:954 +#: dist/prefs.js:220 msgid "Span multiple tiles" msgstr "" -#: dist/prefs.js:955 +#: dist/prefs.js:221 msgid "Hold the activation key to span multiple tiles" msgstr "" -#: dist/prefs.js:964 +#: dist/prefs.js:230 msgid "Enable Auto Tiling" msgstr "" -#: dist/prefs.js:965 +#: dist/prefs.js:231 msgid "Automatically tile new windows to the best tile" msgstr "" -#: dist/prefs.js:970 +#: dist/prefs.js:236 msgid "Enable auto-resize of the complementing tiled windows" msgstr "" -#: dist/prefs.js:972 +#: dist/prefs.js:238 msgid "" "When a tiled window is resized, auto-resize the other tiled windows near it" msgstr "" -#: dist/prefs.js:978 +#: dist/prefs.js:244 msgid "Restore window size" msgstr "" -#: dist/prefs.js:980 +#: dist/prefs.js:246 msgid "Whether to restore the windows to their original size when untiled" msgstr "" -#: dist/prefs.js:986 +#: dist/prefs.js:252 msgid "Add snap assistant and auto-tile buttons to window menu" msgstr "" -#: dist/prefs.js:988 +#: dist/prefs.js:254 msgid "" "Add snap assistant and auto-tile buttons in the menu that shows up when you " "right click on a window title" msgstr "" -#: dist/prefs.js:994 +#: dist/prefs.js:260 msgid "Add tiled windows to ALT+TAB menu" msgstr "" -#: dist/prefs.js:996 +#: dist/prefs.js:262 msgid "" "Add the tiled windows to the ALT+TAB menu to open all the tiled windows at " "once" msgstr "" -#: dist/prefs.js:1001 +#: dist/prefs.js:267 msgid "Screen Edges" msgstr "" -#: dist/prefs.js:1003 +#: dist/prefs.js:269 msgid "" "Drag windows against the top, left and right screen edges to resize them" msgstr "" -#: dist/prefs.js:1017 +#: dist/prefs.js:283 msgid "Drag against top edge to maximize window" msgstr "" -#: dist/prefs.js:1018 +#: dist/prefs.js:284 msgid "Drag windows against the top edge to maximize them" msgstr "" -#: dist/prefs.js:1027 +#: dist/prefs.js:293 msgid "Quarter tiling activation area" msgstr "" -#: dist/prefs.js:1028 +#: dist/prefs.js:294 #, javascript-format msgid "Activation area to trigger quarter tiling (%% of the screen)" msgstr "" -#: dist/prefs.js:1044 +#: dist/prefs.js:310 msgid "Edge tiling offset" msgstr "" -#: dist/prefs.js:1045 +#: dist/prefs.js:311 msgid "Offset from the screen edge to trigger edge tiling (in pixels)" msgstr "" -#: dist/prefs.js:1062 +#: dist/prefs.js:333 msgid "Windows suggestions" msgstr "" -#: dist/prefs.js:1063 +#: dist/prefs.js:334 msgid "Enable and disable windows suggestions" msgstr "" -#: dist/prefs.js:1068 +#: dist/prefs.js:339 msgid "Enable window suggestions for the tiling system" msgstr "" -#: dist/prefs.js:1070 +#: dist/prefs.js:341 msgid "" "Provides smart suggestions to fill empty tiles when using the tiling system" msgstr "" -#: dist/prefs.js:1076 +#: dist/prefs.js:347 msgid "Enable window suggestions for the snap assistant" msgstr "" -#: dist/prefs.js:1078 +#: dist/prefs.js:349 msgid "" "Offers suggestions to populate empty tiles when using the snap assistant" msgstr "" -#: dist/prefs.js:1084 -msgid "Enable window suggestions for screen edge snapping" +#: dist/prefs.js:355 +msgid "Enable window suggestions for screen edge tiling" msgstr "" -#: dist/prefs.js:1086 +#: dist/prefs.js:357 msgid "Suggests windows to occupy empty tiles when snapping to screen edges" msgstr "" -#: dist/prefs.js:1092 +#: dist/prefs.js:363 msgid "Layouts" msgstr "" -#: dist/prefs.js:1093 +#: dist/prefs.js:364 msgid "Configure the layouts of Tiling Shell" msgstr "" -#: dist/prefs.js:1097 dist/prefs.js:1098 +#: dist/prefs.js:368 dist/prefs.js:369 msgid "Edit layouts" msgstr "" -#: dist/prefs.js:1099 +#: dist/prefs.js:370 msgid "Open the layouts editor" msgstr "" -#: dist/prefs.js:1104 dist/prefs.js:1105 dist/prefs.js:1109 +#: dist/prefs.js:375 dist/prefs.js:376 dist/prefs.js:380 msgid "Export layouts" msgstr "" -#: dist/prefs.js:1106 +#: dist/prefs.js:377 msgid "Export layouts to a file" msgstr "" -#: dist/prefs.js:1112 dist/prefs.js:1496 +#: dist/prefs.js:383 dist/prefs.js:767 msgid "Save" msgstr "" -#: dist/prefs.js:1113 dist/prefs.js:1167 dist/prefs.js:1497 dist/prefs.js:1552 +#: dist/prefs.js:384 dist/prefs.js:438 dist/prefs.js:768 dist/prefs.js:823 msgid "Cancel" msgstr "" -#: dist/prefs.js:1158 dist/prefs.js:1159 +#: dist/prefs.js:429 dist/prefs.js:430 msgid "Import layouts" msgstr "" -#: dist/prefs.js:1160 +#: dist/prefs.js:431 msgid "Import layouts from a file" msgstr "" -#: dist/prefs.js:1163 +#: dist/prefs.js:434 msgid "Select layouts file" msgstr "" -#: dist/prefs.js:1166 dist/prefs.js:1551 +#: dist/prefs.js:437 dist/prefs.js:822 msgid "Open" msgstr "" -#: dist/prefs.js:1214 dist/prefs.js:1215 +#: dist/prefs.js:485 dist/prefs.js:486 msgid "Reset layouts" msgstr "" -#: dist/prefs.js:1216 +#: dist/prefs.js:487 msgid "Bring back the default layouts" msgstr "" -#: dist/prefs.js:1229 +#: dist/prefs.js:500 msgid "Keybindings" msgstr "" -#: dist/prefs.js:1231 +#: dist/prefs.js:502 msgid "Use hotkeys to perform actions on the focused window" msgstr "" -#: dist/prefs.js:1249 +#: dist/prefs.js:520 msgid "Move window to right tile" msgstr "" -#: dist/prefs.js:1251 +#: dist/prefs.js:522 msgid "Move the focused window to the tile on its right" msgstr "" -#: dist/prefs.js:1260 +#: dist/prefs.js:531 msgid "Move window to left tile" msgstr "" -#: dist/prefs.js:1261 +#: dist/prefs.js:532 msgid "Move the focused window to the tile on its left" msgstr "" -#: dist/prefs.js:1267 +#: dist/prefs.js:538 msgid "Move window to tile above" msgstr "" -#: dist/prefs.js:1268 +#: dist/prefs.js:539 msgid "Move the focused window to the tile above" msgstr "" -#: dist/prefs.js:1274 +#: dist/prefs.js:545 msgid "Move window to tile below" msgstr "" -#: dist/prefs.js:1275 +#: dist/prefs.js:546 msgid "Move the focused window to the tile below" msgstr "" -#: dist/prefs.js:1281 +#: dist/prefs.js:552 msgid "Span window to right tile" msgstr "" -#: dist/prefs.js:1282 +#: dist/prefs.js:553 msgid "Span the focused window to the tile on its right" msgstr "" -#: dist/prefs.js:1288 +#: dist/prefs.js:559 msgid "Span window to left tile" msgstr "" -#: dist/prefs.js:1289 +#: dist/prefs.js:560 msgid "Span the focused window to the tile on its left" msgstr "" -#: dist/prefs.js:1295 +#: dist/prefs.js:566 msgid "Span window above" msgstr "" -#: dist/prefs.js:1296 +#: dist/prefs.js:567 msgid "Span the focused window to the tile above" msgstr "" -#: dist/prefs.js:1302 +#: dist/prefs.js:573 msgid "Span window down" msgstr "" -#: dist/prefs.js:1303 +#: dist/prefs.js:574 msgid "Span the focused window to the tile below" msgstr "" -#: dist/prefs.js:1309 +#: dist/prefs.js:580 msgid "Span window to all tiles" msgstr "" -#: dist/prefs.js:1310 +#: dist/prefs.js:581 msgid "Span the focused window to all the tiles" msgstr "" -#: dist/prefs.js:1316 +#: dist/prefs.js:587 msgid "Untile focused window" msgstr "" -#: dist/prefs.js:1324 +#: dist/prefs.js:595 msgid "Move window to the center" msgstr "" -#: dist/prefs.js:1326 +#: dist/prefs.js:597 msgid "Move the focused window to the center of the screen" msgstr "" -#: dist/prefs.js:1335 +#: dist/prefs.js:606 msgid "Focus window to the right" msgstr "" -#: dist/prefs.js:1337 +#: dist/prefs.js:608 msgid "Focus the window to the right of the current focused window" msgstr "" -#: dist/prefs.js:1344 +#: dist/prefs.js:615 msgid "Focus window to the left" msgstr "" -#: dist/prefs.js:1345 +#: dist/prefs.js:616 msgid "Focus the window to the left of the current focused window" msgstr "" -#: dist/prefs.js:1351 +#: dist/prefs.js:622 msgid "Focus window above" msgstr "" -#: dist/prefs.js:1352 +#: dist/prefs.js:623 msgid "Focus the window above the current focused window" msgstr "" -#: dist/prefs.js:1358 +#: dist/prefs.js:629 msgid "Focus window below" msgstr "" -#: dist/prefs.js:1359 +#: dist/prefs.js:630 msgid "Focus the window below the current focused window" msgstr "" -#: dist/prefs.js:1365 +#: dist/prefs.js:636 msgid "Focus next window" msgstr "" -#: dist/prefs.js:1366 +#: dist/prefs.js:637 msgid "Focus the window next to the current focused window" msgstr "" -#: dist/prefs.js:1372 +#: dist/prefs.js:643 msgid "Focus previous window" msgstr "" -#: dist/prefs.js:1373 +#: dist/prefs.js:644 msgid "Focus the window prior to the current focused window" msgstr "" -#: dist/prefs.js:1379 +#: dist/prefs.js:650 msgid "Highlight focused window" msgstr "" -#: dist/prefs.js:1381 +#: dist/prefs.js:652 msgid "Minimize all the other windows and show only the focused window" msgstr "" -#: dist/prefs.js:1388 +#: dist/prefs.js:659 msgid "Cycle layouts" msgstr "" -#: dist/prefs.js:1389 +#: dist/prefs.js:660 msgid "Cycle through available workspace layouts" msgstr "" -#: dist/prefs.js:1415 +#: dist/prefs.js:686 msgid "View and Customize all the Shortcuts" msgstr "" -#: dist/prefs.js:1443 dist/prefs.js:1444 +#: dist/prefs.js:714 dist/prefs.js:715 msgid "View and Customize Shortcuts" msgstr "" -#: dist/prefs.js:1466 +#: dist/prefs.js:737 msgid "Enable next/previous window focus to wrap around" msgstr "" -#: dist/prefs.js:1468 +#: dist/prefs.js:739 msgid "When focusing next or previous window, wrap around at the window edge" msgstr "" -#: dist/prefs.js:1474 +#: dist/prefs.js:745 msgid "Restrict directional focus to tiled windows" msgstr "" -#: dist/prefs.js:1476 +#: dist/prefs.js:747 msgid "When using directional focus navigation, only consider tiled windows" msgstr "" -#: dist/prefs.js:1481 +#: dist/prefs.js:752 msgid "Import, export and reset" msgstr "" -#: dist/prefs.js:1483 +#: dist/prefs.js:754 msgid "Import, export and reset the settings of Tiling Shell" msgstr "" -#: dist/prefs.js:1488 dist/prefs.js:1489 +#: dist/prefs.js:759 dist/prefs.js:760 msgid "Export settings" msgstr "" -#: dist/prefs.js:1490 +#: dist/prefs.js:761 msgid "Export settings to a file" msgstr "" -#: dist/prefs.js:1493 +#: dist/prefs.js:764 msgid "Export settings to a text file" msgstr "" -#: dist/prefs.js:1500 +#: dist/prefs.js:771 msgid "Text file" msgstr "" -#: dist/prefs.js:1543 dist/prefs.js:1544 +#: dist/prefs.js:814 dist/prefs.js:815 msgid "Import settings" msgstr "" -#: dist/prefs.js:1545 +#: dist/prefs.js:816 msgid "Import settings from a file" msgstr "" -#: dist/prefs.js:1548 +#: dist/prefs.js:819 msgid "Select a text file to import from" msgstr "" -#: dist/prefs.js:1590 dist/prefs.js:1591 +#: dist/prefs.js:861 dist/prefs.js:862 msgid "Reset settings" msgstr "" -#: dist/prefs.js:1592 +#: dist/prefs.js:863 msgid "Bring back the default settings" msgstr "" -#: dist/prefs.js:1607 +#: dist/prefs.js:878 msgid "Donate on ko-fi" msgstr "" -#: dist/prefs.js:1613 +#: dist/prefs.js:884 msgid "Report a bug" msgstr "" -#: dist/prefs.js:1619 +#: dist/prefs.js:890 msgid "Request a feature" msgstr "" -#: dist/prefs.js:1627 +#: dist/prefs.js:898 msgid "Have issues, you want to suggest a new feature or contribute?" msgstr "" -#: dist/prefs.js:1634 +#: dist/prefs.js:905 msgid "Open a new issue on" msgstr "" -#: dist/prefs.js:1814 -msgid "Choose custom color" +#: dist/prefs.js:970 +msgid "Choose how windows snap to screen edges" msgstr "" -#: dist/prefs.js:1815 -msgid "Use system accent color" +#: dist/prefs.js:985 +msgid "Default" msgstr "" -#: dist/prefs.js:1866 dist/prefs.js:1889 -msgid "New accelerator…" +#: dist/prefs.js:986 +msgid "Follow quarters or screen halves" msgstr "" -#: dist/prefs.js:1892 -msgid "Use Backspace to clear" +#: dist/prefs.js:991 +msgid "Adaptive" msgstr "" -#: dist/extension.js:5809 -msgid "Edit Layouts" +#: dist/prefs.js:992 +msgid "Follow corners of selected layout or screen halves" msgstr "" -#: dist/extension.js:5819 -msgid "New Layout" +#: dist/prefs.js:997 +msgid "Granular" msgstr "" -#: dist/extension.js:6004 -msgid "to split a tile" +#: dist/prefs.js:998 +msgid "Follow currently selected layout" msgstr "" -#: dist/extension.js:6043 -msgid "to split a tile vertically" +#: dist/prefs.js:1187 +msgid "Choose custom color" msgstr "" -#: dist/extension.js:6063 -msgid "to delete a tile" +#: dist/prefs.js:1188 +msgid "Use system accent color" msgstr "" -#: dist/extension.js:6087 -msgid "use the indicator button to save or cancel" +#: dist/prefs.js:1241 dist/prefs.js:1267 +msgid "New accelerator…" +msgstr "" + +#: dist/prefs.js:1270 +msgid "Use Backspace to clear" msgstr "" diff --git a/translations/tr.po b/translations/tr.po index 1423b5ee..8220c003 100644 --- a/translations/tr.po +++ b/translations/tr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-09 11:35+0100\n" +"POT-Creation-Date: 2026-01-03 22:57+0100\n" "PO-Revision-Date: 2025-05-09 10:05+0300\n" "Last-Translator: Osman KARAGÖZ \n" "Language-Team: \n" @@ -18,165 +18,165 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.6\n" -#: dist/prefs.js:793 +#: dist/prefs.js:59 msgid "General" msgstr "Genel" -#: dist/prefs.js:798 +#: dist/prefs.js:64 msgid "Appearance" msgstr "Görünüm" -#: dist/prefs.js:799 +#: dist/prefs.js:65 msgid "Configure the appearance of Tiling Shell" msgstr "Tiling Shell'in görünümünü yapılandır" -#: dist/prefs.js:804 +#: dist/prefs.js:70 msgid "Show Indicator" msgstr "Gösterge Düğmesini Göster" -#: dist/prefs.js:805 +#: dist/prefs.js:71 msgid "Whether to show the panel indicator" msgstr "Panelde gösterge düğmesinin gösterilip gösterilmeyeceği" -#: dist/prefs.js:810 +#: dist/prefs.js:76 msgid "Inner gaps" msgstr "İç boşluklar" -#: dist/prefs.js:811 +#: dist/prefs.js:77 msgid "Gaps between windows" msgstr "Pencereler arasındaki boşluklar" -#: dist/prefs.js:816 +#: dist/prefs.js:82 msgid "Outer gaps" msgstr "Dış boşluklar" -#: dist/prefs.js:817 +#: dist/prefs.js:83 msgid "Gaps between a window and the monitor borders" msgstr "Pencere ile ekran kenarları arasındaki boşluklar" -#: dist/prefs.js:821 +#: dist/prefs.js:87 msgid "Blur (experimental feature)" msgstr "Bulanıklık (deneysel özellik)" -#: dist/prefs.js:823 +#: dist/prefs.js:89 msgid "Apply blur effect to Snap Assistant and tile previews" msgstr "" "Yerleşim Yardımcısına ve döşeme önizlemelerine bulanıklık efekti uygula" -#: dist/prefs.js:829 +#: dist/prefs.js:95 msgid "Snap Assistant threshold" msgstr "Yerleşim Yardımcısı eşiği" -#: dist/prefs.js:831 +#: dist/prefs.js:97 msgid "Minimum distance from the Snap Assistant to the pointer to open it" msgstr "Yerleşim Yardımcısını açmak için işaretçi ile arasındaki en az mesafe" -#: dist/prefs.js:840 +#: dist/prefs.js:106 msgid "Snap Assistant" msgstr "Yerleşim Yardımcısı" -#: dist/prefs.js:841 +#: dist/prefs.js:107 msgid "Apply blur effect to Snap Assistant" msgstr "Yerleşim Yardımcısına bulanıklık efekti uygula" -#: dist/prefs.js:847 +#: dist/prefs.js:113 msgid "Selected tile preview" msgstr "Seçili döşeme önizlemesi" -#: dist/prefs.js:848 +#: dist/prefs.js:114 msgid "Apply blur effect to selected tile preview" msgstr "Seçili döşeme önizlemesine bulanıklık efekti uygula" -#: dist/prefs.js:852 +#: dist/prefs.js:118 msgid "Window border" msgstr "Pencere kenarlığı" -#: dist/prefs.js:853 dist/prefs.js:860 +#: dist/prefs.js:119 dist/prefs.js:126 msgid "Show a border around focused window" msgstr "Odaklanan pencere etrafında kenarlık göster" -#: dist/prefs.js:859 +#: dist/prefs.js:125 msgid "Enable" msgstr "Etkinleştir" -#: dist/prefs.js:866 +#: dist/prefs.js:132 msgid "Smart border radius" msgstr "Akıllı köşe yuvalama" -#: dist/prefs.js:867 +#: dist/prefs.js:133 #, fuzzy -msgid "Dynamically adapt to the window’s actual border radius" +msgid "Dynamically adapt to the window's actual border radius" msgstr "Pencerenin gerçek köşe yuvarlaklığına dinamik olarak uyum sağlar" -#: dist/prefs.js:873 +#: dist/prefs.js:139 msgid "Width" msgstr "Genişlik" -#: dist/prefs.js:874 +#: dist/prefs.js:140 msgid "The size of the border" msgstr "Kenarlığın boyutu" -#: dist/prefs.js:883 +#: dist/prefs.js:149 msgid "Border color" msgstr "Kenarlık rengi" -#: dist/prefs.js:884 +#: dist/prefs.js:150 msgid "Choose the color of the border" msgstr "Kenarlık rengini seçin" -#: dist/prefs.js:900 +#: dist/prefs.js:166 msgid "Animations" msgstr "Animasyonlar" -#: dist/prefs.js:901 +#: dist/prefs.js:167 msgid "Customize animations" msgstr "Animasyonları özelleştir" -#: dist/prefs.js:907 +#: dist/prefs.js:173 msgid "Snap assistant animation time" msgstr "Yerleşim yardımcısı animasyon süresi" -#: dist/prefs.js:908 +#: dist/prefs.js:174 msgid "The snap assistant animation time in milliseconds" msgstr "Yerleşim yardımcısı animasyon süresi (milisaniye cinsinden)" -#: dist/prefs.js:916 +#: dist/prefs.js:182 msgid "Tiles animation time" msgstr "Döşeme animasyon süresi" -#: dist/prefs.js:917 +#: dist/prefs.js:183 msgid "The tiles animation time in milliseconds" msgstr "Döşeme animasyon süresi (milisaniye cinsinden)" -#: dist/prefs.js:923 +#: dist/prefs.js:189 msgid "Behaviour" msgstr "Davranış" -#: dist/prefs.js:924 +#: dist/prefs.js:190 msgid "Configure the behaviour of Tiling Shell" msgstr "Tiling Shell'in davranışını yapılandır" -#: dist/prefs.js:929 +#: dist/prefs.js:195 msgid "Enable Snap Assistant" msgstr "Yerleşim Yardımcısını Etkinleştir" -#: dist/prefs.js:930 +#: dist/prefs.js:196 msgid "Move the window on top of the screen to snap assist it" msgstr "Pencereyi ekranın üstüne taşıyarak yerleşim yardımcısını etkinleştir" -#: dist/prefs.js:935 +#: dist/prefs.js:201 msgid "Enable Tiling System" msgstr "Döşeme Sistemini Etkinleştir" -#: dist/prefs.js:936 +#: dist/prefs.js:202 msgid "Hold the activation key while moving a window to tile it" msgstr "Bir pencereyi döşemek için taşırken etkinleştirme tuşunu basılı tutun" -#: dist/prefs.js:944 +#: dist/prefs.js:210 msgid "Tiling System deactivation key" msgstr "Döşeme Sistemi devre dışı bırakma tuşu" -#: dist/prefs.js:946 +#: dist/prefs.js:212 msgid "" "Hold the deactivation key while moving a window to deactivate the tiling " "system" @@ -184,49 +184,49 @@ msgstr "" "Döşeme sistemini devre dışı bırakmak için pencereyi taşırken devre dışı " "bırakma tuşunu basılı tutun" -#: dist/prefs.js:954 +#: dist/prefs.js:220 msgid "Span multiple tiles" msgstr "Birden çok döşemeyi kapsa" -#: dist/prefs.js:955 +#: dist/prefs.js:221 msgid "Hold the activation key to span multiple tiles" msgstr "Birden çok döşemeyi kapsamak için etkinleştirme tuşunu basılı tutun" -#: dist/prefs.js:964 +#: dist/prefs.js:230 msgid "Enable Auto Tiling" msgstr "Otomatik Döşemeyi Etkinleştir" -#: dist/prefs.js:965 +#: dist/prefs.js:231 msgid "Automatically tile new windows to the best tile" msgstr "Yeni pencereleri en uygun döşemeye otomatik olarak yerleştir" -#: dist/prefs.js:970 +#: dist/prefs.js:236 msgid "Enable auto-resize of the complementing tiled windows" msgstr "" "Tamamlayıcı döşenmiş pencerelerin otomatik boyutlandırmasını etkinleştir" -#: dist/prefs.js:972 +#: dist/prefs.js:238 msgid "" "When a tiled window is resized, auto-resize the other tiled windows near it" msgstr "" "Döşenmiş bir pencere yeniden boyutlandırıldığında, yakınındaki diğer " "döşenmiş pencereleri otomatik olarak yeniden boyutlandır" -#: dist/prefs.js:978 +#: dist/prefs.js:244 msgid "Restore window size" msgstr "Pencere boyutunu geri yükle" -#: dist/prefs.js:980 +#: dist/prefs.js:246 msgid "Whether to restore the windows to their original size when untiled" msgstr "" "Döşeme kaldırıldığında pencerelerin orijinal boyutlarına geri yüklenip " "yüklenmeyeceği" -#: dist/prefs.js:986 +#: dist/prefs.js:252 msgid "Add snap assistant and auto-tile buttons to window menu" msgstr "Pencere menüsüne yerleşim yardımcısı ve otomatik döşeme düğmeleri ekle" -#: dist/prefs.js:988 +#: dist/prefs.js:254 msgid "" "Add snap assistant and auto-tile buttons in the menu that shows up when you " "right click on a window title" @@ -234,431 +234,453 @@ msgstr "" "Bir pencere başlığına sağ tıkladığınızda açılan menüye yerleşim yardımcısı " "ve otomatik döşeme düğmeleri ekler" -#: dist/prefs.js:994 +#: dist/prefs.js:260 msgid "Add tiled windows to ALT+TAB menu" msgstr "" -#: dist/prefs.js:996 +#: dist/prefs.js:262 msgid "" "Add the tiled windows to the ALT+TAB menu to open all the tiled windows at " "once" msgstr "" -#: dist/prefs.js:1001 +#: dist/prefs.js:267 msgid "Screen Edges" msgstr "Ekran Kenarları" -#: dist/prefs.js:1003 +#: dist/prefs.js:269 msgid "" "Drag windows against the top, left and right screen edges to resize them" msgstr "" "Pencereleri yeniden boyutlandırmak için üst, sol ve sağ ekran kenarlarına " "sürükleyin" -#: dist/prefs.js:1017 +#: dist/prefs.js:283 msgid "Drag against top edge to maximize window" msgstr "Pencereyi büyütmek için üst kenara sürükleyin" -#: dist/prefs.js:1018 +#: dist/prefs.js:284 msgid "Drag windows against the top edge to maximize them" msgstr "Pencereleri büyütmek için üst kenara sürükleyin" -#: dist/prefs.js:1027 +#: dist/prefs.js:293 msgid "Quarter tiling activation area" msgstr "Çeyrek döşeme etkinleştirme alanı" -#: dist/prefs.js:1028 +#: dist/prefs.js:294 #, fuzzy, javascript-format msgid "Activation area to trigger quarter tiling (%% of the screen)" msgstr "Çeyrek döşemeyi tetiklemek için etkinleştirme alanı (ekranın %'si)" -#: dist/prefs.js:1044 +#: dist/prefs.js:310 msgid "Edge tiling offset" msgstr "" -#: dist/prefs.js:1045 +#: dist/prefs.js:311 msgid "Offset from the screen edge to trigger edge tiling (in pixels)" msgstr "" -#: dist/prefs.js:1062 +#: dist/prefs.js:333 msgid "Windows suggestions" msgstr "Pencere önerileri" -#: dist/prefs.js:1063 +#: dist/prefs.js:334 msgid "Enable and disable windows suggestions" msgstr "Pencere önerilerini etkinleştir ve devre dışı bırak" -#: dist/prefs.js:1068 +#: dist/prefs.js:339 msgid "Enable window suggestions for the tiling system" msgstr "Döşeme sistemi için pencere önerilerini etkinleştir" -#: dist/prefs.js:1070 +#: dist/prefs.js:341 msgid "" "Provides smart suggestions to fill empty tiles when using the tiling system" msgstr "" "Döşeme sistemi kullanılırken boş döşemeleri doldurmak için akıllı öneriler " "sağlar" -#: dist/prefs.js:1076 +#: dist/prefs.js:347 msgid "Enable window suggestions for the snap assistant" msgstr "Yerleşim yardımcısı için pencere önerilerini etkinleştir" -#: dist/prefs.js:1078 +#: dist/prefs.js:349 msgid "" "Offers suggestions to populate empty tiles when using the snap assistant" msgstr "" "Yerleşim yardımcısı kullanılırken boş döşemeleri doldurmak için öneriler " "sunar" -#: dist/prefs.js:1084 +#: dist/prefs.js:355 msgid "Enable window suggestions for screen edge snapping" msgstr "Ekran kenarına yapıştırma için pencere önerilerini etkinleştir" -#: dist/prefs.js:1086 +#: dist/prefs.js:357 msgid "Suggests windows to occupy empty tiles when snapping to screen edges" msgstr "" "Ekran kenarlarına yapıştırırken boş döşemeleri doldurmak için pencere " "önerileri sunar" -#: dist/prefs.js:1092 +#: dist/prefs.js:363 msgid "Layouts" msgstr "Yerleşimler" -#: dist/prefs.js:1093 +#: dist/prefs.js:364 msgid "Configure the layouts of Tiling Shell" msgstr "Tiling Shell'in yerleşimlerini yapılandır" -#: dist/prefs.js:1097 dist/prefs.js:1098 +#: dist/prefs.js:368 dist/prefs.js:369 msgid "Edit layouts" msgstr "Yerleşimleri düzenle" -#: dist/prefs.js:1099 +#: dist/prefs.js:370 msgid "Open the layouts editor" msgstr "Yerleşim düzenleyiciyi aç" -#: dist/prefs.js:1104 dist/prefs.js:1105 dist/prefs.js:1109 +#: dist/prefs.js:375 dist/prefs.js:376 dist/prefs.js:380 msgid "Export layouts" msgstr "Yerleşimleri dışa aktar" -#: dist/prefs.js:1106 +#: dist/prefs.js:377 msgid "Export layouts to a file" msgstr "Yerleşimleri bir dosyaya aktar" -#: dist/prefs.js:1112 dist/prefs.js:1496 +#: dist/prefs.js:383 dist/prefs.js:767 msgid "Save" msgstr "Kaydet" -#: dist/prefs.js:1113 dist/prefs.js:1167 dist/prefs.js:1497 dist/prefs.js:1552 +#: dist/prefs.js:384 dist/prefs.js:438 dist/prefs.js:768 dist/prefs.js:823 msgid "Cancel" msgstr "Vazgeç" -#: dist/prefs.js:1158 dist/prefs.js:1159 +#: dist/prefs.js:429 dist/prefs.js:430 msgid "Import layouts" msgstr "Yerleşimleri içe aktar" -#: dist/prefs.js:1160 +#: dist/prefs.js:431 msgid "Import layouts from a file" msgstr "Bir dosyadan yerleşimleri içe aktar" -#: dist/prefs.js:1163 +#: dist/prefs.js:434 msgid "Select layouts file" msgstr "Yerleşim dosyasını seç" -#: dist/prefs.js:1166 dist/prefs.js:1551 +#: dist/prefs.js:437 dist/prefs.js:822 msgid "Open" msgstr "Aç" -#: dist/prefs.js:1214 dist/prefs.js:1215 +#: dist/prefs.js:485 dist/prefs.js:486 msgid "Reset layouts" msgstr "Yerleşimleri sıfırla" -#: dist/prefs.js:1216 +#: dist/prefs.js:487 msgid "Bring back the default layouts" msgstr "Varsayılan yerleşimleri geri yükle" -#: dist/prefs.js:1229 +#: dist/prefs.js:500 msgid "Keybindings" msgstr "Klavye kısayolları" -#: dist/prefs.js:1231 +#: dist/prefs.js:502 msgid "Use hotkeys to perform actions on the focused window" msgstr "Odaklanan pencerede işlem yapmak için kısayol tuşlarını kullanın" -#: dist/prefs.js:1249 +#: dist/prefs.js:520 msgid "Move window to right tile" msgstr "Pencereyi sağ döşemeye taşı" -#: dist/prefs.js:1251 +#: dist/prefs.js:522 msgid "Move the focused window to the tile on its right" msgstr "Odaklanan pencereyi sağındaki döşemeye taşı" -#: dist/prefs.js:1260 +#: dist/prefs.js:531 msgid "Move window to left tile" msgstr "Pencereyi sol döşemeye taşı" -#: dist/prefs.js:1261 +#: dist/prefs.js:532 msgid "Move the focused window to the tile on its left" msgstr "Odaklanan pencereyi solundaki döşemeye taşı" -#: dist/prefs.js:1267 +#: dist/prefs.js:538 msgid "Move window to tile above" msgstr "Pencereyi yukarıdaki döşemeye taşı" -#: dist/prefs.js:1268 +#: dist/prefs.js:539 msgid "Move the focused window to the tile above" msgstr "Odaklanan pencereyi yukarıdaki döşemeye taşı" -#: dist/prefs.js:1274 +#: dist/prefs.js:545 msgid "Move window to tile below" msgstr "Pencereyi aşağıdaki döşemeye taşı" -#: dist/prefs.js:1275 +#: dist/prefs.js:546 msgid "Move the focused window to the tile below" msgstr "Odaklanan pencereyi aşağıdaki döşemeye taşı" -#: dist/prefs.js:1281 +#: dist/prefs.js:552 msgid "Span window to right tile" msgstr "Pencereyi sağ döşemeye genişlet" -#: dist/prefs.js:1282 +#: dist/prefs.js:553 msgid "Span the focused window to the tile on its right" msgstr "Odaklanan pencereyi sağındaki döşemeye genişlet" -#: dist/prefs.js:1288 +#: dist/prefs.js:559 msgid "Span window to left tile" msgstr "Pencereyi sol döşemeye genişlet" -#: dist/prefs.js:1289 +#: dist/prefs.js:560 msgid "Span the focused window to the tile on its left" msgstr "Odaklanan pencereyi solundaki döşemeye genişlet" -#: dist/prefs.js:1295 +#: dist/prefs.js:566 msgid "Span window above" msgstr "Pencereyi yukarıdaki döşemeye genişlet" -#: dist/prefs.js:1296 +#: dist/prefs.js:567 msgid "Span the focused window to the tile above" msgstr "Odaklanan pencereyi yukarıdaki döşemeye genişlet" -#: dist/prefs.js:1302 +#: dist/prefs.js:573 msgid "Span window down" msgstr "Pencereyi aşağıdaki döşemeye genişlet" -#: dist/prefs.js:1303 +#: dist/prefs.js:574 msgid "Span the focused window to the tile below" msgstr "Odaklanan pencereyi aşağıdaki döşemeye genişlet" -#: dist/prefs.js:1309 +#: dist/prefs.js:580 msgid "Span window to all tiles" msgstr "Pencereyi tüm döşemelere genişlet" -#: dist/prefs.js:1310 +#: dist/prefs.js:581 msgid "Span the focused window to all the tiles" msgstr "Odaklanan pencereyi tüm döşemelere genişlet" -#: dist/prefs.js:1316 +#: dist/prefs.js:587 msgid "Untile focused window" msgstr "Odaklanan pencereyi döşemeden çıkar" -#: dist/prefs.js:1324 +#: dist/prefs.js:595 msgid "Move window to the center" msgstr "Pencereyi merkeze taşı" -#: dist/prefs.js:1326 +#: dist/prefs.js:597 msgid "Move the focused window to the center of the screen" msgstr "Odaklanan pencereyi ekranın merkezine taşı" -#: dist/prefs.js:1335 +#: dist/prefs.js:606 msgid "Focus window to the right" msgstr "Sağdaki pencereye odaklan" -#: dist/prefs.js:1337 +#: dist/prefs.js:608 msgid "Focus the window to the right of the current focused window" msgstr "Geçerli odaklı pencerenin sağındaki pencereye odaklan" -#: dist/prefs.js:1344 +#: dist/prefs.js:615 msgid "Focus window to the left" msgstr "Soldaki pencereye odaklan" -#: dist/prefs.js:1345 +#: dist/prefs.js:616 msgid "Focus the window to the left of the current focused window" msgstr "Geçerli odaklı pencerenin solundaki pencereye odaklan" -#: dist/prefs.js:1351 +#: dist/prefs.js:622 msgid "Focus window above" msgstr "Yukarıdaki pencereye odaklan" -#: dist/prefs.js:1352 +#: dist/prefs.js:623 msgid "Focus the window above the current focused window" msgstr "Geçerli odaklı pencerenin yukarısındaki pencereye odaklan" -#: dist/prefs.js:1358 +#: dist/prefs.js:629 msgid "Focus window below" msgstr "Aşağıdaki pencereye odaklan" -#: dist/prefs.js:1359 +#: dist/prefs.js:630 msgid "Focus the window below the current focused window" msgstr "Geçerli odaklı pencerenin aşağısındaki pencereye odaklan" -#: dist/prefs.js:1365 +#: dist/prefs.js:636 msgid "Focus next window" msgstr "Sonraki pencereye odaklan" -#: dist/prefs.js:1366 +#: dist/prefs.js:637 msgid "Focus the window next to the current focused window" msgstr "Geçerli odaklı pencerenin yanındaki pencereye odaklan" -#: dist/prefs.js:1372 +#: dist/prefs.js:643 msgid "Focus previous window" msgstr "Önceki pencereye odaklan" -#: dist/prefs.js:1373 +#: dist/prefs.js:644 msgid "Focus the window prior to the current focused window" msgstr "Geçerli odaklı pencereden önceki pencereye odaklan" -#: dist/prefs.js:1379 +#: dist/prefs.js:650 msgid "Highlight focused window" msgstr "Odaklanan pencereyi vurgula" -#: dist/prefs.js:1381 +#: dist/prefs.js:652 msgid "Minimize all the other windows and show only the focused window" msgstr "Diğer tüm pencereleri küçült ve yalnızca odaklanan pencereyi göster" -#: dist/prefs.js:1388 +#: dist/prefs.js:659 #, fuzzy msgid "Cycle layouts" msgstr "Yerleşimleri sıfırla" -#: dist/prefs.js:1389 +#: dist/prefs.js:660 msgid "Cycle through available workspace layouts" msgstr "" -#: dist/prefs.js:1415 +#: dist/prefs.js:686 msgid "View and Customize all the Shortcuts" msgstr "Tüm Kısayolları Görüntüle ve Özelleştir" -#: dist/prefs.js:1443 dist/prefs.js:1444 +#: dist/prefs.js:714 dist/prefs.js:715 msgid "View and Customize Shortcuts" msgstr "Kısayolları Görüntüle ve Özelleştir" -#: dist/prefs.js:1466 +#: dist/prefs.js:737 msgid "Enable next/previous window focus to wrap around" msgstr "Sonraki/önceki pencere odaklamasının dönmesini etkinleştir" -#: dist/prefs.js:1468 +#: dist/prefs.js:739 msgid "When focusing next or previous window, wrap around at the window edge" msgstr "Sonraki veya önceki pencereye odaklanırken pencere kenarında dön" -#: dist/prefs.js:1474 +#: dist/prefs.js:745 msgid "Restrict directional focus to tiled windows" msgstr "" -#: dist/prefs.js:1476 +#: dist/prefs.js:747 msgid "When using directional focus navigation, only consider tiled windows" msgstr "" -#: dist/prefs.js:1481 +#: dist/prefs.js:752 msgid "Import, export and reset" msgstr "İçe aktar, dışa aktar ve sıfırla" -#: dist/prefs.js:1483 +#: dist/prefs.js:754 msgid "Import, export and reset the settings of Tiling Shell" msgstr "Tiling Shell ayarlarını içe aktar, dışa aktar ve sıfırla" -#: dist/prefs.js:1488 dist/prefs.js:1489 +#: dist/prefs.js:759 dist/prefs.js:760 msgid "Export settings" msgstr "Ayarları dışa aktar" -#: dist/prefs.js:1490 +#: dist/prefs.js:761 msgid "Export settings to a file" msgstr "Ayarları bir dosyaya aktar" -#: dist/prefs.js:1493 +#: dist/prefs.js:764 msgid "Export settings to a text file" msgstr "Ayarları bir metin dosyasına aktar" -#: dist/prefs.js:1500 +#: dist/prefs.js:771 msgid "Text file" msgstr "Metin dosyası" -#: dist/prefs.js:1543 dist/prefs.js:1544 +#: dist/prefs.js:814 dist/prefs.js:815 msgid "Import settings" msgstr "Ayarları içe aktar" -#: dist/prefs.js:1545 +#: dist/prefs.js:816 msgid "Import settings from a file" msgstr "Ayarları bir dosyadan içe aktar" -#: dist/prefs.js:1548 +#: dist/prefs.js:819 msgid "Select a text file to import from" msgstr "İçe aktarılacak bir metin dosyası seçin" -#: dist/prefs.js:1590 dist/prefs.js:1591 +#: dist/prefs.js:861 dist/prefs.js:862 msgid "Reset settings" msgstr "Ayarları sıfırla" -#: dist/prefs.js:1592 +#: dist/prefs.js:863 msgid "Bring back the default settings" msgstr "Varsayılan ayarları geri yükle" -#: dist/prefs.js:1607 +#: dist/prefs.js:878 msgid "Donate on ko-fi" msgstr "Ko-fi üzerinden bağış yap" -#: dist/prefs.js:1613 +#: dist/prefs.js:884 msgid "Report a bug" msgstr "Hata bildir" -#: dist/prefs.js:1619 +#: dist/prefs.js:890 msgid "Request a feature" msgstr "Özellik iste" -#: dist/prefs.js:1627 +#: dist/prefs.js:898 msgid "Have issues, you want to suggest a new feature or contribute?" msgstr "" "Sorunlarınız mı var, yeni bir özellik önermek veya katkıda bulunmak mı " "istiyorsunuz?" -#: dist/prefs.js:1634 +#: dist/prefs.js:905 msgid "Open a new issue on" msgstr "Yeni bir konu aç" -#: dist/prefs.js:1814 +#: dist/prefs.js:970 +msgid "Choose how windows snap to screen edges" +msgstr "" + +#: dist/prefs.js:985 +msgid "Default" +msgstr "" + +#: dist/prefs.js:986 +msgid "Follow quarters or screen halves" +msgstr "" + +#: dist/prefs.js:991 +msgid "Adaptive" +msgstr "" + +#: dist/prefs.js:992 +msgid "Follow corners of selected layout or screen halves" +msgstr "" + +#: dist/prefs.js:997 +msgid "Granular" +msgstr "" + +#: dist/prefs.js:998 +msgid "Follow currently selected layout" +msgstr "" + +#: dist/prefs.js:1187 msgid "Choose custom color" msgstr "" -#: dist/prefs.js:1815 +#: dist/prefs.js:1188 msgid "Use system accent color" msgstr "" -#: dist/prefs.js:1866 dist/prefs.js:1889 +#: dist/prefs.js:1241 dist/prefs.js:1267 msgid "New accelerator…" msgstr "Yeni kısayol…" -#: dist/prefs.js:1892 +#: dist/prefs.js:1270 msgid "Use Backspace to clear" msgstr "Temizlemek için Backspace kullan" -#: dist/extension.js:5809 -msgid "Edit Layouts" -msgstr "Yerleşimleri Düzenle" +#~ msgid "Edit Layouts" +#~ msgstr "Yerleşimleri Düzenle" -#: dist/extension.js:5819 -msgid "New Layout" -msgstr "Yeni Yerleşim" +#~ msgid "New Layout" +#~ msgstr "Yeni Yerleşim" -#: dist/extension.js:6004 -msgid "to split a tile" -msgstr "bir döşemeyi bölmek için" +#~ msgid "to split a tile" +#~ msgstr "bir döşemeyi bölmek için" -#: dist/extension.js:6043 -msgid "to split a tile vertically" -msgstr "bir döşemeyi dikey olarak bölmek için" +#~ msgid "to split a tile vertically" +#~ msgstr "bir döşemeyi dikey olarak bölmek için" -#: dist/extension.js:6063 -msgid "to delete a tile" -msgstr "bir döşemeyi silmek için" +#~ msgid "to delete a tile" +#~ msgstr "bir döşemeyi silmek için" -#: dist/extension.js:6087 -msgid "use the indicator button to save or cancel" -msgstr "kaydetmek veya vazgeçmek için gösterge düğmesini kullanın" +#~ msgid "use the indicator button to save or cancel" +#~ msgstr "kaydetmek veya vazgeçmek için gösterge düğmesini kullanın" diff --git a/translations/uk.po b/translations/uk.po index 1066365e..f300b4a3 100644 --- a/translations/uk.po +++ b/translations/uk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Tiling Shell\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-09 11:35+0100\n" +"POT-Creation-Date: 2026-01-03 22:57+0100\n" "PO-Revision-Date: 2025-03-17 02:23+0200\n" "Last-Translator: Yevhen Popok \n" "Language-Team: Ukrainian\n" @@ -17,167 +17,168 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.4.4\n" -#: dist/prefs.js:793 +#: dist/prefs.js:59 msgid "General" msgstr "Загальне" -#: dist/prefs.js:798 +#: dist/prefs.js:64 msgid "Appearance" msgstr "Вигляд" -#: dist/prefs.js:799 +#: dist/prefs.js:65 msgid "Configure the appearance of Tiling Shell" msgstr "Налаштуйте вигляд Tiling Shell" -#: dist/prefs.js:804 +#: dist/prefs.js:70 msgid "Show Indicator" msgstr "Показувати індикатор" -#: dist/prefs.js:805 +#: dist/prefs.js:71 msgid "Whether to show the panel indicator" msgstr "Чи показувати індикатор на панелі" -#: dist/prefs.js:810 +#: dist/prefs.js:76 msgid "Inner gaps" msgstr "Внутрішні відступи" -#: dist/prefs.js:811 +#: dist/prefs.js:77 msgid "Gaps between windows" msgstr "Відступи між вікнами" -#: dist/prefs.js:816 +#: dist/prefs.js:82 msgid "Outer gaps" msgstr "Зовнішні відступи" -#: dist/prefs.js:817 +#: dist/prefs.js:83 msgid "Gaps between a window and the monitor borders" msgstr "Відступи між вікном та межами монітора" -#: dist/prefs.js:821 +#: dist/prefs.js:87 msgid "Blur (experimental feature)" msgstr "Розмиття (експериментальний функціонал)" -#: dist/prefs.js:823 +#: dist/prefs.js:89 msgid "Apply blur effect to Snap Assistant and tile previews" msgstr "" "Застосувати ефект розмиття до помічника з фіксації та попереднього перегляду " "мозаїки" -#: dist/prefs.js:829 +#: dist/prefs.js:95 msgid "Snap Assistant threshold" msgstr "Поріг помічника укладання" -#: dist/prefs.js:831 +#: dist/prefs.js:97 msgid "Minimum distance from the Snap Assistant to the pointer to open it" msgstr "" "Мінімальна відстань вказівника до помічника укладання, щоб викликати його" -#: dist/prefs.js:840 +#: dist/prefs.js:106 msgid "Snap Assistant" msgstr "Помічник укладання" -#: dist/prefs.js:841 +#: dist/prefs.js:107 msgid "Apply blur effect to Snap Assistant" msgstr "Застосувати ефект розмиття до помічника укладання" -#: dist/prefs.js:847 +#: dist/prefs.js:113 msgid "Selected tile preview" msgstr "Передпоказ вибраної плитки" -#: dist/prefs.js:848 +#: dist/prefs.js:114 msgid "Apply blur effect to selected tile preview" msgstr "Застосувати ефект розмиття до передпоказу вибраної плитки" -#: dist/prefs.js:852 +#: dist/prefs.js:118 msgid "Window border" msgstr "Рамка вікна" -#: dist/prefs.js:853 dist/prefs.js:860 +#: dist/prefs.js:119 dist/prefs.js:126 msgid "Show a border around focused window" msgstr "Показувати рамку навколо вікна з фокусом" -#: dist/prefs.js:859 +#: dist/prefs.js:125 msgid "Enable" msgstr "Увімкнути" -#: dist/prefs.js:866 +#: dist/prefs.js:132 msgid "Smart border radius" msgstr "Радіус розумної рамки" -#: dist/prefs.js:867 -msgid "Dynamically adapt to the window’s actual border radius" +#: dist/prefs.js:133 +#, fuzzy +msgid "Dynamically adapt to the window's actual border radius" msgstr "Динамічне підлаштування радіуса рамки вікна " -#: dist/prefs.js:873 +#: dist/prefs.js:139 msgid "Width" msgstr "Ширина" -#: dist/prefs.js:874 +#: dist/prefs.js:140 msgid "The size of the border" msgstr "Розмір рамки" -#: dist/prefs.js:883 +#: dist/prefs.js:149 msgid "Border color" msgstr "Колір рамки" -#: dist/prefs.js:884 +#: dist/prefs.js:150 msgid "Choose the color of the border" msgstr "Виберіть колір рамки" -#: dist/prefs.js:900 +#: dist/prefs.js:166 msgid "Animations" msgstr "Анімації" -#: dist/prefs.js:901 +#: dist/prefs.js:167 msgid "Customize animations" msgstr "Налаштуйте анімації" -#: dist/prefs.js:907 +#: dist/prefs.js:173 msgid "Snap assistant animation time" msgstr "Час анімації помічника укладання" -#: dist/prefs.js:908 +#: dist/prefs.js:174 msgid "The snap assistant animation time in milliseconds" msgstr "Час анімації помічника укладання в мілісекундах" -#: dist/prefs.js:916 +#: dist/prefs.js:182 msgid "Tiles animation time" msgstr "Час анімації плиток" -#: dist/prefs.js:917 +#: dist/prefs.js:183 msgid "The tiles animation time in milliseconds" msgstr "Час анімації плиток в мілісекундах" -#: dist/prefs.js:923 +#: dist/prefs.js:189 msgid "Behaviour" msgstr "Поведінка" -#: dist/prefs.js:924 +#: dist/prefs.js:190 msgid "Configure the behaviour of Tiling Shell" msgstr "Налаштуйте поведінку Tiling Shell" -#: dist/prefs.js:929 +#: dist/prefs.js:195 msgid "Enable Snap Assistant" msgstr "Увімкнути помічник укладання" -#: dist/prefs.js:930 +#: dist/prefs.js:196 msgid "Move the window on top of the screen to snap assist it" msgstr "Перемістіть вікно у верхню частину екрана для укладання з помічником" -#: dist/prefs.js:935 +#: dist/prefs.js:201 msgid "Enable Tiling System" msgstr "Увімкнути систему укладання" -#: dist/prefs.js:936 +#: dist/prefs.js:202 msgid "Hold the activation key while moving a window to tile it" msgstr "" "Утримуйте клавішу активації під час переміщення вікна для його укладання" -#: dist/prefs.js:944 +#: dist/prefs.js:210 msgid "Tiling System deactivation key" msgstr "Клавіша призупинення системи укладання" -#: dist/prefs.js:946 +#: dist/prefs.js:212 msgid "" "Hold the deactivation key while moving a window to deactivate the tiling " "system" @@ -185,47 +186,47 @@ msgstr "" "Під час переміщення вікно утримуйте клавішу де, щоб призупинити систему " "укладання" -#: dist/prefs.js:954 +#: dist/prefs.js:220 msgid "Span multiple tiles" msgstr "Охоплення кількох плиток" -#: dist/prefs.js:955 +#: dist/prefs.js:221 msgid "Hold the activation key to span multiple tiles" msgstr "Утримуйте клавішу активації для охоплення кількох плиток" -#: dist/prefs.js:964 +#: dist/prefs.js:230 msgid "Enable Auto Tiling" msgstr "Увімкнути автоматичне укладання" -#: dist/prefs.js:965 +#: dist/prefs.js:231 msgid "Automatically tile new windows to the best tile" msgstr "Автоматично укласти нове вікно на найкращу плитку" -#: dist/prefs.js:970 +#: dist/prefs.js:236 msgid "Enable auto-resize of the complementing tiled windows" msgstr "Увімкнути автоматичну зміну розмірів прилеглих вікон" -#: dist/prefs.js:972 +#: dist/prefs.js:238 msgid "" "When a tiled window is resized, auto-resize the other tiled windows near it" msgstr "" "Під час зміни розміру укладеного вікна, автоматично змінювати розміри " "укладених поруч вікон" -#: dist/prefs.js:978 +#: dist/prefs.js:244 msgid "Restore window size" msgstr "Відновлювати розмір вікна" -#: dist/prefs.js:980 +#: dist/prefs.js:246 msgid "Whether to restore the windows to their original size when untiled" msgstr "" "Відновлення вікон до їх початкових розмірів після відокремлення від плитки" -#: dist/prefs.js:986 +#: dist/prefs.js:252 msgid "Add snap assistant and auto-tile buttons to window menu" msgstr "Додати кнопки помічника укладання та авто-укладання в меню вікна" -#: dist/prefs.js:988 +#: dist/prefs.js:254 msgid "" "Add snap assistant and auto-tile buttons in the menu that shows up when you " "right click on a window title" @@ -233,442 +234,465 @@ msgstr "" "Додати кнопки помічника укладання та авто-укладання в меню вікна, що " "викликається натисканням правої клавіші на заголовку вікна" -#: dist/prefs.js:994 +#: dist/prefs.js:260 msgid "Add tiled windows to ALT+TAB menu" msgstr "" -#: dist/prefs.js:996 +#: dist/prefs.js:262 msgid "" "Add the tiled windows to the ALT+TAB menu to open all the tiled windows at " "once" msgstr "" -#: dist/prefs.js:1001 +#: dist/prefs.js:267 msgid "Screen Edges" msgstr "Краї екрана" -#: dist/prefs.js:1003 +#: dist/prefs.js:269 msgid "" "Drag windows against the top, left and right screen edges to resize them" msgstr "" "Перетягніть вікно до верхнього, лівого чи правого країв екрана для зміни " "розміру вікна" -#: dist/prefs.js:1017 +#: dist/prefs.js:283 msgid "Drag against top edge to maximize window" msgstr "Перетягніть до верхнього краю для розгортання" -#: dist/prefs.js:1018 +#: dist/prefs.js:284 msgid "Drag windows against the top edge to maximize them" msgstr "Перетягніть вікно до верхнього краю екрана для розгортання вікна" -#: dist/prefs.js:1027 +#: dist/prefs.js:293 msgid "Quarter tiling activation area" msgstr "Ділянка активації четвертинного укладання" -#: dist/prefs.js:1028 +#: dist/prefs.js:294 #, fuzzy, javascript-format msgid "Activation area to trigger quarter tiling (%% of the screen)" msgstr "Ділянка, де активується четвертинне укладання (% екрана)" -#: dist/prefs.js:1044 +#: dist/prefs.js:310 msgid "Edge tiling offset" msgstr "" -#: dist/prefs.js:1045 +#: dist/prefs.js:311 msgid "Offset from the screen edge to trigger edge tiling (in pixels)" msgstr "" -#: dist/prefs.js:1062 +#: dist/prefs.js:333 msgid "Windows suggestions" msgstr "Пропозиції вікон" -#: dist/prefs.js:1063 +#: dist/prefs.js:334 msgid "Enable and disable windows suggestions" msgstr "Увімкнути чи вимкнути пропозиції вікон" -#: dist/prefs.js:1068 +#: dist/prefs.js:339 msgid "Enable window suggestions for the tiling system" msgstr "Увімкнути пропозиції щодо вікон в системі укладання" -#: dist/prefs.js:1070 +#: dist/prefs.js:341 msgid "" "Provides smart suggestions to fill empty tiles when using the tiling system" msgstr "" "Розумні пропозиції для заповнення вільних плиток під час використання " "системи укладання" -#: dist/prefs.js:1076 +#: dist/prefs.js:347 msgid "Enable window suggestions for the snap assistant" msgstr "Увімкнути пропозиції для помічника укладання" -#: dist/prefs.js:1078 +#: dist/prefs.js:349 msgid "" "Offers suggestions to populate empty tiles when using the snap assistant" msgstr "" "Пропонує заповнення вільних плиток під час використання помічника укладання" -#: dist/prefs.js:1084 +#: dist/prefs.js:355 msgid "Enable window suggestions for screen edge snapping" msgstr "Увімкнути пропозицію вікон під час укладання від краю екрана" -#: dist/prefs.js:1086 +#: dist/prefs.js:357 msgid "Suggests windows to occupy empty tiles when snapping to screen edges" msgstr "" "Пропонує вікна для заповнення вільних плиток під час укладання від краю " "екрана" -#: dist/prefs.js:1092 +#: dist/prefs.js:363 msgid "Layouts" msgstr "Макети" -#: dist/prefs.js:1093 +#: dist/prefs.js:364 msgid "Configure the layouts of Tiling Shell" msgstr "Налаштуйте макети Tiling Shell" -#: dist/prefs.js:1097 dist/prefs.js:1098 +#: dist/prefs.js:368 dist/prefs.js:369 msgid "Edit layouts" msgstr "Редагувати макети" -#: dist/prefs.js:1099 +#: dist/prefs.js:370 msgid "Open the layouts editor" msgstr "Відкрити редактор макетів" -#: dist/prefs.js:1104 dist/prefs.js:1105 dist/prefs.js:1109 +#: dist/prefs.js:375 dist/prefs.js:376 dist/prefs.js:380 msgid "Export layouts" msgstr "Експортувати макети" -#: dist/prefs.js:1106 +#: dist/prefs.js:377 msgid "Export layouts to a file" msgstr "Експортувати макети до файлу" -#: dist/prefs.js:1112 dist/prefs.js:1496 +#: dist/prefs.js:383 dist/prefs.js:767 msgid "Save" msgstr "Зберегти" -#: dist/prefs.js:1113 dist/prefs.js:1167 dist/prefs.js:1497 dist/prefs.js:1552 +#: dist/prefs.js:384 dist/prefs.js:438 dist/prefs.js:768 dist/prefs.js:823 msgid "Cancel" msgstr "Скасувати" -#: dist/prefs.js:1158 dist/prefs.js:1159 +#: dist/prefs.js:429 dist/prefs.js:430 msgid "Import layouts" msgstr "Імпортувати макети" -#: dist/prefs.js:1160 +#: dist/prefs.js:431 msgid "Import layouts from a file" msgstr "Імпортувати макети до файлу" -#: dist/prefs.js:1163 +#: dist/prefs.js:434 msgid "Select layouts file" msgstr "Вибрати файл макетів" -#: dist/prefs.js:1166 dist/prefs.js:1551 +#: dist/prefs.js:437 dist/prefs.js:822 msgid "Open" msgstr "Відкрити" -#: dist/prefs.js:1214 dist/prefs.js:1215 +#: dist/prefs.js:485 dist/prefs.js:486 msgid "Reset layouts" msgstr "Відновити макети" -#: dist/prefs.js:1216 +#: dist/prefs.js:487 msgid "Bring back the default layouts" msgstr "Повернути типові макети" -#: dist/prefs.js:1229 +#: dist/prefs.js:500 msgid "Keybindings" msgstr "Привʼязки клавіш" -#: dist/prefs.js:1231 +#: dist/prefs.js:502 msgid "Use hotkeys to perform actions on the focused window" msgstr "Використайте гарячі клавіші для виконання дій над вікнами у фокусі" -#: dist/prefs.js:1249 +#: dist/prefs.js:520 msgid "Move window to right tile" msgstr "Укласти вікно праворуч" -#: dist/prefs.js:1251 +#: dist/prefs.js:522 msgid "Move the focused window to the tile on its right" msgstr "Перемістити вікно у фокусі до плитки праворуч" -#: dist/prefs.js:1260 +#: dist/prefs.js:531 msgid "Move window to left tile" msgstr "Укласти вікно ліворуч" -#: dist/prefs.js:1261 +#: dist/prefs.js:532 msgid "Move the focused window to the tile on its left" msgstr "Перемістити вікно у фокусі до плитки ліворуч" -#: dist/prefs.js:1267 +#: dist/prefs.js:538 msgid "Move window to tile above" msgstr "Укласти вікно вгорі" -#: dist/prefs.js:1268 +#: dist/prefs.js:539 msgid "Move the focused window to the tile above" msgstr "Перемістити вікно у фокусі до плитки вище" -#: dist/prefs.js:1274 +#: dist/prefs.js:545 msgid "Move window to tile below" msgstr "Укласти вікно знизу" -#: dist/prefs.js:1275 +#: dist/prefs.js:546 msgid "Move the focused window to the tile below" msgstr "Перемістити вікно у фокусі до плитки нижче" -#: dist/prefs.js:1281 +#: dist/prefs.js:552 msgid "Span window to right tile" msgstr "Охопити плитку праворуч" -#: dist/prefs.js:1282 +#: dist/prefs.js:553 msgid "Span the focused window to the tile on its right" msgstr "Збільшити розмір вікна у фокусі, охопивши плитку праворуч" -#: dist/prefs.js:1288 +#: dist/prefs.js:559 msgid "Span window to left tile" msgstr "Охопити плитку ліворуч" -#: dist/prefs.js:1289 +#: dist/prefs.js:560 msgid "Span the focused window to the tile on its left" msgstr "Збільшити розмір вікна у фокусі, охопивши плитку ліворуч" -#: dist/prefs.js:1295 +#: dist/prefs.js:566 msgid "Span window above" msgstr "Охопити плиту вгорі" -#: dist/prefs.js:1296 +#: dist/prefs.js:567 msgid "Span the focused window to the tile above" msgstr "Збільшити розмір вікна у фокусі, охопивши плитку вгорі" -#: dist/prefs.js:1302 +#: dist/prefs.js:573 msgid "Span window down" msgstr "Охопити плитку знизу" -#: dist/prefs.js:1303 +#: dist/prefs.js:574 msgid "Span the focused window to the tile below" msgstr "Збільшити розмір вікна у фокусі, охопивши плитку знизу" -#: dist/prefs.js:1309 +#: dist/prefs.js:580 msgid "Span window to all tiles" msgstr "Охопити всі плитки" -#: dist/prefs.js:1310 +#: dist/prefs.js:581 msgid "Span the focused window to all the tiles" msgstr "Збільшити розмір вікна у фокусі, охопивши всі плитки" -#: dist/prefs.js:1316 +#: dist/prefs.js:587 msgid "Untile focused window" msgstr "Відокремити вікно у фокусі від плитки" -#: dist/prefs.js:1324 +#: dist/prefs.js:595 msgid "Move window to the center" msgstr "Перемістити вікно у центр" -#: dist/prefs.js:1326 +#: dist/prefs.js:597 msgid "Move the focused window to the center of the screen" msgstr "Перемістити вікно у фокусі в центр екрана" -#: dist/prefs.js:1335 +#: dist/prefs.js:606 msgid "Focus window to the right" msgstr "Фокус до вікна праворуч" -#: dist/prefs.js:1337 +#: dist/prefs.js:608 msgid "Focus the window to the right of the current focused window" msgstr "" "Перемістити фокус до вікна, що знаходиться праворуч від поточного вікна у " "фокусі" -#: dist/prefs.js:1344 +#: dist/prefs.js:615 msgid "Focus window to the left" msgstr "Фокус до вікна ліворуч" -#: dist/prefs.js:1345 +#: dist/prefs.js:616 msgid "Focus the window to the left of the current focused window" msgstr "" "Перемістити фокус до вікна, що знаходиться ліворуч від поточного вікна у " "фокусі" -#: dist/prefs.js:1351 +#: dist/prefs.js:622 msgid "Focus window above" msgstr "Фокус до вікна вище" -#: dist/prefs.js:1352 +#: dist/prefs.js:623 msgid "Focus the window above the current focused window" msgstr "" "Перемістити фокус до вікна, що знаходиться вище від поточного вікна у фокусі" -#: dist/prefs.js:1358 +#: dist/prefs.js:629 msgid "Focus window below" msgstr "Фокус до вікна нижче" -#: dist/prefs.js:1359 +#: dist/prefs.js:630 msgid "Focus the window below the current focused window" msgstr "" "Перемістити фокус до вікна, що знаходиться нижче від поточного вікна у фокусі" -#: dist/prefs.js:1365 +#: dist/prefs.js:636 msgid "Focus next window" msgstr "Фокус до наступного вікна" -#: dist/prefs.js:1366 +#: dist/prefs.js:637 msgid "Focus the window next to the current focused window" msgstr "" "Перемістити фокус до вікна, що є наступним відносно поточного вікна у фокусі" -#: dist/prefs.js:1372 +#: dist/prefs.js:643 msgid "Focus previous window" msgstr "Фокус до попереднього вікна" -#: dist/prefs.js:1373 +#: dist/prefs.js:644 msgid "Focus the window prior to the current focused window" msgstr "" "Перемістити фокус до вікна, що є попереднім відносно поточного вікна у фокусі" -#: dist/prefs.js:1379 +#: dist/prefs.js:650 msgid "Highlight focused window" msgstr "Виділити вікно у фокусі" -#: dist/prefs.js:1381 +#: dist/prefs.js:652 msgid "Minimize all the other windows and show only the focused window" msgstr "Згорнути решту вікон та показати лише вікно у фокусі" -#: dist/prefs.js:1388 +#: dist/prefs.js:659 #, fuzzy msgid "Cycle layouts" msgstr "Відновити макети" -#: dist/prefs.js:1389 +#: dist/prefs.js:660 msgid "Cycle through available workspace layouts" msgstr "" -#: dist/prefs.js:1415 +#: dist/prefs.js:686 msgid "View and Customize all the Shortcuts" msgstr "Переглянути та налаштувати всі скорочення" -#: dist/prefs.js:1443 dist/prefs.js:1444 +#: dist/prefs.js:714 dist/prefs.js:715 msgid "View and Customize Shortcuts" msgstr "Переглянути та налаштувати скорочення" -#: dist/prefs.js:1466 +#: dist/prefs.js:737 msgid "Enable next/previous window focus to wrap around" msgstr "" "Увімкнути циклічність переміщення фокуса до попереднього/наступного вікна" -#: dist/prefs.js:1468 +#: dist/prefs.js:739 msgid "When focusing next or previous window, wrap around at the window edge" msgstr "" "Під час переміщення фокуса до наступного чи попереднього вікна, для крайніх " "вікон використовувати циклічність" -#: dist/prefs.js:1474 +#: dist/prefs.js:745 msgid "Restrict directional focus to tiled windows" msgstr "" -#: dist/prefs.js:1476 +#: dist/prefs.js:747 msgid "When using directional focus navigation, only consider tiled windows" msgstr "" -#: dist/prefs.js:1481 +#: dist/prefs.js:752 msgid "Import, export and reset" msgstr "Імпортування, експортування та скидання" -#: dist/prefs.js:1483 +#: dist/prefs.js:754 msgid "Import, export and reset the settings of Tiling Shell" msgstr "Імпортування, експортування та скидання налаштувань Tiling Shell" -#: dist/prefs.js:1488 dist/prefs.js:1489 +#: dist/prefs.js:759 dist/prefs.js:760 msgid "Export settings" msgstr "Експортувати налаштування" -#: dist/prefs.js:1490 +#: dist/prefs.js:761 msgid "Export settings to a file" msgstr "Експортувати налаштування до файлу" -#: dist/prefs.js:1493 +#: dist/prefs.js:764 msgid "Export settings to a text file" msgstr "Експортувати налаштування до текстового файлу" -#: dist/prefs.js:1500 +#: dist/prefs.js:771 msgid "Text file" msgstr "Текстовий файл" -#: dist/prefs.js:1543 dist/prefs.js:1544 +#: dist/prefs.js:814 dist/prefs.js:815 msgid "Import settings" msgstr "Імпортувати налаштування" -#: dist/prefs.js:1545 +#: dist/prefs.js:816 msgid "Import settings from a file" msgstr "Імпортувати налаштування з файлу" -#: dist/prefs.js:1548 +#: dist/prefs.js:819 msgid "Select a text file to import from" msgstr "Виберіть текстовий файл для імпортування" -#: dist/prefs.js:1590 dist/prefs.js:1591 +#: dist/prefs.js:861 dist/prefs.js:862 msgid "Reset settings" msgstr "Скинути налаштування" -#: dist/prefs.js:1592 +#: dist/prefs.js:863 msgid "Bring back the default settings" msgstr "Повернути типові налаштування" -#: dist/prefs.js:1607 +#: dist/prefs.js:878 msgid "Donate on ko-fi" msgstr "Фінансова підтримка на ko-fi" -#: dist/prefs.js:1613 +#: dist/prefs.js:884 msgid "Report a bug" msgstr "Повідомити про ваду" -#: dist/prefs.js:1619 +#: dist/prefs.js:890 msgid "Request a feature" msgstr "Запит щодо функціоналу" -#: dist/prefs.js:1627 +#: dist/prefs.js:898 msgid "Have issues, you want to suggest a new feature or contribute?" msgstr "Маєте проблеми, хочете запропонувати новий фунціонал чи допомогти?" -#: dist/prefs.js:1634 +#: dist/prefs.js:905 msgid "Open a new issue on" msgstr "Відкрийте нове завдання на" -#: dist/prefs.js:1814 +#: dist/prefs.js:970 +msgid "Choose how windows snap to screen edges" +msgstr "" + +#: dist/prefs.js:985 +msgid "Default" +msgstr "" + +#: dist/prefs.js:986 +#, fuzzy +msgid "Follow quarters or screen halves" +msgstr "Перемістити до найкращої плитки" + +#: dist/prefs.js:991 +msgid "Adaptive" +msgstr "" + +#: dist/prefs.js:992 +msgid "Follow corners of selected layout or screen halves" +msgstr "" + +#: dist/prefs.js:997 +msgid "Granular" +msgstr "" + +#: dist/prefs.js:998 +msgid "Follow currently selected layout" +msgstr "" + +#: dist/prefs.js:1187 msgid "Choose custom color" msgstr "" -#: dist/prefs.js:1815 +#: dist/prefs.js:1188 msgid "Use system accent color" msgstr "" -#: dist/prefs.js:1866 dist/prefs.js:1889 +#: dist/prefs.js:1241 dist/prefs.js:1267 msgid "New accelerator…" msgstr "Нове скорочення..." -#: dist/prefs.js:1892 +#: dist/prefs.js:1270 msgid "Use Backspace to clear" msgstr "Використайте Backspace, щоб очистити" -#: dist/extension.js:5809 -msgid "Edit Layouts" -msgstr "Редагувати макет" +#~ msgid "Edit Layouts" +#~ msgstr "Редагувати макет" -#: dist/extension.js:5819 -msgid "New Layout" -msgstr "Новий макет" +#~ msgid "New Layout" +#~ msgstr "Новий макет" -#: dist/extension.js:6004 -msgid "to split a tile" -msgstr "для розділення плитки" +#~ msgid "to split a tile" +#~ msgstr "для розділення плитки" -#: dist/extension.js:6043 -msgid "to split a tile vertically" -msgstr "для розділення плитки вертикально" +#~ msgid "to split a tile vertically" +#~ msgstr "для розділення плитки вертикально" -#: dist/extension.js:6063 -msgid "to delete a tile" -msgstr "для вилучення плитки" +#~ msgid "to delete a tile" +#~ msgstr "для вилучення плитки" -#: dist/extension.js:6087 -msgid "use the indicator button to save or cancel" -msgstr "використайте кнопку індикатора для збереження чи скасування" +#~ msgid "use the indicator button to save or cancel" +#~ msgstr "використайте кнопку індикатора для збереження чи скасування" #~ msgid "Menu" #~ msgstr "Меню" @@ -688,9 +712,6 @@ msgstr "використайте кнопку індикатора для збе #~ msgid "Start editing" #~ msgstr "Почати редагування" -#~ msgid "Move to best tile" -#~ msgstr "Перемістити до найкращої плитки" - #~ msgid "Move to leftmost tile" #~ msgstr "Перемістити до крайньої лівої плитки" diff --git a/translations/zh_CN.po b/translations/zh_CN.po index 45bb487d..2890cb5d 100644 --- a/translations/zh_CN.po +++ b/translations/zh_CN.po @@ -8,172 +8,173 @@ msgstr "" "Project-Id-Version: Tiling Shell\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-11-09 11:35+0100\n" -"PO-Revision-Date: 2025-01-20 23:37+0800\n" +"PO-Revision-Date: 2025-10-19 17:46+0800\n" "Last-Translator: lousuan <2546336381@qq.com>\n" "Language-Team: \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.5\n" +"X-Generator: Poedit 3.6\n" -#: dist/prefs.js:793 +#: dist/prefs.js:59 msgid "General" msgstr "通用" -#: dist/prefs.js:798 +#: dist/prefs.js:64 msgid "Appearance" msgstr "外观" -#: dist/prefs.js:799 +#: dist/prefs.js:65 msgid "Configure the appearance of Tiling Shell" msgstr "配置 Tiling Shell 的外观" -#: dist/prefs.js:804 +#: dist/prefs.js:70 msgid "Show Indicator" msgstr "显示托盘图标" -#: dist/prefs.js:805 +#: dist/prefs.js:71 msgid "Whether to show the panel indicator" msgstr "是否显示托盘图标" -#: dist/prefs.js:810 +#: dist/prefs.js:76 msgid "Inner gaps" msgstr "内间距" -#: dist/prefs.js:811 +#: dist/prefs.js:77 msgid "Gaps between windows" msgstr "窗口之间的间距" -#: dist/prefs.js:816 +#: dist/prefs.js:82 msgid "Outer gaps" msgstr "外间距" -#: dist/prefs.js:817 +#: dist/prefs.js:83 msgid "Gaps between a window and the monitor borders" msgstr "屏幕和窗口之间的间距" -#: dist/prefs.js:821 +#: dist/prefs.js:87 msgid "Blur (experimental feature)" msgstr "模糊(实验性功能)" -#: dist/prefs.js:823 +#: dist/prefs.js:89 msgid "Apply blur effect to Snap Assistant and tile previews" msgstr "为窗口捕捉助手和窗口平铺预览启用模糊效果" -#: dist/prefs.js:829 +#: dist/prefs.js:95 msgid "Snap Assistant threshold" msgstr "窗口捕捉助手激活阈值" -#: dist/prefs.js:831 +#: dist/prefs.js:97 msgid "Minimum distance from the Snap Assistant to the pointer to open it" msgstr "光标激活窗口捕捉助手的最小距离" -#: dist/prefs.js:840 +#: dist/prefs.js:106 msgid "Snap Assistant" msgstr "窗口捕捉助手" -#: dist/prefs.js:841 +#: dist/prefs.js:107 msgid "Apply blur effect to Snap Assistant" msgstr "为窗口捕捉助手添加模糊效果" -#: dist/prefs.js:847 +#: dist/prefs.js:113 msgid "Selected tile preview" msgstr "选中平铺预览" -#: dist/prefs.js:848 +#: dist/prefs.js:114 msgid "Apply blur effect to selected tile preview" msgstr "为选中的平铺预览启用模糊效果" -#: dist/prefs.js:852 +#: dist/prefs.js:118 msgid "Window border" msgstr "窗口边框" -#: dist/prefs.js:853 dist/prefs.js:860 +#: dist/prefs.js:119 dist/prefs.js:126 msgid "Show a border around focused window" msgstr "在当前聚焦的窗口周围显示边框" -#: dist/prefs.js:859 +#: dist/prefs.js:125 msgid "Enable" msgstr "启用" -#: dist/prefs.js:866 +#: dist/prefs.js:132 msgid "Smart border radius" msgstr "智能边框圆角弧度" -#: dist/prefs.js:867 -msgid "Dynamically adapt to the window’s actual border radius" +#: dist/prefs.js:133 +#, fuzzy +msgid "Dynamically adapt to the window's actual border radius" msgstr "动态适配窗口实际的边框圆角弧度" -#: dist/prefs.js:873 +#: dist/prefs.js:139 msgid "Width" msgstr "宽度" -#: dist/prefs.js:874 +#: dist/prefs.js:140 msgid "The size of the border" msgstr "边框的大小" -#: dist/prefs.js:883 +#: dist/prefs.js:149 msgid "Border color" msgstr "边框颜色" -#: dist/prefs.js:884 +#: dist/prefs.js:150 msgid "Choose the color of the border" msgstr "选择边框的颜色" -#: dist/prefs.js:900 +#: dist/prefs.js:166 msgid "Animations" msgstr "动画效果" -#: dist/prefs.js:901 +#: dist/prefs.js:167 msgid "Customize animations" msgstr "自定义动画效果" -#: dist/prefs.js:907 +#: dist/prefs.js:173 msgid "Snap assistant animation time" msgstr "窗口捕捉助手动画时长" -#: dist/prefs.js:908 +#: dist/prefs.js:174 msgid "The snap assistant animation time in milliseconds" msgstr "窗口捕捉助手动画时长(单位:毫秒)" -#: dist/prefs.js:916 +#: dist/prefs.js:182 msgid "Tiles animation time" msgstr "窗口平铺动画时长" -#: dist/prefs.js:917 +#: dist/prefs.js:183 msgid "The tiles animation time in milliseconds" msgstr "窗口平铺动画时长(单位:毫秒)" -#: dist/prefs.js:923 +#: dist/prefs.js:189 msgid "Behaviour" msgstr "行为" -#: dist/prefs.js:924 +#: dist/prefs.js:190 msgid "Configure the behaviour of Tiling Shell" msgstr "自定义 Tiling Shell 的行为" -#: dist/prefs.js:929 +#: dist/prefs.js:195 msgid "Enable Snap Assistant" msgstr "启用窗口捕捉助手" -#: dist/prefs.js:930 +#: dist/prefs.js:196 msgid "Move the window on top of the screen to snap assist it" msgstr "移动窗口到显示器顶部以激活窗口捕捉助手" -#: dist/prefs.js:935 +#: dist/prefs.js:201 msgid "Enable Tiling System" msgstr "激活窗口平铺快捷键" -#: dist/prefs.js:936 +#: dist/prefs.js:202 msgid "Hold the activation key while moving a window to tile it" msgstr "在移动窗口时按住激活窗口平铺快捷键以将其平铺" -#: dist/prefs.js:944 +#: dist/prefs.js:210 msgid "Tiling System deactivation key" msgstr "停用平铺快捷键" -#: dist/prefs.js:946 +#: dist/prefs.js:212 msgid "" "Hold the deactivation key while moving a window to deactivate the tiling " "system" @@ -181,473 +182,496 @@ msgstr "" "拖拽时按住停用平铺快捷键以暂时关闭平铺功能\n" "(译者注:仅当激活窗口平铺快捷键设置为 None 时生效)" -#: dist/prefs.js:954 +#: dist/prefs.js:220 msgid "Span multiple tiles" msgstr "扩展到多个平铺位置" -#: dist/prefs.js:955 +#: dist/prefs.js:221 msgid "Hold the activation key to span multiple tiles" msgstr "按住激活窗口扩展快捷键以扩展到其他平铺位置" -#: dist/prefs.js:964 +#: dist/prefs.js:230 msgid "Enable Auto Tiling" msgstr "启用自动平铺" -#: dist/prefs.js:965 +#: dist/prefs.js:231 msgid "Automatically tile new windows to the best tile" msgstr "自动平铺新窗口到最佳平铺位置" -#: dist/prefs.js:970 +#: dist/prefs.js:236 msgid "Enable auto-resize of the complementing tiled windows" msgstr "邻近平铺窗口自动调整大小" -#: dist/prefs.js:972 +#: dist/prefs.js:238 msgid "" "When a tiled window is resized, auto-resize the other tiled windows near it" msgstr "调整一个平铺窗口的大小时,自动调整其他邻近窗口的大小" -#: dist/prefs.js:978 +#: dist/prefs.js:244 msgid "Restore window size" msgstr "恢复窗口大小" -#: dist/prefs.js:980 +#: dist/prefs.js:246 msgid "Whether to restore the windows to their original size when untiled" msgstr "取消平铺时还原原本的窗口大小" -#: dist/prefs.js:986 +#: dist/prefs.js:252 msgid "Add snap assistant and auto-tile buttons to window menu" msgstr "在窗口右键菜单中添加窗口捕捉助手和自动平铺按钮" -#: dist/prefs.js:988 +#: dist/prefs.js:254 msgid "" "Add snap assistant and auto-tile buttons in the menu that shows up when you " "right click on a window title" msgstr "右键单击窗口标题时,在窗口菜单显示窗口捕捉助手和自动平铺按钮" -#: dist/prefs.js:994 +#: dist/prefs.js:260 msgid "Add tiled windows to ALT+TAB menu" -msgstr "" +msgstr "在 ALT+TAB 菜单中添加平铺好的窗口组合" -#: dist/prefs.js:996 +#: dist/prefs.js:262 msgid "" "Add the tiled windows to the ALT+TAB menu to open all the tiled windows at " "once" -msgstr "" +msgstr "在 ALT+TAB 菜单中添加平铺好的窗口组合,以便一次性打开所有平铺好的窗口" -#: dist/prefs.js:1001 +#: dist/prefs.js:267 msgid "Screen Edges" msgstr "屏幕边缘" -#: dist/prefs.js:1003 +#: dist/prefs.js:269 msgid "" "Drag windows against the top, left and right screen edges to resize them" msgstr "拖拽窗口到屏幕顶部、左侧或右侧边缘以调整窗口大小" -#: dist/prefs.js:1017 +#: dist/prefs.js:283 msgid "Drag against top edge to maximize window" msgstr "拖拽窗口到屏幕顶部以最大化窗口" -#: dist/prefs.js:1018 +#: dist/prefs.js:284 msgid "Drag windows against the top edge to maximize them" msgstr "拖拽窗口到屏幕顶部以最大化窗口" -#: dist/prefs.js:1027 +#: dist/prefs.js:293 msgid "Quarter tiling activation area" msgstr "四角平铺激活区域" -#: dist/prefs.js:1028 +#: dist/prefs.js:294 #, fuzzy, javascript-format msgid "Activation area to trigger quarter tiling (%% of the screen)" msgstr "" -"四角平铺激活区域(%屏幕高度)\n" -"(译者注:当移动窗口到屏幕左右边缘时,可以激活四角平铺)" +"触发四角平铺的激活区域(%%屏幕高度)\n" +"(译者注:当移动窗口到屏幕左右边缘中间偏上位置时,可以激活四角平铺)" -#: dist/prefs.js:1044 +#: dist/prefs.js:310 msgid "Edge tiling offset" -msgstr "" +msgstr "边缘平铺激活区域" -#: dist/prefs.js:1045 +#: dist/prefs.js:311 msgid "Offset from the screen edge to trigger edge tiling (in pixels)" msgstr "" +"触发边缘平铺的最小距离(单位:像素)\n" +"(译者注:当移动窗口到屏幕左右边缘时,可以激活边缘平铺)" -#: dist/prefs.js:1062 +#: dist/prefs.js:333 msgid "Windows suggestions" msgstr "窗口建议" -#: dist/prefs.js:1063 +#: dist/prefs.js:334 msgid "Enable and disable windows suggestions" msgstr "开启/关闭窗口建议" -#: dist/prefs.js:1068 +#: dist/prefs.js:339 msgid "Enable window suggestions for the tiling system" msgstr "为窗口平铺启用窗口建议" -#: dist/prefs.js:1070 +#: dist/prefs.js:341 msgid "" "Provides smart suggestions to fill empty tiles when using the tiling system" msgstr "平铺窗口时显示窗口列表,为空余平铺位置提供建议" -#: dist/prefs.js:1076 +#: dist/prefs.js:347 msgid "Enable window suggestions for the snap assistant" msgstr "为窗口捕捉助手启用窗口建议" -#: dist/prefs.js:1078 +#: dist/prefs.js:349 msgid "" "Offers suggestions to populate empty tiles when using the snap assistant" msgstr "使用窗口捕捉助手时显示窗口列表,为空余平铺位置提供建议" -#: dist/prefs.js:1084 +#: dist/prefs.js:355 msgid "Enable window suggestions for screen edge snapping" msgstr "为屏幕边缘捕捉启用窗口建议" -#: dist/prefs.js:1086 +#: dist/prefs.js:357 msgid "Suggests windows to occupy empty tiles when snapping to screen edges" msgstr "使用屏幕边缘窗口捕捉时,为空余平铺位置提供建议" -#: dist/prefs.js:1092 +#: dist/prefs.js:363 msgid "Layouts" msgstr "布局" -#: dist/prefs.js:1093 +#: dist/prefs.js:364 msgid "Configure the layouts of Tiling Shell" msgstr "配置 Tiling Shell 的布局" -#: dist/prefs.js:1097 dist/prefs.js:1098 +#: dist/prefs.js:368 dist/prefs.js:369 msgid "Edit layouts" msgstr "编辑布局" -#: dist/prefs.js:1099 +#: dist/prefs.js:370 msgid "Open the layouts editor" msgstr "打开布局编辑器" -#: dist/prefs.js:1104 dist/prefs.js:1105 dist/prefs.js:1109 +#: dist/prefs.js:375 dist/prefs.js:376 dist/prefs.js:380 msgid "Export layouts" msgstr "导出所有布局" -#: dist/prefs.js:1106 +#: dist/prefs.js:377 msgid "Export layouts to a file" msgstr "导出所有布局到文件" -#: dist/prefs.js:1112 dist/prefs.js:1496 +#: dist/prefs.js:383 dist/prefs.js:767 msgid "Save" msgstr "保存" -#: dist/prefs.js:1113 dist/prefs.js:1167 dist/prefs.js:1497 dist/prefs.js:1552 +#: dist/prefs.js:384 dist/prefs.js:438 dist/prefs.js:768 dist/prefs.js:823 msgid "Cancel" msgstr "取消" -#: dist/prefs.js:1158 dist/prefs.js:1159 +#: dist/prefs.js:429 dist/prefs.js:430 msgid "Import layouts" msgstr "批量导入布局" -#: dist/prefs.js:1160 +#: dist/prefs.js:431 msgid "Import layouts from a file" msgstr "从文件中批量导入布局" -#: dist/prefs.js:1163 +#: dist/prefs.js:434 msgid "Select layouts file" msgstr "选择布局文件" -#: dist/prefs.js:1166 dist/prefs.js:1551 +#: dist/prefs.js:437 dist/prefs.js:822 msgid "Open" msgstr "打开" -#: dist/prefs.js:1214 dist/prefs.js:1215 +#: dist/prefs.js:485 dist/prefs.js:486 msgid "Reset layouts" msgstr "恢复默认布局" -#: dist/prefs.js:1216 +#: dist/prefs.js:487 msgid "Bring back the default layouts" msgstr "恢复默认布局" -#: dist/prefs.js:1229 +#: dist/prefs.js:500 msgid "Keybindings" msgstr "快捷键" -#: dist/prefs.js:1231 +#: dist/prefs.js:502 msgid "Use hotkeys to perform actions on the focused window" msgstr "使用快捷键来操作当前聚焦的窗口" -#: dist/prefs.js:1249 +#: dist/prefs.js:520 msgid "Move window to right tile" msgstr "向右移动窗口" -#: dist/prefs.js:1251 +#: dist/prefs.js:522 msgid "Move the focused window to the tile on its right" msgstr "移动窗口到右侧的平铺位置" -#: dist/prefs.js:1260 +#: dist/prefs.js:531 msgid "Move window to left tile" msgstr "向左移动窗口" -#: dist/prefs.js:1261 +#: dist/prefs.js:532 msgid "Move the focused window to the tile on its left" msgstr "移动窗口到左侧的平铺位置" -#: dist/prefs.js:1267 +#: dist/prefs.js:538 msgid "Move window to tile above" msgstr "向上移动窗口" -#: dist/prefs.js:1268 +#: dist/prefs.js:539 msgid "Move the focused window to the tile above" msgstr "移动窗口到上方的平铺位置" -#: dist/prefs.js:1274 +#: dist/prefs.js:545 msgid "Move window to tile below" msgstr "向下移动窗口" -#: dist/prefs.js:1275 +#: dist/prefs.js:546 msgid "Move the focused window to the tile below" msgstr "移动窗口到下方的平铺位置" -#: dist/prefs.js:1281 +#: dist/prefs.js:552 msgid "Span window to right tile" msgstr "向右扩展窗口" -#: dist/prefs.js:1282 +#: dist/prefs.js:553 msgid "Span the focused window to the tile on its right" msgstr "扩展窗口到右侧的平铺位置" -#: dist/prefs.js:1288 +#: dist/prefs.js:559 msgid "Span window to left tile" msgstr "向左扩展窗口" -#: dist/prefs.js:1289 +#: dist/prefs.js:560 msgid "Span the focused window to the tile on its left" msgstr "扩展窗口到左侧的平铺位置" -#: dist/prefs.js:1295 +#: dist/prefs.js:566 msgid "Span window above" msgstr "向上扩展窗口" -#: dist/prefs.js:1296 +#: dist/prefs.js:567 msgid "Span the focused window to the tile above" msgstr "扩展窗口到上方的平铺位置" -#: dist/prefs.js:1302 +#: dist/prefs.js:573 msgid "Span window down" msgstr "向下扩展窗口" -#: dist/prefs.js:1303 +#: dist/prefs.js:574 msgid "Span the focused window to the tile below" msgstr "扩展窗口到下方的平铺位置" -#: dist/prefs.js:1309 +#: dist/prefs.js:580 msgid "Span window to all tiles" msgstr "窗口铺满所有位置" -#: dist/prefs.js:1310 +#: dist/prefs.js:581 msgid "Span the focused window to all the tiles" msgstr "当前聚焦的窗口铺满所有位置" -#: dist/prefs.js:1316 +#: dist/prefs.js:587 msgid "Untile focused window" msgstr "取消窗口平铺" -#: dist/prefs.js:1324 +#: dist/prefs.js:595 msgid "Move window to the center" msgstr "移动窗口到屏幕中央" -#: dist/prefs.js:1326 +#: dist/prefs.js:597 msgid "Move the focused window to the center of the screen" msgstr "移动当前聚焦的窗口到屏幕中央" -#: dist/prefs.js:1335 +#: dist/prefs.js:606 msgid "Focus window to the right" -msgstr "聚焦右侧的窗口" +msgstr "聚焦右侧窗口" -#: dist/prefs.js:1337 +#: dist/prefs.js:608 msgid "Focus the window to the right of the current focused window" msgstr "聚焦当前窗口右侧的窗口" -#: dist/prefs.js:1344 +#: dist/prefs.js:615 msgid "Focus window to the left" msgstr "聚焦左侧窗口" -#: dist/prefs.js:1345 +#: dist/prefs.js:616 msgid "Focus the window to the left of the current focused window" msgstr "聚焦当前窗口左侧的窗口" -#: dist/prefs.js:1351 +#: dist/prefs.js:622 msgid "Focus window above" msgstr "聚焦上方窗口" -#: dist/prefs.js:1352 +#: dist/prefs.js:623 msgid "Focus the window above the current focused window" msgstr "聚焦当前窗口上方的窗口" -#: dist/prefs.js:1358 +#: dist/prefs.js:629 msgid "Focus window below" msgstr "聚焦下方窗口" -#: dist/prefs.js:1359 +#: dist/prefs.js:630 msgid "Focus the window below the current focused window" msgstr "聚焦当前窗口下方的窗口" -#: dist/prefs.js:1365 +#: dist/prefs.js:636 msgid "Focus next window" msgstr "聚焦到下一个窗口" -#: dist/prefs.js:1366 +#: dist/prefs.js:637 msgid "Focus the window next to the current focused window" msgstr "聚焦到当前窗口的下一个窗口" -#: dist/prefs.js:1372 +#: dist/prefs.js:643 msgid "Focus previous window" msgstr "聚焦到上一个窗口" -#: dist/prefs.js:1373 +#: dist/prefs.js:644 msgid "Focus the window prior to the current focused window" msgstr "聚焦到当前窗口的上一个窗口" #: dist/prefs.js:1379 -#, fuzzy msgid "Highlight focused window" -msgstr "取消窗口平铺" +msgstr "高亮当前聚焦的窗口" #: dist/prefs.js:1381 -#, fuzzy msgid "Minimize all the other windows and show only the focused window" -msgstr "使用快捷键来操作当前聚焦的窗口" +msgstr "只显示当前聚焦的窗口,最小化其他窗口" #: dist/prefs.js:1388 -#, fuzzy msgid "Cycle layouts" -msgstr "恢复默认布局" +msgstr "循环切换布局" -#: dist/prefs.js:1389 +#: dist/prefs.js:660 msgid "Cycle through available workspace layouts" -msgstr "" +msgstr "循环切换可用的工作区布局" -#: dist/prefs.js:1415 +#: dist/prefs.js:686 msgid "View and Customize all the Shortcuts" msgstr "查看、配置所有快捷方式" -#: dist/prefs.js:1443 dist/prefs.js:1444 +#: dist/prefs.js:714 dist/prefs.js:715 msgid "View and Customize Shortcuts" msgstr "查看、配置所有快捷方式" -#: dist/prefs.js:1466 +#: dist/prefs.js:737 msgid "Enable next/previous window focus to wrap around" msgstr "启用窗口列表循环" -#: dist/prefs.js:1468 +#: dist/prefs.js:739 msgid "When focusing next or previous window, wrap around at the window edge" msgstr "" "聚焦到上一个或下一个窗口时,启用窗口列表循环(可以从最后一个窗口聚焦到第一个" "窗口)" -#: dist/prefs.js:1474 +#: dist/prefs.js:745 msgid "Restrict directional focus to tiled windows" -msgstr "" +msgstr "只在已平铺的窗口之间进行方向聚焦" -#: dist/prefs.js:1476 +#: dist/prefs.js:747 msgid "When using directional focus navigation, only consider tiled windows" msgstr "" +"当使用方向聚焦(译者注:比如【聚焦右侧窗口】)时,只考虑已经平铺的窗口" -#: dist/prefs.js:1481 +#: dist/prefs.js:752 msgid "Import, export and reset" msgstr "导入/导出/恢复默认设置" -#: dist/prefs.js:1483 +#: dist/prefs.js:754 msgid "Import, export and reset the settings of Tiling Shell" msgstr "导入、导出、或恢复 Tiling Shell 的默认设置" -#: dist/prefs.js:1488 dist/prefs.js:1489 +#: dist/prefs.js:759 dist/prefs.js:760 msgid "Export settings" msgstr "导出设置" -#: dist/prefs.js:1490 +#: dist/prefs.js:761 msgid "Export settings to a file" msgstr "导出设置到文件" -#: dist/prefs.js:1493 +#: dist/prefs.js:764 msgid "Export settings to a text file" msgstr "导出设置到文本文件" -#: dist/prefs.js:1500 +#: dist/prefs.js:771 msgid "Text file" msgstr "文本文件" -#: dist/prefs.js:1543 dist/prefs.js:1544 +#: dist/prefs.js:814 dist/prefs.js:815 msgid "Import settings" msgstr "导入设置" -#: dist/prefs.js:1545 +#: dist/prefs.js:816 msgid "Import settings from a file" msgstr "从文件导入设置" -#: dist/prefs.js:1548 +#: dist/prefs.js:819 msgid "Select a text file to import from" msgstr "选择文本文件以导入设置" -#: dist/prefs.js:1590 dist/prefs.js:1591 +#: dist/prefs.js:861 dist/prefs.js:862 msgid "Reset settings" msgstr "恢复默认设置" -#: dist/prefs.js:1592 +#: dist/prefs.js:863 msgid "Bring back the default settings" msgstr "恢复默认设置" -#: dist/prefs.js:1607 +#: dist/prefs.js:878 msgid "Donate on ko-fi" msgstr "在 ko-fi 上捐赠" -#: dist/prefs.js:1613 +#: dist/prefs.js:884 msgid "Report a bug" msgstr "反馈问题" -#: dist/prefs.js:1619 +#: dist/prefs.js:890 msgid "Request a feature" msgstr "提个需求" -#: dist/prefs.js:1627 +#: dist/prefs.js:898 msgid "Have issues, you want to suggest a new feature or contribute?" msgstr "有任何问题或者建议?" -#: dist/prefs.js:1634 +#: dist/prefs.js:905 msgid "Open a new issue on" msgstr "" -#: dist/prefs.js:1814 +#: dist/prefs.js:970 +msgid "Choose how windows snap to screen edges" +msgstr "" + +#: dist/prefs.js:985 +msgid "Default" +msgstr "" + +#: dist/prefs.js:986 +#, fuzzy +msgid "Follow quarters or screen halves" +msgstr "移动到最合适的平铺位置" + +#: dist/prefs.js:991 +msgid "Adaptive" +msgstr "" + +#: dist/prefs.js:992 +msgid "Follow corners of selected layout or screen halves" +msgstr "" + +#: dist/prefs.js:997 +msgid "Granular" +msgstr "" + +#: dist/prefs.js:998 +msgid "Follow currently selected layout" +msgstr "" + +#: dist/prefs.js:1187 msgid "Choose custom color" msgstr "" -#: dist/prefs.js:1815 +#: dist/prefs.js:1188 msgid "Use system accent color" msgstr "" -#: dist/prefs.js:1866 dist/prefs.js:1889 +#: dist/prefs.js:1241 dist/prefs.js:1267 msgid "New accelerator…" msgstr "设置新快捷键" -#: dist/prefs.js:1892 +#: dist/prefs.js:1270 msgid "Use Backspace to clear" msgstr "使用退格键(Backspace)清除" -#: dist/extension.js:5809 -msgid "Edit Layouts" -msgstr "编辑布局" +#~ msgid "Edit Layouts" +#~ msgstr "编辑布局" -#: dist/extension.js:5819 -msgid "New Layout" -msgstr "新建布局" +#~ msgid "New Layout" +#~ msgstr "新建布局" -#: dist/extension.js:6004 -msgid "to split a tile" -msgstr "水平分割一个平铺位置" +#~ msgid "to split a tile" +#~ msgstr "水平分割一个平铺位置" -#: dist/extension.js:6043 -msgid "to split a tile vertically" -msgstr "垂直分割一个平铺位置" +#~ msgid "to split a tile vertically" +#~ msgstr "垂直分割一个平铺位置" -#: dist/extension.js:6063 -msgid "to delete a tile" -msgstr "删除一个平铺位置" +#~ msgid "to delete a tile" +#~ msgstr "删除一个平铺位置" -#: dist/extension.js:6087 -msgid "use the indicator button to save or cancel" -msgstr "使用托盘图标来保存或取消" +#~ msgid "use the indicator button to save or cancel" +#~ msgstr "使用托盘图标来保存或取消" #~ msgid "Menu" #~ msgstr "菜单" @@ -667,9 +691,6 @@ msgstr "使用托盘图标来保存或取消" #~ msgid "Start editing" #~ msgstr "开始编辑" -#~ msgid "Move to best tile" -#~ msgstr "移动到最合适的平铺位置" - #~ msgid "Move to leftmost tile" #~ msgstr "移动到最左边的平铺位置" diff --git a/translations/zh_TW.po b/translations/zh_TW.po index dfc056be..c20a7c48 100644 --- a/translations/zh_TW.po +++ b/translations/zh_TW.po @@ -8,216 +8,217 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-09 11:35+0100\n" -"PO-Revision-Date: 2025-04-03 18:17+0800\n" -"Last-Translator: taijuin \n" +"POT-Creation-Date: 2026-01-03 22:57+0100\n" +"PO-Revision-Date: 2025-12-01 01:58+0800\n" +"Last-Translator: taijuin\n" "Language-Team: \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.6\n" +"X-Generator: Poedit 3.8\n" -#: dist/prefs.js:793 +#: dist/prefs.js:59 msgid "General" msgstr "一般" -#: dist/prefs.js:798 +#: dist/prefs.js:64 msgid "Appearance" msgstr "外觀" -#: dist/prefs.js:799 +#: dist/prefs.js:65 msgid "Configure the appearance of Tiling Shell" msgstr "設定 Tiling Shell 的外觀" -#: dist/prefs.js:804 +#: dist/prefs.js:70 msgid "Show Indicator" msgstr "顯示指示器" -#: dist/prefs.js:805 +#: dist/prefs.js:71 msgid "Whether to show the panel indicator" msgstr "是否顯示面板指示器" -#: dist/prefs.js:810 +#: dist/prefs.js:76 msgid "Inner gaps" msgstr "內部間距" -#: dist/prefs.js:811 +#: dist/prefs.js:77 msgid "Gaps between windows" msgstr "視窗之間的間距" -#: dist/prefs.js:816 +#: dist/prefs.js:82 msgid "Outer gaps" msgstr "外部間距" -#: dist/prefs.js:817 +#: dist/prefs.js:83 msgid "Gaps between a window and the monitor borders" msgstr "視窗與顯示器邊框之間的間距" -#: dist/prefs.js:821 +#: dist/prefs.js:87 msgid "Blur (experimental feature)" msgstr "模糊(實驗性功能)" -#: dist/prefs.js:823 +#: dist/prefs.js:89 msgid "Apply blur effect to Snap Assistant and tile previews" msgstr "將模糊效果套用至「貼齊小幫手」與區塊預覽" -#: dist/prefs.js:829 +#: dist/prefs.js:95 msgid "Snap Assistant threshold" msgstr "貼齊小幫手的靈敏度" -#: dist/prefs.js:831 +#: dist/prefs.js:97 msgid "Minimum distance from the Snap Assistant to the pointer to open it" msgstr "貼齊小幫手感知拖曳視窗之游標靠近的距離" -#: dist/prefs.js:840 +#: dist/prefs.js:106 msgid "Snap Assistant" msgstr "貼齊小幫手" -#: dist/prefs.js:841 +#: dist/prefs.js:107 msgid "Apply blur effect to Snap Assistant" msgstr "將模糊效果套用至貼齊小幫手" -#: dist/prefs.js:847 +#: dist/prefs.js:113 msgid "Selected tile preview" msgstr "所選區塊預覽" -#: dist/prefs.js:848 +#: dist/prefs.js:114 msgid "Apply blur effect to selected tile preview" msgstr "將模糊效果套用至所選區塊預覽" -#: dist/prefs.js:852 +#: dist/prefs.js:118 msgid "Window border" msgstr "視窗邊框" -#: dist/prefs.js:853 dist/prefs.js:860 +#: dist/prefs.js:119 dist/prefs.js:126 msgid "Show a border around focused window" msgstr "在焦點視窗周圍顯示邊框" -#: dist/prefs.js:859 +#: dist/prefs.js:125 msgid "Enable" msgstr "啟用" -#: dist/prefs.js:866 +#: dist/prefs.js:132 msgid "Smart border radius" msgstr "智慧型邊框半徑" -#: dist/prefs.js:867 -msgid "Dynamically adapt to the window’s actual border radius" +#: dist/prefs.js:133 +#, fuzzy +msgid "Dynamically adapt to the window's actual border radius" msgstr "動態適應視窗的實際邊框半徑" -#: dist/prefs.js:873 +#: dist/prefs.js:139 msgid "Width" msgstr "寬度" -#: dist/prefs.js:874 +#: dist/prefs.js:140 msgid "The size of the border" msgstr "邊框的大小" -#: dist/prefs.js:883 +#: dist/prefs.js:149 msgid "Border color" msgstr "邊框顏色" -#: dist/prefs.js:884 +#: dist/prefs.js:150 msgid "Choose the color of the border" msgstr "選擇邊框的顏色" -#: dist/prefs.js:900 +#: dist/prefs.js:166 msgid "Animations" msgstr "動畫" -#: dist/prefs.js:901 +#: dist/prefs.js:167 msgid "Customize animations" msgstr "自訂動畫" -#: dist/prefs.js:907 +#: dist/prefs.js:173 msgid "Snap assistant animation time" msgstr "貼齊小幫手動畫時間" -#: dist/prefs.js:908 +#: dist/prefs.js:174 msgid "The snap assistant animation time in milliseconds" msgstr "貼齊小幫手到達定位所需時間(以毫秒為單位)" -#: dist/prefs.js:916 +#: dist/prefs.js:182 msgid "Tiles animation time" msgstr "區塊動畫時間" -#: dist/prefs.js:917 +#: dist/prefs.js:183 msgid "The tiles animation time in milliseconds" msgstr "切換所選區塊時,切換其預覽所需時間(以毫秒為單位)" -#: dist/prefs.js:923 +#: dist/prefs.js:189 msgid "Behaviour" msgstr "行為" -#: dist/prefs.js:924 +#: dist/prefs.js:190 msgid "Configure the behaviour of Tiling Shell" msgstr "設定 Tiling Shell 的行為" -#: dist/prefs.js:929 +#: dist/prefs.js:195 msgid "Enable Snap Assistant" msgstr "啟用「貼齊小幫手」" -#: dist/prefs.js:930 +#: dist/prefs.js:196 msgid "Move the window on top of the screen to snap assist it" msgstr "將視窗移到螢幕中間頂端以輔助它貼齊" -#: dist/prefs.js:935 +#: dist/prefs.js:201 msgid "Enable Tiling System" msgstr "啟用平鋪系統" -#: dist/prefs.js:936 +#: dist/prefs.js:202 msgid "Hold the activation key while moving a window to tile it" msgstr "移動視窗時按住啟動鍵以平鋪視窗" -#: dist/prefs.js:944 +#: dist/prefs.js:210 msgid "Tiling System deactivation key" msgstr "平鋪系統停用鍵" -#: dist/prefs.js:946 +#: dist/prefs.js:212 msgid "" "Hold the deactivation key while moving a window to deactivate the tiling " "system" msgstr "移動視窗時按住停用鍵,可停用平鋪系統" -#: dist/prefs.js:954 +#: dist/prefs.js:220 msgid "Span multiple tiles" msgstr "橫跨多個區塊" -#: dist/prefs.js:955 +#: dist/prefs.js:221 msgid "Hold the activation key to span multiple tiles" msgstr "按住啟動鍵可跨越多個區塊" -#: dist/prefs.js:964 +#: dist/prefs.js:230 msgid "Enable Auto Tiling" msgstr "啟用自動平鋪" -#: dist/prefs.js:965 +#: dist/prefs.js:231 msgid "Automatically tile new windows to the best tile" msgstr "自動將新視窗平鋪到最佳區塊位置" -#: dist/prefs.js:970 +#: dist/prefs.js:236 msgid "Enable auto-resize of the complementing tiled windows" msgstr "啟用自動調整互補平鋪視窗的大小" -#: dist/prefs.js:972 +#: dist/prefs.js:238 msgid "" "When a tiled window is resized, auto-resize the other tiled windows near it" msgstr "調整平鋪視窗的大小時,自動調整其附近其他平鋪視窗的大小" -#: dist/prefs.js:978 +#: dist/prefs.js:244 msgid "Restore window size" msgstr "還原視窗大小" -#: dist/prefs.js:980 +#: dist/prefs.js:246 msgid "Whether to restore the windows to their original size when untiled" msgstr "是否將視窗還原為未平鋪時的原始大小" -#: dist/prefs.js:986 +#: dist/prefs.js:252 msgid "Add snap assistant and auto-tile buttons to window menu" msgstr "在視窗選單中加入「貼齊小幫手」和自動平鋪按鈕" -#: dist/prefs.js:988 +#: dist/prefs.js:254 msgid "" "Add snap assistant and auto-tile buttons in the menu that shows up when you " "right click on a window title" @@ -225,421 +226,442 @@ msgstr "" "當您在視窗標題上按一下滑鼠右鍵時,在顯示的功能表中加入「貼齊小幫手」和自動平" "鋪按鈕" -#: dist/prefs.js:994 +#: dist/prefs.js:260 msgid "Add tiled windows to ALT+TAB menu" -msgstr "" +msgstr "在 ALT+TAB 選單中新增平鋪的視窗" -#: dist/prefs.js:996 +#: dist/prefs.js:262 msgid "" "Add the tiled windows to the ALT+TAB menu to open all the tiled windows at " "once" -msgstr "" +msgstr "將平鋪的視窗新增至 ALT+TAB 選單,即可同時開啟所有平鋪的視窗" -#: dist/prefs.js:1001 +#: dist/prefs.js:267 msgid "Screen Edges" msgstr "螢幕邊緣" -#: dist/prefs.js:1003 +#: dist/prefs.js:269 msgid "" "Drag windows against the top, left and right screen edges to resize them" msgstr "將視窗拖曳到螢幕頂端、左邊和右邊以調整視窗大小" -#: dist/prefs.js:1017 +#: dist/prefs.js:283 msgid "Drag against top edge to maximize window" msgstr "拖曳頂端邊緣以最大化視窗" -#: dist/prefs.js:1018 +#: dist/prefs.js:284 msgid "Drag windows against the top edge to maximize them" msgstr "將視窗拖曳到頂端邊緣,使其最大化" -#: dist/prefs.js:1027 +#: dist/prefs.js:293 msgid "Quarter tiling activation area" msgstr "四分之一平鋪啟動區" -#: dist/prefs.js:1028 +#: dist/prefs.js:294 #, javascript-format msgid "Activation area to trigger quarter tiling (%% of the screen)" msgstr "觸發四分之一平鋪的啟動區域(佔螢幕百分比)" -#: dist/prefs.js:1044 +#: dist/prefs.js:310 msgid "Edge tiling offset" -msgstr "" +msgstr "邊緣平鋪偏移量" -#: dist/prefs.js:1045 +#: dist/prefs.js:311 msgid "Offset from the screen edge to trigger edge tiling (in pixels)" -msgstr "" +msgstr "從螢幕邊緣到觸發邊緣的偏移量(以像素為單位)" -#: dist/prefs.js:1062 +#: dist/prefs.js:333 msgid "Windows suggestions" msgstr "視窗建議" -#: dist/prefs.js:1063 +#: dist/prefs.js:334 msgid "Enable and disable windows suggestions" msgstr "啟用和停用視窗建議" -#: dist/prefs.js:1068 +#: dist/prefs.js:339 msgid "Enable window suggestions for the tiling system" msgstr "啟用平鋪系統的視窗建議" -#: dist/prefs.js:1070 +#: dist/prefs.js:341 msgid "" "Provides smart suggestions to fill empty tiles when using the tiling system" msgstr "使用平鋪系統時,提供填滿空白區塊的智慧型建議" -#: dist/prefs.js:1076 +#: dist/prefs.js:347 msgid "Enable window suggestions for the snap assistant" msgstr "啟用「貼齊小幫手」的視窗建議" -#: dist/prefs.js:1078 +#: dist/prefs.js:349 msgid "" "Offers suggestions to populate empty tiles when using the snap assistant" msgstr "使用「貼齊小幫手」時,提供填入空白區塊的建議" -#: dist/prefs.js:1084 +#: dist/prefs.js:355 msgid "Enable window suggestions for screen edge snapping" msgstr "啟用螢幕邊緣貼齊的視窗建議" -#: dist/prefs.js:1086 +#: dist/prefs.js:357 msgid "Suggests windows to occupy empty tiles when snapping to screen edges" msgstr "當貼齊至螢幕邊緣時,會建議視窗佔用空白區塊" -#: dist/prefs.js:1092 +#: dist/prefs.js:363 msgid "Layouts" msgstr "版面配置" -#: dist/prefs.js:1093 +#: dist/prefs.js:364 msgid "Configure the layouts of Tiling Shell" msgstr "設定 Tiling Shell 的版面配置" -#: dist/prefs.js:1097 dist/prefs.js:1098 +#: dist/prefs.js:368 dist/prefs.js:369 msgid "Edit layouts" msgstr "編輯版面配置" -#: dist/prefs.js:1099 +#: dist/prefs.js:370 msgid "Open the layouts editor" msgstr "開啟版面配置編輯器" -#: dist/prefs.js:1104 dist/prefs.js:1105 dist/prefs.js:1109 +#: dist/prefs.js:375 dist/prefs.js:376 dist/prefs.js:380 msgid "Export layouts" msgstr "匯出版面配置" -#: dist/prefs.js:1106 +#: dist/prefs.js:377 msgid "Export layouts to a file" msgstr "將版面配置匯出到檔案" -#: dist/prefs.js:1112 dist/prefs.js:1496 +#: dist/prefs.js:383 dist/prefs.js:767 msgid "Save" msgstr "儲存" -#: dist/prefs.js:1113 dist/prefs.js:1167 dist/prefs.js:1497 dist/prefs.js:1552 +#: dist/prefs.js:384 dist/prefs.js:438 dist/prefs.js:768 dist/prefs.js:823 msgid "Cancel" msgstr "取消" -#: dist/prefs.js:1158 dist/prefs.js:1159 +#: dist/prefs.js:429 dist/prefs.js:430 msgid "Import layouts" msgstr "匯入版面配置" -#: dist/prefs.js:1160 +#: dist/prefs.js:431 msgid "Import layouts from a file" msgstr "從檔案匯入版面配置" -#: dist/prefs.js:1163 +#: dist/prefs.js:434 msgid "Select layouts file" msgstr "選取版面配置檔" -#: dist/prefs.js:1166 dist/prefs.js:1551 +#: dist/prefs.js:437 dist/prefs.js:822 msgid "Open" msgstr "開啟" -#: dist/prefs.js:1214 dist/prefs.js:1215 +#: dist/prefs.js:485 dist/prefs.js:486 msgid "Reset layouts" msgstr "重設版面配置" -#: dist/prefs.js:1216 +#: dist/prefs.js:487 msgid "Bring back the default layouts" msgstr "恢復預設版面配置" -#: dist/prefs.js:1229 +#: dist/prefs.js:500 msgid "Keybindings" msgstr "按鍵綁定" -#: dist/prefs.js:1231 +#: dist/prefs.js:502 msgid "Use hotkeys to perform actions on the focused window" msgstr "使用熱鍵對焦點視窗執行動作" -#: dist/prefs.js:1249 +#: dist/prefs.js:520 msgid "Move window to right tile" msgstr "將視窗移到右側區塊" -#: dist/prefs.js:1251 +#: dist/prefs.js:522 msgid "Move the focused window to the tile on its right" -msgstr "將聚焦的視窗移至其右側的區塊上" +msgstr "將聚焦的視窗移至其右側的區塊" -#: dist/prefs.js:1260 +#: dist/prefs.js:531 msgid "Move window to left tile" msgstr "將視窗移到左側區塊" -#: dist/prefs.js:1261 +#: dist/prefs.js:532 msgid "Move the focused window to the tile on its left" -msgstr "將對焦的視窗移至其左側的區塊上" +msgstr "將對焦的視窗移至其左側的區塊" -#: dist/prefs.js:1267 +#: dist/prefs.js:538 msgid "Move window to tile above" msgstr "將視窗移到上方區塊" -#: dist/prefs.js:1268 +#: dist/prefs.js:539 msgid "Move the focused window to the tile above" -msgstr "將聚焦的視窗移至其上方的區塊上" +msgstr "將聚焦的視窗移至其上方的區塊" -#: dist/prefs.js:1274 +#: dist/prefs.js:545 msgid "Move window to tile below" msgstr "將視窗移到下方區塊" -#: dist/prefs.js:1275 +#: dist/prefs.js:546 msgid "Move the focused window to the tile below" -msgstr "將聚焦的視窗移至其下方的區塊上" +msgstr "將聚焦的視窗移至其下方的區塊" -#: dist/prefs.js:1281 +#: dist/prefs.js:552 msgid "Span window to right tile" msgstr "跨越視窗到右側區塊" -#: dist/prefs.js:1282 +#: dist/prefs.js:553 msgid "Span the focused window to the tile on its right" msgstr "將聚焦的視窗跨越至右側的區塊" -#: dist/prefs.js:1288 +#: dist/prefs.js:559 msgid "Span window to left tile" msgstr "跨越視窗到左側區塊" -#: dist/prefs.js:1289 +#: dist/prefs.js:560 msgid "Span the focused window to the tile on its left" msgstr "將聚焦的視窗跨越至左側的區塊" -#: dist/prefs.js:1295 +#: dist/prefs.js:566 msgid "Span window above" msgstr "向上橫跨視窗" -#: dist/prefs.js:1296 +#: dist/prefs.js:567 msgid "Span the focused window to the tile above" msgstr "將聚焦的視窗跨越至上方的區塊" -#: dist/prefs.js:1302 +#: dist/prefs.js:573 msgid "Span window down" msgstr "向下橫跨視窗" -#: dist/prefs.js:1303 +#: dist/prefs.js:574 msgid "Span the focused window to the tile below" msgstr "將聚焦的視窗跨越至下方的區塊" -#: dist/prefs.js:1309 +#: dist/prefs.js:580 msgid "Span window to all tiles" msgstr "跨越視窗至所有區塊" -#: dist/prefs.js:1310 +#: dist/prefs.js:581 msgid "Span the focused window to all the tiles" msgstr "將聚焦的視窗跨越至所有區塊" -#: dist/prefs.js:1316 +#: dist/prefs.js:587 msgid "Untile focused window" msgstr "未平鋪焦點的視窗" -#: dist/prefs.js:1324 +#: dist/prefs.js:595 msgid "Move window to the center" msgstr "將視窗移到中央" -#: dist/prefs.js:1326 +#: dist/prefs.js:597 msgid "Move the focused window to the center of the screen" msgstr "將聚焦的視窗移至螢幕中央" -#: dist/prefs.js:1335 +#: dist/prefs.js:606 msgid "Focus window to the right" msgstr "焦點視窗向右" -#: dist/prefs.js:1337 +#: dist/prefs.js:608 msgid "Focus the window to the right of the current focused window" msgstr "將視窗對焦到目前對焦視窗右邊的視窗" -#: dist/prefs.js:1344 +#: dist/prefs.js:615 msgid "Focus window to the left" msgstr "焦點視窗向左移動" -#: dist/prefs.js:1345 +#: dist/prefs.js:616 msgid "Focus the window to the left of the current focused window" msgstr "對焦目前對焦視窗左側的視窗" -#: dist/prefs.js:1351 +#: dist/prefs.js:622 msgid "Focus window above" msgstr "上方的對焦視窗" -#: dist/prefs.js:1352 +#: dist/prefs.js:623 msgid "Focus the window above the current focused window" msgstr "將視窗對焦於目前對焦的視窗上方" -#: dist/prefs.js:1358 +#: dist/prefs.js:629 msgid "Focus window below" msgstr "對焦視窗下方" -#: dist/prefs.js:1359 +#: dist/prefs.js:630 msgid "Focus the window below the current focused window" msgstr "對焦目前對焦視窗下方的視窗" -#: dist/prefs.js:1365 +#: dist/prefs.js:636 msgid "Focus next window" msgstr "聚焦下一個視窗" -#: dist/prefs.js:1366 +#: dist/prefs.js:637 msgid "Focus the window next to the current focused window" msgstr "對焦目前對焦視窗旁邊的視窗" -#: dist/prefs.js:1372 +#: dist/prefs.js:643 msgid "Focus previous window" msgstr "對焦上一個視窗" -#: dist/prefs.js:1373 +#: dist/prefs.js:644 msgid "Focus the window prior to the current focused window" msgstr "對焦目前對焦視窗之前的視窗" -#: dist/prefs.js:1379 +#: dist/prefs.js:650 msgid "Highlight focused window" msgstr "高亮顯示焦點視窗" -#: dist/prefs.js:1381 +#: dist/prefs.js:652 msgid "Minimize all the other windows and show only the focused window" msgstr "最小化所有其他視窗,只顯示焦點視窗" -#: dist/prefs.js:1388 -#, fuzzy +#: dist/prefs.js:659 msgid "Cycle layouts" -msgstr "重設版面配置" +msgstr "循環版面配置" -#: dist/prefs.js:1389 +#: dist/prefs.js:660 msgid "Cycle through available workspace layouts" -msgstr "" +msgstr "循環切換可用工作區版面配置" -#: dist/prefs.js:1415 +#: dist/prefs.js:686 msgid "View and Customize all the Shortcuts" msgstr "檢視並自訂所有快捷鍵" -#: dist/prefs.js:1443 dist/prefs.js:1444 +#: dist/prefs.js:714 dist/prefs.js:715 msgid "View and Customize Shortcuts" msgstr "檢視和自訂快捷鍵" -#: dist/prefs.js:1466 +#: dist/prefs.js:737 msgid "Enable next/previous window focus to wrap around" msgstr "啟用下一個/上一個視窗焦點環繞" -#: dist/prefs.js:1468 +#: dist/prefs.js:739 msgid "When focusing next or previous window, wrap around at the window edge" msgstr "對焦下一個或上一個視窗時,環繞視窗邊緣" -#: dist/prefs.js:1474 +#: dist/prefs.js:745 msgid "Restrict directional focus to tiled windows" -msgstr "" +msgstr "將方向性聚焦限制於平鋪的視窗" -#: dist/prefs.js:1476 +#: dist/prefs.js:747 msgid "When using directional focus navigation, only consider tiled windows" -msgstr "" +msgstr "使用方向性焦點導航時,僅考慮平鋪的視窗" -#: dist/prefs.js:1481 +#: dist/prefs.js:752 msgid "Import, export and reset" msgstr "匯入、匯出及重設" -#: dist/prefs.js:1483 +#: dist/prefs.js:754 msgid "Import, export and reset the settings of Tiling Shell" msgstr "匯入、匯出及重設 Tiling Shell 的設定" -#: dist/prefs.js:1488 dist/prefs.js:1489 +#: dist/prefs.js:759 dist/prefs.js:760 msgid "Export settings" msgstr "匯出設定" -#: dist/prefs.js:1490 +#: dist/prefs.js:761 msgid "Export settings to a file" msgstr "將設定匯出至檔案" -#: dist/prefs.js:1493 +#: dist/prefs.js:764 msgid "Export settings to a text file" msgstr "將設定匯出到文字檔" -#: dist/prefs.js:1500 +#: dist/prefs.js:771 msgid "Text file" msgstr "文字檔" -#: dist/prefs.js:1543 dist/prefs.js:1544 +#: dist/prefs.js:814 dist/prefs.js:815 msgid "Import settings" msgstr "匯入設定" -#: dist/prefs.js:1545 +#: dist/prefs.js:816 msgid "Import settings from a file" msgstr "從檔案匯入設定" -#: dist/prefs.js:1548 +#: dist/prefs.js:819 msgid "Select a text file to import from" msgstr "選擇要匯入的文字檔" -#: dist/prefs.js:1590 dist/prefs.js:1591 +#: dist/prefs.js:861 dist/prefs.js:862 msgid "Reset settings" msgstr "重設設定" -#: dist/prefs.js:1592 +#: dist/prefs.js:863 msgid "Bring back the default settings" msgstr "恢復預設設定" -#: dist/prefs.js:1607 +#: dist/prefs.js:878 msgid "Donate on ko-fi" msgstr "在 ko-fi 上捐款" -#: dist/prefs.js:1613 +#: dist/prefs.js:884 msgid "Report a bug" msgstr "回報錯誤" -#: dist/prefs.js:1619 +#: dist/prefs.js:890 msgid "Request a feature" msgstr "要求功能" -#: dist/prefs.js:1627 +#: dist/prefs.js:898 msgid "Have issues, you want to suggest a new feature or contribute?" msgstr "有問題、想建議新功能或貢獻心力?" -#: dist/prefs.js:1634 +#: dist/prefs.js:905 msgid "Open a new issue on" msgstr "開啟一個新的議題" -#: dist/prefs.js:1814 -msgid "Choose custom color" +#: dist/prefs.js:970 +msgid "Choose how windows snap to screen edges" msgstr "" -#: dist/prefs.js:1815 -msgid "Use system accent color" +#: dist/prefs.js:985 +msgid "Default" msgstr "" -#: dist/prefs.js:1866 dist/prefs.js:1889 +#: dist/prefs.js:986 +msgid "Follow quarters or screen halves" +msgstr "" + +#: dist/prefs.js:991 +msgid "Adaptive" +msgstr "" + +#: dist/prefs.js:992 +msgid "Follow corners of selected layout or screen halves" +msgstr "" + +#: dist/prefs.js:997 +msgid "Granular" +msgstr "" + +#: dist/prefs.js:998 +msgid "Follow currently selected layout" +msgstr "" + +#: dist/prefs.js:1187 +msgid "Choose custom color" +msgstr "選擇自訂顏色" + +#: dist/prefs.js:1188 +msgid "Use system accent color" +msgstr "使用系統強調色" + +#: dist/prefs.js:1241 dist/prefs.js:1267 msgid "New accelerator…" msgstr "新增快捷鍵…" -#: dist/prefs.js:1892 +#: dist/prefs.js:1270 msgid "Use Backspace to clear" msgstr "使用 Backspace 清除" -#: dist/extension.js:5809 -msgid "Edit Layouts" -msgstr "編輯版面配置" +#~ msgid "Edit Layouts" +#~ msgstr "編輯版面配置" -#: dist/extension.js:5819 -msgid "New Layout" -msgstr "新增版面配置" +#~ msgid "New Layout" +#~ msgstr "新增版面配置" -#: dist/extension.js:6004 -msgid "to split a tile" -msgstr "分割區塊" +#~ msgid "to split a tile" +#~ msgstr "分割區塊" -#: dist/extension.js:6043 -msgid "to split a tile vertically" -msgstr "垂直分割區塊" +#~ msgid "to split a tile vertically" +#~ msgstr "垂直分割區塊" -#: dist/extension.js:6063 -msgid "to delete a tile" -msgstr "刪除區塊" +#~ msgid "to delete a tile" +#~ msgstr "刪除區塊" -#: dist/extension.js:6087 -msgid "use the indicator button to save or cancel" -msgstr "使用指示器按鈕儲存或取消" +#~ msgid "use the indicator button to save or cancel" +#~ msgstr "使用指示器按鈕儲存或取消"