# MySlideshow A lightweight, high-performance X11/Imlib2 slideshow container featuring a classic 3D bevel retro border. It monitors targeted path configuration pointers dynamically and reloads images in real-time without window flickering. It features native fluid borderless window dragging, smart Xinerama multi-monitor layout auto-balancing, and low-resource disk/CPU caching guards. --- ## Dependencies ### Runtime Requirements (To execute the binary) * `libimlib2` - Fast image loading, scaling, and processing rendering engine * `libx11-6` - Core X11 client communication network protocols library * `libxinerama1` - X11 multi-monitor management tracking layout extension * `libglib2.0-0` - Fundamental core library structures mapping framework ### Build Requirements (To compile from source) * `valac` - Vala compiler framework transpiler target engine * `gcc` & `make` - GNU compiler collection toolchain pipelines * `pkg-config` - Automated system libraries compiler flag managers * `libimlib2-dev`, `libx11-dev`, `libxinerama-dev`, `libglib2.0-dev` - Native C target header blueprints --- ## Installation & Compilation To install all required compilation dependencies on Debian/Ubuntu-based distributions, execute: ```bash sudo apt update && sudo apt install -y valac gcc make pkg-config libimlib2-dev libx11-dev libxinerama-dev libglib2.0-dev ``` ### Compiling via Makefile To build the unmanaged portable production binary locally from the source files tree, simply run: ```bash make ``` ### Packaging a Debian Distribution Release To automatically compile components, build structures, and package a production-ready `.deb` package file alongside a portable `.tar.gz` archive, invoke: ```bash bash build_deb.sh sudo dpkg -i myslideshow_1.0.0_amd64.deb ``` --- ## Directory Setup Upon first package deployment run, the application establishes its local workspace environment mapping files into your home profile: * `~/.myslideshow/` - Master local configuration environment folder structure target * `~/.myslideshow/myslideshow_example1.rc` - Default standard 3D boxed window frame setup profile * `~/.myslideshow/myslideshow_example2.rc` - Multi-monitor Xinerama root-desktop wallpaper layout profile * `~/.myslideshow/slideshow.sh` - Highly optimized background image rotation controller automation loop shell script --- ## Command Line Usage Options ```text Application Options: -h, --help Show available runtime help descriptions -x, --xpos=INT Window viewport canvas X coordinate mapping position -y, --ypos=INT Window viewport canvas Y coordinate mapping position -w, --width=INT Window resolution width sizing bounds -g, --height=INT Window resolution height sizing bounds -b, --border=INT Thickness of the structural 3D bevel display frame border -1, --color1=#HEX Hex color token mapping for the top/left bevel lighting axis -2, --color2=#HEX Hex color token mapping for the bottom/right bevel shadow axis -l, --layer=LAYER Window desktop depth manager layer strategy ('above', 'below', 'desktop') -t, --title=0|1 Toggle native window decorations and title bars (0=hide, 1=show decorations) -f, --filerc=FILENAME Custom resource main .rc file target selection located inside ~/.myslideshow/ ``` ### Practical Execution Examples 1. **Standard Cold-Start Fallback (Launches example 1 template layout automatically):** ```bash ./myslideshow ``` 2. **Launch a secondary container instance with custom coordinates via explicit file target reference:** ```bash ./myslideshow --filerc=myslideshow_example1.rc -x 500 -y 200 ``` 3. **Activate fully ungezerrt Multi-Monitor Fullscreen Wallpaper mode matching Xinerama screen viewports:** ```bash ./myslideshow --filerc=myslideshow_example2.rc -l desktop ``` 4. **Toggle native window managers decorations and titles onto a custom boxed frame context:** ```bash ./myslideshow --filerc=myslideshow_example1.rc --title=1 ``` --- ## Features Matrix Information * **Fluid Dragging:** In borderless configuration layer modes (`title` deactivated), left-clicking and holding the mouse *anywhere* inside the frame allows fluid, lag-free real-time workspace positioning. * **Smart Caching Protection:** The engine implements a low-overhead file path memory latch loop. File reading occurs every second, but decoding assets or writing data to the graphics card textures is skipped entirely unless an actual string location change inside the pointer files is detected.