- Go 75.4%
- Shell 24.6%
| blenderRender | ||
| forestTrees | ||
| metaManager | ||
| radioManager | ||
| sshManager | ||
| go.mod | ||
| go.sum | ||
| install.sh | ||
| log.ans | ||
| main.go | ||
| README.md | ||
| termtool | ||
| termtool.code-workspace | ||
| termtool.db | ||
| termtool.png | ||
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-perlon Debian,perl-Image-ExifToolon Fedora)go(Golang, if building TermTool from source or installinglazysqlviago install)make,gcc(and other build tools, if buildingspfor 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(formmng-ui)mmng-ui(POCSAG/Flex Pager Decoder UI)multimon-ng(Digital mode decoder, often used withmmng-ui)- Dependencies for
DSD-FME(Digital Speech Decoder - FME fork), includingcmake, development libraries for audio, SDR, etc.
Installation Process
-
Clone the Repository or Download the Release:
git clone <your-repository-url> cd <repository-directory>Ensure the
install.shscript is executable:chmod +x install.sh -
Run the Installation Script: Execute the script with
sudoprivileges:sudo ./install.shThe installation script will:
- Ask you to choose between a Basic or Full installation:
- Basic Install: Installs TermTool,
spf, andlazysql. - Full Install: Installs everything from Basic, plus
wavemon,mmng-ui,DSD-FME, and their respective dependencies.
- Basic Install: Installs TermTool,
- Detect your distribution (Debian-based or Fedora) and use the appropriate package manager (
aptordnf). - Check for core dependencies and offer to install any that are missing.
- Install TermTool,
spf, andlazysqlto/usr/local/bin/. - If "Full" install is chosen, it will proceed to install
wavemon,mmng-ui(viapipx), and build/installDSD-FMEfrom source along with its dependencies likembelibanditpp. - Create a configuration directory at
/etc/termtool/. - Copy
termtool.dbto/etc/termtool/termtool.dbif found in the script directory. - Create a GNOME desktop entry (
.desktopfile) for easy launching from application menus. - Set up appropriate permissions.
- Ask you to choose between a Basic or Full installation:
Updating TermTool
To update the main termtool application binary if you've made changes and rebuilt it:
-
Ensure your new
termtoolexecutable is in the script directory (ormain.gois present for the script to build it). -
Rerun the installation script:
sudo ./install.shThe script will overwrite the existing
termtoolbinary in/usr/local/bin/.Note: Rerunning the script will not automatically update
spf,lazysql, or source-built components likeDSD-FMEif 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 theuninstall.shscript before rerunninginstall.sh. Formmng-ui,pipx install mmng-uioften handles upgrades.
Uninstallation
An uninstall.sh script is provided to remove TermTool and its directly installed components.
- Ensure the
uninstall.shscript is executable:chmod +x uninstall.sh - Run the uninstallation script with
sudo:
The script will guide you through removing binaries, configuration files, and desktop entries installed bysudo ./uninstall.shinstall.sh. It will not automatically remove system-wide dependencies installed via your package manager.
Usage
Launching TermTool
- Type
termtoolin 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).
- Press
- 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
lazysqlif the option is presented.
- File Explorer (SPF):
- Utilizes
spffor a rich TUI file browsing experience.
- Utilizes
- 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.dbin/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, andwavemon. - Verify that all their specific dependencies were installed correctly. The
install.shscript 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).
- Ensure you selected the "Full" installation to install tools like
command not foundafter install: Your shell might not have recognized the new commands in/usr/local/binimmediately. Try opening a new terminal session, or runhash -r(for bash) orrehash(for zsh).
Development
TermTool is written in Go and leverages the following excellent libraries from Charm:
- Charm Bubbletea: For the core TUI framework (The Elm Architecture).
- Charm Bubbles: For pre-built TUI components (spinners, text inputs, etc.).
- Charm Lipgloss: For styling TUI elements with flair.
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%