Troubleshooting a macOS Parblo Tablet | Generated by AI
Good question. Here’s exactly what I ran and what each one does:
1. Find the app bundle
find /Applications /System/Applications ~/Applications -iname '*parblo*' -maxdepth 3
Uses find with -iname (case-insensitive name match) to locate anything named ‘parblo’ in the three standard application directories, max 3 directories deep.
2. Check launchd (auto-start services)
launchctl list | grep -i parblo
launchctl list shows every user-space service registered with launchd. Piping through grep -i parblo filters for anything Parblo.
sudo launchctl bootout gui/$(id -u) /Library/LaunchAgents/com.parblo.Tablet.plist
bootout stops the service and unregisters it from launchd. gui/$(id -u) targets the current user’s graphical session. The path is the plist file that defines it.
ls /Library/LaunchAgents /Library/LaunchDaemons -name '*parblo*'
LaunchAgents = user-level auto-start. LaunchDaemons = system-level (root) auto-start.
3. Check binary architecture (Intel vs ARM)
file /Applications/ParbloTablet/.../ParbloTabletDriver
file inspects a binary’s Mach-O headers and tells you if it’s x86_64 (Intel), arm64 (Apple Silicon), or a universal binary containing both.
4. Read the Info.plist (version, build info)
defaults read /Applications/.../Info.plist
Dumps the full plist as JSON. I looked at CFBundleShortVersionString (v3.7.1), DTXcode (10.3), DTSDKName (macosx10.14), and LSMinimumSystemVersion (10.10) to see how old the build was.
5. Check brew services
brew services info ollama (for ollama)
brew services list | grep -i parblo (for parblo)
Shows whether Homebrew manages the service and its loaded/running status.
6. Check USB / connected hardware
system_profiler SPUSBDataType | grep -A 10 -i 'parblo\|tablet\|drawing'
Dumps all USB-connected devices and searches for tablet-related entries.
7. Check login items (System Settings)
osascript -e 'tell application "System Events" to get the name of every login item'
AppleScript via osascript queries System Events for the user’s login items list (the list you see in System Settings > General > Login Items).
8. Check environment variables
env | grep -i ollama
Searches all environment variables for any OLLAMA_ (or PARBLO_) related vars.
9. Check listening ports
lsof -i :11434
lsof -i -P | grep -i parblo
lsof -i :PORT shows what’s listening on a specific port (11434 = Ollama default). lsof -i -P with -P disables port name resolution for speed and accuracy.
10. Check kernel & system extensions (deep system hooks)
kextstat | grep -i parblo
systemextensionsctl list | grep -i parblo
kextstat lists loaded kernel extensions (very deep, can crash the system if removed wrong). systemextensionsctl shows newer-style system extensions (network filters, driver kit drivers).
11. Check package receipts
pkgutil --pkgs | grep -i parblo
ls /private/var/db/receipts/*parblo*
pkgutil --pkgs lists all packages registered with the system installer. The receipts are also stored as .plist files in /private/var/db/receipts/.
12. Check user-library cache/config locations
ls ~/Library/Preferences/com.parblo*
ls ~/Library/Caches/com.parblo*
ls ~/Library/Application\ Support/Parblo*
ls ~/Library/Containers/com.parblo*
ls ~/Library/Group\ Containers/*parblo*
ls ~/Library/Saved\ Application\ State/*parblo*
Standard macOS locations where apps store data — preferences, caches, app data, sandbox containers, shared group containers, and window state.
13. Check Trash
ls ~/.Trash/*parblo*
Some uninstallers just move to Trash rather than deleting.
Want me to walk through any of these in more detail?