Open With
Open With is a flyout in the context menu: hover it and you get the programs that can open this file, one click away. The upper half is what the system knows about, the lower half is what you pinned there yourself. This page covers how to read the flyout and how to choose what gets pinned.
Windows, macOS and Linux all have this flyout. Where the candidates come from differs, and so do the actions at the end of it — see What differs per system.
Reading the flyout
Right-click a file and hover Open With. The flyout has four segments, top to bottom:
| Segment | What is in it |
|---|---|
| Default program | Whatever this file type is currently associated with, marked default at the end of the row |
| System recommendations | The other programs the association table knows about, with no separator above them |
| Your pinned programs | Below the separator: the ones you pinned in Settings, in the order you put them |
| The actions at the end | Choose another app… opens the Windows dialog and is Windows-only; Manage Open With… goes to the settings page and is on all three systems |
Every row carries the program's icon on the left, which so far only Windows can draw. When an icon is slow to arrive its slot stays empty and fills in afterwards, with the text staying where it is.
The programs are looked up the moment you hover the flyout, so the first hover can take a beat. Each file type is looked up once per run, and hovering it again is instant.
When there is nothing to list
| Situation | What the flyout shows |
|---|---|
| The selected files are different types | The upper two segments go away, replaced by a dimmed Selected files are of different types; the lower half is unaffected |
| Nothing is registered for this type | The upper two segments go away, replaced by a dimmed No registered program |
| Nothing pinned yet | The lower half reads a dimmed No pinned programs yet |
| The target is a folder | Open With does not appear at all |
Those dimmed lines are explanations, not entries you can click.
To change the default association, use Choose another app… (Windows). Windows does not let a program change a file type's default association behind your back, so this flyout has no "always use this". The system dialog has an Always use this app checkbox; that is where defaults get changed. macOS and Linux have no such entry — change defaults in Finder's Get Info, or in the system's own default-applications settings.
Pinning your own programs
Pinning puts a program in the lower half of the flyout, in an order you set, independent of what the association table does. The settings page is in the Input group and is called Open With; Manage Open With… at the end of the flyout goes to the same page and preselects the extension you just right-clicked.
- Open Settings and click Open With in the Input group.
- On the Applies to row, choose which files these pins cover: All files, or click + Extension and type one (the box's example reads e.g. .psd).
- Click + Add a program and pick one from the list. The box above it filters by program name.
- Reorder with the ↑ / ↓ at the end of each row, remove one with ×.
While nothing is pinned the page reads No pinned programs yet. Once pinned, a program shows up in the lower half of the right-click "Open With" flyout — in the order you choose, not the one the system decides.
A program pinned both under one extension and under All files appears once, in the position the extension-level pin gives it. If it also turns up in the system recommendations, the only row you get is the one you pinned.
Extension pins sit above global pins. So the program you pinned specifically for .psd comes before the ones pinned for every file. To change the order within one layer, use the ↑ / ↓ at the end of each row.
Flyout options
The Flyout options section at the bottom of the page controls how long the upper half gets:
| Setting | What it does |
|---|---|
| Show programs the system recommends | Turn it off and the flyout keeps only the default program and your pins |
| Show at most | 3, 5 (default), 8 or All. The number includes the default program's row |
Programs past the limit are not lost: on Windows they are still reachable through the Choose another app… dialog, and on the other two systems raising the limit one step brings them back.
Pinned programs live in config.ini in your settings folder, on the openwith_pin lines, which the bottom of the page says as well.
What differs per system
Reading the flyout and everything about pinning work the same on all three. What differs is where the upper half comes from and how many actions sit at the end:
| System | Where the recommendations come from | Actions at the end | Program icons |
|---|---|---|---|
| Windows | The system's file type association table | Choose another app… and Manage Open With… | Yes |
| macOS | The system's launch services — the same list Finder's Open With uses | Manage Open With… only | Not yet; the slot stays empty and the row keeps its height |
| Linux | The freedesktop MIME database plus the .desktop entries programs install | Manage Open With… only | Not yet |
Choose another app… is Windows-only because the other two systems have no equivalent system dialog a program can call up — an entry that does nothing when clicked is worse than no entry.
On Linux, programs are launched through gio launch where it is available (it ships in libglib2.0-bin); where it is not, tessoa reads the launch command out of the .desktop entry itself. Both paths work.
Where custom commands come in instead
Custom commands can also produce an "open with VSCode" entry. The line between the two:
| What you want | Which one |
|---|---|
| Open the selected files with some program | Open With. You name the program; there are no arguments to fill in |
| Pass arguments, limit when it appears, run a command line | Custom commands, which give you Name, Program, Arguments and Applies to |
Their positions differ too: custom commands always sit at the bottom of the context menu as their own segment, while pins sit next to the system recommendations in one flyout.