How adskdev/projectlobotomy works
Purpose and runtime
Project Lobotomy is a local Windows/Linux desktop program that unexpectedly displays random images from the user’s folders, with tray-based control implied by the README. It is a native C++ Qt application; it neither uploads nor tracks user data.
Entry point: src/main.cpp.
Application bootstrap
main.cpp initializes the Qt process and starts the application event loop. The central application object is defined by:
• src/LobotomyApp.h
• src/LobotomyApp.cpp
• src/main.cpp
LobotomyApp is the architectural boundary for application lifecycle, UI/tray behavior, random-image activation, and shutdown handling.
User-visible behavior and control flow
The primary flow is event-driven:
1. Process startup constructs LobotomyApp.
2. Qt’s GUI/event loop remains active, likely without a conventional main window.
3. Tray interactions provide the user’s escape/control surface.
4. An application-triggered random selection reads image candidates from local personal folders.
5. A selected image is displayed on screen, potentially accompanied by packaged sound.
6. The application returns to its long-lived event-driven state for later triggers.
The main privacy boundary is local filesystem access: images originate from the user’s machine and are not sent to external services.
Media and resource boundary
Bundled assets are compiled into the Qt resource system:
• res/resources.qrc
• res/sound.wav
• res/
The resource manifest separates immutable, application-shipped media from user-selected filesystem images. Qt Multimedia is a required runtime dependency, indicating audio playback is material to the experience.
Build and platform packaging
CMake is the build-system entry point:
• CMakeLists.txt
• CMakePresets.json
Release-oriented platform wrappers are:
• buildRelease.sh
• buildRelease.bat
The project targets Windows and Linux. Windows deployment requires the executable to be distributed adjacent to required Qt DLLs and the Visual C++ Redistributable. Linux dependencies are Qt 5 base, tools, and multimedia packages.
External dependencies and infrastructure
The material framework/runtime is Qt 5, including GUI, resource compilation, system-tray capabilities, and multimedia support. CMake coordinates native compilation and Qt integration. There are no network APIs, server components, databases, cloud resources, or external operational services indicated by the repository.
Main entry points: LobotomyApp.cpp LobotomyApp · CMakeLists.txt CMake build · resources.qrc Qt resource bundle · buildRelease.sh Release wrappers
Components 16
Desktop application
- Process entry · Initializes Qt and starts the event loop.
src/main.cpp - LobotomyApp · Owns lifecycle, tray UI, random-image activation, and shutdown.
src/LobotomyApp.cpp - LobotomyApp interface
src/LobotomyApp.h - Qt GUI event loop · Keeps the long-lived desktop application active.
- Tray controls · Provides the user's control and escape surface.
- Random image trigger
- On-screen image
Media boundaries
- Local user folders · Image candidates remain on the user's machine.
- Qt resource bundle · Immutable application-shipped media.
res/resources.qrc - Bundled sound
res/sound.wav
Build and release
- CMake build · Coordinates compilation and Qt integration.
CMakeLists.txt - CMake presets
CMakePresets.json - Release wrappers · Windows and Linux release entry scripts.
buildRelease.sh - Windows distribution · Requires adjacent Qt DLLs and the Visual C++ Redistributable.
buildRelease.bat - Linux distribution · Requires Qt 5 base, tools, and multimedia packages.
Other components
- Qt 5 · Supplies GUI, tray, resources, and audio capabilities.
Connections 18
- Process entry → LobotomyApp: constructs
- Process entry → Qt GUI event loop: starts
- LobotomyApp interface → LobotomyApp: declares
- Qt GUI event loop → LobotomyApp: dispatches events to
- LobotomyApp → Tray controls: provides
- Tray controls → Random image trigger: activates
- Random image trigger → Local user folders: selects from
- Random image trigger → On-screen image: displays selected image
- LobotomyApp → Qt resource bundle: uses
- Qt resource bundle → Bundled sound: packages
- LobotomyApp → Qt 5: runs on
- Qt resource bundle → Qt 5: compiled by
- CMake build → Process entry: builds
- CMake build → Qt 5: integrates
- CMake presets → CMake build: configures
- Release wrappers → CMake build: invokes
- Windows distribution → Release wrappers: Windows wrapper
- Release wrappers → Linux distribution: produces