fpasoterm 1.6.0
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/CHANGELOG.md +230 -0
- package/CONTRIBUTING.md +67 -0
- package/INSTALL.ja.md +204 -0
- package/INSTALL.md +229 -0
- package/LICENSE +21 -0
- package/README.ja.md +389 -0
- package/README.md +607 -0
- package/bin/fpasoterm +2882 -0
- package/completions/_fpasoterm +81 -0
- package/completions/fpasoterm.bash +55 -0
- package/completions/fpasoterm.fish +64 -0
- package/completions/fpasoterm.ps1 +47 -0
- package/docs/capability-diagnostics.en.md +77 -0
- package/docs/capability-diagnostics.ja.md +63 -0
- package/docs/completion.en.md +141 -0
- package/docs/completion.ja.md +113 -0
- package/docs/config.en.md +554 -0
- package/docs/config.ja.md +544 -0
- package/docs/debugging.en.md +72 -0
- package/docs/debugging.ja.md +66 -0
- package/docs/diagnostics.en.md +69 -0
- package/docs/diagnostics.ja.md +64 -0
- package/docs/font-diagnostics.en.md +116 -0
- package/docs/font-diagnostics.ja.md +105 -0
- package/docs/fpasoterm-plugin.d.ts +51 -0
- package/docs/known-issues.en.md +23 -0
- package/docs/known-issues.ja.md +23 -0
- package/docs/plugins.en.md +266 -0
- package/docs/plugins.ja.md +176 -0
- package/docs/pr-review.en.md +177 -0
- package/docs/pr-review.ja.md +170 -0
- package/docs/release-checklist.en.md +72 -0
- package/docs/release-checklist.ja.md +71 -0
- package/docs/security.en.md +36 -0
- package/docs/security.ja.md +31 -0
- package/docs/spec.en.md +106 -0
- package/docs/spec.ja.md +99 -0
- package/docs/sshfs.en.md +28 -0
- package/docs/sshfs.ja.md +28 -0
- package/docs/sync.en.md +280 -0
- package/docs/sync.ja.md +280 -0
- package/examples/apply-default-appearance.bat +8 -0
- package/examples/apply-default-appearance.ps1 +7 -0
- package/examples/apply-default-appearance.sh +7 -0
- package/examples/apply-runtime-appearance.bat +8 -0
- package/examples/apply-runtime-appearance.ps1 +7 -0
- package/examples/apply-runtime-appearance.sh +7 -0
- package/examples/config/default-appearance.toml +36 -0
- package/examples/config/minimal.toml +30 -0
- package/examples/config/profiles.toml +20 -0
- package/examples/config/runtime-appearance.toml +24 -0
- package/examples/config/sync-folder.toml +17 -0
- package/examples/config/tui-compatibility.toml +7 -0
- package/examples/config/with-plugins.toml +33 -0
- package/examples/plugins/hello.ts +17 -0
- package/examples/plugins/status-banner.ts +14 -0
- package/examples/plugins/theme.ts +32 -0
- package/examples/plugins/welcome-banner.ts +16 -0
- package/extra/linux/icons/hicolor/128x128/apps/fpasoterm.png +0 -0
- package/extra/linux/icons/hicolor/16x16/apps/fpasoterm.png +0 -0
- package/extra/linux/icons/hicolor/192x192/apps/fpasoterm.png +0 -0
- package/extra/linux/icons/hicolor/256x256/apps/fpasoterm.png +0 -0
- package/extra/linux/icons/hicolor/32x32/apps/fpasoterm.png +0 -0
- package/extra/linux/icons/hicolor/48x48/apps/fpasoterm.png +0 -0
- package/extra/linux/icons/hicolor/512x512/apps/fpasoterm.png +0 -0
- package/extra/linux/icons/hicolor/64x64/apps/fpasoterm.png +0 -0
- package/extra/linux/io.github.oyoguhito.fpasoterm.desktop +10 -0
- package/extra/logo/fpasoterm.png +0 -0
- package/extra/macos/fpasoterm.icns +0 -0
- package/extra/windows/fpasoterm.cmd +40 -0
- package/extra/windows/fpasoterm.ico +0 -0
- package/package.json +81 -0
- package/scripts/build-artifacts.js +183 -0
- package/scripts/generate-icon.js +251 -0
- package/scripts/init-jj-empty-main +41 -0
- package/scripts/install-linux-desktop.js +238 -0
- package/scripts/run +16 -0
- package/scripts/security/scan-secrets.js +89 -0
- package/scripts/tests/smoke.js +2476 -0
- package/scripts/uninstall-desktop.js +20 -0
- package/scripts/uninstall-linux-desktop.js +96 -0
- package/scripts/uninstall-windows-path.js +94 -0
- package/src/config.js +855 -0
- package/src/renderer/confirm.html +71 -0
- package/src/renderer/index.html +223 -0
- package/src/renderer/renderer.js +4166 -0
- package/src/renderer/styles.css +969 -0
- package/src/renderer/vendor/addon-fit/addon-fit.js +2 -0
- package/src/renderer/vendor/addon-image/LICENSE +19 -0
- package/src/renderer/vendor/addon-image/addon-image.js +3 -0
- package/src/renderer/vendor/addon-web-links/LICENSE +19 -0
- package/src/renderer/vendor/addon-web-links/addon-web-links.js +2 -0
- package/src/renderer/vendor/xterm/xterm.css +292 -0
- package/src/renderer/vendor/xterm/xterm.js +2 -0
- package/src-tauri/Cargo.lock +5253 -0
- package/src-tauri/Cargo.toml +29 -0
- package/src-tauri/build.rs +140 -0
- package/src-tauri/capabilities/default.json +13 -0
- package/src-tauri/default-config.toml +128 -0
- package/src-tauri/src/main.rs +9347 -0
- package/src-tauri/tauri.conf.json +60 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
#compdef fpasoterm
|
|
2
|
+
|
|
3
|
+
_fpasoterm_profile_names() {
|
|
4
|
+
local -a profiles
|
|
5
|
+
profiles=("${(@f)$(command fpasoterm --profile-list 2>/dev/null | sed -n 's/^ //p')}")
|
|
6
|
+
_describe -t profiles profile profiles
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
_fpasoterm_plugin_names() {
|
|
10
|
+
local -a plugins
|
|
11
|
+
plugins=("${(@f)$(command fpasoterm --plugin-list 2>/dev/null | sed -n 's/^ plugins\/\([^ ]*\).*/\1/p')}")
|
|
12
|
+
_describe -t plugins plugin plugins
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
_fpasoterm() {
|
|
16
|
+
_arguments -s -S \
|
|
17
|
+
'(-h --help)'{-h,--help}'[show help]' \
|
|
18
|
+
'(-v --version)'{-v,--version}'[show version and build commit]' \
|
|
19
|
+
'--update-check[compare the installed version with npm latest]' \
|
|
20
|
+
'--doctor[check updates, npm audit, and config health]' \
|
|
21
|
+
'--completion=[print a completion script]:shell:(bash zsh fish powershell)' \
|
|
22
|
+
'--completion-install=[install persistent completion]:shell:(bash zsh fish powershell)' \
|
|
23
|
+
'--completion-uninstall=[remove persistent completion]:shell:(bash zsh fish powershell)' \
|
|
24
|
+
'(-l --list)'{-l,--list}'[list running windows]' \
|
|
25
|
+
'(-q --close)'{-q,--close}'[close a PID, exact title, or all]:target:(all)' \
|
|
26
|
+
'--broadcast=[send text plus Enter to local windows]:text:' \
|
|
27
|
+
'--broadcast-target=[limit Broadcast targets]:PID or title:' \
|
|
28
|
+
'--broadcast-sync[also send Broadcast through the sync channel]' \
|
|
29
|
+
'(-d --dev)'{-d,--dev}'[rebuild the local debug binary]' \
|
|
30
|
+
'(-F --foreground)'{-F,--foreground}'[keep the launcher attached]' \
|
|
31
|
+
'(-C --console-diagnostics)'{-C,--console-diagnostics}'[print diagnostics to stderr]' \
|
|
32
|
+
'(-c --config)'{-c,--config}'[use a config.toml file]:config file:_files -g "*.toml"' \
|
|
33
|
+
'(-p --profile)'{-p,--profile}'[apply a named profile]:profile:_fpasoterm_profile_names' \
|
|
34
|
+
'--profile-list[list available profiles]' \
|
|
35
|
+
'--show-config[print resolved config]' \
|
|
36
|
+
'--config-check[validate config]' \
|
|
37
|
+
'--config-path[print config path]' \
|
|
38
|
+
'--config-example[print config example]' \
|
|
39
|
+
'--diagnostics[print diagnostics report]' \
|
|
40
|
+
'--open-log-dir[open terminal log directory]' \
|
|
41
|
+
'--copy-diagnostics[copy diagnostics report]' \
|
|
42
|
+
'--plugin-list[list local User/plugins files]' \
|
|
43
|
+
'--plugin-path[print plugin directory]' \
|
|
44
|
+
'--plugin-info=[show plugin information]:plugin:_fpasoterm_plugin_names' \
|
|
45
|
+
'--plugin-uninstall=[remove local plugin files]:plugin:_fpasoterm_plugin_names' \
|
|
46
|
+
'--plugin-search=[search official public plugin ports]:query:' \
|
|
47
|
+
'--plugin-install=[download an official public port]:port:(terminal/hello terminal/welcome-banner terminal/status-banner terminal/theme appearance/amber appearance/teal appearance/high-contrast productivity/git-status productivity/session-marker)' \
|
|
48
|
+
'--plugin-ports-dir=[install --plugin-install from this local fpasoterm-plugins checkout]:directory:_files -/' \
|
|
49
|
+
'--plugin-install-file=[copy a trusted local JavaScript or TypeScript plugin]:plugin:_files -g "*.(js|ts)"' \
|
|
50
|
+
'--force[replace an existing file during plugin install]' \
|
|
51
|
+
'--enable[enable a plugin installed by one install command]' \
|
|
52
|
+
'--enable-plugin=[enable plugins]:plugin:_fpasoterm_plugin_names' \
|
|
53
|
+
'--disable-plugin=[disable plugins]:plugin:_fpasoterm_plugin_names' \
|
|
54
|
+
'--plugin-enable=[alias for enable-plugin]:plugin:_fpasoterm_plugin_names' \
|
|
55
|
+
'--plugin-disable=[alias for disable-plugin]:plugin:_fpasoterm_plugin_names' \
|
|
56
|
+
'--plugin-enable-all[enable all discovered plugins]' \
|
|
57
|
+
'--plugin-disable-all[disable all plugins]' \
|
|
58
|
+
'--update-config[add missing config defaults]' \
|
|
59
|
+
'--prune-config[remove unsupported config settings]' \
|
|
60
|
+
'--setup-sync[configure a sync folder]' \
|
|
61
|
+
'--sync-status[show sync health]' \
|
|
62
|
+
'--sync-clean[remove expired sync commands]' \
|
|
63
|
+
'--sync-diagnostics[print sync diagnostics]' \
|
|
64
|
+
'--self-update[update an npm installation]' \
|
|
65
|
+
'--self-update-checkout[update a git checkout]' \
|
|
66
|
+
'--update-desktop[refresh desktop integration]' \
|
|
67
|
+
'(-s --shell)'{-s,--shell}'[override shell]:command:_command_names' \
|
|
68
|
+
'(-o --cwd)'{-o,--cwd}'[start terminal in this directory]:directory:_files -/' \
|
|
69
|
+
'(-e --command)'{-e,--command}'[run command after launch]:command:' \
|
|
70
|
+
'(-t --title)'{-t,--title}'[override titlebar title]:title:' \
|
|
71
|
+
'(-b --titlebar-color)'{-b,--titlebar-color}'[override titlebar color]:color:' \
|
|
72
|
+
'(-r --reset-window-state)'{-r,--reset-window-state}'[delete saved window size]' \
|
|
73
|
+
'(-R --reset-config)'{-R,--reset-config}'[back up config and restore defaults]' \
|
|
74
|
+
'(-W --width)'{-W,--width}'[override window width]:pixels:' \
|
|
75
|
+
'(-H --height)'{-H,--height}'[override window height]:pixels:' \
|
|
76
|
+
'(-z --size)'{-z,--size}'[override window size]:width x height:' \
|
|
77
|
+
'(-k --debug-keys)'{-k,--debug-keys}'[enable key diagnostics]' \
|
|
78
|
+
'--disable-dmabuf[disable the Linux DMA-BUF renderer]'
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
_fpasoterm "$@"
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Bash completion for fpasoterm. Install with: source <(fpasoterm --completion bash)
|
|
2
|
+
|
|
3
|
+
_fpasoterm_profile_names() {
|
|
4
|
+
command fpasoterm --profile-list 2>/dev/null | sed -n 's/^ //p'
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
_fpasoterm_plugin_names() {
|
|
8
|
+
command fpasoterm --plugin-list 2>/dev/null | sed -n 's/^ plugins\/\([^ ]*\).*/\1/p'
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
_fpasoterm() {
|
|
12
|
+
local cur prev options
|
|
13
|
+
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
14
|
+
prev="${COMP_WORDS[COMP_CWORD - 1]}"
|
|
15
|
+
options='-h --help -v --version --update-check --doctor -l --list -q --close --broadcast --broadcast-target --broadcast-sync -d --dev -F --foreground -C --console-diagnostics -c --config -p --profile --profile-list --show-config --config-check --config-path --config-example --diagnostics --open-log-dir --copy-diagnostics --plugin-list --plugin-path --plugin-info --plugin-uninstall --plugin-search --plugin-install --plugin-ports-dir --plugin-install-file --force --enable --update-config --prune-config --setup-sync --sync-status --sync-clean --sync-diagnostics --self-update --self-update-checkout --update-desktop -s --shell -o --cwd -e --command -t --title -b --titlebar-color -r --reset-window-state -R --reset-config --enable-plugin --disable-plugin --plugin-enable-all --plugin-disable-all --plugin-enable --plugin-disable -W --width -H --height -z --size -k --debug-keys --disable-dmabuf --completion --completion-install --completion-uninstall'
|
|
16
|
+
|
|
17
|
+
case "$prev" in
|
|
18
|
+
--completion|--completion-install|--completion-uninstall)
|
|
19
|
+
COMPREPLY=( $(compgen -W 'bash zsh fish powershell' -- "$cur") )
|
|
20
|
+
return
|
|
21
|
+
;;
|
|
22
|
+
--profile|-p)
|
|
23
|
+
COMPREPLY=( $(compgen -W "$(_fpasoterm_profile_names)" -- "$cur") )
|
|
24
|
+
return
|
|
25
|
+
;;
|
|
26
|
+
--enable-plugin|--disable-plugin|--plugin-enable|--plugin-disable|--plugin-info|--plugin-uninstall)
|
|
27
|
+
COMPREPLY=( $(compgen -W "$(_fpasoterm_plugin_names)" -- "$cur") )
|
|
28
|
+
return
|
|
29
|
+
;;
|
|
30
|
+
--plugin-install)
|
|
31
|
+
COMPREPLY=( $(compgen -W 'terminal/hello terminal/welcome-banner terminal/status-banner terminal/theme appearance/amber appearance/teal appearance/high-contrast productivity/git-status productivity/session-marker' -- "$cur") )
|
|
32
|
+
return
|
|
33
|
+
;;
|
|
34
|
+
--plugin-ports-dir|--plugin-install-file)
|
|
35
|
+
COMPREPLY=( $(compgen -f -- "$cur") )
|
|
36
|
+
return
|
|
37
|
+
;;
|
|
38
|
+
--config|-c|--cwd|-o)
|
|
39
|
+
COMPREPLY=( $(compgen -f -- "$cur") )
|
|
40
|
+
return
|
|
41
|
+
;;
|
|
42
|
+
--shell|-s)
|
|
43
|
+
COMPREPLY=( $(compgen -c -- "$cur") )
|
|
44
|
+
return
|
|
45
|
+
;;
|
|
46
|
+
--close|-q|--broadcast-target)
|
|
47
|
+
COMPREPLY=( $(compgen -W "all $(command fpasoterm --list 2>/dev/null | awk '{print $1}')" -- "$cur") )
|
|
48
|
+
return
|
|
49
|
+
;;
|
|
50
|
+
esac
|
|
51
|
+
|
|
52
|
+
COMPREPLY=( $(compgen -W "$options" -- "$cur") )
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
complete -F _fpasoterm fpasoterm
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Fish completion for fpasoterm. Install with: fpasoterm --completion fish | source
|
|
2
|
+
|
|
3
|
+
complete -c fpasoterm -s h -l help -d 'Show help'
|
|
4
|
+
complete -c fpasoterm -s v -l version -d 'Show version and build commit'
|
|
5
|
+
complete -c fpasoterm -l update-check -d 'Compare installed version with npm latest'
|
|
6
|
+
complete -c fpasoterm -l doctor -d 'Check updates, npm audit, and config health'
|
|
7
|
+
complete -c fpasoterm -s l -l list -d 'List running windows'
|
|
8
|
+
complete -c fpasoterm -s q -l close -r -d 'Close a PID, exact title, or all'
|
|
9
|
+
complete -c fpasoterm -l broadcast -r -d 'Send text to local windows'
|
|
10
|
+
complete -c fpasoterm -l broadcast-target -r -d 'Limit Broadcast targets'
|
|
11
|
+
complete -c fpasoterm -l broadcast-sync -d 'Include the sync channel'
|
|
12
|
+
complete -c fpasoterm -s d -l dev -d 'Rebuild local debug binary'
|
|
13
|
+
complete -c fpasoterm -s F -l foreground -d 'Keep launcher attached'
|
|
14
|
+
complete -c fpasoterm -s C -l console-diagnostics -d 'Print diagnostics to stderr'
|
|
15
|
+
complete -c fpasoterm -s c -l config -r -F -d 'Use a config.toml file'
|
|
16
|
+
complete -c fpasoterm -s p -l profile -r -d 'Apply a named profile'
|
|
17
|
+
complete -c fpasoterm -l profile-list -d 'List named profiles'
|
|
18
|
+
complete -c fpasoterm -l show-config -d 'Print resolved config'
|
|
19
|
+
complete -c fpasoterm -l config-check -d 'Validate config'
|
|
20
|
+
complete -c fpasoterm -l config-path -d 'Print config path'
|
|
21
|
+
complete -c fpasoterm -l config-example -d 'Print config example'
|
|
22
|
+
complete -c fpasoterm -l diagnostics -d 'Print diagnostics report'
|
|
23
|
+
complete -c fpasoterm -l open-log-dir -d 'Open terminal log directory'
|
|
24
|
+
complete -c fpasoterm -l copy-diagnostics -d 'Copy diagnostics report'
|
|
25
|
+
complete -c fpasoterm -l plugin-list -d 'List local User/plugins files'
|
|
26
|
+
complete -c fpasoterm -l plugin-path -d 'Print plugin directory'
|
|
27
|
+
complete -c fpasoterm -l plugin-info -r -d 'Show plugin information'
|
|
28
|
+
complete -c fpasoterm -l plugin-uninstall -r -d 'Remove local plugin files'
|
|
29
|
+
complete -c fpasoterm -l plugin-search -d 'Search official public plugin ports'
|
|
30
|
+
complete -c fpasoterm -l plugin-install -r -a 'terminal/hello terminal/welcome-banner terminal/status-banner terminal/theme appearance/amber appearance/teal appearance/high-contrast productivity/git-status productivity/session-marker' -d 'Download an official public port'
|
|
31
|
+
complete -c fpasoterm -l plugin-ports-dir -r -F -d 'Install --plugin-install from this local checkout'
|
|
32
|
+
complete -c fpasoterm -l plugin-install-file -r -F -d 'Copy a trusted local .js/.ts plugin'
|
|
33
|
+
complete -c fpasoterm -l force -d 'Replace an existing plugin during install'
|
|
34
|
+
complete -c fpasoterm -l enable -d 'Enable a plugin installed by an install command'
|
|
35
|
+
complete -c fpasoterm -l enable-plugin -r -d 'Enable plugins'
|
|
36
|
+
complete -c fpasoterm -l disable-plugin -r -d 'Disable plugins'
|
|
37
|
+
complete -c fpasoterm -l plugin-enable -r -d 'Alias for enable-plugin'
|
|
38
|
+
complete -c fpasoterm -l plugin-disable -r -d 'Alias for disable-plugin'
|
|
39
|
+
complete -c fpasoterm -l plugin-enable-all -d 'Enable all discovered plugins'
|
|
40
|
+
complete -c fpasoterm -l plugin-disable-all -d 'Disable all plugins'
|
|
41
|
+
complete -c fpasoterm -l update-config -d 'Add missing config defaults'
|
|
42
|
+
complete -c fpasoterm -l prune-config -d 'Remove unsupported config settings'
|
|
43
|
+
complete -c fpasoterm -l setup-sync -d 'Configure a sync folder'
|
|
44
|
+
complete -c fpasoterm -l sync-status -d 'Show sync health'
|
|
45
|
+
complete -c fpasoterm -l sync-clean -d 'Remove expired sync commands'
|
|
46
|
+
complete -c fpasoterm -l sync-diagnostics -d 'Print sync diagnostics'
|
|
47
|
+
complete -c fpasoterm -l self-update -d 'Update an npm installation'
|
|
48
|
+
complete -c fpasoterm -l self-update-checkout -d 'Update a git checkout'
|
|
49
|
+
complete -c fpasoterm -l update-desktop -d 'Refresh desktop integration'
|
|
50
|
+
complete -c fpasoterm -s s -l shell -r -d 'Override shell'
|
|
51
|
+
complete -c fpasoterm -s o -l cwd -r -F -d 'Start terminal in this directory'
|
|
52
|
+
complete -c fpasoterm -s e -l command -r -d 'Run command after launch'
|
|
53
|
+
complete -c fpasoterm -s t -l title -r -d 'Override titlebar title'
|
|
54
|
+
complete -c fpasoterm -s b -l titlebar-color -r -d 'Override titlebar color'
|
|
55
|
+
complete -c fpasoterm -s r -l reset-window-state -d 'Delete saved window size'
|
|
56
|
+
complete -c fpasoterm -s R -l reset-config -d 'Restore default config'
|
|
57
|
+
complete -c fpasoterm -s W -l width -r -d 'Override window width'
|
|
58
|
+
complete -c fpasoterm -s H -l height -r -d 'Override window height'
|
|
59
|
+
complete -c fpasoterm -s z -l size -r -d 'Override window size'
|
|
60
|
+
complete -c fpasoterm -s k -l debug-keys -d 'Enable key diagnostics'
|
|
61
|
+
complete -c fpasoterm -l disable-dmabuf -d 'Disable Linux DMA-BUF renderer'
|
|
62
|
+
complete -c fpasoterm -l completion -r -a 'bash zsh fish powershell' -d 'Print completion script'
|
|
63
|
+
complete -c fpasoterm -l completion-install -r -a 'bash zsh fish powershell' -d 'Install persistent completion'
|
|
64
|
+
complete -c fpasoterm -l completion-uninstall -r -a 'bash zsh fish powershell' -d 'Remove persistent completion'
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# PowerShell completion for fpasoterm. Install with:
|
|
2
|
+
# fpasoterm --completion powershell | Out-String | Invoke-Expression
|
|
3
|
+
|
|
4
|
+
$fpasotermCompletion = {
|
|
5
|
+
param($wordToComplete, $commandAst, $cursorPosition)
|
|
6
|
+
|
|
7
|
+
$shells = @('bash', 'zsh', 'fish', 'powershell')
|
|
8
|
+
$options = @(
|
|
9
|
+
@('--help', 'Show help'), @('-h', 'Show help'), @('--version', 'Show version and build commit'), @('-v', 'Show version and build commit'), @('--update-check', 'Compare installed version with npm latest'), @('--doctor', 'Check updates, npm audit, and config health'),
|
|
10
|
+
@('--list', 'List running windows'), @('-l', 'List running windows'), @('--close', 'Close a PID, exact title, or all'), @('-q', 'Close a PID, exact title, or all'),
|
|
11
|
+
@('--broadcast', 'Send text to local windows'), @('--broadcast-target', 'Limit Broadcast targets'), @('--broadcast-sync', 'Include the sync channel'),
|
|
12
|
+
@('--dev', 'Rebuild local debug binary'), @('-d', 'Rebuild local debug binary'), @('--foreground', 'Keep launcher attached'), @('-F', 'Keep launcher attached'),
|
|
13
|
+
@('--console-diagnostics', 'Print diagnostics to stderr'), @('-C', 'Print diagnostics to stderr'), @('--config', 'Use a config.toml file'), @('-c', 'Use a config.toml file'),
|
|
14
|
+
@('--profile', 'Apply a named profile'), @('-p', 'Apply a named profile'), @('--profile-list', 'List named profiles'), @('--show-config', 'Print resolved config'),
|
|
15
|
+
@('--config-check', 'Validate config'), @('--config-path', 'Print config path'), @('--config-example', 'Print config example'), @('--diagnostics', 'Print diagnostics report'),
|
|
16
|
+
@('--open-log-dir', 'Open terminal log directory'), @('--copy-diagnostics', 'Copy diagnostics report'), @('--plugin-list', 'List local User/plugins files'), @('--plugin-path', 'Print plugin directory'),
|
|
17
|
+
@('--plugin-info', 'Show plugin information'), @('--plugin-uninstall', 'Remove local plugin files'), @('--plugin-search', 'Search official public plugin ports'), @('--plugin-install', 'Install a port from GitHub or --plugin-ports-dir'), @('--plugin-ports-dir', 'Install --plugin-install from a local checkout'), @('--plugin-install-file', 'Copy a trusted local .js/.ts plugin'), @('--force', 'Replace an existing plugin during install'), @('--enable', 'Enable a plugin installed by an install command'), @('--enable-plugin', 'Enable plugins'), @('--disable-plugin', 'Disable plugins'), @('--plugin-enable', 'Alias for enable-plugin'),
|
|
18
|
+
@('--plugin-disable', 'Alias for disable-plugin'), @('--plugin-enable-all', 'Enable all discovered plugins'), @('--plugin-disable-all', 'Disable all plugins'),
|
|
19
|
+
@('--update-config', 'Add missing config defaults'), @('--prune-config', 'Remove unsupported config settings'), @('--setup-sync', 'Configure a sync folder'),
|
|
20
|
+
@('--sync-status', 'Show sync health'), @('--sync-clean', 'Remove expired sync commands'), @('--sync-diagnostics', 'Print sync diagnostics'),
|
|
21
|
+
@('--self-update', 'Update an npm installation'), @('--self-update-checkout', 'Update a git checkout'), @('--update-desktop', 'Refresh desktop integration'),
|
|
22
|
+
@('--shell', 'Override shell'), @('-s', 'Override shell'), @('--cwd', 'Start terminal in this directory'), @('-o', 'Start terminal in this directory'), @('--command', 'Run command after launch'), @('-e', 'Run command after launch'),
|
|
23
|
+
@('--title', 'Override titlebar title'), @('-t', 'Override titlebar title'), @('--titlebar-color', 'Override titlebar color'), @('-b', 'Override titlebar color'),
|
|
24
|
+
@('--reset-window-state', 'Delete saved window size'), @('-r', 'Delete saved window size'), @('--reset-config', 'Restore default config'), @('-R', 'Restore default config'),
|
|
25
|
+
@('--width', 'Override window width'), @('-W', 'Override window width'), @('--height', 'Override window height'), @('-H', 'Override window height'),
|
|
26
|
+
@('--size', 'Override window size'), @('-z', 'Override window size'), @('--debug-keys', 'Enable key diagnostics'), @('-k', 'Enable key diagnostics'),
|
|
27
|
+
@('--disable-dmabuf', 'Disable Linux DMA-BUF renderer'),
|
|
28
|
+
@('--completion', 'Print completion script'), @('--completion-install', 'Install persistent completion'), @('--completion-uninstall', 'Remove persistent completion')
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
$previous = ''
|
|
32
|
+
if ($commandAst.CommandElements.Count -gt 1) {
|
|
33
|
+
$previous = $commandAst.CommandElements[$commandAst.CommandElements.Count - 2].Extent.Text
|
|
34
|
+
}
|
|
35
|
+
if ($previous -in '--completion', '--completion-install', '--completion-uninstall') {
|
|
36
|
+
foreach ($shell in $shells | Where-Object { $_ -like "$wordToComplete*" }) {
|
|
37
|
+
[System.Management.Automation.CompletionResult]::new($shell, $shell, 'ParameterValue', "fpasoterm completion for $shell")
|
|
38
|
+
}
|
|
39
|
+
return
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
foreach ($option in $options | Where-Object { $_[0] -like "$wordToComplete*" }) {
|
|
43
|
+
[System.Management.Automation.CompletionResult]::new($option[0], $option[0], 'ParameterName', $option[1])
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
Register-ArgumentCompleter -Native -CommandName fpasoterm, fpasoterm.cmd, fpasoterm.exe -ScriptBlock $fpasotermCompletion
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Terminal Capability Diagnostics
|
|
2
|
+
|
|
3
|
+
Open the window menu, then select **Diagnostics > Capability Test**. This
|
|
4
|
+
opens the existing diagnostics panel and does not change the terminal session,
|
|
5
|
+
shell configuration, or saved settings.
|
|
6
|
+
|
|
7
|
+
The panel reports the environment fpasoterm provides to its PTY:
|
|
8
|
+
|
|
9
|
+
- `TERM`: `xterm-256color`
|
|
10
|
+
- `COLORTERM`: `truecolor`
|
|
11
|
+
- `locale`: the effective `LC_ALL`, `LC_CTYPE`, or `LANG` value
|
|
12
|
+
- `output encoding`: the configured PTY decoder
|
|
13
|
+
- `shell`: the configured or platform-selected shell command
|
|
14
|
+
|
|
15
|
+
## Output Encoding
|
|
16
|
+
|
|
17
|
+
The panel can save `terminal.encoding` as `utf-8`, `shift-jis`, or `euc-jp`.
|
|
18
|
+
The choice applies when the window is restarted because both the PTY decoder and
|
|
19
|
+
shell locale are selected before the shell starts. UTF-8 is the default. On
|
|
20
|
+
Unix, fpasoterm supplies a UTF-8 locale to an inherited non-UTF-8 environment,
|
|
21
|
+
so normal tools keep UTF-8 filenames intact. It does not auto-detect byte
|
|
22
|
+
encodings because detection is ambiguous and can corrupt otherwise valid text.
|
|
23
|
+
|
|
24
|
+
## Truecolor
|
|
25
|
+
|
|
26
|
+
The renderer supports 24-bit ANSI colors and advertises that through
|
|
27
|
+
`COLORTERM=truecolor`. Run the command shown in the panel in the terminal. It
|
|
28
|
+
should render distinct red, green, and blue words:
|
|
29
|
+
|
|
30
|
+
```sh
|
|
31
|
+
printf '\033[38;2;255;80;80mred \033[38;2;80;220;140mgreen \033[38;2;90;150;255mblue\033[0m\n'
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Control Sequences
|
|
35
|
+
|
|
36
|
+
- **OSC 52 clipboard:** fpasoterm accepts received text clipboard payloads and
|
|
37
|
+
writes them to the operating-system clipboard when `security.osc52` is
|
|
38
|
+
`trusted`. `security.osc52MaxBytes` limits the decoded payload. Set
|
|
39
|
+
`security.osc52 = "disabled"` when terminal output is not trusted.
|
|
40
|
+
- **OSC 7 current directory:** received `file://` reports are retained only as
|
|
41
|
+
diagnostics metadata. Use `Ctrl+Shift+o` or **Window > New CWD** to open a
|
|
42
|
+
separate terminal in an existing local absolute directory reported by OSC 7.
|
|
43
|
+
Remote-host reports and unavailable paths are rejected. fpasoterm does not
|
|
44
|
+
open, inspect, or synchronize the reported path. fpasoterm configures Bash
|
|
45
|
+
to report OSC 7 at each prompt; other shells need their own OSC 7 integration.
|
|
46
|
+
- **OSC 133 shell integration:** prompt and command lifecycle markers are
|
|
47
|
+
retained only as diagnostics metadata. They do not execute a command or
|
|
48
|
+
replace the shell, multiplexer, or TUI workflow.
|
|
49
|
+
- **OSC 8 hyperlinks:** clicking a rendered OSC 8 link or plain `http(s)` URL
|
|
50
|
+
opens an explicit confirmation dialog. Copy remains available. External
|
|
51
|
+
browser opening is disabled by default and additionally requires
|
|
52
|
+
`security.osc8Open = true`; links are never opened automatically. Absolute
|
|
53
|
+
and `~/` paths remain copy-only links.
|
|
54
|
+
- **OSC 9 / OSC 99 notifications:** desktop notifications are disabled by
|
|
55
|
+
default. Set `security.oscNotifications = true` to allow them. The first use
|
|
56
|
+
can request operating-system notification permission, and
|
|
57
|
+
`security.oscNotificationMinIntervalMs` limits notifications to one per
|
|
58
|
+
1,000--60,000 ms (default 5,000 ms).
|
|
59
|
+
- **Bracketed paste:** xterm.js handles terminal input. A shell or TUI enables
|
|
60
|
+
bracketed paste with DECSET 2004, then receives pasted text as a bracketed
|
|
61
|
+
sequence.
|
|
62
|
+
- **Bell:** BEL is passed to xterm.js. Audible or visual feedback is controlled
|
|
63
|
+
by the operating system and webview, so it may be silent.
|
|
64
|
+
|
|
65
|
+
The panel documents the supported paths rather than sending a clipboard write,
|
|
66
|
+
opening a URL, or ringing a bell automatically. This keeps diagnostics safe for
|
|
67
|
+
the current terminal session.
|
|
68
|
+
|
|
69
|
+
## Verification
|
|
70
|
+
|
|
71
|
+
1. Start fpasoterm and open **Diagnostics > Capability Test**.
|
|
72
|
+
2. Confirm `TERM` is `xterm-256color` and `COLORTERM` is `truecolor`.
|
|
73
|
+
3. Run the displayed truecolor command and confirm all three colors differ.
|
|
74
|
+
4. Run `printf 'https://example.com /tmp/fpasoterm-link-test\n'`, click each
|
|
75
|
+
item, and paste into a trusted text field to confirm URL/path copying.
|
|
76
|
+
5. If a TUI behaves differently, record this panel together with
|
|
77
|
+
`fpasoterm --diagnostics` when filing an issue.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Terminal Capability Diagnostics
|
|
2
|
+
|
|
3
|
+
window menu から **Diagnostics > Capability Test** を選択します。既存の
|
|
4
|
+
diagnostics panelを表示するだけで、terminal session、shell設定、保存済み設定は変更しません。
|
|
5
|
+
|
|
6
|
+
panelにはfpasotermがPTYへ設定する次のenvironmentを表示します。
|
|
7
|
+
|
|
8
|
+
- `TERM`: `xterm-256color`
|
|
9
|
+
- `COLORTERM`: `truecolor`
|
|
10
|
+
- `locale`: 有効な`LC_ALL`、`LC_CTYPE`、または`LANG`
|
|
11
|
+
- `output encoding`: 設定済みPTY decoder
|
|
12
|
+
- `shell`: configまたはOS既定から選択したshell command
|
|
13
|
+
|
|
14
|
+
## Output Encoding
|
|
15
|
+
|
|
16
|
+
panelから`terminal.encoding`を`utf-8`、`shift-jis`、`euc-jp`として保存できます。
|
|
17
|
+
PTY decoderとshell localeはshell起動前に決まるため、選択後はwindowを再起動してください。
|
|
18
|
+
既定値はUTF-8です。Unixでは親環境がUTF-8以外のlocaleでも、UTF-8 PTYにはUTF-8 localeを
|
|
19
|
+
設定するため、通常のtoolが日本語filenameを`?`へ置換することを防ぎます。文字コードの自動判定は
|
|
20
|
+
曖昧で正しいtextも壊し得るため実装しません。
|
|
21
|
+
|
|
22
|
+
## Truecolor
|
|
23
|
+
|
|
24
|
+
rendererは24-bit ANSI colorを扱い、`COLORTERM=truecolor`でterminal applicationへ通知します。
|
|
25
|
+
panel内の次のcommandをterminalで実行し、赤・緑・青のwordがそれぞれ異なる色で表示されることを
|
|
26
|
+
確認してください。
|
|
27
|
+
|
|
28
|
+
```sh
|
|
29
|
+
printf '\033[38;2;255;80;80mred \033[38;2;80;220;140mgreen \033[38;2;90;150;255mblue\033[0m\n'
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Control Sequence
|
|
33
|
+
|
|
34
|
+
- **OSC 52 clipboard:** `security.osc52`が`trusted`の場合だけ受信したtext clipboard
|
|
35
|
+
payloadをOS clipboardへ書き込みます。`security.osc52MaxBytes`でdecode後のsizeを制限します。
|
|
36
|
+
terminal outputをtrustedできない場合は`security.osc52 = "disabled"`を設定してください。
|
|
37
|
+
- **OSC 7 current directory:** 受信した`file://` reportはdiagnostics metadataとして保持します。
|
|
38
|
+
`Ctrl+Shift+o`または**Window > New CWD**で、OSC 7が通知したexisting local absolute directoryから別windowを開けます。
|
|
39
|
+
remote hostのreportまたは存在しないpathは拒否します。報告されたpathをopen、参照、syncしません。
|
|
40
|
+
fpasotermはBash promptごとにOSC 7を通知するよう設定します。ほかのshellでは、そのshell側のOSC 7 integrationが必要です。
|
|
41
|
+
- **OSC 133 shell integration:** promptとcommand lifecycle markerはdiagnostics metadataとしてだけ
|
|
42
|
+
保持します。commandを実行したりshell、multiplexer、TUIのworkflowを置き換えたりしません。
|
|
43
|
+
- **OSC 8 hyperlink:** 表示されたOSC 8 linkまたは通常の`http(s)` URLをclickすると明示的な確認dialogを表示します。
|
|
44
|
+
URLのcopyは常に可能です。外部browserでopenするには`security.osc8Open = true`も必要です。自動openはしません。
|
|
45
|
+
absolute pathと`~/` pathはcopy-onlyです。
|
|
46
|
+
- **OSC 9 / OSC 99通知:** desktop notificationは既定で無効です。`security.oscNotifications = true`で有効化できます。
|
|
47
|
+
最初の使用時にはOS notification permissionを確認することがあります。`security.oscNotificationMinIntervalMs`は通知間隔を
|
|
48
|
+
1,000--60,000 msに制限します(既定5,000 ms)。
|
|
49
|
+
- **Bracketed paste:** xterm.jsがterminal inputを処理します。shellまたはTUIがDECSET 2004を有効にすると、
|
|
50
|
+
paste textはbracketed sequenceとして届きます。
|
|
51
|
+
- **Bell:** BELはxterm.jsへ渡します。音またはvisual feedbackはOSとwebviewの設定に依存するため、
|
|
52
|
+
無音の場合があります。
|
|
53
|
+
|
|
54
|
+
panelはclipboard書込み、URL open、bellを自動実行せず、対応経路を説明します。現在のterminal sessionへ
|
|
55
|
+
影響を与えないためです。
|
|
56
|
+
|
|
57
|
+
## 動作確認
|
|
58
|
+
|
|
59
|
+
1. fpasotermを起動し、**Diagnostics > Capability Test** を開きます。
|
|
60
|
+
2. `TERM`が`xterm-256color`、`COLORTERM`が`truecolor`であることを確認します。
|
|
61
|
+
3. 表示されたtruecolor commandを実行し、3色が異なることを確認します。
|
|
62
|
+
4. `printf 'https://example.com /tmp/fpasoterm-link-test\n'`を実行し、各項目をclickしてtrustedなtext fieldへpasteし、URL/pathがcopyされることを確認します。
|
|
63
|
+
5. TUIの挙動に問題がある場合は、このpanelの内容と`fpasoterm --diagnostics`を合わせてIssueへ記載します。
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# Command Completion
|
|
2
|
+
|
|
3
|
+
fpasoterm can print completion scripts for Bash, Zsh, Fish, and PowerShell.
|
|
4
|
+
The scripts complete CLI options and the values for `--completion`; Bash and
|
|
5
|
+
Zsh also query local profile and plugin lists for those options.
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
fpasoterm --completion bash
|
|
9
|
+
fpasoterm --completion zsh
|
|
10
|
+
fpasoterm --completion fish
|
|
11
|
+
fpasoterm --completion powershell
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
The command only writes a script to standard output. It does not start a
|
|
15
|
+
terminal window or modify configuration. To install or remove fpasoterm's
|
|
16
|
+
user-only persistent completion file, use:
|
|
17
|
+
|
|
18
|
+
```sh
|
|
19
|
+
fpasoterm --completion-install bash
|
|
20
|
+
fpasoterm --completion-uninstall bash
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Replace `bash` with `zsh`, `fish`, or `powershell`. Install and uninstall only
|
|
24
|
+
touch fpasoterm-owned user files; they do not modify system completion files.
|
|
25
|
+
|
|
26
|
+
## Updating Completion
|
|
27
|
+
|
|
28
|
+
An application update does not require reinstallation for the existing
|
|
29
|
+
completion script to keep working. Persistent completion is a copied user file,
|
|
30
|
+
so rerun the install command only when you want newly added CLI options or
|
|
31
|
+
value candidates to appear in Tab completion:
|
|
32
|
+
|
|
33
|
+
```sh
|
|
34
|
+
fpasoterm --completion-install bash
|
|
35
|
+
fpasoterm --completion-install zsh
|
|
36
|
+
fpasoterm --completion-install fish
|
|
37
|
+
fpasoterm --completion-install powershell
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Restart the shell after updating. In PowerShell, `. $PROFILE` reloads the
|
|
41
|
+
profile without opening a new console. Use `--completion-uninstall <shell>`
|
|
42
|
+
only to remove completion; it is not needed for a normal update.
|
|
43
|
+
|
|
44
|
+
## Bash
|
|
45
|
+
|
|
46
|
+
Current shell:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
source <(fpasoterm --completion bash)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Persistent user installation: `fpasoterm --completion-install bash`.
|
|
53
|
+
It installs `~/.local/share/bash-completion/completions/fpasoterm` (or the
|
|
54
|
+
equivalent location under `XDG_DATA_HOME`). Remove it with
|
|
55
|
+
`fpasoterm --completion-uninstall bash`.
|
|
56
|
+
|
|
57
|
+
## Zsh
|
|
58
|
+
|
|
59
|
+
Current shell:
|
|
60
|
+
|
|
61
|
+
```zsh
|
|
62
|
+
source <(fpasoterm --completion zsh)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Persistent user installation: `fpasoterm --completion-install zsh`.
|
|
66
|
+
It installs `~/.zfunc/_fpasoterm`; remove it with
|
|
67
|
+
`fpasoterm --completion-uninstall zsh`.
|
|
68
|
+
|
|
69
|
+
Add `fpath=(~/.zfunc $fpath)` before `autoload -Uz compinit && compinit` in
|
|
70
|
+
`.zshrc` when `~/.zfunc` is not already in `fpath`.
|
|
71
|
+
|
|
72
|
+
## Fish
|
|
73
|
+
|
|
74
|
+
Current shell:
|
|
75
|
+
|
|
76
|
+
```fish
|
|
77
|
+
fpasoterm --completion fish | source
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Persistent user installation: `fpasoterm --completion-install fish`.
|
|
81
|
+
It installs `~/.config/fish/completions/fpasoterm.fish` (or the equivalent
|
|
82
|
+
location under `XDG_CONFIG_HOME`); remove it with
|
|
83
|
+
`fpasoterm --completion-uninstall fish`.
|
|
84
|
+
|
|
85
|
+
Fish automatically loads that file in later shells.
|
|
86
|
+
|
|
87
|
+
## PowerShell
|
|
88
|
+
|
|
89
|
+
Current PowerShell session:
|
|
90
|
+
|
|
91
|
+
```powershell
|
|
92
|
+
fpasoterm --completion powershell | Out-String | Invoke-Expression
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
For a persistent user installation, use:
|
|
96
|
+
|
|
97
|
+
```powershell
|
|
98
|
+
fpasoterm --completion-install powershell
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
This writes a fpasoterm-owned script below `User/completions` and adds one
|
|
102
|
+
marked fpasoterm block to every available user PowerShell profile (`pwsh` and
|
|
103
|
+
Windows PowerShell). It handles redirected Documents folders. Remove both the
|
|
104
|
+
script and only those marked blocks with `fpasoterm --completion-uninstall powershell`.
|
|
105
|
+
If a profile contains only that managed block, uninstall removes the otherwise
|
|
106
|
+
empty profile file too; unrelated profile settings are preserved.
|
|
107
|
+
|
|
108
|
+
The fpasoterm window does not reload a PowerShell profile. Close and reopen the
|
|
109
|
+
PowerShell console after installing, or enable it immediately in the current
|
|
110
|
+
console with:
|
|
111
|
+
|
|
112
|
+
```powershell
|
|
113
|
+
. $PROFILE
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Profiles are skipped when PowerShell is launched with `-NoProfile`; in that
|
|
117
|
+
case source the installed completion script manually or start PowerShell
|
|
118
|
+
without `-NoProfile`.
|
|
119
|
+
|
|
120
|
+
If PowerShell reports that scripts cannot run, inspect the effective policy and
|
|
121
|
+
allow locally-created scripts for the current user only. This does not require
|
|
122
|
+
an administrator console:
|
|
123
|
+
|
|
124
|
+
```powershell
|
|
125
|
+
Get-ExecutionPolicy -List
|
|
126
|
+
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
|
|
127
|
+
. $PROFILE
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
An organization policy can override `CurrentUser`; in that case contact the
|
|
131
|
+
device administrator rather than using a machine-wide bypass.
|
|
132
|
+
|
|
133
|
+
When using an installer artifact directly, use the console wrapper so output
|
|
134
|
+
returns to PowerShell:
|
|
135
|
+
|
|
136
|
+
```powershell
|
|
137
|
+
.\fpasoterm.cmd --completion powershell | Out-String | Invoke-Expression
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
`cmd.exe` does not provide a comparable programmable argument-completion API.
|
|
141
|
+
Use PowerShell for Windows interactive completion.
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# コマンド補完
|
|
2
|
+
|
|
3
|
+
fpasoterm は Bash、Zsh、Fish、PowerShell 向けのcompletion scriptを出力できます。
|
|
4
|
+
CLI optionと`--completion`の値を補完し、Bash/Zshでは`--profile`とplugin指定時に
|
|
5
|
+
ローカルのprofile/plugin一覧も候補にします。
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
fpasoterm --completion bash
|
|
9
|
+
fpasoterm --completion zsh
|
|
10
|
+
fpasoterm --completion fish
|
|
11
|
+
fpasoterm --completion powershell
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
このcommandはscriptを標準出力へ書き出すだけです。terminal windowの起動や設定変更は行いません。fpasoterm専用の永続completion fileを導入・削除する場合は次を使います。
|
|
15
|
+
|
|
16
|
+
```sh
|
|
17
|
+
fpasoterm --completion-install bash
|
|
18
|
+
fpasoterm --completion-uninstall bash
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
`bash`は`zsh`、`fish`、`powershell`へ置き換えられます。install/uninstallはfpasotermが管理するuser fileだけを操作し、system completion fileは変更しません。
|
|
22
|
+
|
|
23
|
+
## 更新時のcompletion
|
|
24
|
+
|
|
25
|
+
アプリを更新しても、既に導入したcompletion scriptが動かなくなるための再導入は不要です。永続completionはuser directoryへcopyしたfileであるため、新しいCLI optionや値をTab補完の候補へ追加したい場合だけ、使用するshellに対して再度installを実行してください。
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
fpasoterm --completion-install bash
|
|
29
|
+
fpasoterm --completion-install zsh
|
|
30
|
+
fpasoterm --completion-install fish
|
|
31
|
+
fpasoterm --completion-install powershell
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
更新後はshellを再起動します。PowerShellでは新しいconsoleを開かずに`. $PROFILE`でprofileを再読込できます。`--completion-uninstall <shell>`はcompletionを削除するためだけのcommandであり、通常の更新時には必要ありません。
|
|
35
|
+
|
|
36
|
+
## Bash
|
|
37
|
+
|
|
38
|
+
現在のshellだけで有効にする場合:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
source <(fpasoterm --completion bash)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
永続的に導入する場合は`fpasoterm --completion-install bash`を実行します。`~/.local/share/bash-completion/completions/fpasoterm`(または`XDG_DATA_HOME`配下)へ導入され、`fpasoterm --completion-uninstall bash`で削除できます。
|
|
45
|
+
|
|
46
|
+
## Zsh
|
|
47
|
+
|
|
48
|
+
現在のshellだけで有効にする場合:
|
|
49
|
+
|
|
50
|
+
```zsh
|
|
51
|
+
source <(fpasoterm --completion zsh)
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
永続的に導入する場合は`fpasoterm --completion-install zsh`を実行します。`~/.zfunc/_fpasoterm`へ導入され、`fpasoterm --completion-uninstall zsh`で削除できます。
|
|
55
|
+
|
|
56
|
+
`~/.zfunc`が`fpath`に含まれていない場合は、`.zshrc`の
|
|
57
|
+
`autoload -Uz compinit && compinit`より前へ`fpath=(~/.zfunc $fpath)`を追加してください。
|
|
58
|
+
|
|
59
|
+
## Fish
|
|
60
|
+
|
|
61
|
+
現在のshellだけで有効にする場合:
|
|
62
|
+
|
|
63
|
+
```fish
|
|
64
|
+
fpasoterm --completion fish | source
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
永続的に導入する場合は`fpasoterm --completion-install fish`を実行します。`~/.config/fish/completions/fpasoterm.fish`(または`XDG_CONFIG_HOME`配下)へ導入され、`fpasoterm --completion-uninstall fish`で削除できます。
|
|
68
|
+
|
|
69
|
+
Fishは次回以降のshellでこのfileを自動的に読み込みます。
|
|
70
|
+
|
|
71
|
+
## PowerShell
|
|
72
|
+
|
|
73
|
+
現在のPowerShell sessionだけで有効にする場合:
|
|
74
|
+
|
|
75
|
+
```powershell
|
|
76
|
+
fpasoterm --completion powershell | Out-String | Invoke-Expression
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
ユーザー環境へ永続的に導入する場合は次を実行します。
|
|
80
|
+
|
|
81
|
+
```powershell
|
|
82
|
+
fpasoterm --completion-install powershell
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
`User/completions`配下へscriptを配置し、利用可能なPowerShellのuser profile(`pwsh`とWindows PowerShell)すべてへfpasoterm専用の識別可能なblockを追加します。Documentsのredirectにも対応します。`fpasoterm --completion-uninstall powershell`はscriptとこのblockだけを削除します。
|
|
86
|
+
profileの内容がこの管理blockだけの場合は空fileを残さずprofile自体を削除します。他のprofile設定がある場合は保持します。
|
|
87
|
+
|
|
88
|
+
fpasoterm windowの再起動ではPowerShell profileは読み直されません。install後にPowerShell consoleを一度閉じて開き直すか、現在のconsoleで直ちに有効にするには次を実行します。
|
|
89
|
+
|
|
90
|
+
```powershell
|
|
91
|
+
. $PROFILE
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
`-NoProfile`を付けてPowerShellを起動している場合はprofileを読み込まないため、上記のようにcompletion scriptをsourceするか、`-NoProfile`なしでPowerShellを起動してください。
|
|
95
|
+
|
|
96
|
+
PowerShellが「このシステムではスクリプトを実行できません」と表示する場合は、effective policyを確認し、現在のuserだけでlocal scriptを許可します。administrator consoleは不要です。
|
|
97
|
+
|
|
98
|
+
```powershell
|
|
99
|
+
Get-ExecutionPolicy -List
|
|
100
|
+
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
|
|
101
|
+
. $PROFILE
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
organization policyが`CurrentUser`より優先される場合は、machine-wide bypassを設定せずdevice administratorへ確認してください。
|
|
105
|
+
|
|
106
|
+
installer artifactを直接使用する場合は、PowerShellへstdoutを返すconsole wrapperを使います。
|
|
107
|
+
|
|
108
|
+
```powershell
|
|
109
|
+
.\fpasoterm.cmd --completion powershell | Out-String | Invoke-Expression
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
`cmd.exe`にはBashやPowerShellと同等のprogrammaticな引数completion APIがありません。
|
|
113
|
+
Windowsでinteractive completionを使用する場合はPowerShellを使ってください。
|