🌙 Luna Files
A lightweight Linux file manager built with the single-header Luna UI engine. Luna Files combines familiar PCManFM-style workflows with a polished macOS-inspired interface, smooth grid and list views, and a CSS-driven appearance.
These are direct renders of the application. For screenshot-only Linux environments without GLFW development headers, tools/screenshot-glfw provides a minimal offscreen GLFW-compatible capture host; regular builds still use GLFW normally.
- Familiar sidebar shortcuts for Home, Desktop, Documents, Downloads, Pictures, Music, Videos, Trash, and the filesystem root
- Back, forward, up, reload, location entry, and live folder search
- Responsive icon and list views with hidden-file toggling and name, date, or size sorting
- Single,
Ctrlmulti-selection, andShiftrange selection - Double-click or
Enterto open files and folders, plus a right-click context menu - New-folder, rename, properties, Trash, and permanent-delete workflows
- File clipboard with
Ctrl+C,Ctrl+X, andCtrl+V - Light and dark themes, accent colors, font controls, display density, and animation settings
- Optional Wayland and X11 clipboard interoperability
sudo apt install build-essential pkg-config libglfw3-dev libgl1-mesa-dev
makeThe project includes luna-ui.h. Keep the following supporting single-header libraries in the same directory:
stb_truetype.h
stb_image.h
stb_image_write.h
cssparser.h
Open the home directory:
./luna-fmOpen a specific folder:
./luna-fm /path/to/folderFor richer file clipboard integration on Wayland:
sudo apt install wl-clipboardFor X11:
sudo apt install xclipLuna Files still provides its internal clipboard and GLFW text clipboard when these optional tools are unavailable.
| Shortcut | Action |
|---|---|
Enter |
Open the selected item |
Backspace |
Go back |
F2 |
Rename |
Delete |
Move to Trash |
Ctrl+A |
Select all |
Ctrl+C |
Copy |
Ctrl+X |
Cut |
Ctrl+V |
Paste |
Ctrl+L |
Focus the location bar |
Esc |
Close the active menu or dialog |
The interface is rendered by luna-ui.h, a single-header HTML/CSS-to-OpenGL engine. Layout, controls, shadows, rounded surfaces, themes, and interaction states are CSS-driven rather than drawn as a traditional immediate-mode interface.
Luna Files creates 384 reusable display slots at startup. Folder navigation, searching, sorting, and view changes update slot text and classes with luna_set_text() instead of reparsing the complete HTML document. This keeps routine directory refreshes lightweight while retaining a fully styled UI.
Luna Files and Luna UI are distributed under the Mozilla Public License 2.0.


