Share Your Desktop

I have no experience with customizing the fish shell but you can make bash and zsh as complicated as you want so I would assume the same goes for the fish shell. As an example the examples on the Archwiki page for the fish shell look way more complicated than my zsh config, also you only have write your shell config once and then can use it in a new install and add things to it as you like so it’s not like you start from scratch every time.

I do think the official documentation for the fish shell looks way better than the official documentation for the zsh. People that are used to a POSIX shell might not like going to something that is none-POSIX shell but I think it’s a plus for fish’s documentation that they made a section for bash users to show the differences.

1 Like

Yes but for zsh to get it like fish , you nedd oh my zsh … for bas somthing too. Fish is exelent … it works , it has 6 predefined config that are great and … nothing need to be write by hand (web interface fish-config)

And yes … i have start with zsh … but nevew got the config how i wanted it to work :slight_smile: … and fish works how i want no need to config :smiley:

I’ve seen a lot of topics on the Arch forums where different people had oh-my-zsh break something in their user profile, so I haven’t used it. I only use what I need which is zsh-autosuggestions, zsh-syntax-highlighting zsh-history-substring-search and powerline-go for my git information and auto-completion is built in. Those are the main things that fish shell advertises with, the rest I don’t need and I prefer to use POSIX-compliant shell and fish is designed to not be POSIX-compliant.

You only need zsh, fortune, starship (and many other configs you want)and voila

Keep it simple. Posix is bash, konsole is zsh. In the end its up to you

2 Likes

Do you mean this with fortune, if so it doesn’t sound like I’m missing much? I am using powerline-go because I find it nice and simple for customizing my shell a bit and it nice for keeping track of what’s happening in a git repo, I always found there is too much to configure with starship. I am curious to know what parts of starship have you configured?

1 Like

Exactly. But that’s just a bit of playing around. You really don’t need it, but a nerdy saying at the start of a terminal is funny

I personally don’t like Powerline. I just wanted to have it simple.

There really is a lot to configure. But you can also just leave it simple.

If you are interested, this is my starship.toml

starship.toml
format = """
$directory\
$git_branch\
$git_status\
$fill\
$python\
$lua\
$nodejs\
$golang\
$haskell\
$rust\
$ruby\
$aws\
$docker_context\
$jobs\
$time\
$username\
$hostname\
$cmd_duration\
$line_break\
$character"""

add_newline = true
palette = "nord"

[character]
success_symbol = '[❯](bold green) '
error_symbol = '[✗](bold red) '

[cmd_duration]
min_time = 5
show_milliseconds = true
style = 'fg:yellow'
format = '[$duration]($style)'

[time]
disabled = false
time_format = "%R" # Hour:Minute Format
style = "fg:yellow"
format = '[ $time ]($style)'

[username]
style_user = "fg:green"
style_root = "fg:red"
format = "[$user  ]($style) "
disabled = false
show_always = true

[hostname]
ssh_only = false
ssh_symbol = " "
format = 'on [EndeavourOS  ](purple) '
trim_at = "."
disabled = false


[directory]
style = 'bold fg:blue'
format = '[$path ]($style)[$read_only]($read_only_style)'
truncation_length = 4
truncation_symbol = '…/'
truncate_to_repo = false

#[directory.substitutions]
#"Dokumente" = "󰈙 "
#"Downloads" = " "
#"Musik" = " "
#"Bilder" = " "

[git_branch]
style = 'fg:green'
symbol = ' '
format = '[on](white) [$symbol$branch ]($style)'

[git_status]
style = 'fg:red'
format = '([$all_status$ahead_behind]($style) )'

[fill]
symbol = ' '

[python]
style = 'teal'
symbol = ' '
format = '[${symbol}${pyenv_prefix}(${version} )(\($virtualenv\) )]($style)'
pyenv_version_name = true
pyenv_prefix = ''

[lua]
symbol = ' '

[nodejs]
style = 'blue'
symbol = ' '

[golang]
style = 'blue'
symbol = ' '

[haskell]
style = 'blue'
symbol = ' '

[rust]
style = 'orange'
symbol = ' '

[ruby]
style = 'blue'
symbol = ' '

[package]
symbol = '󰏗 '

[aws]
symbol = ' '
style = 'yellow'
format = '[$symbol($profile )(\[$duration\] )]($style)'

[docker_context]
symbol = ' '
style = 'fg:teal'
format = '[$symbol]($style) $path'
detect_files = ['docker-compose.yml', 'docker-compose.yaml', 'Dockerfile']
detect_extensions = ['Dockerfile']

[jobs]
symbol = ' '
style = 'red'
number_threshold = 1
format = '[$symbol]($style)'

[palettes.nord]
dark_blue = '#5E81AC'
blue = '#81A1C1'
teal = '#88C0D0'
red = '#BF616A'
orange = '#D08770'
green = '#A3BE8C'
yellow = '#EBCB8B'
purple = '#B48EAD'
gray = '#434C5E'
black = '#2E3440'
white='#D8DEE9'

[palettes.onedark]
dark_blue='#61afef'
blue='#56b6c2'
red='#e06c75'
green='#98c379'
purple='#c678dd'
cyan='#56b6c2'
orange='#be5046'
yellow='#e5c07b'
gray='#828997'
white ='#abb2bf'
black='#2c323c'

And thats my zshrc, its all for my needs.

zshrc

`# Created by swh for 5.9

#exa alias
alias la=“eza --long --all --group”
alias ll=‘eza -la --icons --octal-permissions --group-directories-first’
alias ls=‘eza -1 --icons --group-directories-first’

#Plugins
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
if [ $TERM = “xterm-256color” ]; then
ZSH_AUTOSUGGEST_STRATEGY=(history completion)
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE=“fg=#404040”
ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=20
ZSH_AUTOSUGGEST_CLEAR_WIDGETS+=(bracketed-paste)
fi

#bracked paste-magic
if [ $TERM = “xterm-256color” ]; then
autoload -U url-quote-magic bracketed-paste-magic
zle -N self-insert url-quote-magic
zle -N bracketed-paste bracketed-paste-magic
fi

Now the fix, setup these two hooks:

pasteinit() {
OLD_SELF_INSERT=${${(s.:.)widgets[self-insert]}[2,3]}
zle -N self-insert url-quote-magic
}
pastefinish() {
zle -N self-insert $OLD_SELF_INSERT
}
zstyle :bracketed-paste-magic paste-init pasteinit
zstyle :bracketed-paste-magic paste-finish pastefinish

source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern)

#gpg passwort
alias gen=‘< /dev/urandom tr -dc A-Za-z0-9_/ | head -c30; echo’

Passwort erzeugen. Aufruf: pw Länge_des_Passwortes

function pw() {
< /dev/urandom tr -dc A-Za-z0-9_/ | head -c$1; echo
}

#passwort mit pwgen
alias pw=‘pwgen -sy 32 6’

#eos-updater

alias upd=‘eos-update’
alias ua=‘eos-update --aur’

#meld pacdiff
alias diff=‘fd pacnew /etc’

#ytfzf mit thumbnauils
alias ytf=‘ytfzf -T chafa --show-thumbnails’

#Plasma Shell replace
alias shell=‘systemctl --user restart plasma-plasmashell.service’

#Letzte updates
alias last=‘paclog | grep upgraded | tail -n 200’

#history
alias list=‘history 0 | fzf’

#source /usr/share/zsh/plugins/zsh-sudo/sudo.plugin.zsh
#sudo with esc esc
sudo-command-line() {
[[ -z $BUFFER ]] && zle up-history
if [[ $BUFFER == sudo\ * ]]; then
LBUFFER=“${LBUFFER#sudo }”
elif [[ $BUFFER == $EDITOR\ * ]]; then
LBUFFER=“${LBUFFER#$EDITOR }”
LBUFFER=“sudoedit $LBUFFER”
elif [[ $BUFFER == sudoedit\ * ]]; then
LBUFFER=“${LBUFFER#sudoedit }”
LBUFFER=“$EDITOR $LBUFFER”
else
LBUFFER=“sudo $LBUFFER”
fi
}
zle -N sudo-command-line
bindkey “\e\e” sudo-command-line
bindkey -M vicmd ‘\e\e’ sudo-command-line

#History
export HISTFILE=~/.zsh_history
export HISTSIZE=10000
export SAVEHIST=10000

#fortune
fortune

#mcfly
eval “$(mcfly init zsh)”
export MCFLY_PROMPT=“❯”
#export MCFLY_KEY_SCHEME=vim
export MCFLY_FUZZY=2
export MCFLY_RESULTS=50
export MCFLY_INTERFACE_VIEW=BOTTOM
export MCFLY_RESULTS_SORT=LAST_RUN

#starship
eval “$(starship init zsh)”

`

2 Likes

What don’t you find simple about powerline, I only have to configure that it needs to be loaded by zsh. My shell looks like this.

Thanks for sharing! I might have a look at starship again.

3 Likes

I meant the colorful prompt. I also had it configured with starship, but then I went back to a simple prompt. A matter of taste :wink:

2 Likes

Can you share what your shell looks like with starship, so I get an idea how that looks like when it is configured?

1 Like

Sure, here it is

2 Likes

Here it is again more detailed. In git and eza ls is listed below each other but this configuration has to be done in zshrc

3 Likes

Thanks for sharing! Here’s what your config looks like on my system.

Will play around with it for a bit. There’s just a lot too configure with starship, stuff I don’t really care much about or wouldn’t use.

Nice!

It is still early in the day. There’s nothing better to do than deal with starship over the weekend :rofl:

2 Likes

:rofl: One reason why I switched over from Arch to Silverblue is because I got tired of me spending more time tweaking, configuring and trying out something new whenever it looked interesting enough. Not about to spend my entire weekend configuring a shell, but will still try to see if I can come up with a decent config without spending too much time on it.

1 Like

It also took me a few attempts before I got the hang of it. Once you’ve understood it, it’s really easy

Hell, I remember having used fortune on my MX Linux setup. It broke my heart when I realised there is no Polish pack for fortune on Arch (which had offensive jokes without resorting to additional configuration) so I decided to switch to shell-color-scripts for additional terminal bling.

BTW, a few weeks ago I decided to slim down my prompt a bit. I didn’t want to boast much about it as it’s rather a subtle change. However, I think it looks much better now:

8 Likes

Nice! This is really very well done

1 Like

Thank you!

1 Like

I just remembered why i got away from plasma … :frowning:
They sudo polici … iposibility to run theri app with root and unusable solution they got insted …

So i thing i need to go somewhere else … hyprland not stable enough , plasma unusable for daily work … sway - qtile - river … ?

I actually found something I might be able to work with. They have a few presets.

I can just pick one that I like and adjust it a bit to my liking, safes me time.

1 Like