<feed xmlns='http://www.w3.org/2005/Atom'>
<title>atuin/crates/atuin-client/src/theme.rs, branch main</title>
<subtitle>Turtle. A hard-fork of atuin, focusing on a more minimal feature set</subtitle>
<id>http://git.foss-syndicate.org/bpeetz/forks/atuin/atom/crates/atuin-client/src/theme.rs?h=main</id>
<link rel='self' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/atom/crates/atuin-client/src/theme.rs?h=main'/>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/'/>
<updated>2026-06-10T22:54:30Z</updated>
<entry>
<title>chore: Move everything into one big crate</title>
<updated>2026-06-10T22:54:30Z</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2026-06-10T22:54:30Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=5c39e7cf284a1f6e9a1657f2deb44e359fc47eb8'/>
<id>urn:sha1:5c39e7cf284a1f6e9a1657f2deb44e359fc47eb8</id>
<content type='text'>
That helps remove duplicated code and rustc/cargo will now also show
dead code correctly.
</content>
</entry>
<entry>
<title>chore(deps): cleanup of dep versions (#3106)</title>
<updated>2026-01-27T21:51:41Z</updated>
<author>
<name>Ellie Huxtable</name>
<email>ellie@atuin.sh</email>
</author>
<published>2026-01-27T21:51:41Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=3ed6e6b8776185a57f5ce29a28b7b60174385ac1'/>
<id>urn:sha1:3ed6e6b8776185a57f5ce29a28b7b60174385ac1</id>
<content type='text'>
Ensure we aren't using multiple versions, etc

&lt;!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord --&gt;

## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing</content>
</entry>
<entry>
<title>feat: Interactive Inspector (#2319)</title>
<updated>2025-10-20T20:02:40Z</updated>
<author>
<name>P T Weir</name>
<email>phil.weir@flaxandteal.co.uk</email>
</author>
<published>2025-10-20T20:02:40Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=d53ad84e5727f7cad09eee09a2444da81a88b643'/>
<id>urn:sha1:d53ad84e5727f7cad09eee09a2444da81a88b643</id>
<content type='text'>
### What does this PR do?

Adds simple navigation to the inspector, to explore a session starting
from a single command. This creates a new user flow, where a user can
find a history entry in the interactive view (in, say, Global mode), and
hit Ctrl+o to navigate back and forward through that command's session.

IMAGINED USE-CASE: I remembered that I did a sequence of git steps but I
can't remember the order and forgot to document it. I remember that
`reflog` was involved and want to see the actual sequence, and only
those commands.

IMAGINED USE-CASE: I used a curl command to get my IP address for
greenlisting before I connected to the bastion server `abc.xyz` over SSH
- I could easily find the SSH command with abc.xyz, and go back one step
in the session, but without this change, scrolling through all my curl
commands ever run to find a forgotten URL/domain would be too much work.

Since this gives the inspector tab a broader purpose than viewing
analytics, it needs to function even when there are not enough screen
rows for charts -- hence, this PR also introduces an ultracompact mode
for the inspector that _just_ shows the neighbouring history commands
(as simple scrolling three-entry list, with no panes) if there are fewer
than `auto_hide_height` rows (default: 8). Otherwise, the inspector
behaves as normal, except that Up / Down will change the focused command
by navigating through the session. That means there is no "compact" mode
for the inspector - when the interactive search is compact (but not
ultracompact), the inspector shows its usual chart view.

The UX for this could be improved - to keep this PR as lean as it
realistically can be, I have tried to keep the flow very minimal, but a
follow-up PR could introduce some tooltips, nicer ultracompact
formatting, etc.

A minor QoL improvement that comes with this - since I had to deal with
bold text and would otherwise have need a theming exception, I took the
opportunity to ensure the theme engine sets styles completely (so a
theme can have bold), not just colours. To limit scope creep, I do not
add TOML syntax so (for now) you can only customize colours from config
files, but it means that default-bold text (etc.) can now use the
theming engine if the code-defined default Meaning is bolded.

Key changes:

* introduces a simplified inspector tab, with only previous-current-next
commands as rows, in compact mode
* allows navigation through session history within the inspector (so
compact inspector view is still useful)

It also (see comments below):

* makes `compact` into `compactness`, an enum (to better standardize
across inspector/interactive)
* makes the inspector _only_ change layout for ultracompact mode, which
is still compact+(height&lt;8)
* clippy's complexity limit wanted draw split up a little, so not sure
if this is a reasonable minimal way to do so for now
* adds a `(none)` theme to the theming to enable output testing without
styling
* ~~additional tests, although keen for input on how best to do these~~
one functional test, as a starting point
* ~~documentation~~ [minor doc changes
only](https://github.com/atuinsh/docs/pull/72), as I am not sure there
is much to say

&lt;!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord --&gt;

_Was stacked on #2357, which is now in `main`_

## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing</content>
</entry>
<entry>
<title>fix: clippy warnings I don't have on my version of clippy</title>
<updated>2025-09-10T19:57:43Z</updated>
<author>
<name>Ray Kohler</name>
<email>ataraxia937@ataraxia937.xyz</email>
</author>
<published>2025-08-11T22:14:21Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=e4ababed6a6b4f4f358c9e2d293e9b10a0954d52'/>
<id>urn:sha1:e4ababed6a6b4f4f358c9e2d293e9b10a0954d52</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: match logic of theme directory with settings directory, so ATUIN_CONFIG_DIR is respected (#2707)</title>
<updated>2025-08-04T12:48:21Z</updated>
<author>
<name>P T Weir</name>
<email>phil.weir@flaxandteal.co.uk</email>
</author>
<published>2025-08-04T12:48:21Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=c21cd16d4df9e35a2a918d1480bef611faf93a14'/>
<id>urn:sha1:c21cd16d4df9e35a2a918d1480bef611faf93a14</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: update to rust 1.88 (#2815)</title>
<updated>2025-07-22T14:03:20Z</updated>
<author>
<name>Ellie Huxtable</name>
<email>ellie@atuin.sh</email>
</author>
<published>2025-07-22T14:03:20Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=e7819d258a29eeec0e9255a961fee3b44735afab'/>
<id>urn:sha1:e7819d258a29eeec0e9255a961fee3b44735afab</id>
<content type='text'>
* chore: update to rust 1.88

* clippy + fmt

* update ci version

* update flake</content>
</entry>
<entry>
<title>chore: migrate to rust 2024 (#2635)</title>
<updated>2025-03-19T12:44:20Z</updated>
<author>
<name>Ellie Huxtable</name>
<email>ellie@atuin.sh</email>
</author>
<published>2025-03-19T12:44:20Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=14ec768b4520d4fc34dbf24e663ea7db940c18b7'/>
<id>urn:sha1:14ec768b4520d4fc34dbf24e663ea7db940c18b7</id>
<content type='text'>
* chore: upgrade to 2024 edition

* ugh unsafe

* format

* nixxxxxxxxxxx why</content>
</entry>
<entry>
<title>feat: Ultracompact Mode (search-only) (#2357)</title>
<updated>2024-10-07T15:54:07Z</updated>
<author>
<name>P T Weir</name>
<email>phil.weir@flaxandteal.co.uk</email>
</author>
<published>2024-10-07T15:54:07Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=4c2d8201dccdf8571a71a6e969ca9557b1c5fdf2'/>
<id>urn:sha1:4c2d8201dccdf8571a71a6e969ca9557b1c5fdf2</id>
<content type='text'>
* feat: add always_show_tabs setting

* feat(ultracompact): extra-compact options

* feat(ultracompact): enable via auto_hide_height

* feat(ultracompact): clarify comment

* fix(theming): minor tidyup to theming comment

* chore: rustfmt/clippy corrections

* chore: testing if CI issue was transient</content>
</entry>
<entry>
<title>fix(theme): Restore original colours (#2339)</title>
<updated>2024-08-05T13:12:18Z</updated>
<author>
<name>P T Weir</name>
<email>phil.weir@flaxandteal.co.uk</email>
</author>
<published>2024-08-05T13:12:18Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=f94a284df480dd14e1b6698ce077380fda8a0ce2'/>
<id>urn:sha1:f94a284df480dd14e1b6698ce077380fda8a0ce2</id>
<content type='text'>
* fix(theme): restore ratatui colors

* chore: fix up rustfmt

* typo: correct spelling in comment</content>
</entry>
<entry>
<title>fix(themes): Restore default theme, refactor (#2294)</title>
<updated>2024-07-23T11:03:00Z</updated>
<author>
<name>P T Weir</name>
<email>phil.weir@flaxandteal.co.uk</email>
</author>
<published>2024-07-23T11:03:00Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=17ed668aacd067c645d7de19d4dc7ae652aa760a'/>
<id>urn:sha1:17ed668aacd067c645d7de19d4dc7ae652aa760a</id>
<content type='text'>
* fix(theme): let the base colour remain unchanged

* fix(theme): split out default

* fix(theme): make base theme 'default' not an empty string

* wip(theme): return styles, not colors

* wip(theme): tidy up module structure a little

* wip(theme): removed unhandled references to foreground_color

* chore: fix cargo fmt

* feat(theme): allow crossterm-deserializable colors</content>
</entry>
</feed>
