Repository navigation
Releases: nikitapn/LavaUI
Releases · nikitapn/LavaUI
Release list
LavaUI v1.4.0
52 commits since v1.3.0.
New apps
- LavaPass, a KeePass vault manager: KDBX vaults, attachments, a
scrollable Notes editor, recent vaults on the start page and in a menu.
Desktop
- The panel replaces nm-applet and blueman: a native network applet and
NetworkManager secret agent (VPN plugins' own dialogs included), and a
Bluetooth applet with a pairing agent — battery levels, search while
"Add a device" is open, pairing that trusts and connects. - The sound window switches outputs and inputs and sets per-app volume.
- The calendar opens a year view from the month title, with ISO weeks.
- The player window's transport buttons are drawn, not glyphs.
- With nothing focused the bar offers Desktop, Go, Workspaces and Help
(Keyboard Shortcuts) instead of the Lava menu alone. - No flash of the fallback menu while an app's own menu loads.
- Glass on menus and every popup: frosted, refracted, with a lit rim.
- LavaLauncher has a new style.
Settings
- Network: link details, saved profiles, IPv4 and DNS, VPN import.
- Bluetooth: this computer's name and visibility; paired devices renamed,
trusted, blocked or forgotten; search and pair. - Mouse & Touchpad: speed, acceleration, natural scrolling, tap to click,
scroll and click method, ignore while typing, and smooth scrolling.
Applied by the compositor per libinput device, from [mouse]/[touchpad]. LavaSettings --section <name>opens a page.
LavaExplorer
- FTP, FTPS and SFTP servers, with New Folder, Rename and Delete on them.
- Profiles, favourites, and tabs that persist across launches.
- Device mounting through UDisks, default applications honoured, icons
for folders, files, places and the toolbar. - One explorer per session:
LavaExplorer <path>opens a tab in the
running one instead of a second window.
Compositor
- Client frames are drawn once per output frame rather than on arrival,
and paced frames keep what a presented frame committed. - Frost: copied without blocking the loop, recaptured only where something
changed, rendered only over the plates' rectangle. - A hover fade no longer freezes under a presenting client.
lavactl workspace [n]andlavactl desktop.
LavaUI
.glassEffect()(refraction, a lit rim, optional frost) and
.backdropBlurfrosting the desktop from any view.- Tooltips, with a placement.
- Popups can hang off popups.
- A text field slides its row to keep the caret in view.
- A Text's box is its glyphs: the implicit text margin is gone, so a
cramped layout may need explicit padding. - Three ways a long-lived window grew its heap forever are fixed.
ChevronandTransportMarkare public.
Compatibility
- New IDL calls:
SetBackdropGlassRegions,SetBackdropFrost,
GetPointer,SetPointer,SwitchWorkspace,ToggleShowDesktop, and a
field added to a message. Method indices are positional: rebuild clients
and compositor together. - New dependencies: libnm, libssh2, libsecret, libcurl, udisks2, zlib,
perl-file-mimeinfo on Arch (Debian and Arch lists updated); libinput is
optional for the compositor.
LavaUI v1.3.0
LavaUI v1.3.0
43 commits since v1.2.0.
New apps
- LavaPlayer, a video player on libmpv. mpv renders into dma-bufs on the
compositor's GPU through an EGL bridge, sampled with no CPU copy
(software frames where that path will not come up). Keyframe seeks while
dragging, exact on release; a floating fullscreen bar that hides with the
pointer; subtitle and audio track buttons; external subtitle files. - LavaPDF, a PDF reader over poppler. Tiles at the exact zoom, uploaded
through the new pixel arena; select across pages, copy, find; the outline
in a sidebar; links (pages, and http/https/mailto only); password-locked
documents. Resizing keeps a fit-width page still and no longer piles up
tiles at every size it passed through. - lava-index, a per-user file index daemon (SQLite FTS5, inotify, mount
aware, systemd user unit), and LavaFind, file search over it, frosted
over the desktop. Settings gains a Search page for its folders (Mod+S);
LavaView and LavaExplorer report opened files to it.
Desktop
- The panel adds a Window menu to every focused window's global menu:
Always on Top, Center on Screen, Close (alsolavactl pin|center|close). - Apps' first menu names the app rather than "Lava...".
- Global menu hears layout updates, and the window stays focused under its
menu. - A hardware cursor on an NVIDIA-wired output of a hybrid laptop, and no
software cursor blurred into frost or CaptureScreen pictures. - Canvas waits for the compositor's reads before redrawing a shared buffer
- Canvas waits for the compositor's reads before redrawing a shared buffer
(RADV ignored the implicit fences), and writes the blur slot before
recording rather than between segments.
LavaUI
.onHoverfor a view and everything in it;CursorShape.hidden.Canvas(onPointerMove:): the cursor can depend on where the pointer is.- Wheel events carry held modifiers;
KeyCode.f1...f12. FileDialog.openFolder.- FocusManager gives focus back when the focused node leaves the tree.
- What the first frame raises is kept; FrameTasks run after a frame, not
after a frame held for its consumer.
Compatibility
- New IDL calls:
SetAlwaysOnTop,CenterWindow,CloseWindow, the pixel
arena (AttachPixelArena,UploadPixels, ...) and video buffers
(GetVideoTarget,AttachVideoBuffer,ShowVideoBuffer, ...). Method
indices are positional: rebuild clients and compositor together. - New dependencies: poppler-cpp, poppler-glib and libmpv (Debian and Arch
lists updated).
v1.2.0
LavaUI v1.2.0
24 commits since v1.1.1.
Desktop
- Lava surfaces are damaged per 32 px tile instead of whole, so a caret
blink or a clock no longer recomposites the window. Frost refreshes only
for paints behind a frosted window. LAVA_FULL_DAMAGE=1 for the old path. - Idle clients stop polling: no 50 ms lease watch, heartbeats only from the
supervised panel and dock, and GLib is pumped when the bus delivers
rather than on a timer (panel ~48 -> 6 wakeups/s, LavaTerm ~58 -> 11). - Images are decoded off the compositor's loop (
Compositor.GetImages): a
24-megapixel JPEG stalled every window for 609 ms, now 70-100 ms. - The launcher and the switcher open maximized, which fixes the dimmed ring
and rounded corner the launcher's drop shadow drew around it. New IDL
callSetMaximized. - LavaShot opens fullscreen instead of jumping to it, and labels keep the
keyboard. - LavaDebug is packaged as a desktop app, with an icon.
- The app list finds Flatpak desktop entries.
LavaExplorer
- Extract Here, Compress... (zip, tar.*, 7z; AES-256 zip passwords),
locked zips, double-click to extract, Cancel. NewLavaArchivetarget
over libarchive. - Folders refresh themselves through inotify.
- Listing from lstat: 100,000 files 50.9 s -> 255 ms.
- Thumbnails from the freedesktop cache, an icon view, and each folder's
view remembered between launches.
LavaUI
TextField(secure:).ScrollView(indicatorInset:)keeps the bar clear of a rounded
container's corners.- Centred and trailing wrapped labels align each row, not the block.
Compatibility
LavaClient.open(fillScreen:)takesScreenFill?:.maximized(was
true) or.output.SetMaximizedrenumbers the IDL methods after it: rebuild clients and
compositor together.- liburing and OpenSSL are dropped from the dependency lists.