Begin moving away from org file
This commit is contained in:
parent
e038b8c08c
commit
5f5a3c04ea
13 changed files with 346 additions and 219 deletions
219
dotfiles.org
219
dotfiles.org
|
|
@ -55,229 +55,10 @@ This file contains all configurations across all my machines. Well, most of them
|
|||
Fish shell configuration using starship prompt.
|
||||
|
||||
*** Main Configuration
|
||||
#+begin_src fish :tangle ~/.config/fish/config.fish
|
||||
fish_vi_key_bindings
|
||||
|
||||
# Initialize starship prompt
|
||||
starship init fish | source
|
||||
|
||||
# Load aliases if they exist
|
||||
test -f ~/.config/fish/aliases.fish && source ~/.config/fish/aliases.fish
|
||||
#+end_src
|
||||
|
||||
*** Mode Prompt
|
||||
Disable default mode indicator since starship handles it
|
||||
#+begin_src fish :tangle ~/.config/fish/functions/fish_mode_prompt.fish
|
||||
function fish_mode_prompt
|
||||
end
|
||||
#+end_src
|
||||
|
||||
*** Starship Prompt
|
||||
Configure the starship prompt appearance and behavior
|
||||
#+begin_src toml :tangle ~/.config/starship.toml
|
||||
# Multi-line prompt with project context
|
||||
format = """
|
||||
[╭─](bold blue) $directory\
|
||||
$fill\
|
||||
$git_branch$git_status$kubernetes$python$nodejs$rust$golang$docker_context
|
||||
[╰─](bold blue)$character"""
|
||||
|
||||
# Add fill module for right alignment
|
||||
[fill]
|
||||
symbol = " "
|
||||
style = "bold blue"
|
||||
|
||||
# Directory display with single-letter truncation
|
||||
[directory]
|
||||
style = "bold white"
|
||||
truncation_length = 1
|
||||
truncate_to_repo = true
|
||||
fish_style_pwd_dir_length = 1
|
||||
format = "[$path]($style)"
|
||||
|
||||
# Command prompt character
|
||||
[character]
|
||||
success_symbol = "[❯](bold green)"
|
||||
error_symbol = "[❯](bold red)"
|
||||
vimcmd_symbol = "[❮](bold green)"
|
||||
|
||||
# Git branch display
|
||||
[git_branch]
|
||||
format = "[$symbol$branch]($style)"
|
||||
style = "bold purple"
|
||||
symbol = " " # Git branch symbol
|
||||
|
||||
# Git status indicators
|
||||
[git_status]
|
||||
format = '([\[$ahead_behind$staged$modified$deleted\]]($style) )'
|
||||
style = "bold cyan"
|
||||
# Repository status compared to remote
|
||||
ahead = "⇡${count}" # Local repo has ${count} commits not pushed to remote
|
||||
behind = "⇣${count}" # Remote has ${count} commits not in local repo
|
||||
diverged = "⇕⇡${ahead_count}⇣${behind_count}" # Local and remote have diverged
|
||||
|
||||
# Working tree status
|
||||
staged = "+${count}" # Number of staged files
|
||||
modified = "!${count}" # Number of files with unstaged changes
|
||||
deleted = "✘${count}" # Number of deleted files
|
||||
untracked = "" # Hide untracked files indicator (was "?${count}")
|
||||
|
||||
# Note: Other git status symbols available but hidden for cleaner display:
|
||||
# conflicted = "✖" # Merge conflicts
|
||||
# stashed = "≡" # Stashed changes
|
||||
# renamed = "»" # Renamed files
|
||||
|
||||
# Kubernetes context
|
||||
[kubernetes]
|
||||
format = '[$symbol$context( \($namespace\))]($style) '
|
||||
style = "bold blue"
|
||||
symbol = "☸ "
|
||||
disabled = true # Default to disabled
|
||||
detect_files = ["k8s", "kubernetes", "k3d.yaml", "kubeconfig.yaml"] # Only show in directories with these files
|
||||
|
||||
# Python environment
|
||||
[python]
|
||||
format = '[$symbol$virtualenv]($style) '
|
||||
style = "bold yellow"
|
||||
symbol = "🐍 "
|
||||
|
||||
# Node.js
|
||||
[nodejs]
|
||||
format = '[$symbol($version )]($style)'
|
||||
style = "bold green"
|
||||
symbol = "⬢ "
|
||||
|
||||
# Rust
|
||||
[rust]
|
||||
format = '[$symbol($version )]($style)'
|
||||
style = "bold red"
|
||||
symbol = "🦀 "
|
||||
|
||||
# Docker
|
||||
[docker_context]
|
||||
format = '[$symbol$context]($style) '
|
||||
style = "bold blue"
|
||||
symbol = "🐋 "
|
||||
|
||||
# Golang
|
||||
[golang]
|
||||
format = '[$symbol($version )]($style)'
|
||||
style = "bold cyan"
|
||||
symbol = "Go "
|
||||
#+end_src
|
||||
error_symbol = "[❯](red)"
|
||||
vimcmd_symbol = "[❮](green)"
|
||||
|
||||
# Git branch display
|
||||
[git_branch]
|
||||
format = "[$branch]($style)"
|
||||
style = "bright-black"
|
||||
|
||||
# Git status indicators
|
||||
[git_status]
|
||||
format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218) ($ahead_behind$stashed)]($style)"
|
||||
style = "cyan"
|
||||
conflicted = "✖"
|
||||
untracked = "+"
|
||||
modified = "!"
|
||||
staged = "+"
|
||||
renamed = "»"
|
||||
deleted = "✘"
|
||||
stashed = "≡"
|
||||
|
||||
# Command duration
|
||||
[cmd_duration]
|
||||
min_time = 500
|
||||
format = "[$duration]($style) "
|
||||
|
||||
# Username display
|
||||
[username]
|
||||
show_always = false
|
||||
style_user = "white bold"
|
||||
style_root = "red bold"
|
||||
|
||||
# Hostname display
|
||||
[hostname]
|
||||
ssh_only = true
|
||||
format = "[$hostname]($style) "
|
||||
trim_at = "-"
|
||||
style = "bold dimmed green"
|
||||
#+end_src
|
||||
|
||||
** Tmux
|
||||
#+begin_src txt :tangle ~/.config/tmux/tmux.conf
|
||||
# Required for yazi
|
||||
set -g allow-passthrough on
|
||||
set -ga update-environment TERM
|
||||
set -ga update-environment TERM_PROGRAM
|
||||
|
||||
# set-option -g default-shell /usr/bin/fish
|
||||
# set -g default-terminal "screen-256color"
|
||||
# # set-window-option -g mode-keys vi
|
||||
|
||||
# set-window-option -g automatic-rename on
|
||||
set-window-option -g mode-keys vi
|
||||
|
||||
# Blank space between status and bottom of window
|
||||
set -Fg 'status-format[1]' '#{status-format[0]}'
|
||||
set -g 'status-format[0]' '#[bg=black] '
|
||||
set -g status 2
|
||||
|
||||
# Smart pane switching with awareness of Vim splits.
|
||||
# See: https://github.com/christoomey/vim-tmux-navigator
|
||||
# Adapted to avoid fzf conflicts
|
||||
|
||||
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
|
||||
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
|
||||
|
||||
multiple_panes="[ $(tmux list-panes | wc -l) -gt 1 ]"
|
||||
|
||||
bind-key -n 'C-h' if-shell "$is_vim && $multiple_panes" 'send-keys C-h' 'select-pane -L'
|
||||
bind-key -n 'C-j' if-shell "$is_vim && $multiple_panes" 'send-keys C-j' 'select-pane -D'
|
||||
bind-key -n 'C-k' if-shell "$is_vim && $multiple_panes" 'send-keys C-k' 'select-pane -U'
|
||||
bind-key -n 'C-l' if-shell "$is_vim && $multiple_panes" 'send-keys C-l' 'select-pane -R'
|
||||
|
||||
|
||||
# bind-key -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
|
||||
|
||||
bind a resize-pane -Z
|
||||
|
||||
# Shift arrow to switch windows
|
||||
bind -n C-S-Space previous-window
|
||||
bind -n C-Space next-window
|
||||
|
||||
# Remove escape delay
|
||||
set -g escape-time 0
|
||||
|
||||
# Enable mouse scroll
|
||||
set -g mouse on
|
||||
|
||||
set-option -g status-right-length 140
|
||||
set-option -g status-right "#(curl 'wttr.in/?format=%%c%%t%%20')|#[bg=default] %a %l:%M %p#[default]#(curl 'wttr.in/?format=%%20%%m%%20(%%M)%') |#(sugar --tmux)#[bg=default]"
|
||||
|
||||
set-option -g status-left-length 140
|
||||
set-option -g status-left " Session: #[bold,fg=green,bg=black] #S #[fg=black,bg=green] "
|
||||
|
||||
set-option -g status-justify centre
|
||||
set-option -g window-status-current-format '#[bold,fg=green,bg=black] #{window_name} '
|
||||
set-option -g window-status-format '#{window_name}'
|
||||
#+end_src
|
||||
|
||||
** TODO Tmuxinator
|
||||
* Wezterm
|
||||
#+begin_src lua :tangle ~/.config/wezterm/wezterm.lua
|
||||
local wezterm = require 'wezterm'
|
||||
local config = {}
|
||||
|
||||
config.color_scheme = 'OceanicNext (base16)'
|
||||
config.font = wezterm.font 'FiraCode Nerd Font Mono'
|
||||
config.font_size = 20
|
||||
config.enable_tab_bar = false
|
||||
|
||||
|
||||
|
||||
return config
|
||||
#+end_src
|
||||
* Text Editors
|
||||
** Helix
|
||||
*** TODO Things to remap
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue