Lawrence: Move In

Portable software to overtake a Windows OS instead of suffering their flawed solutions

Applet Inventory

niggly.py NM
Window Focus Rules (IF/THEN)
When you focus one window, specified others auto-minimise. IFTTT-style card UI for defining rules. Lives in the system tray as NM.
tiles.py TL
Window Tiles + Desktop Canvas
All active windows rendered as tiny coloured tiles, grouped by category. Two modes: compact sidebar list, or full-screen desktop canvas with free-placement and drawable zones. Passthrough ghost mode drops to 10% opacity for click-through. System tray icon TL.
launcher.py MI
Master Suite Launcher
Gamification-style command centre. Each applet shown as a glowing orb — launch individually or all at once. Tracks XP, levels, and launch stats. System tray icon MI.
launch_all.pyw
Auto-launcher (Silent)
Silent launcher for all applets. Drop a shortcut into the Windows Startup folder and everything fires on login — no console window, no fuss.

Architecture

graph TD
    LAUNCH["launch_all.pyw
Auto-launcher"] LAUNCHER["launcher.py
Master Suite Launcher"] NIGGLY["niggly.py
Window Focus Rules"] TILES["tiles.py
Window Tiles"] LAUNCHER_CFG[("launcher_config.json")] NIGGLY_CFG[("niggly_config.json")] TILES_CFG[("tiles_config.json")] CANVAS_CFG[("canvas_config.json")] TRAY_MI(["System Tray: MI"]) TRAY_NM(["System Tray: NM"]) TRAY_TL(["System Tray: TL"]) SIDEBAR["TilesWindow
Sidebar mode"] CANVAS["DesktopCanvas
Full-screen mode"] GHOST["Passthrough Mode
WS_EX_TRANSPARENT"] WIN32["win32gui / win32api
Window management"] PYSTRAY["pystray
Tray icons"] LAUNCH -->|starts| LAUNCHER LAUNCH -->|starts| NIGGLY LAUNCH -->|starts| TILES LAUNCHER -->|launches & monitors| NIGGLY LAUNCHER -->|launches & monitors| TILES LAUNCHER -->|reads/writes| LAUNCHER_CFG LAUNCHER -->|icon| TRAY_MI TRAY_MI -.->|via| PYSTRAY NIGGLY -->|reads| NIGGLY_CFG NIGGLY -->|monitors focus & applies rules| WIN32 NIGGLY -->|icon| TRAY_NM TRAY_NM -.->|via| PYSTRAY TILES -->|reads/writes| TILES_CFG TILES -->|reads/writes| CANVAS_CFG TILES -->|icon| TRAY_TL TRAY_TL -.->|via| PYSTRAY TILES --> SIDEBAR TILES --> CANVAS CANVAS --> GHOST TILES -->|enumerates windows| WIN32 style LAUNCH fill:#fab387,stroke:#fab387,color:#0f0f1a style LAUNCHER fill:#cba6f7,stroke:#f5c2e7,color:#0f0f1a style NIGGLY fill:#cba6f7,stroke:#cba6f7,color:#0f0f1a style TILES fill:#94e2d5,stroke:#94e2d5,color:#0f0f1a style LAUNCHER_CFG fill:#f9e2af,stroke:#f9e2af,color:#0f0f1a style NIGGLY_CFG fill:#f9e2af,stroke:#f9e2af,color:#0f0f1a style TILES_CFG fill:#f9e2af,stroke:#f9e2af,color:#0f0f1a style CANVAS_CFG fill:#f9e2af,stroke:#f9e2af,color:#0f0f1a style WIN32 fill:#313244,stroke:#89b4fa,color:#cdd6f4 style PYSTRAY fill:#313244,stroke:#89b4fa,color:#cdd6f4 style SIDEBAR fill:#1e1e2e,stroke:#94e2d5,color:#94e2d5 style CANVAS fill:#1e1e2e,stroke:#94e2d5,color:#94e2d5 style GHOST fill:#1e1e2e,stroke:#f38ba8,color:#f38ba8 style TRAY_MI fill:#1e1e2e,stroke:#f5c2e7,color:#f5c2e7 style TRAY_NM fill:#1e1e2e,stroke:#cba6f7,color:#cba6f7 style TRAY_TL fill:#1e1e2e,stroke:#94e2d5,color:#94e2d5

Config Files

File Stores
niggly_config.json IF/THEN focus rules — which windows to auto-minimise when a target window gains focus
tiles_config.json Tile colours, category groupings, sidebar layout preferences, and window filter rules
canvas_config.json Desktop canvas free-placement positions, drawable zone definitions, and ghost-mode opacity settings
launcher_config.json Launch counts per applet, total launches, XP points, and current level

How to Run

Run everything at once (silent, no console):

# Double-click or add a shortcut to shell:startup
pythonw launch_all.pyw

Run individual applets:

# Master Suite Launcher (gamification UI)
python launcher.py

# Window Focus Rules
python niggly.py

# Window Tiles + Desktop Canvas
python tiles.py

Dependencies:

pip install pywin32 pystray Pillow