Plebware Control Centre Banner

Everyday Tools

Mode-Specific Tool for Everyday

Script Breakdown: {mode}-tools.sh (Mode Application Dispatcher)

This script manages software launching when switching between PlebMachine operational modes. It dynamically infers its assigned mode based on its script filename, reads system state settings, and either auto-launches a primary application or presents an interactive GUI checklist for selective app launches.


Key Functionality


Dependencies

Core System Utilities

Dialog Provider

Target Applications & Packages (Mode Dependent)

Depending on which modes are used and which apps are selected in the checklist, the host machine requires the relevant binaries installed:

Category / Mode Associated Binaries / Commands
System & Terminal xfce4-terminal, code (VS Code)
Web Browsers firefox, vivaldi, /usr/bin/brave-browser-stable
Productivity & Writing logseq, libreoffice, focuswriter, thunderbird
Graphics & Design gimp, inkscape
Audio & Video audacity, shotcut, openshot-qt, vlc, obs
Finance & Gaming gnucash, steam
Specialized & Flatpaks info.bibletime.BibleTime (via flatpak), evince
Custom Local Executables /opt/plebmachine/ai-apps/MetaAI-linux-x64/MetaAI
#!/bin/bash
export DISPLAY="${DISPLAY:-:0}"
export XAUTHORITY="${XAUTHORITY:-$HOME/.Xauthority}"
export GDK_BACKEND="${GDK_BACKEND:-x11}"

# Determine mode from script name
SCRIPT_NAME="$(basename "$0" .sh)"
MODE="${SCRIPT_NAME%-tools}"

# Read current system state
STATE_FILE="$HOME/.config/plebmachine/state.conf"
if [ -f "$STATE_FILE" ]; then
    PM_STATE=$(grep -i "PM_STATE" "$STATE_FILE" | cut -d'=' -f2 | tr '[:lower:]' '[:upper:]' | xargs)
else
    PM_STATE="COGNITIVE"
fi

# Mode-specific defaults
case "$MODE" in
    everyday)
        DEFAULT_APP="logseq"
        ZENITY_ITEMS='FALSE "Logseq" FALSE "Firefox" FALSE "Thunderbird" FALSE "VLC"'
        ;;
    author)
        DEFAULT_APP="libreoffice"
        ZENITY_ITEMS='FALSE "LibreOffice" FALSE "Firefox" FALSE "FocusWriter"'
        ;;
    study)
        DEFAULT_APP="flatpak run --branch=stable --arch=x86_64 --command=bibletime info.bibletime.BibleTime"
        ZENITY_ITEMS='FALSE "BibleTime" FALSE "Firefox" FALSE "Evince"'
        ;;
    research)
        DEFAULT_APP="vivaldi"
        ZENITY_ITEMS='FALSE "Firefox" FALSE "Brave" FALSE "Vivaldi"'
        ;;
    graphics)
        DEFAULT_APP="gimp"
        ZENITY_ITEMS='FALSE "GIMP" FALSE "Inkscape" FALSE "Firefox"'
        ;;
    music)
        DEFAULT_APP="audacity"
        ZENITY_ITEMS='FALSE "Audacity" FALSE "VLC" FALSE "Firefox"'
        ;;
    video)
        DEFAULT_APP="shotcut"
        ZENITY_ITEMS='FALSE "Shotcut" FALSE "OpenShot" FALSE "VLC"'
        ;;
    broadcast)
        DEFAULT_APP="obs"
        ZENITY_ITEMS='FALSE "OBS Studio" FALSE "Firefox"'
        ;;
    ai_helpers)
        DEFAULT_APP="firefox"
        ZENITY_ITEMS='FALSE "Firefox" FALSE "MetaAI" FALSE "Terminal"'
        ;;
    developer)
        DEFAULT_APP="xfce4-terminal"
        ZENITY_ITEMS='FALSE "VS Code" FALSE "Terminal" FALSE "Firefox"'
        ;;
    accounting)
        DEFAULT_APP="gnucash"
        ZENITY_ITEMS='FALSE "GnuCash" FALSE "Firefox"'
        ;;
    leisure)
        DEFAULT_APP="steam"
        ZENITY_ITEMS='FALSE "Steam" FALSE "VLC" FALSE "Firefox"'
        ;;
    *)
        echo "Unknown mode: $MODE"
        exit 1
        ;;
esac

# If AUTOMATIC, launch default app immediately
if [ "$PM_STATE" = "AUTOMATIC" ]; then
    $DEFAULT_APP >/dev/null 2>&1 &
    exit 0
fi

# COGNITIVE mode: show zenity checklist
CHOICE=$(zenity --list \
  --checklist \
  --title="PlebMachine ${MODE^} Tools" \
  --text="Select ${MODE} applications to launch:" \
  --column="Pick" \
  --column="App" \
  $ZENITY_ITEMS \
  --separator="|")

if [ $? -ne 0 ]; then
    exit 0
fi

IFS="|" read -ra APPS <<< "$CHOICE"

for app in "${APPS[@]}"; do
  # Remove leading and trailing double quotes
  app="${app%\"}"
  app="${app#\"}"
  case "$app" in
    "Logseq")      logseq >/dev/null 2>&1 & ;;
    "Firefox")     firefox >/dev/null 2>&1 & ;;
    "Thunderbird") thunderbird >/dev/null 2>&1 & ;;
    "VLC")         vlc >/dev/null 2>&1 & ;;
    "LibreOffice") libreoffice >/dev/null 2>&1 & ;;
    "FocusWriter") focuswriter >/dev/null 2>&1 & ;;
    "BibleTime")   flatpak run --branch=stable --arch=x86_64 --command=bibletime info.bibletime.BibleTime >/dev/null 2>&1 & ;;
    "Evince")      evince >/dev/null 2>&1 & ;;
    "Brave")       /usr/bin/brave-browser-stable >/dev/null 2>&1 & ;;
    "Vivaldi")     vivaldi >/dev/null 2>&1 & ;;
    "GIMP")        gimp >/dev/null 2>&1 & ;;
    "Inkscape")    inkscape >/dev/null 2>&1 & ;;
    "Audacity")    audacity >/dev/null 2>&1 & ;;
    "Shotcut")     shotcut >/dev/null 2>&1 & ;;
    "OpenShot")    openshot-qt >/dev/null 2>&1 & ;;
    "OBS Studio")  obs >/dev/null 2>&1 & ;;
    "MetaAI")      /opt/plebmachine/ai-apps/MetaAI-linux-x64/MetaAI >/dev/null 2>&1 & ;;
    "Terminal")    xfce4-terminal >/dev/null 2>&1 & ;;
    "VS Code")     code >/dev/null 2>&1 & ;;
    "GnuCash")     gnucash >/dev/null 2>&1 & ;;
    "Steam")       steam >/dev/null 2>&1 & ;;
    *)             echo "Unknown app: $app" ;;
  esac
done


Review โ€” 2026-09-20

Review subject: Everyday Tools

Review date: 2026-09-20
Review scope: Documentation, code preservation, description quality, and PlebVox exclusion.\n

โ†ฉ Return to the article I came from

Previous: Developer Tools

Next: Graphics Tools

No earlier PlebWare article yet

You haven't viewed any other PlebWare articles in this tab yet. If you arrived from Google or opened this article directly, there may be no earlier PlebWare article to return to.

You can keep exploring from here: