{ "meta": { "title": "cmux — เทอร์มินัลที่สร้างมาเพื่อมัลติทาสกิ้ง", "description": "เทอร์มินัล macOS ดั้งเดิมที่สร้างบน Ghostty รองรับ Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider และเครื่องมือ CLI ใดก็ได้ แท็บแนวตั้ง วงแหวนการแจ้งเตือน แผงแบ่ง และ socket API", "ogDescription": "เทอร์มินัล macOS ดั้งเดิมสำหรับเอเจนต์เขียนโค้ด AI รองรับ Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider และเครื่องมือ CLI ใดก็ได้" }, "common": { "downloadForMac": "ดาวน์โหลดสำหรับ Mac", "viewOnGitHub": "ดูบน GitHub", "closeMenu": "ปิดเมนู", "openMenu": "เปิดเมนู", "toggleTheme": "สลับธีม", "backToBlog": "กลับไปบล็อก", "readTheDocs": "อ่านเอกสาร", "viewChangelog": "ดู Changelog" }, "nav": { "docs": "เอกสาร", "blog": "บล็อก", "changelog": "Changelog", "community": "ชุมชน", "github": "GitHub" }, "footer": { "product": "ผลิตภัณฑ์", "resources": "แหล่งข้อมูล", "legal": "ข้อกฎหมาย", "social": "โซเชียล", "blog": "บล็อก", "community": "ชุมชน", "docs": "เอกสาร", "changelog": "Changelog", "privacy": "ความเป็นส่วนตัว", "terms": "ข้อกำหนด", "eula": "EULA", "github": "GitHub", "twitter": "X / Twitter", "discord": "Discord", "contact": "ติดต่อ", "nightly": "Nightly", "copyright": "© {year} Manaflow", "language": "ภาษา" }, "home": { "taglinePrefix": "เทอร์มินัลที่สร้างมาเพื่อ", "typingCodingAgents": "เอเจนต์เขียนโค้ด", "typingMultitasking": "มัลติทาสกิ้ง", "subtitle": "แอป macOS เนทีฟที่สร้างบน Ghostty แท็บแนวตั้ง, วงแหวนแจ้งเตือนเมื่อ agent ต้องการความสนใจ, แยกหน้าจอ และ socket API สำหรับระบบอัตโนมัติ", "features": "ฟีเจอร์", "faq": "คำถามที่พบบ่อย", "communitySection": "ชุมชน", "feature": { "verticalTabs": "แท็บแนวตั้ง", "verticalTabsDesc": ": แถบข้างแสดง git branch, working directory, port และข้อความแจ้งเตือน", "notificationRings": "วงแหวนแจ้งเตือน", "notificationRingsDesc": ": พาเนลจะสว่างขึ้นเมื่อ agent ต้องการความสนใจ", "inAppBrowser": "เบราว์เซอร์ในแอป", "inAppBrowserDesc": ": แยกเบราว์เซอร์คู่กับเทอร์มินัลพร้อม API ที่เขียนสคริปต์ได้", "splitPanes": "แยกหน้าจอ", "splitPanesDesc": ": แยกแนวนอนและแนวตั้งภายในแต่ละแท็บ", "scriptable": "เขียนสคริปต์ได้", "scriptableDesc": ": CLI และ socket API สำหรับระบบอัตโนมัติและการเขียนสคริปต์", "gpuAccelerated": "เร่งความเร็วด้วย GPU", "gpuAcceleratedDesc": ": ขับเคลื่อนด้วย libghostty เพื่อการเรนเดอร์ที่ลื่นไหล", "lightweight": "เบา", "lightweightDesc": ": เนทีฟ Swift + AppKit ไม่ใช่ Electron", "keyboardShortcuts": "คีย์ลัด", "keyboardShortcutsDesc": ": คีย์ลัดมากมายสำหรับ workspace, แยกหน้าจอ, เบราว์เซอร์ และอื่นๆ" }, "faqGhosttyQ": "cmux เกี่ยวข้องกับ Ghostty อย่างไร?", "faqGhosttyA": "cmux ไม่ใช่ fork ของ Ghostty แต่ใช้ libghostty เป็นไลบรารีสำหรับการเรนเดอร์เทอร์มินัล เหมือนกับที่แอปต่างๆ ใช้ WebKit สำหรับ web view Ghostty เป็นเทอร์มินัลแบบ standalone ส่วน cmux เป็นแอปที่แตกต่างที่สร้างบน rendering engine ของมัน", "faqPlatformQ": "รองรับแพลตฟอร์มอะไรบ้าง?", "faqPlatformA": "macOS เท่านั้นในตอนนี้ cmux เป็นแอปเนทีฟ Swift + AppKit", "faqAgentsQ": "cmux ใช้งานร่วมกับ coding agent ตัวไหนได้บ้าง?", "faqAgentsA": "ทั้งหมดเลย cmux เป็นเทอร์มินัล ดังนั้น agent ใดก็ตามที่รันในเทอร์มินัลก็ใช้ได้ทันที: Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider, Goose, Amp, Cline, Cursor Agent และอะไรก็ตามที่คุณเปิดได้จาก command line", "faqNotificationsQ": "การแจ้งเตือนทำงานอย่างไร?", "faqNotificationsA": "เมื่อโปรเซสต้องการความสนใจ cmux จะแสดงวงแหวนแจ้งเตือนรอบพาเนล, badge ที่ยังไม่ได้อ่านในแถบข้าง, ป็อปโอเวอร์แจ้งเตือน และการแจ้งเตือนบนเดสก์ท็อป macOS สิ่งเหล่านี้ทำงานอัตโนมัติผ่าน terminal escape sequence มาตรฐาน (OSC 9/99/777) หรือคุณสามารถเรียกใช้ผ่าน cmux CLI และ Claude Code hooks", "faqShortcutsQ": "ปรับแต่งคีย์ลัดได้ไหม?", "faqShortcutsA": "การตั้งค่าคีย์ของเทอร์มินัลอ่านจากไฟล์คอนฟิก Ghostty (~/.config/ghostty/config) คีย์ลัดเฉพาะของ cmux (workspace, แยกหน้าจอ, เบราว์เซอร์, แจ้งเตือน) ปรับแต่งได้ในการตั้งค่า ดูคีย์ลัดเริ่มต้นสำหรับรายการทั้งหมด", "faqTmuxQ": "เปรียบเทียบกับ tmux อย่างไร?", "faqTmuxA": "tmux เป็น terminal multiplexer ที่รันภายในเทอร์มินัลใดก็ได้ cmux เป็นแอป macOS เนทีฟที่มี GUI: แท็บแนวตั้ง, แยกหน้าจอ, เบราว์เซอร์ในตัว และ socket API ทั้งหมดมีมาให้ ไม่ต้องมีไฟล์คอนฟิกหรือ prefix key", "faqFreeQ": "cmux ฟรีไหม?", "faqFreeA": "ใช่ cmux ใช้งานฟรี ซอร์สโค้ดอยู่บน GitHub" }, "community": { "title": "ชุมชน", "description": "เชื่อมต่อกับผู้ใช้ cmux คนอื่นๆ และทีมงานเบื้องหลัง", "discord": "Discord", "discordAction": "เข้าร่วม Discord ของเรา", "discordDesc": "พูดคุยกับชุมชน ขอความช่วยเหลือ และแชร์ความคิดเห็น", "githubAction": "ดูบน GitHub", "githubDesc": "กดดาว repo, รายงานปัญหา และมีส่วนร่วม", "twitter": "Twitter", "twitterAction": "ติดตามบน X", "twitterDesc": "อัปเดต ประกาศ และเคล็ดลับ", "youtube": "YouTube", "youtubeAction": "สมัครสมาชิก", "youtubeDesc": "สาธิต บทเรียน และ walkthrough", "linkedin": "LinkedIn", "linkedinAction": "ติดตามเรา", "linkedinDesc": "ข่าวบริษัทและอัปเดตด้านวิศวกรรม", "metaTitle": "ชุมชน — cmux", "metaDescription": "เข้าร่วมชุมชน cmux บน Discord, Twitter, GitHub และอื่นๆ" }, "blog": { "title": "บล็อก", "layoutTitle": "cmux blog", "metaTitle": "บล็อก", "metaDescription": "ข่าวสารและอัปเดตจากทีม cmux", "description": "ข่าวสารและอัปเดตจากทีม cmux", "posts": { "cmdShiftU": { "title": "Cmd+Shift+U", "summary": "Cmd+Shift+U นำทางระหว่าง agent ที่ทำงานเสร็จแล้วข้าม workspace ใน cmux ได้อย่างไร", "date": "4 มีนาคม 2026", "p1": "ฟีเจอร์ cmux ที่ผมชอบที่สุดคือ Cmd+Shift+U ตอนนี้ผมเปิด 17 workspace แต่ละอันรัน agent อยู่ ก่อนหน้านี้ผมต้องคลิกผ่านแท็บและแผงแจ้งเตือนเพื่อดูว่าอันไหนเสร็จแล้ว การพิมพ์เร็วกว่า", "p2": "Cmd+Shift+U กระโดดไปที่การแจ้งเตือนที่ยังไม่ได้อ่านล่าสุด ในทางปฏิบัติหมายถึง agent ตัวล่าสุดที่ทำงานเสร็จ มันจะสลับไป workspace ที่ถูกต้อง, โฟกัสพาเนลที่แน่นอน, กระพริบให้เห็นว่าต้องดูตรงไหน และทำเครื่องหมายว่าอ่านแล้ว ถ้าการแจ้งเตือนมาจากหน้าต่างอื่น หน้าต่างนั้นจะถูกนำมาด้านหน้า" }, "zenOfCmux": { "title": "The Zen of cmux", "summary": "cmux เป็นชิ้นส่วนพื้นฐาน ไม่ใช่โซลูชัน มันให้ชิ้นส่วนที่ประกอบกันได้ และ workflow เป็นเรื่องของคุณ", "date": "27 กุมภาพันธ์ 2026", "p1": "cmux ไม่ได้กำหนดว่านักพัฒนาจะต้องใช้เครื่องมืออย่างไร มันเป็นเทอร์มินัลและเบราว์เซอร์พร้อม CLI ที่เหลือเป็นเรื่องของคุณ", "p2": "cmux เป็นชิ้นส่วนพื้นฐาน ไม่ใช่โซลูชัน มันให้เทอร์มินัล, เบราว์เซอร์, แจ้งเตือน, workspace, แยกหน้าจอ, แท็บ และ CLI เพื่อควบคุมทั้งหมด cmux ไม่บังคับให้คุณใช้ coding agent แบบที่มีความเห็นตายตัว สิ่งที่คุณสร้างจากชิ้นส่วนพื้นฐานเป็นของคุณ", "p3": "นักพัฒนาที่ดีที่สุดสร้างเครื่องมือของตัวเองมาตลอด ยังไม่มีใครค้นพบวิธีที่ดีที่สุดในการทำงานกับ agent และทีมที่สร้างผลิตภัณฑ์ปิดก็ยังไม่พบเช่นกัน นักพัฒนาที่ใกล้ชิดกับ codebase ของตัวเองมากที่สุดจะเป็นคนค้นพบก่อน", "p4": "ให้ชิ้นส่วนพื้นฐานที่ประกอบกันได้แก่นักพัฒนาล้านคน แล้วพวกเขาจะร่วมกันค้นพบ workflow ที่มีประสิทธิภาพที่สุดเร็วกว่าทีมผลิตภัณฑ์ใดจะออกแบบจากบนลงล่างได้" }, "showHnLaunch": { "title": "เปิดตัว cmux บน Show HN", "summary": "cmux ขึ้นอันดับ 2 บน Hacker News, ถูกแชร์โดย Mitchell Hashimoto และกลายเป็นไวรัลในญี่ปุ่น", "date": "21 กุมภาพันธ์ 2026", "intro": "เราโพสต์ cmux บน Show HN เมื่อ 19 ก.พ.:", "blockquote1": "ผมรัน Claude Code และ Codex หลายเซสชันพร้อมกัน ก่อนหน้านี้ใช้ Ghostty กับแยกหน้าจอหลายอัน และพึ่งพาการแจ้งเตือน macOS เนทีฟเพื่อรู้ว่า agent ตัวไหนต้องการผม แต่เนื้อหาแจ้งเตือนของ Claude Code มีแค่ \"Claude is waiting for your input\" โดยไม่มีบริบท และเมื่อเปิดแท็บมากพอ ผมอ่านชื่อแท็บไม่ได้อีกแล้ว", "blockquote2": "ผมลอง coding orchestrator หลายตัวแต่ส่วนใหญ่เป็นแอป Electron/Tauri และประสิทธิภาพทำให้ผมรำคาญ ผมยังชอบเทอร์มินัลมากกว่าเพราะ GUI orchestrator ล็อคคุณเข้ากับ workflow ของมัน ดังนั้นผมจึงสร้าง cmux เป็นแอป macOS เนทีฟใน Swift/AppKit ใช้ libghostty สำหรับการเรนเดอร์เทอร์มินัลและอ่านคอนฟิก Ghostty ที่มีอยู่สำหรับธีม, ฟอนต์, สี และอื่นๆ", "blockquote3": "สิ่งที่เพิ่มเข้ามาหลักๆ คือแถบข้างและระบบแจ้งเตือน แถบข้างมีแท็บแนวตั้งที่แสดง git branch, working directory, port ที่กำลัง listen และข้อความแจ้งเตือนล่าสุดของแต่ละ workspace ระบบแจ้งเตือนรับ terminal sequence (OSC 9/99/777) และมี CLI (cmux notify) ที่คุณต่อเข้ากับ agent hook สำหรับ Claude Code, OpenCode ฯลฯ ได้ เมื่อ agent กำลังรอ พาเนลของมันจะมีวงแหวนสีน้ำเงินและแท็บจะสว่างในแถบข้าง ผมจึงบอกได้ว่าอันไหนต้องการผมข้ามแยกหน้าจอและแท็บ Cmd+Shift+U กระโดดไปที่แจ้งเตือนที่ยังไม่ได้อ่านล่าสุด", "blockquote4": "เบราว์เซอร์ในแอปมี API ที่เขียนสคริปต์ได้ Agent สามารถ snapshot accessibility tree, รับ element ref, คลิก, กรอกฟอร์ม, evaluate JS และอ่าน console log คุณสามารถแยกเบราว์เซอร์ข้างเทอร์มินัลและให้ Claude Code โต้ตอบกับ dev server ของคุณโดยตรง", "blockquote5": "ทุกอย่างเขียนสคริปต์ได้ผ่าน CLI และ socket API: สร้าง workspace/แท็บ, แยกหน้าจอ, ส่งการกดปุ่ม, เปิด URL ในเบราว์เซอร์", "hitNumber2": "ตอนที่ขึ้นสูงสุด มันขึ้นอันดับ 2 บน Hacker News Mitchell Hashimoto แชร์มัน:", "favoriteComment": "คอมเมนต์ที่ผมชอบที่สุดจากกระทู้ HN:", "viralJapan": "อย่างไม่คาดคิด cmux กลายเป็นไวรัลในญี่ปุ่น:", "translation": "คำแปล: \"ดูดีนะ แอปเทอร์มินัลที่สร้างบน Ghostty ออกแบบมาเพื่อไม่ให้หลงทางเมื่อรัน CLI หลายตัวอย่าง Claude Code พร้อมกัน แผงที่รอ input จะมีกรอบสีน้ำเงิน และมีระบบแจ้งเตือนของตัวเอง\"", "viralChina": "และกึ่งไวรัลในจีน:", "extensions": "อีกสิ่งที่น่าตื่นเต้นคือเห็นคนสร้างสิ่งต่างๆ บน cmux CLI sasha สร้างส่วนขยาย pi-cmux ที่แสดงข้อมูลโมเดล, การใช้โทเค็น และสถานะ agent ในแถบข้าง:", "scriptable": "ทุกอย่างใน cmux เขียนสคริปต์ได้ผ่าน CLI: สร้าง workspace, ส่งการกดปุ่ม, ควบคุมเบราว์เซอร์, อ่านการแจ้งเตือน ส่วนหนึ่งของปรัชญา cmux คือการเขียนโปรแกรมได้และประกอบกันได้ เพื่อให้คนปรับแต่งวิธีทำงานกับ coding agent ได้ สถานะของ coding agent เปลี่ยนแปลงเร็ว และคุณไม่อยากถูกล็อคอยู่กับ GUI orchestrator ที่ไม่ยืดหยุ่นซึ่งตามไม่ทัน", "cta": "ถ้าคุณรัน coding agent หลายตัว ลองใช้ cmux ดู" }, "introducingCmux": { "title": "แนะนำ cmux", "summary": "เทอร์มินัล macOS เนทีฟที่สร้างบน Ghostty ออกแบบมาเพื่อรัน AI coding agent หลายตัวพร้อมกัน", "date": "12 กุมภาพันธ์ 2026", "p1": "cmux เป็นแอปพลิเคชันเทอร์มินัล macOS เนทีฟที่สร้างบน Ghostty ออกแบบมาตั้งแต่ต้นสำหรับนักพัฒนาที่รัน AI coding agent หลายตัวพร้อมกัน", "whyTitle": "ทำไมต้อง cmux?", "whyP": "Workflow การพัฒนาสมัยใหม่มักต้องรัน agent หลายตัวพร้อมกัน Claude Code, Codex และเครื่องมืออื่นๆ แต่ละตัวในเทอร์มินัลของตัวเอง การติดตามว่าตัวไหนต้องการความสนใจและสลับระหว่างพวกมันอย่างรวดเร็วคือปัญหาที่ cmux แก้ไข", "featuresTitle": "ฟีเจอร์หลัก", "getStartedTitle": "เริ่มต้นใช้งาน", "getStartedP": "ติดตั้ง cmux ผ่าน Homebrew หรือดาวน์โหลด DMG จากคู่มือเริ่มต้นใช้งาน", "featureVerticalTabsLabel": "แท็บแนวตั้ง", "featureVerticalTabsDesc": "ดูเทอร์มินัลทั้งหมดได้ในแถบข้าง", "featureNotificationsLabel": "วงแหวนแจ้งเตือน", "featureNotificationsDesc": "แท็บกระพริบเมื่อ agent ต้องการ input ของคุณ", "featureSplitPanesLabel": "แยกหน้าจอ", "featureSplitPanesDesc": "แยกแนวนอนและแนวตั้งภายในแต่ละ workspace", "featureSocketApiLabel": "Socket API", "featureSocketApiDesc": "ควบคุมแบบโปรแกรมเพื่อสร้างแท็บและส่ง input", "featureGpuLabel": "เร่งความเร็วด้วย GPU", "featureGpuDesc": "ขับเคลื่อนด้วย libghostty เพื่อการเรนเดอร์ที่ลื่นไหล" } }, "zenOfCmux": { "metaTitle": "เซนของ cmux", "metaDescription": "cmux เป็นพื้นฐาน ไม่ใช่โซลูชัน ให้ชิ้นส่วนที่ประกอบได้และเวิร์กโฟลว์ขึ้นอยู่กับคุณ" }, "cmdShiftU": { "metaTitle": "Cmd+Shift+U", "metaDescription": "ทางลัดคีย์บอร์ดใหม่ที่เปลี่ยนวิธีการโต้ตอบกับ cmux" }, "showHnLaunch": { "metaTitle": "เปิดตัว cmux บน Show HN", "metaDescription": "เรื่องราวการเปิดตัว cmux บน Hacker News" }, "introducingCmux": { "metaTitle": "แนะนำ cmux", "metaDescription": "ทำไมเราถึงสร้าง cmux เทอร์มินัลใหม่สำหรับ macOS" } }, "docs": { "layoutTitle": "cmux docs", "gettingStarted": { "title": "เริ่มต้นใช้งาน", "metaDescription": "ติดตั้ง cmux เทอร์มินัล macOS เนทีฟสำหรับ AI coding agent ดาวน์โหลด Homebrew, DMG, ตั้งค่า CLI และอัปเดตอัตโนมัติผ่าน Sparkle", "intro": "cmux เป็นเทอร์มินัล macOS เนทีฟที่เบาสร้างบน Ghostty สำหรับจัดการ AI coding agent หลายตัว มีแท็บแนวตั้ง, แผงแจ้งเตือน และ API ควบคุมผ่าน socket", "install": "ติดตั้ง", "dmgRecommended": "DMG (แนะนำ)", "dmgDesc": "เปิด .dmg แล้วลาก cmux ไปที่โฟลเดอร์ Applications cmux อัปเดตอัตโนมัติผ่าน Sparkle คุณจึงต้องดาวน์โหลดแค่ครั้งเดียว", "homebrew": "Homebrew", "updateLater": "อัปเดตภายหลัง:", "firstLaunchCallout": "เมื่อเปิดครั้งแรก macOS อาจขอให้คุณยืนยันการเปิดแอปจากนักพัฒนาที่ระบุตัวตนแล้ว คลิก เปิด เพื่อดำเนินการต่อ", "verifyTitle": "ยืนยันการติดตั้ง", "verifyDesc": "เปิด cmux แล้วคุณจะเห็น:", "verifyItem1": "หน้าต่างเทอร์มินัลที่มีแถบข้างแท็บแนวตั้งทางซ้าย", "verifyItem2": "workspace เริ่มต้นหนึ่งอันเปิดอยู่แล้ว", "verifyItem3": "เทอร์มินัลที่ขับเคลื่อนด้วย Ghostty พร้อมรับ input", "cliSetup": "ตั้งค่า CLI", "cliDesc": "cmux มีเครื่องมือ command-line สำหรับระบบอัตโนมัติ ภายในเทอร์มินัล cmux มันทำงานอัตโนมัติ หากต้องการใช้ CLI จากนอก cmux ให้สร้าง symlink:", "cliThen": "จากนั้นคุณสามารถรันคำสั่งเช่น:", "autoUpdates": "อัปเดตอัตโนมัติ", "autoUpdatesDesc": "cmux ตรวจสอบอัปเดตอัตโนมัติผ่าน Sparkle เมื่อมีอัปเดต คุณจะเห็นปุ่มอัปเดตใน titlebar คุณยังตรวจสอบด้วยตัวเองได้ผ่าน cmux > Check for Updates ในแถบเมนู", "sessionRestore": "การกู้คืนเซสชัน (พฤติกรรมปัจจุบัน)", "sessionRestoreDesc": "หลังจากเปิดใหม่ cmux กู้คืน layout และ metadata เท่านั้น:", "sessionItem1": "Layout ของหน้าต่าง, workspace และพาเนล", "sessionItem2": "Working directory", "sessionItem3": "Terminal scrollback (พยายามอย่างดีที่สุด)", "sessionItem4": "URL เบราว์เซอร์และประวัติการนำทาง", "sessionCallout": "cmux ยังไม่กู้คืนสถานะโปรเซสที่กำลังทำงาน เซสชันแอปเทอร์มินัลที่ใช้งานอยู่เช่น Claude Code, tmux และ vim จะไม่ถูกกู้คืนหลังรีสตาร์ทแอป", "requirements": "ความต้องการ", "reqItem1": "macOS 14.0 หรือใหม่กว่า", "reqItem2": "Apple Silicon หรือ Intel Mac", "metaTitle": "เริ่มต้นใช้งาน" }, "concepts": { "title": "แนวคิด", "metaDescription": "cmux จัดระเบียบเทอร์มินัลอย่างไร: หน้าต่าง, workspace, พาเนล และ surface ลำดับชั้นเบื้องหลังแถบข้าง, แยกหน้าจอ และ socket API", "intro": "cmux จัดระเบียบเทอร์มินัลของคุณเป็นลำดับชั้น 4 ระดับ การเข้าใจระดับเหล่านี้ช่วยเมื่อใช้ socket API, CLI และคีย์ลัด", "hierarchy": "ลำดับชั้น", "windowTitle": "หน้าต่าง", "windowDesc": "หน้าต่าง macOS เปิดหลายหน้าต่างด้วย {shortcut} แต่ละหน้าต่างมีแถบข้างของตัวเองพร้อม workspace อิสระ", "workspaceTitle": "Workspace", "workspaceDesc": "รายการในแถบข้าง แต่ละ workspace มีพาเนลแยกหน้าจอหนึ่งอันหรือมากกว่า Workspace คือสิ่งที่คุณเห็นในรายการแถบข้างซ้าย", "workspaceNote": "ใน UI และคีย์ลัด workspace มักถูกเรียกว่า \"แท็บ\" เพราะมันทำหน้าที่เหมือนแท็บในแถบข้าง Socket API และตัวแปรสภาพแวดล้อมใช้คำว่า \"workspace\"", "contextHeader": "บริบท", "termUsedHeader": "คำที่ใช้", "sidebarUI": "UI แถบข้าง", "tab": "แท็บ", "keyboardShortcuts": "คีย์ลัด", "workspaceOrTab": "Workspace หรือแท็บ", "socketAPI": "Socket API", "environmentVariable": "ตัวแปรสภาพแวดล้อม", "workspaceShortcuts": "คีย์ลัด: {new} (ใหม่), {jump} (กระโดด), {close} (ปิด), {prevNext} (ก่อนหน้า/ถัดไป)", "paneTitle": "พาเนล", "paneDesc": "พื้นที่แยกภายใน workspace สร้างโดยแยกด้วย {right} (ขวา) หรือ {down} (ล่าง) นำทางระหว่างพาเนลด้วย {nav} + ปุ่มลูกศร", "paneNote": "แต่ละพาเนลสามารถมี surface หลายอัน (แท็บภายในพาเนล)", "surfaceTitle": "Surface", "surfaceDesc": "แท็บภายในพาเนล แต่ละพาเนลมี tab bar ของตัวเองและสามารถมี surface หลายอัน สร้างด้วย {new}, นำทางด้วย {prev} / {next} หรือ {jump}", "surfaceNote": "Surface คือเซสชันเทอร์มินัลหรือเบราว์เซอร์ที่คุณโต้ตอบด้วย แต่ละ surface มีตัวแปรสภาพแวดล้อม CMUX_SURFACE_ID ของตัวเอง", "panelTitle": "Panel", "panelDesc": "เนื้อหาภายใน surface ปัจจุบันมีสองประเภท:", "panelTerminal": "Terminal: เซสชันเทอร์มินัล Ghostty", "panelBrowser": "Browser: embedded web view", "panelNote": "Panel เป็นแนวคิดภายในเป็นหลัก ใน socket API และ CLI คุณโต้ตอบกับ surface มากกว่า panel โดยตรง", "visualExample": "ตัวอย่างภาพ", "visualExampleDesc": "ในตัวอย่างนี้:", "visualItem1": "หน้าต่างมีแถบข้างที่มีสาม workspace (dev, server, logs)", "visualItem2": "Workspace \"dev\" ถูกเลือก แสดงสองพาเนลเคียงข้างกัน", "visualItem3": "พาเนล 1 มีสอง surface ([S1] และ [S2] ใน tab bar) โดย S1 เป็นตัวที่ใช้งานอยู่", "visualItem4": "พาเนล 2 มี surface หนึ่งอัน", "visualItem5": "แต่ละ surface มี panel (เทอร์มินัลในกรณีนี้)", "summary": "สรุป", "levelHeader": "ระดับ", "whatItIsHeader": "คืออะไร", "createdByHeader": "สร้างโดย", "identifiedByHeader": "ระบุโดย", "macosWindow": "หน้าต่าง macOS", "sidebarEntry": "รายการในแถบข้าง", "splitRegion": "พื้นที่แยก", "tabWithinPane": "แท็บภายในพาเนล", "terminalOrBrowser": "เทอร์มินัลหรือเบราว์เซอร์", "automatic": "อัตโนมัติ", "paneIdSocket": "Pane ID (socket API)", "panelIdInternal": "Panel ID (ภายใน)", "metaTitle": "แนวคิด" }, "configuration": { "title": "การตั้งค่า", "metaDescription": "ตั้งค่า cmux ผ่านไฟล์คอนฟิก Ghostty ฟอนต์, ธีม, สี, สไตล์แยกหน้าจอ, scrollback และการตั้งค่าแอปสำหรับโหมดระบบอัตโนมัติ", "intro": "cmux อ่านการตั้งค่าจากไฟล์คอนฟิก Ghostty ให้ตัวเลือกที่คุ้นเคยถ้าคุณมาจาก Ghostty", "configLocations": "ตำแหน่งไฟล์คอนฟิก", "configLocationsDesc": "cmux ค้นหาการตั้งค่าในตำแหน่งเหล่านี้ (ตามลำดับ):", "createConfig": "สร้างไฟล์คอนฟิกถ้ายังไม่มี:", "appearance": "รูปลักษณ์", "font": "ฟอนต์", "colors": "สี", "splitPanes": "แยกหน้าจอ", "behavior": "พฤติกรรม", "scrollback": "Scrollback", "workingDirectory": "Working directory", "appSettings": "การตั้งค่าแอป", "appSettingsDesc": "การตั้งค่าในแอปพร้อมใช้งานผ่าน cmux > Settings ({shortcut}):", "themeMode": "โหมดธีม", "themeSystem": "System: ตามรูปลักษณ์ macOS", "themeLight": "Light: โหมดสว่างเสมอ", "themeDark": "Dark: โหมดมืดเสมอ", "automationMode": "โหมดระบบอัตโนมัติ", "automationModeDesc": "ควบคุมระดับการเข้าถึง socket:", "automationOff": "Off: ไม่มีการควบคุม socket (ปลอดภัยที่สุด)", "automationCmux": "cmux processes only: อนุญาตเฉพาะโปรเซสที่เริ่มจากภายในเทอร์มินัล cmux เท่านั้น", "automationAll": "allowAll: อนุญาตให้โปรเซสในเครื่องใดก็ได้เชื่อมต่อ (CMUX_SOCKET_MODE=allowAll, override ผ่าน env เท่านั้น)", "automationCallout": "บนเครื่องที่ใช้ร่วมกัน ควรใช้โหมด \"Off\" หรือ \"cmux processes only\"", "browserLinkBehavior": "พฤติกรรมลิงก์เบราว์เซอร์", "browserLinkDesc": "ใน Settings > Browser cmux มีรายการ host สองรายการที่มีจุดประสงค์ต่างกัน:", "browserHostsEmbed": "Hosts to Open in Embedded Browser: ใช้กับลิงก์ที่คลิกจากเอาต์พุตเทอร์มินัล Host ในรายการนี้เปิดใน cmux ส่วน host อื่นเปิดในเบราว์เซอร์เริ่มต้นของคุณ รองรับ host เดี่ยวหรือ wildcard ต่อบรรทัด (เช่น: example.com, *.internal.example)", "browserHostsHttp": "HTTP Hosts Allowed in Embedded Browser: ใช้เฉพาะกับ URL แบบ HTTP (ไม่ใช่ HTTPS) Host ในรายการนี้เปิดใน cmux ได้โดยไม่มีข้อความเตือน ค่าเริ่มต้นรวม localhost, 127.0.0.1, ::1, 0.0.0.0 และ *.localtest.me", "exampleConfig": "ตัวอย่างคอนฟิก", "metaTitle": "การตั้งค่า" }, "customCommands": { "title": "คำสั่งที่กำหนดเอง", "metaTitle": "คำสั่งที่กำหนดเอง", "metaDescription": "กำหนดคำสั่งที่กำหนดเองและเลย์เอาต์ workspace ใน cmux.json รองรับการตั้งค่าแบบต่อโปรเจกต์และแบบทั่วไปพร้อมการตรวจสอบไฟล์แบบเรียลไทม์", "intro": "กำหนดคำสั่งที่กำหนดเองและเลย์เอาต์ workspace โดยเพิ่มไฟล์ cmux.json ลงในรากโปรเจกต์หรือ ~/.config/cmux/ คำสั่งจะปรากฏในแผงคำสั่ง", "fileLocations": "ตำแหน่งไฟล์", "fileLocationsDesc": "cmux ค้นหาการตั้งค่าจากสองที่:", "localConfig": "ต่อโปรเจกต์:", "localConfigDesc": "อยู่ในไดเรกทอรีโปรเจกต์ของคุณ มีความสำคัญสูงกว่า", "globalConfig": "ทั่วไป:", "globalConfigDesc": "ใช้กับทุกโปรเจกต์ เติมคำสั่งที่ยังไม่ได้กำหนดในท้องถิ่น", "precedenceNote": "คำสั่งท้องถิ่นจะแทนที่คำสั่งทั่วไปที่มีชื่อเดียวกัน", "liveReload": "การเปลี่ยนแปลงจะถูกรับโดยอัตโนมัติ — ไม่จำเป็นต้องรีสตาร์ท", "schema": "สคีมา", "schemaDesc": "ไฟล์ cmux.json มีอาร์เรย์ commands แต่ละคำสั่งเป็นคำสั่ง shell แบบง่ายหรือนิยาม workspace แบบเต็ม:", "simpleCommands": "คำสั่งแบบง่าย", "simpleCommandsDesc": "คำสั่งแบบง่ายรันคำสั่ง shell ในเทอร์มินัลที่กำลังโฟกัสอยู่:", "simpleCommandFields": "ฟิลด์", "fieldName": "แสดงในแผงคำสั่ง (จำเป็น)", "fieldDescription": "คำอธิบายเพิ่มเติม (ไม่บังคับ)", "fieldKeywords": "คำค้นหาเพิ่มเติมสำหรับแผงคำสั่ง", "fieldCommand": "คำสั่ง shell ที่จะรันในเทอร์มินัลที่โฟกัส", "fieldConfirm": "แสดงกล่องโต้ตอบยืนยันก่อนรัน", "simpleCommandCwdNote": "คำสั่งแบบง่ายจะรันในไดเรกทอรีการทำงานปัจจุบันของเทอร์มินัลที่โฟกัสอยู่ หากคำสั่งของคุณใช้พาธสัมพัทธ์กับโปรเจกต์ ให้เพิ่มนำหน้าด้วย", "simpleCommandCwdRepoRoot": "เพื่อรันจากรูทของ repo หรือ", "simpleCommandCwdCustomPath": "สำหรับไดเรกทอรีที่ต้องการ", "workspaceCommands": "คำสั่ง workspace", "workspaceCommandsDesc": "คำสั่ง workspace สร้าง workspace ใหม่ที่มีเลย์เอาต์กำหนดเองของการแบ่ง เทอร์มินัล และแผงเบราว์เซอร์:", "workspaceFields": "ฟิลด์ workspace", "wsFieldName": "ชื่อแท็บ workspace (ค่าเริ่มต้นคือชื่อคำสั่ง)", "wsFieldCwd": "ไดเรกทอรีทำงานสำหรับ workspace", "wsFieldColor": "สีแท็บ workspace", "wsFieldLayout": "ต้นไม้เลย์เอาต์ที่กำหนดการแบ่งและแผง", "restartBehavior": "พฤติกรรมการรีสตาร์ท", "restartBehaviorDesc": "ควบคุมสิ่งที่เกิดขึ้นเมื่อ workspace ที่มีชื่อเดียวกันมีอยู่แล้ว:", "restartIgnore": "สลับไปยัง workspace ที่มีอยู่ (ค่าเริ่มต้น)", "restartRecreate": "ปิดและสร้างใหม่โดยไม่ถาม", "restartConfirm": "ถามผู้ใช้ก่อนสร้างใหม่", "layoutTree": "ต้นไม้เลย์เอาต์", "layoutTreeDesc": "ต้นไม้เลย์เอาต์กำหนดวิธีจัดเรียงแผงโดยใช้โหนดการแบ่งแบบวนซ้ำ:", "splitNode": "โหนดการแบ่ง", "splitNodeDesc": "แบ่งพื้นที่ออกเป็นสองส่วน:", "or": "หรือ", "splitPosition": "ตำแหน่งตัวแบ่งตั้งแต่ 0.1 ถึง 0.9 (ค่าเริ่มต้น 0.5)", "splitChildren": "โหนดลูกสองโหนดพอดี (การแบ่งหรือแผง)", "paneNode": "โหนดแผง", "paneNodeDesc": "โหนดใบที่มี surface หนึ่งอันหรือมากกว่า (แท็บภายในแผง)", "surfaceDefinition": "นิยาม surface", "surfaceDefinitionDesc": "แต่ละ surface ในแผงสามารถเป็นเทอร์มินัลหรือเบราว์เซอร์:", "surfaceName": "ชื่อแท็บที่กำหนดเอง", "surfaceCommand": "คำสั่ง shell ที่รันอัตโนมัติเมื่อสร้าง (เฉพาะเทอร์มินัล)", "surfaceCwd": "ไดเรกทอรีทำงานสำหรับ surface นี้", "surfaceEnv": "ตัวแปรสภาพแวดล้อมในรูปแบบคู่คีย์-ค่า", "surfaceUrl": "URL ที่จะเปิด (เฉพาะเบราว์เซอร์)", "surfaceFocus": "โฟกัสที่ surface นี้หลังสร้าง", "cwdResolution": "การแก้ไขไดเรกทอรีทำงาน", "omitted": "ละไว้", "cwdRelative": "ไดเรกทอรีทำงานของ workspace", "cwdSubdir": "สัมพัทธ์กับไดเรกทอรีทำงานของ workspace", "cwdHome": "ขยายไปยังไดเรกทอรีหลัก", "absolutePath": "พาธสัมบูรณ์", "cwdAbsolute": "ใช้ตามที่เป็น", "fullExample": "ตัวอย่างเต็ม" }, "keyboardShortcuts": { "title": "คีย์ลัด", "description": "คีย์ลัดทั้งหมดใน cmux จัดกลุ่มตามหมวดหมู่", "metaDescription": "คีย์ลัด cmux ทั้งหมดสำหรับ workspace, surface, แยกหน้าจอ, เบราว์เซอร์, แจ้งเตือน, ค้นหา และจัดการหน้าต่างบน macOS", "searchPlaceholder": "ค้นหาทางลัด...", "searchLabel": "ค้นหาทางลัดแป้นพิมพ์", "noResults": "ไม่พบทางลัด", "noResultsHint": "ลองใช้คำค้นหาอื่น", "cat": { "workspaces": "Workspace", "workspacesBlurb": "Workspace อยู่ในแถบด้านข้าง Workspace แต่ละอันมีชุดพาเนลและ surface ของตัวเอง", "surfaces": "Surface", "surfacesBlurb": "Surface คือแท็บภายในพาเนล", "splitPanes": "พาเนลแบ่ง", "browser": "เบราว์เซอร์", "notifications": "การแจ้งเตือน", "find": "ค้นหา", "terminal": "เทอร์มินัล", "window": "หน้าต่าง" }, "sc": { "ws-new": "Workspace ใหม่", "ws-prev": "Workspace ก่อนหน้า", "ws-next": "Workspace ถัดไป", "ws-jump-1-8": "ไปยัง workspace 1–8", "ws-jump-last": "ไปยัง workspace สุดท้าย", "ws-close": "ปิด workspace", "ws-rename": "เปลี่ยนชื่อ workspace", "sf-new": "Surface ใหม่", "sf-prev-1": "Surface ก่อนหน้า", "sf-prev-2": "Surface ก่อนหน้า", "sf-jump-1-8": "ไปยัง surface 1–8", "sf-jump-last": "ไปยัง surface สุดท้าย", "sf-close": "ปิด surface", "sp-right": "แบ่งขวา", "sp-down": "แบ่งล่าง", "sp-focus": "โฟกัสพาเนลตามทิศทาง", "sp-browser-right": "แบ่งเบราว์เซอร์ขวา", "sp-browser-down": "แบ่งเบราว์เซอร์ล่าง", "br-open": "เปิด surface เบราว์เซอร์", "br-addr": "โฟกัสแถบที่อยู่", "br-forward": "ไปข้างหน้า", "br-reload": "โหลดหน้าใหม่", "br-devtools": "เปิดเครื่องมือนักพัฒนา", "nt-panel": "แสดงแผงการแจ้งเตือน", "nt-latest": "ไปยังที่ยังไม่ได้อ่านล่าสุด", "nt-flash": "เรียกการกระพริบ", "fd-find": "ค้นหา", "fd-next-prev": "ค้นหาถัดไป / ก่อนหน้า", "fd-hide": "ซ่อนแถบค้นหา", "fd-selection": "ใช้ข้อความที่เลือกสำหรับค้นหา", "tm-clear": "ล้างประวัติการเลื่อน", "tm-copy": "คัดลอก (เมื่อเลือกข้อความ)", "tm-paste": "วาง", "tm-font": "เพิ่ม / ลดขนาดตัวอักษร", "tm-reset": "รีเซ็ตขนาดตัวอักษร", "wn-new": "หน้าต่างใหม่", "wn-settings": "การตั้งค่า", "wn-reload": "โหลดการตั้งค่าใหม่", "wn-quit": "ออก" }, "metaTitle": "ทางลัดคีย์บอร์ด" }, "api": { "title": "เอกสาร API", "metaDescription": "เอกสาร cmux CLI และ Unix socket API การจัดการ workspace, แยกหน้าจอ, ควบคุม input, แจ้งเตือน, metadata แถบข้าง, ตัวแปรสภาพแวดล้อม และวิธีตรวจจับ", "intro": "cmux มีทั้งเครื่องมือ CLI และ Unix socket สำหรับการควบคุมแบบโปรแกรม ทุกคำสั่งพร้อมใช้งานผ่านทั้งสองอินเทอร์เฟซ", "socket": "Socket", "buildHeader": "Build", "pathHeader": "Path", "release": "Release", "debug": "Debug", "taggedDebug": "Tagged debug build", "socketOverride": "Override ด้วยตัวแปรสภาพแวดล้อม CMUX_SOCKET_PATH ส่ง JSON request ที่จบด้วย newline หนึ่งรายการต่อการเรียก:", "socketCallout": "JSON socket request ต้องใช้ method และ params Legacy v1 JSON payload เช่น '{'\"command\":\"...\"'}' ไม่รองรับ", "accessModes": "โหมดการเข้าถึง", "modeHeader": "โหมด", "descriptionHeader": "คำอธิบาย", "howToEnableHeader": "วิธีเปิดใช้งาน", "offMode": "ปิด socket", "offEnable": "Settings UI หรือ CMUX_SOCKET_MODE=off", "cmuxOnlyMode": "เฉพาะโปรเซสที่เกิดภายในเทอร์มินัล cmux เท่านั้นที่เชื่อมต่อได้", "cmuxOnlyEnable": "โหมดเริ่มต้นใน Settings UI", "allowAllMode": "อนุญาตให้โปรเซสในเครื่องใดก็ได้เชื่อมต่อ (ไม่ตรวจสอบ ancestry)", "allowAllEnable": "Override ผ่าน environment เท่านั้น: CMUX_SOCKET_MODE=allowAll", "accessCallout": "บนเครื่องที่ใช้ร่วมกัน ใช้ Off หรือ cmux processes only", "cliOptions": "ตัวเลือก CLI", "flagHeader": "Flag", "customSocketPath": "กำหนด socket path เอง", "outputJson": "แสดงผลในรูปแบบ JSON", "targetWindow": "ระบุหน้าต่างเป้าหมาย", "targetWorkspace": "ระบุ workspace เป้าหมาย", "targetSurface": "ระบุ surface เป้าหมาย", "idFormat": "ควบคุมรูปแบบ identifier ในเอาต์พุต JSON", "workspaceCommands": "คำสั่ง workspace", "listWorkspacesDesc": "แสดงรายการ workspace ที่เปิดอยู่ทั้งหมด", "newWorkspaceDesc": "สร้าง workspace ใหม่", "selectWorkspaceDesc": "สลับไปยัง workspace ที่ระบุ", "currentWorkspaceDesc": "รับ workspace ที่ใช้งานอยู่ปัจจุบัน", "closeWorkspaceDesc": "ปิด workspace", "splitCommands": "คำสั่งแยกหน้าจอ", "newSplitDesc": "สร้างพาเนลแยกใหม่ ทิศทาง: left, right, up, down", "listSurfacesDesc": "แสดงรายการ surface ทั้งหมดใน workspace ปัจจุบัน", "focusSurfaceDesc": "โฟกัส surface ที่ระบุ", "inputCommands": "คำสั่ง input", "sendDesc": "ส่งข้อความไปยังเทอร์มินัลที่โฟกัสอยู่", "sendKeyDesc": "ส่งการกดปุ่ม คีย์: enter, tab, escape, backspace, delete, up, down, left, right", "sendSurfaceDesc": "ส่งข้อความไปยัง surface ที่ระบุ", "sendKeySurfaceDesc": "ส่งการกดปุ่มไปยัง surface ที่ระบุ", "notificationCommands": "คำสั่งแจ้งเตือน", "notifyDesc": "ส่งการแจ้งเตือน", "listNotificationsDesc": "แสดงรายการแจ้งเตือนทั้งหมด", "clearNotificationsDesc": "ล้างแจ้งเตือนทั้งหมด", "sidebarMetadata": "คำสั่ง metadata แถบข้าง", "sidebarMetadataDesc": "ตั้งค่า status pill, progress bar และรายการ log ในแถบข้างสำหรับ workspace ใดก็ได้ เหมาะสำหรับ build script, CI integration และ AI coding agent ที่ต้องการแสดงสถานะอย่างรวดเร็ว", "setStatusDesc": "ตั้ง status pill ในแถบข้าง ใช้ key ที่ไม่ซ้ำเพื่อให้เครื่องมือต่างๆ จัดการรายการของตัวเองได้", "clearStatusDesc": "ลบรายการ status ในแถบข้างตาม key", "listStatusDesc": "แสดงรายการ status ทั้งหมดในแถบข้างสำหรับ workspace", "setProgressDesc": "ตั้ง progress bar ในแถบข้าง (0.0 ถึง 1.0)", "clearProgressDesc": "ล้าง progress bar ในแถบข้าง", "logDesc": "เพิ่มรายการ log ในแถบข้าง ระดับ: info, progress, success, warning, error", "clearLogDesc": "ล้างรายการ log ทั้งหมดในแถบข้าง", "listLogDesc": "แสดงรายการ log ในแถบข้าง", "sidebarStateDesc": "แสดง metadata แถบข้างทั้งหมด (cwd, git branch, port, status, progress, log)", "utilityCommands": "คำสั่งยูทิลิตี้", "pingDesc": "ตรวจสอบว่า cmux กำลังทำงานและตอบสนองอยู่", "capabilitiesDesc": "แสดง socket method ที่พร้อมใช้งานและโหมดการเข้าถึงปัจจุบัน", "identifyDesc": "แสดงบริบทหน้าต่าง/workspace/พาเนล/surface ที่โฟกัสอยู่", "envVariables": "ตัวแปรสภาพแวดล้อม", "variableHeader": "ตัวแปร", "socketPathDesc": "Override socket path ที่ใช้โดย CLI และ integration", "socketEnableDesc": "บังคับเปิด/ปิด socket (1/0, true/false, on/off)", "socketModeDesc": "Override โหมดการเข้าถึง (cmuxOnly, allowAll, off) รับ cmux-only/cmux_only และ allow-all/allow_all ด้วย", "workspaceIdDesc": "ตั้งอัตโนมัติ: workspace ID ปัจจุบัน", "surfaceIdDesc": "ตั้งอัตโนมัติ: surface ID ปัจจุบัน", "termProgramDesc": "ตั้งเป็น ghostty", "termDesc": "ตั้งเป็น xterm-ghostty", "envCallout": "ค่า CMUX_SOCKET_MODE แบบเก่า full และ notifications ยังรับได้เพื่อความเข้ากันได้", "detectingCmux": "การตรวจจับ cmux", "examples": "ตัวอย่าง", "pythonClient": "Python client", "shellScript": "Shell script", "buildScriptNotification": "Build script พร้อมแจ้งเตือน", "metaTitle": "เอกสาร API" }, "notifications": { "title": "การแจ้งเตือน", "metaDescription": "ส่งการแจ้งเตือนเดสก์ท็อปจาก AI agent และสคริปต์ใน cmux CLI, OSC 99/777 escape sequence และการรวมกับ Claude Code hooks", "intro": "cmux รองรับการแจ้งเตือนเดสก์ท็อป ช่วยให้ AI agent และสคริปต์แจ้งเตือนคุณเมื่อต้องการความสนใจ", "lifecycle": "วงจรชีวิต", "received": "ได้รับ: แจ้งเตือนปรากฏในแผง, แจ้งเตือนเดสก์ท็อปทำงาน (ถ้าไม่ถูกระงับ)", "unread": "ยังไม่ได้อ่าน: แสดง badge บนแท็บ workspace", "read": "อ่านแล้ว: ล้างเมื่อคุณดู workspace นั้น", "cleared": "ล้างแล้ว: ลบออกจากแผง", "suppression": "การระงับ", "suppressionDesc": "แจ้งเตือนเดสก์ท็อปจะถูกระงับเมื่อ:", "suppressItem1": "หน้าต่าง cmux ถูกโฟกัส", "suppressItem2": "workspace ที่ส่งแจ้งเตือนกำลังทำงานอยู่", "suppressItem3": "แผงแจ้งเตือนเปิดอยู่", "notificationPanel": "แผงแจ้งเตือน", "notificationPanelDesc": "กด ⌘⇧I เพื่อเปิดแผงแจ้งเตือน คลิกที่แจ้งเตือนเพื่อกระโดดไป workspace นั้น กด ⌘⇧U เพื่อกระโดดตรงไป workspace ที่มีแจ้งเตือนที่ยังไม่ได้อ่านล่าสุด", "customCommand": "คำสั่งที่กำหนดเอง", "customCommandDesc": "รัน shell command ทุกครั้งที่มีการตั้งเวลาแจ้งเตือน ตั้งค่าใน Settings > App > Notification Command คำสั่งรันผ่าน /bin/sh -c พร้อมตัวแปรสภาพแวดล้อมเหล่านี้:", "customCommandNote": "คำสั่งทำงานอิสระจากตัวเลือกเสียงระบบ ตั้งตัวเลือกเป็น \"None\" เพื่อใช้เฉพาะคำสั่งที่กำหนดเอง หรือใช้ทั้งสองสำหรับเสียงระบบพร้อมกับ action ที่กำหนดเอง", "sending": "การส่งแจ้งเตือน", "cli": "CLI", "osc777Title": "OSC 777 (แบบง่าย)", "osc777Desc": "โปรโตคอล RXVT ใช้รูปแบบตายตัวพร้อมชื่อเรื่องและเนื้อหา:", "osc99Title": "OSC 99 (แบบเต็ม)", "osc99Desc": "โปรโตคอล Kitty รองรับ subtitle และ notification ID:", "variableHeader": "ตัวแปร", "descriptionHeader": "คำอธิบาย", "envTitle": "ชื่อการแจ้งเตือน (ชื่อ workspace หรือชื่อแอป)", "envSubtitle": "ชื่อรองของการแจ้งเตือน", "envBody": "เนื้อหาการแจ้งเตือน", "cmpTitleBody": "ชื่อ + เนื้อหา", "cmpSubtitle": "ชื่อรอง", "cmpNotificationId": "ID การแจ้งเตือน", "cmpComplexity": "ความซับซ้อน", "cmpYes": "ใช่", "cmpNo": "ไม่", "cmpHigher": "สูงกว่า", "cmpLower": "ต่ำกว่า", "featureHeader": "ฟีเจอร์", "comparisonCallout": "ใช้ OSC 777 สำหรับแจ้งเตือนแบบง่าย ใช้ OSC 99 เมื่อต้องการ subtitle หรือ notification ID ใช้ CLI (cmux notify) สำหรับการรวมที่ง่ายที่สุด", "claudeCodeHooks": "Claude Code hooks", "claudeCodeHooksDesc": "cmux รวมกับ Claude Code ผ่าน hooks เพื่อแจ้งเตือนคุณเมื่อ task เสร็จ", "createHookScript": "1. สร้าง hook script", "configureClaude": "2. ตั้งค่า Claude Code", "restartNote": "รีสตาร์ท Claude Code เพื่อใช้ hooks", "copilotCliHooks": "GitHub Copilot CLI", "copilotCliHooksDesc": "Copilot CLI รองรับhooks ที่รันคำสั่ง shell ในเหตุการณ์วงจรชีวิต เช่น การส่ง prompt, การหยุด agent และข้อผิดพลาด", "copilotCliRepoHooks": "สำหรับ hooks ระดับ repo ให้สร้างไฟล์ .github/hooks/notify.json ด้วยโครงสร้างเดียวกัน:", "integrationExamples": "ตัวอย่าง integration", "notifyAfterLong": "แจ้งเตือนหลังคำสั่งที่ใช้เวลานาน", "python": "Python", "nodejs": "Node.js", "tmuxPassthrough": "tmux passthrough", "tmuxDesc": "ถ้าใช้ tmux ภายใน cmux ให้เปิด passthrough:", "metaTitle": "การแจ้งเตือน" }, "browserAutomation": { "title": "Browser Automation", "metaDescription": "เอกสารคำสั่ง cmux browser สำหรับ navigation, DOM interaction, waiting, inspection, JavaScript evaluation, แท็บ, dialog, frame, download และสถานะเบราว์เซอร์", "intro": "กลุ่มคำสั่ง cmux browser ให้ browser automation กับ cmux browser surface ใช้สำหรับ navigate, โต้ตอบกับ DOM element, ตรวจสอบสถานะหน้าเว็บ, evaluate JavaScript และจัดการข้อมูลเซสชันเบราว์เซอร์", "commandIndex": "ดัชนีคำสั่ง", "categoryHeader": "หมวดหมู่", "subcommandsHeader": "คำสั่งย่อย", "navAndTargeting": "Navigation และ targeting", "waiting": "Waiting", "domInteraction": "DOM interaction", "inspection": "Inspection", "jsAndInjection": "JavaScript และ injection", "framesDialogsDownloads": "Frame, dialog, download", "stateAndSession": "State และข้อมูลเซสชัน", "tabsAndLogs": "แท็บและ log", "targetingSurface": "การ target browser surface", "targetingDesc": "คำสั่งย่อยส่วนใหญ่ต้องการ target surface คุณสามารถส่งแบบ positional หรือด้วย --surface", "navigation": "Navigation", "waitingSection": "Waiting", "waitingDesc": "ใช้ wait เพื่อบล็อกจนกว่า selector, ข้อความ, URL fragment, load state หรือเงื่อนไข JavaScript จะเป็นจริง", "domSection": "DOM Interaction", "domDesc": "Action ที่เปลี่ยนแปลงรองรับ --snapshot-after สำหรับการยืนยันอย่างรวดเร็วในสคริปต์", "inspectionSection": "Inspection", "inspectionDesc": "ใช้ structured getter สำหรับสคริปต์ และ snapshot/screenshot สำหรับการตรวจสอบโดยมนุษย์", "jsSection": "JavaScript Eval และ Injection", "stateSection": "State", "stateDesc": "คำสั่งข้อมูลเซสชันครอบคลุม cookie, local/session storage และ browser state snapshot ทั้งหมด", "tabsSection": "แท็บ", "tabsDesc": "การดำเนินการแท็บเบราว์เซอร์แมปกับ browser surface ในกลุ่มแท็บเบราว์เซอร์ที่ใช้งานอยู่", "consoleSection": "Console และ Error", "dialogsSection": "Dialog", "framesSection": "Frame", "downloadsSection": "Download", "commonPatterns": "รูปแบบทั่วไป", "patternNavigate": "Navigate, wait, inspect", "patternForm": "กรอกฟอร์มและยืนยันข้อความสำเร็จ", "patternDebug": "จับ debug artifact เมื่อล้มเหลว", "patternSession": "บันทึกและกู้คืนเซสชันเบราว์เซอร์", "metaTitle": "ระบบอัตโนมัติของเบราว์เซอร์" }, "changelog": { "title": "Changelog", "metaDescription": "บันทึกการอัปเดต cmux และประวัติเวอร์ชัน ฟีเจอร์ใหม่, แก้ไขบั๊ก และการเปลี่ยนแปลงสำหรับเทอร์มินัล macOS เนทีฟ", "metaTitle": "บันทึกการเปลี่ยนแปลง" }, "navItems": { "gettingStarted": "เริ่มต้นใช้งาน", "concepts": "แนวคิด", "configuration": "การตั้งค่า", "customCommands": "คำสั่งที่กำหนดเอง", "keyboardShortcuts": "คีย์ลัด", "apiReference": "เอกสาร API", "browserAutomation": "Browser Automation", "notifications": "การแจ้งเตือน", "agentIntegrations": "Agent Integrations", "claudeCodeTeams": "Claude Code Teams", "ohMyOpenCode": "oh-my-opencode", "changelog": "Changelog" } }, "legal": { "privacyPolicy": "นโยบายความเป็นส่วนตัว", "termsOfService": "ข้อกำหนดการใช้บริการ", "eula": "EULA" }, "testimonials": { "mitchellh": "อีกวันอีกโปรเจกต์ที่ใช้ libghostty คราวนี้เป็นเทอร์มินัล macOS ที่มีแท็บแนวตั้ง, การจัดระเบียบ/แจ้งเตือนที่ดีขึ้น, เบราว์เซอร์ในตัวที่เขียนสคริปต์ได้ โดยเฉพาะสำหรับคนที่ใช้ workflow แบบ agent บนเทอร์มินัลเยอะๆ", "schrockn": "นี่คือผลิตภัณฑ์ที่ผมตามหาพอดีเลย หลังจากใช้สองชั่วโมงเมื่อเช้านี้ ผมหลงรักมันแล้ว", "egrefen": "ผมใช้มันทั้งสุดสัปดาห์แล้ว มันเยี่ยมมาก", "max4c": "นี่เป็นเครื่องมือที่ชอบที่สุดในช่วงสองสัปดาห์ที่ผ่านมา", "asaza": "cmux ดูดีขนาดนี้ อาจถึงเวลาบอกลา VSCode แล้ว", "johnthedebs": "เฮ้ นี่มันดูเจ๋งมากจริงๆ ชอบไอเดียที่นี่ โดยเฉพาะ: ความสามารถในการเขียนโปรแกรม, UI แบบเลเยอร์, เบราว์เซอร์พร้อม API รอลองใช้อยู่ อยากบอกด้วยว่าขอบคุณ Mitchell Hashimoto ที่สร้าง libghostty มาก รู้สึกว่านี่เป็นช่วงเวลาที่น่าตื่นเต้นสำหรับผู้ใช้เทอร์มินัล", "joeriddles": "แท็บแนวตั้งในเทอร์มินัล! ไม่เคยคิดถึงเรื่องนี้มาก่อน ผมใช้และชอบแท็บแนวตั้งของ Firefox", "dchu17": "ลองใช้แล้วค่อนข้างใช้ง่าย ทำได้ดี!", "afruth": "ชอบเลย ใช้ในวันที่ผ่านมากับสามโปรเจกต์ที่ทำพร้อมกัน แต่ละโปรเจกต์มี worktree หลายอัน การมีสิ่งนี้คู่กับ lazygit และ yazi / nvim ทำให้ผมทำงานได้มากขึ้นกว่าปกติโดยไม่ต้องวิ่งไล่หลายหน้าต่าง ghostty / iTerm รู้สึกเป็นธรรมชาติกว่า tmux ด้วย", "northprint": "ลอง cmux เพราะมันดูดี — มันดีจริง", "indykish": "cmux ดีนะ", "kataring": "ย้ายมาใช้ cmux.dev แล้ว", "scottw": "นี่เป็นการค้นพบที่มีประโยชน์มาก แนะนำเลย", "johnblythe": "โหลดมาเมื่อสุดสัปดาห์แล้วชอบมาก รอของแบบนี้มานานแล้ว", "bchris91": "นี่คือสิ่งที่ผมต้องการเป๊ะเลย ทำได้ยอดเยี่ยม ขอบคุณ!", "connorelsea": "ใช้มาสัปดาห์นึงแล้ว เยี่ยมมาก แท็บแนวตั้งสำหรับแต่ละงานที่ทำอยู่ ข้างในมี Claude อยู่ด้านนึงและเบราว์เซอร์กับ PR และทรัพยากรอยู่อีกด้าน สลับไปมาระหว่างงานได้อย่างเป็นระเบียบ ผสมกับ skills ให้ Claude คอยดู CI แบบ recursive ฯลฯ รู้สึกตาสว่างเลย", "tonkotsuboy": "ผมเปลี่ยนจาก Warp มา Ghostty ตอนต้นปี แต่ตอนนี้เปลี่ยนมา cmux แล้ว แท็บแนวตั้งสะดวกดี และชอบที่แจ้งเตือนเมื่องาน Claude Code เสร็จ มันใช้ Ghostty เป็นฐานก็เลยเร็วเหมือนเดิม การแสดง branch และ completion ที่ตั้งไว้ใน Ghostty ก็ยังใช้ได้อยู่" }, "nightly": { "title": "cmux NIGHTLY", "subtitle": "บิลด์ล่าสุดจาก main", "metaTitle": "cmux NIGHTLY — บิลด์ Nightly", "metaDescription": "ดาวน์โหลด cmux NIGHTLY แอปแยกที่สร้างอัตโนมัติจาก commit ล่าสุดบน main ทำงานควบคู่กับเวอร์ชันเสถียรพร้อมอัปเดตอัตโนมัติของตัวเอง", "description": "cmux NIGHTLY สร้างอัตโนมัติจาก commit ล่าสุดบน main มี bundle ID เป็นของตัวเอง จึงทำงานควบคู่กับเวอร์ชันเสถียรได้โดยไม่ขัดแย้ง ใช้เพื่อทดสอบฟีเจอร์ใหม่ก่อนเปิดตัว", "download": "ดาวน์โหลด NIGHTLY สำหรับ Mac", "warning": "บิลด์ nightly อาจมีบั๊กหรือฟีเจอร์ที่ยังไม่สมบูรณ์ หากพบปัญหา รายงานบน GitHub หรือใน #nightly-bugs บน Discord แล้วสลับกลับไปใช้เวอร์ชันเสถียร" }, "languageSwitcher": { "label": "ภาษา" }, "wallOfLove": { "title": "กำแพงแห่งความรัก", "description": "สิ่งที่ผู้คนพูดเกี่ยวกับ cmux" } }