desktop-dashboard — рабочий стол Антона как панель мониторинга

Рабочий стол ноутбука (Acer Nitro, Ubuntu 24.04, X11/GNOME) целиком занят одним окном conky (desktop.conf): часы, CPU (кольцо 16 ядер + по-ядерные полосы), GPU RTX 4060, память и своп, оба NVMe с крупнейшими папками, сеть Wi-Fi, температуры и кулер, мусор/кэш, нагрузка по приложениям (браузер, Java/Gradle, Claude, палас, Docker…). Каждый датчик — светофор (зелёный/жёлтый/красный), строка у часов перечисляет, что именно красное.

Принцип: это рабочий инструмент, не картинка — каждая цифра сверяется с системой (df, free, nvidia-smi, hwmon, ps, nmcli); сумма папок + «вне списка» = занято на диске.

Файлы

Файл Назначение
desktop.conf конфиг conky: окно типа desktop 1920×1080, непрозрачное, lua_load desktop.lua
desktop.lua 3 строки: DREAMCORE_LAYOUT="desktop" + dofile monitor.lua
monitor.lua вся логика: палитра и светофор (lvl/report/paint), блоки, два макета (стол / компактный виджет), неон-слой, мышь
monitor.conf компактный виджет 360 px (не запущен, оставлен)
disk-dirs.sh сборщик размеров папок и мусора (sudo -n du по ВЫДЕЛЕННЫМ блокам) → ~/.cache/conky/{dirs-root,dirs-data,junk}.txt; таймер раз в 30 мин
systemd/conky-disk-dirs.{service,timer} таймер сборщика (копия живого ~/.config/systemd/user/)
conky-desktop.desktop автозапуск (копия живого ~/.config/autostart/)
polycore/ библиотека Cairo-виджетов (MIT, github.com/philer/polycore)
wm-move.py перетаскивание для режима виджета

Установка на чистой машине

git clone https://git.oleks.space/anton/desktop-dashboard ~/.config/conky
bash ~/.config/conky/install.sh      # автозапуск + таймер + первый сбор + запуск

Требования: conky-all (с Lua/Cairo/NVIDIA), xdotool, python3-xlib, nvidia-smi, lm-sensors, nmcli, sudo без пароля для du.

Отладка

MONITOR_DEBUG=1 conky -c desktop.conf — печатает события мыши, зоны и загрузку папок. Снимок окна из-под других окон: python3 tools/capture.py /tmp/desk.png.

Известное

  • Имена nvme0n1/nvme1n1 меняются между загрузками — устройство берётся из lsblk при старте.
  • Переменные conky ${wireless_*}, ${addr}, ${battery_percent} на этой сборке пусты/неточны — читаются nmcli/ip/sysfs.
  • nvidia-smi power.limit = N/A → лимит 75 Вт зашит.
  • Иконки стола (ding) лежат ПОД панелью, поэтому папка стола пуста и show-home/trash/volumes выключены.
  • История решений: anton/nitro-configetc/conky/README.md.

Живые кнопки (2026-09-12)

Кнопка появляется только там, где есть что чинить (в зелёном ряду её нет). Действия — actions.sh <имя>; необратимые («Оставить 2» снимков, «Снять» процесс) требуют второго нажатия в течение 5 с («Точно? ещё раз»). Пока идёт — «идёт…», после — «готово ✓»; журнал нажатий ~/.cache/conky/actions.log, состояние action-<имя>.state.

Кнопка Где Что делает
Почистить Мусор и кэш → итого nitro-hygiene.py clean + кэши неработающих клон-браузеров + nvidia/thumbnails
Очистить Gradle ~/.gradle/caches (пересоберётся)
Освободить Docker неиспользуемые образы + кэш сборки; тома не трогает
Оставить 2 Снимки Timeshift удалить старые снимки, оставить 2 (подтверждение)
Закрыть фон Нагрузка → Claude остановить фоновые сессии claude --bg, вкладки не трогает
Снять Нагрузка → жёлтая/красная группа завершить самый тяжёлый процесс группы (подтверждение)
Сбросить своп Память → своп swapoff/swapon, только если свободной памяти больше, чем занято в свопе

⚠️ Окно должно быть own_window_type = normal: тип desktop у conky не принимает события мыши вовсе.

S
Description
Рабочий стол = панель мониторинга (conky + polycore): CPU/GPU/RAM/NVMe/папки/мусор/нагрузка, светофор
Readme
163 KiB
Languages
Lua 92.8%
Shell 5.8%
Python 1.4%