Nadpisania dla skrótów
Nadaj każdemu skrótowi własny układ, filtry, sortowanie i wygląd — wraz ze skrótami o ograniczonym zakresie.
Każdy skrót przełącznika zwykle korzysta z ustawień globalnych. shortcutOverrides
pozwala użyć innych ustawień dla skrótu: kompaktowej listy alfabetycznej dla jednego
skrótu klawiszowego i pełnowymiarowych podglądów okien dla innego, w tej samej
instalacji.
Mechanizm współpracuje z scopedShortcutList, który tworzy dodatkowe skróty globalne
otwierające przełącznik przefiltrowany do podzbioru okien. Razem pozwalają użyć jednego
skrótu do „wszystkich moich okien jako podglądów”, a drugiego do „tylko okien tej
aplikacji jako listy”.
Cele
Nadpisanie wskazuje skrót, którego dotyczy, w polu target:
target | Skrót |
|---|---|
switchApps | Główny przełącznik (domyślnie ⌘Tab) |
switchWindows | Przełącznik okien (domyślnie ⌘`) |
scoped.<id> | Skrót o ograniczonym zakresie, gdzie <id> jest jego id w scopedShortcutList |
{
"shortcutOverrides": [
{
"target": "switchWindows",
"layoutMode": "windowPreview",
"panelScalePercent": "140",
"sortOrder": "mruWindows"
},
{
"target": "scoped.0",
"layoutMode": "list",
"listWidthPercent": "60",
"showMinimized": "false"
}
]
}Wartości nadpisań są ciągami znaków
Nadpisania są przechowywane jako słowniki ciągów znaków, dlatego każda wartość jest
zapisana jako ciąg JSON — "140", a nie 140; "false", a nie false. Odpowiadające
im klucze globalne używają swoich naturalnych typów. Generowany plik schema.json
wymusza tę zasadę, więc edytor oznaczy błąd.
Każde pominięte pole dziedziczy ustawienie globalne. Nadpisanie zawierające tylko
target jest równoważne brakowi nadpisania i zostaje usunięte przy następnym zapisie
pliku.
Pola
Nazwy pól przeważnie odpowiadają nazwom kluczy globalnych — ich działanie opisuje
dokumentacja konfiguracji. Trzy nazwy są skrócone:
showMinimized, showHidden i showWindowless odpowiadają
showMinimizedWindows, showHiddenApps i showWindowlessApps.
spaceScope przyjmuje tutaj dodatkową wartość "inherit", która stosuje ustawienie
globalne.
Per-shortcut overrides of the global settings. Each entry names its shortcut in "target"; every other field is optional and inherits the global value when absent.
| Pole | Typ | Opis |
|---|---|---|
target wymagane | string | Which shortcut this entry overrides. |
applicationsOnly | string | Override: Show one entry per app instead of one per window.
|
backdropMaterial | string | Override: Blur material behind the rows. Ignored by the macOS 26 glass backdrop.
|
boldSelectedLabel | string | Override: Show the highlighted entry's title in bold.
|
expandBrowserTabsAsWindows | string | Override: List browser tabs (Safari, Chromium) as separate entries.
|
fontFace | string | Override: Typeface used for names and titles.
|
fontScale | string | Override: Size of the name/title text, independent of the panel scale.
|
gridMaxColumns | string | Override: Column cap for the grid layout. 0 = automatic (as many as fit). Accepted: 0…12. Written as a decimal string. |
layoutMode | string | Override: Switcher layout: list rows, an icon grid, or window previews.
|
letterHintsEnabled | string | Override: Show the letter that jumps to each entry.
|
listWidthPercent | string | Override: Width of list rows as a percentage of the automatic, screen-scaled width. Accepted: 30…100. Written as a decimal string. |
panelAppearance | string | Override: Light or dark switcher, independent of the rest of macOS.
|
panelCornerRadius | string | Override: Panel corner radius in points. 0 = automatic (follows the panel size), -1 = square corners. Accepted: -1…40. Written as a decimal string. |
panelOpacity | string | Override: Opacity of the panel background, in percent. Accepted: 30…100. Written as a decimal string. |
panelScalePercent | string | Override: Overall size of the switcher panel, in percent. Accepted: 50…150. Written as a decimal string. |
panelSize | string | Legacy size preset, read once and migrated to panelScalePercent.
|
previewTitleAlignment | string | Override: Where the title sits under each window-preview tile.
|
showApplicationNames | string | Override: Show application names next to the icons.
|
showHidden | string | Override: Include apps hidden with ⌘H.
|
showMinimized | string | Override: Include minimized windows.
|
showUnreadBadges | string | Override: Show each app's Dock unread badge on its entry.
|
showWindowless | string | Override: Include running apps that have no open window.
|
showWindowTitleLabel | string | Override: Show each window's title, not just its app.
|
sortOrder | string | Override: Order apps and windows are listed in.
|
spaceScope | string | Override: which Spaces windows are pulled from. "inherit" follows the global spaceScope.
|
stayOpenOnQuickTap | string | Override: Also keep it open after a quick tap of the shortcut.
|
stayOpenOnRelease | string | Override: Keep the switcher open after the modifier is released.
|
titleTruncationMode | string | Override: Which part of a too-long title is replaced by an ellipsis.
|
Nieznane pola są zachowywane bez zmian, a nie usuwane, dlatego otwarcie konfiguracji w starszej wersji aplikacji nie usunie nadpisań, których ta wersja jeszcze nie rozumie.
Skróty o ograniczonym zakresie
scopedShortcutList definiuje dodatkowe globalne skróty klawiszowe, z których każdy
otwiera już przefiltrowany przełącznik. Dodawaj i usuwaj je w Ustawienia → Profile.
{
"scopedShortcutList": [
{ "id": "0", "scope": "currentAppWindows", "name": "scopedSwitch1" },
{ "id": "1", "scope": "minimizedOnly", "name": "scopedSwitch2" }
]
}Scoped switcher shortcuts — each opens the panel already filtered to one subset of windows.
| Pole | Typ | Opis |
|---|---|---|
id wymagane | string | Stable id of this entry, as a decimal string. Keys its recorded trigger and its shortcutOverrides entry — never reused. |
name wymagane | string | Name the trigger chord is recorded under (the chord itself is stored outside this file). |
scope | string | Which windows the shortcut shows.
|
Kombinacji klawiszy nie ma w tym pliku
name jest etykietą, pod którą zarejestrowano kombinację; sama kombinacja znajduje
się poza przestrzenią nazw Switcher.* i nie jest synchronizowana. Skopiowanie
konfiguracji na innego Maca przenosi skróty o ograniczonym zakresie i ich ustawienia —
kombinacje klawiszy rejestruje się tam ponownie w Ustawienia → Profile.
Identyfikatory są przydzielane rosnąco i nigdy nie są używane ponownie, dzięki czemu wpis
zachowuje zarejestrowaną kombinację oraz wpis shortcutOverrides podczas dodawania,
usuwania i zmiany kolejności. id jest dziesiętnym ciągiem znaków, zgodnie ze
sposobem przechowywania listy.
Nie wybieraj ręcznie identyfikatorów kolidujących z istniejącym wpisem i nie zmieniaj
nextScopedShortcutID — jest to licznik alokatora. Dodawanie wpisów w oknie ustawień
pozwala uniknąć obu problemów.
Bezpośrednie skróty aplikacji
Niezależnie od skrótów o ograniczonym zakresie, choć często używane razem z nimi:
directActivationBindings przypisuje identyfikator pakietu do każdego z dziewięciu
miejsc skrótu „uaktywnij lub uruchom tę aplikację”. Lista zawsze zawiera dokładnie
dziewięć wpisów; pusty ciąg pozostawia miejsce nieużywane.
{
"directActivationBindings": [
"com.apple.Safari",
"com.googlecode.iterm2",
"",
"",
"",
"",
"",
"",
""
]
}Kombinacje klawiszy dla tych miejsc również są rejestrowane poza tym plikiem.
Pełny przykład
Konfiguracja z trzema odrębnymi przełącznikami:
{
"layoutMode": "iconDock",
"sortOrder": "mru",
"spaceScope": "allSpaces",
"scopedShortcutList": [
{ "id": "0", "scope": "currentAppWindows", "name": "scopedSwitch1" }
],
"shortcutOverrides": [
{
"target": "switchWindows",
"layoutMode": "windowPreview",
"sortOrder": "mruWindows",
"panelScalePercent": "130"
},
{
"target": "scoped.0",
"layoutMode": "list",
"listWidthPercent": "50",
"showWindowTitleLabel": "true",
"spaceScope": "inherit"
}
]
}- ⌘Tab — siatka ikon aplikacji, od ostatnio używanej, ze wszystkich biurek.
- ⌘` — duże podglądy okien aktywnej aplikacji, uporządkowane według ostatniego użycia okna.
- Skrót o ograniczonym zakresie — wąska lista okien bieżącej aplikacji z pełnymi tytułami.