I prefer fish tbh
Linux
A community for everything relating to the GNU/Linux operating system
Also check out:
Original icon base courtesy of [email protected] and The GIMP
can you fish in ubuntu
U can fish on any Linux distro. Most major distros have binaries but those that don't u can easily build it with cargo.
Tldr yes.
Same, it's just more friendly:)
Not Bash, but zsh.
The host is there only because I'm usually logged in to 7 machines at once. The right prompt is the bare minimum path context, and the command # for easier !-re-execute; it disappears if the command gets long enough.
There's a bare minimum of cruft; no 2-line prompts, minimum verbosity in the prompt itself, because it's otherwise just noise that interferes with the output of whatever I'm doing and takes up space. It's especially important if I'm logged in via termux on my phone or something, where space is at a premium. What am I saying? Space is always at a premium.
$PS1 is
%{$fg[green]%}%m %{$fg[blue]%}ยป%{$reset_color%}
$RPROMPT is
%{$fg[green]%}%(5~|%-1~/โฆ/%3~|%4~) %{$fg[yellow]%}%h%{$reset_color%}
You can see here my theme with autodetect of Python (I work a lot in Python). The orange bit is the error code returned by the previous command. Git is supported as well, and looks pretty much like powerline-gitstatus
, as you'll read about below.
First, lets make Bash a little better:
# throw this in your `~/.bashrc`, and then `source ~/.bashrc` for it to take effect, or just restart your terminal.
# == shopts ==
# https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html
shopt -s autocd # cd into folder without cd, so 'dotfiles' will cd into the folder
shopt -s cdspell # attempt spelling correcting on folders
shopt -s direxpand # expand a partial dir name
shopt -s checkjobs # stop shell from exit when there's jobs running
shopt -s dirspell # attempt spelling correcting on folders
shopt -s expand_aliases # aliases are expanded
shopt -s histappend # append to the history file, don't overwrite it
shopt -s histreedit # lets your re-edit old executed command
shopt -s histverify # I'm confused.
shopt -s hostcomplete # performs completion when a word contains an '@'
shopt -s cmdhist # save multiple-line command in single history entry
shopt -u lithist # multi-lines are saved with embedded newlines rather than semicolons; explictly unset
shopt -s checkwinsize # update LINES and COLUMNS to fit output
Autocd is a big one here, cdspell and direxpand as well. Ensures I don't need Zsh for the same experience. With Zsh I'd just get annoyed by small stuff like having to wrap things in quotes (I think pip install some_lib[some_extra]
works in Bash, but not in Zsh And Ohmyzsh just felt it kept slowing things down, so I actually dislike Zsh ^(please don't kill me) >_>
Anyway, I based this on powerline-status
+ powerline-gitstatus
(if you want to use that instead (no, my config doesn't work), just sudo apt install powerline-status powerline-gitstatus
- DO NOT USE THE PYPI
VERSION (it's too outdated, and a pain to install)) because I had issues with finding the right combination of my configuration and which libraries to install for bash - there are too damn many: powerline-bash, powerline-status, powerline-rs, powerline-go, etc, etc. And they all do things just that little bit different.
Anyway, here is my ~/.config/starship.toml
(archive1, archive2). It's a little long, and can probably be shortered, but that might break something again, and I'm not willing to risk anything right now.
https://gist.github.com/NostraDavid/675a0706716b98816fd2809560ffe42c
I'm usually not using bash locally, and remotely don't change the prompt, but Starship works in bash too.
I use Nushell with Starship (cross platform prompt) in Windows Terminal.
~
nu โฏ took 52ms
Path above prompt, prompt with shell name and a character, and on the right side how long the previous command took. The Character changes color from green to red when the last command exited with a non-0/-success exit code.
In a git repo folder it shows git info too - the branch symbol won't show here because here is not a nerd font with symbols; I'll add a screenshot:
C:\dev\dotnet\meercat-monitor on ๏ main [?]
nu โฏ took 1ms
Starship can show a bunch of status/state information for various tools, package managers, docker, etc.
I wouldn't show my PROMPT_COMMAND
, but it's a nu closure so not really comparable to bash. But as I said, Starship works with Bash too.