| Crates.io | clock-rs |
| lib.rs | clock-rs |
| version | 0.1.216 |
| created_at | 2024-07-27 12:46:12.037163+00 |
| updated_at | 2025-08-01 15:29:49.354735+00 |
| description | A modern, terminal-based digital clock |
| homepage | https://github.com/Oughie/clock-rs |
| repository | https://github.com/Oughie/clock-rs |
| max_upload_size | |
| id | 1317262 |
| size | 78,502 |
A modern, digital clock that effortlessly runs in your terminal.

clock-rs is a terminal-based clock written in Rust, designed to be a new alternative to tty-clock.
It supports all major platforms and offers several improvements, which include:
To install clock-rs globally using Cargo, simply run the following command:
$ cargo install clock-rs
You can then run the executable via the clock-rs command.
A package is available from the AUR (Arch User Repository). To install it, use your preferred AUR manager:
$ yay -S clock-rs-git
or manually clone from the AUR:
$ git clone https://aur.archlinux.org/clock-rs-git.git && cd clock-rs-git && makepkg -si
A package is available from the official repositories. To install it, simply run:
# pkgin install clock-rs
clock-rs is available in the Nixpkgs repository. To install it on NixOS, use the following command:
$ nix-env -iA nixos.clock-rs
If you use Nix on a different operating system, use either of the following commands:
$ nix-env -iA nixpkgs.clock-rs # Without flakes
$ nix profile install nixpkgs#clock-rs # With flakes
[!CAUTION] Using
nix-envis generally unrecommended, since it requires you to manually manage installed packages. Consider using$ nix-shell -p clock-rsto make the application temporarily available instead.
You could also add the following to your configuration.nix:
environment.systemPackages = with pkgs; [
clock-rs
# ...
];
If you use Home-Manager to configure your dotfiles, you can use the following to set up clock-rs declaratively:
programs.clock-rs = {
enable = true;
settings = {
general = {
color = "magenta";
interval = 250;
blink = true;
bold = true;
};
position = {
horizontal = "center";
vertical = "center";
};
date = {
fmt = "%A, %B %d, %Y";
use_12h = true;
utc = true;
hide_seconds = true;
};
};
};
If you prefer installing clock-rs from source, follow these steps:
Download the repository from the releases page or clone it using $ git clone https://github.com/Oughie/clock-rs.
Depending on your platform, extract the archive and navigate into its directory.
Inside the directory, run $ cargo build --release to build the application manually. This will place the executable inside the clock-rs/target/release directory. However, if you want to install it globally instead, run $ cargo install --path ..
Usage: clock-rs [OPTIONS] [COMMAND]
Commands:
clock Display the current time (default)
timer Create a timer (5 minutes if no time is specified)
stopwatch Start a stopwatch
help Print this message or the help of the given subcommand(s)
Options:
-c, --color <COLOR> Specify the clock color
-x, --x-pos <X_POS> Set the position along the horizontal axis
-y, --y-pos <Y_POS> Set the position along the vertical axis
--fmt <FMT> Set the date format
-t Use the 12h format
-i, --interval <INTERVAL> Set the polling interval in milliseconds
--utc Use UTC time
-s, --hide-seconds Do not show seconds
-B, --blink Set the colon to blink
-b, --bold Use bold text
-h, --help Print help
-V, --version Print version
Create a timer (5 minutes if no time is specified)
Usage: clock-rs timer [OPTIONS]
Options:
-S, --seconds <SECONDS> Add seconds to the timer
-M, --minutes <MINUTES> Add minutes to the timer
-H, --hours <HOURS> Add hours to the timer
-k, --kill Terminate the application when the timer finishes
-h, --help Print help
Start a stopwatch
Usage: clock-rs stopwatch
Options:
-h, --help Print help
Press P to toggle the pause on the timer or stopwatch, and R to restart.
To exit the application, press Escape, Q, or Ctrl + C.
[!NOTE] If no command is specified, the
clockcommand is used by default.
Therefore, running$ clock-rs clockor simply$ clock-rswill both display the current time.
clock-rs uses the TOML file format for its settings.
By default, the configuration file is named conf.toml and is stored in the OS configuration directory, within the clock-rs subdirectory.
| Platform | Configuration file path |
|---|---|
| Linux | ~/.config/clock-rs/conf.toml |
| MacOS | ~/Library/Application Support/clock-rs/conf.toml |
| Windows | C:\Users\%USERNAME%\AppData\Local\clock-rs\conf.toml |
You can change this path by setting the CONF_PATH environment variable.
If you wish to run the application without automatically using the existing conf.toml file, you can set CONF_PATH to None.
Any argument passed in the command line will override the settings inside the conf.toml file.
Here's a list of the available fields inside the conf.toml file.
| Field | Description | Possible values | Default |
|---|---|---|---|
general.color |
Specify the color of the clock | "black", "red", "green", "yellow", "blue", "magenta", "cyan", or "white". Optionally, prefix them with "bright-" or use a hex color code in the form of "#rrggbb". |
"white" |
general.interval |
Set the polling interval in milliseconds | An unsigned integer, e.g. 250. |
200 |
general.blink |
Set the colon to blink | true or false. |
false |
general.bold |
Use bold text | true or false. |
false |
position.horizontal |
Set the position along the horizontal axis | "start", "center", or "end". |
"center" |
position.vertical |
Set the position along the vertical axis | "start", "center", or "end". |
"center" |
date.fmt |
Specify the date format | A string, e.g. "%A, %B %d, %Y". |
"%d-%m-%Y" |
date.use_12h |
Use the 12h format | true or false. |
false |
date.utc |
Use UTC time | true or false. |
false |
date.hide_seconds |
Do not show seconds | true or false. |
false |
The conf.toml file could look like this:
[general]
color = "magenta"
interval = 250
blink = true
bold = true
[position]
horizontal = "center"
vertical = "center"
[date]
fmt = "%A, %B %d, %Y"
use_12h = true
utc = true
hide_seconds = true
The default configuration can be found here.
Feel free to report bugs, suggest features or contribute code.
Any help is appreciated!
Copyright © 2024 Oughie
This repository is licensed under the Apache License 2.0 - See here for more information.