Skip to content

Repository files navigation

Lamha

Lamha - لمحة

Freeze the screen. Mark what matters.
A silent screenshot, then Lamha’s own overlay for select and markup —
no GNOME or KDE picker. Go · GTK4 · Wayland.

release repo go gtk wayland license

Screenshots · What you get · Install · Develop · Architecture · العربية

The name Lamha comes from Arabic لمحة (lamḥa): a glance / a glimpse — catch the screen in one look.


Screenshots

Home — recent captures and preview

Annotate — tools, colors, and stroke

Capture overlay toolbar — tools, colors, and stroke

Home · Annotate · Overlay toolbar

Dark theme

Home — dark

Annotate — dark

Home · Annotate


What you get

Silent grab Freezes the display through GNOME Shell, KWin, or Spectacle. The interactive portal picker is never launched.
Select Area, window, or full screen — after the freeze, in Lamha’s overlay.
Markup Pen, arrow, box, ellipse, highlight, blur, numbered steps, text, magic erase, area erase.
Move & restyle Drag marks, restyle them, undo / redo, duplicate, delete.
Lens A circular magnifier under the pointer. Scroll changes size; Settings sets zoom (2×–10×).
Stay in back Close the window to hide it. Capture from the tray, system shortcuts, or lamha --capture=.
History Local captures, preview, copy, reopen Annotate, optional copy-on-save.
Locales English and Arabic (RTL).

Capture modes

Mode Behaviour
Area Freeze, then drag a region and mark it up.
Window Freeze, then select a window rectangle.
Screen Freeze the whole display and mark it up.

A delay (1–10 seconds) can wait for menus and hover states. The first time on GNOME, the session may ask for screenshot permission — that is not the GNOME capture UI.

Captures land in $XDG_DATA_HOME/lamha/captures (usually ~/.local/share/lamha/captures).


Install

GitHub Releases

Tagged builds publish a Linux binary and an AppImage:

  • Latest release
  • lamha-YY.0M.MICRO-linux-x86_64 — standalone binary (needs GTK 4.22+ / GLib 2.86+ on the host)
  • Lamha-YY.0M.MICRO-x86_64.AppImage — bundled GTK 4; needs glibc 2.35+ (Ubuntu 22.04, Fedora 36, Debian 12, and later)

Mark the AppImage executable, then run it. AppImageUpdate can follow https://github.com/Zyzto/Lamha/releases/latest. Versions are calendar versions like Janan: YY.0M.MICRO (first August 2026 release is 26.08.0). Tag v26.08.0. The number lives in VERSION.

From source

Install bin/lamha on PATH, then:

File Destination
data/io.github.lamha.Lamha.desktop ~/.local/share/applications/
data/icons/hicolor/scalable/apps/io.github.lamha.Lamha.svg ~/.local/share/icons/hicolor/scalable/apps/

On GNOME, bind keys in Settings → Keyboard, or open Shortcuts in Lamha. Plasma: System Settings → Shortcuts.

AppImage

Needs Go, GTK4 development files, pkg-config, and curl:

make appimage

The script pulls linuxdeploy and writes a bundle under dist/. GTK4 bundling is most reliable on a regular FHS distro (Fedora, Ubuntu). On NixOS, build the AppImage from a container or another Linux system if linuxdeploy cannot collect host libraries.


Develop

Requirements: Go 1.26 · GTK4 · pkg-config

On NixOS (or with Nix installed):

nix develop
make run

Otherwise install your distribution’s GTK4 development package, pkg-config, and Go, then:

go run ./cmd/lamha

Capture without opening the window first (forwarded to a running instance):

lamha --capture=area
lamha --capture=window
lamha --capture=screen
make test
make build
make fmt
lamha --version

Cut a release by bumping VERSION (or bash scripts/ci/next_version.sh), committing, then:

git tag v26.08.0
git push origin v26.08.0

Actions tests, builds the binary and AppImage, and attaches them to the GitHub Release.


Architecture (short)

  • UI — GTK4 (gotk4), overlay + editor, Arabic via internal/i18n
  • Grab — GNOME Shell D-Bus → gnome-screenshot → KWin → Spectacle → silent portal
  • Markupinternal/annotate document (undo, hit-test, raster cache)
  • Tray — StatusNotifierItem + DBusMenu
  • Prefs / keys~/.config/lamha/
Tray / CLI / desktop actions
        ↓
Silent grab (GNOME Shell / KWin / Spectacle)
        ↓
Lamha overlay (select + markup)
        ↓
preview / clipboard / local history

This is a solid capture foundation, not a claim to ShareX’s full set. Useful next steps are upload destinations and history search.


License

AGPL-3.0 — use, study, modify and redistribute freely; if you run a modified version as a network service, its users are entitled to your source.

The name Lamha, the Arabic wordmark لمحة, and the logo are not covered by that licence. Fork the code, but please ship a fork under a different name and icon.


Made by shenepoy · GitHub

About

Lamha (لمحة) — freeze the screen and mark what matters

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages