Catime Documentation

repository·main·Indexed 26 days ago

https://github.com/vladelaina/catime

An ultra-lightweight Windows countdown and Pomodoro tool written in pure C. It features a transparent interface, customizable tray animations with system status overlays, a plugin system, and a flexible CLI supporting natural language and numeric shorthand for timer control. Documentation covers installation via Scoop, Winget, and Microsoft Store, building from source using MinGW and CMake, and configuring data isolation for MSIX packages.

Tokens
4.6K
Snippets
9
Records
38
Agent score
89%

What's inside Catime

  1. Install Catime on Windows

    main

    You can install Catime using several package managers on Windows:

    • Scoop:
      scoop bucket add extras
      scoop install catime
    • Winget:
      winget install --id VladElaina.Catime
    • Microsoft Store: Available via the Microsoft Apps store.
    • Manual Download: Download the latest release from GitHub Releases.
    winget install --id VladElaina.Catime
  2. Configure Catime tray icon and interface

    main

    Catime provides a transparent interface with several interaction modes:

    • Set Time: Left-click the tray icon.
    • Set Menu: Right-click the tray icon.
    • Edit Mode:
      • Adjust Position: Drag the interface.
      • Resize: Use the mouse scroll wheel.
      • Exit Edit Mode: Right-click.

    Configuration is stored at %LOCALAPPDATA%\Catime\config.ini.

  3. Install dependencies for Linux (Ubuntu/Debian and Arch Linux)

    main

    To build Catime from source on Linux, you need to install mingw-w64 and cmake.

    Ubuntu/Debian:

    sudo apt update && sudo apt install -y mingw-w64 cmake

    Arch Linux:

    sudo pacman -Syu --noconfirm mingw-w64 cmake
    sudo apt update && sudo apt install -y mingw-w64 cmake
  4. Test a generated Catime Chocolatey package

    main

    After building a package, you can verify it by installing it from your local output directory using choco install. You can then run catime to ensure functionality before uninstalling.

    choco install catime --source .\chocolatey-output --version 1.5.0 --yes --force
    catime 25m
    choco uninstall catime --yes
  5. Build a local Microsoft Store MSIX package

    main

    To build a signed x86 MSIX package for the Microsoft Store, run the build script on Windows with the Windows 10/11 SDK installed. The resulting package will be placed in output\microsoft-store by default.

    Important Versioning Rule: The package version must follow the Major.Minor.Patch.0 format. The fourth component (Revision) must remain 0 for Microsoft Store submissions. Ensure the version you are building is higher than the version currently published in Partner Center.

    .\packaging\microsoft-store\build-store-package.ps1 `
      -ExecutablePath .\build\catime.exe `
      -Version 1.5.0
  6. Build a local Catime Chocolatey package

    main

    To build a local Chocolatey package for Catime on Windows, use the update-package.ps1 script to prepare the package metadata and then use choco pack to generate the .nupkg file.

    Note that installation and upgrades preserve configuration and user resources located under %LOCALAPPDATA%\Catime.

    .\packaging\chocolatey\update-package.ps1 `
      -Version 1.5.0 `
      -Checksum f89c30c2d076d22870eceee79672d9ed0f5742f994c624a9bb1a7dd61bea1e8d
    
    choco pack .\packaging\chocolatey\catime.nuspec `
      --output-directory .\chocolatey-output
  7. Customize Tray Icon with Animations and System Status

    main

    You can customize your tray icon using various formats and real-time system data:

    • Supported Formats: GIF, WebP, ANI, PNG, and JPG.
    • System Status Overlays: Real-time display of CPU %, Memory %, Battery %, and Caps Lock status.
  8. Configure miniz tinfl compilation flags

    main

    When compiling the vendored miniz tinfl library or any consumers of it within Catime, you must define the following macros to ensure compatibility with the project's embedded environment. These flags disable standard library dependencies (stdio, time, and malloc) because Catime provides its own input, output, and storage management for the tinfl_decompress() API.

    Required compilation flags:

    • MINIZ_NO_STDIO
    • MINIZ_NO_TIME
    • MINIZ_NO_MALLOC
  9. Test Catime Scoop manifest locally

    main

    Before submitting a pull request to a Scoop bucket (like ScoopInstaller/Extras), you can test the local catime.json manifest on Windows using the following PowerShell commands. This ensures the installation, execution, and uninstallation processes work as expected.

    scoop install .\packaging\scoop\catime.json
    catime 25m
    scoop uninstall catime