* Add `cmux omo` command for OpenCode + oh-my-openagent integration Same pattern as `cmux claude-teams`: creates a tmux shim so oh-my-openagent's TmuxSessionManager spawns agents as native cmux splits instead of tmux panes. Sets TMUX/TMUX_PANE env vars, prepends shim to PATH, and execs into opencode. Closes https://github.com/manaflow-ai/cmux/issues/2085 * Auto-install oh-my-opencode plugin when running cmux omo Before launching opencode, cmux omo now: - Checks if oh-my-opencode is registered in ~/.config/opencode/opencode.json - If not, creates/updates the config with the plugin entry - Checks if the npm package is installed in node_modules - If not, runs bun add (or npm install) to install it - Then proceeds with tmux shim setup and exec * Use shadow config dir to avoid modifying user's opencode setup Instead of writing directly to ~/.config/opencode/opencode.json, cmux omo now creates a shadow config at ~/.cmuxterm/omo-config/ that layers oh-my-opencode on top of the user's existing config. Symlinks node_modules, package.json, bun.lock, and plugin config from the original dir. Sets OPENCODE_CONFIG_DIR to the shadow directory. Running plain `opencode` remains unaffected. * Add Agent Integrations docs section with Claude Code Teams and oh-my-opencode pages Adds sectioned sidebar navigation to the docs site. The new Agent Integrations section contains separate pages for cmux claude-teams and cmux omo, documenting usage, tmux shim mechanics, directory layout, environment variables, and the shadow config approach. Both pages include a nightly-only warning. Full English and Japanese translations, nav item keys added to all 19 locales. * Remove uppercase from sidebar section headers * Add more spacing above and below sidebar section headers * Enable tmux mode in oh-my-opencode config, improve docs - cmux omo now writes tmux.enabled=true to the shadow oh-my-opencode.json config. Without this, oh-my-openagent's TmuxSessionManager won't spawn visual panes even though $TMUX is set (the config defaults to false). - Nightly warnings now link to /nightly instead of generic text. - Added "What you get" section to oh-my-opencode docs explaining the visual pane behavior (auto-layout, idle cleanup, queueing). - Added tmux.enabled step to first-run and how-it-works sections. * Add terminal-notifier shim to route oh-my-openagent notifications to cmux oh-my-openagent sends macOS notifications via terminal-notifier (args: -title <t> -message <m> [-activate <id>]). The shim in ~/.cmuxterm/omo-bin/terminal-notifier intercepts these calls and routes them through cmux notify, so notifications appear in cmux's sidebar panel instead of as raw macOS notifications. * Add pane geometry to tmux-compat for oh-my-openagent grid planning oh-my-openagent's TmuxSessionManager needs pane geometry (columns, rows, position, window dimensions) to decide where to spawn agent panes. Without this data, agents run headlessly. Server side: - pane.list v2 response now includes pixel_frame, cell_size, columns, rows per pane, plus container_frame at the top level - Uses BonsplitController.layoutSnapshot() for pixel geometry and ghostty_surface_size() for terminal grid dimensions CLI side: - tmuxEnrichContextWithGeometry() computes character-cell positions from pixel frames and cell dimensions for tmux format variables (pane_width, pane_height, pane_left, pane_top, pane_active, window_width, window_height) - list-panes now resolves pane targets (%uuid) via tmuxResolvePaneTarget instead of failing with "Workspace not found" - display-message enriched with geometry for format strings like #{pane_width},#{window_width} - tmux -V now returns "tmux 3.4" (needed by oh-my-openagent's tmux-path-resolver verification) * Add socket tests for tmux-compat pane geometry 6 tests verifying the geometry enrichment works end-to-end: - pane.list returns pixel_frame, columns, rows, cell_size, container_frame - tmux -V returns version string - list-panes -F renders geometry format variables as integers - list-panes -t %<uuid> resolves pane targets - display -p renders pane_width and window_width - After split, two panes have different positions and halved widths All 6 pass on macmini (cmux-macmini). * Handle tmux -V in shim script directly (no socket needed) oh-my-openagent's tmux-path-resolver runs tmux -V to verify the binary works. The __tmux-compat handler requires a socket connection, which may not be established at verification time. Handle -V in the bash shim directly to avoid the socket dependency. * Lower default tmux pane min widths for cmux omo oh-my-openagent defaults: main_pane_min_width=120, agent_pane_min_width=40, requiring 161+ columns. Most terminal windows are narrower, causing decideSpawnActions to return canSpawn=false and defer agents forever. cmux omo now sets: main_pane_min_width=60, agent_pane_min_width=30, main_pane_size=50, requiring only 91 columns. Also moved tmux -V handling into the bash shim to avoid needing a socket connection for the version check. * Resolve merge conflicts with main (main-vertical layout, focus param) - Keep upstream main-vertical layout anchoring from #2119 - Keep upstream focus param (v2Bool) instead of no_focus - Combine with our -d flag handling: -d sets focus=false - Include customCommands nav item from main * Implement select-layout equalize and resize-pane absolute width When oh-my-openagent spawns agent panes, it calls select-layout main-vertical after each split to redistribute panes evenly, then resize-pane -x <columns> to set the main pane width. Both were previously no-ops, causing cascading uneven splits. Server side: - Add workspace.equalize_splits v2 API that calls the existing TabManager.equalizeSplits (sets all dividers to 0.5) CLI side: - select-layout now calls workspace.equalize_splits before tracking main-vertical state - resize-pane -x <columns> without directional flags now computes the pixel delta from current to desired width and resizes accordingly * Fix equalize to use proportional divider positions The previous equalize set all dividers to 0.5, which in a right- recursive binary tree (from successive splits) gives 50/25/12.5/6.25% instead of equal sizes. New algorithm counts leaf panes on each side of each split and sets the divider to N_left / (N_left + N_right). For 5 panes in a chain: 1/5, 1/4, 1/3, 1/2, giving each pane exactly 20%. * Fix select-layout main-vertical to only equalize vertical splits The proportional equalize was treating the top-level horizontal split (main vs agent column) the same as vertical splits, setting the main pane to 1/6 of the window with 5 agents. For main-vertical layout, only equalize vertical splits (the agent column), leaving the horizontal main/agent divider untouched. The subsequent resize-pane -x handles the main pane width. workspace.equalize_splits now accepts an optional orientation filter ("vertical" or "horizontal") to scope which splits get equalized. * Re-equalize agent column after kill-pane * Address PR review comments - Fix cmux omo --help: remove omo from the help-bypass guard so --help shows usage text instead of trying to launch opencode - Don't overwrite unreadable opencode.json: fail with an error instead of silently resetting to empty config - Drain installer pipes concurrently before waitUntilExit to prevent deadlock from full pipe buffers during bun/npm install --------- Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
670 lines
47 KiB
JSON
670 lines
47 KiB
JSON
{
|
||
"meta": {
|
||
"title": "cmux — Il terminale progettato per il multitasking",
|
||
"description": "Terminale macOS nativo basato su Ghostty. Funziona con Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider e qualsiasi strumento CLI. Tab verticali, anelli di notifica, pannelli divisi e un API socket.",
|
||
"ogDescription": "Terminale macOS nativo per agenti di codice IA. Funziona con Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider e qualsiasi strumento CLI."
|
||
},
|
||
"common": {
|
||
"downloadForMac": "Scarica per Mac",
|
||
"viewOnGitHub": "Vedi su GitHub",
|
||
"closeMenu": "Chiudi menu",
|
||
"openMenu": "Apri menu",
|
||
"toggleTheme": "Cambia tema",
|
||
"backToBlog": "Torna al blog",
|
||
"readTheDocs": "Leggi la documentazione",
|
||
"viewChangelog": "Vedi il changelog"
|
||
},
|
||
"nav": {
|
||
"docs": "Docs",
|
||
"blog": "Blog",
|
||
"changelog": "Changelog",
|
||
"community": "Community",
|
||
"github": "GitHub"
|
||
},
|
||
"footer": {
|
||
"product": "Prodotto",
|
||
"resources": "Risorse",
|
||
"legal": "Note legali",
|
||
"social": "Social",
|
||
"blog": "Blog",
|
||
"community": "Community",
|
||
"docs": "Docs",
|
||
"changelog": "Changelog",
|
||
"privacy": "Privacy",
|
||
"terms": "Termini",
|
||
"eula": "EULA",
|
||
"github": "GitHub",
|
||
"twitter": "X / Twitter",
|
||
"discord": "Discord",
|
||
"contact": "Contatti",
|
||
"nightly": "Nightly",
|
||
"copyright": "© {year} Manaflow",
|
||
"language": "Lingua"
|
||
},
|
||
"home": {
|
||
"taglinePrefix": "Il terminale progettato per ",
|
||
"typingCodingAgents": "agenti di codice",
|
||
"typingMultitasking": "multitasking",
|
||
"subtitle": "App macOS nativa basata su Ghostty. Tab verticali, notifiche quando gli agenti hanno bisogno di attenzione, pannelli divisi e un'API socket per l'automazione.",
|
||
"features": "Funzionalità",
|
||
"faq": "FAQ",
|
||
"communitySection": "Community",
|
||
"feature": {
|
||
"verticalTabs": "Tab verticali",
|
||
"verticalTabsDesc": ": la barra laterale mostra il branch git, la directory di lavoro, le porte e il testo delle notifiche",
|
||
"notificationRings": "Anelli di notifica",
|
||
"notificationRingsDesc": ": i pannelli si illuminano quando gli agenti hanno bisogno di attenzione",
|
||
"inAppBrowser": "Browser integrato",
|
||
"inAppBrowserDesc": ": apri un browser accanto al terminale con un'API scriptable",
|
||
"splitPanes": "Pannelli divisi",
|
||
"splitPanesDesc": ": divisioni orizzontali e verticali all'interno di ogni tab",
|
||
"scriptable": "Scriptable",
|
||
"scriptableDesc": ": CLI e API socket per automazione e scripting",
|
||
"gpuAccelerated": "Accelerazione GPU",
|
||
"gpuAcceleratedDesc": ": alimentato da libghostty per un rendering fluido",
|
||
"lightweight": "Leggero",
|
||
"lightweightDesc": ": Swift + AppKit nativo, senza Electron",
|
||
"keyboardShortcuts": "Scorciatoie da tastiera",
|
||
"keyboardShortcutsDesc": ": <link>scorciatoie complete</link> per workspace, divisioni, browser e altro"
|
||
},
|
||
"faqGhosttyQ": "Qual è il rapporto tra cmux e Ghostty?",
|
||
"faqGhosttyA": "cmux non è un fork di Ghostty. Utilizza <link>libghostty</link> come libreria per il rendering del terminale, allo stesso modo in cui le app usano WebKit per le viste web. Ghostty è un terminale autonomo; cmux è un'app diversa costruita sul suo motore di rendering.",
|
||
"faqPlatformQ": "Quali piattaforme supporta?",
|
||
"faqPlatformA": "Solo macOS, per ora. cmux è un'app nativa Swift + AppKit.",
|
||
"faqAgentsQ": "Con quali agenti di codice funziona cmux?",
|
||
"faqAgentsA": "Tutti. cmux è un terminale, quindi qualsiasi agente che funziona in un terminale funziona immediatamente: Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider, Goose, Amp, Cline, Cursor Agent, e qualsiasi altro strumento lanciabile dalla riga di comando.",
|
||
"faqNotificationsQ": "Come funzionano le notifiche?",
|
||
"faqNotificationsA": "Quando un processo ha bisogno di attenzione, cmux mostra anelli di notifica attorno ai pannelli, badge non letti nella barra laterale, un popover di notifica e una notifica desktop macOS. Si attivano automaticamente tramite le sequenze di escape standard del terminale (OSC 9/99/777), oppure puoi attivarle con il <cliLink>CLI cmux</cliLink> e gli <hooksLink>hook di Claude Code</hooksLink>.",
|
||
"faqShortcutsQ": "Posso personalizzare le scorciatoie da tastiera?",
|
||
"faqShortcutsA": "Le combinazioni di tasti del terminale sono lette dal file di configurazione Ghostty (<configPath>~/.config/ghostty/config</configPath>). Le scorciatoie specifiche di cmux (workspace, divisioni, browser, notifiche) possono essere personalizzate nelle Impostazioni. Vedi le <link>scorciatoie predefinite</link> per l'elenco completo.",
|
||
"faqTmuxQ": "Come si confronta con tmux?",
|
||
"faqTmuxA": "tmux è un multiplexer di terminali che funziona all'interno di qualsiasi terminale. cmux è un'app macOS nativa con interfaccia grafica: tab verticali, pannelli divisi, browser integrato e API socket sono tutti integrati. Nessun file di configurazione o tasti prefisso necessari.",
|
||
"faqFreeQ": "cmux è gratuito?",
|
||
"faqFreeA": "Sì, cmux è gratuito. Il codice sorgente è disponibile su <link>GitHub</link>."
|
||
},
|
||
"community": {
|
||
"title": "Community",
|
||
"description": "Connettiti con altri utenti cmux e il team che lo sviluppa.",
|
||
"discord": "Discord",
|
||
"discordAction": "Unisciti al nostro Discord",
|
||
"discordDesc": "Chatta con la community, ottieni aiuto e condividi feedback",
|
||
"githubAction": "Vedi su GitHub",
|
||
"githubDesc": "Metti una stella, segnala problemi e contribuisci",
|
||
"twitter": "Twitter",
|
||
"twitterAction": "Segui su X",
|
||
"twitterDesc": "Aggiornamenti, annunci e suggerimenti",
|
||
"youtube": "YouTube",
|
||
"youtubeAction": "Iscriviti",
|
||
"youtubeDesc": "Demo, tutorial e guide",
|
||
"linkedin": "LinkedIn",
|
||
"linkedinAction": "Seguici",
|
||
"linkedinDesc": "Notizie aziendali e aggiornamenti tecnici",
|
||
"metaTitle": "Community — cmux",
|
||
"metaDescription": "Unisciti alla community cmux su Discord, Twitter, GitHub e altro"
|
||
},
|
||
"blog": {
|
||
"title": "Blog",
|
||
"layoutTitle": "cmux blog",
|
||
"metaTitle": "Blog",
|
||
"metaDescription": "Notizie e aggiornamenti dal team cmux",
|
||
"description": "Notizie e aggiornamenti dal team cmux",
|
||
"posts": {
|
||
"cmdShiftU": {
|
||
"title": "Cmd+Shift+U",
|
||
"summary": "Come Cmd+Shift+U permette di navigare tra gli agenti completati nei diversi workspace di cmux.",
|
||
"date": "4 marzo 2026",
|
||
"p1": "La mia funzionalità preferita di cmux è Cmd+Shift+U. Ho 17 workspace aperti in questo momento, ognuno con un agente in esecuzione. Prima cliccavo tra i tab e il pannello notifiche per capire cosa fosse completato. Digitare è più veloce.",
|
||
"p2": "Cmd+Shift+U salta alla <link>notifica</link> non letta più recente. In pratica significa l'ultimo agente che ha terminato. Passa al workspace giusto, mette a fuoco il pannello esatto, lo fa lampeggiare per mostrarti dove guardare e lo segna come letto. Se la notifica proviene da un'altra finestra, quella finestra viene portata in primo piano."
|
||
},
|
||
"zenOfCmux": {
|
||
"title": "La filosofia di cmux",
|
||
"summary": "cmux è un elemento base, non una soluzione. Ti dà pezzi componibili e il tuo workflow è una tua scelta.",
|
||
"date": "27 febbraio 2026",
|
||
"p1": "cmux non prescrive ai developer come usare i propri strumenti. È un terminale e un browser con un CLI, il resto dipende da te.",
|
||
"p2": "cmux è un elemento base, non una soluzione. Ti dà un terminale, un browser, notifiche, workspace, divisioni, tab e un CLI per controllare tutto. cmux non ti obbliga a usare gli agenti di codice in un modo specifico. Quello che costruisci con questi elementi è tuo.",
|
||
"p3": "I migliori developer hanno sempre costruito i propri strumenti. Nessuno ha ancora trovato il modo migliore per lavorare con gli agenti, e i team che costruiscono prodotti chiusi sicuramente nemmeno. I developer più vicini alle proprie codebase lo troveranno per primi.",
|
||
"p4": "Dai a un milione di developer elementi componibili e troveranno collettivamente i workflow più efficienti più velocemente di qualsiasi team di prodotto potrebbe progettare dall'alto."
|
||
},
|
||
"showHnLaunch": {
|
||
"title": "Lancio di cmux su Show HN",
|
||
"summary": "cmux ha raggiunto il 2° posto su Hacker News, è stato condiviso da Mitchell Hashimoto ed è diventato virale in Giappone.",
|
||
"date": "21 febbraio 2026",
|
||
"intro": "Abbiamo pubblicato cmux su <link>Show HN</link> il 19 febbraio:",
|
||
"blockquote1": "Eseguo molte sessioni Claude Code e Codex in parallelo. Usavo Ghostty con diversi pannelli divisi, affidandomi alle notifiche native di macOS per sapere quando un agente aveva bisogno di me. Ma il corpo della notifica di Claude Code dice sempre solo \"Claude is waiting for your input\" senza contesto, e con abbastanza tab aperti, non riuscivo nemmeno più a leggere i titoli.",
|
||
"blockquote2": "Ho provato alcuni orchestratori di codice ma la maggior parte erano app Electron/Tauri e le prestazioni mi infastidivano. Preferisco anche semplicemente il terminale, dato che gli orchestratori GUI ti vincolano al loro workflow. Quindi ho costruito cmux come app macOS nativa in Swift/AppKit. Usa libghostty per il rendering del terminale e legge la tua configurazione Ghostty esistente per temi, font, colori e altro.",
|
||
"blockquote3": "Le principali aggiunte sono la barra laterale e il sistema di notifiche. La barra laterale ha tab verticali che mostrano il branch git, la directory di lavoro, le porte in ascolto e l'ultimo testo di notifica per ogni workspace. Il sistema di notifiche cattura le sequenze del terminale (OSC 9/99/777) e ha un CLI (cmux notify) che puoi collegare agli hook degli agenti per Claude Code, OpenCode, ecc. Quando un agente è in attesa, il suo pannello riceve un anello blu e il tab si illumina nella barra laterale, così posso vedere quale ha bisogno di me tra divisioni e tab. Cmd+Shift+U salta al più recente non letto.",
|
||
"blockquote4": "Il browser integrato ha un'API scriptable. Gli agenti possono catturare l'albero di accessibilità, ottenere riferimenti agli elementi, cliccare, compilare form, eseguire JS e leggere i log della console. Puoi dividere un pannello browser accanto al terminale e far interagire Claude Code direttamente con il tuo server di sviluppo.",
|
||
"blockquote5": "Tutto è scriptable tramite il CLI e l'API socket: creare workspace/tab, dividere pannelli, inviare sequenze di tasti, aprire URL nel browser.",
|
||
"hitNumber2": "Al picco ha raggiunto il 2° posto su Hacker News. Mitchell Hashimoto lo ha condiviso:",
|
||
"favoriteComment": "Il mio commento preferito dal <link>thread HN</link>:",
|
||
"viralJapan": "Sorprendentemente, cmux è diventato virale in Giappone:",
|
||
"translation": "Traduzione: \"Sembra buono. Un'app terminale basata su Ghostty progettata per non perdersi quando si eseguono più CLI come Claude Code in parallelo. Il pannello in attesa di input riceve una cornice blu, e ha il proprio sistema di notifiche.\"",
|
||
"viralChina": "E semi-virale in Cina:",
|
||
"extensions": "Un'altra cosa entusiasmante è stata vedere persone costruire sopra il CLI cmux. sasha ha creato un'estensione pi-cmux che mostra info sul modello, utilizzo dei token e stato dell'agente nella barra laterale:",
|
||
"scriptable": "Tutto in cmux è scriptable tramite il CLI: creare workspace, inviare sequenze di tasti, controllare il browser, leggere le notifiche. Parte della filosofia di cmux è essere programmabile e componibile, così le persone possono personalizzare il modo in cui lavorano con gli agenti di codice. Lo stato dell'arte degli agenti di codice sta cambiando rapidamente, e non vuoi essere vincolato a un orchestratore GUI rigido che non riesce a stare al passo.",
|
||
"cta": "Se stai eseguendo più agenti di codice, <link>prova cmux</link>."
|
||
},
|
||
"introducingCmux": {
|
||
"title": "Presentazione di cmux",
|
||
"summary": "Un terminale macOS nativo basato su Ghostty, progettato per eseguire più agenti di codice IA fianco a fianco.",
|
||
"date": "12 febbraio 2026",
|
||
"p1": "cmux è un'applicazione terminale macOS nativa costruita su Ghostty, progettata fin dall'inizio per i developer che eseguono più agenti di codice IA simultaneamente.",
|
||
"whyTitle": "Perché cmux?",
|
||
"whyP": "I workflow di sviluppo moderni spesso richiedono l'esecuzione di più agenti contemporaneamente. Claude Code, Codex e altri strumenti, ognuno nel proprio terminale. Tenere traccia di quali hanno bisogno di attenzione e passare rapidamente dall'uno all'altro è il problema che cmux risolve.",
|
||
"featuresTitle": "Funzionalità principali",
|
||
"getStartedTitle": "Per iniziare",
|
||
"getStartedP": "Installa cmux tramite Homebrew o scarica il DMG dalla <link>guida introduttiva</link>.",
|
||
"featureVerticalTabsLabel": "Tab verticali",
|
||
"featureVerticalTabsDesc": "vedi tutti i tuoi terminali a colpo d'occhio in una barra laterale",
|
||
"featureNotificationsLabel": "Anelli di notifica",
|
||
"featureNotificationsDesc": "i tab lampeggiano quando un agente ha bisogno del tuo input",
|
||
"featureSplitPanesLabel": "Pannelli divisi",
|
||
"featureSplitPanesDesc": "divisioni orizzontali e verticali all'interno di ogni workspace",
|
||
"featureSocketApiLabel": "API socket",
|
||
"featureSocketApiDesc": "controllo programmatico per creare tab e inviare input",
|
||
"featureGpuLabel": "Accelerazione GPU",
|
||
"featureGpuDesc": "alimentato da libghostty per un rendering fluido"
|
||
}
|
||
},
|
||
"zenOfCmux": {
|
||
"metaTitle": "Lo Zen di cmux",
|
||
"metaDescription": "cmux è una primitiva, non una soluzione. Ti dà pezzi componibili e il tuo workflow dipende da te."
|
||
},
|
||
"cmdShiftU": {
|
||
"metaTitle": "Cmd+Shift+U",
|
||
"metaDescription": "La nuova scorciatoia da tastiera che cambia il modo di interagire con cmux."
|
||
},
|
||
"showHnLaunch": {
|
||
"metaTitle": "Lancio di cmux su Show HN",
|
||
"metaDescription": "La storia del lancio di cmux su Hacker News."
|
||
},
|
||
"introducingCmux": {
|
||
"metaTitle": "Presentiamo cmux",
|
||
"metaDescription": "Perché abbiamo costruito cmux, un nuovo terminale per macOS."
|
||
}
|
||
},
|
||
"docs": {
|
||
"layoutTitle": "cmux docs",
|
||
"gettingStarted": {
|
||
"title": "Per iniziare",
|
||
"metaDescription": "Installa cmux, il terminale macOS nativo per agenti di codice IA. Homebrew, download DMG, configurazione CLI e aggiornamenti automatici tramite Sparkle.",
|
||
"intro": "cmux è un terminale macOS nativo e leggero basato su Ghostty per gestire più agenti di codice IA. Dispone di tab verticali, un pannello notifiche e un'API di controllo basata su socket.",
|
||
"install": "Installazione",
|
||
"dmgRecommended": "DMG (consigliato)",
|
||
"dmgDesc": "Apri il .dmg e trascina cmux nella cartella Applicazioni. cmux si aggiorna automaticamente tramite Sparkle, quindi devi scaricare solo una volta.",
|
||
"homebrew": "Homebrew",
|
||
"updateLater": "Per aggiornare in seguito:",
|
||
"firstLaunchCallout": "Al primo avvio, macOS potrebbe chiederti di confermare l'apertura di un'app da uno sviluppatore identificato. Clicca su <strong>Apri</strong> per procedere.",
|
||
"verifyTitle": "Verifica dell'installazione",
|
||
"verifyDesc": "Apri cmux e dovresti vedere:",
|
||
"verifyItem1": "Una finestra terminale con una barra laterale di tab verticali a sinistra",
|
||
"verifyItem2": "Un workspace iniziale già aperto",
|
||
"verifyItem3": "Il terminale Ghostty pronto per l'input",
|
||
"cliSetup": "Configurazione del CLI",
|
||
"cliDesc": "cmux include uno strumento a riga di comando per l'automazione. Nei terminali cmux funziona automaticamente. Per usare il CLI al di fuori di cmux, crea un link simbolico:",
|
||
"cliThen": "Poi puoi eseguire comandi come:",
|
||
"autoUpdates": "Aggiornamenti automatici",
|
||
"autoUpdatesDesc": "cmux verifica automaticamente gli aggiornamenti tramite Sparkle. Quando un aggiornamento è disponibile, vedrai una pillola di aggiornamento nella barra del titolo. Puoi anche controllare manualmente tramite cmux > Controlla aggiornamenti nella barra dei menu.",
|
||
"sessionRestore": "Ripristino sessione (comportamento attuale)",
|
||
"sessionRestoreDesc": "Dopo il riavvio, cmux ripristina solo il layout e i metadati:",
|
||
"sessionItem1": "Layout di finestre, workspace e pannelli",
|
||
"sessionItem2": "Directory di lavoro",
|
||
"sessionItem3": "Cronologia del terminale (best effort)",
|
||
"sessionItem4": "URL del browser e cronologia di navigazione",
|
||
"sessionCallout": "cmux non ripristina ancora lo stato dei processi attivi. Le sessioni di applicazioni terminale attive come Claude Code, tmux e vim non vengono riprese dopo il riavvio dell'app.",
|
||
"requirements": "Requisiti",
|
||
"reqItem1": "macOS 14.0 o successivo",
|
||
"reqItem2": "Mac Apple Silicon o Intel",
|
||
"metaTitle": "Per iniziare"
|
||
},
|
||
"concepts": {
|
||
"title": "Concetti",
|
||
"metaDescription": "Come cmux organizza i terminali: finestre, workspace, pannelli e superfici. La gerarchia dietro la barra laterale, le divisioni e l'API socket.",
|
||
"intro": "cmux organizza i tuoi terminali in una gerarchia a quattro livelli. Comprendere questi livelli aiuta nell'uso dell'API socket, del CLI e delle scorciatoie da tastiera.",
|
||
"hierarchy": "Gerarchia",
|
||
"windowTitle": "Finestra",
|
||
"windowDesc": "Una finestra macOS. Apri più finestre con {shortcut}. Ogni finestra ha la propria barra laterale con workspace indipendenti.",
|
||
"workspaceTitle": "Workspace",
|
||
"workspaceDesc": "Una voce nella barra laterale. Ogni workspace contiene uno o più pannelli divisi. I workspace sono ciò che vedi elencato nella barra laterale sinistra.",
|
||
"workspaceNote": "Nell'interfaccia e nelle scorciatoie da tastiera, i workspace sono spesso chiamati \"tab\" poiché si comportano come tab nella barra laterale. L'API socket e le variabili d'ambiente usano il termine \"workspace\".",
|
||
"contextHeader": "Contesto",
|
||
"termUsedHeader": "Termine usato",
|
||
"sidebarUI": "Interfaccia barra laterale",
|
||
"tab": "Tab",
|
||
"keyboardShortcuts": "Scorciatoie da tastiera",
|
||
"workspaceOrTab": "Workspace o tab",
|
||
"socketAPI": "API socket",
|
||
"environmentVariable": "Variabile d'ambiente",
|
||
"workspaceShortcuts": "Scorciatoie: {new} (nuovo), {jump} (vai a), {close} (chiudi), {prevNext} (precedente/successivo)",
|
||
"paneTitle": "Pannello",
|
||
"paneDesc": "Una regione divisa all'interno di un workspace. Creata dividendo con {right} (destra) o {down} (basso). Naviga tra i pannelli con {nav} + tasti freccia.",
|
||
"paneNote": "Ogni pannello può contenere più superfici (tab all'interno del pannello).",
|
||
"surfaceTitle": "Superficie",
|
||
"surfaceDesc": "Un tab all'interno di un pannello. Ogni pannello ha la propria barra dei tab e può contenere più superfici. Creata con {new}, navigazione con {prev} / {next} o {jump}.",
|
||
"surfaceNote": "Le superfici sono le singole sessioni di terminale o browser con cui interagisci. Ogni superficie ha la propria variabile d'ambiente CMUX_SURFACE_ID.",
|
||
"panelTitle": "Panel",
|
||
"panelDesc": "Il contenuto all'interno di una superficie. Attualmente due tipi:",
|
||
"panelTerminal": "Terminal: una sessione terminale Ghostty",
|
||
"panelBrowser": "Browser: una vista web integrata",
|
||
"panelNote": "Panel è principalmente un concetto interno. Nell'API socket e nel CLI, interagisci con le superfici piuttosto che con i panel direttamente.",
|
||
"visualExample": "Esempio visivo",
|
||
"visualExampleDesc": "In questo esempio:",
|
||
"visualItem1": "La finestra contiene una barra laterale con tre workspace (dev, server, logs)",
|
||
"visualItem2": "Il workspace \"dev\" è selezionato, mostrando due pannelli affiancati",
|
||
"visualItem3": "Il pannello 1 ha due superfici ([S1] e [S2] nella barra dei tab), con S1 attivo",
|
||
"visualItem4": "Il pannello 2 ha una superficie",
|
||
"visualItem5": "Ogni superficie contiene un panel (un terminale in questo caso)",
|
||
"summary": "Riepilogo",
|
||
"levelHeader": "Livello",
|
||
"whatItIsHeader": "Descrizione",
|
||
"createdByHeader": "Creato da",
|
||
"identifiedByHeader": "Identificato da",
|
||
"macosWindow": "Finestra macOS",
|
||
"sidebarEntry": "Voce della barra laterale",
|
||
"splitRegion": "Regione divisa",
|
||
"tabWithinPane": "Tab all'interno di un pannello",
|
||
"terminalOrBrowser": "Terminale o browser",
|
||
"automatic": "Automatico",
|
||
"paneIdSocket": "ID pannello (API socket)",
|
||
"panelIdInternal": "ID panel (interno)",
|
||
"metaTitle": "Concetti"
|
||
},
|
||
"configuration": {
|
||
"title": "Configurazione",
|
||
"metaDescription": "Configura cmux tramite i file di configurazione Ghostty. Font, tema, colori, stile dei pannelli divisi, cronologia e impostazioni dell'app per la modalità automazione.",
|
||
"intro": "cmux legge la configurazione dai file di configurazione Ghostty, offrendoti opzioni familiari se provieni da Ghostty.",
|
||
"configLocations": "Posizione dei file di configurazione",
|
||
"configLocationsDesc": "cmux cerca la configurazione in queste posizioni (in ordine):",
|
||
"createConfig": "Crea il file di configurazione se non esiste:",
|
||
"appearance": "Aspetto",
|
||
"font": "Font",
|
||
"colors": "Colori",
|
||
"splitPanes": "Pannelli divisi",
|
||
"behavior": "Comportamento",
|
||
"scrollback": "Cronologia",
|
||
"workingDirectory": "Directory di lavoro",
|
||
"appSettings": "Impostazioni dell'app",
|
||
"appSettingsDesc": "Le impostazioni dell'app sono accessibili tramite cmux > Impostazioni ({shortcut}):",
|
||
"themeMode": "Modalità tema",
|
||
"themeSystem": "Sistema: segui l'aspetto macOS",
|
||
"themeLight": "Chiaro: sempre in modalità chiara",
|
||
"themeDark": "Scuro: sempre in modalità scura",
|
||
"automationMode": "Modalità automazione",
|
||
"automationModeDesc": "Livello di accesso al socket di controllo:",
|
||
"automationOff": "Disattivato: nessun accesso al socket (più sicuro)",
|
||
"automationCmux": "Solo processi cmux: solo i processi avviati nei terminali cmux possono connettersi",
|
||
"automationAll": "allowAll: consenti a qualsiasi processo locale di connettersi (CMUX_SOCKET_MODE=allowAll, solo override tramite variabile d'ambiente)",
|
||
"automationCallout": "Su macchine condivise, considera l'uso della modalità \"Disattivato\" o \"Solo processi cmux\".",
|
||
"browserLinkBehavior": "Comportamento dei link del browser",
|
||
"browserLinkDesc": "In Impostazioni > Browser, cmux espone due liste di host con scopi diversi:",
|
||
"browserHostsEmbed": "Host da aprire nel browser integrato: si applica ai link cliccati dall'output del terminale. Gli host in questa lista si aprono in cmux; gli altri host si aprono nel browser predefinito. Supporta un host o wildcard per riga (ad esempio: example.com, *.internal.example).",
|
||
"browserHostsHttp": "Host HTTP consentiti nel browser integrato: si applica solo agli URL HTTP (non-HTTPS). Gli host in questa lista possono aprirsi in cmux senza avviso. I valori predefiniti includono localhost, 127.0.0.1, ::1, 0.0.0.0 e *.localtest.me.",
|
||
"exampleConfig": "Esempio di configurazione",
|
||
"metaTitle": "Configurazione"
|
||
},
|
||
"customCommands": {
|
||
"title": "Comandi personalizzati",
|
||
"metaTitle": "Comandi personalizzati",
|
||
"metaDescription": "Definisci comandi personalizzati e layout workspace in cmux.json. Configurazione per progetto e globale con monitoraggio in tempo reale dei file.",
|
||
"intro": "Definisci comandi personalizzati e layout workspace aggiungendo un file cmux.json alla radice del progetto o ~/.config/cmux/. I comandi appaiono nella palette dei comandi.",
|
||
"fileLocations": "Posizioni dei file",
|
||
"fileLocationsDesc": "cmux cerca la configurazione in due posti:",
|
||
"localConfig": "Per progetto:",
|
||
"localConfigDesc": "si trova nella directory del progetto, ha la precedenza",
|
||
"globalConfig": "Globale:",
|
||
"globalConfigDesc": "si applica a tutti i progetti, integra i comandi non definiti localmente",
|
||
"precedenceNote": "I comandi locali sovrascrivono i comandi globali con lo stesso nome.",
|
||
"liveReload": "Le modifiche vengono rilevate automaticamente — nessun riavvio necessario.",
|
||
"schema": "Schema",
|
||
"schemaDesc": "Un file cmux.json contiene un array commands. Ogni comando è un semplice comando shell o una definizione completa di workspace:",
|
||
"simpleCommands": "Comandi semplici",
|
||
"simpleCommandsDesc": "Un comando semplice esegue un comando shell nel terminale attualmente attivo:",
|
||
"simpleCommandFields": "Campi",
|
||
"fieldName": "Visualizzato nella palette dei comandi (obbligatorio)",
|
||
"fieldDescription": "Descrizione opzionale",
|
||
"fieldKeywords": "Termini di ricerca aggiuntivi per la palette dei comandi",
|
||
"fieldCommand": "Comando shell da eseguire nel terminale attivo",
|
||
"fieldConfirm": "Mostra una finestra di conferma prima dell'esecuzione",
|
||
"simpleCommandCwdNote": "I comandi semplici vengono eseguiti nella directory di lavoro corrente del terminale focalizzato. Se il comando dipende da percorsi relativi al progetto, aggiungi il prefisso",
|
||
"simpleCommandCwdRepoRoot": "per eseguire dalla radice del repository, o",
|
||
"simpleCommandCwdCustomPath": "per qualsiasi directory specifica.",
|
||
"workspaceCommands": "Comandi workspace",
|
||
"workspaceCommandsDesc": "Un comando workspace crea un nuovo workspace con un layout personalizzato di divisioni, terminali e pannelli browser:",
|
||
"workspaceFields": "Campi workspace",
|
||
"wsFieldName": "Nome della scheda workspace (predefinito: nome del comando)",
|
||
"wsFieldCwd": "Directory di lavoro del workspace",
|
||
"wsFieldColor": "Colore della scheda workspace",
|
||
"wsFieldLayout": "Albero di layout che definisce divisioni e pannelli",
|
||
"restartBehavior": "Comportamento al riavvio",
|
||
"restartBehaviorDesc": "Controlla cosa succede quando esiste già un workspace con lo stesso nome:",
|
||
"restartIgnore": "Passa al workspace esistente (predefinito)",
|
||
"restartRecreate": "Chiudi e ricrea senza chiedere",
|
||
"restartConfirm": "Chiedi all'utente prima di ricreare",
|
||
"layoutTree": "Albero di layout",
|
||
"layoutTreeDesc": "L'albero di layout definisce come i pannelli sono disposti usando nodi di divisione ricorsivi:",
|
||
"splitNode": "Nodo di divisione",
|
||
"splitNodeDesc": "Divide lo spazio in due figli:",
|
||
"or": "o",
|
||
"splitPosition": "Posizione del divisore da 0.1 a 0.9 (predefinito 0.5)",
|
||
"splitChildren": "Esattamente due nodi figli (divisione o pannello)",
|
||
"paneNode": "Nodo pannello",
|
||
"paneNodeDesc": "Un nodo foglia contenente una o più superfici (schede all'interno del pannello).",
|
||
"surfaceDefinition": "Definizione superficie",
|
||
"surfaceDefinitionDesc": "Ogni superficie in un pannello può essere un terminale o un browser:",
|
||
"surfaceName": "Titolo scheda personalizzato",
|
||
"surfaceCommand": "Comando shell da eseguire automaticamente alla creazione (solo terminale)",
|
||
"surfaceCwd": "Directory di lavoro per questa superficie",
|
||
"surfaceEnv": "Variabili d'ambiente come coppie chiave-valore",
|
||
"surfaceUrl": "URL da aprire (solo browser)",
|
||
"surfaceFocus": "Metti il focus su questa superficie dopo la creazione",
|
||
"cwdResolution": "Risoluzione della directory di lavoro",
|
||
"omitted": "omesso",
|
||
"cwdRelative": "directory di lavoro del workspace",
|
||
"cwdSubdir": "relativa alla directory di lavoro del workspace",
|
||
"cwdHome": "espansa alla directory home",
|
||
"absolutePath": "Percorso assoluto",
|
||
"cwdAbsolute": "usato così com'è",
|
||
"fullExample": "Esempio completo"
|
||
},
|
||
"keyboardShortcuts": {
|
||
"title": "Scorciatoie da tastiera",
|
||
"description": "Tutte le scorciatoie da tastiera disponibili in cmux, raggruppate per categoria.",
|
||
"metaDescription": "Tutte le scorciatoie da tastiera cmux per workspace, superfici, pannelli divisi, browser, notifiche, ricerca e gestione delle finestre su macOS.",
|
||
"searchPlaceholder": "Cerca scorciatoie...",
|
||
"searchLabel": "Cerca scorciatoie da tastiera",
|
||
"noResults": "Nessuna scorciatoia trovata",
|
||
"noResultsHint": "Prova un termine di ricerca diverso",
|
||
"cat": {
|
||
"workspaces": "Workspace",
|
||
"workspacesBlurb": "I workspace si trovano nella barra laterale. Ogni workspace ha i propri pannelli e superfici.",
|
||
"surfaces": "Superfici",
|
||
"surfacesBlurb": "Le superfici sono tab all'interno di un pannello.",
|
||
"splitPanes": "Pannelli divisi",
|
||
"browser": "Browser",
|
||
"notifications": "Notifiche",
|
||
"find": "Ricerca",
|
||
"terminal": "Terminale",
|
||
"window": "Finestra"
|
||
},
|
||
"sc": {
|
||
"ws-new": "Nuovo workspace",
|
||
"ws-prev": "Workspace precedente",
|
||
"ws-next": "Workspace successivo",
|
||
"ws-jump-1-8": "Vai al workspace 1–8",
|
||
"ws-jump-last": "Vai all'ultimo workspace",
|
||
"ws-close": "Chiudi workspace",
|
||
"ws-rename": "Rinomina workspace",
|
||
"sf-new": "Nuova superficie",
|
||
"sf-prev-1": "Superficie precedente",
|
||
"sf-prev-2": "Superficie precedente",
|
||
"sf-jump-1-8": "Vai alla superficie 1–8",
|
||
"sf-jump-last": "Vai all'ultima superficie",
|
||
"sf-close": "Chiudi superficie",
|
||
"sp-right": "Dividi a destra",
|
||
"sp-down": "Dividi in basso",
|
||
"sp-focus": "Focalizza pannello per direzione",
|
||
"sp-browser-right": "Dividi browser a destra",
|
||
"sp-browser-down": "Dividi browser in basso",
|
||
"br-open": "Apri superficie browser",
|
||
"br-addr": "Focalizza barra degli indirizzi",
|
||
"br-forward": "Avanti",
|
||
"br-reload": "Ricarica pagina",
|
||
"br-devtools": "Apri strumenti di sviluppo",
|
||
"nt-panel": "Mostra pannello notifiche",
|
||
"nt-latest": "Vai alla più recente non letta",
|
||
"nt-flash": "Attiva flash",
|
||
"fd-find": "Trova",
|
||
"fd-next-prev": "Risultato successivo / precedente",
|
||
"fd-hide": "Nascondi barra di ricerca",
|
||
"fd-selection": "Usa selezione per la ricerca",
|
||
"tm-clear": "Cancella cronologia",
|
||
"tm-copy": "Copia (con selezione)",
|
||
"tm-paste": "Incolla",
|
||
"tm-font": "Aumenta / diminuisci dimensione font",
|
||
"tm-reset": "Ripristina dimensione font",
|
||
"wn-new": "Nuova finestra",
|
||
"wn-settings": "Impostazioni",
|
||
"wn-reload": "Ricarica configurazione",
|
||
"wn-quit": "Esci"
|
||
},
|
||
"metaTitle": "Scorciatoie da tastiera"
|
||
},
|
||
"api": {
|
||
"title": "Riferimento API",
|
||
"metaDescription": "Riferimento API CLI e socket Unix di cmux. Gestione workspace, pannelli divisi, controllo input, notifiche, metadati della barra laterale, variabili d'ambiente e metodi di rilevamento.",
|
||
"intro": "cmux fornisce sia uno strumento CLI che un socket Unix per il controllo programmatico. Ogni comando è disponibile tramite entrambe le interfacce.",
|
||
"socket": "Socket",
|
||
"buildHeader": "Build",
|
||
"pathHeader": "Percorso",
|
||
"release": "Release",
|
||
"debug": "Debug",
|
||
"taggedDebug": "Build debug con tag",
|
||
"socketOverride": "Sovrascrivi con la variabile d'ambiente CMUX_SOCKET_PATH. Invia una richiesta JSON terminata da newline per chiamata:",
|
||
"socketCallout": "Le richieste JSON del socket devono usare method e params. I vecchi payload JSON v1 come <legacy>'{'\"command\":\"...\"'}'</legacy> non sono supportati.",
|
||
"accessModes": "Modalità di accesso",
|
||
"modeHeader": "Modalità",
|
||
"descriptionHeader": "Descrizione",
|
||
"howToEnableHeader": "Come attivare",
|
||
"offMode": "Socket disattivato",
|
||
"offEnable": "Interfaccia Impostazioni o CMUX_SOCKET_MODE=off",
|
||
"cmuxOnlyMode": "Solo i processi avviati nei terminali cmux possono connettersi.",
|
||
"cmuxOnlyEnable": "Modalità predefinita nell'interfaccia Impostazioni",
|
||
"allowAllMode": "Consenti a qualsiasi processo locale di connettersi (nessun controllo di discendenza).",
|
||
"allowAllEnable": "Solo override tramite variabile d'ambiente: CMUX_SOCKET_MODE=allowAll",
|
||
"accessCallout": "Su macchine condivise, usa Disattivato o Solo processi cmux.",
|
||
"cliOptions": "Opzioni del CLI",
|
||
"flagHeader": "Flag",
|
||
"customSocketPath": "Percorso socket personalizzato",
|
||
"outputJson": "Output in formato JSON",
|
||
"targetWindow": "Specifica una finestra",
|
||
"targetWorkspace": "Specifica un workspace",
|
||
"targetSurface": "Specifica una superficie",
|
||
"idFormat": "Formato dell'identificatore di controllo nell'output JSON",
|
||
"workspaceCommands": "Comandi workspace",
|
||
"listWorkspacesDesc": "Elenca tutti i workspace aperti.",
|
||
"newWorkspaceDesc": "Crea un nuovo workspace.",
|
||
"selectWorkspaceDesc": "Passa a un workspace specifico.",
|
||
"currentWorkspaceDesc": "Ottieni il workspace attualmente attivo.",
|
||
"closeWorkspaceDesc": "Chiudi un workspace.",
|
||
"splitCommands": "Comandi di divisione",
|
||
"newSplitDesc": "Crea un nuovo pannello diviso. Direzioni: left, right, up, down.",
|
||
"listSurfacesDesc": "Elenca tutte le superfici nel workspace attuale.",
|
||
"focusSurfaceDesc": "Metti a fuoco una superficie specifica.",
|
||
"inputCommands": "Comandi di input",
|
||
"sendDesc": "Invia testo al terminale attivo.",
|
||
"sendKeyDesc": "Invia la pressione di un tasto. Tasti: enter, tab, escape, backspace, delete, up, down, left, right.",
|
||
"sendSurfaceDesc": "Invia testo a una superficie specifica.",
|
||
"sendKeySurfaceDesc": "Invia la pressione di un tasto a una superficie specifica.",
|
||
"notificationCommands": "Comandi di notifica",
|
||
"notifyDesc": "Invia una notifica.",
|
||
"listNotificationsDesc": "Elenca tutte le notifiche.",
|
||
"clearNotificationsDesc": "Cancella tutte le notifiche.",
|
||
"sidebarMetadata": "Comandi metadati della barra laterale",
|
||
"sidebarMetadataDesc": "Imposta pillole di stato, barre di avanzamento e voci di log nella barra laterale per qualsiasi workspace. Utile per script di build, integrazioni CI e agenti di codice IA che vogliono mostrare lo stato a colpo d'occhio.",
|
||
"setStatusDesc": "Imposta una pillola di stato nella barra laterale. Usa una chiave univoca così diversi strumenti possono gestire le proprie voci.",
|
||
"clearStatusDesc": "Rimuovi una voce di stato dalla barra laterale per chiave.",
|
||
"listStatusDesc": "Elenca tutte le voci di stato della barra laterale per un workspace.",
|
||
"setProgressDesc": "Imposta una barra di avanzamento nella barra laterale (0.0 a 1.0).",
|
||
"clearProgressDesc": "Cancella la barra di avanzamento della barra laterale.",
|
||
"logDesc": "Aggiungi una voce di log alla barra laterale. Livelli: info, progress, success, warning, error.",
|
||
"clearLogDesc": "Cancella tutte le voci di log della barra laterale.",
|
||
"listLogDesc": "Elenca le voci di log della barra laterale.",
|
||
"sidebarStateDesc": "Mostra tutti i metadati della barra laterale (cwd, branch git, porte, stato, avanzamento, log).",
|
||
"utilityCommands": "Comandi di utilità",
|
||
"pingDesc": "Verifica se cmux è in esecuzione e risponde.",
|
||
"capabilitiesDesc": "Elenca i metodi socket disponibili e la modalità di accesso attuale.",
|
||
"identifyDesc": "Mostra il contesto finestra/workspace/pannello/superficie attivo.",
|
||
"envVariables": "Variabili d'ambiente",
|
||
"variableHeader": "Variabile",
|
||
"socketPathDesc": "Sovrascrivi il percorso del socket usato dal CLI e dalle integrazioni",
|
||
"socketEnableDesc": "Forza attivazione/disattivazione del socket (1/0, true/false, on/off)",
|
||
"socketModeDesc": "Sovrascrivi la modalità di accesso (cmuxOnly, allowAll, off). Accetta anche cmux-only/cmux_only e allow-all/allow_all",
|
||
"workspaceIdDesc": "Auto-impostato: ID del workspace attuale",
|
||
"surfaceIdDesc": "Auto-impostato: ID della superficie attuale",
|
||
"termProgramDesc": "Impostato a ghostty",
|
||
"termDesc": "Impostato a xterm-ghostty",
|
||
"envCallout": "I vecchi valori CMUX_SOCKET_MODE full e notifications sono ancora accettati per compatibilità.",
|
||
"detectingCmux": "Rilevare cmux",
|
||
"examples": "Esempi",
|
||
"pythonClient": "Client Python",
|
||
"shellScript": "Script shell",
|
||
"buildScriptNotification": "Script di build con notifica",
|
||
"metaTitle": "Riferimento API"
|
||
},
|
||
"notifications": {
|
||
"title": "Notifiche",
|
||
"metaDescription": "Invia notifiche desktop da agenti IA e script in cmux. CLI, sequenze di escape OSC 99/777 e integrazione degli hook di Claude Code.",
|
||
"intro": "cmux supporta le notifiche desktop, permettendo agli agenti IA e agli script di avvisarti quando hanno bisogno di attenzione.",
|
||
"lifecycle": "Ciclo di vita",
|
||
"received": "Ricevuta: la notifica appare nel pannello, l'avviso desktop si attiva (se non soppresso)",
|
||
"unread": "Non letta: badge mostrato sul tab del workspace",
|
||
"read": "Letta: cancellata quando visualizzi quel workspace",
|
||
"cleared": "Cancellata: rimossa dal pannello",
|
||
"suppression": "Soppressione",
|
||
"suppressionDesc": "Gli avvisi desktop vengono soppressi quando:",
|
||
"suppressItem1": "La finestra cmux è attiva",
|
||
"suppressItem2": "Il workspace specifico che invia la notifica è attivo",
|
||
"suppressItem3": "Il pannello notifiche è aperto",
|
||
"notificationPanel": "Pannello notifiche",
|
||
"notificationPanelDesc": "Premi <openShortcut>⌘⇧I</openShortcut> per aprire il pannello notifiche. Clicca su una notifica per andare a quel workspace. Premi <jumpShortcut>⌘⇧U</jumpShortcut> per andare direttamente al workspace con la notifica non letta più recente.",
|
||
"customCommand": "Comando personalizzato",
|
||
"customCommandDesc": "Esegui un comando shell ogni volta che una notifica è pianificata. Impostalo in Impostazioni > App > Comando di notifica. Il comando viene eseguito tramite /bin/sh -c con queste variabili d'ambiente:",
|
||
"customCommandNote": "Il comando viene eseguito indipendentemente dal selettore di suoni di sistema. Imposta il selettore su \"Nessuno\" per usare solo il comando personalizzato, o mantieni entrambi per un suono di sistema più un'azione personalizzata.",
|
||
"sending": "Invio di notifiche",
|
||
"cli": "CLI",
|
||
"osc777Title": "OSC 777 (semplice)",
|
||
"osc777Desc": "Il protocollo RXVT usa un formato fisso con titolo e corpo:",
|
||
"osc99Title": "OSC 99 (ricco)",
|
||
"osc99Desc": "Il protocollo Kitty supporta sottotitoli e ID di notifica:",
|
||
"variableHeader": "Variabile",
|
||
"descriptionHeader": "Descrizione",
|
||
"envTitle": "Titolo della notifica (nome del workspace o dell'app)",
|
||
"envSubtitle": "Sottotitolo della notifica",
|
||
"envBody": "Testo del corpo della notifica",
|
||
"cmpTitleBody": "Titolo + corpo",
|
||
"cmpSubtitle": "Sottotitolo",
|
||
"cmpNotificationId": "ID notifica",
|
||
"cmpComplexity": "Complessità",
|
||
"cmpYes": "Sì",
|
||
"cmpNo": "No",
|
||
"cmpHigher": "Maggiore",
|
||
"cmpLower": "Minore",
|
||
"featureHeader": "Funzionalità",
|
||
"comparisonCallout": "Usa OSC 777 per notifiche semplici. Usa OSC 99 quando hai bisogno di sottotitoli o ID di notifica. Usa il CLI (cmux notify) per l'integrazione più semplice.",
|
||
"claudeCodeHooks": "Hook di Claude Code",
|
||
"claudeCodeHooksDesc": "cmux si integra con <link>Claude Code</link> tramite hook per notificarti quando le attività sono completate.",
|
||
"createHookScript": "1. Crea lo script hook",
|
||
"configureClaude": "2. Configura Claude Code",
|
||
"restartNote": "Riavvia Claude Code per applicare gli hook.",
|
||
"copilotCliHooks": "GitHub Copilot CLI",
|
||
"copilotCliHooksDesc": "Copilot CLI supporta gli <link>hook</link> che eseguono comandi shell in eventi del ciclo di vita come l'invio di prompt, l'arresto dell'agente e gli errori.",
|
||
"copilotCliRepoHooks": "Per gli hook a livello di repository, crea un file .github/hooks/notify.json con la stessa struttura:",
|
||
"integrationExamples": "Esempi di integrazione",
|
||
"notifyAfterLong": "Notifica dopo un comando lungo",
|
||
"python": "Python",
|
||
"nodejs": "Node.js",
|
||
"tmuxPassthrough": "Passthrough tmux",
|
||
"tmuxDesc": "Se usi tmux all'interno di cmux, abilita il passthrough:",
|
||
"metaTitle": "Notifiche"
|
||
},
|
||
"browserAutomation": {
|
||
"title": "Automazione del browser",
|
||
"metaDescription": "Riferimento comandi browser cmux per navigazione, interazione DOM, attesa, ispezione, valutazione JavaScript, tab, dialoghi, frame, download e stato del browser.",
|
||
"intro": "Il gruppo di comandi cmux browser fornisce l'automazione del browser per le superfici browser di cmux. Usalo per navigare, interagire con gli elementi DOM, ispezionare lo stato della pagina, valutare JavaScript e gestire i dati di sessione del browser.",
|
||
"commandIndex": "Indice dei comandi",
|
||
"categoryHeader": "Categoria",
|
||
"subcommandsHeader": "Sottocomandi",
|
||
"navAndTargeting": "Navigazione e targeting",
|
||
"waiting": "Attesa",
|
||
"domInteraction": "Interazione DOM",
|
||
"inspection": "Ispezione",
|
||
"jsAndInjection": "JavaScript e injection",
|
||
"framesDialogsDownloads": "Frame, dialoghi, download",
|
||
"stateAndSession": "Stato e dati di sessione",
|
||
"tabsAndLogs": "Tab e log",
|
||
"targetingSurface": "Targeting di una superficie browser",
|
||
"targetingDesc": "La maggior parte dei sottocomandi richiede una superficie target. Puoi passarla posizionalmente o con --surface.",
|
||
"navigation": "Navigazione",
|
||
"waitingSection": "Attesa",
|
||
"waitingDesc": "Usa wait per bloccare fino a quando selettori, testo, frammenti URL, stato di caricamento o una condizione JavaScript sono soddisfatti.",
|
||
"domSection": "Interazione DOM",
|
||
"domDesc": "Le azioni di mutazione supportano --snapshot-after per una verifica rapida negli script.",
|
||
"inspectionSection": "Ispezione",
|
||
"inspectionDesc": "Usa i getter strutturati per gli script e snapshot/screenshot per la revisione umana.",
|
||
"jsSection": "Valutazione e injection JavaScript",
|
||
"stateSection": "Stato",
|
||
"stateDesc": "I comandi dei dati di sessione coprono cookie, storage locale/di sessione e snapshot completi dello stato del browser.",
|
||
"tabsSection": "Tab",
|
||
"tabsDesc": "Le operazioni sui tab del browser corrispondono alle superfici browser nel gruppo tab browser attivo.",
|
||
"consoleSection": "Console ed errori",
|
||
"dialogsSection": "Dialoghi",
|
||
"framesSection": "Frame",
|
||
"downloadsSection": "Download",
|
||
"commonPatterns": "Pattern comuni",
|
||
"patternNavigate": "Naviga, attendi, ispeziona",
|
||
"patternForm": "Compila un form e verifica il testo di successo",
|
||
"patternDebug": "Cattura artefatti di debug in caso di errore",
|
||
"patternSession": "Persisti e ripristina la sessione del browser",
|
||
"metaTitle": "Automazione del browser"
|
||
},
|
||
"changelog": {
|
||
"title": "Changelog",
|
||
"metaDescription": "Note di rilascio e cronologia delle versioni di cmux. Nuove funzionalità, correzioni di bug e modifiche per il terminale macOS nativo.",
|
||
"metaTitle": "Registro modifiche"
|
||
},
|
||
"navItems": {
|
||
"gettingStarted": "Per iniziare",
|
||
"concepts": "Concetti",
|
||
"configuration": "Configurazione",
|
||
"customCommands": "Comandi personalizzati",
|
||
"keyboardShortcuts": "Scorciatoie da tastiera",
|
||
"apiReference": "Riferimento API",
|
||
"browserAutomation": "Automazione del browser",
|
||
"notifications": "Notifiche",
|
||
"agentIntegrations": "Agent Integrations",
|
||
"claudeCodeTeams": "Claude Code Teams",
|
||
"ohMyOpenCode": "oh-my-opencode",
|
||
"changelog": "Changelog"
|
||
}
|
||
},
|
||
"legal": {
|
||
"privacyPolicy": "Informativa sulla privacy",
|
||
"termsOfService": "Termini di servizio",
|
||
"eula": "EULA"
|
||
},
|
||
"wallOfLove": {
|
||
"title": "Wall of Love",
|
||
"description": "Cosa dicono le persone di cmux."
|
||
},
|
||
"testimonials": {
|
||
"mitchellh": "Un altro giorno, un altro progetto basato su libghostty, questa volta un terminale macOS con tab verticali, migliore organizzazione/notifiche, browser integrato/scriptabile specificamente pensato per chi usa un sacco di workflow agentici da terminale.",
|
||
"schrockn": "Questo è esattamente il prodotto che stavo cercando. Dopo due ore stamattina me ne sono innamorato.",
|
||
"egrefen": "L'ho usato tutto il weekend ed è fantastico.",
|
||
"max4c": "questo è stato il mio strumento preferito nelle ultime due settimane",
|
||
"asaza": "cmux è così bello che potrebbe essere finalmente il momento di dire addio a VSCode",
|
||
"johnthedebs": "Hey, sembra davvero fantastico. Adoro le idee qui, in particolare: la programmabilità, l'interfaccia a livelli, il browser con API. Non vedo l'ora di provarlo. Voglio anche aggiungere che apprezzo molto Mitchell Hashimoto per aver creato libghostty; sembra un momento entusiasmante per essere un utente di terminale.",
|
||
"joeriddles": "Tab verticali nel mio terminale! Non ci avevo mai pensato prima. Uso e adoro i tab verticali di Firefox.",
|
||
"dchu17": "L'ho provato ed è stato abbastanza intuitivo. Bel lavoro!",
|
||
"afruth": "Mi piace, l'ho usato nell'ultimo giorno su tre progetti paralleli, ciascuno con diversi worktree. Averlo insieme a lazygit e yazi / nvim mi ha reso un po' più produttivo del solito senza dover rincorrere più istanze di ghostty / iTerm. Inoltre sembra più naturale di tmux.",
|
||
"northprint": "Ho provato cmux perché sembrava buono, ed è buono",
|
||
"indykish": "cmux è piuttosto buono.",
|
||
"kataring": "Sono passato a cmux.dev",
|
||
"scottw": "È stata una scoperta così utile. Non lo consiglio mai abbastanza.",
|
||
"johnblythe": "l'ho preso nel weekend e mi è piaciuto. aspettavo qualcosa del genere.",
|
||
"bchris91": "Questo è esattamente quello che volevo. Lavoro fantastico, grazie!",
|
||
"connorelsea": "Lo uso da una settimana ed è fantastico. Un tab verticale per ogni task in corso. Dentro, Claude da un lato e il browser con PR e risorse dall'altro, passo tra i task e resto organizzato. Combinalo con le skill per far monitorare la CI a Claude ricorsivamente, ecc. mi sento illuminato onestamente",
|
||
"tonkotsuboy": "A inizio anno sono passato da Warp a Ghostty, ma ora sono passato a cmux. I tab verticali sono comodi e apprezzo le notifiche quando i task di Claude Code finiscono. È basato su Ghostty quindi le prestazioni fulminee restano. Anche la visualizzazione del branch e i completamenti che avevo impostato su Ghostty funzionano ancora."
|
||
},
|
||
"nightly": {
|
||
"title": "cmux NIGHTLY",
|
||
"subtitle": "Build di ultima generazione dal branch main",
|
||
"metaTitle": "cmux NIGHTLY — Build Nightly",
|
||
"metaDescription": "Scarica cmux NIGHTLY, un'app separata compilata automaticamente dall'ultimo commit su main. Funziona accanto alla versione stabile con aggiornamenti automatici propri.",
|
||
"description": "cmux NIGHTLY viene compilata automaticamente dall'ultimo commit su main. Ha un proprio bundle ID, quindi funziona accanto alla versione stabile senza conflitti. Usala per testare le nuove funzionalità prima del rilascio.",
|
||
"download": "Scarica NIGHTLY per Mac",
|
||
"warning": "Le build nightly possono contenere bug o funzionalità incomplete. In caso di problemi, segnalali su <githubLink>GitHub</githubLink> o in <discordLink>#nightly-bugs su Discord</discordLink> e torna alla versione stabile."
|
||
},
|
||
"languageSwitcher": {
|
||
"label": "Lingua"
|
||
}
|
||
}
|