feat: move snippets, keybinding actions and macros out of core into plugins

This commit is contained in:
LukeGus committed 2026-09-29 11:39:14 -05:00
1 parent d9bba10612
commit e0c30a4e6f
262 files changed
+9091 -10744

No files matched your search

+119 -2
View File
@@ -490,7 +490,6 @@
"savedThemesLabel": "Saved Themes",
"scrollbackBufferLabel": "Scrollback Buffer",
"scrollbackMaxLines": "Maximum number of lines kept in history",
"startupSnippetLabel": "Startup Snippet",
"sudoPasswordAutoFill": "Sudo Password Auto-Fill",
"sudoPasswordAutoFillDesc": "Store a sudo password so host metrics, terminal prompts, and others can run privileged commands automatically.",
"sudoPasswordAutoFillLabel": "Sudo Password Auto-fill",
@@ -520,7 +519,8 @@
"history": "History",
"localTerminal": "Local Terminal",
"sshTools": "SSH Tools",
"terminal": "Terminal"
"terminal": "Terminal",
"macros": "Macros"
},
"sshTools": {
"broadcastInputPlaceholder": "Type here to broadcast keystrokes...",
@@ -551,5 +551,122 @@
"savedThemePlaceholder": "Choose a saved theme",
"title": "Connection Defaults",
"apply": "Apply"
},
"keybindings": {
"copy": "Copy selection",
"paste": "Paste",
"sendControlCode": "Send Ctrl+letter signal",
"sendText": "Send text",
"controlCodeLabel": "Letter",
"textLabel": "Text to send",
"appendEnterLabel": "Press Enter after sending",
"clipboardPermissionNote": "May prompt for clipboard permission on first use in some browsers.",
"textRequired": "Enter the text to send",
"controlCodeRequired": "Enter a single letter for the control code",
"builtIn": {
"copyCtrlC": "Copy selection (Ctrl+C, only when text is selected)",
"copyCtrlShiftC": "Copy selection (Ctrl+Shift+C)",
"copyCmdC": "Copy selection (Cmd+C)",
"pasteCtrlShiftV": "Paste from clipboard (Ctrl+Shift+V)",
"ctrlW": "Send Ctrl+W to shell (blocked from closing browser tab)",
"ctrlT": "Send Ctrl+T to shell (blocked from opening browser tab)",
"ctrlN": "Send Ctrl+N to shell (blocked from opening browser window)",
"ctrlQ": "Send Ctrl+Q to shell (blocked from quitting browser)"
}
},
"macros": {
"title": "Macros",
"description": "Run a saved series of commands in a terminal, and react to what the server sends back.",
"target": "Target",
"noTerminal": "No terminal open",
"empty": "No macros yet",
"emptyHint": "Create a macro to automate a terminal flow, like logging in, restarting a service, or answering prompts.",
"create": "New macro",
"back": "Back to macros",
"name": "Name",
"namePlaceholder": "Restart web server",
"nameRequired": "Give the macro a name before saving",
"descriptionLabel": "Description",
"descriptionPlaceholder": "What this macro does (optional)",
"unsaved": "Unsaved changes",
"save": "Save",
"saved": "Macro saved",
"saveFailed": "Could not save the macro",
"delete": "Delete",
"deleteTitle": "Delete this macro?",
"deleteBody": "\"{{name}}\" will be permanently deleted. This cannot be undone.",
"deleted": "Macro deleted",
"cancel": "Cancel",
"run": "Run",
"stop": "Stop",
"running": "Running...",
"completed": "Macro finished",
"failed": "Macro failed",
"loadFailed": "Could not load macros",
"needTerminal": "Open and connect a terminal first",
"noSteps": "This macro has no steps yet. Add one below.",
"addStep": "Add step",
"stepNumber": "Step {{number}}",
"removeStep": "Remove step",
"confirmRunTitle": "Run this macro?",
"confirmRunBody": "\"{{name}}\" will send commands to {{host}}.",
"confirmRunAction": "Run macro",
"stepTypes": {
"send": {
"label": "Send command",
"help": "Types text into the terminal, the same as if you typed it."
},
"wait": {
"label": "Wait for output",
"help": "Pauses until the server prints the text you name, like a password prompt."
},
"delay": {
"label": "Pause",
"help": "Waits a fixed amount of time before the next step."
},
"if": {
"label": "If output contains",
"help": "Checks everything the server has printed so far, then runs one of two branches."
},
"repeat": {
"label": "Repeat",
"help": "Runs the steps inside it a set number of times."
}
},
"send": {
"text": "Command or text",
"textPlaceholder": "systemctl restart nginx",
"pressEnter": "Press Enter after sending",
"pressEnterHelp": "Turn this off to type text without submitting it."
},
"wait": {
"pattern": "Wait until the output contains",
"patternPlaceholder": "password:",
"timeout": "Give up after",
"onTimeout": "If it never appears",
"stop": "Stop the macro",
"continue": "Keep going anyway"
},
"delay": {
"duration": "Wait for"
},
"ifStep": {
"pattern": "If the output contains",
"patternPlaceholder": "Active: active (running)",
"then": "Then do this",
"else": "Otherwise do this",
"emptyBranch": "No steps"
},
"repeat": {
"count": "Number of times",
"times": "times"
},
"match": {
"useRegex": "Match with a regular expression",
"useRegexHelp": "Leave this off to match the text exactly as written.",
"invalidRegex": "Not a valid regular expression, it will be matched as plain text"
},
"seconds": "seconds",
"secondsShort": "{{count}}s"
}
}