Skip to content

Repository files navigation

m3qs

Material 3 desktop clock widgets for Quickshell on Wayland. Four interchangeable faces share a Matugen-driven color pipeline and a single config surface.

m3qs preview

License Quickshell Qt QML Wayland M3 Made with Love

Variants

Scalloped Analog
Scalloped Analog
Stacked Digital
Stacked Digital
Pill Digital
Pill Digital
World Clock
World Clock
  • Scalloped Analog. Canvas-drawn 12-lobed flower face using cubic bezier curves. Pill-shaped hour and minute hands with rotation animations. Orbiting seconds dot with spring interpolation.
  • Stacked Digital. Hero hours-over-minutes layout with rolling digit transitions.
  • Pill Digital. Horizontal pill layout with tonal fill for narrow panels.
  • World Clock. Stacked surface cards showing local time, relative offsets, and day status per timezone.

Installation

Copy the module into your Quickshell config path:

cp -r m3qs ~/.config/quickshell/
quickshell -p ~/.config/quickshell/m3qs

Configuration

Edit Config.qml:

Property Type Default Description
variant string "stacked" Active face: "stacked", "scalloped", "pill", "world"
theme string "pixel-blue" Color palette key from themes/Themes.qml
radiusScale real 1.0 Multiplier for all corner radii
animationSpeed real 1.0 Duration multiplier for all animations (0 disables motion)
use24Hour bool false 24-hour vs 12-hour display
anchorPosition string "center" Screen position: "center", "topLeft", "topRight", "bottomLeft", "bottomRight"
worldTimezones list See Config.qml List of { label, zone } objects (IANA tz identifiers)

Matugen integration

Register the template in your Matugen config:

[templates.m3qs]
input_path  = "~/.config/quickshell/m3qs/matugen/templates/colors.qml"
output_path = "~/.config/quickshell/m3qs/Colors.qml"

Run Matugen on wallpaper change. Quickshell hot-reloads Colors.qml automatically. A static fallback palette ships by default if Matugen is not installed.

Pre-built themes

Eight color presets are available — switch via Config.qml:

property string theme: "emerald-green"   // see themes/Themes.qml for all keys
Theme Primary Description
pixel-blue #D0BCFF Android dynamic blue (default)
emerald-green #6BBF8A Botanical green
amethyst-purple #B59CFF Rich violet
crimson-rose #FFB4AB Warm red
amber-sunset #FFB870 Golden orange
teal-cyan #78D8D8 Ocean teal
charcoal #9E9E9E Monochrome greyscale
nordic-slate #8EADC8 Cool blue-grey

All palettes are defined in themes/Themes.qml. See themes/README.md for details.

Architecture

wallpaper / system theme
    |
    v
Matugen -> Colors.qml -> all components
                            |
               shell.qml (Loader + MotionBlurWrapper)
                   ScallopedAnalogClock / StackedDigitalClock
                   PillDigitalClock / WorldClock

See docs/ARCHITECTURE.md and docs/DESIGN.md.

Contributing

See CONTRIBUTING.md.

License

MIT. See LICENSE.