- C++ 53.1%
- QML 43.1%
- CMake 3.8%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .opencode/agent | ||
| qml | ||
| src | ||
| .clangd | ||
| .gitignore | ||
| CMakeLists.txt | ||
| LICENSE | ||
| README.md | ||
| screenshot.png | ||
porg
Porg is a simple, keyboard driven [P]hoto [Org]anizer. It's focused on my (very specific) personal needs, so it probably has little value to you.
Motivation
I like old school files and hate having my data in "containers" outside of the file system. This means that my
photo library is composed of directories like 2025-12-25 Christmas on my NAS, instead of being abstracted away
by a service like Google Photos.
I collect my photos in an Unorganized directory and sort it into "albums" a couple of times a year. I have to use a
GUI app to preview the photos before moving them into an album. But using a simple file explorer and dragging files
between directories is quite slow. This app fixes this. You point it at the Unorganized folder, put target directories
into target slots, and use simple keyboard shortcuts (vim inspired) to quickly move files to the correct targets.
Building
Debug
Configure and build a debug build. This also writes build/debug/compile_commands.json for clangd and enables QML
debugging for the app target.
cmake -S . -B build/debug -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
cmake --build build/debug
Release
Configure and build a release build with debug symbols:
cmake -S . -B build/release -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build/release
LSP
clangd uses compile_commands.json to understand include paths, compiler flags, and generated Qt sources.
The .clangd config points it at build/debug, so run the debug configure command before starting the LSP.
License
This project is licensed under the GNU General Public License version 3.
