<feed xmlns='http://www.w3.org/2005/Atom'>
<title>atuin/atuin-common/src/utils.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/atuin-common/src/utils.rs?h=main</id>
<link rel='self' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/atom/atuin-common/src/utils.rs?h=main'/>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/'/>
<updated>2024-04-18T15:41:28Z</updated>
<entry>
<title>chore: move crates into crates/ dir (#1958)</title>
<updated>2024-04-18T15:41:28Z</updated>
<author>
<name>Ellie Huxtable</name>
<email>ellie@elliehuxtable.com</email>
</author>
<published>2024-04-18T15:41:28Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=95cc472037fcb3207b510e67f1a44af4e2a2cae9'/>
<id>urn:sha1:95cc472037fcb3207b510e67f1a44af4e2a2cae9</id>
<content type='text'>
I'd like to tidy up the root a little, and it's nice to have all the
rust crates in one place</content>
</entry>
<entry>
<title>perf(dotfiles): cache aliases and read straight from file (#1918)</title>
<updated>2024-04-03T09:19:24Z</updated>
<author>
<name>Ellie Huxtable</name>
<email>ellie@elliehuxtable.com</email>
</author>
<published>2024-04-03T09:19:24Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=894eaa6faff86e1839510e114427b949b2440d39'/>
<id>urn:sha1:894eaa6faff86e1839510e114427b949b2440d39</id>
<content type='text'>
* cache aliases when set locally

* handle rebuild on sync and tidy things a bit

* support all shells except nu

* make clippy happy

* fmt

* fix for no features</content>
</entry>
<entry>
<title>chore(ci): run rust build/test/check on 3 platforms (#1675)</title>
<updated>2024-02-05T09:28:55Z</updated>
<author>
<name>Ellie Huxtable</name>
<email>ellie@elliehuxtable.com</email>
</author>
<published>2024-02-05T09:28:55Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=6a2576fc5bb2b60df3ad0563d594d6742e27532b'/>
<id>urn:sha1:6a2576fc5bb2b60df3ad0563d594d6742e27532b</id>
<content type='text'>
* chore(ci): run rust build/test/check on 3 platforms

* need to properly test windows

* do not need to strip here, and windows has a suffix anyway</content>
</entry>
<entry>
<title>Add xonsh support (#1375)</title>
<updated>2024-01-29T12:17:36Z</updated>
<author>
<name>Matthieu LAURENT</name>
<email>matthieu.laurent69@protonmail.com</email>
</author>
<published>2024-01-29T12:17:36Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=c56f8ff736b8369b9b5cb3bdb42718396247f212'/>
<id>urn:sha1:c56f8ff736b8369b9b5cb3bdb42718396247f212</id>
<content type='text'>
* Add basic xonsh support

* Add init xonsh command

* Add Xonsh install instructions in docs

* Add xonsh ctrl-R search

* update xonsh script and instructions

Summary of changes:
* Added duration to postcommand hook
* Switched main search operation to use `subproccess.run()` rather than running as an xonsh shell command - this a) allows us to capture stderr without needing a temporary file and b) avoids a weird broken-buffer state that results from running a fullscreen TUI and then programmatically editing the buffer
* Added support for immediately executing chosen command via `__atuin_accept__:` (like bash/zsh/fish)

* strip newline from command before sending to atuin

* Add basic xonsh support

* Add init xonsh command

* Add xonsh ctrl-R search

* Remove advanced-install guide (was accidentally re-added during rebase)

* Clean up

Xonsh doesn't import private functions into the local namespace when sourcing a file

* Add xonsh ro readme

* Respect ATUIN_NOBIND

* Format with black, and improve PEP8 compliance

* Add up search

* Format rust code

---------

Co-authored-by: Joseph Montanaro &lt;jfmonty2@gmail.com&gt;</content>
</entry>
<entry>
<title>Escape control characters using caret notation (#1585)</title>
<updated>2024-01-18T18:08:55Z</updated>
<author>
<name>Peter Holloway</name>
<email>holloway.p.r@gmail.com</email>
</author>
<published>2024-01-18T18:08:55Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=8913d46dab2bc2f63773ab6a056fb0a032732c27'/>
<id>urn:sha1:8913d46dab2bc2f63773ab6a056fb0a032732c27</id>
<content type='text'>
Instead of using their equivalent hex codes.</content>
</entry>
<entry>
<title>Stop control characters being printed to terminal (#1576)</title>
<updated>2024-01-17T08:58:11Z</updated>
<author>
<name>Peter Holloway</name>
<email>holloway.p.r@gmail.com</email>
</author>
<published>2024-01-17T08:58:11Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=ef38fd0a294b63bb48919ccbc2f8cd16201fa622'/>
<id>urn:sha1:ef38fd0a294b63bb48919ccbc2f8cd16201fa622</id>
<content type='text'>
If a previous command in the history contained a literal control
character (eg via Ctrl-v, Ctrl-[), when the command was printed, the
control character was printed and whatever control sequence it was part
of was interpreted by the terminal. For instance, if a command contained
the SGR sequence `^[[31m`,  all subsequent output from `atuin history
list` would be in red.

Slightly less of a problem, control characters would also not appear in
the interactive search widget although they would be printed when
selected. This meant `echo '^[[31foo'` would appear as `echo '[31foo'`.
When the entry was selected, the same problem as before would occur and,
for the example above, `echo 'foo'` would be printed with 'foo' in red.
When copied, this command would not behave the same as the original as
it would be missing the control sequence.

This adds an extension trait to add a method to anything that behaves
like a string to escape ascii control characters and return a string
that can be printed safely. This string can then be copied and run
directly without having to add the control characters back.</content>
</entry>
<entry>
<title>chore(deps): uuidv7 stable (#1451)</title>
<updated>2023-12-16T19:21:04Z</updated>
<author>
<name>Conrad Ludgate</name>
<email>conradludgate@gmail.com</email>
</author>
<published>2023-12-16T19:21:04Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=7aeea1c050a6584507fa4cfc2239fd9289566aa9'/>
<id>urn:sha1:7aeea1c050a6584507fa4cfc2239fd9289566aa9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add bash support to `enter_accept` (#1316)</title>
<updated>2023-10-21T11:34:23Z</updated>
<author>
<name>Ellie Huxtable</name>
<email>ellie@elliehuxtable.com</email>
</author>
<published>2023-10-21T11:34:23Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=08a01e037c915257469755c67d38e3aabe407220'/>
<id>urn:sha1:08a01e037c915257469755c67d38e3aabe407220</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add fish support for `enter_accept` (#1315)</title>
<updated>2023-10-20T06:57:29Z</updated>
<author>
<name>Ellie Huxtable</name>
<email>ellie@elliehuxtable.com</email>
</author>
<published>2023-10-20T06:57:29Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=2f9df9350d5b645c867a440e63071d323fd53409'/>
<id>urn:sha1:2f9df9350d5b645c867a440e63071d323fd53409</id>
<content type='text'>
* Add fish support for `enter_accept`

Also fixes shell detection. Who trusted me to write jetlagged code last
night huh?

* Document</content>
</entry>
<entry>
<title>Add enter_accept to immediately execute an accepted command (#1311)</title>
<updated>2023-10-20T06:16:54Z</updated>
<author>
<name>Ellie Huxtable</name>
<email>ellie@elliehuxtable.com</email>
</author>
<published>2023-10-20T06:16:54Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=88f3e2a04fcf10a1b44aaf30c91f38393b5cfeda'/>
<id>urn:sha1:88f3e2a04fcf10a1b44aaf30c91f38393b5cfeda</id>
<content type='text'>
* make enter execute the command, tab copy it

* Add config for enter_accept

enter_accept will make Atuin immediately accept an execute a command
when selected. It defaults to false in our binary, but the default
config enables it.

This means that users who already use atuin will not default to the new
behaviour unless they opt in, but new users will have it by default.

Thanks to @davidhewitt for the patch and bulk of this implementation!
Currently we have it just for zsh, but I'll follow up with other shells
(unless anyone beats me to it :D)

* Add docs

* we need to tidy up the ui code anyway

* Check if using zsh

* Update docs/docs/config/config.md

Co-authored-by: Conrad Ludgate &lt;conradludgate@gmail.com&gt;

---------

Co-authored-by: David Hewitt &lt;1939362+davidhewitt@users.noreply.github.com&gt;
Co-authored-by: Conrad Ludgate &lt;conradludgate@gmail.com&gt;</content>
</entry>
</feed>
