LINUX.ORG.RU

Часы на кривых Безье для рабочего стола KDE Plasma 5

 , , ,


2

1

Всем привет.

В плане изучения технологии Qt Quick и языка программирования QML захотелось мне реализовать какую-нибудь забавную вещицу для рабочего стола KDE Plasma 5. Это мой первый pet-проект на этом стеке технологий.

Два года назад на Хабрахабре я увидел интересный пост про часы на кривых Безье. Jack Frigaard, разработчик этого забавного скетча, использовал реализацию языка программирования Processing на JavaScript — Processing.js и поделился с общественностью своим кодом.

Я решил сделать из этого скетча анимированую «живую» обоину для KDE Plasma 5 и в итоге вот что получилось:

GIF-анимация
Демонстрация на YouTube (записывал на слабом ноутбуке с i3 первого поколения, так что во время записи были подлагивания и проседания FPS).

Репозиторий с исходным кодом:
https://github.com/EXL/BezierClock

Я немного увеличил функциональность, добавил возможность регулировки множества опций и параметров:

Скриншот настройки в KDE Plasma 5

Вышло довольно занимательно. Для тех, кто хочет попробовать поиграться с кривыми Безье сам, я приготовил пакеты:

[Пакет для Arch Linux] | [Зеркало]

Ставить командой pacman -U bezier-clock-v1.0-1-any.pkg.tar.xz или yaourt -U bezier-clock-v1.0-1-any.pkg.tar.xz, если кто не знает.

[Общий пакет для остальных дистрибутивов GNU/Linux] | [Зеркало]

Устанавливается он в пользовательскую директорию ~/.local/share/plasma/wallpapers/ выполнением скрипта package.sh. Удалить пакет можно либо ручками, либо выполнив ./package.sh -u.

После установки в настройках рабочего стола появляется новый тип обоев: Bezier Clock, выбираете его и активируете обоину.
Чтобы экономнее расходовать ресурсы CPU, я советую выставить FPS Limit в район 25, а Animation Duration примерно на 30.
В общем, колдовство с этими параметрами поможет добиться плавной анимации и на низких FPS.

Спасибо за внимание! Чуть не забыл:
На скриншоте Arch Linux со старой KDE Plasma 5.5.3, всё дефолтное
Шрифты: Nokia Standard, Ubuntu Condensed, Consolas; сглажены Infinality
Везде использую замечательную тему Breeze
В плане приложений KDE-стека активно использую Dolphin, Okular, Kate и Yakuake, в качестве плеера Clementine, видео смотрю vlc или mpv.
Браузер — Chrome, почтовик — Thunderbid.
Повседневная IDE — Qt Creator, но имеется и тяжёлая артиллерия на подхвате: Eclipse и Android Studio.

Скриншот с Qt Creator в процессе создания Bezier Clock.

Ещё варианты оформлений: [1], [2], [3].

>>> Просмотр (1366x768, 48 Kb)

★★★★★

Проверено: JB ()
Последнее исправление: cetjs2 (всего исправлений: 2)

записывал на слабом ноутбуке с i3 первого поколения, так что во время записи были подлагивания и проседания FPS

i3 уже мало чтобы сделать запись с рабочего стола без проседов? о_О
видимо слишком много сил отдается написанию плееров и нескучных де и слишком мало оптимизации таких базовых потребностей

sacred ★★
()
Ответ на: комментарий от sacred

i3 уже мало чтобы сделать запись с рабочего стола без проседов? о_О

Я через ffmpeg записывал вот так, возможно что-то сделал неправильно и нужно было выбрать другой кодек/контейнер. Говорят GStreamer лучше работает в этом плане.

EXL ★★★★★
() автор топика
Ответ на: комментарий от EXL

У меня не работает. Параметр height вообще игнорируется. margin'ы ломают отрисовку.

Можно и скрипт запуска отредачить

Linux такой Linux:

razr@razr ~ % which qtcreator
/usr/bin/qtcreator
razr@razr ~ % file /usr/bin/qtcreator
/usr/bin/qtcreator: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, stripped

RazrFalcon ★★★★★
()
Ответ на: комментарий от EXL

Самый годный вариант, для темной темы:

QMenuBar {
    background: transparent;
    spacing: 4;
}

QMenuBar::item {
    background: transparent;
    padding: 1;
}

QMenuBar::item:selected {
    background: gray;
}

QMenuBar::item:pressed {
    background: gray;
}

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

Хотя нет. По непонятным, магическим причинам, смена фона влияет на фон поля кода. Как они связаны - не понятно.

Походу баг QtC. Даже если подсунуть ему пустой qss, он всё равно поменяет фон поля кода.

RazrFalcon ★★★★★
()

Новая фича часов: жрать память и падать. Только с kde.

unt1tled ★★★★
()
Ответ на: комментарий от garik_keghen

Благодарю, раньше он был страшненький какой-то :)

Давно на Кеды не смотрел, но одной из причин, по которой я ушёл с кед на xfce был именно поломанный в пятых кедах по сравнению с четвёртыми Icons-only Task Manager. Не то, чтоб в «крыске» он был лучше, чем в пятых кедах, но там это всё как-то полегче, опять-же, нашлись свои преимущества, в общем обратно на кеды пока не хочу.

be_nt_all ★★
()

записывал на слабом ноутбуке с i3 первого поколения, так что во время записи были подлагивания и проседания FPS

современное программирование и его результаты во все поля. Коре И-3 им слабый ноут, зажрались, да так, что просто закапывать

Kompilainenn ★★★★★
()
Ответ на: комментарий от be_nt_all

Да я сам сижу на xfce. Последний раз использовал KDE в августе 2015 г. :)

garik_keghen ★★★★★
()

ты наркоман штоле?

IceD
()
Ответ на: комментарий от RazrFalcon

Походу баг QtC. Даже если подсунуть ему пустой qss, он всё равно поменяет фон поля кода.

Возможно встроенная тёмная тема тупо на QSS сделана. И при другом QSS она дропается. Надо найти в сорцах QSS-файл, отвечающий за тему и вносить изменения выше уже туда.

EXL ★★★★★
() автор топика
Ответ на: комментарий от queen3

это да, у меня в кедах были дёргания периодические при выставлении вертикальной синхронизации в настройках кед, в гномах и прочем всё хорошо

amorpher ★★★★★
()
Ответ на: комментарий от amorpher

Дай для кед пожалуйста.

EXL ★★★★★
() автор топика
Ответ на: комментарий от deathangel908

В текущей плазме арча баг, из-за которой настройки из конфига этих и любых обоев тупо не читаются. И при первом запуске всё сброшено в нули.

Пока отправлять никуда не буду. Баг зарепортил.

EXL ★★★★★
() автор топика
Последнее исправление: EXL (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.