Files
DualFloatingClock/README.md
T
2026-04-18 01:53:51 +08:00

134 lines
3.3 KiB
Markdown

# ⏰ Flock
![code size](https://img.shields.io/github/languages/code-size/ivaquero/floating-clock.svg)
![repo size](https://img.shields.io/github/repo-size/ivaquero/floating-clock.svg)
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](doc/clock.png)
## ✨ Features
- [ ] **Main Window**
- [ ] Frameless
- [x] Drag and Move
- [x] Right Click Menu
- [x] Always On Top
- [ ] Show in Fullscreen Mode
- [x] **Style**
- [x] Set Background Color
- [x] Set Font Color
- [x] Set FontSize
- [x] **Configuration File** (XML)
- [x] Read Settings
- [x] Write Settings
- [x] Reset Settings
- [ ] **Time**
- [ ] Select Time Zone
- [ ] Set Alarms
## Quick Start
### Build and Run
#### Quick Build (Recommended)
```bash
# One-click build
./build.sh
# Run application
./build/flock.app/Contents/MacOS/flock # macOS
./build/flock # Linux
```
#### Manual Build
```bash
# Clean build files
./clean.sh
# Generate Makefile
qmake flock.pro
# Build
make
# Run
./build/flock.app/Contents/MacOS/flock # macOS
./build/flock # Linux
```
#### Using CMake
```bash
mkdir build && cd build
cmake ..
make
./flock
```
### 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
```text
qflock/
├── build/ # Build output directory
│ ├── flock.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
├── flock.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/flock.app/Contents/MacOS/flock` (macOS) or `build/flock` (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.