Plebware Control Centre Banner

Accounting Tools

Mode-Specific Tool for Accounting

Script Breakdown: accounting-tools.sh (Accounting Mode Tool Dispatcher)

This documentation focuses on the Accounting mode execution flow within the unified PlebMachine tool dispatcher script. When invoked via accounting-tools.sh (or symlinked equivalent), the script dynamically resolves $MODE to accounting and handles application launching based on the active system state.


Key Functionality


Accounting Mode Configuration

Setting / Target Assigned Command / Choice Purpose
DEFAULT_APP (AUTOMATIC) gnucash Auto-launches GnuCash personal and small business financial accounting software.
Checklist Item 1 "GnuCash" (gnucash) Launches GnuCash accounting suite.
Checklist Item 2 "Firefox" (firefox) Launches Firefox web browser for online banking, invoices, or financial reporting.

Dependencies

Core Utilities

Binary Dependencies (Accounting Context)

#!/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: Accounting 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: PlebWare โ€” 138 Days to a Complete World.

Next: AI-Helpers 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: