A comprehensive terminal-based dashboard application for UNIX-like systems that displays real-time system information, weather updates, task management, and stock data in an elegant ASCII-styled interface. Compatible with various Linux distributions and macOS, DashboardApp offers a retro yet functional experience for monitoring essential metrics directly from your terminal.
- Features
- Prerequisites
- Installation
- Usage
- Configuration
- Tasks Integration
- Tasks File Format
- Supported Terminals
- Contributing
- License
- Credits
- Real-Time System Information: Monitor CPU, memory, swap, disk usage, network I/O, number of processes, uptime, and IP addresses.
- Current Weather Information: Fetch and display weather data based on your IP-based location with intelligent clothing recommendations.
- Task Management: Integrate with a robust text-based task system to manage your to-dos seamlessly.
- Stock Tracking: Monitor stock prices using configurable stock symbols and display them concisely.
- ASCII-Styled Interface: Enjoy a visually appealing retro terminal experience with custom-designed ASCII art.
- Dynamic Layout Modes:
- Tiling Mode: View multiple information panels simultaneously for a comprehensive overview.
- Monocle Mode: Focus on one information panel at a time with easy navigation between panels.
- Graceful Exit: Exit the application with a beautifully rendered ASCII art goodbye message.
- Version Information: Easily check the application version using the
--versionargument.
Before installing DashboardApp, ensure your system meets the following requirements:
- Python 3.x installed
- Git installed (optional but recommended for cloning the repository)
- Supported Terminal (see Supported Terminals)
- Todo Task Manager: DashboardApp integrates with the todo_task_manager for task management. Ensure it's installed and configured.
git clone https://github.com/kleinpanic/tui-dashboard.git cd tui-dashboardchmod +x install.sh ./install.shThe install script will:
- Check and install Python 3 if it's missing.
- Set up a Python virtual environment and install necessary dependencies.
- Install utilities and fonts required for optimal ASCII graphics rendering.
- Detect and inform you about your shell and terminal type for compatibility.
DashboardApp relies on the todo_task_manager for task management functionalities. To install it:
git clone https://github.com/kleinpanic/todo_task_manager.git cd todo_task_manager # Follow the installation instructions provided in the todo_task_manager repositoryEnsure that the todo_task_manager is properly installed and configured before running DashboardApp to enable full task management capabilities.
-
Activate the Virtual Environment:
source venv/bin/activate -
Start the Dashboard:
python3 tui-dashboard.py
- Display Version: This will print the current version of DashboardApp and exit.
python3 tui-dashboard.py --version
m: Switch to Monocle Mode (focus on one window at a time).t: Switch to Tiling Mode (view all windows simultaneously).j: Navigate to the next window in Monocle Mode.k: Navigate to the previous window in Monocle Mode.q,Q, orEsc: Quit the application gracefully with an ASCII art goodbye message.
Configure stock symbols in ~/.config/dailyapp/conf.conf:
[settings] stocks=AAPL,GOOGL,TSLA- stocks: Comma-separated list of stock symbols you wish to track.
The application fetches weather data based on your IP location. Ensure you have an active internet connection for accurate and timely information.
Tasks are managed via the todo_task_manager and stored in .local/share/todo/tasks.txt. Ensure this file exists and follows the correct format as specified below.
DashboardApp seamlessly integrates with the todo_task_manager to display and manage tasks within the dashboard interface. This integration allows you to view, add, complete, and manage tasks without leaving the terminal environment.
-
Install Todo Task Manager: Follow the installation instructions in the todo_task_manager repository.
-
Configure Tasks File: Ensure that your tasks are properly formatted and stored in
.local/share/todo/tasks.txt. -
Customize Tasks Functionality:
- Using Todo Task Manager: Use the todo task manager as-is to manage your tasks efficiently.
- Custom Integration: If you prefer not to use the todo task manager, you can modify the
tasks_infomethod indashboard.pyto suit your preferred task management system.
The task manager expects tasks to be stored in .local/share/todo/tasks.txt. Each line should follow the format:
<Number> <Name> <Category> <Priority> <Completion (1 or 0)> <Due Date> <Recurrence> Example:
1 Finish report Work High 0 2024-10-20 Weekly - Number: Unique identifier for the task.
- Name: Description of the task.
- Category: Category or project the task belongs to.
- Priority: Priority level (e.g., High, Medium, Low).
- Completion:
1indicates completed ([X]),0indicates not completed ([ ]). - Due Date: Deadline for the task.
- Recurrence: Recurrence pattern (e.g., Daily, Weekly, None).
Note: This functionality is powered by the todo_task_manager built in C. To customize this functionality, either install the todo task manager or modify the tasks_info method in dashboard.py to adapt to your preferred task management system.
DashboardApp has been tested and works on the following terminals:
xtermgnome-terminaliTerm2(macOS)tmuxscreenrxvtstalacritty- Any standard Linux terminal (
linux,ansi, etc.)
Note: If you encounter display issues, ensure that your terminal supports ANSI escape codes and that required utilities and fonts are installed. Additionally, tools like figlet and toilet enhance the ASCII art experience.
Contributions are welcome! To contribute to DashboardApp:
-
Fork the Repository:
git clone https://github.com/kleinpanic/tui-dashboard.git cd tui-dashboard -
Create a New Branch:
git checkout -b feature/my-feature
-
Commit Your Changes:
git commit -am 'Add new feature' -
Push the Branch:
git push origin feature/my-feature
-
Open a Pull Request: Go to the GitHub repository and open a pull request.
Please ensure that:
- Changes are well-documented.
- Code is properly commented.
- Tests are added for new features (if applicable).
This project is licensed under the MIT License. See the LICENSE file for more details.
- Figlet and Toilet for ASCII graphics.
- Python community for the robust ecosystem.
- Weather data courtesy of wttr.in and Open-Meteo.
- Stock data fetched using yfinance.
- Task management powered by todo_task_manager.
- Inspired by various terminal-based dashboard applications.