diff --git a/README.md b/README.md index bc79918..b8155cb 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Dense reference material lives in [docs/](docs/): [architecture](docs/architectu - Dual-panel commander UI; either panel can be Local or any saved connection. - **Session tabs**: each tab is an independent left/right workspace; remote sessions stay connected and transfers keep running in background tabs. -- Per-panel action toolbar with a direction-explicit copy button, plus a +- Per-panel action toolbar with a direction-explicit send button, plus a VSCode-style status bar showing live transfer progress (click to expand the transfer queue with per-file speed and ETA). - **Overwrite confirmation** on name collisions, with a source-vs-destination @@ -42,7 +42,7 @@ Dense reference material lives in [docs/](docs/): [architecture](docs/architectu cleanup at the next start. - Browse, sort (name/size/modified, folders first), keyboard navigation. - Create folder / file, rename, delete (recursive), change permissions (chmod). -- Upload, download, and remote→remote copy — files **and** whole folders — +- Upload, download, and remote→remote send — files **and** whole folders — with a transfer queue, per-job progress, and cancel. - Connection manager: saved connections organised into folders, password or private-key auth (with passphrase). @@ -170,7 +170,7 @@ Saved connections live in a plain JSON file in the OS app-data directory `Tab` switch panel · `↑`/`↓`/`PgUp`/`PgDn`/`Home`/`End` move cursor · `Space` select · `Enter` open folder · `Backspace` parent · -`Ctrl/Cmd+A` select all · `F5` copy to other panel · `F2` rename · +`Ctrl/Cmd+A` select all · `F5` send to other panel · `F2` rename · `F7` new folder · `F8`/`Delete` delete · `Cmd/Ctrl+T` new tab · `Cmd/Ctrl+W` close tab · `Ctrl+Tab` next tab. diff --git a/docs/platform-notes.md b/docs/platform-notes.md index 9280db4..8fb2a0f 100644 --- a/docs/platform-notes.md +++ b/docs/platform-notes.md @@ -83,8 +83,9 @@ Code paths written blind (no Windows box was available); verify in order: 5. External editor: default app opens via `cmd /c start`; the Choose… picker starts in Program Files and accepts an .exe; remote temp-edit → save → auto-upload works (directory watcher on NTFS). -6. Context menus: Show in Explorer, Move to Recycle Bin (item restorable from - the bin), Copy Path; Permissions ABSENT on local rows, present on remote. +6. Context menus: Send to Other Panel is the first row item; Show in Explorer, + Move to Recycle Bin (item restorable from the bin), Copy Path; Permissions + ABSENT on local rows, present on remote. 7. Ctrl+T/W/F/S and Ctrl+digit tab jumps; tooltips read "Ctrl+…". 8. connections.json ACL: `icacls connections.json` shows only the current user after saving a connection. diff --git a/site/index.html b/site/index.html index 4797aa6..37cc29c 100644 --- a/site/index.html +++ b/site/index.html @@ -169,10 +169,10 @@

Same tool you know, only a little different

If you've ever used a two-pane file manager to move files over SFTP, you already know how to - use miniSCP. Two panels, a connection on each side, copy between them. Nothing to relearn.

+ use miniSCP. Two panels, a connection on each side, send between them. Nothing to relearn.

The difference is in the corners. Both panels are fully symmetric — either side can be - your local disk or any saved server — so a copy isn't only up or down. You can move files + your local disk or any saved server — so sending isn't only up or down. You can move files straight from one server to another, remote to remote, without staging them on your machine first.

@@ -183,7 +183,7 @@

What's different:

-

Remote → remote. Copy straight between two servers — nothing +

Remote → remote. Send straight between two servers — nothing staged on your machine.

Symmetric panels. Either side is your local disk or any saved server. Every panel is equal.

diff --git a/src/bun/context-menu.ts b/src/bun/context-menu.ts index ff9111e..fa8a0bd 100644 --- a/src/bun/context-menu.ts +++ b/src/bun/context-menu.ts @@ -95,6 +95,7 @@ export class PanelContextMenu { return items; } + items.push({ label: t("ctx.copyToOther"), action: "ctx-copy" }); if (ctx.type === "dir") { items.push({ label: t("ctx.open"), action: "ctx-open" }); } else { @@ -103,7 +104,6 @@ export class PanelContextMenu { } items.push({ label: t("ctx.edit"), action: "ctx-edit", accelerator: "e" }); } - items.push({ label: t("ctx.copyToOther"), action: "ctx-copy" }); items.push({ label: t("ctx.rename"), action: "ctx-rename" }); // chmod on Windows local files only flips the read-only bit — hide the lie if (!(ctx.isLocal && IS_WIN)) { diff --git a/src/shared/i18n/de.ts b/src/shared/i18n/de.ts index 9a90d86..5145a1c 100644 --- a/src/shared/i18n/de.ts +++ b/src/shared/i18n/de.ts @@ -78,9 +78,9 @@ export const de = { }, panel: { choosePanel: "Wählen, was dieses Panel anzeigt", - copy: "Kopieren", - copyToRight: "In rechtes Panel kopieren (F5)", - copyToLeft: "In linkes Panel kopieren (F5)", + copy: "Senden", + copyToRight: "An rechtes Panel senden (F5)", + copyToLeft: "An linkes Panel senden (F5)", edit: "Bearbeiten", editFile: "Datei bearbeiten (F4)", rename: "Umbenennen (F2)", @@ -282,7 +282,7 @@ export const de = { open: "Öffnen", openDefault: "Mit Standard-App öffnen", edit: "Bearbeiten", - copyToOther: "In anderes Panel kopieren", + copyToOther: "An anderes Panel senden", rename: "Umbenennen", permissions: "Berechtigungen", copyPath: "Pfad kopieren", diff --git a/src/shared/i18n/en.ts b/src/shared/i18n/en.ts index 3c167c8..0d32123 100644 --- a/src/shared/i18n/en.ts +++ b/src/shared/i18n/en.ts @@ -82,9 +82,9 @@ export const en = { }, panel: { choosePanel: "Choose what this panel shows", - copy: "Copy", - copyToRight: "Copy to right panel (F5)", - copyToLeft: "Copy to left panel (F5)", + copy: "Send", + copyToRight: "Send to right panel (F5)", + copyToLeft: "Send to left panel (F5)", edit: "Edit", editFile: "Edit file (F4)", rename: "Rename (F2)", @@ -286,7 +286,7 @@ export const en = { open: "Open", openDefault: "Open with the default application", edit: "Edit", - copyToOther: "Copy to Other Panel", + copyToOther: "Send to Other Panel", rename: "Rename", permissions: "Permissions", copyPath: "Copy Path", diff --git a/src/shared/i18n/es.ts b/src/shared/i18n/es.ts index 82863e3..1ff289a 100644 --- a/src/shared/i18n/es.ts +++ b/src/shared/i18n/es.ts @@ -78,9 +78,9 @@ export const es = { }, panel: { choosePanel: "Elige qué muestra este panel", - copy: "Copiar", - copyToRight: "Copiar al panel derecho (F5)", - copyToLeft: "Copiar al panel izquierdo (F5)", + copy: "Enviar", + copyToRight: "Enviar al panel derecho (F5)", + copyToLeft: "Enviar al panel izquierdo (F5)", edit: "Editar", editFile: "Editar archivo (F4)", rename: "Renombrar (F2)", @@ -282,7 +282,7 @@ export const es = { open: "Abrir", openDefault: "Abrir con la aplicación predeterminada", edit: "Editar", - copyToOther: "Copiar al otro panel", + copyToOther: "Enviar al otro panel", rename: "Renombrar", permissions: "Permisos", copyPath: "Copiar ruta", diff --git a/src/shared/i18n/eu.ts b/src/shared/i18n/eu.ts index 2b2996a..a2de41c 100644 --- a/src/shared/i18n/eu.ts +++ b/src/shared/i18n/eu.ts @@ -80,9 +80,9 @@ export const eu = { }, panel: { choosePanel: "Aukeratu panel honek zer erakusten duen", - copy: "Kopiatu", - copyToRight: "Kopiatu eskuineko panelera (F5)", - copyToLeft: "Kopiatu ezkerreko panelera (F5)", + copy: "Bidali", + copyToRight: "Bidali eskuineko panelera (F5)", + copyToLeft: "Bidali ezkerreko panelera (F5)", edit: "Editatu", editFile: "Editatu fitxategia (F4)", rename: "Berrizendatu (F2)", @@ -284,7 +284,7 @@ export const eu = { open: "Ireki", openDefault: "Ireki lehenetsitako aplikazioarekin", edit: "Editatu", - copyToOther: "Kopiatu beste panelera", + copyToOther: "Bidali beste panelera", rename: "Berrizendatu", permissions: "Baimenak", copyPath: "Kopiatu bidea", diff --git a/src/shared/i18n/fr.ts b/src/shared/i18n/fr.ts index d619bac..8dd7626 100644 --- a/src/shared/i18n/fr.ts +++ b/src/shared/i18n/fr.ts @@ -78,9 +78,9 @@ export const fr = { }, panel: { choosePanel: "Choisir ce qu'affiche ce panneau", - copy: "Copier", - copyToRight: "Copier vers le panneau droit (F5)", - copyToLeft: "Copier vers le panneau gauche (F5)", + copy: "Envoyer", + copyToRight: "Envoyer vers le panneau droit (F5)", + copyToLeft: "Envoyer vers le panneau gauche (F5)", edit: "Éditer", editFile: "Éditer le fichier (F4)", rename: "Renommer (F2)", @@ -282,7 +282,7 @@ export const fr = { open: "Ouvrir", openDefault: "Ouvrir avec l'application par défaut", edit: "Éditer", - copyToOther: "Copier vers l'autre panneau", + copyToOther: "Envoyer vers l'autre panneau", rename: "Renommer", permissions: "Autorisations", copyPath: "Copier le chemin", diff --git a/src/shared/i18n/ja.ts b/src/shared/i18n/ja.ts index 369a6a4..5339b97 100644 --- a/src/shared/i18n/ja.ts +++ b/src/shared/i18n/ja.ts @@ -79,9 +79,9 @@ export const ja = { }, panel: { choosePanel: "このパネルに表示する内容を選択", - copy: "コピー", - copyToRight: "右のパネルへコピー (F5)", - copyToLeft: "左のパネルへコピー (F5)", + copy: "送信", + copyToRight: "右のパネルへ送信 (F5)", + copyToLeft: "左のパネルへ送信 (F5)", edit: "編集", editFile: "ファイルを編集 (F4)", rename: "名前を変更 (F2)", @@ -282,7 +282,7 @@ export const ja = { open: "開く", openDefault: "既定のアプリで開く", edit: "編集", - copyToOther: "もう一方のパネルへコピー", + copyToOther: "もう一方のパネルへ送信", rename: "名前を変更", permissions: "アクセス権", copyPath: "パスをコピー", diff --git a/src/shared/i18n/zh.ts b/src/shared/i18n/zh.ts index 9f1b097..388dd14 100644 --- a/src/shared/i18n/zh.ts +++ b/src/shared/i18n/zh.ts @@ -79,9 +79,9 @@ export const zh = { }, panel: { choosePanel: "选择此面板显示的内容", - copy: "复制", - copyToRight: "复制到右侧面板 (F5)", - copyToLeft: "复制到左侧面板 (F5)", + copy: "发送", + copyToRight: "发送到右侧面板 (F5)", + copyToLeft: "发送到左侧面板 (F5)", edit: "编辑", editFile: "编辑文件 (F4)", rename: "重命名 (F2)", @@ -282,7 +282,7 @@ export const zh = { open: "打开", openDefault: "用默认应用打开", edit: "编辑", - copyToOther: "复制到另一个面板", + copyToOther: "发送到另一个面板", rename: "重命名", permissions: "权限", copyPath: "复制路径",