MacTerm is Free Software Under the GPL
MacTerm is free software; you are welcome to change it and/or distribute copies under certain conditions. There is absolutely no warranty for MacTerm. See the GNU General Public License (as published by the Free Software Foundation) for details.
You can access the source code for this project from the Developers page.
Just For You
MacTerm is easy to deploy and support for multiple users, and is a powerful tool for administrative tasks…
- Default Configuration
- When MacTerm first runs, it sets up all user default preferences from a file in its application bundle. You can simplify support if you customize settings prior to deployment. For example, a university could change the “factory default” session host to a campus login server, so that students don’t have to be instructed on how to set this up themselves.
- Low-Level Customizations
- MacTerm makes full use of the Mac OS X preferences model; the command-line defaults tool is able to access all settings so massive changes can be automated. Every possible setting is documented in MacTerm Help. There is also a small and evolving Python API that provides extensive access to the internals of the program.
- Files and URLs
- A significant number of URL and file types can be directly handled by MacTerm, including Apple ".command" files and the "x-man-page" extension. And if you feel like writing some Python code, you can make MacTerm handle any file type or URL that you want!
- Super Terminal
- MacTerm is a complete terminal for local commands or remote access, and is an excellent tool for administrators to use. It has extremely rare features, such as dynamic search. It even has Unix-like options for those who prefer, for instance, focus-follows-mouse and copy-on-select kinds of behaviors. See the full terminal description on this page.
- Experimental Low-Level Sandboxing Support
- By setting an environment variable that is recognized by the MacTerm bundle, experimental sandboxing can be enabled. MacTerm includes a fairly specific sandboxing profile that can be further customized by administrators if applications in sub-shells are found to not work in the sandbox. (This is disabled by default.)
For Students and Researchers
MacTerm can run many popular Unix programs and connect to different kinds of servers…
- Server Support
- Connecting to campus is easy. MacTerm provides simpler access to the Mac’s own tools for telnet, secure shell (SSH), and FTP. Bonjour is supported, for finding local servers And newer technologies such as IPv6 also work.
- Application Support
- MacTerm can run any Unix program on your local Mac, and also properly render what it sees from remote programs. Whether you have to read E-mail with pine (or even print!), do text editing with vim or emacs, or browse the web with lynx, MacTerm is the only tool you need. It can even be configured to display special characters (using Unicode UTF-8 by default). Note that MacTerm must be configured as a VT102 terminal to allow printing.
- Vector Graphics
- MacTerm can render both TEK 4014 and TEK 4105 vector graphics (programs like gnuplot may show charts in this format, among others). Each display renders with very high quality, far beyond what a TEK machine would have typically produced. Drawings can be printed, or copied to the Clipboard; applications that support PDF data can use the copied drawing at any size without degradation! [Screenshots]
Few terminals come close to MacTerm’s accuracy when it comes to playing games on a BBS (bulletin-board system)…
- CP-437 (DOS Character Set)
- Games often assume they are running on DOS, and make use of colors and graphics that most terminals do not display correctly. But if you set MacTerm’s translation type to “Latin-US (DOS)”, you will see games exactly as they were meant to be seen! Special graphics are automatically handled by MacTerm directly, without relying on font support. [Screenshots]
- Preferences Profiles
- MacTerm has a very useful preferences interface that lets you break down settings into groups. So even though game servers do not typically have the same requirements as other things (such as Unix tools), you can still handle both with MacTerm very easily. Gaming usually requires its own Terminal and Translation profiles, so that you can have an 80-by-25 PC display size with color, and DOS graphics. And with a Session profile, you can have the right Terminal and Translation settings automatically chosen when you connect to your BBS server.
MacTerm is a very powerful tool for programmers using or developing command-line tools. But the terminal program itself can be customized in very unique ways…
- The core of MacTerm is a revolutionary scripting framework, powerful enough that key parts of MacTerm are implemented entirely as Python code! You can customize the main entry point of MacTerm to override or add behaviors in a straightforward way; for example, you can use Python to redefine what a “word” is when you double-click. The C++ interfaces exposed to Python are known as Quills; for more information, see the Quills page.
- As mentioned elsewhere, low-level settings are completely accessible with the defaults command and they are documented in MacTerm Help.
- Other Developer Resources
- Please start from the Developers page.
MacTerm has a very accessible interface.
- Full Keyboard Access
- MacTerm natively supports full keyboard access in all user interface elements by default, and will support any future assistive technologies added by Apple.
- Speech Contextual Menu Commands
- When text is selected in a terminal window, you can open a contextual menu to access a command for speaking that text. And while speech is in progress, an additional command is available to interrupt the speech.
An Even Better Terminal
Don’t be fooled by its roots — MacTerm is not just for remote access anymore! It is a complete terminal, and a pretty remarkable one at that… [Screenshots]
- Unicode Foundation
- The terminal is capable of preserving incoming text perfectly: whether you copy it to the Clipboard, capture it to a file, print it, or drag and drop, any special characters will be present. You can also use the floating command line window to input any kind of character. (So far in the beta however, there are limits on which Unicode characters can actually be displayed by the terminal.) Finally, Unicode is supported for file names, preference collection names, and macros.
- Advanced Emulation
- MacTerm supports many common XTerm modes (including 256 colors, background-color-erase and cursor positioning, among others). It has a completely accurate VT100 and VT102 emulator and a VT220 emulator that supports most common operations. It even has a “dumb” terminal mode. Combined with features like key palettes (see below), MacTerm can interact very well with a variety of remote machines and terminal applications.
- Terminal Search
- MacTerm has a very fast, scan-as-you-type, multi-selection Find dialog: all matches in the active terminal window (main screen and scrollback) are immediately found, and you can optionally search every open window at once! The search window remembers your recent searches and saves its state between uses. [Screenshots]
- Optional Tabbed Interface
- Glue windows together if you want to, so they move at the same time. Unlike typical tabbed interfaces, MacTerm keeps each tab in its own window. So tabs can have different sizes, or their own custom toolbars, or even open sheets that do not block other tabs. You can drag and drop text between tabs by hovering over them. Finally, you can unglue any tab as the start of a new workspace of tabs.
- Live Resize
- While you drag to resize a window, information on the changing attribute (screen size or font size) is displayed. A user preference allows you to specify whether the screen size or font size is the default, and holding down the Control key during a resize will temporarily invert this setting.
- Key Equivalents for Window Tweaks
- Commands to nudge windows in any direction, and to change the font size and screen dimensions. Without even leaving the keyboard, you can set up your window just the way you want. Windows can even be nudged quickly between displays.
- A new preference allows you to type into whichever terminal is underneath the mouse, a Unix-like behavior.
- Print Screen, Print for selected text, and even terminal-initiated print (such as in pine, when you have configured a VT102 terminal), are all available. In addition, a print preview is displayed, providing more control over the results.
- Random Formats
- You can choose to pick the set of colors and fonts for new windows randomly, based on whatever Format Favorites you have defined. (This is currently a low-level property list setting.)
- Use Any Font
- You can make a terminal use any font that you want. MacTerm even offers settings such as Character Width, so you can make unusual fonts look good in a terminal grid by squishing or expanding the space between letters.
- In addition to the regular background, terminals can have a border whose color is set separately.
- Cool Blinking
- When the text or cursor is supposed to blink, a new quadratic-delay pulse effect creates a smooth and beautiful animation. You can still change the blinking colors to anything you want, and the cursor color can be set independently from the rest of the text.
- Cool Mouse Pointer
- MacTerm terminals have custom artwork for mouse cursors that is larger and designed to stand out more. This makes text selection much easier, especially on large displays.
- Intelligent Paste
- If the Clipboard contains more than one line (often a disastrous thing to dump into a Unix shell), using Paste will display options: for example, joining the lines together before continuing with the Paste.
- Intelligent Double-Click
- MacTerm double-clicks are context-aware by default, allowing double-clicked “words” to avoid things such as nearby punctuation. The scheme is also implemented entirely in Python and it can be overridden by installing a replacement event handler; see Developers for more information.
- Smart Bell
- MacTerm automatically suppresses terminal bells that occur in rapid succession. So instead of waiting for your terminal to finish beeping 100 times after a typo, you can just get back to work!
- Custom Terminal Bell Sounds
- You may have any sound in your library (or a system sound) played when a terminal bell event occurs.
- Floating Command Line
- An always-available text window that supports all standard system key equivalents and editing modes. Command history is available via a pop-up menu or the down-arrow key.
- Floating Key Palette Improvements
- Utility windows with certain common keyboard layouts, supporting tabbing and displaying help tags with extra information (such as control key functions). These make it easy to interact with remote applications that may require features not found on Mac keyboards. (Note that Macros can also be set up to do similar things.)
Let MacTerm monitor sessions for you, automatically flagging or responding to interesting events!
- Activity Notification
- For windows that sit idle for long periods, you can have MacTerm tell you when new text appears.
- Idle Notification
- For windows that are really “noisy”, MacTerm can tell you when they seem to have finally settled down.
- For sessions that may automatically terminate after long periods of inactivity, this allows you to send text to them periodically so they stay “alive”.
- Support For Growl and the OS X Notification Center
- “Session active”, “Session idle”, “Session ended”, “Session failed” and “Script error” notifications are sent through the OS X Notification Center, and also to Growl when it is available. (To prevent two notifications from appearing, simply disable MacTerm notifications in either System Preferences or Growl.)
Macros are short-cuts that allow you to run complex tasks using a simple key combination. MacTerm macros are extremely powerful… [Screenshots]
- Macros can perform many types of tasks:
- Sending text to a session (either “verbatim” or by first substituting current values for special symbols).
- Opening a URL in any application (like a bookmark).
- Running a command line in a new window.
- Selecting the next terminal window whose title matches the macro’s key phrase.
- Many Keyboard Equivalents
- Macros can be activated by any character key, or by one of over two dozen others, such as arrow keys, page keys, and function keys. Plus, you can require any combination of modifier keys (command, control, option, shift).
- Escape Sequences
- MacTerm supports high ASCII codes with “\1nn” sequences, in addition to “\0nn” and other sequences. Short-cuts exist for common values, such as “\e” for Escape and ”\n” for a new-line. A number of special sequences exist, like “\s” to represent currently-selected text, among several others that are documented in MacTerm Help.
- Every macro can have a custom name, to see at a glance what it does.
- Macros in the Menu Bar
- Each macro’s custom name and key equivalent is displayed in the Macros menu, and macros can be invoked by selecting commands from that menu. You can also use this menu for fast switching, to activate different macro sets.
- Macros in Contextual Menus
- If a macro is configured to send text “with substitutions” and it makes use of one of the special symbols that depend on currently-selected text, those macros will automatically be available in terminal window contextual menus whenever text is selected.
Powerful Preferences System
MacTerm preferences are extensive and you will find a surprising number of things that you can change. Some features only have low-level preferences available but MacTerm Help describes them all in detail.
- General Settings
- Customize the cursor shape, notifications, and more. See An Even Better Terminal for more examples of what terminals can do.
- Macro Favorites
- See Macros for more.
- Workspace Favorites
- Spawn multiple windows at once! See Session Management for more.
- Session Favorites
- Specify the local command or remote server to use, and related settings such as the rate of data transfers and the meaning of a new-line.
- Terminal Favorites
- Set screen dimensions, emulation type, and even tweak emulator features, independently from other settings.
- Format Favorites
- Fonts, colors and related settings are completely separate from the rest of a session profile, which is a very nice MacTerm feature! It allows you to set the look of windows once, even if you want to reuse that look across different kinds of sessions.
- Translation Favorites
- Translation tables determine how sessions interpret text; the default assumption is UTF-8 (Unicode) but you might change this when interacting with game servers or other PCs.
- Full Screen
- Tweak full-screen mode; for example, by enabling access controls and hiding the scroll bar.
- Live Collection Editing
- When you select Workspaces, Sessions, Macros, Translations, Terminals or Formats, a list appears with all of your saved collections. Just click a collection and edit it live in the Preferences window!
- Mac OS X Preferences Format
- No more custom file formats! MacTerm uses the same type of preferences database as other Mac OS X applications, and automatically runs a converter application to import settings from older versions. With this change, you can now use the command-line defaults program to access MacTerm settings. All low-level settings are documented in MacTerm Help.
It is easy to have multiple windows open.
- This type of preferences collection allows you to spawn multiple windows at the same time, directly from the File menu. You can specify exactly where the windows appear, and which Session collection they use (each of which is associated with a Terminal, Translation and Format collection). In addition, the Default workspace now determines what happens at startup time, so you can completely customize the startup sequence. A Workspace can be told to automatically enter Full Screen when it begins.
- Session Info
- A single window that allows you to manage every session. Customize completely: toolbar contents, column layout, sort order, window size, position and visibility are all remembered. At a glance, see the running status, window title, command line, device name, and creation time for every session. Double-click an item to activate its window. Click on a window title to rename that window.
- Session Duplication
- The Duplicate Session command automatically opens a new session that uses the same command as the active session.
- Session Restart
- The Restart Session command is now available if you set the preference to leave windows open after they exit. This allows you to instantly rerun the original command in the same window, saving all of your scrollback history. There is also a command to Force Quit a session without starting it again, keeping the window open.
The majority of MacTerm’s screenshots are displayed on the MacTerm Tumblr blog.