← paintstorm-distrobox-legacy

Organize Paintstorm scripts into dedicated folder for cleaner structure

3ee3bca2812e8951f262ce9b2fb594c8474467a4 · Claude · Jan 24, 2026 13:44

- Created paintstorm-setup/ folder for all installation scripts
- Created docs/ folder for documentation
- Moved configure-tablet-buttons.sh to native-hid-tablet-mapping/
- Updated main README.md with new folder structure
- Added paintstorm-setup/README.md with detailed usage instructions

Main folder is now cleanly organized:
- paintstorm-setup/ - Installation scripts
- native-hid-tablet-mapping/ - Button mapping (recommended)
- otd-diagnostics/ - OTD troubleshooting (not recommended)
- docs/ - Documentation

+174 −14 · 8 files changed

  • README.md +22 −14
  • TABLET-PRESSURE-FIX.md => docs/TABLET-PRESSURE-FIX.md +0 −0
  • configure-tablet-buttons.sh => native-hid-tablet-mapping/configure-tablet-buttons.sh +0 −0
  • paintstorm-setup/README.md +152 −0
  • container-setup.sh => paintstorm-setup/container-setup.sh +0 −0
  • paintstorm-install-distrobox.sh => paintstorm-setup/paintstorm-install-distrobox.sh +0 −0
  • paintstorm-launcher.sh => paintstorm-setup/paintstorm-launcher.sh +0 −0
  • paintstorm-manage.sh => paintstorm-setup/paintstorm-manage.sh +0 −0
diff --git a/README.md b/README.md
index e7dc429..ed7aff7 100644
--- a/README.md
+++ b/README.md
@@ -46,10 +46,11 @@ sudo pacman -S xbindkeys xdotool
 
 2. **Download Paintstorm Studio**
    - Get `Paintstorm_linux_v2.50.run` from the official website
-   - Place it in the same directory as the script
+   - Place it in the `paintstorm-setup/` directory
 
 3. **Run the installation script**
    ```bash
+   cd paintstorm-setup/
    chmod +x paintstorm-install-distrobox.sh
    ./paintstorm-install-distrobox.sh
    ```
@@ -107,6 +108,8 @@ Testing revealed OTD has unfixable issues with Paintstorm:
 
 **If you want to troubleshoot OTD anyway**, see [otd-diagnostics/](otd-diagnostics/) (not recommended).
 
+For detailed tablet troubleshooting, see [docs/TABLET-PRESSURE-FIX.md](docs/TABLET-PRESSURE-FIX.md).
+
 ## Quick Check
 
 ```bash
@@ -125,26 +128,31 @@ This will verify:
 paintstorm-distrobox-legacy/
 │
 ├── README.md                           # This file
-├── TABLET-PRESSURE-FIX.md             # Detailed tablet troubleshooting
-│
-├── paintstorm-install-distrobox.sh    # Main installer
-├── container-setup.sh                  # Container configuration
-├── paintstorm-launcher.sh              # App launcher template
-├── paintstorm-manage.sh                # Container management
 ├── test-tablet-pressure.sh             # General tablet diagnostic
 │
-├── native-hid-tablet-mapping/          # ✅ RECOMMENDED: Button mapping tools
+├── paintstorm-setup/                   # 🎨 Paintstorm installation
+│   ├── README.md                       # Installation guide
+│   ├── paintstorm-install-distrobox.sh # Main installer (run this)
+│   ├── container-setup.sh              # Container configuration
+│   ├── paintstorm-launcher.sh          # App launcher template
+│   └── paintstorm-manage.sh            # Container management
+│
+├── native-hid-tablet-mapping/          # ✅ RECOMMENDED: Button mapping
 │   ├── README.md                       # Setup guide
-│   ├── tablet-button-config.conf       # Your button mappings
+│   ├── tablet-button-config.conf       # Your button mappings (edit this)
 │   ├── apply-button-mappings.sh        # Apply configuration
 │   ├── setup-autostart.sh              # Make persistent
 │   ├── test-pen-buttons.sh             # Detect pen buttons
 │   ├── test-tablet-keyboard-events.sh  # Detect tablet buttons
-│   └── detect-tablet-buttons.sh        # Comprehensive detection
+│   ├── detect-tablet-buttons.sh        # Comprehensive detection
+│   └── configure-tablet-buttons.sh     # Legacy manual config
+│
+├── otd-diagnostics/                    # ❌ NOT RECOMMENDED: OTD troubleshooting
+│   ├── README.md                       # Why OTD doesn't work
+│   └── (various diagnostic scripts)    # For debugging OTD issues
 │
-└── otd-diagnostics/                    # ❌ NOT RECOMMENDED: OTD troubleshooting
-    ├── README.md                       # Why OTD doesn't work
-    └── (various diagnostic scripts)    # For debugging OTD issues
+└── docs/                               # 📚 Documentation
+    └── TABLET-PRESSURE-FIX.md          # Detailed tablet troubleshooting
 ```
 
 ## Tested Configuration
@@ -167,7 +175,7 @@ Your Huion G930L has:
 - **6 tablet buttons**: Already send keyboard shortcuts (Ctrl+Alt+Z, [, ], b, etc.)
 - **2 pen buttons**: Can be mapped with xbindkeys
 
-See `native-hid-tablet-mapping/README.md` for complete setup.
+See [native-hid-tablet-mapping/README.md](native-hid-tablet-mapping/README.md) for complete setup.
 
 ### OpenTabletDriver Issues
 
diff --git a/TABLET-PRESSURE-FIX.md b/docs/TABLET-PRESSURE-FIX.md
similarity index 100%
rename from TABLET-PRESSURE-FIX.md
rename to docs/TABLET-PRESSURE-FIX.md
diff --git a/configure-tablet-buttons.sh b/native-hid-tablet-mapping/configure-tablet-buttons.sh
similarity index 100%
rename from configure-tablet-buttons.sh
rename to native-hid-tablet-mapping/configure-tablet-buttons.sh
diff --git a/paintstorm-setup/README.md b/paintstorm-setup/README.md
new file mode 100644
index 0000000..5f974d7
--- /dev/null
+++ b/paintstorm-setup/README.md
@@ -0,0 +1,152 @@
+# Paintstorm Studio Setup Scripts
+
+This folder contains the core scripts for installing and managing Paintstorm Studio in a distrobox container.
+
+## Files
+
+### Installation
+- **`paintstorm-install-distrobox.sh`** - Main installation script (run this first)
+  - Creates Ubuntu 20.04 distrobox container
+  - Builds GLEW 1.13.0 from source
+  - Installs all dependencies
+  - Configures tablet support (hidraw passthrough)
+  - Creates desktop launcher
+
+### Supporting Scripts
+- **`container-setup.sh`** - Container environment setup
+  - Installs packages inside container
+  - Configures locale and fonts
+  - Sets up X11 input libraries
+  - Called automatically by main installer
+
+- **`paintstorm-launcher.sh`** - Application launcher template
+  - Wrapper script for launching Paintstorm
+  - Configures environment variables
+  - Shows debug output for troubleshooting
+  - Installed to `~/paintstorm` during setup
+
+- **`paintstorm-manage.sh`** - Container management utilities
+  - Export/import container
+  - Show container info
+  - Test tablet input
+  - Fix permissions
+  - Installed to `~/paintstorm-manage.sh` during setup
+
+## Usage
+
+### First Time Installation
+
+```bash
+cd paintstorm-setup/
+./paintstorm-install-distrobox.sh
+```
+
+The script will:
+1. Create the distrobox container
+2. Install all dependencies
+3. Extract and install Paintstorm
+4. Create launcher scripts
+5. Set up desktop integration
+
+### After Installation
+
+**Launch Paintstorm:**
+```bash
+~/paintstorm
+```
+
+**Manage Container:**
+```bash
+~/paintstorm-manage.sh
+```
+
+**Recreate Container** (if you update the script):
+```bash
+cd paintstorm-setup/
+./paintstorm-install-distrobox.sh
+# Answer 'y' when asked to recreate
+```
+
+## Requirements
+
+- Distrobox installed
+- Podman or Docker
+- X11 display server
+- Paintstorm_linux_v2.50.run installer file
+- Optional: NVIDIA GPU for hardware acceleration
+
+## Tablet Support
+
+The installer automatically detects and passes through:
+- `/dev/input/event*` devices
+- `/dev/hidraw*` devices (for pressure/tilt)
+- X11 sockets
+- Xauthority files
+
+This enables full tablet support with:
+- Pressure sensitivity (0-8191 levels)
+- Tilt support (X/Y angles)
+- Native Linux HID drivers (no OTD required)
+
+For button mapping, see: `../native-hid-tablet-mapping/`
+
+## Troubleshooting
+
+### Container doesn't start
+```bash
+distrobox list
+distrobox logs paintstorm-legacy
+```
+
+### Paintstorm won't launch
+```bash
+# Enter container manually
+distrobox enter paintstorm-legacy
+
+# Check if binary exists
+ls -la /usr/share/paintstorm/Paintstorm
+
+# Try running directly
+cd /usr/share/paintstorm
+./Paintstorm
+```
+
+### Tablet doesn't work
+```bash
+# From main directory, run diagnostic
+cd ..
+./test-tablet-pressure.sh
+```
+
+See `../docs/TABLET-PRESSURE-FIX.md` for detailed troubleshooting.
+
+## Technical Details
+
+### Container Configuration
+- **Base Image**: Ubuntu 20.04 (focal)
+- **Container Name**: paintstorm-legacy
+- **Install Location**: /usr/share/paintstorm
+- **GLEW Version**: 1.13.0 (built from source)
+
+### Device Passthrough
+The container is created with `--additional-flags` that include:
+- All `/dev/input/event*` devices
+- All `/dev/hidraw*` devices
+- X11 socket volume mount
+- Xauthority volume mount
+- NVIDIA flag (if GPU detected)
+
+### Why Ubuntu 20.04?
+Paintstorm v2.50 requires:
+- Older GLEW version (1.13.0)
+- Specific library versions (GTK2, old Mesa, etc.)
+- Font configuration that doesn't crash on startup
+
+Ubuntu 20.04 provides the right environment without conflicting with modern system libraries.
+
+## See Also
+
+- Main README: `../README.md`
+- Tablet button mapping: `../native-hid-tablet-mapping/`
+- OTD troubleshooting: `../otd-diagnostics/`
+- Detailed tablet guide: `../docs/TABLET-PRESSURE-FIX.md`
diff --git a/container-setup.sh b/paintstorm-setup/container-setup.sh
similarity index 100%
rename from container-setup.sh
rename to paintstorm-setup/container-setup.sh
diff --git a/paintstorm-install-distrobox.sh b/paintstorm-setup/paintstorm-install-distrobox.sh
similarity index 100%
rename from paintstorm-install-distrobox.sh
rename to paintstorm-setup/paintstorm-install-distrobox.sh
diff --git a/paintstorm-launcher.sh b/paintstorm-setup/paintstorm-launcher.sh
similarity index 100%
rename from paintstorm-launcher.sh
rename to paintstorm-setup/paintstorm-launcher.sh
diff --git a/paintstorm-manage.sh b/paintstorm-setup/paintstorm-manage.sh
similarity index 100%
rename from paintstorm-manage.sh
rename to paintstorm-setup/paintstorm-manage.sh