TUI Written in GO
  • Go 75.4%
  • Shell 24.6%
Find a file
2025-07-06 23:19:30 +00:00
blenderRender install script. Blender file directory 2025-06-02 12:12:50 -07:00
forestTrees added forest. Chaged colors. Removed Datand time 2025-03-15 17:20:07 -07:00
metaManager V1.0, Install script 2025-03-15 19:57:12 -07:00
radioManager radio descriptions 2025-03-29 23:40:34 -07:00
sshManager database location. 2025-03-17 16:31:30 -07:00
go.mod tidy 2025-03-14 21:20:22 -07:00
go.sum tidy 2025-03-14 21:20:22 -07:00
install.sh updated 2025-07-06 23:17:32 +00:00
log.ans radioManager 2025-03-27 16:57:37 -07:00
main.go Updated 2025-07-06 23:19:30 +00:00
README.md readme reformated to md 2025-06-02 12:17:13 -07:00
termtool install script. Blender file directory 2025-06-02 12:12:50 -07:00
termtool.code-workspace Initial Commit 2025-03-02 13:27:28 -08:00
termtool.db V1.0, Install script 2025-03-15 19:57:12 -07:00
termtool.png Added Icon. Adjust script to update system icon cache. 2025-03-17 17:34:51 -07:00

TermTool

TermTool is a terminal-based utility suite for system management, featuring a modern text user interface (TUI) built with the powerful Go Charm libraries.

Description

TermTool combines several useful utilities into a single application with a consistent, easy-to-use interface, all within your terminal. It leverages tools like spf for file exploration and lazysql for direct database interactions within its modules.

Features

  • Meta Manager: Manage application settings and view/edit file metadata using exiftool.
  • File Explorer: Browse and manage files and directories efficiently (powered by spf).
  • SSH Connections: Store, manage, and quickly connect to your SSH servers. Includes an option to edit the SSH connection database directly using lazysql.
  • Blender Render: Queue and manage Blender rendering tasks. (Further details needed on its direct integration or if it's a conceptual module).
  • Radio Tools: Interface with various radio and SDR applications.
  • Network Information: Monitor your network connections with detailed information.

Installation

TermTool is designed primarily for Debian-based Linux distributions (e.g., Ubuntu, Linux Mint) and Fedora.

Prerequisites

The installation script will attempt to install most dependencies. However, a working internet connection is required. Key underlying tools that will be installed or are used:

  • Core Functionality:
    • git, wget (for fetching components)
    • gnome-terminal (or a compatible terminal for launching some actions)
    • exiftool (for Meta Manager; libimage-exiftool-perl on Debian, perl-Image-ExifTool on Fedora)
    • go (Golang, if building TermTool from source or installing lazysql via go install)
    • make, gcc (and other build tools, if building spf or other components from source)
  • Included Utilities (installed with Basic install):
    • spf (Superfile file manager)
    • lazysql (TUI for SQL databases)
  • Full Install Additional Tools (Optional):
    • wavemon (Wireless network monitor)
    • python3-pip, pipx (for mmng-ui)
    • mmng-ui (POCSAG/Flex Pager Decoder UI)
    • multimon-ng (Digital mode decoder, often used with mmng-ui)
    • Dependencies for DSD-FME (Digital Speech Decoder - FME fork), including cmake, development libraries for audio, SDR, etc.

Installation Process

  1. Clone the Repository or Download the Release:

    git clone <your-repository-url>
    cd <repository-directory>
    

    Ensure the install.sh script is executable:

    chmod +x install.sh
    
  2. Run the Installation Script: Execute the script with sudo privileges:

    sudo ./install.sh
    

    The installation script will:

    • Ask you to choose between a Basic or Full installation:
      • Basic Install: Installs TermTool, spf, and lazysql.
      • Full Install: Installs everything from Basic, plus wavemon, mmng-ui, DSD-FME, and their respective dependencies.
    • Detect your distribution (Debian-based or Fedora) and use the appropriate package manager (apt or dnf).
    • Check for core dependencies and offer to install any that are missing.
    • Install TermTool, spf, and lazysql to /usr/local/bin/.
    • If "Full" install is chosen, it will proceed to install wavemon, mmng-ui (via pipx), and build/install DSD-FME from source along with its dependencies like mbelib and itpp.
    • Create a configuration directory at /etc/termtool/.
    • Copy termtool.db to /etc/termtool/termtool.db if found in the script directory.
    • Create a GNOME desktop entry (.desktop file) for easy launching from application menus.
    • Set up appropriate permissions.

Updating TermTool

To update the main termtool application binary if you've made changes and rebuilt it:

  1. Ensure your new termtool executable is in the script directory (or main.go is present for the script to build it).

  2. Rerun the installation script:

    sudo ./install.sh
    

    The script will overwrite the existing termtool binary in /usr/local/bin/.

    Note: Rerunning the script will not automatically update spf, lazysql, or source-built components like DSD-FME if they are already installed. To update those, you would typically need to remove their existing binaries first (e.g., sudo rm /usr/local/bin/spf) or use the uninstall.sh script before rerunning install.sh. For mmng-ui, pipx install mmng-ui often handles upgrades.

Uninstallation

An uninstall.sh script is provided to remove TermTool and its directly installed components.

  1. Ensure the uninstall.sh script is executable:
    chmod +x uninstall.sh
    
  2. Run the uninstallation script with sudo:
    sudo ./uninstall.sh
    
    The script will guide you through removing binaries, configuration files, and desktop entries installed by install.sh. It will not automatically remove system-wide dependencies installed via your package manager.

Usage

Launching TermTool

  • Type termtool in your terminal.
  • Find "TermTool" in your system's application menu (may require a logout/login after installation for the menu to refresh).

Interface Navigation

  • Arrow Keys: Navigate menus and lists.
  • Enter: Select an option or confirm an action.
  • Tab: Switch focus between different panels or UI elements.
  • q: Quit the current view/module or go back. Specific modules might have other exit keys.

Module Features (Overview)

  • Network Information:
    • Press r (or as indicated by the UI) to refresh network information.
    • View detailed information about your current network connection.
    • (Potentially shows security status, encryption, VPN status - requires implementation details).
  • Meta Manager:
    • Navigate files and directories.
    • View and manage metadata properties using exiftool.
  • SSH Connections:
    • Store and manage SSH connection details.
    • Launch SSH connections in a new terminal window.
    • Edit the connection database directly using lazysql if the option is presented.
  • File Explorer (SPF):
    • Utilizes spf for a rich TUI file browsing experience.
  • Blender Render:
    • (Details on how this module queues and manages Blender rendering tasks are needed).
  • Radio Tools:
    • Provides access to various radio utility applications.
    • May include toggles for SDR-related services.
    • Interfaces with tools like wavemon, mmng-ui, DSD-FME, etc., if they were installed (typically via the "Full" installation option).

Troubleshooting

  • Permissions: If TermTool or its modules can't write files or access resources, check permissions. termtool.db in /etc/termtool/ is made writable by the script, but custom configurations might differ.
  • Paths: Verify paths in any internal configuration if issues arise (though most should be handled by the install script).
  • Terminal Emulators: If modules launching new terminals fail, ensure gnome-terminal (or your system's default) is functioning correctly and has necessary permissions.
  • Radio Tools Not Working:
    • Ensure you selected the "Full" installation to install tools like DSD-FME, mmng-ui, and wavemon.
    • Verify that all their specific dependencies were installed correctly. The install.sh script attempts this, but complex builds can sometimes encounter issues on varied systems.
    • Check if SDR hardware is properly connected and udev rules are set up if needed (not handled by this script).
  • command not found after install: Your shell might not have recognized the new commands in /usr/local/bin immediately. Try opening a new terminal session, or run hash -r (for bash) or rehash (for zsh).

Development

TermTool is written in Go and leverages the following excellent libraries from Charm:

License

This software is distributed under the [Specify Your License Here, e.g., MIT License, GPLv3]. Please see the LICENSE file in the repository for full details.

Acknowledgements

  • The Charm team and contributors for their outstanding TUI libraries.
  • The developers of spf, lazysql, exiftool, wavemon, mmng-ui, DSD-FME, and all other tools integrated or used.
  • All contributors and testers who have helped improve TermTool.

Languages (from your snippet, presumably from GitHub's language detection):

  • Go 85.6%
  • Shell 14.4%