From c67f0739dc9359179b699aa3c5ba505bd28eba2b Mon Sep 17 00:00:00 2001 From: weinguyen Date: Sun, 9 Aug 2026 02:07:11 +0700 Subject: [PATCH] Add Shell Command plugin for launcher commands (#290) * Add Quick Shell plugin for launcher commands Introduces `/qs` launcher prefix to run shell commands in an interactive terminal. Features dynamic shell completions (Fish/Bash), command history, user snippets, and directory navigation. * Rename quick-shell plugin to shell command plugin * Update thumbnail.webp * Document shell dependencies and filter completions by current word Filter bash compgen completions to the current word being typed. Declare `sh`, `ls`, `fish`, and `bash` as plugin dependencies. --- shell-command/README.md | 123 ++++++++ shell-command/plugin.toml | 32 ++ shell-command/shell_provider.luau | 482 +++++++++++++++++++++++++++++ shell-command/thumbnail.webp | Bin 0 -> 67174 bytes shell-command/translations/en.json | 25 ++ shell-command/translations/vi.json | 25 ++ 6 files changed, 687 insertions(+) create mode 100644 shell-command/README.md create mode 100644 shell-command/plugin.toml create mode 100644 shell-command/shell_provider.luau create mode 100644 shell-command/thumbnail.webp create mode 100644 shell-command/translations/en.json create mode 100644 shell-command/translations/vi.json diff --git a/shell-command/README.md b/shell-command/README.md new file mode 100644 index 0000000..a904a57 --- /dev/null +++ b/shell-command/README.md @@ -0,0 +1,123 @@ +# Shell Command + +Run a shell command straight from the Noctalia launcher. Type `/sh` followed by +any command and press Enter to open it in your default terminal — a **real, +interactive shell** with live output, TUI apps, and your own native history. + +No hardcoded completion table: suggestions come from the shell's own completion +engine and your command history, so they stay in sync with what's actually on +your system. Commands run through your own `$SHELL` in interactive mode, so +aliases, functions and environment from your rc config are available. + +## Features + +- **Instant command run** — `/sh ls -la ~/projects` opens the command in your + default terminal. +- **Fish-style autosuggestions** — completions fetched live from Fish's + completion engine (`fish -c 'complete -C ""'`), falling back to bash + `compgen -c` when Fish isn't installed. Type `/sh git st` and get `git status`, + `git stash`, etc. Suggestions dynamically follow your system — no hardcoded + list to maintain. +- **Snap-complete** — when a prefix has exactly one completion, the "Run" entry + jumps to the completed command, so one Enter runs it instead of fill-then-run. +- **History** — previously run commands are remembered (per-plugin state, capped + at 100) and offered as you type, most recent first. +- **Snippets** — user-defined commands shown when `/sh` is typed with an empty + query. +- **Folder jump** — `/sh cd` lists subdirectories and lets you drill into nested + folders. Select the "Open in:" row to launch a terminal inside the current + directory. +- **Navigate and run in one launch** — `/sh cd ~/proj && make` changes into that + directory and runs the command, so tools open in the right folder. +- **Suggestion fills, explicit launch runs** — completion/history/snippet rows + fill the input (so you can keep typing or drill deeper); only "Run:" and + "Open in:" rows actually launch a terminal. +- **Stay-open terminal** — after a fast command (e.g. `git status`) the terminal + holds its output, shows a `[Press Enter to continue]` prompt, then drops you + into an interactive shell. +- **Workspace-aware** — when a default workspace is set, commands start in that + directory. + +## Plugin + +| Field | Value | +| --------------- | ----------------------------- | +| ID | `weinguyen/shell-command` | +| Entry | Launcher provider: `provider` | +| Launcher Prefix | `/sh` | + +## Requirements + +- Noctalia v5.0.0 or higher. +- `runInTerminal` needs a default terminal configured in Noctalia. +- A shell at `$SHELL` (falls back to `sh`). +- Optional: Fish (richer completions; falls back to bash otherwise). +- `ls` for the folder-jump listing. + +Declared in `plugin.toml` +`dependencies`: `sh`, `ls`, plus `fish` and `bash` for the completion fallback +(the user's own `$SHELL` at runtime is whatever shell they have configured). + +## Usage + +Open the launcher and type `/sh` followed by a command: + +``` +/sh +/sh ls -la ~/projects +/sh git status +``` + +Press Enter to run the command in your default terminal. + +With an empty query, recent commands and configured snippets are offered. As you +type a command, suggestions from the shell's completion engine appear under the +exact command you typed. Selecting a suggestion fills the input; run the filled +command by pressing Enter again (or use snap-complete when only one completion +matches). + +### Navigate inside a folder first + +``` +/sh cd # list top-level folders +/sh cd proj # list folders starting with "proj" +/sh cd ~/Builds/ # list everything directly inside ~/Builds +``` + +Folder rows let you drill deeper (each selection fills the path with a trailing +slash so you can keep going). The top "Open in:" row launches a terminal inside +the current parent directory. + +### Run a command in a directory + +``` +/sh cd ~/Builds && make +``` + +Navigates into `~/Builds` and runs `make` there. Paths may contain spaces, +quotes and `\ ` escapes. + +## Settings + +| Setting | Type | Default | Description | +| ------------------- | ------------- | ------- | ------------------------------------------------------------------------------- | +| `default_workspace` | `folder` | `""` | Working directory commands (and the `cd` listing) start in. Empty uses `$HOME`. | +| `snippets` | `string_list` | `[]` | Commands shown when `/sh` is typed with an empty query. | + +## Notes + +- Commands run in a real interactive terminal, so tools like `vim`, `htop` and + `tmux` work normally. +- Commands execute via `$SHELL -ic`, so aliases and functions from your rc + config are available. Note that completion — not alias expansion — is what + powers suggestions; an alias defined only transitively may still need its + underlying command. +- Completion suggestions update dynamically as Fish completions and installed + binaries change — there is no hardcoded list to maintain. +- History is stored per-plugin (XDG state directory), capped at 100 entries, + deduplicated, most recent command first. + +## Development + +- `shell_provider.luau` — the launcher provider entry. +- `translations/en.json`, `translations/vi.json` — user-facing strings. diff --git a/shell-command/plugin.toml b/shell-command/plugin.toml new file mode 100644 index 0000000..d9b54f2 --- /dev/null +++ b/shell-command/plugin.toml @@ -0,0 +1,32 @@ +id = "weinguyen/shell-command" +name = "Shell Command" +version = "0.1.0" +plugin_api = 3 +author = "weinguyen" +license = "MIT" +icon = "terminal" +description = "Run a shell command from the launcher. Type /sh then command open it your default terminal." +tags = ["launcher", "productivity", "development"] +dependencies = ["bash", "fish", "ls", "sh"] + +[[setting]] +key = "default_workspace" +type = "folder" +default = "" +label_key = "settings.default_workspace.label" +description_key = "settings.default_workspace.description" + +[[setting]] +key = "snippets" +type = "string_list" +default = [] +label_key = "settings.snippets.label" +description_key = "settings.snippets.description" + +[[launcher_provider]] +id = "provider" +entry = "shell_provider.luau" +prefix = "sh" +glyph = "terminal" +include_in_global_search = false +debounce_ms = 150 diff --git a/shell-command/shell_provider.luau b/shell-command/shell_provider.luau new file mode 100644 index 0000000..f1f0cd4 --- /dev/null +++ b/shell-command/shell_provider.luau @@ -0,0 +1,482 @@ +-- Shell Command launcher provider. +-- +-- Type `/sh ` in the launcher to run a shell command in your default +-- terminal. Fish-style autosuggestions: as you type it queries the shell's own +-- completion engine (`fish -c 'complete -C ""'`, falling back to bash +-- `compgen -c`) so suggestions grow dynamically with your system — no hardcoded +-- list. Commands from your own history and user-defined snippets are offered +-- too. A `cd` mode lists folders so you can open a terminal in a chosen +-- directory. Selecting any entry opens it in a real terminal (via +-- noctalia.runInTerminal), so you get a full shell with live output, TUI apps, +-- and native history. + +local HISTORY_FILE = "history" +local HISTORY_LIMIT = 100 +local MAX_SUGGESTIONS = 8 + +local history = {} + +local function shellQuote(s) + return "'" .. s:gsub("'", "'\"'\"'") .. "'" +end + +local function trim(s) + return noctalia.string.trim(tostring(s or "")) +end + +-- Private per-plugin storage (XDG state); the host creates the directory on +-- every call. nil (with a log line) when no state directory resolves. +local function dataDir() + local dir, err = noctalia.pluginDataDir() + if dir == nil then + noctalia.log("shell-command: pluginDataDir failed: " .. tostring(err)) + return nil + end + return dir +end + +local function loadHistory() + local dir = dataDir() + if dir == nil then + return + end + local raw = noctalia.readFile(dir .. "/" .. HISTORY_FILE) + if type(raw) ~= "string" or raw == "" then + return + end + history = {} + for line in raw:gmatch("[^\r\n]+") do + line = trim(line) + if line ~= "" then + history[#history + 1] = line + end + end +end + +local function saveHistory() + local dir = dataDir() + if dir == nil then + return + end + local ok, err = noctalia.writeFile(dir .. "/" .. HISTORY_FILE, table.concat(history, "\n")) + if not ok then + noctalia.log("shell-command: could not persist history: " .. tostring(err)) + end +end + +-- Record a run command: move it to the front (most recent), dedupe, cap size. +local function recordHistory(cmd) + for i, entry in ipairs(history) do + if entry == cmd then + table.remove(history, i) + break + end + end + table.insert(history, 1, cmd) + if #history > HISTORY_LIMIT then + for _ = HISTORY_LIMIT + 1, #history do + table.remove(history) + end + end + saveHistory() +end + +-- Build the command actually launched in the terminal. +-- +-- If the query itself is a `cd && ` compound, we cd into `` +-- instead of the workspace — that way navigation and a command can be combined +-- in one launch (`/sh cd ~/proj && ls`). Otherwise, if a default workspace is +-- configured, cd there first. +-- +-- Commands run through the user's own `$SHELL` (not `sh`), so aliases, +-- shell functions and environment from the login shell are available. The +-- command is wrapped so the terminal stays open after it finishes (a fast +-- command like `git status` would otherwise close the window before you can +-- read the output). We hold the output on screen with `read`, then drop into a +-- fresh interactive shell so the user can keep typing — exec'ing the shell +-- directly clears the result before it can be read. +-- Wrap a command in the terminal-held-open wrapper and run it via the user's +-- own interactive shell (`$SHELL -ic`) so aliases and functions from the +-- login/rc config are available — a bare `-c` ignores them and breaks things +-- like fish aliases. After the command we `exec $SHELL` into a fresh +-- interactive shell. +local function buildLaunch(inner) + local shell = noctalia.getenv("SHELL") or "sh" + -- `-ic`: user's rc config/aliases load. Alias-safe `read` (fish shows an + -- ugly `read>` prompt interactively — use the silent `-s`/`-l` variant; bash + -- and zsh `read` are silent already and have no such prompt) holds the + -- output until Enter, then we exec a fresh interactive shell that stays open. + local base = shell:match("([^/]+)$") or "sh" + local readCmd = (base == "fish") and "read -l -s __x" or "read __x" + local printfPrompt = "printf '%s\\n' '[Press Enter to continue] [Ctrl+C to Close]'" + return shell .. " -ic " .. shellQuote(inner .. "; " .. printfPrompt .. "; " .. readCmd .. "; exec $SHELL") +end + +local function buildCommand(cmd) + local inner = cmd + -- Try to split a leading `cd && ` compound, honouring quoted + -- paths, spaces and `\ ` escapes inside the directory argument. + local dir = cmd:match("^%s*cd%s+(.+)$") + if dir then + local i, n = 1, #dir + local out = {} + local quote + local done + while i <= n do + local c = dir:sub(i, i) + if quote then + if c == quote then + quote = nil + elseif c == "\\" and i < n then + out[#out + 1] = dir:sub(i + 1, i + 1) + i = i + 1 + else + out[#out + 1] = c + end + elseif c == '"' or c == "'" then + quote = c + elseif c == " " then + done = true + break + else + out[#out + 1] = c + end + i = i + 1 + end + if not done then + i = n + 1 -- path ran to end; nothing appended + end + local rest = dir:sub(i):match("^%s*&&%s*(.+)$") + if #out > 0 and rest then + local path = table.concat(out) + local abs = path:gsub("^~/+", (noctalia.getenv("HOME") or "/") .. "/") + inner = "cd " .. shellQuote(abs) .. " && " .. rest + else + inner = cmd + end + else + local cwd = noctalia.getConfig("default_workspace") + if type(cwd) == "string" and cwd ~= "" then + inner = "cd " .. shellQuote(cwd) .. " && " .. cmd + end + end + -- Run through the user's own interactive shell (`-ic`) so aliases and + -- functions from the login/rc config are available, not just `-c` which + -- ignores them. The wrapper is a real terminal so it's interactive-stable; + -- after the command we `exec $SHELL` into a fresh interactive shell. + return buildLaunch(inner) +end + +-- Open a terminal directly inside a chosen directory (no command to run). +local function buildCdCommand(path) + -- Also interactive so aliases work inside the opened shell. + return buildLaunch("cd " .. shellQuote(path)) +end + +-- The first token of the command, used to detect whether the binary exists. +local function firstToken(cmd) + local token = cmd:match("^%s*([^%s]+)") + return token or "" +end + +local function runEntry(cmd, subtitle) + return { + id = "run:" .. cmd, + title = noctalia.tr("run_title", { command = cmd }), + subtitle = subtitle, + glyph = "terminal", + } +end + +-- Rebuild the full command from a completion token. The completion engine +-- returns only the token being completed, so we re-attach the typed prefix. +local function fullCommand(query, comp) + local prefix = query:match("^(.*%s)") or "" + return prefix .. comp +end + +-- Parse `fish -c 'complete -C ""'` output: one completion per line, +-- optionally `completiondescription`. We keep the completion token. +local function parseFish(output) + local comps = {} + for line in (tostring(output or "") .. "\n"):gmatch("(.-)\n") do + line = trim(line) + if line ~= "" then + local comp = line:match("^([^\t]+)") + if comp and comp ~= "" then + comps[#comps + 1] = comp + end + end + end + return comps +end + +-- Parse `compgen -c` output: one command name per line. +local function parseCompgen(output) + local comps = {} + for line in (tostring(output or "") .. "\n"):gmatch("(.-)\n") do + line = trim(line) + if line ~= "" then + comps[#comps + 1] = line + end + end + return comps +end + +-- Query the shell's completion engine for the typed prefix. Prefers fish +-- (full subcommand/flag completions); falls back to bash `compgen -c` for +-- command names when fish is unavailable. +local function fetchCompletions(query, callback) + if noctalia.commandExists("fish") then + noctalia.runAsync("fish -c " .. shellQuote("complete -C " .. shellQuote(query)), function(result) + callback(parseFish(result.stdout)) + end) + return + end + if noctalia.commandExists("bash") then + local word = query:match("([^%s]+)%s*$") or "" + noctalia.runAsync("bash -c " .. shellQuote("compgen -c " .. shellQuote(word)), function(result) + callback(parseCompgen(result.stdout)) + end) + return + end + callback({}) +end + +-- List subdirectories of the cd root (default workspace, else $HOME) so the +-- user can open a terminal inside a chosen folder. Uses `ls -d */` (fast, one +-- level) rather than `find`, which can crawl slowly over a large home dir. +-- Expand leading ~ and join a relative path onto the workspace base so +-- breadcrumb navigation works from any spelling: `~/Builds`, `Builds`, +-- `/abs/path`. Trailing slash preserved. Returns an absolute path. +local function resolvePath(p) + local base = noctalia.getConfig("default_workspace") + if type(base) ~= "string" or base == "" then + base = noctalia.getenv("HOME") or "/" + end + if type(p) ~= "string" or (p:match("^%s*$")) then + return base + end + p = p:gsub("^~/+", (noctalia.getenv("HOME") or "/") .. "/") + if p:sub(1, 1) ~= "/" then + -- Relative (or empty) — resolve against workspace base. + p = base .. "/" .. p:gsub("^/+", "") + end + return p +end + +-- List subdirectories to navigate into, breadcrumb-style. The query after +-- `cd` is a path you're halfway through typing: the parent directory is listed +-- and the typed prefix filters it. Selecting a folder fills the input with that +-- path (cd:/), letting you drill deeper or continue typing. +-- +-- /sh cd -> list top-level dirs of the workspace +-- /sh cd proj -> list workspace dirs starting with "proj" +-- /sh cd ~/Builds -> list ~/Builds sub-entries starting with the rest +-- /sh cd ~/Builds/ -> list everything directly inside ~/Builds +local function listDirs(query) + local pathPart = query:match("^cd%s*(.*)$") or "" + + local parent, prefix + if pathPart == "" then + -- Root of the workspace, and nothing typed to drill before it. + parent, prefix = resolvePath(""), "" + elseif pathPart:match("[/]$") then + -- Ends with a slash: navigate into an existing directory. + parent, prefix = resolvePath(pathPart), "" + else + local slash = pathPart:match("^.*/") + if slash then + -- Mid-path: split at the last slash into parent + typed prefix. + local base2 = resolvePath(slash:gsub("/$", "")) + parent = base2 + prefix = pathPart:sub(#slash + 1):gsub("^%s", "") + else + -- Bare first segment — resolve against base, prefix is the whole pathPart. + parent, prefix = resolvePath(""), pathPart + end + end + + local dirs = {} + local names = noctalia.listDir(parent) or {} + table.sort(names) + for _, name in ipairs(names) do + if name ~= "." and name ~= ".." and (prefix == "" or name:sub(1, #prefix) == prefix) then + local info = noctalia.fileInfo(parent .. "/" .. name) + if info and info.isDir then + dirs[#dirs + 1] = { path = parent .. "/" .. name, name = name } + end + end + end + return dirs, parent +end + +local pendingQuery = nil + +function onQuery(query) + query = trim(query) + pendingQuery = query + + if query == "" then + -- Empty query: hint, then user snippets, then recent commands. + local results = { + { + id = "", + title = noctalia.tr("hint_title"), + subtitle = noctalia.tr("hint_subtitle"), + glyph = "terminal", + }, + } + local snippets = noctalia.getConfig("snippets") + if type(snippets) == "table" then + for _, snippet in ipairs(snippets) do + snippet = trim(snippet) + if snippet ~= "" then + results[#results + 1] = { + id = "fill:" .. snippet, + title = snippet, + subtitle = noctalia.tr("snippet_subtitle"), + glyph = "bookmark", + } + end + end + end + for i = 1, math.min(MAX_SUGGESTIONS, #history) do + results[#results + 1] = { + id = "fill:" .. history[i], + title = history[i], + subtitle = noctalia.tr("history_subtitle"), + glyph = "history", + } + end + launcher.setResults(query, results) + return + end + + -- cd mode: breadcrumb folder navigation. Folder rows fill input with + -- trailing-slash path (`fill:`) so Enter drills one level deeper and can + -- keep going. First "Open in:" row launches terminal directly in the + -- current parent dir (`cdgo:`). + -- A `cd && ` compound launches a real command (navigation + + -- execution), not folder navigation. Skip the cd branch so it reaches the + -- run path, where buildCommand parses and executes it. + local isCompound = query:match("^%s*cd%s+.+&&.+$") + + if not isCompound and (query == "cd" or query:match("^cd%s")) then + local dirs, parent = listDirs(query) + local results = {} + results[#results + 1] = { + id = "cdgo:" .. parent, + title = noctalia.tr("cd_open_title", { path = parent }), + subtitle = noctalia.tr("cd_open_subtitle"), + glyph = "folder-open", + } + for _, dir in ipairs(dirs) do + results[#results + 1] = { + id = "fill:cd " .. dir.path .. "/", + title = dir.name, + subtitle = dir.path, + glyph = "folder", + } + end + if #dirs == 0 then + results[#results + 1] = { + id = "", + title = noctalia.tr("cd_empty"), + subtitle = noctalia.tr("cd_empty_subtitle"), + glyph = "folder", + } + end + launcher.setResults(query, results) + return + end + + local token = firstToken(query) + local subtitle = noctalia.tr("run_subtitle") + if token ~= "" and noctalia.commandExists(token) then + subtitle = noctalia.tr("run_subtitle_found", { command = token }) + end + + -- Show the exact command immediately, then fill in suggestions async. + launcher.setResults(query, { runEntry(query, subtitle) }) + + fetchCompletions(query, function(comps) + if pendingQuery ~= query then + return -- a newer query superseded this one + end + local results = { runEntry(query, subtitle) } + -- Snap-complete: a single distinct expanding candidate (a completion that + -- actually extends the typed text) becomes the one Enter action — run the + -- completed command directly without first picking a fill row. Multiple + -- candidates: keep normal suggestions. Uses its own seen-table so the + -- suggestion pass below still emits the full list. + local seenScan, single, count = { [query] = true }, nil, 0 + for _, comp in ipairs(comps) do + local full = fullCommand(query, comp) + if full ~= query and not seenScan[full] then + seenScan[full] = true + single, count = full, count + 1 + end + end + if count == 1 and single then + results = { runEntry(single, noctalia.tr("snap_subtitle", { command = single })) } + end + local seen = { [query] = true } + for _, comp in ipairs(comps) do + local full = fullCommand(query, comp) + if not seen[full] then + seen[full] = true + results[#results + 1] = { + id = "fill:" .. full, + title = full, + subtitle = noctalia.tr("suggest_subtitle"), + glyph = "lightbulb", + } + end + if #results >= 1 + MAX_SUGGESTIONS then + break + end + end + -- History matches, ranked after shell completions. + for _, cmd in ipairs(history) do + if cmd:sub(1, #query) == query and not seen[cmd] then + seen[cmd] = true + results[#results + 1] = { + id = "fill:" .. cmd, + title = cmd, + subtitle = noctalia.tr("history_subtitle"), + glyph = "history", + } + end + if #results >= 1 + MAX_SUGGESTIONS then + break + end + end + launcher.setResults(query, results) + end) +end + +function onActivate(id) + if id == "" then + return + end + + local kind, value = id:match("^(%a+):(.+)$") + if not kind or not value then + noctalia.log("shell-command: onActivate received malformed id: " .. tostring(id)) + return + end + + if kind == "fill" then + launcher.setQuery(value) + elseif kind == "run" then + recordHistory(value) + noctalia.runInTerminal(buildCommand(value)) + elseif kind == "cdgo" then + noctalia.runInTerminal(buildCdCommand(value)) + else + noctalia.log("shell-command: unknown activation kind: " .. kind) + end + end + +loadHistory() diff --git a/shell-command/thumbnail.webp b/shell-command/thumbnail.webp new file mode 100644 index 0000000000000000000000000000000000000000..0c97816e98128ec569d391a9221c944c0afb79a3 GIT binary patch literal 67174 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 literal 0 HcmV?d00001 diff --git a/shell-command/translations/en.json b/shell-command/translations/en.json new file mode 100644 index 0000000..51a48f1 --- /dev/null +++ b/shell-command/translations/en.json @@ -0,0 +1,25 @@ +{ + "hint_title": "Run a shell command", + "hint_subtitle": "Type a command after /sh and press Enter to open it in your terminal", + "run_title": "Run: {command}", + "run_subtitle": "Opens in your default terminal", + "run_subtitle_found": "{command} found — opens in your default terminal", + "history_subtitle": "Recent command", + "suggest_subtitle": "Suggestion", + "snap_subtitle": "Complete: {command} — Enter to run", + "snippet_subtitle": "Snippet", + "cd_open_title": "Open in: {path}", + "cd_open_subtitle": "Opens terminal in this folder", + "cd_empty": "No folders found", + "cd_empty_subtitle": "Type path or check workspace setting", + "settings": { + "default_workspace": { + "label": "Default Workspace", + "description": "Working directory commands run in. Leave empty to use the terminal's current directory." + }, + "snippets": { + "label": "Snippets", + "description": "Commands shown when /sh is empty. Each entry is one command." + } + } +} diff --git a/shell-command/translations/vi.json b/shell-command/translations/vi.json new file mode 100644 index 0000000..750cdf9 --- /dev/null +++ b/shell-command/translations/vi.json @@ -0,0 +1,25 @@ +{ + "hint_title": "Chạy lệnh shell", + "hint_subtitle": "Gõ lệnh sau /sh rồi nhấn Enter để mở trong terminal", + "run_title": "Chạy: {command}", + "run_subtitle": "Mở trong terminal mặc định", + "run_subtitle_found": "Tìm thấy {command} — mở trong terminal mặc định", + "history_subtitle": "Lệnh gần đây", + "suggest_subtitle": "Gợi ý", + "snap_subtitle": "Hoàn tất: {command} — Enter để chạy", + "snippet_subtitle": "Snippet", + "cd_open_title": "Mở trong: {path}", + "cd_open_subtitle": "Mở terminal trong thư mục này", + "cd_empty": "Không tìm thấy thư mục", + "cd_empty_subtitle": "Gõ đường dẫn hoặc kiểm tra cài đặt workspace", + "settings": { + "default_workspace": { + "label": "Thư mục làm việc", + "description": "Thư mục lệnh chạy trong đó. Để trống dùng thư mục hiện tại của terminal." + }, + "snippets": { + "label": "Snippets", + "description": "Lệnh hiện khi /sh trống. Mỗi mục là một lệnh." + } + } +}