Skip to content

About

A photo, video and 3D model viewer for Hyprland

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

19 Commits

Folders and files

Repository files navigation

hyprforge-media

A photo, video and 3D model viewer for Hyprland.

Media's grid: a folder of photos grouped under the day each was taken

Open one picture and it floats, sized to the picture, on the monitor the pointer is on. Open a folder and it is a viewer over that folder, in the same order the file manager shows it — "next" is asked of hyprforge-listing, the leaf under both, so two windows over one folder never disagree about which picture follows this one. Behind the single picture there is a date-grouped grid, a library of folders, a filmstrip, an inspector reading EXIF, a slideshow, and Back and Forward through what was looked at.

Pictures are decoded within a budget and orientation-correct, through hyprforge-image; a 36-megapixel file is measured before it is decoded, not after. Zoomed in past what was decoded, the part on screen is decoded again at the density it is drawn at, once the zoom settles, so 1:1 shows the file's own pixels without the whole file being kept at full size. An animated GIF plays, every frame together inside what one still may keep; zoomed in past the window it stands still on its first frame, and plays again on the way out. Videos play through libmpv, opened at run time rather than linked, so a machine without mpv still runs the viewer and a video says what is missing. STL, 3MF and OBJ models are loaded into a welded mesh by hyprforge-mesh and drawn on the GPU with fstl's camera, inside the same window.

Copy, "Open With…", trash, "Show in Files" and "Set as Wallpaper" each go through the suite's own library for that job rather than a copy — the clipboard library (never the history daemon, which need not be installed), the shared MIME database, the freedesktop trash, and the wallpaper settings the Settings app's Desktop screen edits, so the two never disagree.

Part of Hyprforge, a suite of native Hyprland desktop applications. It appears there as a submodule at crates/hyprforge-media; this repository is where its code lives, and pull requests here are welcome.

What is here

A library as well as an application. Every decision — what is in the folder, what is next, how a picture fits the window, what a key means, which tiles a date heading groups, what the slideshow shows next — lives under src/lib.rs where a test can reach it without a display. The window itself is src/main.rs and src/view.rs, deliberately thin; a playing video and a 3D model on the GPU are hyprforge-viewer's panes, shared with Files' Quick Look.

Installing

cargo install --path .

Arch users can build the hyprforge-media package from the monorepo's packaging/arch instead, which also installs the desktop entry.

Nothing else in the suite is required. A missing appearance.toml is first-run, not an error, and the app draws correctly themed on a machine where the Settings app has never been installed.

Optional, each degrading to a sentence rather than a viewer that fails to start: mpv for playing videos, ffmpeg for a video's thumbnail, hyprpaper for a wallpaper that changes now rather than at next login, and hyprforge-files for "Show in Files".

Licence

MIT. See LICENSE.

About

A photo, video and 3D model viewer for Hyprland

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages