DigiQClock: another Digital Clock

Moe uses fake transparency, but in a complex way; the application find which regions of he image contains the animation, and each region is shown in a different ,tiny, window

You can see this clearly if the background changes , as if there is a video behind the mascot

1 Like

I updated with some fixes and more CLI params, like font, hide seconds, frameless window…

2 Likes

Please download digiqclock-0.0.3-1.zip again - I made a small fix for showing date (forgot to mention that when you left click long on the time window, you can see a day / date string instead of the time until you release the mouse button down)

also here are the latest CLI params:

> ./DigiQClock --help
qml: 
The following CLI parameters may be passed when running from the command line:

--fg           ===> font color: friendly color names or hex string with # notation e.g. '#73D292' or 'green' - qoutes are required when using hex
--bg-start     ===> background start gradient color (same format as --fg parameter)
--bg-end       ===> background end gradient color (if you don't want gradient make sure to pass same value that you passed for --bg-start)
--offset-hours ===> e.g. for different time-zones (use minus sign or just plain number for forward e.g. '--offset-hours -3' or '--offset-hours 5')
--win-title    ===> use quotes for titles with spaces e.g. --win-title 'Los Angeles')
--font         ===> name of font .otf /.ttf file (must be in same folder as the executable)
--no-italics   ===> only need to add this flag (default is using italic font)
--24hrs        ===> only need to add this flag (default is 12hr AM/PM implied )
--hide-secs    ===> don't show seconds
--frameless    ===> borderless window
--hide-dimmer  ===> don't display the 'ghost' background 00:00:00 LED effect (good if you're not using monospaced fonts)

Here's a full example:

> ./DigiQClock --fg '#000000' --bg-start lightblue --bg-end lightblue --offset-hours -3 --win-title 'Los Angeles' --no-italics --24hrs
2 Likes

New version (0.0.4) with @zuMi 's icon and new CLI param to have blinking colon separator (also added new version of the DigitalDismay.otf font which is fixed to support the new blinking feature).

Also added some demo shell scripts to launch different color/config instances of the clock

(Bonus: MacOSX compiled version - see more details in the readme on github):

1 Like

Thanks.
When you maintain click on the clock, the date is shown. Is it possible to have this date localized using user’s locale? For exemple today’s in English is Mon September 15 2025 when in French it would be Lun. 15 septembre 2025.

try this new version (localized date string based on your locale language settings):

1 Like

Thanks! I just had to swap d & MMM in date string.

1 Like

new version 0.0.6-1:


added parameter for showing border:

–show-border ===> show a 1pt border of same color as foreground color

5 Likes

I was using the few hey commands in top post but it seems broken. Lately, only the time separator shows off. I managed to get the full clock by setting Look of Window to 20 instead 19 but then the content is smaller than usual.

You can also use the very useful “WindowTailor” app to change the look and feel of the DigiQClock window (available on HaikuDepot)

1 Like

Just tried. It also seems to behave strangely.

Ahoy @hey68you ,

I did not want to make other screenshot thread filling up with OFF TOPIC, so I report back here in apparent thread about DigiQClock.

I cloned the repo, and tailored a bit your example launch command

   user  ~    20:57    pkgman install hiqdock
  100% repochecksum-1 [65 bájt]
Ellenőrzőkód érvényesítése a tárolóhoz (BeSly Software Solutions)...done.
  100% repochecksum-1 [65 bájt]
Ellenőrzőkód érvényesítése a tárolóhoz (FatElk_64)...done.
  100% repochecksum-1 [65 bájt]
Ellenőrzőkód érvényesítése a tárolóhoz (Haiku)...done.
  100% repochecksum-1 [64 bájt]
Ellenőrzőkód érvényesítése a tárolóhoz (HaikuPorts)...done.
  100% repochecksum-1 [65 bájt]
Ellenőrzőkód érvényesítése a tárolóhoz (KapiX's Depot)...done.
  100% repochecksum-1 [71 bájt]
Ellenőrzőkód érvényesítése a tárolóhoz (LOTE)...done.
hiqdock-1.0.0-1 from repository system is already installed.
Nothing to do.
   user  ~    20:57    mkdir -pm 755 DigiQDock
   user  ~    21:01    cd ./DigiQDock
   user  ~/DigiQDock    21:01    git clone https://github.com/hey68you/digiQclock
Cloning into 'digiQclock'...
remote: Enumerating objects: 52, done.
remote: Counting objects: 100% (52/52), done.
remote: Compressing objects: 100% (52/52), done.
remote: Total 52 (delta 23), reused 0 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (52/52), 633.90 KiB | 2.71 MiB/s, done.
Resolving deltas: 100% (23/23), done.
   user  ~/DigiQDock    21:05    ls -ltr
total 6
drwxr-xr-x 1 user root 2048 jún.   17 21:05 digiQclock
   user  ~/DigiQDock    21:05    cd digiQclock; ls -ltr
total 688
-rw-r--r-- 1 user root   2226 jún.   17 21:05 README.md
-rw-r--r-- 1 user root 527575 jún.   17 21:05 digiQclock-0.0.4-mac.zip
-rw-r--r-- 1 user root  14609 jún.   17 21:05 digiQclock.qml
-rw-r--r-- 1 user root  36784 jún.   17 21:05 digiqclock-0.0.3-1.zip
-rw-r--r-- 1 user root  33338 jún.   17 21:05 digiqclock-0.0.4-1.zip
-rw-r--r-- 1 user root  33687 jún.   17 21:05 digiqclock-0.0.5-1.zip
-rw-r--r-- 1 user root  33936 jún.   17 21:05 digiqclock-0.0.6-1.zip
   user  ~/DigiQDock/digiQclock    21:06    
   user  ~/DigiQDock/digiQclock    21:06    
   user  ~/DigiQDock/digiQclock    21:06    less README.md
   user  ~/DigiQDock/digiQclock    21:09    cd ..
   user  ~/DigiQDock    21:11    ls
digiQclock  digiqclock-0.0.6-1
   user  ~/DigiQDock    21:11    cd digiqclock-0.0.6-1
   user  ~/DigiQDock/digiqclock-0.0.6-1    21:12    ./DigiQClock --fg yellow --bg-start green --bg-end darkgreen --offs
et-hours +2 --win-title 'Székesfehérvár' --no-italics --24hrs
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
qml: 
set font color to: yellow
qml: 
set bg start color to: green
qml: 
set bg end color to: darkgreen
qml: 
set hours offset: +2
qml: 
set widow title to: Székesfehérvár
qml: 
set no italics:
qml: 
set 24 hour time
OpenGL load add-on: /boot/system/add-ons/opengl/Software Pipe
OpenGL add-on registered: /boot/system/add-ons/opengl/Software Pipe
GalliumContext: CreateDisplay: Using llvmpipe (LLVM 12.0.1, 256 bits) driver.
qt.qpa.openglcontext: Created 0x845b103b40 based on requested QSurfaceFormat(version 2.1, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize -1, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::SwapBehavior::DoubleBuffer, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::OpenGLContextProfile::NoProfile)
qt.qpa.openglcontext: Created 0x845b5a4390 based on requested QSurfaceFormat(version 2.1, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize -1, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::SwapBehavior::DoubleBuffer, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::OpenGLContextProfile::NoProfile)
qt.qpa.openglcontext: Created 0x845b9c48a0 based on requested QSurfaceFormat(version 2.1, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize -1, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::SwapBehavior::DoubleBuffer, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::OpenGLContextProfile::NoProfile)
qt.qpa.openglcontext: Created 0x845b9c4900 based on requested QSurfaceFormat(version 2.1, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize -1, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::SwapBehavior::DoubleBuffer, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::OpenGLContextProfile::NoProfile)


Seems I must resolve the
qt.qpa.plugin: Could not find the Qt platform plugin “xcb” in “”

warning/error message first …

I tried out Orange Clock script as well – same result :

   user  ~/DigiQDock/digiqclock-0.0.6-1    21:38    ./orange-clock.sh
   user  ~/DigiQDock/digiqclock-0.0.6-1    21:40    qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
qml: 
set font color to: orange
qml: 
set bg start color to: #211E27
qml: 
set bg end color to: #211E27
qml: 
set widow title to: Orange Clock
OpenGL load add-on: /boot/system/add-ons/opengl/Software Pipe
OpenGL add-on registered: /boot/system/add-ons/opengl/Software Pipe
GalliumContext: CreateDisplay: Using llvmpipe (LLVM 12.0.1, 256 bits) driver.
qt.qpa.openglcontext: Created 0xb13e0f2ab0 based on requested QSurfaceFormat(version 2.1, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize -1, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::SwapBehavior::DoubleBuffer, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::OpenGLContextProfile::NoProfile)
qt.qpa.openglcontext: Created 0xb13e594360 based on requested QSurfaceFormat(version 2.1, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize -1, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::SwapBehavior::DoubleBuffer, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::OpenGLContextProfile::NoProfile)
qt.qpa.openglcontext: Created 0xb13e5943c0 based on requested QSurfaceFormat(version 2.1, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize -1, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::SwapBehavior::DoubleBuffer, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::OpenGLContextProfile::NoProfile)


1 Like

Here you are the program output in Terminal after the QT_DEBUG_PLUGINS exported

   user  ~/DigiQDock/digiqclock-0.0.6-1    21:51    export QT_DEBUG_PLUGINS=1
   user  ~/DigiQDock/digiqclock-0.0.6-1    21:56    ./DigiQClock --fg yellow --bg-start green --bg-end darkgreen --offset-hours +2 --win-title 'Székesfehérvár' --no-italics --24hrs
qt.core.plugin.factoryloader: checking directory path "/boot/system/add-ons/Qt6/platforms" ...
qt.core.plugin.factoryloader: looking at "libqvnc.so"
qt.core.plugin.loader: Found metadata in lib /boot/system/add-ons/Qt6/platforms/libqvnc.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "vnc"
        ]
    },
    "archlevel": 1,
    "className": "QVncIntegrationPlugin",
    "debug": false,
    "version": 395776
}


qt.core.plugin.factoryloader: Got keys from plugin meta data QList("vnc")
qt.core.plugin.factoryloader: looking at "libqvkkhrdisplay.so"
qt.core.plugin.loader: Found metadata in lib /boot/system/add-ons/Qt6/platforms/libqvkkhrdisplay.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "vkkhrdisplay"
        ]
    },
    "archlevel": 1,
    "className": "QVkKhrDisplayIntegrationPlugin",
    "debug": false,
    "version": 395776
}


qt.core.plugin.factoryloader: Got keys from plugin meta data QList("vkkhrdisplay")
qt.core.plugin.factoryloader: looking at "libqoffscreen.so"
qt.core.plugin.loader: Found metadata in lib /boot/system/add-ons/Qt6/platforms/libqoffscreen.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "offscreen"
        ]
    },
    "archlevel": 1,
    "className": "QOffscreenIntegrationPlugin",
    "debug": false,
    "version": 395776
}


qt.core.plugin.factoryloader: Got keys from plugin meta data QList("offscreen")
qt.core.plugin.factoryloader: looking at "libqminimalegl.so"
qt.core.plugin.loader: Found metadata in lib /boot/system/add-ons/Qt6/platforms/libqminimalegl.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "minimalegl"
        ]
    },
    "archlevel": 1,
    "className": "QMinimalEglIntegrationPlugin",
    "debug": false,
    "version": 395776
}


qt.core.plugin.factoryloader: Got keys from plugin meta data QList("minimalegl")
qt.core.plugin.factoryloader: looking at "libqminimal.so"
qt.core.plugin.loader: Found metadata in lib /boot/system/add-ons/Qt6/platforms/libqminimal.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "minimal"
        ]
    },
    "archlevel": 1,
    "className": "QMinimalIntegrationPlugin",
    "debug": false,
    "version": 395776
}


qt.core.plugin.factoryloader: Got keys from plugin meta data QList("minimal")
qt.core.plugin.factoryloader: looking at "libqhaiku.so"
qt.core.plugin.loader: Found metadata in lib /boot/system/add-ons/Qt6/platforms/libqhaiku.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "haiku"
        ]
    },
    "archlevel": 1,
    "className": "QHaikuExpIntegrationPlugin",
    "debug": false,
    "version": 395776
}


qt.core.plugin.factoryloader: Got keys from plugin meta data QList("haiku")
qt.core.plugin.factoryloader: looking at "libqeglfs.so"
qt.core.plugin.loader: Found metadata in lib /boot/system/add-ons/Qt6/platforms/libqeglfs.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "eglfs"
        ]
    },
    "archlevel": 1,
    "className": "QEglFSIntegrationPlugin",
    "debug": false,
    "version": 395776
}


qt.core.plugin.factoryloader: Got keys from plugin meta data QList("eglfs")
qt.core.plugin.factoryloader: checking directory path "/boot/home/DigiQDock/digiqclock-0.0.6-1/platforms" ...
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
qt.core.library: "/boot/system/add-ons/Qt6/platforms/libqhaiku.so" loaded library
qt.core.plugin.factoryloader: checking directory path "/boot/system/add-ons/Qt6/platformthemes" ...
qt.core.plugin.factoryloader: looking at "libqxdgdesktopportal.so"
qt.core.plugin.loader: Found metadata in lib /boot/system/add-ons/Qt6/platformthemes/libqxdgdesktopportal.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformThemeFactoryInterface.5.1",
    "MetaData": {
        "Keys": [
            "xdgdesktopportal",
            "flatpak",
            "snap"
        ]
    },
    "archlevel": 1,
    "className": "QXdgDesktopPortalThemePlugin",
    "debug": false,
    "version": 395776
}


qt.core.plugin.factoryloader: Got keys from plugin meta data QList("xdgdesktopportal", "flatpak", "snap")
qt.core.plugin.factoryloader: checking directory path "/boot/home/DigiQDock/digiqclock-0.0.6-1/platformthemes" ...
qt.core.plugin.loader: Found metadata in lib /boot/system/data/Qt6/qml/QtQuick/Window/libquickwindowplugin.so, metadata=
{
    "IID": "org.qt-project.Qt.QQmlEngineExtensionInterface",
    "archlevel": 1,
    "className": "QtQuick_WindowPlugin",
    "debug": false,
    "uri": [
        "QtQuick.Window"
    ],
    "version": 395776
}


qt.core.library: "/boot/system/data/Qt6/qml/QtQuick/Window/libquickwindowplugin.so" loaded library
qt.core.plugin.loader: Found metadata in lib /boot/system/data/Qt6/qml/QtQuick/Controls/Basic/libqtquickcontrols2basicstyleplugin.so, metadata=
{
    "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0",
    "archlevel": 1,
    "className": "QtQuickControls2BasicStylePlugin",
    "debug": false,
    "uri": [
        "QtQuick.Controls.Basic"
    ],
    "version": 395776
}


qt.core.library: "/boot/system/data/Qt6/qml/QtQuick/Controls/Basic/libqtquickcontrols2basicstyleplugin.so" loaded library
qt.core.plugin.loader: Found metadata in lib /boot/system/data/Qt6/qml/QtQuick/Templates/libqtquicktemplates2plugin.so, metadata=
{
    "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0",
    "archlevel": 1,
    "className": "QtQuickTemplates2Plugin",
    "debug": false,
    "uri": [
        "QtQuick.Templates"
    ],
    "version": 395776
}


qt.core.library: "/boot/system/data/Qt6/qml/QtQuick/Templates/libqtquicktemplates2plugin.so" loaded library
qml: 
set font color to: yellow
qml: 
set bg start color to: green
qml: 
set bg end color to: darkgreen
qml: 
set hours offset: +2
qml: 
set widow title to: Székesfehérvár
qml: 
set no italics:
qml: 
set 24 hour time
qt.core.plugin.factoryloader: checking directory path "/boot/system/add-ons/Qt6/accessiblebridge" ...
qt.core.plugin.factoryloader: checking directory path "/boot/home/DigiQDock/digiqclock-0.0.6-1/accessiblebridge" ...
qt.core.plugin.factoryloader: checking directory path "/boot/system/add-ons/Qt6/accessible" ...
qt.core.plugin.factoryloader: checking directory path "/boot/home/DigiQDock/digiqclock-0.0.6-1/accessible" ...
OpenGL load add-on: /boot/system/add-ons/opengl/Software Pipe
OpenGL add-on registered: /boot/system/add-ons/opengl/Software Pipe
GalliumContext: CreateDisplay: Using llvmpipe (LLVM 12.0.1, 256 bits) driver.
qt.qpa.openglcontext: Created 0x2181decb70 based on requested QSurfaceFormat(version 2.1, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize -1, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::SwapBehavior::DoubleBuffer, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::OpenGLContextProfile::NoProfile)
qt.qpa.openglcontext: Created 0x21823a2420 based on requested QSurfaceFormat(version 2.1, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize -1, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::SwapBehavior::DoubleBuffer, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::OpenGLContextProfile::NoProfile)
qt.qpa.openglcontext: Created 0x21823a2480 based on requested QSurfaceFormat(version 2.1, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize -1, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::SwapBehavior::DoubleBuffer, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::OpenGLContextProfile::NoProfile)



Any xcb related packages available

   user  ~    19:51    pkgman search xcb
Status  Name                     Description                                                     
-------------------------------------------------------------------------------------------------
        libx11_debuginfo         X.Org X11 library (debug info)                                  
        libxcb                   X.Org's C Bindings library                                      
        libxcb_debuginfo         X.Org's C Bindings library (debug info)                         
        libxcb_devel             X.Org's C Bindings library (development files)                  
        libxcb_source            X.Org's C Bindings library (source files)                       
        xcb_proto                X.Org's C Bindings protocol headers                             
        xcb_proto_source         X.Org's C Bindings protocol headers (source files)              
        xcb_util_keysyms         X C-language Bindings sample implementations                    
        xcb_util_keysyms_devel   X C-language Bindings sample implementations (development files)
        xcb_util_keysyms_source  X C-language Bindings sample implementations (source files)     
   user  ~    22:02    

I found not so much libqt6* files, however HaiQDock is installed from Besly64 repo, as you could see above

   user  ~    22:06    find /boot -name libqt6*
/boot/system/lib/libqt6keychain.so.1
/boot/system/lib/libqt6keychain.so.0.15.0
   user  ~    22:12    

It can be some qt6_*_devel package which one(s) is(are) missing, I assume those installs libraries …
No wonder, I’m not a developer :smiley: :lol:

===
End of Investigation – from my side

===

1 Like

I’m using the binary included in zip file on an up to date nightly (hrev59796) VM and it is still working… I just unzipped the file and moved the folder in /home/config/non-packaged/apps.
VM is using vesa driver obviously, so if there is a problem, it might be with use of accelerated drivers.

Confirmed working for me on the same hrev on VM - (also moved to /home/config/non-packaged/app - but don’t know if that was necessary) ?

1 Like

Check that you have Use software 2d context renderer checked in QML section of Platform tab in QtConfigurator and Qt6Configurator.

1 Like

Well,

I do not have installed that Qt6configurator at all.

Under Qt on Deskbar - I have : Qt6 Assistant, Qt6 Designer , Qt6 Linguist and Qt6 QDbusViewer. No more.

Which additional Qt6 poackage(s), I assume devel ones, should be installed to have this Q6Configurator ?

OK

1 Like