Claude-Session: https://claude.ai/code/session_016EtV5PiMstowSvqDytU5xY
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-config→etc/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 не принимает события мыши вовсе.