From 0b32452a6cad1ae40d431abeded4d3308811764d Mon Sep 17 00:00:00 2001 From: Jens Luedicke Date: Wed, 8 Oct 2025 14:31:52 +0200 Subject: [PATCH] Add spaceship configuration --- .gitmodules | 3 + zsh/spaceship-prompt | 1 + zsh/spaceship.zsh | 15 +++++ zshrc | 150 ++++++++++++++++++++++--------------------- 4 files changed, 96 insertions(+), 73 deletions(-) create mode 100644 .gitmodules create mode 160000 zsh/spaceship-prompt create mode 100644 zsh/spaceship.zsh diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..8741a52 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "zsh/spaceship-prompt"] + path = zsh/spaceship-prompt + url = https://github.com/spaceship-prompt/spaceship-prompt.git diff --git a/zsh/spaceship-prompt b/zsh/spaceship-prompt new file mode 160000 index 0000000..689a04c --- /dev/null +++ b/zsh/spaceship-prompt @@ -0,0 +1 @@ +Subproject commit 689a04c10a55a7a83dfc5b58a5e4b693bada91ea diff --git a/zsh/spaceship.zsh b/zsh/spaceship.zsh new file mode 100644 index 0000000..1f0a984 --- /dev/null +++ b/zsh/spaceship.zsh @@ -0,0 +1,15 @@ +# Time +SPACESHIP_TIME_SHOW=true +SPACESHIP_TIME_COLOR=yellow + +# Directory +SPACESHIP_DIR_TRUNC=3 +SPACESHIP_DIR_TRUNC_REPO=false +SPACESHIP_DIR_COLOR=cyan + +# Git +SPACESHIP_GIT_SHOW=true +SPACESHIP_GIT_BRANCH_SHOW=true +SPACESHIP_GIT_STATUS_SHOW=true +SPACESHIP_GIT_STATUS_PREFIX=" [" +SPACESHIP_GIT_STATUS_SUFFIX="]" diff --git a/zshrc b/zshrc index 40973c1..4ed3d97 100755 --- a/zshrc +++ b/zshrc @@ -48,80 +48,84 @@ fts() { session=$(tmux list-sessions -F "#{session_name}" 2>/dev/null | fzf --preview "tmux list-windows -t {} | column -t" --preview-window=down:20%) && tmux switch-client -t "$session" } -# Enhanced Zsh Prompt Configuration +# Spaceship Prompt +source ~/.dotfiles/zsh/spaceship-prompt/spaceship.zsh-theme +source ~/.dotfiles/zsh/spaceship.zsh + +# Enhanced Zsh Prompt Configuration (replaced by Spaceship) # Enable prompt substitution and colors -setopt PROMPT_SUBST -autoload -U colors && colors +# setopt PROMPT_SUBST +# autoload -U colors && colors # Git prompt function -git_prompt_info() { - local ref - ref=$(git symbolic-ref HEAD 2> /dev/null) || \ - ref=$(git rev-parse --short HEAD 2> /dev/null) || return +# git_prompt_info() { +# local ref +# ref=$(git symbolic-ref HEAD 2> /dev/null) || \ +# ref=$(git rev-parse --short HEAD 2> /dev/null) || return +# +# # Get git status +# local git_status="" +# local STATUS=$(git status --porcelain 2> /dev/null | tail -1) +# +# if [[ -n $STATUS ]]; then +# git_status=" %{$fg[yellow]%}✗%{$reset_color%}" +# else +# git_status=" %{$fg[green]%}✓%{$reset_color%}" +# fi +# +# echo " %{$fg[cyan]%}(${ref#refs/heads/}${git_status}%{$fg[cyan]%})%{$reset_color%}" +# } +# +# # Virtual environment indicator +# virtualenv_prompt_info() { +# if [[ -n "$VIRTUAL_ENV" ]]; then +# echo "%{$fg[magenta]%}($(basename $VIRTUAL_ENV))%{$reset_color%} " +# fi +# } +# +# # Exit code indicator +# exit_code_prompt() { +# echo "%(?.%{$fg[green]%}➜%{$reset_color%}.%{$fg[red]%}➜%{$reset_color%})" +# } +# +# # Directory with truncation +# directory_prompt() { +# echo "%{$fg[blue]%}%3~%{$reset_color%}" +# } +# +# # Username and hostname for SSH sessions +# user_host_prompt() { +# if [[ -n "$SSH_CONNECTION" ]]; then +# echo "%{$fg[yellow]%}%n@%m%{$reset_color%} " +# fi +# } +# +# # Time in 24-hour format +# time_prompt() { +# echo "%{$fg[lightgray]%}%T%{$reset_color%}" +# } +# +# # Main prompt +# PROMPT='$(user_host_prompt)$(virtualenv_prompt_info)$(directory_prompt)$(git_prompt_info) $(exit_code_prompt) ' +# +# # Right prompt with time +# RPROMPT='$(time_prompt)' +# +# # Enable command execution time display +# function preexec() { +# timer=${timer:-$SECONDS} +# } +# +# function precmd() { +# if [ $timer ]; then +# timer_show=$(($SECONDS - $timer)) +# if [ $timer_show -ge 3 ]; then +# export RPS1="%{$fg[gray]%}${timer_show}s%{$reset_color%} $(time_prompt)" +# else +# export RPS1="$(time_prompt)" +# fi +# unset timer +# fi +# } - # Get git status - local git_status="" - local STATUS=$(git status --porcelain 2> /dev/null | tail -1) - - if [[ -n $STATUS ]]; then - git_status=" %{$fg[yellow]%}✗%{$reset_color%}" - else - git_status=" %{$fg[green]%}✓%{$reset_color%}" - fi - - echo " %{$fg[cyan]%}(${ref#refs/heads/}${git_status}%{$fg[cyan]%})%{$reset_color%}" -} - -# Virtual environment indicator -virtualenv_prompt_info() { - if [[ -n "$VIRTUAL_ENV" ]]; then - echo "%{$fg[magenta]%}($(basename $VIRTUAL_ENV))%{$reset_color%} " - fi -} - -# Exit code indicator -exit_code_prompt() { - echo "%(?.%{$fg[green]%}➜%{$reset_color%}.%{$fg[red]%}➜%{$reset_color%})" -} - -# Directory with truncation -directory_prompt() { - echo "%{$fg[blue]%}%3~%{$reset_color%}" -} - -# Username and hostname for SSH sessions -user_host_prompt() { - if [[ -n "$SSH_CONNECTION" ]]; then - echo "%{$fg[yellow]%}%n@%m%{$reset_color%} " - fi -} - -# Time in 24-hour format -time_prompt() { - echo "%{$fg[lightgray]%}%T%{$reset_color%}" -} - -# Main prompt -PROMPT='$(user_host_prompt)$(virtualenv_prompt_info)$(directory_prompt)$(git_prompt_info) $(exit_code_prompt) ' - -# Right prompt with time -RPROMPT='$(time_prompt)' - -# Enable command execution time display -function preexec() { - timer=${timer:-$SECONDS} -} - -function precmd() { - if [ $timer ]; then - timer_show=$(($SECONDS - $timer)) - if [ $timer_show -ge 3 ]; then - export RPS1="%{$fg[gray]%}${timer_show}s%{$reset_color%} $(time_prompt)" - else - export RPS1="$(time_prompt)" - fi - unset timer - fi -} - -source /home/jens/.config/broot/launcher/bash/br +source /home/jenlue/.config/broot/launcher/bash/br