Organize Paintstorm scripts into dedicated folder for cleaner structure
- 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
@@ -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 @@ -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`