Repository navigation
OmaSession 0.5.0
- The panel has three tabs. Windows is the old list. Layout draws the screens to scale from the saved monitor geometry (position, size, scale, rotation) with each workspace's windows where they sit, so an ultrawide, a row of monitors or a portrait screen all look like themselves. Saved lists named sessions and the history with Preview and Restore, plus Save as. New
omasession layout [name]gives the panel that geometry as JSON. Contributed by @dmkenney in #5. - Browser app windows are named for their desktop entry or site ("X", not "Com Profile 4"), and a terminal saved with its program shows "runs btop" instead of "directory not recoverable". Contributed by @dmkenney in #5.
- A history of earlier sessions. Each save of
lastis also kept ashistory-<time>when the desktop's shape changed (windows, workspaces, slots, commands; not titles), thinned to every change for 15 minutes, one per 15 minutes for 2 hours, one per hour for a day and one per day for a week.omasession listshows them with named sessions (omasession save <name>);omasession restore <name>brings any back. Contributed by @dmkenney in #5. - Every browser profile that had a window comes back, not only Default. The save records the browser's open profiles (Local State
last_active_profiles); restore marks each as cleanly closed and launches each with--profile-directory. Before, only Default reopened and the other profiles' windows were lost or came back empty. The Chrome and Chromium close-all repair runs on each profile's session, and all of them together never reopen more windows than the save had. A single profile starts at once; with several, the rest are handed over as soon as the browser shows its first window. Contributed by @dmkenney in #9. - Browser app windows (
--app=URL, including Omarchy's web apps) reopen on their own profile and URL, rebuilt from the window class (brave-x.com__-Profile_4, orchrome-x.com__-Defaultfor both Chrome and Chromium). The browser to start comes from the window's process. Before, they were saved with the browser's shared command line and reopened as a normal browser window. Contributed by @dmkenney in #9. - A terminal can come back running the program it had open instead of a bare shell. List programs with
terminalPrograms(for examplenvim,btop); only listed ones are relaunched, since rerunning whatever was in the foreground could repeat a build or a delete. When one Ghostty process serves several windows, each program goes to the window whose title names it, then by elimination. Works with Ghostty (-e), foot and kitty (--). The program runs inside your shell, so it finds what your shell config puts on PATH and quitting it leaves you at a prompt. Contributed by @dmkenney in #5. - Windows come back in their slots on Lua layouts and other layouts that place windows by arrival order. Restore opened each window onto its workspace in snapshot order, so those layouts put windows in the wrong slots, and a swapped window came back unswapped. Each window's position in its workspace is now saved; during restore, windows wait on a hidden workspace and then move in that order. A Lua config can report the real slot order through a global
window_slot_order()(see the README). Ordering runs only when that function exists, so Dwindle and Master users see no change;restoreOrder trueorfalseoverrides that. A save taken while windows are parked is skipped, solastnever loses them. Contributed by @dmkenney in #8.
Thanks to @dmkenney, who wrote all of these changes in #5, #8 and #9. This release is tagged at commit 9cdf6b0987c3ae22cabecdf393aec7a8b02a0e3c.