Skip to content

Settings

This page is generated from the app’s own tables on every build of the site, so it matches the release it was built with.

Settings live in ~/.config/infiniterm/settings.json. Beside it, settings.default.json lists every setting with its default and is rewritten at every launch, so edits there are lost; copy a line into settings.json and change it there. Keys are flat and dotted, VS Code style: "terminal.fontSize": 16 is a whole override. Comments and trailing commas are allowed.

Default: "Catppuccin Mocha"

Terminal colour scheme, by file name without the extension, from ~/Library/Application Support/dev.ekinertac.infiniterm/themes/. Five hundred schemes are put there on first launch; any .itermcolors file dropped in is picked up too. “Switch theme” in the palette writes it here.

Default: ""

Where the first card’s shell starts. Empty means your home directory. Cards opened afterwards inherit the directory of the card they were opened next to, so this is the root of that chain rather than an override.

The terminals themselves. Changes reach cards that are already open.

Default: ""

Program to run in a new card. Empty uses your login shell ($SHELL). Only affects cards opened afterwards; a running shell is not restarted.

Default: "daemon"

Where a card’s shell lives: “pty”, “tmux”, or “daemon”. pty is a plain local shell that dies with the window. tmux keeps the shell running when infiniterm quits, and the same sessions are reachable with tmux attach -t infiniterm from any terminal. Each card is one tmux window, but tmux is a second terminal emulator: a program that redraws INLINE, like Claude Code, can come out with two lines in one row, because two emulators are tracking one program and a redraw that never clears never recovers from a disagreement. Shells and full-screen programs are fine. daemon, the default, runs one small iftd sidecar per card: it parses no terminal output at all, so a reattach after infiniterm quits replays the exact bytes our own emulator would have seen live, with no second emulator to disagree with. ift sessions and ift attach <id> reach a daemon card’s shell even with infiniterm not running. Neither tmux nor daemon is the default yet, pending more use.

Default: "block"

“block”, “bar”, or “underline”.

Default: true

Whether the cursor blinks.

Default: "ui-monospace, Menlo, monospace"

Any monospace family installed on the system. A Nerd Font is needed for the powerline segments and icons most shell prompts draw.

Default: 14

In points. The cell size, and so the card grid, follows it.

Default: "normal"

Weight for normal text: “normal”, “bold”, or 100-900.

Default: "bold"

Weight for text the shell asks to be bold.

Default: 0

Extra pixels between characters; negative tightens. Narrow faces such as Iosevka read loosely tracked at 0, since xterm rounds the cell width up.

Default: 1.2

Multiple of the font size. 1.2 is tighter than the 1.25 a font asks for.

Default: 10000

Lines kept per card. Costs memory per card, not per app.

Default: 4

MiB of raw output the “daemon” backend keeps per card, replayed on reattach. Ignored by “pty” and “tmux”. Turn it down to shrink the worst case of many cards each holding a full buffer; turn it up if a card’s early output is gone by the time you reattach to it.

Default: "command log stream --style compact"

What Cmd+Shift+H runs over the focused card when somebody is reading your screen: a program that looks like work and says nothing. The card underneath keeps running unseen; Enter or Escape brings it back. “ping 8.8.8.8” and “top” are the other classics. It runs through a login shell, not an interactive one, so a PATH set in .zshrc is not there: give a Homebrew program its full path, cron’s rule (“/opt/homebrew/bin/htop”).

New cards: how big they are and where they start.

Default: 0

Width in 25px grid cells, or 0 to size new cards from the window: the canvas at 100% minus a margin, at most 80 cells wide. 69 is 1725px, a full iTerm2 window. Existing cards keep the size they have.

Default: 0

Height in 25px grid cells, or 0 to size from the window. 80 is 2000px.

Default: "16:9"

The shape of a card sized from the window: a ratio like “16:9” or “4:3”, or “window” for the window’s own shape. 16:9 keeps every card the same shape on every Mac and after a window resize; “window” makes one card fill the window exactly when fitted. Used only where width or height is 0.

Default: true

Whether a card carved out of another one keeps its directory. That is a split (Cmd+D, Cmd+Shift+D) and a card opened onto what the active card is showing. A plain new card (Cmd+T, Cmd+Alt+T) always starts at startingDir: a new card is a new place to work.

The canvas itself: zooming and panning.

Default: 1

Multiplier on Cmd+scroll zooming. Below 1 is slower, above is faster.

Default: true

Whether the canvas keeps gliding after you release a pan drag.

Editor cards. Font and colours follow the terminal; these are the extras. The selection colours apply to terminals too, so both select alike.

Default: true

A wash behind the line the cursor is on.

Default: ""

Behind selected text, as a CSS colour. Empty is the theme’s yellow: a highlighter pen, visible on any scheme.

Default: ""

Selected text itself. Empty is the theme’s background, dark on the yellow.

Default: "prose"

Long lines. “prose” wraps .md and .txt and leaves code alone; “always” and “never” do what they say.

Browser cards. The page stays at its own size whatever the canvas zoom is.

Default: 1

Page zoom a new browser card opens at; 1 is actual size, 0.3 to 3. The browser zoom commands change it per card while the page is focused.

Default: "https://www.google.com/search?q=%s"

Where the omnibox (Cmd+L) sends a search; %s is the encoded query. A template without %s is ignored: it would drop what you typed.

Default: false

Ask Google to complete what you type in the omnibox. OFF by default: every keystroke goes to Google while it is on. Nothing else in this app talks to the network on its own.

Default: []

Extra sites Tab can scope a search to, added to the nine built in (Google, GitHub, YouTube, Wikipedia, Stack Overflow, MDN, npm, crates.io, docs.rs). Each is {keyword, name, searchUrl}, where keyword is what you type and searchUrl is a template with %s. A keyword that is already built in replaces it.

The app’s own chrome: labels, the status bar, dimming.

Default: 0.45

How much an unfocused card’s text is dimmed, 0 to 1. Painted as a scrim over the text rather than as opacity, which would blur it.

Default: 0.4

How much the whole canvas is dimmed while another app is in front, 0 to 1. Says at a glance that keys are going elsewhere. 0 turns it off.

Default: 15

Screen pixels, before the Cmd+Shift+= multiplier; the label is drawn at 1.2x this. Card labels have to survive being zoomed out to 10%, which is why this is separate from the others.

Default: 15

Screen pixels. A group name sits above a block of cards.

Default: 11

Screen pixels. The status bar is always at arm’s length.

Default: true

Zooming, panning and card swaps animate rather than jumping. The system “reduce motion” setting switches them off regardless of this.

Default: true

Frame counter in the status bar, orange below 50. It holds a permanent animation frame loop, so the app never fully idles while it is on.

Default: "cover"

What the green button and Cmd+Ctrl+F do. “cover” makes the window cover the whole screen, the strip beside a MacBook’s notch included, with the menu bar and Dock hidden until the pointer reaches them. “native” is macOS’s own full screen: a Space of its own, content starting below the notch.