-
-
Notifications
You must be signed in to change notification settings - Fork 574
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: enable inline height and compact by default #2249
Conversation
This pull request has been mentioned on Atuin Community. There might be relevant details there: https://forum.atuin.sh/t/enable-inline-height-and-compact-ui-by-default/403/1 |
Personally, I am running Atuin in the full-screen mode. That being said, I do not see much difference between the compact mode with up to 40 lines and the full-screen mode. On my screen with my font size, I see only about 35 records anyway. Therefore, the only notable difference is really whether to run Atuin inline by default, or in full-screen with the horizontal and vertical borders and separators. Still, I usually look on only about the first 5 records, 10 at most maybe. Should the inline mode perhaps have Generally, I think that having the full-screen mode by default is a smart thing to do, as it gives the new users some guidance about where to focus their attention and clearly distinguishes between different sections of the TUI. For example, by default, the preview of the selected command is nearly invisible unless you know to look for it. With the separators in the full-screen mode, the window is clearly visible, and a user will take a notice that it is a thing. The same goes for the keyboard shortcuts help. (Regarding the telemetry, I am all for opt-in telemetry, if done right (KDE telemetry is a good example, in my opinion: opt-in, can see the gathered logs, and it clearly states what it collects---one really does not want to fear that the telemetry might collect the commands they run, for example---but I fully agree with herbcso on Atuin Discourse. @ellie said there that opt-out telemetry is not desirable. I argue that opt-out telemetry would even poise as a huge hindrance to adopting Atuin, in my opinion: fears like "It will steal my commands." and similar. Polling might actually get more attention from a broader Atuin community as it is something they will do once in a while without having to think about telemetry and their preferences about telemetry.) |
I've been running with compact/40 anyway, so this seems great! (FWIW, 40 lines is about 40% of my usual terminal height but I think it's very rare for me to use an entry that's more than 10 back -- which is to say, I think it could make sense to go a bit shorter still?) |
I am not a fan of most atuin's default settings. When it comes to these two, I am all for setting Personally I don't mind either way, because I almost never use default values (in any SW) for anything that is important. |
Size isn't actually the only reason for this change. Some of the other issues I've heard people have with full screen:
With a lower value than 40, the inspector won't work very well. It might be something users want to change, but can't work as a default. The inspector does need some work to function better on smaller terminals, but it is a balance between "I want it to work on smaller terminals" and "I want to see/explore more information". Maybe the precise number will change in the future.
This was the initial reasoning, however I hear very often that the full screen is either something people change immediately, or that it's a reason they stop using Atuin entirely. I've made enough mistakes trying to guess what people might want that I'd rather try to use numbers.
I totally expect that users will be changing these values, but I have absolutely no insight as to whether or not they do so. I'm trying to optimize for new users, and minimize the amount of config that they need to change to feel comfortable. This allows me to gauge if most people deviate from defaults, or if most people are happy with things how they are. |
At least for me, inline when not bounded by terminal height overlaps with the last line of my shell (Fish+Tide):
becomes
If this didn't occur, I'd lean this change, but I prefer fullscreen at the moment. I'm sure this is a separate bug that should be filed 😅 |
I'm using compact mode with all lines below or 40% of lines, whichever is larger. (I tried to invert the UI when cursor was near the bottom briefly, but it didn't feel good.) |
I'm not particularly concerned with the default, as for personal use I will configure options anyway. Which is just another way of saying: optimise for new users, not me, by all means. But I'm curious about the altscreen issue.. I use screen, with altscreen enabled, as a workaround for mosh not supporting altscreen. What's the behaviour in compact mode, with respect to screen contents? Do they just get overwritten, but it's supposed to be ok because it's not the whole screen? My preference is to preserve the screen in full. |
The screen is preserved. When not using fullscreen atuin (altscreen), the text is not overwritten, but the TUI is created below the prompt. See my post on the forum. I've also provided a video what's happening. |
Possibly not a helpful datapoint, but as someone who types Ctrl+r by default for commands over 2 chars, my use-case is "minimalist like traditional reverse search" -- I am not sure how common that is, but I nearly did a 5m try-and-move-on with Atuin as I had not spotted
For my type of use-case, absolutely, especially if hitting Ctrl+r at least once for nearly every command entered.
Again, I use it as a helper to writing a command, rather than a full-featured search tool, so context is key for my type of use. That said, I normally use Atuin in "ultracompact" 3-8 lines though, and have a customization that autohides non-critical UI lines when inline_height is under 10, so arguably my use-case should really be out-of-scope :D (OT: @ellie with the theming landing, I have rebased this & the inspector work onto today's main, so it could be timely for me to PR, if this "ultracompact" use could be relevant for others and the compact UI is about to be highlighted more? No pressure, only if generally desirable obvs!) |
Same, I could never get the inverted UI to feel quite right, no matter what I tried. Some people seem to like it though 🤷♀️ I think it's because, depending on scroll position, the cursor either jumps up in inverted mode, or jumps down in not-inverted mode.
For extra clarity, empty space is created below the prompt and the terminal essentially just scrolls a bit to make room for the TUI.
That is a pretty good datapoint! I've heard it from a few people now, and wonder how common it actually is. Otherwise, I'd definitely be interested in a PR with your ultra-compact mode please! 🙏 |
I think this is fairly conclusive - I'll call it out in the release notes :) |
This issue has been mentioned on Atuin Community. There might be relevant details there: |
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [atuinsh/atuin](https://github.com/atuinsh/atuin) | minor | `v18.3.0` -> `v18.4.0` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>atuinsh/atuin (atuinsh/atuin)</summary> ### [`v18.4.0`](https://github.com/atuinsh/atuin/releases/tag/v18.4.0) [Compare Source](atuinsh/atuin@v18.3.0...v18.4.0) #### Theme system Thanks to [@​philtweir](https://github.com/philtweir), we now have a theming system! It's too much to write about here, so see the section in the docs: https://docs.atuin.sh/guide/theming/ #### Default changes With this release, some defaults have changed. The most obvious will likely be the switch to the compact UI style + inline rendering This can be reverted by setting style = "full" inline_height = 0 Read more here: atuinsh/atuin#2249 #### `atuin wrapped` See your stats for 2024 with `atuin wrapped` ![CleanShot 2024-12-27 at 17 10 45@​2x](https://github.com/user-attachments/assets/c7853c47-4e3e-49c7-b811-c0a62ab8c259) #### Build changes Thanks to [@​senekor](https://github.com/senekor), we no longer require protoc available at build time, and instead use `protox` ##### Bug Fixes - *(crate)* Add missing description ([#​2106](atuinsh/atuin#2106)) - *(crate)* Add description to daemon crate ([#​2107](atuinsh/atuin#2107)) - *(daemon)* Add context to error when unable to connect ([#​2394](atuinsh/atuin#2394)) - *(deps)* Pin tiny_bip to 1.0.0 until breaking change resolved ([#​2412](atuinsh/atuin#2412)) - *(docker)* Update Dockerfile ([#​2369](atuinsh/atuin#2369)) - *(history)* Logic for store_failed=false ([#​2284](atuinsh/atuin#2284)) - *(mail)* Incorrect alias and error logs ([#​2346](atuinsh/atuin#2346)) - *(mail)* Enable correct tls features for postmark client ([#​2347](atuinsh/atuin#2347)) - *(theme)* Restore original colours ([#​2339](atuinsh/atuin#2339)) - *(themes)* Restore default theme, refactor ([#​2294](atuinsh/atuin#2294)) - *(tui)* Press ctrl-a twice should jump to beginning of line ([#​2246](atuinsh/atuin#2246)) - *(tui)* Don't panic when search result is empty and up is pressed ([#​2395](atuinsh/atuin#2395)) - Cargo binstall config ([#​2112](atuinsh/atuin#2112)) - Unitless sync_frequence = 0 not parsed by humantime ([#​2154](atuinsh/atuin#2154)) - Some --help comments didn't show properly ([#​2176](atuinsh/atuin#2176)) - Ensure we cleanup all tables when deleting ([#​2191](atuinsh/atuin#2191)) - Add idx cache unique index ([#​2226](atuinsh/atuin#2226)) - Idx cache inconsistency ([#​2231](atuinsh/atuin#2231)) - Ambiguous column name ([#​2232](atuinsh/atuin#2232)) - Atuin-daemon optional dependency ([#​2306](atuinsh/atuin#2306)) - Windows build error ([#​2321](atuinsh/atuin#2321)) - Codespell config still references the ui ([#​2330](atuinsh/atuin#2330)) - Remove dbg! macro ([#​2355](atuinsh/atuin#2355)) - Disable mail by default, resolve [#​2404](atuinsh/atuin#2404) ([#​2405](atuinsh/atuin#2405)) - Time offset display in `atuin status` ([#​2433](atuinsh/atuin#2433)) - Disable the actuated mirror on the x86 docker builder ([#​2443](atuinsh/atuin#2443)) ##### Documentation - *(README)* Fix broken link ([#​2206](atuinsh/atuin#2206)) - Streamline readme ([#​2203](atuinsh/atuin#2203)) - Update quickstart install command ([#​2205](atuinsh/atuin#2205)) ##### Features - *(bash/blesh)* Hook into BLE_ONLOAD to resolve loading order issue ([#​2234](atuinsh/atuin#2234)) - *(client)* Add filter mode enablement and ordering configuration ([#​2430](atuinsh/atuin#2430)) - *(daemon)* Follow XDG_RUNTIME_DIR if set ([#​2171](atuinsh/atuin#2171)) - *(history)* Filter out various environment variables containing potential secrets ([#​2174](atuinsh/atuin#2174)) - *(tui)* Configurable prefix character ([#​2157](atuinsh/atuin#2157)) - *(tui)* Customizable Themes ([#​2236](atuinsh/atuin#2236)) - *(tui)* Fixed preview height option ([#​2286](atuinsh/atuin#2286)) - Use cargo-dist installer from our install script ([#​2108](atuinsh/atuin#2108)) - Add user account verification ([#​2190](atuinsh/atuin#2190)) - Add GitLab PAT to secret patterns ([#​2196](atuinsh/atuin#2196)) - Add several other GitHub access token patterns ([#​2200](atuinsh/atuin#2200)) - Add npm, Netlify and Pulumi tokens to secret patterns ([#​2210](atuinsh/atuin#2210)) - Allow advertising a fake version to clients ([#​2228](atuinsh/atuin#2228)) - Monitor idx cache consistency before switching ([#​2229](atuinsh/atuin#2229)) - Ultracompact Mode (search-only) ([#​2357](atuinsh/atuin#2357)) - Right Arrow to modify selected command ([#​2453](atuinsh/atuin#2453)) - Provide additional clarity around key management ([#​2467](atuinsh/atuin#2467)) - Add `atuin wrapped` ([#​2493](atuinsh/atuin#2493)) ##### Miscellaneous Tasks - *(build)* Compile protobufs with protox ([#​2122](atuinsh/atuin#2122)) - *(ci)* Do not run current ci for ui ([#​2189](atuinsh/atuin#2189)) - *(ci)* Codespell again ([#​2332](atuinsh/atuin#2332)) - *(install)* Use posix sh, not bash ([#​2204](atuinsh/atuin#2204)) - *(nix)* De-couple atuin nix build from nixpkgs rustc version ([#​2123](atuinsh/atuin#2123)) - Add installer e2e tests ([#​2110](atuinsh/atuin#2110)) - Remove unnecessary proto import ([#​2120](atuinsh/atuin#2120)) - Update to rust 1.78 - Add audit config, ignore RUSTSEC-2023-0071 ([#​2126](atuinsh/atuin#2126)) - Setup dependabot for the ui ([#​2128](atuinsh/atuin#2128)) - Cargo and pnpm update ([#​2127](atuinsh/atuin#2127)) - Update to rust 1.79 ([#​2138](atuinsh/atuin#2138)) - Update to cargo-dist 0.16, enable attestations ([#​2156](atuinsh/atuin#2156)) - Do not use package managers in installer ([#​2201](atuinsh/atuin#2201)) - Enable record sync by default ([#​2255](atuinsh/atuin#2255)) - Remove ui directory ([#​2329](atuinsh/atuin#2329)) - Update to rust 1.80 ([#​2344](atuinsh/atuin#2344)) - Update rust to `1.80.1` ([#​2362](atuinsh/atuin#2362)) - Enable inline height and compact by default ([#​2249](atuinsh/atuin#2249)) - Update to rust 1.82 ([#​2432](atuinsh/atuin#2432)) - Update cargo-dist ([#​2471](atuinsh/atuin#2471)) ##### Performance - *(search)* Benchmark smart sort ([#​2202](atuinsh/atuin#2202)) - Create idx cache table ([#​2140](atuinsh/atuin#2140)) - Write to the idx cache ([#​2225](atuinsh/atuin#2225)) ##### Testing - Add env ATUIN_TEST_LOCAL_TIMEOUT to control test timeout of SQLite ([#​2337](atuinsh/atuin#2337)) #### Install atuin 18.4.0 ##### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/atuinsh/atuin/releases/download/v18.4.0/atuin-installer.sh | sh ``` #### Download atuin 18.4.0 | File | Platform | Checksum | |--------|----------|----------| | [atuin-aarch64-apple-darwin.tar.gz](https://github.com/atuinsh/atuin/releases/download/v18.4.0/atuin-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/atuinsh/atuin/releases/download/v18.4.0/atuin-aarch64-apple-darwin.tar.gz.sha256) | | [atuin-x86\_64-apple-darwin.tar.gz](https://github.com/atuinsh/atuin/releases/download/v18.4.0/atuin-x86\_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://github.com/atuinsh/atuin/releases/download/v18.4.0/atuin-x86\_64-apple-darwin.tar.gz.sha256) | | [atuin-aarch64-unknown-linux-gnu.tar.gz](https://github.com/atuinsh/atuin/releases/download/v18.4.0/atuin-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://github.com/atuinsh/atuin/releases/download/v18.4.0/atuin-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [atuin-x86\_64-unknown-linux-gnu.tar.gz](https://github.com/atuinsh/atuin/releases/download/v18.4.0/atuin-x86\_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://github.com/atuinsh/atuin/releases/download/v18.4.0/atuin-x86\_64-unknown-linux-gnu.tar.gz.sha256) | | [atuin-aarch64-unknown-linux-musl.tar.gz](https://github.com/atuinsh/atuin/releases/download/v18.4.0/atuin-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://github.com/atuinsh/atuin/releases/download/v18.4.0/atuin-aarch64-unknown-linux-musl.tar.gz.sha256) | | [atuin-x86\_64-unknown-linux-musl.tar.gz](https://github.com/atuinsh/atuin/releases/download/v18.4.0/atuin-x86\_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://github.com/atuinsh/atuin/releases/download/v18.4.0/atuin-x86\_64-unknown-linux-musl.tar.gz.sha256) | #### Verifying GitHub Artifact Attestations The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the [GitHub CLI](https://cli.github.com/manual/gh_attestation_verify): ```sh gh attestation verify <file-path of downloaded artifact> --repo atuinsh/atuin ``` You can also download the attestation from [GitHub](https://github.com/atuinsh/atuin/attestations) and verify against that directly: ```sh gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation> ``` #### New Contributors - [@​senekor](https://github.com/senekor) made their first contribution in atuinsh/atuin#2122 - [@​injust](https://github.com/injust) made their first contribution in atuinsh/atuin#2166 - [@​davidolrik](https://github.com/davidolrik) made their first contribution in atuinsh/atuin#2196 - [@​julienp](https://github.com/julienp) made their first contribution in atuinsh/atuin#2210 - [@​eth3lbert](https://github.com/eth3lbert) made their first contribution in atuinsh/atuin#2246 - [@​philtweir](https://github.com/philtweir) made their first contribution in atuinsh/atuin#2236 - [@​lucacome](https://github.com/lucacome) made their first contribution in atuinsh/atuin#2257 - [@​JRGould](https://github.com/JRGould) made their first contribution in atuinsh/atuin#2284 - [@​jaxvanyang](https://github.com/jaxvanyang) made their first contribution in atuinsh/atuin#2337 - [@​cultpony](https://github.com/cultpony) made their first contribution in atuinsh/atuin#2369 - [@​Reverier-Xu](https://github.com/Reverier-Xu) made their first contribution in atuinsh/atuin#2433 - [@​bboynton97](https://github.com/bboynton97) made their first contribution in atuinsh/atuin#2453 - [@​pamburus](https://github.com/pamburus) made their first contribution in atuinsh/atuin#2430 **Full Changelog**: atuinsh/atuin@v18.3.0...v18.4.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS44My4zIiwidXBkYXRlZEluVmVyIjoiMzkuODMuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
I've been running Atuin this way for a really long time, and have heard from quite a few users now that they weren't a fan of Atuin using the whole screen.
If you'd prefer a compact and inline view (as in the screenshot), react with 👍
If you want things to stay as they are, please react with 👎
This is how it looks:
However I have also learned that you only hear from people who don't like the way things currently are, right up until you change them - and then hear from everyone that was happy and quiet.
I'll try and circulate this PR as much as I can. It's the same as adding
to the config file.
If this change is merged, it will change how Atuin looks for people who don't have anything set in their config. If they don't like it, they can restore how things were with
We could change the default config file so this only happens for new users, but I'd like to be able to change defaults at some point and would like to see the general opinion first.
I can't think of a better way of getting feedback, short of opt-in telemetry. That's a different discussion :)
Checks