#Grupy workspace'ów

Grupy workspace'ów pozwalają zagnieżdżać workspace'y w zwijanych, nazwanych sekcjach w pasku bocznym. Każda grupa ma niejawny kotwicowy workspace, konfigurowalny przycisk + do tworzenia nowych workspace'ów w jej wnętrzu oraz akcje dostępne po kliknięciu prawym przyciskiem do zmiany nazwy, przypinania, rozgrupowywania i edycji jej konfiguracji.

#Koncepty

#Kotwicowy workspace

Każda grupa należy do dokładnie jednego workspace'a zwanego kotwicą. Nagłówek grupy w pasku bocznym jest reprezentacją kotwicy — nie ma dla niej osobnego wiersza. Kliknięcie obszaru nazwy w nagłówku ustawia fokus na panelach kotwicy; kliknięcie strzałki przełącza zwinięcie.

Kotwice są zawsze całkowicie nowe w momencie utworzenia grupy. Nigdy nie są awansowane z istniejącego workspace'a. Katalog roboczy kotwicy jest dziedziczony z pierwszego zaznaczonego workspace'a przy grupowaniu zaznaczenia lub z aktywnego workspace'a przy tworzeniu za pomocą CLI bez --cwd.

Zamknięcie kotwicowego workspace'a rozwiązuje grupę: każdy pozostały członek staje się niezgrupowanym workspace'em i pozostaje na liście kart. Nic poza samą kotwicą nie jest zamykane. Przed tym aplikacja wyświetla okno potwierdzenia z przełącznikiem „Nie pytaj ponownie”.

#Tożsamość grupy

Grupa ma nazwę, ikonę (SF Symbol, domyślnie folder.fill) oraz opcjonalny niestandardowy kolor. Są one niezależne od własnych dostosowań kotwicowego workspace'a. Kolor i ikona kotwicy są przy tworzeniu inicjowane z grupy, ale później mogą się różnić.

#Przypinanie

Grupy można przypinać niezależnie od przypięć poszczególnych workspace'ów. Przypięte wiersze najwyższego poziomu, niezależnie od tego, czy są to pojedyncze workspace'y, czy grupy, pozostają nad wierszami nieprzypiętymi. W obrębie każdego poziomu grupy i workspace'y zachowują kolejność, w jakiej je przeciągniesz.

Pasek boczny układa wiersze najwyższego poziomu od góry do dołu:

  1. Przypięte wiersze najwyższego poziomu (workspace'y i grupy).
  2. Nieprzypięte wiersze najwyższego poziomu (workspace'y i grupy).

#Tworzenie grupy

Grupę można utworzyć na jeden z dwóch sposobów: za pomocą skrótu klawiszowego lub menu kontekstowego workspace’u. Oba wstawiają nowy workspace kotwiczący nad zaznaczeniem i przenoszą zaznaczone workspace’y do grupy. Gdy grupa już istnieje, zarządzasz nią i dodajesz do niej workspace’y z nagłówka grupy (zobacz Zarządzanie grupą poniżej).

#Z klawiatury (⌘⇧G)

Zaznacz dwa lub więcej workspace'ów w pasku bocznym, a następnie naciśnij ⌘⇧G. Nad zaznaczeniem zostaje wstawiony nowy kotwicowy workspace, a wszystkie zaznaczone workspace'y stają się jego elementami podrzędnymi. Grupa otrzymuje automatyczną nazwę Group 1, Group 2 i tak dalej — możesz ją zmienić w dowolnej chwili z menu kontekstowego nagłówka.

⌘⇧G koliduje z domyślnym skrótem React Grab. Obsługa grup wykorzystuje ten akord tylko wtedy, gdy w pasku bocznym istnieje jawne wielokrotne zaznaczenie co najmniej dwóch workspace'ów, więc React Grab nadal działa przy pojedynczym zaznaczeniu oraz w kontekście przeglądarki lub terminala. Zmień przypisanie w Ustawienia → Klawiatura, jeśli wolisz, aby te dwie funkcje nie współdzieliły klawisza.

Grupy jednokartowe nie są tworzone za pomocą skrótu. W tym celu użyj pozycji „Nowa grupa z przestrzeni” w menu kontekstowym przestrzeni roboczej.

#Z menu kontekstowego workspace'a

Kliknij prawym przyciskiem dowolną przestrzeń roboczą na pasku bocznym i wybierz „Nowa grupa z przestrzeni” lub „Nowa grupa z zaznaczenia”, gdy zaznaczono wiele przestrzeni roboczych. Wykorzystuje to to samo automatyczne nazewnictwo co skrót.

#Zarządzanie grupą

Gdy grupa już istnieje, menu kontekstowe jej nagłówka oraz przycisk + w nagłówku umożliwiają zarządzanie grupą i dodawanie do niej workspace’ów. Żadne z nich nie tworzy nowej grupy.

#Z menu kontekstowego nagłówka grupy

Kliknij prawym przyciskiem nagłówek istniejącej grupy, aby uzyskać dostęp do „Zmień nazwę grupy…”, „Przypnij grupę / Odepnij grupę”, „Edytuj konfigurację grupy…” (które otwiera ~/.config/cmux/cmux.json), „Otwórz dokumentację grup przestrzeni”, „Rozgrupuj (zachowaj przestrzenie)” oraz „Usuń grupę (zamknij przestrzenie)”. Usuwanie jest destrukcyjne i wymaga potwierdzenia; rozgrupowanie zachowuje przestrzenie robocze i jedynie usuwa kontener.

#Z przycisku + na nagłówku grupy

Najedź na nagłówek grupy, aby odsłonić końcowy przycisk +. Kliknij go, aby utworzyć nową przestrzeń roboczą w grupie w katalogu roboczym kotwicy. Kliknij go prawym przyciskiem, aby uzyskać dostęp do „Nowa przestrzeń w grupie”, „Edytuj konfigurację grupy…” oraz „Otwórz dokumentację grup przestrzeni”.

Naciśnięcie ⌘N, gdy aktywny workspace jest kotwicą lub członkiem grupy, również tworzy nowy workspace wewnątrz tej grupy. Domyślne umiejscowienie to After current: z poziomu zwykłego członka grupy nowy workspace pojawia się tuż za aktywnym członkiem, a z poziomu kotwicy lub nagłówka pojawia się na górze grupy.

#CLI

Wszystkie operacje na grupach można skryptować za pomocą podkomend cmux workspace-group. Forma z łącznikiem pojawia się jako pierwsza; gdy tylko pojawi się szersza przestrzeń nazw poleceń cmux workspace, cmux workspace group stanie się formą kanoniczną, a forma z łącznikiem zostanie na zawsze zachowana jako alias.

#Podpolecenia

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 zwraca uchwyt grupy (domyślnie workspace_group:N). Przekaż --json, aby uzyskać pełny, ustrukturyzowany ładunek.

Przekaż do set-color lub set-icon pustą wartość, aby wyczyścić kolor lub ikonę grupy. delete jest nieodwracalne: zamyka każdą przestrzeń roboczą należącą do grupy.

#Przykłady

Zgrupuj aktualnie zaznaczone workspace'y pod jedną nazwą:

cmux workspace-group create --name manaflow

Utwórz nowy workspace wewnątrz istniejącej grupy, na przykład powiązany ze skryptem worktree:

cmux workspace-group new-workspace workspace_group:1

Wyświetl listę grup w aktywnym oknie:

cmux workspace-group list

#Konfiguracja

Konfiguracja poszczególnych grup znajduje się pod kluczem workspaceGroups w ~/.config/cmux/cmux.json, indeksowana według katalogu roboczego kotwicowego workspace. Obsługiwane klucze, w tym globalne rozmieszczanie nowych workspace oraz kolor, ikonę, rozmieszczenie i akcje menu kontekstowego dla poszczególnych katalogów, znajdziesz w dokumentacji konfiguracji.

dokumentacja konfiguracji workspaceGroups

#Trwałość

Nazwa grupy, kotwica, stan przypięcia, stan zwinięcia, kolor i ikona są zapisywane razem z Twoimi workspace'ami i przywracane między uruchomieniami. Przynależność do grupy jest przechowywana w każdym workspace'ie.