141 Commits

Author SHA1 Message Date
Jens Krause
ca9d17f1ee
Rust 1.91.0 (#140) 2025-11-03 17:23:06 +01:00
jk
1bebfb897a
fix(demo): hide menu from local-time-footer demo 2025-10-29 12:04:36 +01:00
Jens Krause
90c0e50f1c
Prepare v1.6.1 (#138) 2025-10-29 11:31:42 +01:00
Jens Krause
27cb8c7e33
fix: filter KeyEventKind::Press out (#137)
to ignore all the other `CrosstermEvent::Key` events
2025-10-29 11:03:49 +01:00
jk
513f1fec11
fix(tape) typo 2025-10-19 19:03:21 +02:00
Jens Krause
1742d68c61
update all demos (#135)
- new size: `1000x500`
- remove deprecated demos
- `just da`: build all demos
- update README
2025-10-19 19:02:04 +02:00
Jens Krause
4ec52545e5
Prepare v1.6.0 (#134) v1.6.0 2025-10-16 14:44:19 +02:00
Jens Krause
dfe3cfcc80
add AGENTS.md (#133)
* add `AGENTS.md`
* update README
2025-10-16 12:01:50 +02:00
Jens Krause
c637a82deb
fix(event) relax validation (#132)
* fix(event) relax validation

to show errors if needed only, but not all the time

* update demo

* update CL

* fix demo

* `prepare|switch_input`
2025-10-16 11:54:53 +02:00
Jens Krause
361a82ee08
demo: event (#131)
* demo: event

* update README

* update CL
2025-10-15 17:00:57 +02:00
Jens Krause
95d914c757
feat(event) make date_time + title editable (#130)
* wip: editable events

* make it work

* fix: scroll position, title validation, underline

inputs to visualize edit mode

* show error

* prefix datetime

* refactor rendering inputs

* compact `EditMode`

* update footer to include `event` keybindings

* update README
2025-10-15 16:49:17 +02:00
Jens Krause
e11dcaa913
feat(event) persist state (#129)
* feat(event) persist state

* `Event::default()`
2025-10-14 10:18:53 +02:00
Jens Krause
d2f41e04e2
inrease MAX_DURATION to 9999y 364d 23:59:59.9 (#128) 2025-10-13 14:09:16 +02:00
Jens Krause
51f83e5b06
feat(screens)! switch by using or keys (#127)
* feat(screens) switch by `←` or `→` keys

* test cycling `Content` using `next`/`prev`

* update CL
2025-10-13 13:28:51 +02:00
Jens Krause
b5f3c709bf
(keybindings)! change keys for screens (#126) 2025-10-13 12:46:32 +02:00
Jens Krause
56e6ce66fa
feat(cli) parse event (#125)
* feat(cli) parse `event`

* check possible `Event` for `mode`

* m.bros
2025-10-13 11:54:06 +02:00
Jens Krause
758a72fbf6
feat(event) desktop notification at event time (#124) 2025-10-10 10:50:50 +02:00
Jens Krause
6b6221803c
feat(event) blink effect at event time (#123)
Similar to `Countdown` and `Pomodoro` DONE effects.
2025-10-10 10:18:37 +02:00
Jens Krause
4594bc722e
feat(event): Show percentage until event (#122)
using `get_percentage_done`
2025-10-09 20:04:29 +02:00
Jens Krause
e2cd536079
Introduce CalendarDuration (#120)
* trait ClockDuration, CalendarDuration, tests

* make clock rendering more generic

* remove `should_blink` from `RenderClockState`

* pass less down: `mode` -> `editable_time`

* simplify `event` duration states

* remove deprecated `DirectedDuration`

* fix comments
2025-10-09 19:51:34 +02:00
Jens Krause
99032834be
(cli)! Remove --countdown-target argument (#121)
Reverts #112.

For targeting a date (past/future) a new `event` feature will be
introduced (soon).
2025-10-08 18:03:06 +02:00
Jens Krause
f79813ac6b
feat(event) Add widget (#117)
* skeleton
* make `Event` widget work
2025-10-05 21:05:14 +02:00
Jens Krause
6437795c9f
Prepare v1.5.0 (#116) 2025-10-03 12:55:43 +02:00
Jens Krause
0c4f507ebf
demos for v1.5.0 (#115) 2025-10-03 12:39:23 +02:00
Jens Krause
eb376e4015
feat(args): accept years and days for --countdown (#114) 2025-10-01 15:26:02 +02:00
Jens Krause
ac2863cebc
upgrade deps (#113)
* run `cargo upgrade`

```sh
❯ cargo upgrade
    Checking timr-tui's dependencies
name               old req compatible latest new req
====               ======= ========== ====== =======
tokio              1.45.1  1.47.1     1.47.1 1.47.1
tokio-util         0.7.15  0.7.16     0.7.16 0.7.16
tracing-subscriber 0.3.19  0.3.20     0.3.20 0.3.20
clap               4.5.40  4.5.48     4.5.48 4.5.48
time               0.3.41  0.3.44     0.3.44 0.3.44
thiserror          2.0.12  2.0.17     2.0.17 2.0.17
   Upgrading recursive dependencies
     Locking 0 packages to latest Rust 1.90.0 compatible versions
note: pass `--verbose` to see 2 unchanged dependencies behind latest
note: Re-run with `--incompatible` to upgrade incompatible version requirements
note: Re-run with `--verbose` to show more dependencies
  incompatible: 4 packages
  latest: 8 packages
```

* fix(duration) `test_parse_duration_by_time` panics
2025-10-01 13:34:20 +02:00
Jens Krause
3f4acec9f5
feat(args): parse countdown by given time (past or future) (#112)
* feat(args): parse `countdown` by time

* fix lint

No `Default` for `AppTime` needed...

* app: pass `countdown_until` down

* fix `parse_duration_by_time` and `parse_duration`

to handle different formats they support

* fix(countdown): percentage panics

`Duration::ZERO` needs to be considered

* `DirectedDuration`

* fix comment

* rename arg: `countdown-target`

* `ss`->`mm`, fix formats, update README

* alias `--ct`
2025-10-01 12:40:27 +02:00
Jens Krause
2277eeb033
feat(localtime): date (#111)
* feat(localtime): date

* update demo
2025-09-30 13:24:45 +02:00
Jens Krause
cb6c2d5142
feat(edit): 10x up/down (#110)
* feat(edit): 10x up/down

* fix `MAX_DURATION` (decisecond)

* footer: add `edit 10x` keybindings

* README: update keybindings
2025-09-30 12:38:25 +02:00
Jens Krause
6dc7eb81c2
fix(editable): auto jump to next possible editable while decreasing, but ignoring zero values (#109)
* extract `format_by_duration`

* fix(editable): switch to next ignoring zero values
2025-09-29 20:48:19 +02:00
Jens Krause
816741f842
improve format handling + fix days rendering (#107)
* render_(format) functions, compact `YyyDddHhMmSs`

* compact rendering of other formats

* add `YDHhMmSs`+`YDdHhMmSs` formats

* tests for `YDHhMmSs`+`YDdHhMmSs`

* `YyDHhMmSs` + `YyDdHhMmSs`

* `YyyDHhMmSs` + `YyyDdHhMmSs`

* fix `edit_up` to compare `years` properly

and add `test_edit_up_overflow_protection`

* fix rendering `Format::YyyDdHhMmSs`
2025-09-29 16:08:34 +02:00
jk
40eb602953 tests 2025-09-28 10:40:34 +02:00
jk
d5bf7f32a6 feat(timer|c-dwn): show/edit years + days 2025-09-28 10:40:34 +02:00
jk
9ff65e5c8e feat(duration): days and years 2025-09-28 10:40:34 +02:00
Jens Krause
24eb471df8
Contributing guidelines (initial version) (#94) 2025-09-26 17:07:34 +02:00
Jens Krause
0521c57695
Rust 1.90.0 (#95)
* Rust 1.90.0

* Make sound work again on Linux

Reverts changes of #77. It works before, but errors after updating to
Rust 1.90.0 and to latest Nix packages.
2025-09-26 17:05:28 +02:00
jk
f9a2e18179
ignore claude 2025-09-02 11:26:03 +02:00
Jens Krause
bac2e356e1
Prepare v1.4.0 (#92)
* Prepare v1.4.0

* cargo build
2025-09-02 11:19:07 +02:00
Jens Krause
60392b40ed
demo: local time (#91) 2025-08-30 22:06:51 +02:00
Jens Krause
901cf69472
feat(screen): LocalTime (#90) 2025-08-30 21:48:56 +02:00
Jens Krause
c494f0e829
refactor(footer): AppTimeFormat data handling (#89)
- Extract local state of `app_time_format` from `footer` to have it globally available
- Add a deserialization fallback for deprecated `AppTimeFormat::Hidden`
- Persist `footer_app_time` toggle state
2025-08-27 19:44:02 +02:00
Jens Krause
637c1da21b
Rust 1.89.0 (#87) 2025-08-15 11:43:17 +02:00
Jens Krause
3439e4aa8d
Prepare v1.3.1 (#86)
* bump v1.3.1

* update CHANGELOG

* start workflow by `release/*` branches only but not by tags to avoid overriding releases.
2025-07-03 11:01:51 +02:00
jk
5bc37f005f
lint again
in addition to #88, especially 78f5269
2025-06-28 11:49:21 +02:00
Jens Krause
bfa40fd8f1
Rust 1.88.0 (#85)
* Rust 1.88.0

* nix flake update

* cargo upgrade

* lint

all `uninlined_format_args` related
@see https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args
2025-06-28 11:39:22 +02:00
Jens Krause
93a3cde396
Rust 1.87.0 (#84)
* Rust 1.87.0

* nix flake update

* update CHANGELOG

* cargo upgrade

name         old req compatible latest new req
====         ======= ========== ====== =======
color-eyre   0.6.2   0.6.5      0.6.5  0.6.5
tokio        1.41.1  1.45.1     1.45.1 1.45.1
tokio-stream 0.1.16  0.1.17     0.1.17 0.1.17
tokio-util   0.7.12  0.7.15     0.7.15 0.7.15
clap         4.5.23  4.5.39     4.5.39 4.5.39
time         0.3.37  0.3.41     0.3.41 0.3.41
notify-rust  4.11.4  4.11.7     4.11.7 4.11.7
thiserror    2.0.11  2.0.12     2.0.12 2.0.12
2025-06-09 17:00:31 +02:00
Jens Krause
d27587a44a
fix(pomodoro): ctrl+r resets rounds + both clocks (#83) 2025-05-20 10:01:29 +02:00
Jens Krause
5f4c5bb8ed
(pomodoro) reset active clock only (#82)
It reverts changes of cc35f20f3e
2025-05-13 11:00:56 +02:00
Jens Krause
44af71c01c
(args) set content by given duration (#81) 2025-05-12 12:14:27 +02:00
Jens Krause
c370d3096b
Prepare v1.3.0 (#80)
* Prepare v1.3.0
* readme: fix keybindings
* update changelog
v1.3.0
2025-05-06 11:46:29 +02:00