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.
Adding one
Section titled “Adding one”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.
Remote connections
Section titled “Remote connections”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:
| Kind | Runs | Opens |
|---|---|---|
| SSH | ssh.exe [-p port] [-i identity] [user@]host | a terminal pane |
| Remote Desktop | mstsc.exe /v:host[:port] | a hosted application pane |
| SFTP | nothing — WinMux speaks it | a file-browser pane on the remote |
| FTP | nothing — WinMux speaks it | a 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.
Browsing a server
Section titled “Browsing a server”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.
Deletesays so and refuses;Shift+Deletedeletes, 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(orCtrl+Xto 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.
Hosting an application
Section titled “Hosting an application”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.
Adopting a window that is already open
Section titled “Adopting a window that is already open”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.
The quirks database
Section titled “The quirks database”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.