Photo organizer
  • C++ 53.1%
  • QML 43.1%
  • CMake 3.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-12 21:11:32 +02:00
.opencode/agent basic welcome screen 2026-07-20 12:25:30 +02:00
qml move blend back to theme 2026-09-12 21:11:32 +02:00
src make code a bit cleaner 2026-08-31 12:57:56 +02:00
.clangd basic project setup 2026-07-05 11:14:59 +02:00
.gitignore basic project setup 2026-07-05 11:14:59 +02:00
CMakeLists.txt move file in background 2026-08-31 11:30:40 +02:00
LICENSE Initial commit 2026-07-05 10:15:59 +02:00
README.md update README 2026-08-31 19:47:25 +02:00
screenshot.png update README 2026-08-31 19:47:25 +02:00

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.

Screenshot

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.