Skip to content

App exclusion recipes

Patterns for excluding apps from tiling. Blocklist mode (default) tiles everything except listed apps. Allowlist mode tiles only listed apps.

Exclude apps with non-standard windows or dialogs:

spoon.Shoji:configure({
filter_mode = "blocklist",
filter_apps = {
"com.apple.finder",
"com.apple.systempreferences",
"com.apple.Preview",
"com.apple.calculator",
"com.apple.ActivityMonitor",
},
})

Finder windows have variable sizes. System Settings uses sheets and popovers. Preview is often used for quick document viewing.

Launcher apps should float over tiled windows:

spoon.Shoji:configure({
filter_mode = "blocklist",
filter_apps = {
"com.raycast.macos",
"com.runningwithcrayons.Alfred",
"com.flexibits.fantastical2.mac",
},
})

Password manager windows are temporary and should overlap:

spoon.Shoji:configure({
filter_mode = "blocklist",
filter_apps = {
"com.1password.1password",
"com.bitwarden.desktop",
"com.lastpass.lastpassmacdesktop",
"org.keepassxc.keepassxc",
},
})

Exclude meeting apps where camera/sharing windows behave unpredictably:

spoon.Shoji:configure({
filter_mode = "blocklist",
filter_apps = {
"us.zoom.xos",
"com.microsoft.teams",
"com.microsoft.teams2",
"com.google.Chrome.app.kjgfgldnnfoeklkmfkjfagphfepbbdan",
"com.cisco.webexmeetingsapp",
"com.tinyspeck.slackmacgap", -- Slack huddles
},
})

Apps with floating palettes, inspectors, and preview windows:

spoon.Shoji:configure({
filter_mode = "blocklist",
filter_apps = {
"com.apple.iPhoto",
"com.apple.Photos",
"com.spotify.client",
"com.apple.Music",
"com.figma.Desktop",
"com.bohemiancoding.sketch3",
},
})

Tile only coding apps, everything else floats:

spoon.Shoji:configure({
filter_mode = "allowlist",
filter_apps = {
"com.apple.Terminal",
"com.googlecode.iterm2",
"io.alacritty",
"com.mitchellh.ghostty",
"com.microsoft.VSCode",
"com.jetbrains.intellij",
"org.mozilla.firefox",
"com.apple.Safari",
"com.google.Chrome",
},
})

This is stricter than blocklist. Only the listed apps participate in tiling. Useful when you have many utility apps that shouldn’t be tiled.

Filter apps and small windows together:

spoon.Shoji:configure({
filter_mode = "blocklist",
filter_apps = {
"com.apple.finder",
"com.apple.systempreferences",
},
min_width = 400,
min_height = 300,
})

Finder floats regardless of window size. Other apps float only if their windows are smaller than 400x300.

Look up an app’s bundle ID:

Terminal window
osascript -e 'id of app "AppName"'

Replace “AppName” with the app’s display name. For example:

Terminal window
osascript -e 'id of app "Visual Studio Code"'
# Returns: com.microsoft.VSCode

For Electron apps or apps with unusual names, check the app’s Info.plist:

Terminal window
defaults read /Applications/AppName.app/Contents/Info.plist CFBundleIdentifier
Application Bundle ID
Finder com.apple.finder
System Settings com.apple.systempreferences
Terminal com.apple.Terminal
Safari com.apple.Safari
VS Code com.microsoft.VSCode
iTerm2 com.googlecode.iterm2
Alacritty io.alacritty
Ghostty com.mitchellh.ghostty
Firefox org.mozilla.firefox
Chrome com.google.Chrome
Slack com.tinyspeck.slackmacgap
Discord com.hnc.Discord
1Password com.1password.1password
Raycast com.raycast.macos
Alfred com.runningwithcrayons.Alfred
Zoom us.zoom.xos
Teams com.microsoft.teams2
Spotify com.spotify.client