Min width = 1 column, add header minimize, Claude → PowerShell

- Width: drop the header-fits-too floor; popup width is now
  max(COLUMN_WIDTH, columns-required, tabs-required). The brand title in
  the header is allowed to ellipsize at the 216px minimum (full name
  preserved in tray hover and h1 title attr).
- Minimize: new -/▢ button in the header next to pin. Toggling hides the
  tab strip + body, locks width at COLUMN_WIDTH, and lets the existing
  ResizeObserver collapse height to just the header. State persists in
  config.minimized so reopening the popup remembers it. Add-column +
  button is hidden while minimized.
- Claude launcher: now spawns powershell.exe -NoExit -Command claude in
  the wt new-tab (was cmd.exe /K claude). Cmd-fallback updated to also
  start powershell directly when the trailing args target it.
This commit is contained in:
David
2026-04-29 11:05:10 -04:00
parent 8993fbd9f6
commit c860959631
5 changed files with 59 additions and 52 deletions
Binary file not shown.
+10
View File
@@ -296,6 +296,7 @@ function truncatePath(p) {
function broadcastConfig() {
if (popupWindow && !popupWindow.isDestroyed()) {
const cfg = readConfig();
popupWindow.webContents.send('config-updated', {
tabs: getTabs(),
columns: getColumns(),
@@ -303,6 +304,7 @@ function broadcastConfig() {
activeTabId: getActiveTabId(),
buttonVisibility: getButtonVisibility(),
autoStart: getAutoStart(),
minimized: !!cfg.minimized,
});
}
}
@@ -488,6 +490,7 @@ ipcMain.handle('get-config', () => {
activeTabId: getActiveTabId(),
buttonVisibility: getButtonVisibility(),
autoStart: getAutoStart(),
minimized: !!cfg.minimized,
};
});
@@ -712,6 +715,13 @@ ipcMain.handle('run-redeploy', (_event, p) => launchers.runRedeploy(p));
ipcMain.handle('copy-path', (_event, text) => launchers.copyPath(text));
ipcMain.handle('is-claude-available', () => launchers.isClaudeAvailable());
ipcMain.handle('set-minimized', (_event, value) => {
const next = !!value;
writeConfig({ minimized: next });
broadcastConfig();
return next;
});
ipcMain.handle('set-pinned', (_event, value) => {
pinned = !!value;
writeConfig({ pinned });
+1
View File
@@ -40,6 +40,7 @@ contextBridge.exposeInMainWorld('bookmarks', {
// Window
setPinned: (value) => ipcRenderer.invoke('set-pinned', value),
setMinimized: (value) => ipcRenderer.invoke('set-minimized', value),
setPopupHeight: (height) => ipcRenderer.invoke('set-popup-height', height),
setPopupWidth: (width) => ipcRenderer.invoke('set-popup-width', width),