Skip to content

LavaUI v1.3.0

Choose a tag to compare

@nikitapn nikitapn released this 14 Oct 20:41
· 84 commits to main since this release

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 (also lavactl 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

  • .onHover for 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).