Commit graph

24 commits

Author SHA1 Message Date
8b2f9b6815
zsh: Add transient prompt
As an experimental change (and following my adding a transient prompt
for nushell which I like), this change adds a transient prompt plugin
for zsh. It then defines the 'tansient prompt' prompt to use starship so
functionally nothing should change about the prompt (or the rprompt),
except for being transient, showing only a character for previous prompts.

From: https://github.com/starship/starship/issues/888#issuecomment-3597694479
2025-12-12 09:50:41 +01:00
b6e84bbc99
zsh: Add fzf-tab manpage preview for commands
If a command has a manpage associated, we now display it in the
fzf-preview box that fzf-tab completion shows.
2025-12-12 09:50:40 +01:00
42f2b034b5
zsh: Change autosuggest strategy and max size
New combined strategy will first gather suggestions from the history,
and if none are found fall back on normal completion options (e.g. `ls `
may suggest files in current dir, etc).

Also changed the max size that completions will use as buffer to 20, so
we don't have auto suggestions for _huge_ scripts anymore.
2025-12-12 09:50:38 +01:00
e643a2e45d
zsh: Ignore commands starting with pass for history 2025-12-12 09:50:37 +01:00
d9c88d99f3
zsh: Reverse alias expansion between space and ctrl space
Previously, <space> would expand any alias and all environment
variables while <c-space> would simply put a normal space on the zle
without performing any expansion.

This change reverses this, so that nothing gets expanded by default
_but_ if the user wants to specifically expand something the option
exists to simply use <c-space> to see the expanded version.
2025-12-12 09:50:37 +01:00
acc2496bd6
terminal: Move bash and zsh into config directory
With the power of dotter for dotfile management we can move the files we
want to link anywhere in our repository.

So finally we're making use of it to keep the bash config files in the
`terminal/.config/bash` directory, as well as removing the leading dot
from both the zsh configuration files.
2025-10-13 11:26:22 +02:00
fa7e740249
terminal: Add fzf file insertion and zoxide cd key binds
The following is added to all three shells bash, zsh, nushell:

Pressing c-t at any time lets you insert a file/dir at the current
cursor location using fzf. Same for 'T' in vicmd mode.

Pressing alt-c at any time lets you jump to that directory using zoxide,
with the zle editor content intact. Same for 'C' in vicmd mode.

Zsh implementation from: https://github.com/ajeetdsouza/zoxide/issues/357
Bash implementation: https://github.com/ajeetdsouza/zoxide/issues/516

Nushell implementation taken from: https://github.com/junegunn/fzf/issues/4122

TODO: Nushell fzf mapping has one problem in that it does not quote the
selected file in any way. So any file with e.g. a space in it will have
to be manually fixed afterwards.
2025-10-13 11:26:22 +02:00
5a4d0051be
zsh: Fix carapace and fzf-tab compatibility
As mentioned in
https://github.com/carapace-sh/carapace-bin/issues/2819#issuecomment-3092307945,
fzf-tab directory completes are empty if you try to complete on a
directory without any prior input.

I.e.:

`ls -hal ~/.config/a<tab>` shows output (dirs starting with a).
`ls -hal ~/.config/<tab>` is empty.

This fixes the issue by making the query string use the full inserted
value.
2025-09-21 10:29:13 +02:00
4b65069436
terminal: Add carapace completions to all shells
Bash, nushell and zsh all make use of carapace completions by default.
2025-09-05 09:11:07 +02:00
71c5ac3f19
atuin: Set up configuration 2025-03-15 20:08:49 +01:00
19577a7c83
zsh: Show help when hitting K from vi mode
We load the 'run-help' function to quickly show us documentation for the
command under cursor when we enter vi mode and then hit 'K'.
This mimics the actual vim setup where K will generally show
documentation/hover info/help as well.

The command invocation requires an 'even amount of arguments' which I
don't fully understand but have no time to read into and fix currently,
so it just gets another superfluous 'run-help' tacked on at the end.
2025-03-06 21:21:57 +01:00
8b4e9f31ba
zsh: Fix loading aliases from .zsh extensions
We should load alias files from .zsh extension files in the alias dir,
not .sh files.
2025-02-25 23:25:22 +01:00
f04340acbd zsh: Use zr plugin manager if it exists
By default we use the 'zr' plugin manager for zsh. It is quick and
painless and takes managing the plugins across two environments not our
problem anymore.
2025-02-24 14:22:36 +01:00
2c1487ab93
repo: Remove traces of tmux configuration
While I never disliked tmux I have not been using it for absolute ages
now, ever since starting to multiplex with wezterm. Wezterm can (at
least with my current setup) *not* replace all tmux functionality -
especially running multiple sessions in a detachable way on a remote
server - but I have never needed those in a long time now.

Detachable sessions I can create instead with `abduco`.
2025-01-04 10:57:48 +01:00
97114d74fb
terminal: Add unified history for shells
Added atuin for nice shell history. Trying it out for now
but seems non-intrusive enough that I will probably keep
it for a while even if I don't use it.
2023-12-30 21:33:19 +01:00
a5727c135b
zsh: Change cursor shape for vi modes 2023-12-30 21:33:18 +01:00
546195ad56
terminal: Switch to starship prompt
Switched terminal environments (bash,zsh,nushell) to starship
prompt (from pure-prompt/no prompt). Is mimicking the pure-
prompt however, so no big change visible. Needs additional
package on the system, which is added to the packages.

Some remaining issues with nushell (vi prompt indicator).
2023-12-30 21:33:16 +01:00
eeca1f3817
zsh: Remove path deduplication
Aside from some more needed things, the path deduplication function is
the most time-consuming invocation on zsh startup, taking almost
100ms on my system.

Perhaps it would be reasonable to re-introduce when the first invocation
from path is occurring but it is simply too much time taken for each
time I start a new shell instance for now.
2023-12-04 08:32:49 +01:00
334f3032e8
terminal: Exchange fasd for zoxide
fasd is unmaintained and slower than zoxide. The transferral
was painless. I imported my old database and can continue as
before. It does not care about files but that is completely
fine for me. Same `z` invocation as before. Has the
'interactive' mode on `zi` which is also completely fine.
2023-09-28 14:41:33 +02:00
06ccfe03b9
zsh: Source zsh alias file if it exists 2023-06-20 13:00:16 +02:00
f08fa474d6
zsh: Remove double call of env scripts
On startup zsh would call all zsh env scripts (situated in `zsh/env`
or `zsh/env.d/*.zsh`) *and* all sh scripts (in `sh/env` or
`sh/env.d/*.sh`).
However, by that point, those scripts had already been sourced once - so
they just double up startup time.
2023-02-09 09:39:21 +01:00
274cc8026a
sh: Add distrobox alias and enable displaying host
Add a simple alias to quickly use distrobox with `db` alias, and modify
pure prompt initialization slightly so that it displays a hostname when
in a distrobox container (akin to operating from ssh or normal container
usage).

HACKY implementation makes use of both an internal pure prompt api
(see here https://github.com/sindresorhus/pure/issues/585)
and a distrobox env var that I am not sure how exposed it is either.
Powerlevel10k uses a similar method though, so maybe it is fine
(see here 33916e91a7/internal/p10k.zsh (L8336)).
2023-01-10 16:55:25 +01:00
99a3c0d314
sh: Add conditionals to plugin loading 2023-01-10 15:37:45 +01:00
9781b26b22
terminal: Create module to consolidate term utils
Terminal application, a variety of shell configurations, terminal file
and session management all consolidated in one place.
2023-01-07 16:11:40 +01:00