#กลุ่มเวิร์กสเปซ
กลุ่มเวิร์กสเปซช่วยให้คุณซ้อนเวิร์กสเปซเป็นส่วนที่มีชื่อและยุบ-ขยายได้ในแถบด้านข้าง แต่ละกลุ่มมีเวิร์กสเปซแองเคอร์โดยปริยาย มีปุ่ม + ที่ปรับแต่งได้สำหรับสร้างเวิร์กสเปซใหม่ภายในกลุ่ม และมีการกระทำจากการคลิกขวาสำหรับเปลี่ยนชื่อ ปักหมุด ยกเลิกการจัดกลุ่ม และแก้ไขการตั้งค่าของกลุ่ม
#แนวคิด
#เวิร์กสเปซแองเคอร์
ทุกกลุ่มมีเวิร์กสเปซเพียงหนึ่งเดียวเป็นเจ้าของ เรียกว่าแองเคอร์ ส่วนหัวของกลุ่มในแถบด้านข้างคือตัวแทนของแองเคอร์ — ไม่มีแถวแยกต่างหากสำหรับมัน การคลิกที่บริเวณชื่อในส่วนหัวจะโฟกัสไปยังแผงของแองเคอร์ ส่วนการคลิกที่ลูกศรชี้จะสลับการยุบ-ขยาย
แองเคอร์จะเป็นเวิร์กสเปซใหม่เอี่ยมเสมอเมื่อมีการสร้างกลุ่ม โดยจะไม่ถูกเลื่อนขึ้นมาจากเวิร์กสเปซที่มีอยู่เดิม ไดเรกทอรีการทำงานของแองเคอร์จะสืบทอดมาจากเวิร์กสเปซแรกที่เลือกเมื่อจัดกลุ่มจากการเลือกหลายรายการ หรือจากเวิร์กสเปซที่กำลังใช้งานอยู่เมื่อสร้างผ่าน CLI โดยไม่ระบุ --cwd
การปิดเวิร์กสเปซแองเคอร์จะสลายกลุ่ม สมาชิกอื่นทุกตัวจะกลายเป็นเวิร์กสเปซที่ไม่ได้จัดกลุ่มและยังคงอยู่ในรายการแท็บ ไม่มีสิ่งใดถูกปิดนอกจากตัวแองเคอร์เอง แอปจะแสดงกล่องโต้ตอบยืนยันพร้อมตัวสลับ "อย่าถามอีก" ก่อนที่สิ่งนี้จะเกิดขึ้น
#อัตลักษณ์ของกลุ่ม
กลุ่มมีชื่อ ไอคอน (เป็น SF Symbol โดยค่าเริ่มต้นคือ folder.fill) และสีกำหนดเองที่ใส่หรือไม่ใส่ก็ได้ สิ่งเหล่านี้เป็นอิสระจากการปรับแต่งของเวิร์กสเปซแองเคอร์เอง สีและไอคอนของแองเคอร์จะถูกตั้งค่าเริ่มต้นจากกลุ่มเมื่อสร้าง แต่หลังจากนั้นสามารถแยกต่างกันได้
#การปักหมุด
กลุ่มสามารถปักหมุดได้อย่างเป็นอิสระจากการปักหมุดเวิร์กสเปซแต่ละตัว แถวระดับบนสุดที่ปักหมุดไว้ ไม่ว่าจะเป็นเวิร์กสเปซเดี่ยวหรือกลุ่ม จะอยู่เหนือแถวที่ไม่ได้ปักหมุด ภายในแต่ละชั้น กลุ่มและเวิร์กสเปซจะคงลำดับตามที่คุณลากเข้าไป
แถบด้านข้างจัดวางแถวระดับบนสุดจากบนลงล่างดังนี้:
- แถวระดับบนสุดที่ปักหมุดไว้ (เวิร์กสเปซและกลุ่ม)
- แถวระดับบนสุดที่ไม่ได้ปักหมุด (เวิร์กสเปซและกลุ่ม)
#การสร้างกลุ่ม
กลุ่มสามารถสร้างได้สองวิธี ได้แก่ แป้นพิมพ์ลัดหรือเมนูบริบทของ workspace ทั้งสองวิธีจะแทรก workspace ที่เป็นจุดยึดใหม่ไว้เหนือรายการที่เลือก และย้าย workspace ที่เลือกเข้าไปในกลุ่ม เมื่อมีกลุ่มแล้ว คุณสามารถจัดการกลุ่มและเพิ่ม workspace เข้าไปได้จากส่วนหัวของกลุ่ม (ดูที่ การจัดการกลุ่ม ด้านล่าง)
#จากแป้นพิมพ์ (⌘⇧G)
เลือกเวิร์กสเปซตั้งแต่สองตัวขึ้นไปในแถบด้านข้าง แล้วกด ⌘⇧G เวิร์กสเปซแองเคอร์ใหม่จะถูกแทรกไว้เหนือรายการที่เลือก และเวิร์กสเปซที่เลือกทั้งหมดจะกลายเป็นสมาชิกย่อย กลุ่มจะถูกตั้งชื่ออัตโนมัติเป็น Group 1, Group 2 และต่อไปเรื่อย ๆ — เปลี่ยนชื่อได้ทุกเมื่อผ่านเมนูบริบทของส่วนหัว
กลุ่มแบบแท็บเดียวจะไม่ถูกสร้างจากแป้นพิมพ์ลัด ให้ใช้รายการ สร้างกลุ่มใหม่จากเวิร์กสเปซนี้ ในเมนูคลิกขวาของเวิร์กสเปซสำหรับกรณีนั้น
#จากเมนูบริบทของเวิร์กสเปซ
คลิกขวาที่เวิร์กสเปซใดก็ได้ในแถบด้านข้างแล้วเลือก สร้างกลุ่มใหม่จากเวิร์กสเปซนี้ หรือ สร้างกลุ่มใหม่จากที่เลือก เมื่อมีการเลือกเวิร์กสเปซหลายรายการ วิธีนี้ใช้พฤติกรรมการตั้งชื่ออัตโนมัติแบบเดียวกับแป้นพิมพ์ลัด
#การจัดการกลุ่ม
เมื่อมีกลุ่มแล้ว เมนูบริบทที่ส่วนหัวและปุ่ม + บนส่วนหัวจะช่วยให้คุณจัดการกลุ่มและเพิ่ม workspace เข้าไปได้ ทั้งสองอย่างนี้ไม่ได้สร้างกลุ่มใหม่
#จากเมนูบริบทของส่วนหัวกลุ่ม
คลิกขวาที่ส่วนหัวของกลุ่มที่มีอยู่เพื่อใช้ เปลี่ยนชื่อกลุ่ม… ปักหมุดกลุ่ม / เลิกปักหมุดกลุ่ม แก้ไขการตั้งค่ากลุ่ม… (ซึ่งจะเปิด ~/.config/cmux/cmux.json) เปิดเอกสารกลุ่มเวิร์กสเปซ เลิกจัดกลุ่ม (เก็บเวิร์กสเปซไว้) และ ลบกลุ่ม (ปิดเวิร์กสเปซ) การลบเป็นการกระทำที่ทำลายข้อมูลและจะถามยืนยัน ส่วนการเลิกจัดกลุ่มจะเก็บเวิร์กสเปซไว้และเพียงนำคอนเทนเนอร์ออกเท่านั้น
#จากปุ่ม + บนส่วนหัวของกลุ่ม
วางเมาส์เหนือส่วนหัวของกลุ่มเพื่อแสดงปุ่ม + ที่ท้ายรายการ คลิกเพื่อสร้างเวิร์กสเปซใหม่ในกลุ่มที่ไดเรกทอรีทำงานของแองเคอร์ คลิกขวาที่ปุ่มนี้เพื่อใช้ เวิร์กสเปซใหม่ในกลุ่ม แก้ไขการตั้งค่ากลุ่ม… และ เปิดเอกสารกลุ่มเวิร์กสเปซ
การกด ⌘N ขณะที่เวิร์กสเปซที่กำลังใช้งานอยู่เป็นแองเคอร์หรือสมาชิกของกลุ่ม จะสร้างเวิร์กสเปซใหม่ภายในกลุ่มนั้นด้วยเช่นกัน ตำแหน่งวางเริ่มต้นคือ After current: จากสมาชิกกลุ่มทั่วไป เวิร์กสเปซใหม่จะอยู่ถัดจากสมาชิกที่กำลังใช้งานทันที และจากแองเคอร์หรือส่วนหัว มันจะอยู่ที่ด้านบนสุดของกลุ่ม
#CLI
การดำเนินการกับกลุ่มทั้งหมดสามารถเขียนสคริปต์ได้ด้วยคำสั่งย่อย cmux workspace-group รูปแบบที่มีเครื่องหมายขีดกลางจะออกมาก่อน เมื่อเนมสเปซคำสั่ง cmux workspace ที่กว้างขึ้นพร้อมใช้งานแล้ว cmux workspace group จะกลายเป็นรูปแบบมาตรฐาน โดยรูปแบบที่มีเครื่องหมายขีดกลางจะถูกเก็บไว้เป็นชื่อเรียกแทนตลอดไป
#คำสั่งย่อย
cmux workspace-group list [--json]
cmux workspace-group create --name "manaflow" [--cwd ~/projects/manaflow] [--from <id>,<id>]
cmux workspace-group ungroup <group-id>
cmux workspace-group delete <group-id>
cmux workspace-group rename <group-id> --name "new name"
cmux workspace-group collapse <group-id>
cmux workspace-group expand <group-id>
cmux workspace-group pin <group-id>
cmux workspace-group unpin <group-id>
cmux workspace-group add --group <group-id> --workspace <workspace-id>
cmux workspace-group remove --workspace <workspace-id>
cmux workspace-group set-anchor --group <group-id> --workspace <workspace-id>
cmux workspace-group new-workspace <group-id> [--placement afterCurrent|top|end]
cmux workspace-group set-color <group-id> --hex "#7A4FD8"
cmux workspace-group set-icon <group-id> --symbol ladybug.fill
cmux workspace-group move <group-id> (--to-index <n> | --before <group-id> | --after <group-id>)
cmux workspace-group focus <group-id>create จะคืนค่าแฮนเดิลของกลุ่ม (workspace_group:N โดยค่าเริ่มต้น) ส่ง --json เพื่อรับเพย์โหลดแบบมีโครงสร้างฉบับเต็ม
ส่งค่าว่างให้ set-color หรือ set-icon เพื่อล้างสีหรือไอคอนของกลุ่ม คำสั่ง delete ไม่สามารถย้อนกลับได้ เพราะจะปิดเวิร์กสเปซสมาชิกทุกรายการ
#ตัวอย่าง
จัดกลุ่มเวิร์กสเปซที่เลือกอยู่ในปัจจุบันภายใต้ชื่อหนึ่ง:
cmux workspace-group create --name manaflowสร้างเวิร์กสเปซใหม่ภายในกลุ่มที่มีอยู่ ตัวอย่างเช่น เชื่อมต่อกับสคริปต์ worktree:
cmux workspace-group new-workspace workspace_group:1แสดงรายการกลุ่มในหน้าต่างที่โฟกัสอยู่:
cmux workspace-group list#การตั้งค่า
การกำหนดค่าของแต่ละกลุ่มอยู่ภายใต้คีย์ workspaceGroups ใน ~/.config/cmux/cmux.json โดยใช้ไดเรกทอรีทำงานของ workspace หลักเป็นคีย์ ดูคีย์ที่รองรับได้ที่เอกสารอ้างอิงการกำหนดค่า ซึ่งรวมถึงตำแหน่งวางสำหรับ workspace ใหม่แบบรวม และสี ไอคอน ตำแหน่งวาง และการดำเนินการของเมนูคลิกขวาในแต่ละไดเรกทอรี
เอกสารอ้างอิงการกำหนดค่า workspaceGroups
#การคงอยู่ของข้อมูล
ชื่อกลุ่ม แองเคอร์ สถานะการปักหมุด สถานะการยุบ สี และไอคอน จะถูกบันทึกไว้พร้อมกับเวิร์กสเปซของคุณและกู้คืนข้ามการเปิดแอปแต่ละครั้ง ความเป็นสมาชิกของกลุ่มจะถูกจัดเก็บไว้บนเวิร์กสเปซแต่ละตัว