sebastian 6b9cb32534 feat: dual time zones, autostart, tray icon, config relocation, tests
- Dual clock (primary/secondary time zone) with IANA picker, persisted in XML
- AutoStartManager: macOS LaunchAgent (com.clouck.clock, RunAtLoad)
- Tray icon: template image, light/dark adaptation, toggle + quit menu
- ConfigManager: default path moved to QStandardPaths::AppConfigLocation
- Qt Test suite (ConfigManager, AutoStartManager) wired into CTest
- GitHub origin renamed to upstream; private Gitea repo as origin
2026-08-19 21:09:06 +03:00
2026-04-18 14:28:42 +08:00
2026-05-27 16:59:00 +08:00
2026-04-18 06:13:30 +08:00
2026-04-18 06:13:30 +08:00
2026-04-21 11:42:58 +08:00
2026-04-18 06:13:30 +08:00
2026-04-18 06:13:30 +08:00
2026-04-18 06:13:30 +08:00
2023-07-30 17:40:44 +08:00
2026-04-18 06:13:30 +08:00
2026-04-21 11:42:58 +08:00
2026-04-18 14:14:49 +08:00
2026-04-18 06:13:30 +08:00
2026-04-18 06:13:30 +08:00
2026-04-18 06:13:30 +08:00
2026-04-18 06:13:30 +08:00
2026-04-21 11:42:58 +08:00
2026-04-18 06:13:30 +08:00
2026-04-18 06:13:30 +08:00

☁ Clouck

Build Qt Release code size repo size

This project aims to build a cross-platform floating clock based on Qt6.

Motivation

When coding in full screen mode, I often forget the time. When on macOS / Linux, the clock on the menu bar is too small to be noticeable, so is the clock on Windows.

clock

Features

  • Cross Platform
    • MacOS
    • Windows
    • Linux
  • Main Window
    • Always On Top
    • Frameless
    • Drag and Move
    • Resizable
    • Show in Fullscreen Mode
  • Style
    • Right Click Menu
    • Set Background Color
    • Transparent Background
    • Set Font Color
    • Set FontSize
  • Tweakable (XML)
    • Read Settings
    • Write Settings
    • Reset Settings
  • Time Zone
    • Select Time Zone

Quick Start

Build and Run

# One-click build
./build.sh

# Run application
./build/Clouck.app/Contents/MacOS/Clouck  # macOS
./build/Clouck                           # Linux

Manual Build

# Clean build files
./clean.sh

# Generate Makefile
qmake Clouck.pro

# Build
make

# Run
./build/Clouck.app/Contents/MacOS/Clouck  # macOS
./build/Clouck                             # Linux

Using CMake

mkdir build && cd build
cmake ..
make
./Clouck

🚀 GitHub Actions

This project uses GitHub Actions for automated building and releasing:

CI/CD Workflows

  • CI Build: Validates builds on all platforms for every push/PR
  • Build Qt: Comprehensive builds using both qmake and CMake
  • Release: Creates distributable packages for tagged releases

Download Pre-built Binaries

Visit the Releases page to download pre-built binaries for:

  • macOS: DMG installer with native app bundle
  • Windows: ZIP package with all dependencies
  • Linux: TAR.GZ package with shared libraries

Creating a Release

  1. Tag a new version:

    git tag v1.0.0
    git push origin v1.0.0
    
  2. GitHub Actions will automatically build and create a release with binaries for all platforms

Configuration

The application now uses XML configuration files instead of QSettings. Configuration is stored in config.xml with the following options:

  • FontColor: Font color in hex format
  • BackgroundColor: Background color with alpha transparency
  • FontSize: Font size in points (8-72)
  • AlwaysOnTop: Window always stays on top
  • WindowPosition: Window position coordinates

The configuration file is automatically created when you first run the application and make changes to settings.

Usage

  • Move: Left-click and drag
  • Menu: Right-click for context menu
  • Customize: Change colors, font size, always-on-top behavior
  • Configuration: Settings are saved to config.xml and persist between sessions

Project Structure

qClouck/
├── build/                    # Build output directory
│   ├── Clouck.app/           # macOS application bundle
│   ├── *.o                   # Object files
│   ├── moc_*.cpp            # Qt meta-object compiler output
│   └── Makefile             # Build file
├── config.xml               # XML configuration file
├── build.sh                 # One-click build script
├── clean.sh                 # Clean script
├── Clouck.pro                # qmake project file
├── CMakeLists.txt           # CMake project file
└── README.md

Build Output Management

  • All compilation files (.o, moc_*.cpp, Makefile, etc.) are output to build/ directory
  • Executable files are located at build/Clouck.app/Contents/MacOS/Clouck (macOS) or build/Clouck (Linux)
  • Use ./clean.sh to quickly clean all build files
  • Use ./build.sh for complete one-click build

Next Steps

  • Time zone selection
  • Alarm functionality
  • Enhanced UI/UX

Requirements

  • Qt6 (Core, Widgets)
  • C++17 compatible compiler
  • CMake 3.16+ (optional, for CMake build)

License

See LICENSE file for details.

S
Description
Dual-timezone floating clock (Qt6) — fork of ivaquero/clouck
Readme MIT
419 KiB
Languages
C++ 86.3%
CMake 4.7%
Shell 4.5%
Objective-C++ 2.5%
QMake 1.6%
Other 0.4%