#กลุ่มเวิร์กสเปซ

กลุ่มเวิร์กสเปซช่วยให้คุณซ้อนเวิร์กสเปซเป็นส่วนที่มีชื่อและยุบ-ขยายได้ในแถบด้านข้าง แต่ละกลุ่มมีเวิร์กสเปซแองเคอร์โดยปริยาย มีปุ่ม + ที่ปรับแต่งได้สำหรับสร้างเวิร์กสเปซใหม่ภายในกลุ่ม และมีการกระทำจากการคลิกขวาสำหรับเปลี่ยนชื่อ ปักหมุด ยกเลิกการจัดกลุ่ม และแก้ไขการตั้งค่าของกลุ่ม

#แนวคิด

#เวิร์กสเปซแองเคอร์

ทุกกลุ่มมีเวิร์กสเปซเพียงหนึ่งเดียวเป็นเจ้าของ เรียกว่าแองเคอร์ ส่วนหัวของกลุ่มในแถบด้านข้างคือตัวแทนของแองเคอร์ — ไม่มีแถวแยกต่างหากสำหรับมัน การคลิกที่บริเวณชื่อในส่วนหัวจะโฟกัสไปยังแผงของแองเคอร์ ส่วนการคลิกที่ลูกศรชี้จะสลับการยุบ-ขยาย

A group's anchor is always a brand new workspace at creation time; grouping a selection or creating a group never promotes one of your existing workspaces into the anchor. (Closing an anchor later does promote the group's first remaining member, see below.) The anchor's working directory is inherited from the first selected workspace when grouping a selection, or from the active workspace when creating via the CLI without --cwd.

Closing the anchor workspace closes only that workspace and promotes the group's first remaining member (the earliest one still in the group's order) to be the new anchor, so the group and its other members stay intact (the promoted member then shows the group name as the header). When the anchor is the group's only workspace, the group is removed. To flatten a group into ungrouped workspaces use Ungroup; to close every workspace in a group use Delete Group.

#อัตลักษณ์ของกลุ่ม

กลุ่มมีชื่อ ไอคอน (เป็น SF Symbol โดยค่าเริ่มต้นคือ folder.fill) และสีกำหนดเองที่ใส่หรือไม่ใส่ก็ได้ สิ่งเหล่านี้เป็นอิสระจากการปรับแต่งของเวิร์กสเปซแองเคอร์เอง สีและไอคอนของแองเคอร์จะถูกตั้งค่าเริ่มต้นจากกลุ่มเมื่อสร้าง แต่หลังจากนั้นสามารถแยกต่างกันได้

#การปักหมุด

กลุ่มสามารถปักหมุดได้อย่างเป็นอิสระจากการปักหมุดเวิร์กสเปซแต่ละตัว แถวระดับบนสุดที่ปักหมุดไว้ ไม่ว่าจะเป็นเวิร์กสเปซเดี่ยวหรือกลุ่ม จะอยู่เหนือแถวที่ไม่ได้ปักหมุด ภายในแต่ละชั้น กลุ่มและเวิร์กสเปซจะคงลำดับตามที่คุณลากเข้าไป

แถบด้านข้างจัดวางแถวระดับบนสุดจากบนลงล่างดังนี้:

  1. แถวระดับบนสุดที่ปักหมุดไว้ (เวิร์กสเปซและกลุ่ม)
  2. แถวระดับบนสุดที่ไม่ได้ปักหมุด (เวิร์กสเปซและกลุ่ม)

#การสร้างกลุ่ม

สร้างกลุ่มได้จากแป้นพิมพ์ลัดหรือเมนูบริบทในแถบด้านข้าง กลุ่มว่างจะแทรกเวิร์กสเปซหลักใหม่เป็นส่วนหัวของกลุ่ม กลุ่มจากรายการที่เลือกจะแทรกเวิร์กสเปซหลักนั้นเหนือรายการที่เลือกและย้ายเวิร์กสเปซที่เลือกเข้าไปในกลุ่ม เมื่อมีกลุ่มแล้ว คุณจัดการกลุ่มและเพิ่มเวิร์กสเปซจากส่วนหัวของกลุ่มได้ (ดู การจัดการกลุ่ม ด้านล่าง)

#จากแป้นพิมพ์ลัด

กด ⌃⌘G เพื่อสร้างกลุ่มเวิร์กสเปซว่างใหม่ เลือกเวิร์กสเปซอย่างน้อยสองรายการในแถบด้านข้าง จากนั้นกด ⌘⇧G เพื่อจัดกลุ่มรายการที่เลือก ทั้งสองวิธีจะสร้างเวิร์กสเปซหลักใหม่และตั้งชื่อกลุ่มอัตโนมัติเป็น Group 1, Group 2 และต่อไปเรื่อย ๆ คุณเปลี่ยนชื่อได้ทุกเมื่อจากเมนูบริบทของส่วนหัว

⌘⇧G ชนกับค่าเริ่มต้นของ React Grab ตัวจัดการกลุ่มจะใช้คอร์ดนี้เฉพาะเมื่อมีการเลือกหลายรายการในแถบด้านข้างอย่างชัดเจนตั้งแต่สองเวิร์กสเปซขึ้นไป ดังนั้น React Grab จึงยังคงทำงานในการเลือกรายการเดียว และในบริบทของเบราว์เซอร์หรือเทอร์มินัล ปรับการผูกปุ่มใหม่ได้ใน Settings → Keyboard หากคุณไม่ต้องการให้ทั้งสองใช้ปุ่มร่วมกัน

กลุ่มแบบแท็บเดียวจะไม่ถูกสร้างจากแป้นพิมพ์ลัด ให้ใช้รายการ สร้างกลุ่มใหม่จากเวิร์กสเปซนี้ ในเมนูคลิกขวาของเวิร์กสเปซสำหรับกรณีนั้น

#จากเมนูบริบทของเวิร์กสเปซ

คลิกขวาที่เวิร์กสเปซใดก็ได้ในแถบด้านข้าง แล้วเลือก กลุ่มเวิร์กสเปซว่างใหม่, กลุ่มใหม่จากเวิร์กสเปซ หรือ กลุ่มใหม่จากรายการที่เลือก เมื่อเลือกหลายเวิร์กสเปซ พื้นที่ว่างใต้รายการในแถบด้านข้างยังมี กลุ่มเวิร์กสเปซว่างใหม่ ด้วย เส้นทางเหล่านี้ใช้การตั้งชื่ออัตโนมัติเหมือนกับแป้นพิมพ์ลัด

#การจัดการกลุ่ม

เมื่อมีกลุ่มแล้ว เมนูบริบทที่ส่วนหัวและปุ่ม + บนส่วนหัวจะช่วยให้คุณจัดการกลุ่มและเพิ่ม 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 delete  <group-id> --close-workspaces
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 --from workspace:1,workspace:2

สร้างเวิร์กสเปซใหม่ภายในกลุ่มที่มีอยู่ ตัวอย่างเช่น เชื่อมต่อกับสคริปต์ worktree:

cmux workspace-group new-workspace workspace_group:1

แสดงรายการกลุ่มในหน้าต่างที่โฟกัสอยู่:

cmux workspace-group list

#การตั้งค่า

การกำหนดค่าของแต่ละกลุ่มอยู่ภายใต้คีย์ workspaceGroups ใน ~/.config/cmux/cmux.json โดยใช้ไดเรกทอรีทำงานของ workspace หลักเป็นคีย์ ดูคีย์ที่รองรับได้ที่เอกสารอ้างอิงการกำหนดค่า ซึ่งรวมถึงตำแหน่งวางสำหรับ workspace ใหม่แบบรวม และสี ไอคอน ตำแหน่งวาง และการดำเนินการของเมนูคลิกขวาในแต่ละไดเรกทอรี

เอกสารอ้างอิงการกำหนดค่า workspaceGroups

#การคงอยู่ของข้อมูล

ชื่อกลุ่ม แองเคอร์ สถานะการปักหมุด สถานะการยุบ สี และไอคอน จะถูกบันทึกไว้พร้อมกับเวิร์กสเปซของคุณและกู้คืนข้ามการเปิดแอปแต่ละครั้ง ความเป็นสมาชิกของกลุ่มจะถูกจัดเก็บไว้บนเวิร์กสเปซแต่ละตัว