A personal, terminal-based dashboard built with the Python Textual framework. This application integrates your calendar, tasks, service statuses, and common command-line tools into a single, efficient, and navigable interface.

- Home Tab: A consolidated view displaying your
gcalcliagenda andtaskbookitems side-by-side. - Interactive Taskbook: A dedicated tab to add, check/uncheck, and delete tasks and notes from
taskbookwithout leaving the dashboard. - Service Status Monitor: A simple monitor to check if a specified process (e.g.,
copyparty) is running. - Disk Management: Displays a clean, formatted overview of disk usage by running the
dufcommand. - Tool Launcher: Quickly launch external terminal applications like a task manager (
btop) and a file explorer (superfile). - Keyboard Navigation: Uses home-row keys (
h,b,s,l,f) to switch between tabs for quick navigation.
This dashboard acts as a frontend for several powerful command-line tools. You must install them for the dashboard to be fully functional.
textualpsutil
gcalcli: Required for the Calendar pane.- Note: You must run
gcalcliat least once from your terminal to authorize it with your Google account.
- Note: You must run
tb(taskbook): Required for all task and note functionality.duf: Required for the Disk Management tab.btop(orbtop4win): Used by the "Task Manager" button.superfile(asspf): Used by the "File Explorer" button.
-
Clone the Repository
git clone https://github.com/harsha260/Dashboard.git cd Dashboard -
Set up a Virtual Environment (Recommended)
python -m venv .venv source .venv/bin/activate # On Windows use: .venv\Scripts\activate
-
Install Python Dependencies Create a
requirements.txtfile with the following content:textual psutil
Then, install the packages:
pip install -r requirements.txt
-
Install External Tools Use your system's package manager (e.g., Homebrew, APT, Pacman) to install the CLI tools listed in the Prerequisites section. For example, on macOS:
brew install gcalcli taskbook duf btop superfile
Once all prerequisites and dependencies are installed, run the application from the root directory:
python main.pyThe following keybindings are available for navigation and basic functions:
| Key | Action | Description |
|---|---|---|
d |
toggle_dark |
Toggle between light and dark modes. |
q |
quit |
Quit the application. |
h |
switch_tab('home-tab') |
Switch to the Home tab. |
b |
switch_tab('taskbook-tab') |
Switch to the Taskbook tab. |
s |
switch_tab('services-tab') |
Switch to the Services tab. |
l |
switch_tab('tools-tab') |
Switch to the Launch Tools tab. |
f |
switch_tab('disk-management') |
Switch to the Disk Management tab. |
- Tool Executable Names: The script uses specific command names like
btop4winandspf. If your executables are named differently (e.g.,btop), you will need to edit theon_button_pressedmethod inmain.pyto match. - Service Monitoring: The service monitor is hardcoded to check for a process named
copyparty. To monitor a different service, change this name in theupdate_copyparty_statusfunction inmain.py. - Calendar Errors: The calendar widget includes specific error handling for a missing
gcalclior a commonpydanticdependency issue, and will guide you on how to fix it.