tix 0.1.3

tix - cli alarm clock and timer with foreground and background modes
# tix

🕞 tix is a small rust alarm and timer cli.

you can use it for:
- relative timers like `tix 10m`
- absolute alarms like `tix 12.03.2026 13:30`
- slash dates like `tix 12/31/2026 8:15pm`
- time-only alarms like `tix 13:30` or `tix 01:30pm`
- multiple background alarms at the same time
- foreground mode with a live clock/countdown view
- labels `tix 12/31/2030 8:15pm "go touch grass"`

## install

from crates.io:

```bash
cargo install tix
```

from this repo:

```bash
cargo install --path .
```

## quick use

schedule a background alarm:

```bash
tix 10m "my new alarm"
```

run in foreground:

```bash
tix -f 10m
```

force background mode:

```bash
tix -b 10m
```

check active alarms:

```bash
tix status
```

stop one alarm:

```bash
tix stop <id>
```

stop all alarms:

```bash
tix stop --all
```

show or change volume:

```bash
tix volume
tix volume 0.3
tix volume test
```

## config

the config file lives here:

```text
~/.config/tix/config.toml
```

example:

```toml
timezone = "europe/berlin"
date_order = "dmy"
prefer_locale_date_order = true
time_notation = "24h"
default_mode = "background"
auto_stop_seconds = 0
volume = 0.3
sound_file = "/home/ax/music/3.mp3"

[notifications]
enabled = true
clickable = true
timeout_ms = 0
show_stop_button = true

[foreground]
refresh_interval_ms = 250
show_current_datetime = true
show_target_datetime = true
show_remaining = true
show_input = true
timer_style = "digital"
```

## notes

- cli flags override the default mode from config
- unambiguous slash dates parse in any common order; ambiguous ones follow the locale-aware config policy
- `auto_stop_seconds = 0` means the alarm keeps ringing until you stop it
- background alarms send a desktop notification on linux and macos when they trigger
- `notifications.timeout_ms = 0` keeps the notification open until you dismiss it
- notification click actions and Stop buttons are Linux/XDG only with `notify-rust`; macOS still shows the notification but ignores those action settings
- if custom audio fails, tix falls back to the built-in tone or terminal bell