Projects and the sidebar
Projects
A project is a name, an optional root directory, and tabs. It stays until you close it, even with nothing running in it, and comes back after the daemon restarts.
Closing a tab or a project asks first. Closing either one kills every program in it, so the window lists the panes that would close, each with what it's running, its directory and its state, and waits. Enter, or "Close tab" or "Close project", closes. Escape, "Keep it", or a click outside closes nothing.
- With more than six panes, the window counts them instead of listing them all.
- A project with nothing running in it closes without asking.
- Closing a pane doesn't ask, and neither does
isc tab closeorisc project close: typing the full command counts as your yes.
Opening one. Press Ctrl+Shift+N, or click the project's name in the top bar. You're asked for two things:
- Name, which you can leave empty. A project with a directory and no name is named after the directory. With neither, it's given a name.
- Directory, where its tabs open. It starts as the directory of the pane you're in. Type a path that begins with
/or~:- Below the field are the directories that what you've typed could become, six at most. Hidden ones appear only once you type a dot. Up and Down select one.
Tabgoes into the selected one, so entering a path takes a few letters andTabat each step.- If the field is empty, the project has no directory.
- If the path isn't a directory, the window says so, and Enter does nothing.
Tabin the name field moves to the directory field;Shift+Tabmoves back. Clicking either field moves to it. Enter, or "Create", makes the project and opens a shell in it. Escape, "Cancel", or a click outside makes nothing.
From the sidebar's field. Press Ctrl+Shift+L to put the keyboard in the field at the top of the sidebar. This shows the sidebar if it was hidden. With tabs = "top" there's no such field, and the key opens the palette instead, which finds the same things.
| Typed, then Enter | Result |
|---|---|
A directory that exists, absolute or beginning ~ | Opens a project there, named after the directory |
| The name of an existing project | Goes to that project |
| Anything else | Creates a project with that name and no root |
As you type, the same field filters the tree.
From the command line, use isc project new [DIR] [--name NAME], or isc run --new-project.
Where new panes open. A new tab opens in the project's root. In a project with no root, it opens in the directory of that project's front pane, and in the home directory only when there's no such pane. A split opens in the directory of the pane it splits. A new floating pane opens in the focused pane's directory.
A project's name does not follow its panes. A project named insensical is still called insensical even if all its shells have changed directory to ~/Projects/quote. The tab and pane rows show where they really are.
Renaming. Press the pencil that appears on the project's sidebar row, or use isc project rename OLD NEW. You can't give a project an empty name.
Closing. Press the cross on the project's row, which asks first, or use isc project close NAME, which doesn't. This closes every pane in the project.
Moving between projects. Press Ctrl+Alt+PageDown or Ctrl+Alt+PageUp, click a sidebar row, or use isc project select NAME.
On the command line, you refer to a project by its name, or by its number as isc ls prints it (4 or project:4). Two projects can have the same name. The name then means the first one listed, and the number tells them apart.
The sidebar
The sidebar is a tree: project, tab, pane. It's shown while tabs = "sidebar". Press Ctrl+Shift+B to hide it, and again to bring it back.
| Row | Shows |
|---|---|
| Project | A fold mark, a folder icon (accent-coloured for the current project) and the name. On the right: how many panes it holds. When it's folded, this is instead the number of its panes that need you, with the mark and colour of the most urgent, if any do. |
| Tab | A fold mark, a tab icon, then the tab's name if it has one, otherwise the directory of its focused pane. When it's folded, on the right: the mark of its most urgent pane. |
| Pane | The program's icon, then the pane's name if it has one, otherwise its directory. On the right: a mark if it's floating or minimized, and its state. |
- Click a row to go to it. Click a minimized pane's row to bring the pane back.
- Directories are written with
~for the home directory and are cut short at the beginning, because the end tells you the most. - The rename and close buttons take up room on the row even when they're invisible, so a long path is cut a little sooner than the row's width suggests.
Naming. A pencil appears at the end of the row under the pointer. Press it, type a name, and press Enter. Escape cancels. For a tab or a pane, Enter on an empty field removes the name, and the directory shows again. The daemon keeps names: they survive a restart and appear in the tab strip, the pane's header, notifications and isc ls. From the command line, use isc tab rename TAB NAME or isc rename PANE NAME. There's no key and no palette entry for naming a tab or a pane.
Folding. The mark at the start of a project or tab row hides what's under it. Folding is per window and isn't remembered. While the filter field has text, its matches are shown even inside something folded.
Filtering. Type in the field to narrow the tree to the projects, tabs and panes whose name, title, program or directory contains what you typed. Case doesn't matter.
What is listed. The sidebar setting chooses which levels appear under a project's name: ["tabs", "panes"] (the default), ["tabs"], ["panes"], or [] for project names alone.
From the keyboard. Press Ctrl+Shift+L (leader e) to put the keyboard in the field. Down and Up then move a highlight through the rows in the order they're listed or, after you've typed, through the rows that match. Left folds the highlighted project or tab, and Right unfolds it. Enter goes to the row and gives the keyboard back to the pane. With no row highlighted, Enter opens the project you typed. Typing clears the highlight, because the rows have changed. Escape leaves the field.
You can't drag rows to reorder them.