A convergent clock application for Plasma.
- Alarms
- Stopwatch
- World Clocks
- Timers
- Project page: https://invent.kde.org/plasma-mobile/kclock
- File issues: https://bugs.kde.org/describecomponents.cgi?product=KClock
- Development channel: https://matrix.to/#/#plasmamobile:matrix.org
This will compile and install kclock, kclockd, and the plasmoids onto the system. When running kclock, make sure that kclockd is running first (it is configured to autostart in sessions).
mkdir build
cd build
cmake .. # add -DCMAKE_BUILD_TYPE=Release to compile for release
make
sudo make install
KClock is split into three components: kclock (front-end), kclockd (backend-daemon), and plasmoids.
The background daemon, which is configured to autostart. It has the following responsibilities:
- Schedule wakeups with PowerDevil, which handles waking from suspend for alarms and timers.
- Exposing alarms, timers, and settings models via a D-Bus interface.
- Alarm/Timer notifications and ringing audio.
- Indicator on system tray for pending alarms.
kclockd
exposes its API in D-Bus under the service name org.kde.kclockd
. Front-end applications like kclock
and its plasmoids completely depend on it for clock functionality, which allows alarms and timers to function in the background when the front-end applications are not running.
If PowerDevil is detected, it will use PowerDevil's scheduleWakeup feature to wakeup for alarm notifications.
If you want to disable this behaviour, pass the --no-powerdevil
option when launching kclockd. Note that while running in --no-powerdevil
mode, kclockd will fail to keep track of time if the system sleeps, which is quite common for mobile devices.
kclockd
will automatically start up in --no-powerdevil
mode and not have suspend waking functionality if:
- PowerDevil is not running (ex. on GNOME, Phosh, etc.)
- On BSD system
After installing, five D-Bus interface XML files are copied to the KDE D-Bus interface directory.
These are:
- org.kde.kclockd.KClockSettings.xml
- org.kde.kclockd.Alarm.xml
- org.kde.kclockd.AlarmModel.xml
- org.kde.kclockd.TimerModel.xml
- org.kde.kclockd.Timer.xml
These files can be used to generate the D-Bus adaptor. Alarm and Timer will be registered under path "/Alarms/" or "/Timers/" + its uuid's Id128 string representation (ex. 8c7d59b3befa49a48853959fe7e025d7). However, the "remove" slots in AlarmModel or TimerModel only accept its normal representation, (ex. {8c7d59b3-befa-49a4-8853-959fe7e025d7}). One can get the normal string by calling the getUUID() method in each alarm/timer. Timer is in seconds precision, but you may want to call elapsed() method every 500ms or so to avoid going out of sync with kclockd.
A front end for kclockd written in Kirigami for Plasma Mobile and the desktop.
Run with these environment variables to have mobile controls:
QT_QUICK_CONTROLS_MOBILE=true kclock
Various plasmoids for kclockd exist, and some also communicate with KWeather.
Currently we have two plasmoids, expect more in the future.
Intended to provide widgets
similar to those you can find on mainstream mobile platforms.