fpasoterm 1.6.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of fpasoterm might be problematic. Click here for more details.

package/README.ja.md CHANGED
@@ -298,11 +298,11 @@ IME composition は表示専用です。WebView/xterm.js の入力経路で受
298
298
  全デフォルト設定は [設定](docs/config.ja.md) にまとめています。plugin runtime/API contractは [プラグイン](docs/plugins.ja.md)、対応 API declarationは [`docs/fpasoterm-plugin.d.ts`](docs/fpasoterm-plugin.d.ts) を参照してください。設定 sample は [examples/config](examples/config)、最小のlocal plugin sampleは [examples/plugins](examples/plugins) にあります。review済みの公開pluginは、ports catalog、compatibility check、update、contribution workflowを管理する [fpasoterm-plugins](https://github.com/oyoguhito/fpasoterm-plugins) を使用してください。
299
299
 
300
300
  複数端末間のメンテナンス用途では、Google Drive for desktop などのローカル同期フォルダを使って、diagnostics と terminal output log を共有できます。Google Drive API や OAuth は使いません。詳細は [Sync Folder](docs/sync.ja.md) を参照してください。
301
- Kitty Graphics Protocol、SIXEL、iTerm inline image は、image stream により Tauri/WebKitGTK renderer が停止することがあるため、現在は未対応です。`Ctrl+Shift+B` の Broadcast Input は対象の local fpasoterm window を選択して同じ command を送信できます。`fpasoterm --broadcast "command"` でも同じ操作を実行でき、trusted な同期フォルダを使う場合は別 machine で既に起動している全 instance にも短寿命 command を送れます。詳細は [設定](docs/config.ja.md) と [Sync Folder](docs/sync.ja.md) を参照してください。
301
+ Kitty Graphics Protocol、SIXEL、iTerm inline image は、image stream により Tauri/WebKitGTK renderer が停止することがあるため、現在は未対応です。`Ctrl+Shift+b` の Broadcast Input は対象の local fpasoterm window を選択して同じ command を送信できます。`fpasoterm --broadcast "command"` でも同じ操作を実行でき、trusted な同期フォルダを使う場合は別 machine で既に起動している全 instance にも短寿命 command を送れます。詳細は [設定](docs/config.ja.md) と [Sync Folder](docs/sync.ja.md) を参照してください。
302
302
  初回設定は `fpasoterm --setup-sync` で質問に答えるだけで作成できます。
303
303
  Windows の source checkout では `node .\bin\fpasoterm --setup-sync` を使います。
304
304
  `fpasoterm --sync-status` で folder health と channel を確認でき、`fpasoterm --sync-clean` は期限切れの sync command file だけを削除します。
305
- terminal output log は hamburger menu の `Log Start (^S)` / `Log Stop (^S)` または `Ctrl+Shift+S` で取得し、`Log Show (^P)` または `Ctrl+Shift+P` で active log または `Log Stop` で閉じた最後の log を表示できます。共有したい場合は `logging.directory` を同期フォルダに向けます。
305
+ terminal output log は hamburger menu の `Log Start (^s)` / `Log Stop (^s)` または `Ctrl+Shift+s` で取得し、`Log Show (^l)` または `Ctrl+Shift+l` で active log または `Log Stop` で閉じた最後の log を表示できます。共有したい場合は `logging.directory` を同期フォルダに向けます。
306
306
  log panel には検索欄と `Search` ボタンがあり、表示中の log から次の一致文字列を選択してその位置へ scroll できます。`N` は次、`P` は前の一致箇所へ移動します。log text area に focus がある場合は `j` / `k` でも同じ移動ができ、矢印キーは通常の log scroll に使えます。
307
307
 
308
308
  npm registry から global install する場合:
package/README.md CHANGED
@@ -8,7 +8,7 @@ fpasoterm is intended to be used with terminal multiplexers such as screen / tmu
8
8
 
9
9
  This is a deliberate boundary: fpasoterm avoids reimplementing capabilities that belong to the user's shell, multiplexer, or TUI editor. This includes pane and session management, shell commands, job control, multiplexer configuration, and editor features supplied by Vim, Emacs, Fresh, Helix, and similar tools. Use those tools for their native workflows; fpasoterm provides the terminal surface, OS integration, and local customization hooks. New convenience behavior should normally be delivered as a plugin instead of expanding the core application. Compatibility with those multiplexers and TUI editors is a maintenance priority.
10
10
 
11
- Kitty Graphics Protocol, SIXEL, and iTerm inline images are currently unsupported because image streams can freeze the Tauri/WebKitGTK renderer. `Ctrl+Shift+B` opens Broadcast Input, which selects local fpasoterm windows before sending one command. The same operation is available as `fpasoterm --broadcast "command"`; a trusted sync folder can optionally deliver the short-lived command to every already-running instance on another machine. See [Configuration](docs/config.en.md) and [Sync Folder](docs/sync.en.md).
11
+ Kitty Graphics Protocol, SIXEL, and iTerm inline images are currently unsupported because image streams can freeze the Tauri/WebKitGTK renderer. `Ctrl+Shift+b` opens Broadcast Input, which selects local fpasoterm windows before sending one command. The same operation is available as `fpasoterm --broadcast "command"`; a trusted sync folder can optionally deliver the short-lived command to every already-running instance on another machine. See [Configuration](docs/config.en.md) and [Sync Folder](docs/sync.en.md).
12
12
 
13
13
  Japanese documentation: [README.ja.md](README.ja.md). Installation instructions are available in [English](INSTALL.md) and [Japanese](INSTALL.ja.md).
14
14
 
@@ -489,8 +489,8 @@ Run `fpasoterm --setup-sync` for an interactive first-time setup.
489
489
  On Windows source checkouts, run `node .\bin\fpasoterm --setup-sync`.
490
490
  Use `fpasoterm --sync-status` to inspect folder health and channels, or
491
491
  `fpasoterm --sync-clean` to remove only expired sync command files.
492
- Terminal output logs can be written from the hamburger menu with `Log Start (^S)` /
493
- `Log Stop (^S)` or `Ctrl+Shift+S`, and inspected with `Log Show (^P)` or `Ctrl+Shift+P`.
492
+ Terminal output logs can be written from the hamburger menu with `Log Start (^s)` /
493
+ `Log Stop (^s)` or `Ctrl+Shift+s`, and inspected with `Log Show (^l)` or `Ctrl+Shift+l`.
494
494
  `Log Show` displays the active log or the last log closed by `Log Stop`. Point
495
495
  `logging.directory` at the same synced folder when you want those logs shared.
496
496
  The log panel includes a search field and `Search` button for selecting and
@@ -529,13 +529,13 @@ start fpasoterm from the icon even when it does not inherit the user's shell
529
529
  `PATH`.
530
530
 
531
531
  The GTK application id is disabled so multiple fpasoterm processes can run.
532
- When multiple fpasoterm windows are open, use `Tile (^T)` in the titlebar window
533
- menu, or press `Ctrl+Shift+T`,
532
+ When multiple fpasoterm windows are open, use `Tile (^t)` in the titlebar window
533
+ menu, or press `Ctrl+Shift+t`,
534
534
  to arrange them into a grid on the current monitor. Windows and X11 support
535
535
  native placement. Wayland compositors may reject application-controlled
536
536
  positions; the terminal remains usable and the diagnostic panel reports the
537
537
  placement error.
538
- Use `Close All (^X)` in the same menu, or press `Ctrl+Shift+X`, to close every
538
+ Use `Close All (^x)` in the same menu, or press `Ctrl+Shift+x`, to close every
539
539
  running fpasoterm window.
540
540
 
541
541
  When packaging a macOS `.app` bundle, use the generated icon at:
package/bin/fpasoterm CHANGED
@@ -16,6 +16,7 @@ const {
16
16
  discoverPluginFiles,
17
17
  loadConfig,
18
18
  mergeConfig,
19
+ migrateLegacyLogKeybindings,
19
20
  missingConfigKeys,
20
21
  pluginMetadata,
21
22
  readPluginMetadata,
@@ -1745,9 +1746,11 @@ function updateConfig(options) {
1745
1746
  applyEnv(options.env);
1746
1747
  const targetPath = configPath();
1747
1748
  const userConfig = readUserConfig(targetPath);
1749
+ const migratedUserConfig = migrateLegacyLogKeybindings(userConfig);
1748
1750
  const defaults = writableConfigDefaults();
1749
- const missing = missingConfigKeys(defaults, userConfig);
1750
- if (missing.length === 0) {
1751
+ const missing = missingConfigKeys(defaults, migratedUserConfig);
1752
+ const migrated = JSON.stringify(userConfig) !== JSON.stringify(migratedUserConfig);
1753
+ if (missing.length === 0 && !migrated) {
1751
1754
  console.log(`config already includes all defaults: ${targetPath}`);
1752
1755
  return;
1753
1756
  }
@@ -1757,9 +1760,12 @@ function updateConfig(options) {
1757
1760
  backupPath = `${targetPath}.backup-${Date.now()}`;
1758
1761
  fs.copyFileSync(targetPath, backupPath);
1759
1762
  }
1760
- writeUserConfig(mergeConfig(defaults, userConfig), targetPath);
1763
+ writeUserConfig(mergeConfig(defaults, migratedUserConfig), targetPath);
1761
1764
  console.log(`updated ${targetPath}`);
1762
1765
  console.log(`added ${missing.length} default setting(s)`);
1766
+ if (migrated) {
1767
+ console.log('migrated Log Show from Ctrl+Shift+P to Ctrl+Shift+l');
1768
+ }
1763
1769
  if (backupPath) {
1764
1770
  console.log(`backed up previous config ${backupPath}`);
1765
1771
  }
package/docs/config.en.md CHANGED
@@ -298,9 +298,8 @@ brightWhite = "#ffffff"
298
298
  prefix = "Mod+Shift"
299
299
  # A one-letter value inherits prefix. A full value overrides it for one action.
300
300
  # Physical-key example: newWindow = "Ctrl+Alt+KeyN"
301
- logMenu = "L"
302
- logToggle = "S"
303
- logShow = "P"
301
+ logToggle = "s"
302
+ logShow = "l"
304
303
  copy = "C"
305
304
  paste = "V"
306
305
  menu = "M"
@@ -320,7 +319,7 @@ on Windows/Linux and `Cmd` on macOS. Modifier spelling is case-insensitive.
320
319
  Action keys such as `Escape` cannot be part of `prefix`.
321
320
 
322
321
  Every action accepts one action key, which inherits `prefix`, or a complete
323
- shortcut such as `Ctrl+Shift+KeyN`. The following names are supported:
322
+ shortcut such as `Ctrl+Shift+keyN`. The following names are supported:
324
323
 
325
324
  | Type | Names | Matching |
326
325
  | --- | --- | --- |
@@ -346,10 +345,10 @@ function keys may not be delivered. Do not assign one full shortcut to multiple
346
345
  fpasoterm actions.
347
346
 
348
347
  `Ctrl+X` is a valid complete shortcut, for example `closeAll = "Ctrl+X"`.
349
- `Ctrl+X` followed by another key such as `N` is an ordered key chord, not one
348
+ `Ctrl+X` followed by another key such as `n` is an ordered key chord, not one
350
349
  shortcut; key chords are not supported by the current configuration format.
351
350
 
352
- On Windows, do not use `Ctrl+N` or `Ctrl+Shift+N` to test fpasoterm: WebView or
351
+ On Windows, do not use `Ctrl+N` or `Ctrl+Shift+n` to test fpasoterm: WebView or
353
352
  the IME can consume them before the renderer receives them. Use an explicit
354
353
  non-reserved test binding instead:
355
354
 
@@ -418,13 +417,13 @@ rescaleOverlappingGlyphs = false
418
417
  fpasoterm observes IME composition events only to show marked text. xterm.js and the WebView retain native input delivery: fpasoterm does not suppress, replay, replace, or directly commit IME text. On ChromeOS/Linux, at the start of a new composition, it clears xterm's hidden helper textarea when it contains stale committed text and before the new marked text is inserted. This prevents later conversions from inheriting accumulated committed text and does not change terminal text or the PTY payload. Windows/Linux use a visual-only `IME` marked-text fallback when the WebView does not paint xterm's helper textarea. macOS uses its native WebKit marked-text rendering and does not add this fallback, avoiding a stale IME overlay after commit.
419
418
  - `plugins.enabled`: plugin paths relative to `~/.config/fpasoterm/User/`.
420
419
  - `sync`: optional sync-folder integration for diagnostics and explicitly requested broadcast commands. `provider = "folder"` uses an already-synced local folder such as Google Drive for desktop. `commands` permits short-lived shared commands and `commandTtlSeconds` limits their lifetime. See [Sync Folder](sync.en.md).
421
- - `logging`: terminal output logging. The hamburger menu contains `Log Start (^S)` / `Log Stop (^S)` and `Log Show (^P)`. `Ctrl+Shift+L` opens that menu at the log actions; `Ctrl+Shift+S` toggles logging directly, and `Ctrl+Shift+P` opens a selector for captured logs. Logging writes readable terminal output with control sequences removed to a local file. Saved automatic log names include the titlebar title and timestamp, for example `terminal-work-<timestamp>.log`. The log panel can delete the selected stopped log, or `Delete All` can empty the active log and delete all stopped `terminal-*.log` files after in-panel confirmation. `directory` defaults to `~/.config/fpasoterm/User/logs` when empty, and can point to a synced folder when needed. Paths can use `~`, `%USERPROFILE%`, `$HOME`, and similar environment variables. `~` is the most portable form when sharing config across operating systems.
420
+ - `logging`: terminal output logging. The hamburger menu contains `Log Start (^s)` / `Log Stop (^s)` and `Log Show (^l)`. `Ctrl+Shift+s` toggles logging directly, and `Ctrl+Shift+l` opens a selector for captured logs. `Ctrl+Shift+p` is unassigned so it can be used by a future command palette. Logging writes readable terminal output with control sequences removed to a local file. Saved automatic log names include the titlebar title and timestamp, for example `terminal-work-<timestamp>.log`. The log panel can delete the selected stopped log, or `Delete All` can empty the active log and delete all stopped `terminal-*.log` files after in-panel confirmation. `directory` defaults to `~/.config/fpasoterm/User/logs` when empty, and can point to a synced folder when needed. Paths can use `~`, `%USERPROFILE%`, `$HOME`, and similar environment variables. `~` is the most portable form when sharing config across operating systems.
422
421
 
423
422
  When `window.rememberBounds` is enabled, the last window size is saved to `~/.config/fpasoterm/User/window-state.json` and restored on the next launch.
424
423
 
425
424
  Window appearance and size are resolved in this order: default settings, explicit values in `config.toml`, saved `window-state.json` for size, then one-shot CLI overrides such as `--title`, `--titlebar-color`, and `--size`. If you want config size changes to take effect over the saved state, run `fpasoterm --reset-window-state`.
426
425
 
427
- On Windows, the terminal process receives the fpasoterm executable directory at the front of `Path`. On macOS, fpasoterm regenerates the conventional `~/.local/bin/fpasoterm` command for the currently running app bundle and places `~/.local/bin` first in `PATH`; it forwards every argument unchanged. The previous `~/.config/fpasoterm/bin/fpasoterm` shim is also refreshed for compatibility. This allows `fpasoterm --help`, `--list`, `--close`, and other direct-binary commands to run inside the opened terminal and preserves the command path used by earlier releases. A nested macOS GUI launch detaches by default so the current prompt is released; use `--foreground` when waiting for the new window is intentional. Options documented as Node-launcher-only, unknown options such as `--hoge` or `-?`, and options with missing values are rejected with one concise error instead of opening an unrelated GUI window. Use `--help` when the complete option list is needed. `--version` and the in-app `Help (^H)` panel display the package version plus the build commit, so same-version contributor and PR builds can be distinguished.
426
+ On Windows, the terminal process receives the fpasoterm executable directory at the front of `Path`. On macOS, fpasoterm regenerates the conventional `~/.local/bin/fpasoterm` command for the currently running app bundle and places `~/.local/bin` first in `PATH`; it forwards every argument unchanged. The previous `~/.config/fpasoterm/bin/fpasoterm` shim is also refreshed for compatibility. This allows `fpasoterm --help`, `--list`, `--close`, and other direct-binary commands to run inside the opened terminal and preserves the command path used by earlier releases. A nested macOS GUI launch detaches by default so the current prompt is released; use `--foreground` when waiting for the new window is intentional. Options documented as Node-launcher-only, unknown options such as `--hoge` or `-?`, and options with missing values are rejected with one concise error instead of opening an unrelated GUI window. Use `--help` when the complete option list is needed. `--version` and the in-app `Help (^h)` panel display the package version plus the build commit, so same-version contributor and PR builds can be distinguished.
428
427
 
429
428
  macOS normally keeps an application active after its last window is closed. CLI close requests (`--close` / `-q`) and the in-app Close All action explicitly exit each matching fpasoterm process, so `fpasoterm -q all` also removes fpasoterm from the macOS menu bar.
430
429
 
@@ -438,14 +437,15 @@ Do not run `kitten icat`, `chafa --format kitty`, or `chafa --format sixels` in
438
437
 
439
438
  ## Broadcast Input
440
439
 
441
- Open the hamburger menu and choose `Broadcast (^B)`, or press `Ctrl+Shift+B`. Select one or more local windows by title and PID, enter one or more commands, then press `Shift+Enter` or choose `Send`. Use `Enter` for a line break in a multi-line command. fpasoterm removes trailing line breaks, normalizes line endings, and delivers the text only to the selected local fpasoterm windows. Every command uses the target terminal's actual Enter key event after its text, so a target TUI can encode the active keyboard protocol correctly. In a conventional shell it produces the usual CR byte. A control-byte-only input, such as the `Ctrl+C` notation inserted by the picker, is delivered without an added Enter key.
440
+ Open the hamburger menu and choose `Broadcast (^b)`, or press `Ctrl+Shift+b`. Select one or more local windows by title and PID, enter one or more commands, then press `Shift+Enter` or choose `Send`. Use `Enter` for a line break in a multi-line command. fpasoterm removes trailing line breaks, normalizes line endings, and delivers the text only to the selected local fpasoterm windows. Every command uses the target terminal's actual Enter key event after its text, so a target TUI can encode the active keyboard protocol correctly. In a conventional shell it produces the usual CR byte. A control-byte-only input, such as the `Ctrl+C` notation inserted by the picker, is delivered without an added Enter key.
442
441
 
443
442
  When every local window is selected and sync is enabled, the dialog exposes `Include synced channel`. This publishes the same short-lived command to every already-running fpasoterm instance using the same sync path and channel. Sync delivery is disabled for a local subset because remote window identities are not shared. Command files expire after `sync.commandTtlSeconds` (60 seconds by default) and an instance ignores commands created before it started.
444
443
 
445
444
  This feature deliberately has no remote server, OAuth token, or automatic command execution for later launches. A shared sync folder becomes a command channel when this option is used. Use it only with a folder and channel trusted by every participating machine.
446
445
 
447
446
  Broadcast keeps keyboard focus inside its dialog while it is open: `Tab` and `Shift+Tab` cycle through its controls instead of reaching the terminal. The focused control scrolls into view, has a yellow outline, and is named by the `Keyboard focus:` status line. `Shift+Enter` sends even if focus was unexpectedly reclaimed by the terminal. Every send uses the target terminal's actual Enter key event after the text; this is distinct from the dialog shortcut and preserves enhanced keyboard protocols. IME composition keys remain with the browser instead of being treated as dialog navigation. Its **Control byte** picker inserts visible
448
- notation at the textarea cursor: `\x0D` for an explicit `Enter / CR`, `\x09` for `Tab`, `\x03` for `Ctrl+C`,
447
+ notation at the textarea cursor: `\x0D` for an explicit `Enter / CR`, `\x09` for `Tab`, `\x01` for `Ctrl+A`
448
+ (the usual GNU Screen prefix), `\x02` for `Ctrl+B` (the usual tmux/byobu/herdr prefix), `\x03` for `Ctrl+C`,
449
449
  `\x04` for `Ctrl+D`, `\x18` for `Ctrl+X`, and `\x1A` for `Ctrl+Z`.
450
450
  fpasoterm converts only these picker-inserted notations to terminal bytes when
451
451
  you send them. A trailing explicit `\x0D` does not receive a second semantic
@@ -455,6 +455,16 @@ not bytes. For the conventional `Alt+x` terminal sequence, insert **Alt prefix
455
455
  / Esc**, then type `x`. The picker avoids relying on Escape and Tab key events,
456
456
  which the dialog reserves for close and focus movement.
457
457
 
458
+ The picker also provides **Arrow Up**, **Arrow Down**, **Arrow Left**, and
459
+ **Arrow Right**. They appear as a trailing `\key[Arrow...]` marker and are
460
+ encoded by each target window's active xterm keyboard mode when sent. For a
461
+ multiplexer prefix sequence, insert `Ctrl+A` or `Ctrl+B` first, then insert an
462
+ arrow key as the final marker.
463
+
464
+ For example, `clear\x0D\x01jclear` sends `clear`, explicitly executes it,
465
+ then sends `Ctrl+A`, `j`, and `clear`. Select only the intended local windows:
466
+ every selected window receives the complete sequence.
467
+
458
468
  Before Broadcast sends a command matching a high-risk pattern, it asks for a
459
469
  second confirmation. Current patterns include `rm`, `find -delete`, `git reset
460
470
  --hard`, forced `git clean`, filesystem formatting, `dd of=`, `truncate`,
package/docs/config.ja.md CHANGED
@@ -290,9 +290,8 @@ brightWhite = "#ffffff"
290
290
  prefix = "Mod+Shift"
291
291
  # 一文字の value は prefix を継承します。full shortcut はその操作だけ上書きします。
292
292
  # physical key の例: newWindow = "Ctrl+Alt+KeyN"
293
- logMenu = "L"
294
- logToggle = "S"
295
- logShow = "P"
293
+ logToggle = "s"
294
+ logShow = "l"
296
295
  copy = "C"
297
296
  paste = "V"
298
297
  menu = "M"
@@ -311,7 +310,7 @@ closeAll = "X"
311
310
  Windows/Linux の `Ctrl`、macOS の `Cmd` を表します。modifier の大文字小文字は区別しません。
312
311
  `Escape` など action key を `prefix` の一部にはできません。
313
312
 
314
- 各 action には、`prefix` を継承する action key 一つ、または `Ctrl+Shift+KeyN` のような full
313
+ 各 action には、`prefix` を継承する action key 一つ、または `Ctrl+Shift+keyN` のような full
315
314
  shortcut 一つを指定できます。以下の名前を使用できます。
316
315
 
317
316
  | 種類 | 名前 | 照合 |
@@ -338,7 +337,7 @@ shortcut は fpasoterm に届かないことがあります。同じ full shortc
338
337
  `Ctrl+X` を押してから `N` を押す形式は、一つのshortcutではなく順序付きkey chordです。現行の
339
338
  config formatではkey chordには対応していません。
340
339
 
341
- Windows では `Ctrl+N` や `Ctrl+Shift+N` を fpasoterm の確認に使わないでください。WebView または
340
+ Windows では `Ctrl+N` や `Ctrl+Shift+n` を fpasoterm の確認に使わないでください。WebView または
342
341
  IME が renderer より先に捕捉する場合があります。代わりに、OS予約と競合しにくい明示的なbindingを
343
342
  指定します。
344
343
 
@@ -415,13 +414,13 @@ rescaleOverlappingGlyphs = false
415
414
  fpasoterm は IME composition event を仮入力表示のためだけに監視します。xterm.js と WebView のnativeな入力配送をそのまま使い、fpasoterm が IME text を抑止・再送・置換・直接確定することはありません。ChromeOS/Linuxでは、新しいcompositionの開始時にまだ新しい仮入力textが入っていないため、hidden helper textareaに過去の確定textが残っている場合だけclearします。後続変換が過去の確定textを継承することを防ぎ、terminal textとPTY payloadは変更しません。Windows/LinuxではWebViewがxtermのhelper textareaを描画しない場合にだけ、表示専用の`IME` fallbackを使います。macOSはWebKit nativeのmarked text描画を使い、このfallbackを追加しないため、確定後にIME overlayが残りません。
416
415
  - `plugins.enabled`: `~/.config/fpasoterm/User/` からの相対 plugin path。
417
416
  - `sync`: diagnostics と明示的に送信した broadcast command を同期フォルダで共有する設定。`provider = "folder"` は Google Drive for desktop などで同期済みのローカルフォルダを使います。`commands` は短寿命の共有 command を許可し、`commandTtlSeconds` は実行可能な時間を制限します。詳細は [Sync Folder](sync.ja.md) を参照してください。
418
- - `logging`: terminal output logging 設定。hamburger menu に `Log Start (^S)` / `Log Stop (^S)` と `Log Show (^P)` を表示します。`Ctrl+Shift+L` はlog操作にfocusした状態でmenuを開き、`Ctrl+Shift+S` は記録を直接切り替え、`Ctrl+Shift+P` はcaptured `terminal-*.log` の一覧から表示対象を選択する画面を開きます。制御シーケンスを除去した readable terminal output を local file に記録します。自動生成されるlog名には titlebar の title と timestamp が入り、例は `terminal-work-<timestamp>.log` です。log panel では選択した停止済み log の削除ができ、`Delete All` は log panel 内の確認で承認された場合だけ active log を空にして、設定済み log directory の停止済み `terminal-*.log` を全て削除します。`directory` が空の場合は `~/.config/fpasoterm/User/logs` が使われ、必要に応じて同期フォルダを指定できます。path には `~`、`%USERPROFILE%`、`$HOME` などを使えます。OS 間で共有する設定では `~` が最も扱いやすい指定です。
417
+ - `logging`: terminal output logging 設定。hamburger menu に `Log Start (^s)` / `Log Stop (^s)` と `Log Show (^l)` を表示します。`Ctrl+Shift+s` は記録を直接切り替え、`Ctrl+Shift+l` はcaptured `terminal-*.log` の一覧から表示対象を選択する画面を開きます。`Ctrl+Shift+p` は将来のcommand palette用に未割り当てです。制御シーケンスを除去した readable terminal output を local file に記録します。自動生成されるlog名には titlebar の title と timestamp が入り、例は `terminal-work-<timestamp>.log` です。log panel では選択した停止済み log の削除ができ、`Delete All` は log panel 内の確認で承認された場合だけ active log を空にして、設定済み log directory の停止済み `terminal-*.log` を全て削除します。`directory` が空の場合は `~/.config/fpasoterm/User/logs` が使われ、必要に応じて同期フォルダを指定できます。path には `~`、`%USERPROFILE%`、`$HOME` などを使えます。OS 間で共有する設定では `~` が最も扱いやすい指定です。
419
418
 
420
419
  `window.rememberBounds` が有効な場合、最後の window size は `~/.config/fpasoterm/User/window-state.json` に保存され、次回起動時に復元されます。
421
420
 
422
421
  window 表示と size は、デフォルト設定、`config.toml` に明示した値、size については保存済み `window-state.json`、最後に `--title`、`--titlebar-color`、`--size` などの一時 CLI 指定、の順に解決されます。size 設定変更を保存済み状態より優先したい場合は、`fpasoterm --reset-window-state` を実行してください。
423
422
 
424
- Windowsでは、起動したterminal processの`Path`先頭にfpasoterm executable directoryを追加します。macOSでは、以前のreleaseでも使用していた標準的な`~/.local/bin/fpasoterm`を現在起動中のapp bundle向けに毎回生成し、`~/.local/bin`を`PATH`先頭に置いて全引数を変更せず転送します。互換性のため`~/.config/fpasoterm/bin/fpasoterm`も更新します。これにより従来のcommand pathを維持したまま、fpasoterm内で`fpasoterm --help`、`--list`、`--close`など直接binaryのcommandを実行できます。macOSで新しいGUIを起動する場合は既定でprocessを切り離して現在のpromptを解放します。終了まで待つ場合は`--foreground`を使います。Node launcher専用option、`--hoge`や`-?`などの未知option、値不足のoptionを配布binaryへ指定した場合は、無関係なGUIを開かず一行のerrorだけを表示します。全option一覧が必要な場合だけ`--help`を実行してください。`--version` と app内の `Help (^H)` panelにはpackage versionとbuild commitを表示するため、同じversionのcontributor buildやPR buildも識別できます。
423
+ Windowsでは、起動したterminal processの`Path`先頭にfpasoterm executable directoryを追加します。macOSでは、以前のreleaseでも使用していた標準的な`~/.local/bin/fpasoterm`を現在起動中のapp bundle向けに毎回生成し、`~/.local/bin`を`PATH`先頭に置いて全引数を変更せず転送します。互換性のため`~/.config/fpasoterm/bin/fpasoterm`も更新します。これにより従来のcommand pathを維持したまま、fpasoterm内で`fpasoterm --help`、`--list`、`--close`など直接binaryのcommandを実行できます。macOSで新しいGUIを起動する場合は既定でprocessを切り離して現在のpromptを解放します。終了まで待つ場合は`--foreground`を使います。Node launcher専用option、`--hoge`や`-?`などの未知option、値不足のoptionを配布binaryへ指定した場合は、無関係なGUIを開かず一行のerrorだけを表示します。全option一覧が必要な場合だけ`--help`を実行してください。`--version` と app内の `Help (^h)` panelにはpackage versionとbuild commitを表示するため、同じversionのcontributor buildやPR buildも識別できます。
425
424
 
426
425
  macOSは最後のwindowを閉じてもapplicationをactiveのまま維持するのが通常動作です。CLIの`--close` / `-q`とapp内のClose Allでは一致する各fpasoterm processを明示終了するため、`fpasoterm -q all`後はmacOSのメニューバーにもfpasotermを残しません。
427
426
 
@@ -435,19 +434,23 @@ graphicsの検証目的でも、fpasoterm内で`kitten icat`、`chafa --format k
435
434
 
436
435
  ## Broadcast Input
437
436
 
438
- hamburger menu の `Broadcast (^B)`、または `Ctrl+Shift+B` を押します。title と PID ごとに一つ以上の local window を選択し、command を入力して `Shift+Enter` または `Send` を実行します。複数行 command の改行は通常の `Enter` で入力します。fpasotermは末尾の改行を除去して改行コードを正規化し、選択したlocal fpasoterm windowだけへtextを配信します。command送信時は常に本文の後にtarget terminalの実際のEnter key eventを送り、target TUIが有効なkeyboard protocolに従ってencodeできます。通常のshellでは従来と同じCR byteになります。pickerが挿入する`Ctrl+C`などcontrol byteだけの入力は、追加のEnterを送らずに配信します。
437
+ hamburger menu の `Broadcast (^b)`、または `Ctrl+Shift+b` を押します。title と PID ごとに一つ以上の local window を選択し、command を入力して `Shift+Enter` または `Send` を実行します。複数行 command の改行は通常の `Enter` で入力します。fpasotermは末尾の改行を除去して改行コードを正規化し、選択したlocal fpasoterm windowだけへtextを配信します。command送信時は常に本文の後にtarget terminalの実際のEnter key eventを送り、target TUIが有効なkeyboard protocolに従ってencodeできます。通常のshellでは従来と同じCR byteになります。pickerが挿入する`Ctrl+C`などcontrol byteだけの入力は、追加のEnterを送らずに配信します。
439
438
 
440
439
  全 local window を選択し、sync が有効な場合、dialog に `Include synced channel` が表示されます。これを選ぶと、同じ sync path と channel を使う、すでに起動している全ての fpasoterm instance にも同じ短寿命 command を送ります。remote window の identity は共有していないため、local の一部だけを選択している場合は sync delivery を無効にします。command file は `sync.commandTtlSeconds`(既定 60 秒)で期限切れとなり、instance は自分の起動前に作成された command を実行しません。
441
440
 
442
441
  この機能は remote server、OAuth token、後から起動した instance での command 自動実行を使用しません。この機能を使う場合、shared sync folder は command channel になります。参加する全 machine で信頼できる folder と channel だけを使用してください。
443
442
 
444
443
  Broadcast dialogを開いている間は、`Tab` と `Shift+Tab` がterminalへ移動せず、dialog内のcontrolを循環します。focusしたcontrolはscrollして表示され、黄色の枠と`Keyboard focus:`行で現在位置を確認できます。terminalが意図せずfocusを取り戻した場合も`Shift+Enter`は送信として処理します。送信時は常に本文の後にtarget terminalの実際のEnter key eventを送り、dialog shortcutとは別にenhanced keyboard protocolを維持します。IME変換中のkeyはdialog操作として扱わずbrowserへ渡します。dialogの **Control byte** pickerでは、textareaのcursor位置へ表示可能な
445
- 表記を挿入します。明示的な`Enter / CR`は`\x0D`、`Tab`は`\x09`、`Ctrl+C`は`\x03`、`Ctrl+D`は`\x04`、`Ctrl+X`は`\x18`、`Ctrl+Z`は
444
+ 表記を挿入します。明示的な`Enter / CR`は`\x0D`、`Tab`は`\x09`、GNU Screenで一般的なprefixの`Ctrl+A`は`\x01`、tmux/byobu/herdrで一般的なprefixの`Ctrl+B`は`\x02`、`Ctrl+C`は`\x03`、`Ctrl+D`は`\x04`、`Ctrl+X`は`\x18`、`Ctrl+Z`は
446
445
  `\x1A`です。fpasotermはpickerが挿入したこれらの表記だけを、送信時にterminal byteへ変換します。末尾に明示した`\x0D`へは追加のsemantic Enterを送信しません。単独の`Esc`は
447
446
  **Alt prefix / Esc**と同じ`\x1B`になるため、選択肢から除外しています。`Ctrl`と`Alt`はbyteではなくmodifierです。
448
447
  慣例上の`Alt+x`を送る場合は **Alt prefix / Esc** を挿入してから`x`を入力します。Escapeはclose、Tabはfocus移動に
449
448
  予約されているため、pickerを使うことでkey eventへの依存を避けます。
450
449
 
450
+ pickerには **Arrow Up**、**Arrow Down**、**Arrow Left**、**Arrow Right** もあります。これらは末尾に`\key[Arrow...]`として表示され、送信時に各target windowのactiveなxterm keyboard modeでencodeされます。multiplexerのprefix sequenceでは、先に`Ctrl+A`または`Ctrl+B`を挿入し、最後にarrow keyを挿入してください。
451
+
452
+ 例: `clear\x0D\x01jclear` は `clear` を送信して明示的に実行した後、`Ctrl+A`、`j`、`clear` を送ります。意図したlocal windowだけを選択してください。選択されたすべてのwindowが同じsequenceを受け取ります。
453
+
451
454
  Broadcastで危険性の高いpatternに一致するcommandを送る前には、追加確認を表示します。現在の対象は`rm`、
452
455
  `find -delete`、`git reset --hard`、force付き`git clean`、filesystem format、`dd of=`、`truncate`、
453
456
  `shred`、shutdown commandです。確認画面には一致したpattern、選択target、sync delivery、command textを
@@ -254,7 +254,7 @@ and does not stop later enabled plugins from loading, but an invalid plugin can
254
254
  still affect the renderer while it runs.
255
255
 
256
256
  Registered commands use the existing menu's Tab and arrow-key navigation.
257
- `Ctrl+Shift+P` remains assigned to `Log Show`; a command palette can reuse the
257
+ `Ctrl+Shift+p` is reserved for a future command palette, which can reuse the
258
258
  same command registry in a future release without changing plugin source.
259
259
 
260
260
  ## Samples And Ports
@@ -167,7 +167,7 @@ versionは`--plugin-info <file>`で確認し、local plugin fileを差し替え
167
167
 
168
168
  plugin は小さく防御的に実装してください。読み込み error は diagnostics に記録され、後続の有効 plugin の読み込みは継続します。ただし、実行中の不正な plugin は renderer に影響する可能性があります。
169
169
 
170
- 登録した command は既存 menu の Tab / 矢印キー操作で選択できます。`Ctrl+Shift+P` `Log Show` に割り当て済みのため維持します。将来 command palette を追加する場合も、同じ command registry を plugin source の変更なしに利用できます。
170
+ 登録した command は既存 menu の Tab / 矢印キー操作で選択できます。`Ctrl+Shift+p` は将来のcommand palette用に予約します。command paletteを追加する場合も、同じ command registry を plugin source の変更なしに利用できます。
171
171
 
172
172
  ## Sample と Ports
173
173
 
package/docs/spec.en.md CHANGED
@@ -17,7 +17,7 @@ fpasoterm is a desktop terminal application focused on Japanese input in ChromeO
17
17
 
18
18
  fpasoterm does not intercept Japanese keyboard keys such as `かな` or `英数`. Input method switching and composition are delegated to the platform webview and the operating system.
19
19
 
20
- For terminal copy, selecting terminal text and pressing `Ctrl+Shift+C` writes that selection to the OS clipboard through the WebView clipboard event/API and the backend clipboard path. The hamburger window menu contains `Log Start (^S)` / `Log Stop (^S)`, `Log Show (^P)`, `Broadcast (^B)`, `Kill (^K)`, `Copy (^C)`, and `Paste (^V)`. On Unix, `Kill (^K)` or `Ctrl+Shift+K` sends `SIGKILL` to the foreground PTY process group. On Windows, it force-terminates descendants of the terminal shell, from the deepest child upward. Both paths preserve the interactive shell and its window, and report that no command is running at a shell prompt; use the close button to exit the shell. Kill is separate from normal `Ctrl+C` terminal input. `Ctrl+Shift+B` broadcasts normalized text plus Enter only to selected local PTYs and can explicitly include the configured trusted sync channel when all local windows are selected. Kitty APC graphics are experimental and disabled by default. `Ctrl+Shift+L` opens that menu with the log action focused, while `Ctrl+Shift+S` and `Ctrl+Shift+P` invoke logging and log display directly. Right-click copies when a terminal selection exists; otherwise it pastes. Terminal paste first reads the WebView clipboard API during the user gesture, then falls back to the backend clipboard when the WebView result is empty or unavailable, and sends the text to the PTY. Tools such as herdr, tmux, and screen can copy through OSC 52 when configured to emit clipboard sequences; fpasoterm writes those OSC 52 payloads to the OS clipboard. `Ctrl+Shift+M` opens the window menu, and its `Help (^H)` item or `Ctrl+Shift+H` displays the complete application shortcut list.
20
+ For terminal copy, selecting terminal text and pressing `Ctrl+Shift+c` writes that selection to the OS clipboard through the WebView clipboard event/API and the backend clipboard path. The hamburger window menu contains `Log Start (^s)` / `Log Stop (^s)`, `Log Show (^l)`, `Broadcast (^b)`, `Kill (^k)`, `Copy (^c)`, and `Paste (^v)`. On Unix, `Kill (^k)` or `Ctrl+Shift+k` sends `SIGKILL` to the foreground PTY process group. On Windows, it force-terminates descendants of the terminal shell, from the deepest child upward. Both paths preserve the interactive shell and its window, and report that no command is running at a shell prompt; use the close button to exit the shell. Kill is separate from normal `Ctrl+C` terminal input. `Ctrl+Shift+b` broadcasts normalized text plus Enter only to selected local PTYs and can explicitly include the configured trusted sync channel when all local windows are selected. Kitty APC graphics are experimental and disabled by default. `Ctrl+Shift+s` toggles logging and `Ctrl+Shift+l` shows captured logs. `Ctrl+Shift+p` is unassigned for a future command palette. Right-click copies when a terminal selection exists; otherwise it pastes. Terminal paste first reads the WebView clipboard API during the user gesture, then falls back to the backend clipboard when the WebView result is empty or unavailable, and sends the text to the PTY. Tools such as herdr, tmux, and screen can copy through OSC 52 when configured to emit clipboard sequences; fpasoterm writes those OSC 52 payloads to the OS clipboard. `Ctrl+Shift+m` opens the window menu, and its `Help (^h)` item or `Ctrl+Shift+h` displays the complete application shortcut list.
21
21
 
22
22
  The terminal log panel keeps keyboard focus inside the panel while it is open. `Tab` and `Shift+Tab` cycle through the log selector, search field, action buttons, close button, and log text area. The focused control is shown with a high-contrast outline. The `Search` button selects and scrolls to the next matching string in the displayed log and shows the current match count. `N` and `j` move to the next match, while `P` and `k` move to the previous match. Arrow keys remain reserved for normal text area scrolling.
23
23
 
@@ -40,7 +40,7 @@ For an unpacked checkout, `npm run install:desktop` installs a local `fpasoterm`
40
40
  The project icon is `extra/logo/fpasoterm.png`.
41
41
 
42
42
  When multiple instances are running, the titlebar window menu exposes
43
- `Tile (^T)`, and `Ctrl+Shift+T` invokes the same grid arrangement. Windows and
43
+ `Tile (^t)`, and `Ctrl+Shift+t` invokes the same grid arrangement. Windows and
44
44
  X11 support native placement. Wayland compositors may reject application-
45
45
  controlled positions; the diagnostic log records the requested and actual
46
46
  positions in that case.
@@ -93,7 +93,7 @@ Diagnostics are written to:
93
93
  ~/.config/fpasoterm/User/logs/fpasoterm-debug.log
94
94
  ```
95
95
 
96
- The diagnostics and log panel textareas use the same `Ctrl+Shift+C` copy path as the terminal selection.
96
+ The diagnostics and log panel textareas use the same `Ctrl+Shift+c` copy path as the terminal selection.
97
97
 
98
98
  ## Non-goals
99
99
 
package/docs/spec.ja.md CHANGED
@@ -17,7 +17,7 @@ fpasoterm は、ChromeOS Linux での日本語入力を重視したデスクト
17
17
 
18
18
  fpasoterm は `かな` / `英数` などの日本語キーボードキーを横取りしません。IME の切替と composition は platform webview と OS に任せます。
19
19
 
20
- terminal copy は、terminal text を選択して `Ctrl+Shift+C` を押すと、その選択範囲を WebView clipboard event/API と backend clipboard 経路の両方で OS clipboard へ書き込みます。hamburger の window menu には `Log Start (^S)` / `Log Stop (^S)`、`Log Show (^P)`、`Broadcast (^B)`、`Kill (^K)`、`Copy (^C)`、`Paste (^V)` を表示します。Unixでは、`Kill (^K)` または `Ctrl+Shift+K` が前景 PTY process group に `SIGKILL` を送ります。Windowsではterminal shellの子孫processを深い順に強制終了します。いずれも実行中commandを終了し、interactive shell とその window は残します。shell promptで実行対象がない場合は、shellを終了しないためerrorを表示します。その場合の終了はclose buttonを使用します。通常の terminal input である `Ctrl+C` とは別の強制終了操作です。`Ctrl+Shift+B` は改行を正規化して Enter を追加した text を選択した local PTY だけに送信し、全local windowを選択した場合だけtrustedなsync channelも明示選択できます。Kitty APC graphics は上限付きの image storage で描画します。`Ctrl+Shift+L` は log 操作に focus した状態でこの menu を開き、`Ctrl+Shift+S` `Ctrl+Shift+P` logging と log 表示を直接実行します。右クリックは terminal selection がある場合は copy、selection がない場合は paste として動作します。terminal paste は、user gesture中のWebView clipboard APIを先に読み、空または利用不可の場合だけbackend clipboardを使ってPTYへ送ります。herdr、tmux、screen などが OSC 52 clipboard sequence を出す設定の場合、fpasoterm はその payload を OS clipboard に書き込みます。`Ctrl+Shift+M` で window menu を開き、menu 内の `Help (^H)` または `Ctrl+Shift+H` でアプリの全 shortcut 一覧を表示します。
20
+ terminal copy は、terminal text を選択して `Ctrl+Shift+c` を押すと、その選択範囲を WebView clipboard event/API と backend clipboard 経路の両方で OS clipboard へ書き込みます。hamburger の window menu には `Log Start (^s)` / `Log Stop (^s)`、`Log Show (^l)`、`Broadcast (^b)`、`Kill (^k)`、`Copy (^c)`、`Paste (^v)` を表示します。Unixでは、`Kill (^k)` または `Ctrl+Shift+k` が前景 PTY process group に `SIGKILL` を送ります。Windowsではterminal shellの子孫processを深い順に強制終了します。いずれも実行中commandを終了し、interactive shell とその window は残します。shell promptで実行対象がない場合は、shellを終了しないためerrorを表示します。その場合の終了はclose buttonを使用します。通常の terminal input である `Ctrl+C` とは別の強制終了操作です。`Ctrl+Shift+b` は改行を正規化して Enter を追加した text を選択した local PTY だけに送信し、全local windowを選択した場合だけtrustedなsync channelも明示選択できます。Kitty APC graphics は上限付きの image storage で描画します。`Ctrl+Shift+s` は logging を切り替え、`Ctrl+Shift+l` captured log を表示します。`Ctrl+Shift+p` は将来のcommand palette用に未割り当てです。右クリックは terminal selection がある場合は copy、selection がない場合は paste として動作します。terminal paste は、user gesture中のWebView clipboard APIを先に読み、空または利用不可の場合だけbackend clipboardを使ってPTYへ送ります。herdr、tmux、screen などが OSC 52 clipboard sequence を出す設定の場合、fpasoterm はその payload を OS clipboard に書き込みます。`Ctrl+Shift+m` で window menu を開き、menu 内の `Help (^h)` または `Ctrl+Shift+h` でアプリの全 shortcut 一覧を表示します。
21
21
 
22
22
  terminal log panel が開いている間、keyboard focus は panel 内に留まります。`Tab` と `Shift+Tab` で log selector、検索欄、操作 button、close button、log text area を循環できます。focus された control は高 contrast の outline で表示します。`Search` button は表示中の log から次の一致文字列を選択してその位置へ scroll し、現在の一致番号を表示します。`N` と `j` は次の一致、`P` と `k` は前の一致へ移動します。矢印キーは通常の text area scroll 用に残します。
23
23
 
@@ -40,7 +40,7 @@ npm install -g fpasoterm
40
40
  プロジェクトアイコンは `extra/logo/fpasoterm.png` です。
41
41
 
42
42
  複数の fpasoterm を起動している場合、titlebar の window menu にある
43
- `Tile (^T)`、または `Ctrl+Shift+T` で格子状に配置できます。Windows と
43
+ `Tile (^t)`、または `Ctrl+Shift+t` で格子状に配置できます。Windows と
44
44
  X11 では native placement を使用します。Wayland compositor が位置変更を
45
45
  拒否した場合は、diagnostics に要求位置と実際の位置を記録します。
46
46
 
@@ -86,7 +86,7 @@ renderer plugin は `window.fpasotermPluginApi` から terminal、fit addon、
86
86
  ~/.config/fpasoterm/User/logs/fpasoterm-debug.log
87
87
  ```
88
88
 
89
- diagnostics / log panel の textarea も terminal selection と同じ `Ctrl+Shift+C` copy 経路を使います。
89
+ diagnostics / log panel の textarea も terminal selection と同じ `Ctrl+Shift+c` copy 経路を使います。
90
90
 
91
91
  ## 非目標
92
92
 
package/docs/sync.en.md CHANGED
@@ -213,7 +213,7 @@ In short, `sync.enabled = false` is the setting for a local-only session with no
213
213
 
214
214
  ## Broadcast Input
215
215
 
216
- `Ctrl+Shift+B` opens the Broadcast dialog. Select the target local windows by title and PID, then use `Send` to deliver the entered command only to those windows. With every local window selected, `Include synced channel` additionally writes a temporary request under `<sync path>/<channel>/commands`. Every already-running fpasoterm using that same folder and channel receives it once and writes it to its own PTY. Partial local selection never sends to the sync channel.
216
+ `Ctrl+Shift+b` opens the Broadcast dialog. Select the target local windows by title and PID, then use `Send` to deliver the entered command only to those windows. With every local window selected, `Include synced channel` additionally writes a temporary request under `<sync path>/<channel>/commands`. Every already-running fpasoterm using that same folder and channel receives it once and writes it to its own PTY. Partial local selection never sends to the sync channel.
217
217
 
218
218
  The same operation is available without opening a window:
219
219
 
@@ -234,9 +234,9 @@ This is intentionally a trusted-folder feature. Command JSON requires an HMAC-SH
234
234
 
235
235
  ## Terminal Output Logs
236
236
 
237
- Sync folder diagnostics are separate from terminal output logging. The hamburger menu contains `Log Start (^S)` / `Log Stop (^S)` and `Log Show (^P)`. `Ctrl+Shift+L` opens that menu at the log actions; `Ctrl+Shift+S` records terminal output to a local log file or closes that file, and `Ctrl+Shift+P` opens a selector for captured logs. The log panel can delete the selected stopped log, or `Delete All` can empty the active log and delete all stopped `terminal-*.log` files after an in-panel confirmation. Saved log files are normalized for readability by removing common ANSI/control sequences, OSC sequences, and CR/control characters or replacing them with line breaks. By default logs are written under `~/.config/fpasoterm/User/logs`.
237
+ Sync folder diagnostics are separate from terminal output logging. The hamburger menu contains `Log Start (^s)` / `Log Stop (^s)` and `Log Show (^l)`. `Ctrl+Shift+s` records terminal output to a local log file or closes that file, and `Ctrl+Shift+l` opens a selector for captured logs. `Ctrl+Shift+p` is unassigned for a future command palette. The log panel can delete the selected stopped log, or `Delete All` can empty the active log and delete all stopped `terminal-*.log` files after an in-panel confirmation. Saved log files are normalized for readability by removing common ANSI/control sequences, OSC sequences, and CR/control characters or replacing them with line breaks. By default logs are written under `~/.config/fpasoterm/User/logs`.
238
238
 
239
- In `Log Show`, use the search field and `Search` button to select and scroll to the next matching text in the displayed log. Repeating `Search` or pressing `N` advances through every match and wraps back to the first match; pressing `P` moves to the previous match. When the log text area has focus, `j` moves to the next match and `k` moves to the previous match. Arrow keys remain available for normal text area scrolling. The counter shows the current match number. Select displayed log text and press `Ctrl+Shift+C` to copy that selection through the same clipboard path used by terminal selection copy.
239
+ In `Log Show`, use the search field and `Search` button to select and scroll to the next matching text in the displayed log. Repeating `Search` or pressing `N` advances through every match and wraps back to the first match; pressing `P` moves to the previous match. When the log text area has focus, `j` moves to the next match and `k` moves to the previous match. Arrow keys remain available for normal text area scrolling. The counter shows the current match number. Select displayed log text and press `Ctrl+Shift+c` to copy that selection through the same clipboard path used by terminal selection copy.
240
240
 
241
241
  When running tmux, screen, byobu, or herdr, fpasoterm receives the already-rendered PTY output stream. It cannot reliably know which multiplexer pane produced each byte, so pane-specific logging should be done with the multiplexer itself, such as `tmux capture-pane` or a pane-level logging feature.
242
242
 
package/docs/sync.ja.md CHANGED
@@ -213,7 +213,7 @@ enabled = false
213
213
 
214
214
  ## Broadcast Input
215
215
 
216
- `Ctrl+Shift+B` で Broadcast dialog を開きます。title と PID で対象の local fpasoterm window を選択して `Send` を実行すると、選択した window だけへ command を送ります。全 local window を選択して `Include synced channel` を選ぶと、追加で `<sync path>/<channel>/commands` 配下へ一時 request を保存します。同じ folder と channel を使って、すでに起動している各 fpasoterm は一度だけ自身の PTY へ書き込みます。local の一部選択時は sync channel へ送信しません。
216
+ `Ctrl+Shift+b` で Broadcast dialog を開きます。title と PID で対象の local fpasoterm window を選択して `Send` を実行すると、選択した window だけへ command を送ります。全 local window を選択して `Include synced channel` を選ぶと、追加で `<sync path>/<channel>/commands` 配下へ一時 request を保存します。同じ folder と channel を使って、すでに起動している各 fpasoterm は一度だけ自身の PTY へ書き込みます。local の一部選択時は sync channel へ送信しません。
217
217
 
218
218
  window を開かずに CLI からも同じ操作を実行できます。
219
219
 
@@ -234,9 +234,9 @@ fpasoterm --broadcast "hostname" --broadcast-sync
234
234
 
235
235
  ## Terminal Output Logs
236
236
 
237
- sync folder の diagnostics と terminal output logging は別機能です。hamburger menu に `Log Start (^S)` / `Log Stop (^S)` と `Log Show (^P)` を表示します。`Ctrl+Shift+L` はlog操作にfocusした状態でmenuを開き、`Ctrl+Shift+S` で terminal output のlocal log fileへの記録を開始または停止し、`Ctrl+Shift+P` でcaptured `terminal-*.log` の一覧から表示対象を選択する画面を開きます。log panel では選択した停止済み log の削除ができ、`Delete All` は log panel 内の確認で承認された場合だけ active log を空にして、設定済み log directory の停止済み `terminal-*.log` を全て削除します。保存される log file は読みやすさのため一般的な ANSI/control sequence、OSC sequence、CR/control character を除去または改行へ正規化します。既定では `~/.config/fpasoterm/User/logs` 配下へ保存します。
237
+ sync folder の diagnostics と terminal output logging は別機能です。hamburger menu に `Log Start (^s)` / `Log Stop (^s)` と `Log Show (^l)` を表示します。`Ctrl+Shift+s` で terminal output のlocal log fileへの記録を開始または停止し、`Ctrl+Shift+l` でcaptured `terminal-*.log` の一覧から表示対象を選択する画面を開きます。`Ctrl+Shift+p` は将来のcommand palette用に未割り当てです。log panel では選択した停止済み log の削除ができ、`Delete All` は log panel 内の確認で承認された場合だけ active log を空にして、設定済み log directory の停止済み `terminal-*.log` を全て削除します。保存される log file は読みやすさのため一般的な ANSI/control sequence、OSC sequence、CR/control character を除去または改行へ正規化します。既定では `~/.config/fpasoterm/User/logs` 配下へ保存します。
238
238
 
239
- `Log Show` では、検索欄と `Search` ボタンで表示中の log text の次の一致箇所を選択し、その位置へ scroll します。`Search` の繰り返し、または `N` で全ての一致箇所を順番に進み、末尾の後は先頭に戻ります。`P` は前の一致箇所へ戻ります。log text area に focus がある場合は、`j` で次、`k` で前の一致箇所へ移動します。矢印キーは通常の text area scroll 用に残します。counter は現在の一致番号を表示します。表示された log text を選択して `Ctrl+Shift+C` を押すと、terminal selection copy と同じ clipboard 経路で選択範囲をコピーします。
239
+ `Log Show` では、検索欄と `Search` ボタンで表示中の log text の次の一致箇所を選択し、その位置へ scroll します。`Search` の繰り返し、または `N` で全ての一致箇所を順番に進み、末尾の後は先頭に戻ります。`P` は前の一致箇所へ戻ります。log text area に focus がある場合は、`j` で次、`k` で前の一致箇所へ移動します。矢印キーは通常の text area scroll 用に残します。counter は現在の一致番号を表示します。表示された log text を選択して `Ctrl+Shift+c` を押すと、terminal selection copy と同じ clipboard 経路で選択範囲をコピーします。
240
240
 
241
241
  tmux、screen、byobu、herdr を使っている場合、fpasoterm が受け取るのは multiplexer が描画した後の PTY output stream です。どの pane がどの byte を出したかを fpasoterm 側で確実に判定できないため、pane 単位の log は `tmux capture-pane` や multiplexer 側の pane logging 機能で取得してください。
242
242
 
@@ -22,15 +22,14 @@ selectionBackground = "#35506b"
22
22
 
23
23
  [keybindings]
24
24
  prefix = "Mod+Shift"
25
- logMenu = "L"
26
- logToggle = "S"
27
- logShow = "P"
28
- copy = "C"
29
- paste = "V"
30
- menu = "M"
31
- help = "H"
32
- newWindow = "N"
33
- broadcast = "B"
34
- kill = "K"
35
- tile = "T"
36
- closeAll = "X"
25
+ logToggle = "s"
26
+ logShow = "l"
27
+ copy = "c"
28
+ paste = "v"
29
+ menu = "m"
30
+ help = "h"
31
+ newWindow = "n"
32
+ broadcast = "b"
33
+ kill = "k"
34
+ tile = "t"
35
+ closeAll = "x"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fpasoterm",
3
- "version": "1.6.0",
3
+ "version": "1.6.1",
4
4
  "description": "Cross-platform terminal with Japanese IME support.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/oyoguhito/fpasoterm#readme",