Skip to content

Profiles and applications

A profile is a named thing you can put in a pane. Shells and applications are the same idea — to the layout they are both a program, some arguments and a working directory — so they are the same list.

The shipped terminals are seeded on first run and are editable and deletable like anything else.

Settings → Profiles, or Add or edit profiles… in the New menu:

  • Add application… browses the installed-application catalogue, read from the Start Menu and resolved through the shortcuts. You should not have to know where an executable lives.
  • Add manually… takes a path you type or browse to.

Whatever you add appears everywhere at once: the New menu, an empty pane’s launcher, the command palette and the CLI, because all of them read the same list.

An SSH or Remote Desktop connection is a profile too, which is the point: saving one adds it to the New menu, an empty pane’s launcher, the command palette and the CLI at once, exactly like a local program.

Choose SSH connection or Remote Desktop connection in the profile editor and fill in the host — plus, optionally, a port, a user and an SSH identity file. WinMux builds the command:

KindRunsOpens
SSHssh.exe [-p port] [-i identity] [user@]hosta terminal pane
Remote Desktopmstsc.exe /v:host[:port]a hosted application pane
SFTPnothing — WinMux speaks ita file-browser pane on the remote
FTPnothing — WinMux speaks ita file-browser pane on the remote

Both clients ship with Windows, so there is nothing to install. The default port is left off the command line rather than passed explicitly, so an SSH connection still honours whatever your ssh_config says about that host. Anything in the profile’s Arguments is appended last, so it can override what WinMux built.

Network shares are the other half of working remotely, and they work differently: Windows mounts them and WinMux just uses the path. See Network shares.

SFTP and FTP are different from the other two: there is no Windows client to hand them to, so WinMux implements them, and the pane you get is the ordinary file browser pointed somewhere else. Everything in Keyboard works the same — new folder, rename, copy, paste, delete — because it is the same browser.

Two differences you will notice, both of them the protocol’s doing rather than a gap:

  • There is no Recycle Bin on a server. Delete says so and refuses; Shift+Delete deletes, and asks first. WinMux does not invent a hidden trash folder, because that is a promise it could not keep the moment anyone touched the server by other means.
  • Between a server and your disk, copy and paste — or drag and drop — just work. Put a local pane beside the server’s and drag, or select, Ctrl+C (or Ctrl+X to move), click the other pane, Ctrl+V. Files from Explorer can be dropped straight onto the server’s pane. Folders go with everything in them, progress shows in the status line, and the same no-overwrite rule applies. A move removes the original only once the copy has finished without error; if the connection drops halfway, the original is untouched and the half-written file is removed rather than left looking complete.
  • Copying is a download and an upload. Neither protocol has a server-side copy, so duplicating a large file on the server costs its size twice over the wire. There is no way around that from a client.

If the server turns you away, the pane says so in one line with a Try again button, which asks for the password again — the saved one is the likeliest reason it failed.

SFTP can use a key. Put the private key file in the profile’s identity field and there is no password to type or store. Otherwise WinMux asks once and offers to keep it in Windows Credential Manager.

SCP has no entry of its own, deliberately. It is a copy command with no directory listing — there is nothing for a browser to show — and every server that speaks SCP speaks SFTP.

Ordinary applications are embedded: the window becomes a child of a host process that WinMux positions over the pane. The host is a separate process on purpose — a frozen application freezes its own host, and WinMux stays alive and can detach or close the pane.

Some applications refuse. WinMux detects the refusal and switches to attach, leaving the window top-level and driving its position to follow the pane, like a tiling window manager. Less seamless, far more compatible. Ctrl+B a switches a pane between the two at any time, and the choice is remembered per application.

Ctrl+B o opens a tray of the windows currently open. Drag one onto a pane and it is adopted there.

Dragging the application’s own window from the desktop onto WinMux is not possible — Windows delivers a window-move to the window being moved, not to whatever it passes over, so there is no drop for WinMux to receive. Dragging its entry out of the tray is the same gesture over something WinMux owns.

An adopted pane records the program’s path, so the next session starts the same program rather than chasing a window handle that will not exist.

foreign-app-quirks.json beside the executable maps applications to a hosting strategy, a window-selection rule, a launch delay and any known limitations. It is deliberately user-editable — if an application needs different treatment, that is where to say so.

Matching is on executable image, window class and an optional title substring. Never on the launched process id: on Windows 11 notepad.exe is a shim that runs a different process.