{"id":25188597,"url":"https://github.com/kleinpanic/tui-dashboard","last_synced_at":"2025-07-04T13:35:30.872Z","repository":{"id":257989571,"uuid":"864781190","full_name":"kleinpanic/tui-dashboard","owner":"kleinpanic","description":"a tui dashboard written in python for minimal machines. Displays some system info, some weather info, stock info, and works with the todo app.","archived":false,"fork":false,"pushed_at":"2024-10-29T05:47:42.000Z","size":38,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-09T20:36:41.112Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kleinpanic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-29T06:27:52.000Z","updated_at":"2024-10-29T05:47:45.000Z","dependencies_parsed_at":"2025-02-09T20:39:47.539Z","dependency_job_id":null,"html_url":"https://github.com/kleinpanic/tui-dashboard","commit_stats":null,"previous_names":["kleinpanic/tui-dashboard"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kleinpanic%2Ftui-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kleinpanic%2Ftui-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kleinpanic%2Ftui-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kleinpanic%2Ftui-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kleinpanic","download_url":"https://codeload.github.com/kleinpanic/tui-dashboard/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247157276,"owners_count":20893221,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-09T20:29:15.843Z","updated_at":"2025-04-04T10:14:27.051Z","avatar_url":"https://github.com/kleinpanic.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DashboardApp\n\nA 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.\n\n![DashboardApp Logo](path_to_logo_image) \u003c!-- Optional: Add a logo if available --\u003e\n\n## Table of Contents\n- [Features](#features)\n- [Prerequisites](#prerequisites)\n- [Installation](#installation)\n- [Usage](#usage)\n  - [Command-Line Arguments](#command-line-arguments)\n  - [Key Bindings](#key-bindings)\n- [Configuration](#configuration)\n  - [Stocks](#stocks)\n  - [Weather](#weather)\n  - [Tasks](#tasks)\n- [Tasks Integration](#tasks-integration)\n- [Tasks File Format](#tasks-file-format)\n- [Supported Terminals](#supported-terminals)\n- [Contributing](#contributing)\n- [License](#license)\n- [Credits](#credits)\n\n## Features\n- **Real-Time System Information:** Monitor CPU, memory, swap, disk usage, network I/O, number of processes, uptime, and IP addresses.\n- **Current Weather Information:** Fetch and display weather data based on your IP-based location with intelligent clothing recommendations.\n- **Task Management:** Integrate with a robust text-based task system to manage your to-dos seamlessly.\n- **Stock Tracking:** Monitor stock prices using configurable stock symbols and display them concisely.\n- **ASCII-Styled Interface:** Enjoy a visually appealing retro terminal experience with custom-designed ASCII art.\n- **Dynamic Layout Modes:**\n  - **Tiling Mode:** View multiple information panels simultaneously for a comprehensive overview.\n  - **Monocle Mode:** Focus on one information panel at a time with easy navigation between panels.\n- **Graceful Exit:** Exit the application with a beautifully rendered ASCII art goodbye message.\n- **Version Information:** Easily check the application version using the `--version` argument.\n\n## Prerequisites\nBefore installing DashboardApp, ensure your system meets the following requirements:\n\n- **Python 3.x** installed\n- **Git** installed (optional but recommended for cloning the repository)\n- **Supported Terminal** (see [Supported Terminals](#supported-terminals))\n- **Todo Task Manager:** DashboardApp integrates with the [todo_task_manager](https://github.com/kleinpanic/todo_task_manager) for task management. Ensure it's installed and configured.\n\n## Installation\n\n### 1. Clone the Repository\n```bash\ngit clone https://github.com/kleinpanic/tui-dashboard.git\ncd tui-dashboard\n```\n\n### 2. Run the Install Script\n```bash\nchmod +x install.sh\n./install.sh\n```\n\nThe install script will:\n- Check and install Python 3 if it's missing.\n- Set up a Python virtual environment and install necessary dependencies.\n- Install utilities and fonts required for optimal ASCII graphics rendering.\n- Detect and inform you about your shell and terminal type for compatibility.\n\n### 3. Install Todo Task Manager\nDashboardApp relies on the [todo_task_manager](https://github.com/kleinpanic/todo_task_manager) for task management functionalities. To install it:\n\n```bash\ngit clone https://github.com/kleinpanic/todo_task_manager.git\ncd todo_task_manager\n# Follow the installation instructions provided in the todo_task_manager repository\n```\n\nEnsure that the `todo_task_manager` is properly installed and configured before running DashboardApp to enable full task management capabilities.\n\n## Usage\n\n### Running the Application\n1. **Activate the Virtual Environment:**\n   ```bash\n   source venv/bin/activate\n   ```\n\n2. **Start the Dashboard:**\n   ```bash\n   python3 tui-dashboard.py\n   ```\n\n### Command-Line Arguments\n- **Display Version:**\n  ```bash\n  python3 tui-dashboard.py --version\n  ```\n  This will print the current version of DashboardApp and exit.\n\n### Key Bindings\n- `m`: Switch to **Monocle Mode** (focus on one window at a time).\n- `t`: Switch to **Tiling Mode** (view all windows simultaneously).\n- `j`: Navigate to the **next window** in Monocle Mode.\n- `k`: Navigate to the **previous window** in Monocle Mode.\n- `q`, `Q`, or `Esc`: **Quit** the application gracefully with an ASCII art goodbye message.\n\n## Configuration\n\n### Stocks\nConfigure stock symbols in `~/.config/dailyapp/conf.conf`:\n```ini\n[settings]\nstocks=AAPL,GOOGL,TSLA\n```\n- **stocks:** Comma-separated list of stock symbols you wish to track.\n\n### Weather\nThe application fetches weather data based on your IP location. Ensure you have an active internet connection for accurate and timely information.\n\n### Tasks\nTasks are managed via the [todo_task_manager](https://github.com/kleinpanic/todo_task_manager) and stored in `.local/share/todo/tasks.txt`. Ensure this file exists and follows the correct format as specified below.\n\n## Tasks Integration\n\nDashboardApp seamlessly integrates with the [todo_task_manager](https://github.com/kleinpanic/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.\n\n### Setting Up\n1. **Install Todo Task Manager:**\n   Follow the installation instructions in the [todo_task_manager repository](https://github.com/kleinpanic/todo_task_manager).\n\n2. **Configure Tasks File:**\n   Ensure that your tasks are properly formatted and stored in `.local/share/todo/tasks.txt`.\n\n3. **Customize Tasks Functionality:**\n   - **Using Todo Task Manager:** Use the todo task manager as-is to manage your tasks efficiently.\n   - **Custom Integration:** If you prefer not to use the todo task manager, you can modify the `tasks_info` method in `dashboard.py` to suit your preferred task management system.\n\n## Tasks File Format\n\nThe task manager expects tasks to be stored in `.local/share/todo/tasks.txt`. Each line should follow the format:\n\n```\n\u003cNumber\u003e    \u003cName\u003e    \u003cCategory\u003e    \u003cPriority\u003e    \u003cCompletion (1 or 0)\u003e    \u003cDue Date\u003e    \u003cRecurrence\u003e\n```\n\n**Example:**\n```\n1    Finish report    Work    High    0    2024-10-20    Weekly\n```\n\n- **Number:** Unique identifier for the task.\n- **Name:** Description of the task.\n- **Category:** Category or project the task belongs to.\n- **Priority:** Priority level (e.g., High, Medium, Low).\n- **Completion:** `1` indicates completed (`[X]`), `0` indicates not completed (`[ ]`).\n- **Due Date:** Deadline for the task.\n- **Recurrence:** Recurrence pattern (e.g., Daily, Weekly, None).\n\n**Note:** This functionality is powered by the [todo_task_manager](https://github.com/kleinpanic/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.\n\n## Supported Terminals\n\nDashboardApp has been tested and works on the following terminals:\n\n- `xterm`\n- `gnome-terminal`\n- `iTerm2` (macOS)\n- `tmux`\n- `screen`\n- `rxvt`\n- `st`\n- `alacritty`\n- Any standard Linux terminal (`linux`, `ansi`, etc.)\n\n**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.\n\n## Contributing\n\nContributions are welcome! To contribute to DashboardApp:\n\n1. **Fork the Repository:**\n   ```bash\n   git clone https://github.com/kleinpanic/tui-dashboard.git\n   cd tui-dashboard\n   ```\n\n2. **Create a New Branch:**\n   ```bash\n   git checkout -b feature/my-feature\n   ```\n\n3. **Commit Your Changes:**\n   ```bash\n   git commit -am 'Add new feature'\n   ```\n\n4. **Push the Branch:**\n   ```bash\n   git push origin feature/my-feature\n   ```\n\n5. **Open a Pull Request:**\n   Go to the [GitHub repository](https://github.com/kleinpanic/tui-dashboard) and open a pull request.\n\n**Please ensure that:**\n- Changes are well-documented.\n- Code is properly commented.\n- Tests are added for new features (if applicable).\n\n## License\n\nThis project is licensed under the MIT License. See the `LICENSE` file for more details.\n\n## Credits\n\n- **Figlet** and **Toilet** for ASCII graphics.\n- **Python** community for the robust ecosystem.\n- Weather data courtesy of **wttr.in** and **Open-Meteo**.\n- Stock data fetched using **yfinance**.\n- Task management powered by [todo_task_manager](https://github.com/kleinpanic/todo_task_manager).\n- Inspired by various terminal-based dashboard applications.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkleinpanic%2Ftui-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkleinpanic%2Ftui-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkleinpanic%2Ftui-dashboard/lists"}