PI LaunchPad


Customizable launchpads of stored process instances, files and scripts. [more]

Categories:DeepSkyColors, Global

Keywords: toolbar, launcher, process icon, process instance, theme, skin, texture, group, separator, script, thumbnail, workflow.

Contents

[hide]

1 Introduction

[hide]

PI LaunchPad gives PixInsight launchpads: toolbars, up to ten of them on screen at once, whose buttons each hold a complete process instance, a link to a file (images, an .xpsm file, etc), or a script. A single click launches a button exactly as double-clicking a process icon on the workspace does.

The point is not that PixInsight lacks a way to keep process icons around: it has one, and the workspace holds them perfectly well. The point is that a workspace full of icons is a pile, and a launchpad is a tool.

PI LaunchPad stores the process instance's own serialized definition, so once an item is added, the original process icon can be deleted and the button still works. We, the user, name the Items, arrange them, group by them, and they survive across sessions.

PI LaunchPad comes with 28 different launchpad themes, but if we want to design our own, the launchpads are ours to style. Every color, size, spacing, font, texture, image and effect belongs to a theme, and themes are files we can save, load and share. A launchpad can be a discreet vertical strip that looks like the rest of PixInsight, or a wide grid of labelled buttons over a Hubble frame; both are the same module with a different theme loaded. Each launchpad has a theme of its own, so both can be on screen together.

PI LaunchPad in use:

Eight launchpads, each with its own theme, on a PixInsight workspace.

2 Setup and Installation

[hide]

The only official distribution of PI LaunchPad is through DSC Hub, our free PixInsight process for installing and updating everything Deep Sky Colors makes. One address covers every one of our processes:

https://repo.deepskycolors.com/

Adding that repository to PixInsight installs DSC Hub, and PixInsight handles that installation itself, with our Developer and Repository certificates verified before it completes. We then open PROCESS > DeepSkyColors > DSCHub, select PI LaunchPad in the list, and click Download and install.

DSC Hub checks every download against a catalog that is digitally signed, and refuses anything whose checksum does not match. PixInsight then verifies the module's own signature every time it loads it, so a module altered after we published it is refused.

Keep that repository in the list. DSC Hub tells us at startup when an update for PI LaunchPad is waiting, and installs it in a couple of clicks. There is nothing else to add: the older per-module repositories are no longer needed, and DSC Hub offers to clear them away.

If you'd rather bypass DSC Hub and add one repository per process, PI LaunchPad still has its own: https://repo.deepskycolors.com/PILaunchPad/ DSC Hub will offer to remove it. Do NOT use these individual repositories and DSC Hub at the same time. We would be asked to install the same modules twice, if we do.

2.1 Launching PI LaunchPad normally

PI LaunchPad opens its launchpads by itself when PixInsight starts, as described below in 2.2. They can also be opened at any time, like every other process.

In Process Explorer or via the PROCESS menu, PI LaunchPad is listed under the DeepSkyColors and Global categories as PILaunchPad. Opening it shows the Main LaunchPad, even when it is hidden, and with it every other launchpad that is not hidden. This is the way back to a hidden Main LaunchPad: opening it this way also clears its Hidden setting.

The module has three kinds of window:

  • The launchpads: one window each, titled with the launchpad's name. The Main LaunchPad is the process's default interface.
  • PI LaunchPad Manager: where the launchpads' contents are administered, one launchpad at a time.
  • Theme Editor: where a launchpad is styled.

The launchpads deliberately have no control bar: no drag triangle, no Apply, no Reset. That is what makes them read as tool strips rather than as process dialogs. The consequence is that the control bar lives on the Manager window: the drag triangle a LaunchPad process icon is generated from, the button that opens this documentation, and the wrench that opens the license dialog.

The Main LaunchPad always has a manager button, which opens the Manager. There it cannot be removed, so there is always a way back into the Manager: the Main LaunchPad itself can always be reopened from the PROCESS menu. Every other launchpad may do without one and spend that cell on something more useful, and gets it back with Action in the Manager, which lists the manager button first while the launchpad has none (see 4.6). A new launchpad copies the buttons of the one it was made from, the manager button included when that one has it. From any launchpad, a Ctrl+right-click on a button opens the Manager at that button. The manager button can be renamed, given a custom icon, and moved anywhere in the order like any other item.

The three kinds of window:

A launchpad, the PI LaunchPad Manager and the Theme Editor.

2.2 Opening the launchpads automatically at startup

PI LaunchPad opens the launchpads by itself every time PixInsight starts: every launchpad that is not hidden, the Main LaunchPad included. They appear a few seconds after PixInsight's own windows, and nothing is written to the Process Console. Installing PI LaunchPad while PixInsight is running opens them as well.

This is controlled by Open launchpads when PixInsight starts, under the table in the Manager's Edit LaunchPads window (see 5.1). It is on unless we turn it off, and it applies to the whole installation rather than to one launchpad. With it off, the launchpads open only when we open PI LaunchPad from the PROCESS menu or Process Explorer.

No special shortcut or startup script is needed. A shortcut made for an earlier version of PI LaunchPad, which starts PixInsight with PILaunchPadStartup.js, still works: that script now does nothing, so the launchpads do not open twice, and the shortcut can go back to starting PixInsight normally.

2.3 Licensing

PI LaunchPad is licensed software with a 30-day trial. The wrench on the Manager window's control bar opens the license dialog, which reports the current status and is where an email address and a license key are entered.

When the trial ends, PI LaunchPad does not stop working. It continues as a free tier that launches the first five buttons of the Main LaunchPad. A notice says so once, the first time the module runs after the trial is over.

Nothing is ever deleted. A launchpad of twenty buttons stays a launchpad of twenty buttons: every item keeps its name, its icon, its custom settings and its stored definition, and the configuration file on disk keeps all of them. Buttons past the fifth are drawn greyed out and do not launch, and the Manager lists them all, marked needs a license, so we can see the work is intact. Registering brings every one of them back at once, with no import step and no restart.

The free tier is also one launchpad. Additional launchpads keep their buttons, their themes and their files, and stay editable in the Manager, but they do not open. Registering brings them back exactly as they were left.

The limit counts only what a button launches: process items, file items, scripts and actions. Separators, group headings and the manager button are exempt, so a five-button launchpad can still be organized freely. Themes are not limited in any way, and neither are configurations, the Theme Editor, or the themes that ship with the module.

Which five are live is simply the first five in the Main LaunchPad's order, so reordering its list chooses them. See 5.4.

The free tier:

After the trial, buttons past the fifth are greyed out on the launchpad and marked needs a license in the Manager. Nothing is removed.

3 The launchpad windows

[hide]

Each launchpad is a window of its own, titled with the launchpad's name. Inside it is a single custom-drawn surface rather than a row of ordinary buttons, which is what allows it to be themed as completely as it is.

Clicking

A single click launches an item. Activation happens on release over the same button the press started on, so a click that drifts off a button does nothing, and a press that turns into a drag reorders instead of launching.

A Ctrl+click on a process button runs the process instead of opening it: on the active image when the process works on images, and globally otherwise, which is what dropping its icon on an image or on the workspace does. On any other button it does what a click does. A Ctrl+right-click on any button opens the Manager with that button selected. On macOS, Cmd takes the place of Ctrl.

While there is more than one launchpad, the manager button carries a small mark in its top right corner. Clicking the mark, rather than the rest of the button, opens the launchpad switcher. A plain right-click anywhere on a launchpad, on a button or between buttons, opens it too, which is how we reach it from a launchpad without a manager button. See 5.1.

A Ctrl+click on a group's title collapses the group to its title, and another expands it again. See 4.5.

Reordering by dragging

Dragging a button moves it. A press becomes a drag after about five pixels of travel, and an insertion marker shows where the button will land. A drag can also move a button from one group to another: where it lands is decided by the group the cursor is over, so dropping it inside another group's frame moves it there, dropping it clear of every frame leaves it outside the groups, and an empty group accepts a button as readily as any other.

Tool tips

Hovering a button shows its name after a short delay. When Extended tooltip is on, the tool tip also shows the button's description and then, for scripts and other files, the original path to the file; for a process, the process it launches.

Resizing

A launchpad window is resizable, and the bar fills it completely, which is why a background image covers the whole window rather than stopping at the buttons. Where the buttons sit in a window larger than they need is set by the theme's alignment. Fit window to launchpad, in the Theme Editor, shrinks the window back to exactly what the buttons need, spacing margin included.

The window resizes itself automatically whenever a change makes its old size meaningless: loading a theme, restoring defaults, reverting, or changing Display, Icon size, Columns or text Position. Other adjustments leave a window we have sized ourselves alone, so that editing a theme live does not fight us.

An extended tool tip:

Hovering a button shows its name and, with Extended tooltip on, its description and what it launches.

4 What a launchpad can hold

[hide]

4.1 Process items

A process item holds a complete process instance: the process and every parameter it was saved with. Clicking it opens that process with those parameters, which is what double-clicking a process icon does. A Ctrl+click runs it with those parameters instead, as described under Clicking.

Items are captured from process icons on the workspace, through Process icon in the Manager's Add row. What is stored is the instance's own serialized definition, so the workspace icon it came from can then be renamed or deleted without affecting the button.

A captured button is named after the icon, not its process: the icon id is what we called that particular instance, and it is what the Manager's third column shows. The name is editable; the column is not. Naming buttons after the process instead would call every captured PixelMath icon "PixelMath".

Process icon files. A .xpsm file holds one process icon or a whole collection of them. Adding one through File in the Add row captures the icons it names, as process items, rather than making a button that opens the file. A file holding twenty icons therefore becomes twenty buttons in one step, which is worth doing even for icons already on the workspace, since Process icon takes one at a time.

The icons do not have to be open in PixInsight. An icon the workspace already has is captured from it directly; any other is rebuilt from the file's own description of the instance, and the result is then serialized by PixInsight itself, so what a button stores is the same text a hand-captured one stores.

That conversion refuses rather than guesses. Every setting it restores is read back and compared, and an icon whose settings do not survive the round trip is reported by name and left out instead of being added with something approximate. A process the file needs but this installation does not have is reported the same way, and so is a Script icon whose script is not installed: the script is part of what that icon is, and a button that cannot run is worse than no button. Whatever could not be added is listed in the console with its reason.

Each stored definition carries a cryptographic signature, verified both when the launchpad is loaded and again when a button is clicked. An item whose definition does not match its signature is refused rather than launched. The configuration file is plain text in a user-writable folder, and a stored definition is executable script, so this is not a formality.

Icons come from PixInsight itself wherever it ships one for the process, and Deep Sky Colors processes carry their own icons inside the module.

Icons inside module files. Some third-party modules install no icon file and build their icons into the module file instead, as RC Astro's do. For a process with no icon anywhere else, we look inside the module files: first a module file named after the process, and when there is none, every module file that is not one of PixInsight's own. When exactly one module file names the process, it is the only process named there with no icon of its own, and the file holds exactly one square icon, that icon is used without asking. Otherwise the button shows PixInsight's generic blue cube, and Module icon... in the Manager lets us pick the right icon by eye, as described under 5.3.

What is found in a module file is remembered between sessions, so a file is read again only when it changes, as it does when the module is updated.

Add from workspace:

The process icons on the workspace, ready to be captured as buttons.

4.2 File items

A file item holds a path. Clicking it opens that file in PixInsight.

Nothing about the file is checked when it is added: the path is stored as given, so a link to a file on a drive that is not currently mounted survives rather than being refused.

When the file is an image PixInsight can read, a thumbnail of it becomes the button's icon. The thumbnail is generated once, when the item is added, and stored inside the launchpad, so it is never regenerated afterwards. It is autostretched with PixInsight's own screen transfer function: astronomical data is linear, and a direct rendition of a light frame would be a black square.

Clear thumbnails in the Manager drops generated thumbnails so they are made again next time. An icon we chose ourselves is left alone: that is a decision, not a cache.

Folder buttons. A file item can hold a folder instead of a file. It is the quick way into a folder we keep returning to: the data of the current project, or a folder of masters. A folder button does two things:

  • Click: shows the folder in the system's file manager: Explorer on Windows, Finder on macOS, the desktop's own on Linux.
  • Ctrl+click (Cmd+click on macOS): opens PixInsight's Open dialog in that folder, listing the image formats PixInsight can read. Every file we pick there opens as a file button would open it, and scripts run. Several files can be picked at once, and if some cannot be opened they are reported together at the end.

The button's tool tip says which click does which. A folder is stored as given, like a file. When it is not available, as on a drive that is not mounted, the button says so instead of opening somewhere else. Its default icon is a folder, and the Manager lists it as Folder.

4.3 Script items

A file item whose path ends in .js is a script: clicking it runs the script rather than trying to open it as an image.

PixInsight scripts describe themselves, and LaunchPad reads that description rather than making us retype it. When a script is added:

  • #feature-id gives the button its name.
  • #feature-icon gives it its icon, including the @script_icons_dir form that PixInsight's own scripts use.
  • #feature-info gives it the description shown in its tool tip. Only the first line is taken, with its markup removed; a line that continues onto the next ends in an ellipsis.

Script, in the Manager's Add row, lists every script installed with PixInsight that declares a feature id, which is the same test PixInsight uses to decide what belongs in the SCRIPT menu. The list can be sorted by script name, category or description, and several scripts can be added at once.

Add script:

Every script installed with PixInsight that declares a feature id, sortable by name, category or description.

4.4 Separators

A separator is a divider between buttons. It occupies a place in the order, is never a hit target, and cannot be clicked or launched.

By default its orientation follows the layout rather than the display mode: buttons stacked vertically are divided by a horizontal line, buttons side by side by a vertical one. The Theme Editor can make every separator vertical or every one horizontal instead.

A separator is compact by default: instead of a whole button's space, it takes its line plus some room on both sides of it, so the buttons either side of it close up while staying clearly apart. On a launchpad with more than one row or column, the buttons after a compact separator can end up out of line with the rows or columns around it. Turning Compact off in the Theme Editor gives every separator a whole button's space again, which keeps a grid in line. Its color, thickness and effects are set in the Theme Editor too.

4.5 Groups

A group is a titled band of buttons, drawn with its own frame and fill.

Groups are headings in the item list, and a button is in a group because it says so: membership belongs to the button, is kept with it in the launchpad file, and is shown in the Manager as Group: beside the button's name. Three things follow from that:

  • A button that is not in a group is simply in none. Ungrouped buttons can sit anywhere in the launchpad, before the groups, between them or after them.
  • An empty group is a group: it keeps its title and its frame, and takes a button as readily as any other. Deleting a heading leaves the buttons that were in it exactly where they are, in no group.
  • A new group is added at the end. The list is kept in group order, each heading followed by its own buttons, which is what lets a group be drawn as one rectangle, so a heading is never inserted between a group and its buttons.

Each group starts a new row, which is what allows its frame to be a rectangle. Groups can be moved as a whole with Move up and Move down, which swaps a group with the whole group next to it: the first group has none above it and the last none below.

Groups are laid out like buttons: a group is only as wide as its contents need, and groups pack across the bar and wrap to a new line when the next one does not fit. Raising the column count therefore puts groups side by side rather than leaving empty space to the right of each one. Buttons line up across framed and unframed groups alike.

Whether a group draws its title and its frame belongs to the theme, and applies to every group at once: Groups > Font size set to Don't display hides the titles, and Groups > Frame set to zero hides the frames. Both are in the Theme Editor, described below.

Collapsing a group. A Ctrl+click on a group's title on the launchpad collapses the group: its buttons are hidden, the title stays, and the rest of the launchpad closes up around it. A collapsed title shows how many buttons it is hiding, as in Filters (5), so it never looks like an empty group. Another Ctrl+click on the title brings the buttons back. On macOS, Cmd takes the place of Ctrl.

A collapsed group stays collapsed until it is expanded again, PixInsight restarts included, and the Manager lists it as Group (collapsed) while still showing every button in it. A button dragged onto a collapsed group is added at the end of that group. Collapsing needs the title, so while a theme does not display group titles every group is shown expanded. The launchpad window shrinks or grows to fit, unless we have resized it ourselves.

Groups:

Buttons organized in titled, framed groups.

4.6 Actions

An action is a built-in command that works on whichever image is active when its button is clicked. It opens nothing: a click does it at once. Actions are added with Action in the Manager's Add row, which lists every action with its category and a description, and several can be added at once.

MaskShow/hide mask, Enable/disable mask and Invert mask, each of which toggles, so a second click turns it back. Remove mask takes the mask off the image altogether; the mask image itself stays open.
HistoryUndo and Redo. With nothing to undo or redo, a click does nothing.
ZoomZoom to fit, Zoom 1:1, Zoom in and Zoom out.
DisplayAuto STF applies an automatic screen stretch to the active view, linked across its channels, the way the STF tool's auto button does. Auto STF (unlinked) stretches each color channel on its own, which neutralizes a color cast on screen, and Boosted Auto STF applies the STF tool's stronger, boosted stretch, for faint data. Reset STF removes the stretch. Toggle STF turns the stretch off and, on the next click, back on to the same stretch, for comparing the linear and the stretched view; when it has no stretch to put back, as on a view that started out linear, it applies a linked Auto STF. None of these change the image itself, only how it is shown.
ImageSave saves the active image to its file, and asks where when it has never been saved. Save As... always asks, opening on the image's own file when it has one, so a new name or format is one edit away; the image then refers to the new file. Image info writes the active image's size, channels, sample format, file, mask, number of previews and astrometric solution to the Process Console.
WindowsClose other images and Minimize other images act on every image window except the active one. Closing asks about unsaved changes as usual.
Next image and Previous image bring the next or the previous open image to the front, in the order PixInsight keeps them. Flip images flips between two images, the way PixInsight's Ctrl+PgDown does: its first click brings the previous image to the front, and each click after that goes back to the other one, so the two can be compared in place. Selecting another image ourselves starts a new pair. All three pass over minimized images.

A mask action on an image with no mask says so, and so does any action with no active image. Each action has a default icon of its own, which Set icon... replaces like any other. An action button counts toward the free tier's limit, the same as a process button.

While the selected launchpad has no manager button, the list starts with one more row, Manager, which puts the manager button back, with its switcher mark, where new buttons go. It is not an action, and it does not count toward the free tier's limit, so the list opens for it even when the limit has been reached. The Main LaunchPad always has its manager button, so the row never appears there.

A launchpad holding actions can be opened by an earlier version of PI LaunchPad without losing them: that version keeps the buttons, and says it cannot open them when one is clicked.

5 The Manager window

[hide]

The window is read in three boxes: LaunchPads, which chooses and manages the launchpads themselves; Current LaunchPad, holding the item list and what reorders it; and Current button, the name and description of the row selected in that list. Under them sits the row of actions, described in 5.6.

The Manager is where the launchpads' contents are administered, one launchpad at a time: the one selected in its top row, described next. It is opened from the manager button on any launchpad, and opens on that launchpad, as does the Theme Editor if it is open. It is a normal window: every launchpad stays usable while it is open.

The PI LaunchPad Manager:

The launchpad row at the top, the item list, and the controls that act on the selected launchpad.

5.1 Several launchpads

There can be more than one launchpad. Each is a window of its own with its own buttons and its own theme, so a calibration strip and a stretching strip can sit side by side looking nothing like each other.

The row at the top of the Manager selects which one we are editing. Everything below that row applies to the launchpad named there: the item list, the ordering, the icons, and the theme the Theme Editor shows. The Theme Editor says which one it is pointed at in its first line, so a theme cannot be applied to the wrong launchpad by accident.

  • LaunchPad: which launchpad is being edited. Selecting one brings its window forward.
  • Hidden: takes this launchpad off the screen and keeps it closed when PixInsight starts. It still exists and is still edited here. The Main LaunchPad can be hidden too: opening PI LaunchPad from the PROCESS menu or Process Explorer always shows it again, and clears the setting.
  • Rename: gives this launchpad a different name. Only the name changes: its buttons, its theme and whether it is hidden are untouched. The Main LaunchPad can be renamed as well: it remains the Main LaunchPad, first in the list and never hidden, and is listed as the name we give it (Main LaunchPad).
  • Delete: removes this launchpad and its file. The Main LaunchPad cannot be deleted.
  • New LaunchPad: creates another one, starting as a copy of the launchpad currently selected, with the same buttons and the same theme, and switches to it. Only its name is asked for.
  • Edit LaunchPads: lists every launchpad in one table, with its Hidden state, whether it shows the Switcher mark, its Name, a Description of what it is for, how many buttons and groups it holds, and its theme. Changes take effect as they are made: ticking Hidden takes a launchpad off the screen at once, a name or description is saved when we leave its field, and the red cross deletes a launchpad after asking. The same rules apply as above: the Main LaunchPad can be renamed but not hidden or deleted, and an emptied name keeps the name it had. Below the table, Open launchpads when PixInsight starts turns the automatic opening described in 2.2 on or off for the whole installation.
  • Apply PITS Theme: gives this launchpad the look of the theme PI ThemeStudio last applied: its colors, its interface font (face and size) and its corner rounding, for the buttons and the group frames alike. It also takes the theme's panel skin, the image PixInsight tiles behind its own panels, as the launchpad background, tiled at its own size the way PixInsight tiles it. Nothing else changes: the launchpad keeps its display mode, icon size, columns, spacing, button image and effects. A button fill, a button border, a group frame or a group fill takes the theme's color only when this launchpad already paints it, so an element left unpainted stays that way, and a launchpad whose label size is 0 keeps showing no labels. The background belongs to the theme: a theme with no panel skin leaves the launchpad with none, so a background image of our own is replaced. The restore point is the way back to it, and the console says whenever the background is taken or dropped. With no theme in force in PI ThemeStudio, the colors are PixInsight's own, the font is PixInsight's own face, the launchpad is left with no background image, and the corners stay as they are. PI ThemeStudio records a theme when it applies it, before PixInsight restarts, so right after applying one the launchpad can already show the new theme while the rest of PixInsight shows it only after the restart. A restore point is kept first. The button is shown only when PI ThemeStudio is installed, and is disabled until it has applied a theme.

The launchpad switcher. While there is more than one launchpad, the manager button on each launchpad carries a small mark in its top right corner. Clicking the mark, rather than the rest of the button, opens the switcher, and so does a plain right-click anywhere on a launchpad, which works on a launchpad without a manager button as well: every launchpad on a row of its own, with a green dot when it is on screen, and a hollow dot on a darkened row when it is hidden. Clicking a row toggles it: a hidden launchpad is shown and brought to the front, and a shown one is hidden, the Main LaunchPad included. Below the rows:

  • Show all puts every launchpad on the screen.
  • Hide others hides every launchpad except the one the switcher was opened from.
  • Gather here moves every launchpad on screen to where the switcher window is, each one a step down and to the right of the last. It is for launchpads left out of reach, such as on a monitor that is no longer connected.

The mark can be turned off for any launchpad with the Switcher column in Edit LaunchPads; the right-click still opens the switcher there. Without a license, the additional launchpads are listed but cannot be shown.

A new launchpad starting as a copy is deliberate: it opens looking like something rather than like nothing, and deleting the buttons that do not belong is quicker than adding the ones that do.

The first launchpad is the Main LaunchPad. It always exists, because it is what everything falls back to, and it is the window PixInsight opens when the PILaunchPad process is opened from the PROCESS menu or Process Explorer.

We can give it a name of our own. It stays the Main LaunchPad in every other respect, and wherever launchpads are listed it reads our name (Main LaunchPad), so the one that always exists stays recognizable in the list.

There can be up to ten launchpads. PixInsight registers a module's interface windows when the module is installed and cannot create one afterwards, so the windows are reserved in advance and handed out as launchpads are created. New LaunchPad is disabled once all ten are in use; deleting one frees it again.

When PixInsight starts, every launchpad that is not hidden opens, unless Open launchpads when PixInsight starts is turned off (see 2.2).

The LaunchPad row:

Choosing, hiding, renaming, deleting and creating launchpads.

5.2 The item list

The list shows every item of the selected launchpad in launchpad order. Group headings are shown in bold, with the buttons that belong to a group indented under its heading. Four columns:

  • Name: what the button is called. This is the label in the two text display modes, and the tool tip in icons-only mode.
  • Type: what the button really is: Process: followed by the process id, Script: followed by the script's name, Image, File, Separator, Group or Manager. The process id and the script name survive a rename, and this is the only place either is visible. On the free tier, a button past the limit is marked needs a license.
  • Captured from: the workspace process icon an item was captured from, or a file item's path. This is provenance only: it is not used to launch anything, and it is empty for items that were not captured from an icon.
  • Description: the one line the Description box below the list holds for the selected item, which is also what the button's tool tip shows. A long description is not cut short: the list scrolls sideways rather than the window growing to fit it.

The list is deliberately not sortable. The row order is the launchpad order, and a sorted view would misrepresent it.

Name: the field below the list renames the selected item. Press Enter to apply. Empty names are refused: an unnamed item is unidentifiable in the text modes and has no tool tip in the third.

Group: beside the name, which group the selected button is in, or (none). Choosing a group moves the button into it, at the end of that group; choosing (none) takes it out and leaves it beside the group it was in. With several buttons selected, all of them go together. It is disabled on a group heading, since groups do not nest, and it is the direct way to do what moving a button past a heading also does.

Description: a line about what the button does, shown under its name in the tool tip when Extended tooltip is on. For a script it starts as the script's own #feature-info. It is free text and purely descriptive: nothing written here changes what the button launches.

5.3 Adding and removing

The Manager's buttons sit in three places, and this section follows them: under the item list in Current LaunchPad, in the toolbar along the bottom of the window, and in the Tools window that toolbar opens.

Under the item list

These act on the item selected in the list, or on every selected button when there are several (see 5.4). The same row holds Move up and Move down, described under 5.4.

Deleteremoves the selected item, or every selected button after asking. Deleting a group heading deletes the heading only: the buttons that were in it stay where they are, in no group. On the Main LaunchPad the manager button is refused, and stays behind when it is part of a selection; on any other launchpad it is removed like any other button.
Set icon...gives the selected item a custom icon from an image file. SVG is best, because the launchpad's icon size is adjustable and SVG rescales cleanly, but any image PixInsight can read works. The icon is stored inside the launchpad, so it travels with saved configurations and exported process icons rather than pointing at a file that might move. With several buttons selected, every one of them gets the same icon; separators are skipped.
Default icondrops the custom icon, so the item falls back to the default for its type. With several buttons selected, each one goes back to its own default.
Module icon...shows the icons built into the module files that name the selected process, and gives the item the one we click. Enabled only for a process button whose process has no icon of its own, from PixInsight or from PI LaunchPad, and only while a single row is selected. The dialog says where the icons came from: the module file named after the process when there is one, or otherwise every module file that mentions the process, in which case some of the icons may belong to other processes. Square icons are shown first, the likeliest ones first, up to 24; Show all appears when some were left out, and lists every one. The chosen icon is stored the way one from Set icon... is, and Default icon drops it.
In the toolbar at the bottom

Its first row is the Insert button box, whose buttons add one kind of button each, so their labels leave the word add out. The icons shown here are what the same actions carry in the icon toolbar (see 5.6).

Process iconlists the process icons currently on the workspace, and captures the chosen ones.
Processlists the processes installed in PixInsight and adds the chosen ones. The button opens its process with the process's own default parameters, the way Process Explorer does, so nothing is captured and nothing is stored: to keep a process with settings already in it, use Process icon instead. The list can be filtered by name or category and sorted by either, and several processes can be added at once. Processes with no interface are not listed, because a launchpad button opens a process and those have nothing to open.
Scriptbrowses the scripts installed with PixInsight. See 4.3.
Fileadds a button that opens a file. Not restricted to images: what PixInsight can open is the core's business, not this module's to second-guess. A .xpsm is treated as what it is, a process icon file, and is described under 4.1.
Folderadds a button for a folder: a click shows it in the file manager, and a Ctrl+click opens files from it. See 4.2.
Actionlists the built-in actions on the active image and adds the chosen ones. See 4.6.
Separatoradds a divider. See 4.4.
Groupadds a group heading at the end, selects it, and puts the cursor in the Name field, since naming it is the next thing anyone does. With several buttons selected, it asks for the group's name first, then moves those buttons into the new group, in their order.

A new button is inserted right after the selected row, and joins whatever group that row is in. Several added at once arrive in order, after it, and with a block selected they land after the last row of the block. With nothing selected they go at the end of the launchpad, in no group. The button just added is then the selected one, so naming it, giving it an icon, putting it in a group or moving it needs no hunting for the row.

The second row acts on the launchpad as a whole:

Tools...opens the Tools window, described below.
Load...under Theme:, opens the theme loader on the selected launchpad. See 6.7.
Editunder Theme:, opens the Theme Editor on the selected launchpad. See 6.
In the Tools window

Tools... opens a window of its own, with four icon buttons: Load LaunchPad, Save LaunchPad, Restore backup and Clear thumbnails. It opens over the button we clicked, and one click both chooses and closes it. What each one does is described under 5.5.

5.4 Ordering

Move up and Move down move the selected item one row, exactly as though the list were flat, and the row it lands after says which group it is now in. Moving an item past a group heading is therefore how it enters that group, and moving it past the last button of a group is how it leaves. The Group: field described in 5.2 does the same thing in one step.

At the very bottom of the list there is no row to move past. Move down on the last row therefore takes that button out of its group and leaves it where it is, which is the only thing down can mean there; on a button that is in no group it does nothing.

When the selected item is a group heading, the whole group travels with it, and it swaps with the entire group next to it rather than with a single row.

To move an item several rows at once, we select it and Ctrl+click the row it should go below (Cmd+click on macOS); the selection follows the moved item. Ctrl+clicking a group heading makes the item the first one in that group. A selected group heading takes its whole group, and lands after the whole band the clicked row belongs to, its own group or the run of ungrouped buttons around it, so no group is ever split. Move up is the way to put an item first.

Several buttons at once. A Shift+click on another row selects every row between the two, and the row clicked last becomes the active one. Shift with the arrow keys, and Ctrl+A, extend the selection the same way, and it is always one unbroken run of rows. Group headings inside the run are never part of it: they are left unselected, so a selection is always a block of buttons that moves around the groups.

With a block selected, Move up and Move down move the whole block, and the whole block joins what it lands after. A block at the bottom of the list leaves its group on Move down, the way a single button does. Each press takes it past the next row that is not part of it, counted from the block's first row going down and from its last row going up. When the block spans a group heading, the first press therefore gathers the block on one side of that heading, and every press after that moves it one row. A Ctrl+click takes the block out and puts it right below the clicked row, in its order; a Ctrl+click inside the selected run does nothing. Either way the block stays selected. Set icon..., Default icon, Delete and Group act on the whole block too, as described under 5.3, and Module icon... is disabled.

Clicking any other control drops the selection back to the active row, and then that control does what it always does. So does clicking into the Name or Description field, since both edit a single button.

Dragging buttons on the launchpad itself does the same job, and moves an item between groups as well: the group the cursor is over is the one it joins.

The manager button is not special about any of this: it can be moved, and put in a group, like any other button.

5.5 Configurations

A configuration is a whole launchpad: its items and its complete theme, in one file. The four buttons of the Tools window (see 5.3) are what acts on a launchpad as a whole:

  • Load LaunchPad: replaces the selected launchpad's buttons and theme with the ones in a file. Its name and whether it is hidden stay as they were.
  • Save LaunchPad: writes the selected launchpad to a .pilp file. A theme on its own is a .pilptheme file. LaunchPads saved by earlier builds used .txt; those still load, and the Load dialog keeps a filter for them.
  • Restore backup: puts the selected launchpad back the way it was at a restore point, described below. Enabled only when there is one.
  • Clear thumbnails: drops the thumbnails generated for file items, so they are made again next time those files are added. An icon we chose ourselves is left alone: that is a decision, not a cache.

Loading is destructive by design: loading a saved configuration means switching to it. It is not a one-way door, though. The launchpad being replaced is kept first as a restore point, and the console says so; if the restore point cannot be written, the launchpad is not replaced.

A LaunchPad process icon replaces launchpads too, when it is double-clicked or dropped on the Manager. A process icon carrying no launchpad, such as one just created from Process Explorer, is treated as a request to open the Main LaunchPad and changes nothing.

An icon carries every launchpad, and each one goes back to its own slot, with its name, its theme and its hidden state, wherever we drop the icon and whichever launchpad the Manager is pointed at. Those that are not hidden open. Importing an icon on a second machine therefore reproduces the whole set we exported from the first.

A launchpad that already matches the icon is left alone, so opening the same icon twice changes nothing. A launchpad the icon replaces is first kept as a restore point, and the console names it; if the restore point cannot be written, the launchpad is not replaced. Nothing is restored from a launchpad the icon could not read when it was generated.

Restore points

A restore point is a launchpad as it was at a moment worth coming back to. One is kept:

  • whenever a configuration is loaded, a process icon replaces a launchpad, or a restore is made;
  • whenever Apply PITS Theme changes a launchpad;
  • in the Theme Editor, whenever a theme is loaded, the theme is reset to defaults, or Undo is used;
  • at the first change of a Theme Editor session, holding the look the launchpad had when the session began;
  • when the Theme Editor is closed, if anything changed since the last restore point.

Opening and closing the Theme Editor without changing anything keeps nothing. Each launchpad keeps its ten most recent restore points. The launchpad's previous generation is offered too: every change keeps the one before it, so the most recent change can always be undone.

Restore backup lists the selected launchpad's restore points, newest first. Each shows the date and time it was kept and what replaced the launchpad at that moment, such as 2026/09/11, 22:12:04 : Before a theme was loaded. A point kept under a different name, which happens when a deleted launchpad's place is reused, shows that name in parentheses at the end.

Restoring replaces the launchpad's buttons and theme; its name, and whether it is hidden, stay as they are. The launchpad as it was before the restore is kept as a restore point of its own, so a restore can itself be undone.

The Restore dialog:

The restore points kept for the selected launchpad, each labelled with when and why it was kept.

5.6 Text buttons or an icon toolbar

The Manager's actions come in two forms, and the small button at the right of the row chooses between them. The first is the text buttons described above: the Insert button box, and under it Tools... and the launchpad's theme. The second is a single row of icons, one action per button, in this order: Icon, Process, Script, File, Folder, Action, Sep. and Group, then after a gap Tools, Load and Edit. Load is the theme loader and Edit the Theme Editor.

The two are the same actions, and a button on one does exactly what its counterpart on the other does. The gap separates adding a button from what acts on the whole launchpad. Deleting a button, and the icon of the button selected, live with the item list in Current LaunchPad rather than in either form.

The chooser sits at the end of both: a small square button after Edit among the text buttons, and a narrow one at the end of the icon row. The choice is remembered between sessions. It belongs to the installation rather than to a launchpad, so it is the same whichever launchpad the Manager is pointed at, and a launchpad shared with someone else does not carry it.

6 The Theme Editor

[hide]

A theme owns everything visual about a launchpad, including its layout. That is deliberate: loading a theme can turn a vertical strip into a horizontal grid, because that is a legitimate part of a look.

Each launchpad has its own theme. The Theme Editor edits the theme of the launchpad selected in the Manager, and names that launchpad in its first line. It is a normal window, not a dialog, and every change applies to that launchpad immediately. There is no OK to press.

Change to: at the right of the first line, lists every other launchpad. Choosing one moves the Theme Editor to that launchpad's theme, and the Manager with it, exactly as choosing it in the Manager's LaunchPad list does. When the current theme has changed since we started editing it, we are asked first: Yes keeps the changes, No discards them, putting the theme back the way it was, as Revert does, and Cancel stays on the current launchpad. The combo is disabled while there is only one launchpad.

Theme name: what this look is called. It is saved into theme files and shown when one is loaded. It is not an identity: two themes may share a name.

The settings are grouped into sections, each under a bar that collapses and expands it, so that only the part being worked on needs to be on screen. The window resizes itself to whatever is open, and every section starts expanded.

The Theme Editor:

Every setting of the selected launchpad's theme, applied as it is changed.

6.1 Layout

Layout holds what arranges buttons. What a button looks like is in Buttons.

  • Display: what a button shows. Icons only, Icons and text, or Text only.
  • Icon size: the edge length of a button's icon, in logical pixels before display scaling. 16 to 96.
  • Columns: buttons per row, in every display mode. 1 gives a vertical strip; more gives a horizontal bar that wraps onto further rows as items are added.
  • Spacing: the gap between buttons, and the inset from the window's edges. Distinct from Padding, which insets a button's content inside that button. 0 to 32.
  • Align: where the block of buttons sits when the window is larger than it needs. Horizontally Left, Center or Right; vertically Top, Middle or Bottom. It has no visible effect on a window fitted exactly to the launchpad.
  • Fit window to launchpad: shrinks the launchpad window to exactly the space the buttons need, spacing margin included, discarding any size we had dragged it to.

Changing Display, Icon size or Columns refits the window automatically: each of them changes the shape of every button, so the window's old size no longer means anything.

6.2 Text

  • Font: the type face for button labels, chosen from the fonts installed on this computer. Default uses PixInsight's own interface font. A theme made elsewhere may name a font this machine does not have: that name is kept and listed here, and the bar falls back to the interface font until the font is installed.
  • Size: label size in points, up to 48. Default 8. Below 1 the spin box reads Don't display, and labels are not drawn at all: a size of nothing is how we say no text, rather than a small number. Display follows, switching to Icons only, since a text mode with no text is not a display mode. Choosing a text mode again brings the size back to 8, unless one is already set, in which case it is left alone.
  • Bold: draws labels in bold.
  • Trim to: the longest label drawn, in characters. 2 to 100, default 40. A longer name is cut here and given an ellipsis, which is added on top of the count: trimming to 8 gives eight characters plus three dots. A name only a character or two over the limit is left alone, since cutting it would produce a longer label than the name itself. Every cell is as wide as the widest label on the bar, so without this one long name sets the width of every button, and lowering the trim narrows the buttons. The tool tip always shows the whole name.
  • Position: where the label sits relative to the icon, in icons-and-text mode: Right of icon, Left of icon, Above icon or Below icon. Left and right center the two against each other; above and below stack them and center them across. Changing it refits the window.
  • Wrap at: where a label starts a new line. No wrap keeps every label on one line. Space starts a new line at every space. \n starts one wherever the name contains the two characters \n, typed into it in the Manager; under every other setting, and in the tool tip, a typed \n reads as a space. | and _ start one at those characters. Capitals starts one before a capital letter that follows a lowercase letter or a digit, so HistogramTransformation becomes Histogram and Transformation, while an acronym such as SPCC stays whole. The character a label breaks at is not drawn, and Trim to applies to each line. Every button is as tall as the label with the most lines, and changing the setting refits the window.
  • Alignment: the combo beside Wrap at: Left aligned, Centered or Right aligned, for every line of a label, a label of one line included. The icon is not affected. A launchpad or theme saved before this setting existed keeps the alignment its layout gave it: centered in text-only mode and when the label sits above or below the icon, right aligned when it sits left of the icon, and left aligned when it sits right of it.
  • Hover: what the button under the cursor does, beyond taking the hover color. See below.
  • Extended tooltip: whether a tool tip carries its second line, saying what the button does. Off leaves the name alone, which is all a familiar launchpad needs.
Hover effects

The amount beside the combo drives all of them: the scale for Magnify, the rise for Lift, the halo's width for Glow, how far Brighten lightens.

  • No effect: the hover fill and edge colors only.
  • Magnify: the button swells, the way a dock does it. The icon is re-rendered at the larger size rather than scaled up, so it stays sharp.
  • Lift: the button rises and casts a soft shadow where it was.
  • Glow: a halo outside the button, in the hover edge color.
  • Press: the 3D shading inverts and the button sinks.
  • Brighten: the fill and border lighten, with no change of geometry. This is the one that cannot overflow into a neighbouring button, which makes it the safe choice in a tight multi-column layout.

6.3 Buttons

Everything about what a button looks like.

  • Padding: the gap between a button's edge and its content. 0 to 32.
  • Corners: corner rounding for button fills and borders, in pixels. 0 draws square. Up to 24.
  • Border: border thickness in pixels, 0 to 6. 0 draws no border at all, whatever the border color says.
  • 3D buttons: the border itself is drawn light along the top and left edges and dark along the bottom and right, shaded from the border's own color, so a yellow border stays yellow. With no border to shade, 3D still outlines the button at one pixel, taking its color from the fill.
  • Gradient: fills each button with a gradient instead of a flat color, both ends taken from the button color itself.
  • Amount: how far the gradient and the 3D shading move away from the base color, 0 to 100. 0 makes both invisible.
  • Gradient direction: which way the gradient runs. The end named is the light one: up, down, left or right. Enabled only while Gradient is on.
Colors

Every color is chosen with the Deep Sky Colors picker, and every one has an opacity. Opacity 0 means the element is not painted at all, which is how an optional fill or border is switched off; the picker's None button is the direct way to say that.

A swatch previews its color over the two grounds it will really be seen against: on the left the launchpad's own background, or a piece of the background image when there is one, and on the right a contrasting neutral so that a translucent color reads as translucent.

  • Button: the resting fill behind each button. Set it to None for a flat bar.
  • Border: the resting outline around each button.
  • Text: the label color in the two text modes.
  • Hover: the fill under the cursor.
  • Hover border: the outline under the cursor.
  • Hover text: the label color under the cursor.
  • Separator: the color of separator items.
  • Drop mark: the insertion marker shown while dragging a button.
  • Arrow and Show arrow on files: an arrow drawn near the bottom-right corner of every button that opens a file (an image, a script, anything opened from a path), so it reads as a link to something that lives elsewhere. Process buttons never get one: they hold their instance. On by default. The arrow is a third as long as the icon is wide, never shorter than 15 pixels, and shrinks as a whole to fit a small button. Its edge is black on a light fill and white on a dark one. The color is disabled while the box is off.
Icon opacity

How solid the icons are, independently of every color above. It is its own setting because a translucent button with a solid icon on it is a perfectly reasonable thing to want.

Button image

An image tiled inside every button, over the fill and under the border, and clipped to the button's own shape including its rounded corners. There is no fit mode to choose: a button is small and repeats across the bar, so a texture is the only thing that reads well at that size. It has its own Opacity, so a faint texture over a solid button color is possible. Remove drops it.

Separator

The style of separator items, next to the color that draws them.

  • Thickness: the line's thickness in pixels, 1 to 8.
  • 3D: lights one edge of the line and shadows the other, the same way 3D buttons work.
  • Gradient: fades the separator along its length: left to right for a horizontal one, top to bottom for a vertical one. It uses the buttons' Amount.
  • Compact: gives a separator only the room it needs: its line, with the Layout spacing on both sides of it, or the button padding when that is larger, so a launchpad with no spacing still gets a visible break. Off, a separator takes a whole button's space. On by default, and for launchpads and themes saved before this setting existed.
  • Orientation: which way the line runs. Auto runs it across the buttons' flow: horizontal between buttons stacked one above the other, vertical between buttons side by side. Vertical and Horizontal always draw it that way.

6.4 Groups

What a group's frame, fill and title look like, and whether groups draw them at all. These apply to every group on the launchpad at once: Size set to Don't display hides the titles, and Frame set to zero hides the frames.

  • Group frame: the color of the frame drawn around a group.
  • Group title: the color of a group's title text.
  • Outline title: draws group titles with a 1-pixel outline, black around a light title and white around a dark one, so a title reads over any fill or background image. Off by default, and disabled while titles are not displayed.
  • Fill: the fill behind a group's buttons, under its frame. Set it to None and the bar shows through.
  • 3D: shades the group's frame like a raised button.
  • Gradient and Gradient direction: fill the group with a gradient instead of a flat color, running the way the direction names. They use the buttons' Amount.
  • Frame: the frame's thickness in pixels, 0 to 6. 0 draws no frame at all: the group still groups, and still carries its title and its fill. With no frame, the controls that only decorate one, 3D and the Group frame color, are disabled. Corners and the gradient stay live, because they shape the fill as well.
  • Corners: the frame's corner rounding. Ignored while the title sits on the frame, which needs a straight top edge to break.
  • Padding: the gap between the frame and the buttons inside it. 0 to 32.
  • Min rows: the fewest rows a group is laid out in, however many columns there is room for. 1 to 20, default 1. A group with room to spare puts everything on one line, which turns six buttons into a long strip; asking for 2 makes the same six a 3x2 block. It is a minimum rather than an exact count: six buttons over four rows is not a grid, so the layout gets as close as the item count allows.
  • Title: where the title sits. On the frame breaks the frame's top edge behind the text, the way PixInsight's own group boxes do it. Above the frame puts it on its own line.
  • Bold and Size: the title's weight, and its size in points. Default 8. Below 1 the spin box reads Don't display and group titles are not drawn. The group still groups, and its frame and fill are unaffected.

6.5 Skin

The launchpad's ground: a color, and optionally an image over it.

  • Color: the bar's ground, painted under everything else. This is what shows when there is no background image.
  • Background image...: a wallpaper painted behind the buttons, over the background color. Remove drops it and the bar goes back to the flat color.
  • Mode: how the image fills the window.
    • Stretch fills the window exactly and does not keep the image's proportions.
    • Fit shows the image as large as it can while keeping its proportions, and the alignment below places it in what is left over.
    • Tile and Center use the image at its own size.
  • Align: where a fitted image sits in the space its proportions leave over. Enabled only for Fit: Stretch leaves nothing over, and Tile and Center place themselves.

Images are embedded in the theme, not referenced by path, so a theme file and an exported process icon carry their own artwork and survive being copied to another machine. Because every byte of a theme image is copied into every configuration we save and every process icon we export, a theme image is resized when it is set: a background image is scaled to fit 2048 pixels on its longer side and a button image to fit 1024, always the whole image and never a crop. It is stored as JPEG, or as PNG when it has transparent pixels. An image that already fits keeps its original file unless re-encoding makes it smaller, and an SVG image is kept as it is. Any other format PixInsight can open, such as XISF or FITS, is converted the same way; 32-bit floating point data, which is usually linear, gets an automatic stretch first, and integer data is used as it is. A button image is tiled at its own size, so a scaled-down texture repeats more often. A theme image file can be up to 100 MB, and what is stored from it is kept within 1000 KB: a JPEG gives up quality first, and then, like a PNG, size. An SVG is stored as the text it is, so its file must be within 1000 KB itself. An icon file can be up to 4 MB.

A skinned launchpad:

A background image behind the buttons, and a texture inside each of them.

6.6 Theme files

  • Copy theme from: takes a whole theme from another launchpad. The combo lists every other launchpad there is, and Copy applies its theme here. Only the theme travels: this launchpad keeps its buttons, its name and whether it is hidden. It is a copy rather than a link, so changing the other launchpad afterwards does not change this one. The row is disabled while this is the only launchpad, and the theme being replaced is kept as a restore point first.
  • Load theme...: opens the theme loader on this launchpad (see 6.7). A loaded theme replaces the current one whole: settings its file does not mention take their default value rather than keeping whatever the previous theme had, because a theme file is a whole look. The PIThemeStudio-current.pilptheme file PI ThemeStudio writes is one too, and carries the Main LaunchPad's layout; to take only PI ThemeStudio's look, we use Apply PITS Theme in the Manager (see 5.1).
  • Save theme...: writes this theme, including any embedded images, to a .pilptheme file.
  • Undo: undoes the most recent change to the theme. The button then reads Go back, which puts that change back again; after any other change it reads Undo once more. Undo reaches back one change only, and only a change to the theme: when the most recent change was to the launchpad's buttons, it says there is nothing to undo. For anything further back, Restore backup in the Manager's Tools window.
  • Defaults: restores every setting on this page to the built-in look.
  • Revert: puts the launchpad back the way it looked when this window was opened, discarding every change made since.
  • Close: closes the Theme Editor. Changes are already applied and saved.

Loading a theme, restoring defaults and reverting all refit the launchpad window, since each of them brings a whole layout with it. Loading a theme, restoring defaults and Undo each keep a restore point first, so none of them is a one-way door; see 5.5.

6.7 The theme loader

The theme loader chooses a theme by looking at it. It opens from Load theme... in the Theme Editor, and from the Manager's Load... under Theme: (Load in the icon toolbar), and it works on the launchpad the Manager is pointed at.

  • The list shows every theme file in a folder, by the name each theme carries, with its file name beside it. The folder is the theme pack that comes with PI LaunchPad (see 7) until we choose another.
  • Selecting a theme puts it on the launchpad at once, and the launchpad window is fitted to it. This is a preview: nothing is saved yet, and no restore point is kept. Until we select one, the launchpad keeps the look it had.
  • Change... lists the themes in another folder, and Default goes back to the theme pack. The folder is remembered between sessions.
  • From file... previews a theme file from anywhere else, the same way.
  • OK, or a double-click on a theme, keeps the theme on show. The launchpad as it was before the loader opened is kept as a restore point first, and the new theme is saved.
  • Cancel, or closing the window, puts back the look the launchpad had when the loader opened, at the size its window had.

7 The theme pack

[hide]

The module ships 28 themes, under src/scripts/PILaunchPad/themes in the PixInsight installation. They are loaded from the Theme Editor, and loading one changes how a launchpad looks and nothing about what is on it, so trying them costs nothing.

7 of them are the Relaxing family: one compact layout in several palettes, so moving between them changes the colors and leaves every button where it was.

The theme pack:

27 of the shipped themes, each applied to the same launchpad and all at the same scale. They range from one-button-per-row strips to multi-column grids and wide bars, from flat and minimal to textured and photographic. Raising Columns in the Theme Editor turns any strip into a grid, so a theme's shape is a starting point rather than a decision.

A starter launchpad of 15 common PixInsight processes is included as well, as Starter-15-processes.pilp. It carries no theme data at all, which makes it a neutral launchpad for trying the themes on.

Textures and astronomical images are not part of the module. They are offered separately, as a free download, and can be kept anywhere: the Theme Editor browses to a folder of our choosing for a button texture or a launchpad skin, so where they live is our decision rather than the installer's. The pack is at:

https://www.deepskycolors.com/pixinsight/PILaunchPad/

8 Where everything is stored

[hide]

The launchpads live in a PILaunchPad folder under PixInsight's per-user configuration directory. On Windows that is typically:

%AppData%\Pleiades\PILaunchPad\

toolbar.pilpThe Main LaunchPad: its name, its items and its theme.
toolbar-2.pilp ...One file per additional launchpad, numbered the way they are counted.
toolbar.pilp.previous ...The generation before the current one, one per launchpad: toolbar-2.pilp.previous and so on. Every save keeps one.
RestorePoints\The restore points: up to ten per launchpad, each an ordinary launchpad file named after its launchpad and the time it was kept.
module-icons.cacheWhat was found inside third-party module files while looking for process icons, as described under 4.1. A module file is read again only when its size or date changes. Deleting this file loses nothing: it is rebuilt when needed.
PIThemeStudio-current.pilpthemeWritten by PI ThemeStudio, not by PI LaunchPad, whenever the theme in force changes: the theme Apply PITS Theme reads its colors from (see 5.1). Present once PI ThemeStudio has applied a theme. A theme with a panel skin has its image copied beside it, as PIThemeStudio-current-panel.png or whatever the original's format is.

Each launchpad carries its own name, hidden flag, description and switcher setting inside its own file, and which launchpads exist is worked out by looking at the folder. There is deliberately no separate index: an index would be a second copy of the truth, and when the two disagreed there would be no way to tell which was right.

The launchpad is written after every change rather than at shutdown, because a module interface is not guaranteed a clean teardown: PixInsight can be closed, or fail, with the window still open.

Previous generations and restore points exist so that no way of replacing a launchpad is a one-way door, and Restore backup in the Tools window brings any of them back. A restore point is an ordinary launchpad file, so Load LaunchPad can open one directly as well.

These are plain text files. A launchpad that exists but cannot be read is never overwritten with an empty one: the console reports it and saving is refused until the problem is resolved, so the file survives for inspection.

Themes, configurations, skins, button textures, added files and item icons each remember the folder they were last used in, so the file dialogs open where we were working.

9 Usage tips

[hide]

  • Capture the instance, then delete the icon. A process item stores the instance's own definition, so the workspace icon it came from is free to be deleted once the button exists. That is the whole point of the module: the workspace stops being the filing cabinet.
  • One launchpad per job. A wide labelled launchpad for calibration and a discreet strip for stretching can be on screen at the same time, each with its own theme. Hiding the ones a session does not need keeps them out of the way without losing anything.
  • The whole set can travel as a process icon. The Manager window carries the drag triangle, and the icon it makes carries every launchpad, so the set can be saved in a project, moved to another computer, or sent to someone else.
  • A launchpad is also a way to share. Anyone who shares process icon collections or script bundles can offer them as a launchpad: every button named and arranged, grouped into a workflow, and branded with a skin, custom icons and button textures, all of which travel embedded in the file. A configuration file, from Save LaunchPad, is the format to share: it goes into whichever launchpad the recipient loads it into, typically a new one made with New LaunchPad. A LaunchPad process icon is less suited to sharing, because it carries every launchpad and puts each back in its own slot, replacing the recipient's own launchpads there. Process buttons travel complete; script and file buttons store a path, so they work only where that file sits at the same place on the recipient's computer. A recipient without a license gets the free tier: one launchpad, five buttons.
  • Groups without frames still group. Turning off group titles and frames in the Theme Editor leaves the grouping, the row break and the ordering intact. It is a way to structure a launchpad quietly.
  • Text modes take columns too. A three-column list of labelled buttons is often more readable than a long single column, and wastes less screen.
  • Brighten is the safe hover effect. Magnify and Lift move geometry and can overlap neighbours in a tight grid; Brighten cannot.
  • The first five are the live ones. On the free tier the cap follows the Main LaunchPad's order, not the order things were added, so moving a button up the list is how we choose which five launch. Nothing is lost either way.
  • Keep skins modest. A background image is embedded in the theme and copied into everything the theme touches. A picture sized for the bar beats a full-resolution photograph.