Quickshell & Rust-Powered Premier Photo RAW Studio for Omarchy Linux
Parametric non-destructive RAW editing, ACES 1.3 color management & Reference Gamut Compression, authentic Fujifilm & Hasselblad film simulations, Hollywood-standard DaVinci 3-Way color wheels, customizable photography watermarking, offline AI Jev decision engine, persistent Studio Catalog DAM, and modern multi-format export pipeline.
OmaStudio employs an industry-leading hybrid architecture designed for extreme performance on modern Wayland and Hyprland Linux desktops: The graphical user interface runs at 120/144 FPS powered by GPU-accelerated Quickshell (Qt 6 / QML), while the mathematical image processing and RAW decoding pipeline is driven by a Directed Acyclic Graph (DAG) Engine, Tiled Region-of-Interest (ROI) Execution, and Rust + Vulkan/Slang GPU Compute.
graph TD
subgraph UI [" User Experience (Quickshell / Qt 6 QML)"]
Viewport["Canvas Viewport<br/>(Pinch-Zoom / Pan / Rotation / Watermark Overlay)"]
Inspector["Pro Studio & Simple Modes<br/>(Film Simulations / ACES / Watermark)"]
Wheels["DaVinci 3-Way Wheels<br/>(Lift / Gamma / Gain / Offset / Pivot)"]
CropTool["Composition Overlays<br/>(Rule of Thirds / Golden Ratio / Fibonacci)"]
end
subgraph IPC [" Secure Local IPC & CLI Interface"]
CLI["omastudio --cli"]
Sock["Persistent Daemon IPC (stdin/stdout JSON lines)<br/>& Quickshell IPC Protocol"]
end
subgraph Engine [" DaVinci & Nuke-Grade Engine (DAG + GPU Slang / Vulkan)"]
DAGEngine["Demand-Driven DAG Engine<br/>(Directed Acyclic Graph / Invalidation Tree)"]
TiledEngine["Tiled ROI Execution<br/>(512x512 Tile Grid / Memory Isolation)"]
GPUCompute["Slang / Vulkan SPIR-V Compute<br/>(NVIDIA / AMD / Intel Arc GPU Kernels)"]
Decoders["LibRaw FFI Hardware Matrix<br/>(Sony ARW, Fuji RAF, Nikon NEF, Canon CR3, DNG)"]
ACES["ACES 1.3 Color Science<br/>(ACEScg, ACEScc, RGC, RRT/ODT Tonemapper)"]
FilmSim["Film Simulations<br/>(Fujifilm Provia, Velvia, Astia, Acros / Hasselblad HNCS)"]
WatermarkEngine["Watermark & Branding Engine<br/>(9-Point Grid / EXIF Interpolation / Lanczos3 Logo)"]
ShmPingPong["Double-Buffered Ping-Pong Shared Memory<br/>(/dev/shm Zero-Flicker Viewport)"]
end
UI <--> Sock
CLI --> DAGEngine
Sock <--> DAGEngine
DAGEngine --> TiledEngine
TiledEngine --> GPUCompute
Decoders --> DAGEngine
GPUCompute --> ACES
ACES --> FilmSim
FilmSim --> ShmPingPong
ShmPingPong --> Viewport
Every RAW pixel undergoes lossless, mathematically precise transformations to preserve maximum dynamic range:
flowchart LR
A[" RAW Input<br/>(Bayer / X-Trans)"] --> B[" LibRaw<br/>Demosaicing"]
B --> C[" White Balance<br/>(Planckian AWB)"]
C --> D[" Linear Exposure<br/>(Zone System EV)"]
D --> E[" ACES 1.3 RGC<br/>(Gamut Compression)"]
E --> F[" Film Simulation<br/>(Fuji / Hasselblad)"]
F --> G[" DaVinci Wheels<br/>(Pivot & Boost)"]
G --> H[" Detail & Optics<br/>(Sharpness / Denoise)"]
H --> I[" Watermark Engine<br/>(9-Point Grid / EXIF)"]
I --> J[" Multi-Format Export<br/>(JXL / AVIF / TIFF 16-Bit)"]
- ACEScg & ACEScc Color Spaces: Scene-referred AP1 linear working space with high-precision Bradford chromatic adaptation matrices for sRGB, Display P3, and Rec.2020.
- ACES 1.3 Reference Gamut Compression (RGC): Smoothly compresses out-of-gamut and highly saturated specular highlights toward the achromatic axis, eliminating ugly color clipping and neon-edge distortion.
- ACES 1.3 Fitted RRT/ODT Tonemapping: Rational polynomial approximation (Stephen Hill / Krzysztof Narkowicz) delivering cinematic shoulder roll-off and rich shadow gradation.
- Fujifilm Daylight & Landscape:
- Provia 100F: Standard daylight color rendition with natural skin tones and neutral contrast.
- Velvia 50: High-saturation, vibrant landscape film simulation with rich skies and foliage separation.
- Astia 100F: Soft contrast and delicate gradations tailored for portrait photography.
- Fujifilm Documentary & Cinematic:
- Classic Chrome: Muted saturation with deep, hard shadow contrast for documentary realism.
- Classic Neg: Warm nostalgic tones with punchy midtone contrast inspired by Superia color negative film.
- Eterna Cinema: Flat gamma and subdued color saturation delivering modern cinema highlight roll-off.
- Fujifilm Acros Monochrome:
- Acros Standard: Legendary monochrome film with ultra-fine grain and rich tonal transitions.
- Acros (+Ye) Yellow Filter: Moderate contrast lift, accentuating blue skies and portraits.
- Acros (+R) Red Filter: Dramatic contrast with deep black skies and high micro-contrast.
- Acros (+G) Green Filter: Emphasizes green foliage while softening lips and skin tones.
- Hasselblad Medium Format Profiles:
- Hasselblad Natural Colour Solution (HNCS): 4th-root chroma scaling calibrated for medium-format studio photography, preserving neutral gray stability.
- Hasselblad XPan: 35mm panoramic cinematic contrast with deep shadow compression.
- 9-Point Anchor Grid: Selectable alignment across 9 grid locations (Top-Left, Top-Center, Top-Right, Middle-Left, Center, Middle-Right, Bottom-Left, Bottom-Center, Bottom-Right).
- EXIF Tag Interpolation: Automatic token expansion for camera metadata:
{camera},{lens},{aperture},{shutter},{iso}, and{focal}. - Custom Logo Overlay: High-quality PNG logo blending with Lanczos3 resampling and alpha transparency.
- Live Viewport Preview: Non-destructive live preview directly inside the Viewport without requiring re-render.
- Export Integration: Embedded directly into final output files across JPEG XL, AVIF, WebP, TIFF 16-bit, PNG, and JPEG.
- Original RAW Files Never Mutated: Sensor RAW files are opened read-only; no bytes of the source file are ever modified.
- Parametric Sidecar Architecture: All recipes, grades, crops, and metadata adjustments reside strictly in
.omastudioJSON sidecars with atomic write operations and Mode 0600 file permissions.
- Medium Format Sensors: Fujifilm GFX series (GFX 100 II, GFX 100S, GFX 50S), Hasselblad (
.3FR,.DNG), and Phase One 16-bit 100+ MP sensors. - 16-Bit Processing Matrix: Eliminates quantization banding during extreme shadow recovery (+4 EV, +100 Shadows).
- Master 16-Bit Output: Genuine 16-bit TIFF and 16-bit PNG (48-bit RGB) files for archival and gallery-grade print production.
- Linear Ansel Adams Zone System: Computes exposure delta based on scene linear luminance rather than non-linear gamma values, protecting highlight headroom (ceiling check at 99th percentile).
- Planckian Blackbody AWB: Continuous correlated color temperature (CCT) estimator mapping 2400K to 9500K.
- 123-Degree Skin Tone Line Protection: Vectorscope polar protection preserving facial hues regardless of scene saturation.
- Multi-Cue Saliency: Gradient magnitude and Rule of Thirds alignment for automated cropping and composition.
- Offline JEV Intelligence: Bayesian decision engine generating studio-grade presets even in air-gapped environments without external API connectivity.
- Contrast Pivot: Adjustable S-curve midpoint (0.05 to 0.95, default 0.435 / 18% middle gray) enabling contrast expansion without crushing shadows.
- DaVinci Color Boost: Non-linear chroma enhancement amplifying low-saturation tones while protecting saturated colors.
- Midtone Detail (MD): Frequency-separated band-pass filter isolating mid-frequencies to enhance micro-texture or soften skin tones.
- Real-Time Video Scopes (60+ FPS): Luma Waveform, RGB Parade, and Vectorscope with calibrated 123-degree Skin Tone Line.
- 3D LUT Engine (.cube): Hardware-grade trilinear interpolation engine supporting standard
.cubeLook-Up Tables. - Local Grade Versions (A/B/C/D): Hotkey-driven (
Alt + 1..4) non-destructive recipe branching with instant cloning.
- Perceptual Oklch Skin Line: Calibrated around 50° hue angle with raised-cosine membership weighting to isolate natural human complexion without spilling into hair, lips, or background.
- Hue & Saturation Homogenization: Smooths uneven skin tones, redness, and color shifts toward a target reference while preserving micro-tonal depth and organic texture.
- Non-Destructive Range & Falloff: Full parametric control over skin hue target, hue uniformity amount, and saturation uniformity amount.
-
Colorist Cross-Talk Matrix: Full
$3 \times 3$ primary channel mixing matrix allowing individual red, green, and blue output channels to blend proportions of input R, G, and B. - Monochrome Density Simulation: Preserves luminance consistency across channels while crafting stylized print looks, cross-process bleach-bypass, and classic orthochromatic/panchromatic renderings.
- Preset Profiles: One-click presets for Panchromatic, Orthochromatic, Infrared, and Bleach Bypass workflows.
- Luminance-Dependent Grain Response: Photochemical parabolic curve ($4.0 \cdot Y \cdot (1 - Y)$) concentrating organic grain in the midtones while rolling off gracefully in deep shadows and specular highlights.
- Physical Grain Structure: Parametric control over grain amount (0-100), grain size (0.5 to 3.0), and roughness (spectral high-frequency distribution) using deterministic hash distribution.
- Linear Gradient Masks: Parametric ramp masks with customizable position, rotation angle, and feather transition for sky darkening and horizon balance.
- Radial Gradient Masks: Elliptical masks with independent center coordinates, horizontal/vertical radius, rotation, and feather falloff for subject pop and vignettes.
- Luma Range Masks: Targeted tonal masks isolating highlights, shadows, or midtone ranges with smooth feather boundaries.
- Targeted Corrections: Each layer applies localized exposure, contrast, saturation, and temperature tint adjustments.
- Instant 1-5 Star Ratings & Pick/Reject Flags: Keyboard-driven rating workflow (
1-5for stars,0to clear,Pfor Pick,Xfor Reject,Uto unflag). - Filmstrip Visual Overlays: Visual badge markers for flagged and rated images directly on filmstrip thumbnails.
- High-Speed Batch Sync: Copy entire adjustment recipes with
Ctrl + Shift + Cand paste across single or multiple candidate photos withCtrl + Shift + V.
- Double-Buffered Shared Memory:
/dev/shmping-pong frame buffers eliminate render flickering during slider adjustments. - Mac-Calibrated Touchpad Ergonomics: Continuous logarithmic pinch-to-zoom, 3.5-degree deadzone rotation guard, and kinetic panning.
| Feature | OmaStudio | Adobe Lightroom | Darktable | RawTherapee |
|---|---|---|---|---|
| License & Freedom | Open Source (MIT) | Proprietary / Monthly Subscription | GPLv3 | GPLv3 |
| Native Integration | Omarchy & Quickshell | macOS / Windows Only | GTK | GTK |
| ACES 1.3 & RGC | Native ACEScg / ACEScc / RGC | Partial / ACES OCIO Plugin | Complex Modules | Complex Profiles |
| Film Simulations | Authentic Fuji & Hasselblad | Preset Packs | Curves | HaldCLUT |
| Watermark Engine | 9-Point Grid & EXIF Tags | Export Preset Only | Watermark Module | Watermark Module |
| DaVinci Color Science | Native (Pivot / Boost / MD) | Partial | Complex Modules | Complex Profiles |
| Real-Time Video Scopes | Waveform, Parade, Vectorscope (I-Bar) | Histogram Only | Separate Windows | Separate Tabs |
| 3D LUT (.cube) & Mix | Hardware Trilinear & Presets | Profile Library | LUT Module | HaldCLUT Only |
| Local Grade Versions | A/B/C/D Instant Hotkeys | Snapshots | History Stacks | Snapshots |
| JPEG XL / AVIF Export | Hardware Accelerated | Limited | Via Plugins | Partial |
| Catalog & DAM | Studio Local DAM (.omastudio) | Adobe Cloud (Enforced) | Proprietary DB | XML Sidecars |
| Resource Footprint | Lightweight (~35 MB RAM) | Heavy (2+ GB RAM) | Moderate (~400 MB) | Moderate (~350 MB) |
libraw(RAW image decoding engine)quickshell(Qt 6 QML desktop shell runtime)libjxl&libavif(Modern hardware-accelerated image codecs)exiftool(Metadata and ICC profile embedding)zenity(Native file selection dialogs)rust(Toolchain for compiling the native engine)
# Clone and build the project
cargo build --release --locked
# Install the binary locally
install -d -m 755 ~/.local/bin
install -m 755 target/release/omastudio-engine ~/.local/bin/
# Launch OmaStudio
omastudioCtrl + O: Open RAW image dialogCtrl + S: Save adjustment recipe sidecar (.omastudio, Mode 0600)Alt + 1..4: Switch between Grade Versions (Version A, B, C, D)1-5: Set Star Rating (1 to 5 Stars) on selected photo0: Clear Star RatingP: Flag photo as PickX: Flag photo as RejectU: Clear Pick/Reject flagC: Toggle Crop & Composition mode (Rule of Thirds, Golden Ratio, Fibonacci)Y: Toggle Split Before / After (A|B) comparisonCtrl + Shift + C: Copy color & tone adjustments to clipboardCtrl + Shift + V: Paste adjustments onto current photoCtrl + R: Reset all adjustments to default valuesDouble Click: Toggle between 100% Fit and 200% 1:1 Pixel Inspection
OmaStudio strictly conforms to the Omarchy Linux Security Standards:
- Isolated Process Groups (
cmd.process_group(0)): Subprocesses run in dedicated PGIDs; on timeout, RAIIProcessGroupGuardensures clean cleanup with SIGTERM and SIGKILL, leaving zero zombies. - Protected File Permissions (
0600/0700): Catalogs and configuration are written atomically (.tmp_...+fs::rename) with mode0600; symlink traversals are rejected. - Quickshell Hardening: Dynamic strings are rendered with
textFormat: Text.PlainText; dynamiceval()andcreateQmlObject()are strictly prohibited. - Argument Injection Defense: System utilities are invoked with discrete argument vectors and the
--delimiter to block flag injection.
If you find OmaStudio valuable and want to fuel independent Linux software development:
MIT License (c) 2026 Ozan Özdil

