{"id":31059851,"url":"https://github.com/olegegoism/symo","last_synced_at":"2026-06-15T20:31:23.914Z","repository":{"id":292905373,"uuid":"982319830","full_name":"OlegEgoism/SyMo","owner":"OlegEgoism","description":"SyMo system monitoring and power management application with a tray icon.","archived":false,"fork":false,"pushed_at":"2025-09-13T19:32:27.000Z","size":3214,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-13T21:28:08.797Z","etag":null,"topics":["app","application","cpu","disk","keyboard","linux","linux-app","log","logging","monitoring","network","os","power","ram","real-time","startup-app","system","system-monitoring","ubuntu","work"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OlegEgoism.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-12T17:47:03.000Z","updated_at":"2025-09-13T19:32:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"bff89ebe-8dbc-4211-b149-b27ddca68659","html_url":"https://github.com/OlegEgoism/SyMo","commit_stats":null,"previous_names":["olegegoism/symo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/OlegEgoism/SyMo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OlegEgoism%2FSyMo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OlegEgoism%2FSyMo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OlegEgoism%2FSyMo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OlegEgoism%2FSyMo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OlegEgoism","download_url":"https://codeload.github.com/OlegEgoism/SyMo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OlegEgoism%2FSyMo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275238713,"owners_count":25429484,"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","status":"online","status_checked_at":"2025-09-15T02:00:09.272Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["app","application","cpu","disk","keyboard","linux","linux-app","log","logging","monitoring","network","os","power","ram","real-time","startup-app","system","system-monitoring","ubuntu","work"],"created_at":"2025-09-15T09:47:32.701Z","updated_at":"2026-06-15T20:31:23.902Z","avatar_url":"https://github.com/OlegEgoism.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SyMo ([RU](README_RU.md))\n\n\u003cimg src=\"logo.png\" width=\"96\" alt=\"SyMo logo\" /\u003e\n\nSyMo is a lightweight GTK Linux tray app for monitoring system metrics, controlling power actions, and sending notifications to Telegram/Discord.\n\n## Minimal Project Description\n\n- Tray monitor for Linux desktop (CPU/RAM/Swap/Disk/Network/Uptime).\n- Quick power actions: shutdown, reboot, lock, timer.\n- Notifications from Discord, Telegram.\n\n## Features\n\n- Live system monitoring:\n    - CPU load and temperature;\n    - RAM and swap usage;\n    - disk usage;\n    - network speed (download/upload);\n    - uptime;\n    - keyboard and mouse activity counters.\n- Configurable tray menu:\n    - show/hide menu items;\n    - reorder menu items by drag-and-drop in Settings.\n- Per-metric graph windows (CPU, RAM, Swap, Disk, Network, Keyboard, Mouse).\n  - Interactive controls in graph windows:\n    - mouse wheel: horizontal zoom;\n    - left mouse button drag: horizontal pan;\n    - mouse hover: tooltip near cursor with timestamp and metric values for the nearest point.\n- Power controls:\n    - shutdown;\n    - reboot;\n    - lock screen;\n    - delayed execution with scheduler/timer.\n- Notifications:\n    - Telegram bot integration;\n    - Discord webhook integration.\n  - Telegram bot commands:\n    - `/status` — current system status;\n    - `/screenshot` — take a desktop screenshot and send it to Telegram.\n- Multi-language interface.\n\n## Supported UI Languages\n\n- 🇷🇺 Russian (`ru`)\n- 🇬🇧 English (`en`)\n- 🇨🇳 Chinese (`cn`)\n- 🇩🇪 German (`de`)\n- 🇮🇹 Italian (`it`)\n- 🇪🇸 Spanish (`es`)\n- 🇹🇷 Turkish (`tr`)\n- 🇫🇷 French (`fr`)\n\n## Repository Structure\n\n```text\nSyMo/\n├─ app.py                    # thin launcher\n├─ app_core/                 # core application logic\n│  ├─ app.py                 # runtime, tray, menu, graphs, updates\n│  ├─ dialogs.py             # settings dialog\n│  ├─ power_control.py       # power commands and timers\n│  ├─ system_usage.py        # system metrics collection\n│  ├─ click_tracker.py       # keyboard/mouse counters\n│  ├─ localization.py        # i18n helpers\n│  ├─ language.py            # translation dictionaries\n│  ├─ constants.py           # constants and config/log paths\n│  └─ logging_utils.py       # log rotation helpers\n├─ notifications/\n│  ├─ telegram.py            # Telegram notifier + command polling\n│  └─ discord.py             # Discord webhook notifier\n├─ tests/                    # pytest suites\n├─ build.sh                  # Nuitka build (standalone + onefile)\n├─ uninstall-symo.sh         # removes artifacts/desktop files/binaries\n├─ requirements.txt\n├─ logo.png\n├─ img.png\n└─ README.md\n```\n\n## Requirements\n\n- Linux desktop environment with GTK3 + AppIndicator (or Ayatana AppIndicator).\n- Python 3.10+ (recommended).\n\n### Python dependencies\n\n```bash\npip install -r requirements.txt\n```\n\n### Run in Development Mode\n\n```bash\npython3 app.py\n```\n\n### Install dependencies (dev)\n\n```bash\nsudo apt update\nsudo apt install -y \\\n  python3-gi python3-gi-cairo gir1.2-gtk-3.0 gir1.2-appindicator3-0.1 \\\n  gnome-shell-extension-appindicator \\\n  build-essential libgirepository1.0-dev gir1.2-glib-2.0 \\\n  gobject-introspection pkg-config libcairo2-dev \\\n  gnome-screenshot scrot grim imagemagick\npip install -r requirements.txt\n```\n\n### Install as desktop application\nRun:\n\n```bash\nchmod +x build.sh\n./build.sh\n```\n\nCheck output:\n\n```bash\nls -la SyMo-bundle\n```\n\n## Uninstall\n\n```bash\nchmod +x uninstall-symo.sh\n./uninstall-symo.sh\n```\n\n## Tests\n\n```bash\npytest -q\n```\n\n## Contact\n\n- Author: [OlegEgoism](https://github.com/OlegEgoism)\n- Repository: \u003chttps://github.com/OlegEgoism/SyMo\u003e\n- Telegram: [@OlegEgoism](https://t.me/OlegEgoism)\n- Email: olegpustovalov220@gmail.com\n\n\u003cimg src=\"img.png\" width=\"960\" alt=\"SyMo preview\" /\u003e\n\n## Video on YouTube:\n\n[![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=for-the-badge\u0026logo=youtube\u0026logoColor=white)](https://youtube.com/shorts/X1tlQ4XuLSM?feature=share)\n[![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=for-the-badge\u0026logo=youtube\u0026logoColor=white)](https://youtu.be/zvdoo9JA88k)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folegegoism%2Fsymo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Folegegoism%2Fsymo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folegegoism%2Fsymo/lists"}