3.5.0
This version of iTerm2 represents over two years
of work and it has an awful lot of changes.
Here are the most important improvements:
- If you use shell integration and the output of a
command goes past the top of the screen, the
command will be shown at the top.
- A new menu item, Edit > Find > Filter, lets you
hide lines not matching a substring or regular
expression. This is useful for analyzing logs.
- You can click a command to select it. Search,
Filter, and Select All will then be restricted
to the selected command. You can disable this
feature in Settings > General > Selection.
- Add support for separate light/dark mode colors.
- Using OpenAI's ChatGPT API, iTerm2 can now write
commands for you, interpret the output of
commands, and guide you towards a goal. See the
AI section below for details.
- Add "Render Selection", which replaces a chunk
of selected text with a natively rendered view.
For example, JSON gets pretty-printed and syntax
highlighted. Rendered selections have the option
of scrolling horizontally to make navigating
logs easier. They are searchable. Over 150
different languages are supported for syntax
highlighting. Markdown gets special treatment
and displays its rendered format.
- The password manager can now use LastPass or
1Password rather than the keychain. Use the (⋯)
menu next to the search field to configure it.
There are some new experimental features. There
are not fully baked, but feedback on them is
welcome.
- There is a nascent SSH integration feature
available for testing. You can try it by setting
a profile's command to SSH. The integration lets
you export environment variables and copy files
to the remote host. If Python 3.7 or later is
available on the remote host, various features
such as the Jobs status bar and toolbar
components will reflect data from the remote
rather than the local.
- Add an experimental "auto composer" feature that
replaces the command line with a native control.
This is still a work in progress.
The full list of new features follows:
Performance Improvements
========================
- Highlight triggers evaluate much faster now.
- Input is now handled off the main thread. This
increases throughput and decreases latency. We
can now redraw at a higher frame rate without
impacting throughput significantly.
- Selecting a bunch of text used to lock up the UI
for a long time, but it is now instant. The hard
work is deferred until you actually paste the
text.
- Semantic history (cmd-clicking on a filename)
used to search the filesystem on the main thread
which could cause hangs (such as on slow network
filesystems). This work has been moved to a
separate process to keep the UI responsive.
- Trigger evaluation, especially when you have
many triggers, is significantly faster now.
AI
==
- Add AI-powered natural language command
generation. Enter a prompt in the composer and
select Edit > Engage Artificial Intelligence.
You will need to provide an OpenAI API key since
GPT costs money to use.
- A new AI feature in the Toolbelt, "Codecierge",
lets you set a goal and then walks you
step-by-step to completing it by watching the
terminal contents. It requires you to supply an
OpenAI API key.
UI
==
- Tabs now have a separate configurable subtitle
under the main title.
- The tab bar in the Minimal theme now uses the
same transparency as the rest of the window.
- Add support for 120hz.
- The vertical line and horizontal line cursors
now have a subtle shadow to improve their
visibility.
- Add "Convert Matches to Selections" menu item.
- Make menu items searchable in key bindings and
pointer bindings.
- The P3 color space is now supported. The color
picker uses P3 and control sequences that accept
a color space now accept p3.
- Selecting URLs (cmd-opt-u) now enables shortcuts
to jump to them by number.
- Use the running program's first letter as the
tab icon if there is no built-in icon.
- Add "Find All Smart Selection Matches", which
searches for any string matching a smart
selection. Those that are initially visible can be
copied with a keystroke or immediately sent with
option+keystroke.
Quality-of-Life Improvements
============================
- Add "named marks" which make it easier to find
your spot in history.
- Clear Buffer can now be broadcast like keyboard
input.
- Add "Add tab on right" to tab context menu.
- Option-cmd-click now selects the second smart
selection action.
- Add "Duplicate Session". It supports ssh
integration, even with jump hosts!
- Add Shell > Duplicate Window.
- Add "Add Alert on Marks in Offscreen Sessions"
which is a sticky setting that lets you know
when a command in a not-currently-visible
session finishes. Requires shell integration.
- Add "Move session to tab" to context menu.
- Add Window > Move session to tab
- Right-clicking on a number in scientific
notation like 6.022e23 shows its expanded form
in the context menu.
- You can now search the tty and foreground job
process ID in the Open Quickly window.
- Add key binding actions for next/previous pane.
- There are new key binding actions for Windows
refugees who want to use Control-C and Control-V
to copy and paste. "Copy or Send ^C" and "Paste
or Send ^V" will copy (if there's a selection)
or paste (if the clibpoard has text)
and otherwise send the control character.
- Squelch audible beeps when focus reporting is
the likely cause.
- Offer to turn off mouse reporting for BEL when
they seem to be correlated.
- Add a menu item to install an already-downloaded
Python runtime.
- Informative values in context menu (e.g.,
hex-to-decimal conversions) are now copyable.
- Add option to enable GPU renderer in low power
mode.
- The paste history tool now has a context menu.
Text
====
- Add Unicode 15 emoji.
- Emoji flags now draw as double-width.
- You can now assign fonts to specific ranges of
unicode. There is a built-in shortcut to get all
the powerline symbols, including downloading the
requisite fonts.
- Make certain powerline symbols draw wider.
- Add support for native rendering of the
following powerline extended symbols:
U+E0A3: column-number
U+E0B0: Powerline_normal-left
U+E0B2: Powerline_normal-right
U+E0B4: right-half-circle-thick
U+E0B5: right-half-circle-thin
U+E0B6: left-half-circle-thick
U+E0B7: left-half-circle-thin
U+E0B8: lower-left-triangle
U+E0C0: flame-thick
U+E0C1: flame-thin
U+E0CE: lego_separator
U+E0CF: lego_separator_thin
U+E0D0: lego_block_facing_WIP
U+E0D1: lego_block_sideways
U+E0D3: lego_block_facing_WIP-3d-good
- Support variation selector 16 except in
alternate screen mode.
- The font picker now supports stylistic
alternatives.
- Add setting to select opacity of faint text.
Settings
========
- Add View > Disable transparency in key window.
This lets you have transparency/blur in
background windows.
- Add a preference to force creating a new window
on launch, even if there is a hotkey window.
- You can now bind "select menu item" to pointer
events (clicks and gestures).
- Add a setting to preserve windows' spaces on
restoration.
- You can configure a shortcut to be a "leader".
This allows you to define two-keystroke
shortcuts, composed of leader + some other
shortcut. For example, if you make cmd-B the
leader then you can create a key binding for
leader+h/j/k/l to navigate among split panes.
- Add "copy" as a new smart selection action.
- Add a new kind of key binding action called
"sequence" that performs any number of other key
binding actions in order.
- You can now remap the fn key if you have a
MacBook.
- You can now import and export *all* the
iTerm2-related data in Settings > General >
Preferences > Export/Import All Settings And
Data.
- Key bindings can now be applied to multiple
sessions (e.g., all sessions in this window).
- You can now customize copy mode shortcuts by
placing a file in ~/Library/Application
Support/iTerm2/CopyModeKeyBindings.dict.
See the similarly named file in the app bundle
for a reference.
- Add menu item to clear instant replay.
- Code points 0xf000-0xf003 can now be rendered.
These are sometimes used in nerd fonts.
- Add a reset button to the modifier remapping UI.
- Add ability to remap the right control key.
- Having a separate color for selected text is now
optional.
- Add a preference to avoid blocking system
shutdown.
- There's a new key binding action to alert on the
next mark.
- Add 'interpret key bindings based on physical
key, ignoring input language' setting so your
key bindings stay the same when changing
keyboard layout.
- Add option to notify of noncritical shell
integration updates.
Terminal
========
- Claim to be xterm version 314 and a vt220. This
will enable new features in various programs,
such as better key reporting in vim and emacs.
It may introduce new incompatibilities too!
Please let me know if something breaks.
- Add support for various control sequences that
affect colors (OSC 12, 17, 19, 104, 110, 111,
112, 117, and 119).
- Add support for OSC 22 to set mouse cursor. The
following styles are supported:
X_cursor, arrow, based_arrow_down,
based_arrow_up, cross, cross_reverse,
crosshair, hand1, hand2, left_ptr, left_side,
right_side, sb_h_double_arrow, sb_left_arrow,
sb_right_arrow, sb_up_arrow,
sb_v_double_arrow, tcross, xterm
- Add support for colored underlines.
- Add support for SGR 8 (invisible text).
- Function keys now send modifier flags as long as
TERM begins with `xterm`.
- Compatibility improvements to "modifyOtherKeys"
mode.
- Add support for various control sequences:
- CSI ^
- CSI a
- DEC(RE)SET 1007
- DEC(RE)SET 1016
- DEC(RE)SET 1047
- DEC(RE)SET 1048
- DEC(RE)SET 12 (blinking cursor: disabled by
default in new pref)
- DEC(RE)SET 66
- DECBI
- DECCARA
- DECCRA
- DECDC
- DECDSR
- DECERA
- DECFI
- DECFRA
- DECIC
- DECNCSM
- DECRARA (yeah! let's go!)
- DECRQPSR
- DECRQSS
- DECRSPS
- DECSACE
- DECSCA
- DECSCPP
- DECSED
- DECSEL
- DECSERA
- DECSLPP
- DECSNLS
- EPA
- HPA
- SGR 21 (double underline)
- SL
- SPA
- SR
- Tertiary DA
- XTPOPSGR
- XTPUSHSGR
- XTSETTCAP
- XTSMGRAPHICS
- push/pop/report colors
- Provide a modified termcap that advertises
Setulc (underline color support) for
xterm-256color.
- Clipboard content reporting via control sequence
OSC 52 is now supported, but requires user
consent to enable.
- There's a new control sequence for rich
notifications:
[esc]1337;Notification=[params][control-G]
Where params is a semicolon-delimited list of
key value pairs:
message=[text]
The text to display.
title=[text]
Optional notification title.
subtitle=[text]
Optional notification subtitle.
image=[data]
Optional base64-encoded image.
- Add support for inline SVGs.
- Mouse reporting now supports horizontal
scrolling and more mouse buttons.
- Add DECSET 2026 for synchronized updates.
- Add support for mouse reporting buttons 10 and
11 and horizontal scrolling.
- Stop parsing OSC control sequences after 1
megabyte.
- Add OSC 1337 OpenURL=:(base64-encoded URL)
- Control sequences that set color values accept
4-digit hex values now.
- Enabling CSI u mode in your profile does not
enable Disambiguate Escapes now. This additional
setting is now exposed in the Terminal State menu.
Triggers
========
- Add Inject trigger. It injects input to the
terminal as though it had been read from the
running app.
- Add a new trigger action to set a user-defined
variable.
- Add Triggers status bar component to make it
easier to manage your triggers.
- Add a variable "line" when evaluating a
trigger's interpolated string, giving the line
number since the start of history.
Titles
======
- Add session size as a feature you can show in
tab titles.
Scripting
=========
- Add a mouseInfo variable that exposes info about
the last button event to Python API scripts.
- You can now invoke API-registered functions from
Open Quickly.
- Set ITERM2_COOKIE in coprocesses so they can use
the Python API without an extra authentication
step. All other environment variables that
sessions have are also now provided to
coprocesses.
- Add a setting for the location of Python API
scripts.
- Add builtin functions "iterm2.paste()" and
"iterm2.focus()".
- You can now invoke script functions from mouse
bindings.
- Script invocations can use semicolons to call
multiple functions.
- Allow multiple selections for importing and
exporting scripts.
- Notify Python API clients of resizes.
Snippets
========
- Snippets now have configurable escaping modes so
you can use literal text without worrying about
backslashes.
- Hold option when sending a snippet to open it in
Advanced Paste for editing.
- Hold shift when selecting a snippet to open it
in the composer.
- Add a search field to the snippets toolbelt tool.
- Large snippets won't cause problems saving
settings any more. They are now stored
separately.
Logging
=======
- You can now save logs in HTML.
- Automatic logging filename is now a profile
setting instead of an advanced setting.
- The folder for automatic logging is now an
interpolated string.
- Enable logging as asciicast, which is playable
by asciinema.
- Add option to include timestamps in saved
content.
- Use only ASCII spaces in plain-text logs.
Password Manager
================
- You can now disable probing for a password
prompt in the settings menu of the password
manager.
- Add option not to require a password to open the
password manager.
- Improve how the password manager stores
passwords in keychain so they make more sense in
Keychain Access.
- The password manager can now generate passwords.
Shell Integration
=================
- There's a new Utility, it2tip, which implements
the tip of the day as a command line app.
Install shell integration and utilities to get
it.
- Shell integration can now be injected
automatically as part of creating a login shell.
Explicit installation is no longer needed on
localhost (except for tcsh users, who are still
stuck in 1995. Sorry).
- You can now cmd-click on the command prompt to
get info about the command.
- imgcat has a bunch of new options. You'll need
to reinstall shell integration utilities to get
it.
tmux
====
- Offer to detach after closing the last tmux tab.
- Enable focus reporting in tmux integration.
- In tmux integration, key bindings are
automatically created to emulate tmux's
shortcuts with the leader in place of tmux's
prefix key.
You can set up the leader in Prefs > Keys >
Leader.
- In tmux 3.4 you'll be able to mirror its paste
buffer to the local clipboard.
- Make "Adjust window when changing font size"
work in tmux integration.
- Make the tmux-256color terminfo available by
default. Improves various problems in tmux
integration such as function keys sending the
wrong codes.
Composer
========
- The composer (cmd-shift-.) now supports multiple
cursors. Use ctrl-shift-up/down or option-drag to
create them. You can also convert search results
to cursors with Edit > Find > Select Matches.
- Selecting Advanced Paste while in the composer
moves the composer's content into the advanced
paste window.
- The composer now supports search.
- You can resize the composer's height by dragging
its bottom edge.
- Cmd-click in the composer opens the command in
explainshell.com.
- In the composer, option-shift-enter sends the
command at the cursor and removes it from the
composer.
- Add a "compose" action (prefs > shortcuts >
actions).
- Add ability for composer to enqueue a command.
- ssh integration is now easily usable from the
command line. Use it2ssh instead of ssh.
Profiles
========
- Searches for profiles now allow you to exclude
terms using the minus operator. For example:
-tag:dynamic
- Remember the order of dynamic profiles after you
hand-edit them in settings, even if they are
later removed and re-added.
Semantic History
================
- Add IntelliJ UE support to semantic history.
- Fix support for VSCode Insiders in semantic
history.
- Add support for the new VSCodium bundle ID.
- Add support for the Nova editor to semantic
history.
- Add support for WebStorm and Rider to semantic
history.
- Semantic history now supports "[filename](line
number])" and "[filename] line [line number]"
- Semantic history can now open to line number in
Xcode.
Copy Mode
=========
- Copy mode now supports previous/next mark
navigation.
- Add new copy mode commands: ^e and ^y to scroll
by one line, ^d and ^u to scroll by half a
screen, and you can now precede a command with a
number to apply it repeatedly.
Other
=====
- You can now reveal a session by opening a URL
like iterm2:///reveal?sessionid=w0t0p0.guid
where the parameter comes from the
ITERM_SESSION_ID environment variable.
- Add handlers for titan and gemini schemes.
Other Improvements
------------------
UI
==
- When you drag a top statusbar in a no-titlebar
window with a single tab and no split panes drag
the window instead of the tab.
- Use session font for timestamps.
- Make font configurable in text status bar
components.
- Use fixed-pitch fonts in various places in
settings where they make sense.
- Show an indicator in all sessions when debug
logging is enabled.
- Clicking on indicator icons in the top right of
a session now shows help text.
- Broadcast to all panes/tabs is now a toggle.
- Double clicking on the tabbar now behaves the
same as double clicking on the title bar: it
respects the system setting for title bar double
clicks.
- Improve legibility of tab labels in the Minimal
theme.
- Support resolutions larger than 4k pixels per
dimension in GPU renderer.
- Up/down arrows wrap around in open quickly
window.
- Emacs and Python now get the correct tab icons.
- Rate limit alerts and notification triggers to
avoid spamming you to death.
- Make the tab bar look prettier in Monterey.
- Tweak sorting of command history to make age a
slightly stronger factor.
- Visual improvements to the toolbelt.
- Warn about changes in macOS 12 when secure
keyboard entry is enabled.
- Show an indicator in the current session when
secure keyboard input is enabled.
- Add text labels to the macOS-style color
picker's custom icons.
- Visual improvements to profile list views.
- Visual improvements to the Jobs tool.
- Ensure the URL preview box does not overlap the
hyperlink being previewed.
- Avoid causing the window contents to jump when
colors change.
- Visual improvements to minimal theme with
transparent windows.
- UI improvements to the password manager for
adding a new password.
- Tweak status bar colors to look nicer in the
Minimal theme.
- Tweak the status icon (shown in the menu bar
when you've excluded iTerm2 from the dock) to
have a more modern design.
- GPU renderer is now usable when background
images are shared across panes.
- Improve readability of preferences search in
dark mode.
- Improve appearance of status bar search field
with non-default background colors.
- Double-clicking a pane splitter equalizes the
sizes of views adjacent to it.
- Window transparency can now be set to 100%.
- Improve appearance of password-prompt cursor.
- The status bar icon now includes the full main
menu.
- In Ventura, the tab bar now remains visible in
native full screen mode when revealing the title
bar.
- Increase width of font picker panel to avoid
truncation.
- Make Window>Arrange spit panes preserve
horizontality of splits in common cases.
- Tip of the day is now draggable.
- Non-fullscreen floating hotkey windows now
appear under notifications.
- The background color of search results is now
configurable.
Terminal
========
- Add modified terminfo for xterm, xterm-256color,
and xterm-new that support Smulx (undercurl).
- Add support for HTML-style #rrggbb colors in OSC
4 and related sequences.
- Limit REP to 64k to avoid DOS.
- Increase max size of OSC 8 URLs.
Performance
===========
- Prompt to delete the restoration db if verifying
its integrity takes over 10 seconds.
- Limit CPU usage of helper tasks to 50%.
- Reduce energy usage when a progress indicator is
visible in the tab bar.
- Reduce frame rate of animated status bar
components to reduce WindowServer's CPU usage.
- Defer database janitorial work until after app
launch to avoid blocking it.
Quality of Life
===============
- If a session is short lived, uses a login shell,
the shell does not exist, and the profile can be
changed offer to change the shell to /bin/zsh
which will always exist to get the user unstuck.
- Make captured output tool remember the line you
cleared at so when more output appears the
previously cleared items do not reappear. Also
make it look nicer.
- Provide a more helpful error if a profile's
command cannot be found.
- Strip control characters from RemoteHost.
- Exclude loopback interfaces in network status
bar component.
- You can now turn on smart cursor color even if
the default cursor is not a box since it could
be changed to a box by a control sequence.
- Use XDG_CONFIG_HOME for .iterm2 folder when set.
- When the country+language do not match a valid
POSIX locale, present a UI to select one.
- Don't sync the most recent coprocess commands
with remote prefs.
- Show tilde in place of local home directory in
tab/window titles.
tmux
====
- tmux integration now remembers which windows had
the toolbelt open.
- tmux integration now remembers tab title
overrides.
- Synchronize selected window, tab, and pane in
tmux integration when another client changes it.
- When attaching to tmux, if a window is 95%
offscreen move it onto the nearest display as
much as possible.
- Optimize bandwidth for sending keystrokes to
tmux in tmux integration mode.
Settings
========
- Saving prefs no longer clobbers symlinks.
- The list of displays in profile window settings
now uses meaningful names for screens.
Selection
=========
- Smart selection action parameters are now
interpolated strings.
Search
======
- Don't reset the start location for search when a
search finds zero results.
- Performing find next/previous without a search
bar open will highlight all search results now.
- Automatically highlight matches when the search
UI is open and the query changes because another
app changed the value to be searched for.
- Search history completion now works on words
instead of entire phrases.
- A find indicator now displays search results to
highlight the current one with an animation.
- Control-C in Find on Page now focuses terminal.
Profiles
========
- "Save all profiles as JSON" now preserves the
order of profiles.
- Changes to dynamic profiles are now detected
more quickly.
Hotkey Windows
==============
- Pressing a non-modifier key will now cancel a
double-tap of a modifier key that opens a hotkey
window.
- Double-tap modifier hotkeys now activate on key
up rather than key down to avoid false
activations.
- When a hotkey window rolls out restore the
previously active app only if it was rolled out
because of a keypress.
General
=======
- Allow apps running in the terminal to request
bluetooth access.
- Add NSPhotoLibraryUsageDescription so apps that
use your photo library get a proper permission
dialog.
Scripting
=========
- Data injected by the Python API during a silent
coprocess is now made visible.
- Add isHotkeyWindow variable to window scope.
File Transfer
=============
- Offer to replace an existing file when
downloading.
- When using ssh integration, file transfers no
longer require a new connection. They share the
existing channel.
- Support id_ed25519 for secure copy via semantic
history.
- Warn before connecting via scp to a
never-before-seen host.
Semantic History
================
- Update it2ul to avoid sending xattrs to GNU tar.
- Make it2dl more reliable in tmux integration.
Bug fixes
---------
Security fixes
==============
Thanks to vin01 for discovering these issuse:
* Sanitize paths in x-man-page URLs.
* Sanitize ssh hostnames in URLs to guard against
malicious URLs.
* Prevent hang on enormous OSC sequences.
Other bug fixes
===============
- When global search finds a result in a hidden
pane because a sibling is maximized an d you
select it, change which pane is maximized.
- Fix memory leaks.
- Mouse reporting now reports mouse up more than
once when multiple buttons were pressed at the
same time.
- Fix a bug where the scroll wheel could stop
working after a session terminates.
- Fix a bug when overwriting the second half of a
double-width character.
- Fix a bug in mouse reporting with tmux.
- Fix how colors are reported to improve
compatibility with emacs.
- Terminate buried sessions when quitting.
- Fix a bug where some apps would use the wrong
colors because of a terminfo problem.
- Fix a bug where using the contextual menu to
hide a Python API-provided status bar component
could hide the wrong one.
- Fix a bug where fish could be confused about the
size of a new session.
- Fix a bug where expanding a disclosure triangle
in an alert box didn't increase its size,
leaving the text unreadable.
- Widen prefs panel so legacy scrollbars don't
overlap controls.
- ESC c (RIS) now restores colors from the
underlying profile, including those changed by
OSC 4.
- Fix a bug where cmd-enter wouldn't toggle
fullscreen for a hotkey window when native
fullscreen was enabled.
- Control-backspace now sends ^H.
- Fix DECRQCRA interpretation of params (first is
now request ID).
- Fix corrupted scroll regions after a resize.
- Fix DECCOLM to reset margins on change and to
preserve the cursor's position.
- Work around a bug in old versions of tmux where
they didn't accept control-space like other
keys, causing 0x0 to be printed.
- Fix tmux integration for tmux 1.8.
- Turn off smart substitution in the snippets
value text view.
- Open hotkey windows beneath menu bar when
opening over another app's fullscreen window.
- Fix the appearance of dragged tabs.
- Fix flashing white line at top of screen in dark
mode full screen.
- Fix discrepancy between GPU and non-GPU renderer
in the presence of blending.
- OSC no longer requires a semicolon after the
mode if there is no argument.
- Fix a bug where both a per-pane and per-window
background image could be visible at the same
time.
- Turn off mouse movement tracking when it isn't
needed to reduce idle CPU.
- Fix discrepancy in rendering of composed
characters in GPU renderer vs legacy renderer.
- When "Enable full keyboard access" is turned on
in system prefs, iTerm2 now accepts the spacebar
as input.
- Restore window title when unburying a session
that causes the window to be resurrected.
- Fix cmd-clicking on URLs without a scheme but
with a fragment.
- Fix a bug where windows would restore with the
wrong width when scroller style changes.
- Fix occasional disconnect when typing in tmux
integration.
- SGR 4 with no subparameter now resets the
underline style to single.
- Ensure Rosetta is installed before running the
Python API.
- Fix a bug where clicking the dock icon while the
tip of the day was open wouldn't open a new
window.
- Fix bugs in positioning the badge, indicators,
and broadcast stripes when a per-pane status bar
or per-pane title bar is present.
- Fix a bug where the Jobs toolbelt would show a
process with pid 0 after the login shell
terminates.
- Fix bugs in handling newlines in control
sequences that set the title.
- Fix a bug where marks were sometimes not removed
when the screen was cleared.
- Fix memory leaks.
- Fix a bug where marks were drawn upside-down
in the GPU renderer.
- Fix a bug where faint text could render
incorrectly.
- Fix a bug where window transparency could be
wrong when the window is first created.
- Improve appearance of tabs being dragged.
- Select Current Command now selects past the
cursor if needed.
- Fix a bug where crash reports weren't sent on
macOS 12.
- Fix a bug where errors were shown after an
upload finished.
- When a session needs a Python API script to be
running but it hasn't started yet, retry for
five seconds.
- Fix rendering of background images in non-GPU
renderer when toggling "separate background
images per pane".
- Fix a bug where output on stderr could be lost.
- Fix a bug in rendering marks on non-retina
displays.
- Fix a bug where split panes can't be dragged
after moving them.
- Temporarily disable secure keyboard entry when
exiting a hotkey window so the other app's
window can be revealed.
- Tolerate errors in tmux.conf when starting tmux
integration.
- Fix a bug where find could select the wrong
range on new input.
- Fix a bug where combining marks sometimes didn't
appear.
- Work around tmux's new limit on passthrough
control sequences to fix copy to pasteboard in
tmux integration.
- Fix file descriptor leak in pidinfo helper job.
- Fix a bug in the shell integration installer
where it assumed .bash_profile ends with a
newline.
- Fix a discrepancy between GPU and non-GPU
renderers for image drawing.
- Fix drawing of inline images when the machine's
main display is non-Retina.
- Fix a bug where compact opaque windows with
image backgrounds and 1 tab and no tabbar showed
the image under the titlebar.
- Fix a bug where it2copy didn't work sometimes.
- Fix a bug in handling of zero-width spaces.
- Fix a bug where changing the type of scroller
could cause a window to move away from a
screen's edge.
- Fix bugs with zoomed panes in tmux integration
causing the window to resize itself.
- The Open Quickly feature now includes terminal
windows in search results.
- Fix bugs in the status bar layout algorithm that
could create too-small components.
- Fix a bug where dragging from Fork, or other
apps that treat dragging a file as dragging
a link, that caused the drop to be rejected.
- Fix a bug where images disappear prematurely.
- Remap modifiers on mouse clicks like we do for
keypresses.
- Fix cursor color in reverse video mode. It
should also be reversed.
- Fix a bug where mouse reporting sometimes
wouldn't work until switching to another app and
back.
- Improve appearance of powerline glyphs and box
drawing characters.
- Fix non-standard mouse cursors, like Mousecape.
- Fix support for combining marks in reverse
non-regex search where the wrong region was
highlighted.
- Fix truncation in fullscreen hotkey windows over
spitscreen fullscreen windows of other apps.
- Fix a bug where the first keystroke in copy mode
could be ignored.
- Performance improvements for nushell.
- Make new tab/window with current profile respect
tmux integration.
- Fix appearance of the pane titlebar menu button
in Minimal mode with dark background.
- Fix support for x-man-page URLs.
- Avoid ordering windows forward with focus
follows mouse when closing a popup.
- Work around a macOS bug where focus follows
mouse could activate the wrong pane.
- Fix a bug in opening menus in status bar
components that caused them to appear twice.
- Support multi-line prompts when showing an
offscreen command line at the top of the screen.
- Fix a bug where double-tapping a modifier to
open a hotkey window doesn't work on macOS
Sonoma.
- Fix a bug where profiles with a Python API-based
status bar component could not be exported as
JSON.
- Fix drawing of status bar items with graphs in
Sonoma.
- Fix link to open system settings in Sonoma.
- Fix a bug where searching for a URL doesn't do
anything sometimes.
- Fix bug where dock is hidden after exiting
fullscreen mode sometimes.
- Fix a bug where panes' dimmed status is not
updated after switching panes sometimes.
- Fix a bug where Window > Move to [screen]
sometimes didn't work.
- Fix a bug where certain powerline symbols
weren't drawn on macOS Sonoma.
- Fix wrong light/dark mode in status bar
popovers.
- Enable the autolaunch folder in the script
export file picker.
- Fix bug where job name in jobs tool overlapped
the pid column.
- Fix disclosable view accessories in alerts on
Sonoma.
- Fix a flash when toggling GPU rendering.
- Fix a bug where accessibility coordinates were
wrong, leading to various issues.
- Fix a bug where changing whether non-ascii
characters are anti-aliased wouldn't update the
display if GPU rendering was on.
- Use zsh as the default shell when OpenDirectory
doesn't provide one.
- Handle pasing from remote clipboards (handoff)
better.
- Fix a bug where the split pane shortcut numbers
were wrong after moving them.
- Fix a bug where scrollbar background colors
could be wrong sometimes.
- Fix About window rendering in Ventura.
- Fix a bug where long lines in the input method
editor didn't draw correctly.
- Fix the response for XTGETTCAP when requiesting
the number of colors and direct color width.
- Don't prompt to disable mouse reporting in emacs
when scrolling too far.
- Fix a bug where the status bar font would change
to Times Roman.
- Round timestamps to the nearest second to make
them stable.
- Fix a bug where the hyperlink trigger used the
wrong range of cells sometimes.
- Fix bug where swiping horizontally on pane
titlebar didn't change tabs.
- Fix memory leak when onscreen images are
overwritten.
- Fix UI glitch in background image blending
controls.
- Fix a bug where quitting didn't always kill
sessions.
- Fix drawing issues with fonts that have very
wide ASCII glyphs.
- VPN traffic is no longer double counted in the
network status bar component.
Breaking Changes
----------------
- Change XTGETTCAP's response to "TN" to give
$TERM rather than the name of the terminal
emulator. This will probably break your code if
you relied on it.
- The response to Primary DA now indicates VT
level 400. Hopefully this doesn't break
anything, but it's hard to test! Please let me
know if programs start misbehaving.
- The response to Secondary DA now gives xterm
patch level 2500. This unlocks features in some
apps (like better key handling in Emacs) but
will probably break things I don't know exist.
You can use the following to verify the zip file on https://keybase.io/verify:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
052cc8243ed7c23805394dd99848b7df09f4b4034820da0f92383f9ed8bbb4a8
-----BEGIN PGP SIGNATURE-----
iHUEAREIAB0WIQSAPIQGkYVsjnBRo2J0Et0TaFtKrAUCZkfL3AAKCRB0Et0TaFtK
rEtTAP9+CW2Mw9CweQpU1OgMR10heavHWFfSgLnja1uh8yo+yQEAmkBgtduYQXaF
23mCOB8FODsyzacvV89o6at+FyfdBe8=
=r8jE
-----END PGP SIGNATURE-----