=============================================================================== MU-APPLAUNCHER - Release 1.0.6 =============================================================================== A minimalist, highly flexible GTK3 application launcher & desktop widget, perfectly optimized for lightweight window managers (e.g., IceWM under Puppy Linux / BookwormPup). update 1.0.6: added ShowOnAllDesktops ------------------------------------------------------------------------------- 1. GETTING STARTED & CLI PARAMETERS ------------------------------------------------------------------------------- The launcher can be controlled using various command-line arguments. CLI parameters act as a live override and take priority over values defined in the configuration file. Options: -h, --help Displays the help message and exits. -g, --debug Enables verbose X11 positioning diagnostics in the terminal. -d, --desktop Widget Mode: Embeds the launcher permanently into the desktop background. Disables all auto-closing mechanics. -t, --top Forces placement at the top screen edge. -b, --bottom Forces placement at the bottom screen edge. -l, --left Forces placement at the left screen edge. -r, --right Forces placement at the right screen edge. -u, --autohide Activates automatic edge-hiding via background trigger loop. -c, --config Uses a custom configuration file path. -a, --apps Uses an alternative directory for *.desktop shortcuts. ------------------------------------------------------------------------------- 2. THE CONFIGURATION FILE (config.rc) ------------------------------------------------------------------------------- Default path: ~/.mu-applauncher/config.rc The file utilizes the standard INI/KeyFile format. The parser is completely case-insensitive for all keys, allowing maximum editing flexibility. Template structure with all available options: [Launcher] X=100 Y=100 Center=true BottomBar=false TopBar=false LeftBar=false RightBar=false Autohide=false IconSize=64 FontSize=11 Columns=4 GridSpacing=15 TextColor=#BBBB88 HoverColor=rgba(255, 255, 255, 0.1) BorderColor=#333333 BorderWidth=2 BackgroundImage= IgnoreBgInDesktopMode=false Bold=false HideTextUntilHover=false AutoCloseOnLeave=true Xinerama=-1 Struts=false ------------------------------------------------------------------------------- 3. POWER-USER HYBRID WORKFLOW (Smart Centering vs. Desktop Widget) ------------------------------------------------------------------------------- Mu-AppLauncher is designed with a unique architecture supporting two simultaneous workflows out of the box using a single configuration file: 1. Standard Popup Mode (Invoked without '-d'): The launcher dynamically overrides file parameters in memory and FORCES 'Center=true'. It ignores pre-saved X/Y coordinates and spawns as a crisp, perfectly centered standalone application dock (ideal for hotkey invocation via the IceWM panel). 2. Permanent Background Widget Mode (Invoked with '-d'): The launcher embeds into the root window layer and respects your custom 'Center=false' file parameters. It reads your manual X/Y or Bar-alignment coordinates to position itself stably on the wallpaper layout. * Editing Safety: Opening the built-in GUI settings from a centered popup reads the raw file values from the hard disk. You can safely change the X/Y values for your Desktop background layout. Saving will update the file correctly for the next widget boot, while the active popup reloads instantly centered in RAM! ------------------------------------------------------------------------------- 4. ADVANCED TRICKS & HIDDEN LOGIC ------------------------------------------------------------------------------- * GridSpacing=-1 (Ultra-compact Panel Mode) Setting 'GridSpacing=-1' collapses all internal padding, margins between icons, and the outer window border down to exactly 0 pixels. Simultaneously, the button styles flatten via CSS. This is the ideal setup to transform Mu-AppLauncher into a seamless, native system panel clinging to your screen edge. * Automatic Error Tolerance & File Repair - If a line in config.rc is syntactically broken due to a manual typo (e.g., "GridSpacing-1" instead of "GridSpacing=-1"), the parser sanitizes the string in memory before loading, preventing GLib from discarding the entire file. - If the mandatory '[Launcher]' group header is missing at the beginning of the file, the application automatically injects it upon boot without wiping or altering any of your pre-existing user settings below it. - Safety Loop Guard: Activating 'Autohide=true' on a centered window is a logic clash (no screen edges touch). The launcher automatically forces Autohide to 'false' in this case, preventing terminal log-flooding. * Xinerama Multi-Monitor Support Using the 'Xinerama=' key (e.g., Xinerama=1), you can force the deck to render on a specific display within your multi-monitor layout. - Value set to -1: Follows the active screen where your mouse cursor is located. - Value set to >= 0: Hard-binds the edge positioning to that exact monitor index. * Intelligent X11 Struts (Space Reservation for Maximized Windows) When 'Struts=true' is active, the launcher communicates directly with the X11 server via Extended Window Manager Hints (_NET_WM_STRUT_PARTIAL). This forces maximized windows (like browsers or terminals) to snap to the panel's edge rather than overlapping it. - Automatically ignored in Desktop Mode (-d). - Automatically ignored in Center Mode. - Smart Corner Logic: If the deck sits in a corner (e.g., Top + Right) and is oriented vertically (h > w, such as a 1-column layout), the strut is ONLY applied to the narrow vertical outer edge (right) and will NOT block or waste the top screen boundary for other windows. * Dual Right-Click Context Menu - Settings (GUI): Launches the new notebook tabbed editor. Provides visual spin-buttons, desktop file choosers, and an native GTK Color Chooser enforced with a precise locale-independent Alpha transparency (RGBA) slider. - Edit (Code): Spawns a lightweight raw monospace text view panel. Best for quick text edits and configuration hacks on the fly. - Both options seamlessly execute a safe process forking layout-restart upon saving without dropping active X11 clipboard states.