BetterCmdTab

Reguły aplikacji

Ukrywaj poszczególne aplikacje w przełączniku lub przekazuj im bezpośrednio Command-Tab.

Większość ustawień filtrowania jest globalna. appExceptions to sposób na obsłużenie pojedynczej aplikacji, która musi zachowywać się inaczej — narzędzia na pasku menu, którego nigdy nie chcesz widzieć na liście, albo gry, która potrzebuje ⌘Tab dla siebie.

W oknie ustawień odpowiada za to panel Aplikacje. W config.json jest to tablica obiektów, po jednym dla każdej aplikacji:

config.json
{
  "appExceptions": [
    { "bundleID": "com.apple.ActivityMonitor", "hide": "whenNoWindows" },
    { "bundleID": "com.valvesoftware.steam", "ignore": "whenFullscreen" },
    { "bundleID": "com.some.menubarapp", "hide": "always" }
  ]
}

Aplikacja bez wpisu stosuje ustawienia globalne. Zarówno hide, jak i ignore są opcjonalne — wpis może zawierać jedno z nich albo oba.

Finder ma przygotowaną regułę

Przy pierwszym uruchomieniu, jeśli nie ma jeszcze żadnych reguł, BetterCmdTab sam zapisuje jeden wpis: com.apple.finder z hide: "whenNoWindows". Finder nigdy tak naprawdę się nie zamyka, więc bez tej reguły każdy przełącznik zawierałby stały wiersz Findera. Możesz swobodnie usunąć lub zmienić ten wpis — to tylko początkowa wartość domyślna, która nie jest później przywracana.

Pola

Per-app rules. An app with no entry follows the global settings.

PoleTypOpis
bundleID wymaganestringBundle identifier of the app this rule applies to.
hidestringWhether this app is hidden from the switcher.
  • "dontHide"Don't hide
  • "always"Always
  • "whenNoWindows"When no open windows
ignorestringWhether the switcher shortcut is passed through to this app instead of opening the panel.
  • "never"Never
  • "always"Always
  • "whenFullscreen"When fullscreen

Znajdowanie identyfikatora pakietu

osascript -e 'id of app "Safari"'
# com.apple.Safari

Możesz też odczytać go bezpośrednio z pakietu:

mdls -name kMDItemCFBundleIdentifier -r /Applications/Safari.app

hide a filtry globalne

hide jest oceniany dodatkowo po globalnych ustawieniach zawartości i może wyłącznie usuwać pozycje. Jeśli showWindowlessApps jest już wyłączone, aplikacja bez okien pozostaje niewidoczna niezależnie od tego, czy ma regułę whenNoWindows.

  • "dontHide" — wartość domyślna. Aplikacja jest wyświetlana jak każda inna.
  • "whenNoWindows" — widoczna, gdy ma otwarte okno, i ukryta, gdy go nie ma. Przydatne dla aplikacji działających w tle, które nie pokazują niczego na ekranie.
  • "always" — nigdy niewidoczna. Używaj dla aplikacji pomocniczych i działających wyłącznie na pasku menu, które pojawiają się jako dostępne do przełączenia, choć nie powinny.

Ukrycie aplikacji nie zatrzymuje jej działania ani nie usuwa jej z wyników wyszukiwania, jeśli jest zainstalowana i searchIncludesLaunchableApps jest włączone.

ignore: przekazywanie ⌘Tab

ignore określa, co dzieje się po naciśnięciu skrótu przełącznika, gdy dana aplikacja jest na pierwszym planie. Zamiast otwierać panel, kombinacja klawiszy jest przekazywana aplikacji.

  • "never" — wartość domyślna. Przełącznik zawsze się otwiera.
  • "whenFullscreen" — aplikacja otrzymuje ⌘Tab tylko w trybie pełnoekranowym. To ustawienie odpowiednie dla gier i klientów zdalnego pulpitu: zwykły tryb okienkowy zachowuje przełącznik, a sesje pełnoekranowe otrzymują niezmienioną kombinację klawiszy.
  • "always" — aplikacja zawsze otrzymuje ⌘Tab. Używaj wyłącznie dla maszyny wirtualnej lub sesji zdalnej z własnym przełącznikiem zadań.

Przy "always" nie można przełączyć się z aktywnej aplikacji za pomocą ⌘Tab — taki jest cel tego ustawienia, ale oznacza to konieczność użycia innej drogi (skrótu o ograniczonym zakresie, skrótu aplikacji albo Mission Control). Jeśli nie masz pewności, wybierz "whenFullscreen".

Powiązane klucze

Dwie inne listy przyjmują same identyfikatory pakietów i są prostsze niż appExceptions:

config.json
{
  "pinnedBundleIDs": ["com.apple.Safari", "com.googlecode.iterm2"],
  "hideAllExcludedBundleIDs": ["com.spotify.client"]
}

appExceptions zastąpił klucz excludedBundleIDs. Jest on odczytywany tylko przy uruchomieniu, gdy w ogóle nie istnieje klucz appExceptions; wtedy jego identyfikatory pakietów stają się wpisami hide: "always". W każdej instalacji, która ma już appExceptions — czyli w każdej po pierwszym uruchomieniu — jest ignorowany i nigdy nie jest usuwany z pliku. Ustawiaj bezpośrednio appExceptions.

Na tej stronie