Make it yours

Customizing PaneShift

Open PaneShift › Settings (⌘,) or click the gear in the toolbar. Changes apply at once, except the language, which applies after a restart.

Colors§

Total Commander's “Color by file type”. Each rule has:

Names are colored by the first rule that matches; use Move Up and Move Down to order them. Marked items stay red whatever the rules say. The standard rules color archives orange, images purple, audio and video pink, and source code teal. Restore Defaults brings them back.

Columns§

A column set chooses which columns the Full view shows. The tab shows which set each panel uses right now and why: chosen by hand, a folder mask matches, or the default.

View › Columns… (⌥⌘K) picks a set for the active panel by hand.

Appearance§

With the System theme, PaneShift follows the system's light and dark appearance. The other themes keep their colors in both.

Keys§

Every command is listed with its keys. Type in Filter commands to find one, then edit its keys in the Keys column and click Apply.

Shortcuts with ⌘ and F-keys also appear in the menus. Total Commander Defaults restores the standard keymap.

Button Bar§

The colored icons in the middle of the window's toolbar. Each button has a Title, an Icon and either a command or a shell command.

Move Left and Move Right order the buttons. Restore Defaults brings back the standard bar: Terminal, Find, Sort, Compare, Sync, Pack, Server, Disk usage and Settings.

User commands§

Shell commands accept Total Commander's parameters. Every value is quoted, so names with spaces, quotes or $ can never turn into shell syntax, also when you put a parameter in quotes yourself (open "%F"). Names starting with - get ./ in front, so a program never reads them as options.

ParameterBecomes
%PThe active panel's folder
%TThe other panel's folder
%NThe name under the cursor
%FThe full path of the item under the cursor
%SThe marked names, each quoted, or the cursor name when nothing is marked
%%A percent sign

Examples:

du -sh %S                       # sizes of the marked items
open -a TextEdit %S             # open them in TextEdit
rsync -av %S %T                 # copy them to the other panel with rsync
ffmpeg -i %N -vn %N.m4a         # extract the audio of a video

User commands run with a POSIX shell in local folders only.

Access§

In the Direct edition: a shortcut to Full Disk Access in System Settings. In the App Store edition: the folders you granted, with Grant Access to Folder… and Remove. See Disk access.

Language§

PaneShift speaks English, Czech, Slovak, German, French, Spanish, Italian, Polish, Dutch, Portuguese, Russian, Ukrainian and Romanian. Terms follow Total Commander's translations where a feature comes from it, and Apple's words for Mac concepts.

Choose App language: Same as the system, or one of the languages, then click Restart Now.

Your own translations§

In the Direct edition you can translate PaneShift into another language, or adjust a built-in one:

  1. Click Export Template… and save the file. It is a JSON file with every text of the app.
  2. Open it in a text editor. Set "language" (for example "sk") and "name" at the top, then fill in the texts under "strings". Texts you leave empty fall back to the built-in language. Keep everything that starts with % as it is.
  3. Click Import Translation…. PaneShift reports how many texts it took. Texts whose % codes differ from the original are left out and listed.
  4. Choose your translation under App language and restart.

Show Folder opens ~/Library/Application Support/PaneShift/Translations; Remove deletes an imported translation.

View › Menu in Window puts the menu bar into the window, above the panels, as in Total Commander. It is off by default. It holds the same menus as the Mac's menu bar, which stays as it is.

Command palette§

⇧⌘P lists every command by name with its keys. Type a few letters (fuzzy matching: “syfo” finds Synchronize Folders) and press Return to run it. It is the quickest way to find a command whose key you forgot.

Scripts§

Scripts are small JavaScript files that read the panels and ask PaneShift to mark files, change folder or copy text. Run them from Commands › Run Script… (⌥⌘J). The menu lists the scripts in ~/Library/Application Support/PaneShift/Scripts and has Open Scripts Folder. PaneShift puts an example there the first time.

A script defines function run(ps). A first line // title: … sets its name in the menu.

// title: Mark Files Also in the Other Panel
function run(ps) {
    const other = new Set(ps.otherItems);
    ps.mark(ps.items.filter(name => other.has(name)));
}
NameWhat it is
ps.folderPath of the active panel's folder
ps.otherFolderPath of the other panel's folder
ps.cursorName under the cursor, or null
ps.selectionMarked names, or the cursor name when nothing is marked
ps.itemsAll names in the active panel
ps.otherItemsAll names in the other panel
ps.mark(names)Mark exactly these names
ps.navigate(path)Go to a folder
ps.copy(text)Put text on the clipboard
ps.log(text)Show a message when the script ends
ps.readText(name)Text of a file: a name in the active folder, or a full path inside either panel's folder. Up to 4 MB; null otherwise

Scripts can't write or delete files or run programs, so a script from someone else can't damage anything. A script gets 5 seconds; one that takes longer is stopped and changes nothing. If a script fails, none of its requests are applied.