Compare commits
19 Commits
144b36e098
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| bfcbca14ce | |||
| b5f733f750 | |||
| 42f931ba3c | |||
| 6bd3a3697d | |||
| ccef0cc50b | |||
| d0942e4b12 | |||
| 3c9ca2fe4f | |||
| 1264660d78 | |||
| ccbcb7e397 | |||
| 8226c311bb | |||
| 8cb46fdec3 | |||
| 40a1257331 | |||
| b776704cb7 | |||
| 5bc983b55c | |||
| 0b1b6061f4 | |||
| e25d845bbf | |||
| 75c981e76d | |||
| b56f5b8753 | |||
| 2aef84e604 |
@ -4,10 +4,6 @@ if [ -f ~/.bashrc ]; then
|
|||||||
. ~/.bashrc
|
. ~/.bashrc
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export GOPATH=$HOME/go
|
|
||||||
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
|
|
||||||
export PATH=$PATH:$(go env GOPATH)/bin
|
|
||||||
|
|
||||||
# Herd injected NVM configuration
|
# Herd injected NVM configuration
|
||||||
export NVM_DIR="/Users/corey/Library/Application Support/Herd/config/nvm"
|
export NVM_DIR="/Users/corey/Library/Application Support/Herd/config/nvm"
|
||||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||||
|
|||||||
72
dot_bashrc
72
dot_bashrc
@ -21,18 +21,18 @@ shopt -s checkwinsize
|
|||||||
|
|
||||||
export EDITOR=nvim
|
export EDITOR=nvim
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ==============================================================================
|
||||||
# 1Password
|
# 1Password
|
||||||
# ------------------------------------------------------------------------------
|
# ==============================================================================
|
||||||
#
|
#
|
||||||
# Use the 1Password agent to manage ssh keys
|
# Use the 1Password agent to manage ssh keys
|
||||||
#
|
#
|
||||||
|
|
||||||
export SSH_AUTH_SOCK=~/Library/Group\ Containers/2BUA8C4S2C.com.1password/t/agent.sock
|
export SSH_AUTH_SOCK=~/Library/Group\ Containers/2BUA8C4S2C.com.1password/t/agent.sock
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ==============================================================================
|
||||||
# XDG Base Directory Specification
|
# XDG Base Directory Specification
|
||||||
# ------------------------------------------------------------------------------
|
# ==============================================================================
|
||||||
#
|
#
|
||||||
# Define standard locations for configuration and data files
|
# Define standard locations for configuration and data files
|
||||||
#
|
#
|
||||||
@ -66,9 +66,9 @@ export NVM_DIR="/Users/corey/Library/Application Support/Herd/config/nvm"
|
|||||||
# Less don't make a history file
|
# Less don't make a history file
|
||||||
export LESSHISTFILE="/dev/null"
|
export LESSHISTFILE="/dev/null"
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ==============================================================================
|
||||||
# PATH Configuration
|
# PATH Configuration
|
||||||
# ------------------------------------------------------------------------------
|
# ==============================================================================
|
||||||
#
|
#
|
||||||
# Set up the PATH environment variable with all necessary directories
|
# Set up the PATH environment variable with all necessary directories
|
||||||
#
|
#
|
||||||
@ -89,32 +89,21 @@ if [ -d "/opt/homebrew/bin" ]; then
|
|||||||
PATH="/opt/homebrew/bin:/opt/homebrew/sbin:$PATH"
|
PATH="/opt/homebrew/bin:/opt/homebrew/sbin:$PATH"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Add Go bin directory if it exists
|
|
||||||
if [ -d "/usr/local/go/bin" ]; then
|
|
||||||
PATH="/usr/local/go/bin:$PATH"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add Topaz Photo AI bin directory if it exists
|
|
||||||
TOPAZ_BIN="/Applications/Topaz Photo AI.app/Contents/Resources/bin"
|
|
||||||
if [ -d "$TOPAZ_BIN" ]; then
|
|
||||||
PATH="$TOPAZ_BIN:$PATH"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Export the final PATH
|
# Export the final PATH
|
||||||
export PATH
|
export PATH
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ==============================================================================
|
||||||
# Export terminal type
|
# Export terminal type
|
||||||
# ------------------------------------------------------------------------------
|
# ==============================================================================
|
||||||
#
|
#
|
||||||
# Set terminal to 256color mode for use with custom color schemes
|
# Set terminal to 256color mode for use with custom color schemes
|
||||||
#
|
#
|
||||||
|
|
||||||
export TERM="xterm-256color"
|
export TERM="xterm-256color"
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ==============================================================================
|
||||||
# Prompt
|
# Prompt
|
||||||
# ------------------------------------------------------------------------------
|
# ==============================================================================
|
||||||
#
|
#
|
||||||
# Simple prompt matching Ubuntu's default style with colors
|
# Simple prompt matching Ubuntu's default style with colors
|
||||||
#
|
#
|
||||||
@ -199,9 +188,9 @@ PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\${GIT_PROMPT
|
|||||||
|
|
||||||
export PYTHON_HISTORY="$HOME/.local/state/python_history"
|
export PYTHON_HISTORY="$HOME/.local/state/python_history"
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ==============================================================================
|
||||||
# Shell History
|
# Shell History
|
||||||
# ------------------------------------------------------------------------------
|
# ==============================================================================
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
|
||||||
@ -225,9 +214,9 @@ shopt -s histreedit
|
|||||||
shopt -s histverify
|
shopt -s histverify
|
||||||
shopt -s lithist
|
shopt -s lithist
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ==============================================================================
|
||||||
# Tmux Configuration
|
# Tmux Configuration
|
||||||
# ------------------------------------------------------------------------------
|
# ==============================================================================
|
||||||
#
|
#
|
||||||
# Settings for Tmux integration
|
# Settings for Tmux integration
|
||||||
#
|
#
|
||||||
@ -236,9 +225,9 @@ if [[ ! $(tmux list-sessions) ]]; then
|
|||||||
tmux new -s Tmux;
|
tmux new -s Tmux;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ==============================================================================
|
||||||
# fzf
|
# fzf
|
||||||
# ------------------------------------------------------------------------------
|
# ==============================================================================
|
||||||
#
|
#
|
||||||
# https://github.com/junegunn/fzf
|
# https://github.com/junegunn/fzf
|
||||||
#
|
#
|
||||||
@ -302,34 +291,37 @@ export FZF_ALT_C_OPTS="
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ==============================================================================
|
||||||
# Mise
|
# Mise
|
||||||
# ------------------------------------------------------------------------------
|
# ==============================================================================
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
|
||||||
eval "$(mise activate bash)"
|
eval "$(mise activate bash)"
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ==============================================================================
|
||||||
# Alias
|
# Alias
|
||||||
# ------------------------------------------------------------------------------
|
# ==============================================================================
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
|
||||||
alias l='ls -CFG'
|
alias ls='ls -CG'
|
||||||
alias la='ls -AFG'
|
|
||||||
alias ll='ls -alFG'
|
|
||||||
alias vim='nvim'
|
|
||||||
alias python=python3
|
|
||||||
alias pip=pip3
|
|
||||||
alias db='db-browse'
|
|
||||||
|
|
||||||
|
alias .='pwd'
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
alias d='chezmoi'
|
||||||
|
|
||||||
|
for i in $(seq 2 8); do
|
||||||
|
dots=$(printf '.%.0s' $(seq 1 $i))
|
||||||
|
paths=$(printf '../%.0s' $(seq 1 $((i - 1))))
|
||||||
|
alias "$dots"="cd $paths"
|
||||||
|
done
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
# Zoxide
|
# Zoxide
|
||||||
# ------------------------------------------------------------------------------
|
# ==============================================================================
|
||||||
#
|
#
|
||||||
# Setup zsh completions and zoxide cd jumping
|
# Setup zsh completions and zoxide cd jumping
|
||||||
#
|
#
|
||||||
|
|||||||
161
dot_config/aerospace/aerospace.toml
Normal file
161
dot_config/aerospace/aerospace.toml
Normal file
@ -0,0 +1,161 @@
|
|||||||
|
# Place a copy of this config to ~/.aerospace.toml
|
||||||
|
# After that, you can edit ~/.aerospace.toml to your liking
|
||||||
|
# In your config, you can drop keys you don't care about
|
||||||
|
# The absent keys will fallback to their default values
|
||||||
|
|
||||||
|
# You can use it to add commands that run after login to macOS user session.
|
||||||
|
# 'start-at-login' needs to be 'true' for 'after-login-command' to work
|
||||||
|
# Available commands: https://nikitabobko.github.io/AeroSpace/commands
|
||||||
|
after-login-command = []
|
||||||
|
|
||||||
|
# You can use it to add commands that run after AeroSpace startup.
|
||||||
|
# 'after-startup-command' is run after 'after-login-command'
|
||||||
|
# Available commands : https://nikitabobko.github.io/AeroSpace/commands
|
||||||
|
|
||||||
|
# Run Sketchybar together with AeroSpace
|
||||||
|
# sketchbar has a built-in detection of already running process,
|
||||||
|
# so it won't be run twice on AeroSpace restart
|
||||||
|
after-startup-command = ['exec-and-forget sketchybar']
|
||||||
|
|
||||||
|
# Notify Sketchybar about workspace change
|
||||||
|
exec-on-workspace-change = ['/bin/bash', '-c',
|
||||||
|
'sketchybar --trigger aerospace_workspace_change FOCUSED_WORKSPACE=$AEROSPACE_FOCUSED_WORKSPACE'
|
||||||
|
]
|
||||||
|
|
||||||
|
# Start AeroSpace at login
|
||||||
|
start-at-login = false
|
||||||
|
|
||||||
|
# Normalizations. See: https://nikitabobko.github.io/AeroSpace/guide#normalization
|
||||||
|
enable-normalization-flatten-containers = true
|
||||||
|
enable-normalization-opposite-orientation-for-nested-containers = true
|
||||||
|
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/guide#layouts
|
||||||
|
# The 'accordion-padding' specifies the size of accordion padding
|
||||||
|
# You can set 0 to disable the padding feature
|
||||||
|
accordion-padding = 0
|
||||||
|
|
||||||
|
# Possible values: tiles|accordion
|
||||||
|
default-root-container-layout = 'tiles'
|
||||||
|
|
||||||
|
# Possible values: horizontal|vertical|auto
|
||||||
|
# 'auto' means: wide monitor (anything wider than high) gets horizontal orientation,
|
||||||
|
# tall monitor (anything higher than wide) gets vertical orientation
|
||||||
|
default-root-container-orientation = 'auto'
|
||||||
|
|
||||||
|
# Possible values: (qwerty|dvorak)
|
||||||
|
# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping
|
||||||
|
key-mapping.preset = 'qwerty'
|
||||||
|
|
||||||
|
# Mouse follows focus when focused monitor changes
|
||||||
|
# Drop it from your config, if you don't like this behavior
|
||||||
|
# See https://nikitabobko.github.io/AeroSpace/guide#on-focus-changed-callbacks
|
||||||
|
# See https://nikitabobko.github.io/AeroSpace/commands#move-mouse
|
||||||
|
on-focused-monitor-changed = ['move-mouse monitor-lazy-center']
|
||||||
|
|
||||||
|
# Gaps between windows (inner-*) and between monitor edges (outer-*).
|
||||||
|
# Possible values:
|
||||||
|
# - Constant: gaps.outer.top = 8
|
||||||
|
# - Per monitor: g2ps.outer.top = [{ monitor.main = 16 }, { monitor."some-pattern" = 32 }, 24]
|
||||||
|
# In this example, 24 is a default value when there is no match.
|
||||||
|
# Monitor pattern is the same as for 'workspace-to-monitor-force-assignment'.
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/guide#assign-workspaces-to-monitors
|
||||||
|
[gaps]
|
||||||
|
inner.horizontal = 20
|
||||||
|
inner.vertical = 20
|
||||||
|
outer.left = [{monitor."sidecar" = 0}, 20]
|
||||||
|
outer.bottom = [{monitor."sidecar" = 0}, 20]
|
||||||
|
outer.top = [{monitor."sidecar" = 0}, 40]
|
||||||
|
outer.right = [{monitor."sidecar" = 0}, 20]
|
||||||
|
|
||||||
|
# 'main' binding mode declaration
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
|
||||||
|
# 'main' binding mode must be always presented
|
||||||
|
[mode.main.binding]
|
||||||
|
|
||||||
|
# All possible keys:
|
||||||
|
# - Letters. a, b, c, ..., z
|
||||||
|
# - Numbers. 0, 1, 2, ..., 9
|
||||||
|
# - Keypad numbers. keypad0, keypad1, keypad2, ..., keypad9
|
||||||
|
# - F-keys. f1, f2, ..., f20
|
||||||
|
# - Special keys. minus, equal, period, comma, slash, backslash, quote, semicolon, backtick,
|
||||||
|
# leftSquareBracket, rightSquareBracket, space, enter, esc, backspace, tab
|
||||||
|
# - Keypad special. keypadClear, keypadDecimalMark, keypadDivide, keypadEnter, keypadEqual,
|
||||||
|
# keypadMinus, keypadMultiply, keypadPlus
|
||||||
|
# - Arrows. left, down, up, right
|
||||||
|
|
||||||
|
# All possible modifiers: cmd, alt, ctrl, shift
|
||||||
|
|
||||||
|
# All possible commands: https://nikitabobko.github.io/AeroSpace/commands
|
||||||
|
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#exec-and-forget
|
||||||
|
# You can uncomment the following lines to open up terminal with alt + enter shortcut (like in i3)
|
||||||
|
# alt-enter = '''exec-and-forget osascript -e '
|
||||||
|
# tell application "Terminal"
|
||||||
|
# do scrip64
|
||||||
|
# activate64
|
||||||
|
# end tell'
|
||||||
|
# '''
|
||||||
|
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#layout
|
||||||
|
alt-slash = 'layout tiles horizontal vertical'
|
||||||
|
alt-comma = 'layout accordion horizontal vertical'
|
||||||
|
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#focus
|
||||||
|
alt-h = 'focus left'
|
||||||
|
alt-j = 'focus down'
|
||||||
|
alt-k = 'focus up'
|
||||||
|
alt-l = 'focus right'
|
||||||
|
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#move
|
||||||
|
alt-shift-h = 'move left'
|
||||||
|
alt-shift-j = 'move down'
|
||||||
|
alt-shift-k = 'move up'
|
||||||
|
alt-shift-l = 'move right'
|
||||||
|
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#resize
|
||||||
|
alt-shift-minus = 'resize smart -50'
|
||||||
|
alt-shift-equal = 'resize smart +50'
|
||||||
|
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#workspace
|
||||||
|
alt-1 = 'workspace 1'
|
||||||
|
alt-2 = 'workspace 2'
|
||||||
|
alt-3 = 'workspace 3'
|
||||||
|
# alt-4 = 'workspace 4'
|
||||||
|
# alt-5 = 'workspace 5'
|
||||||
|
# alt-6 = 'workspace 6'
|
||||||
|
# alt-7 = 'workspace 7'
|
||||||
|
# alt-8 = 'workspace 8'
|
||||||
|
# alt-9 = 'workspace 9'
|
||||||
|
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace
|
||||||
|
alt-shift-1 = 'move-node-to-workspace 1'
|
||||||
|
alt-shift-2 = 'move-node-to-workspace 2'
|
||||||
|
alt-shift-3 = 'move-node-to-workspace 3'
|
||||||
|
# alt-shift-4 = 'move-node-to-workspace 4'
|
||||||
|
# alt-shift-5 = 'move-node-to-workspace 5'
|
||||||
|
# alt-shift-6 = 'move-node-to-workspace 6'
|
||||||
|
# alt-shift-7 = 'move-node-to-workspace 7'
|
||||||
|
# alt-shift-8 = 'move-node-to-workspace 8'
|
||||||
|
# alt-shift-9 = 'move-node-to-workspace 9'
|
||||||
|
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth
|
||||||
|
alt-tab = 'workspace-back-and-forth'
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#move-workspace-to-monitor
|
||||||
|
alt-shift-tab = 'move-workspace-to-monitor --wrap-around next'
|
||||||
|
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/commands#mode
|
||||||
|
alt-shift-semicolon = 'mode service'
|
||||||
|
|
||||||
|
# 'service' binding mode declaration.
|
||||||
|
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
|
||||||
|
[mode.service.binding]
|
||||||
|
esc = ['reload-config', 'mode main']
|
||||||
|
r = ['flatten-workspace-tree', 'mode main'] # reset layout
|
||||||
|
#s = ['layout sticky tiling', 'mode main'] # sticky is not yet supported https://github.com/nikitabobko/AeroSpace/issues/2
|
||||||
|
f = ['layout floating tiling', 'mode main'] # Toggle between floating and tiling layout
|
||||||
|
backspace = ['close-all-windows-but-current', 'mode main']
|
||||||
|
|
||||||
|
alt-shift-h = ['join-with left', 'mode main']
|
||||||
|
alt-shift-j = ['join-with down', 'mode main']
|
||||||
|
alt-shift-k = ['join-with up', 'mode main']
|
||||||
|
alt-shift-l = ['join-with right', 'mode main']
|
||||||
5
dot_config/bat/config
Normal file
5
dot_config/bat/config
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# Keep line numbers but disable syntax highlighting
|
||||||
|
--style=numbers
|
||||||
|
|
||||||
|
# Use a plain theme (no syntax colors)
|
||||||
|
--color=never
|
||||||
300
dot_config/broot/conf.hjson
Normal file
300
dot_config/broot/conf.hjson
Normal file
@ -0,0 +1,300 @@
|
|||||||
|
###############################################################
|
||||||
|
# This configuration file lets you
|
||||||
|
# - define new commands
|
||||||
|
# - change the shortcut or triggering keys of built-in verbs
|
||||||
|
# - change the colors
|
||||||
|
# - set default values for flags
|
||||||
|
# - set special behaviors on specific paths
|
||||||
|
# - and more...
|
||||||
|
#
|
||||||
|
# Configuration documentation is available at
|
||||||
|
# https://dystroy.org/broot
|
||||||
|
#
|
||||||
|
# This file's format is Hjson ( https://hjson.github.io/ ). Some
|
||||||
|
# properties are commented out. To enable them, remove the `#`.
|
||||||
|
#
|
||||||
|
###############################################################
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Default flags
|
||||||
|
# You can set up flags you want broot to start with by
|
||||||
|
# default, for example `default_flags="-ihp"` if you usually want
|
||||||
|
# to see hidden and gitignored files and the permissions (then
|
||||||
|
# if you don't want the hidden files at a specific launch,
|
||||||
|
# you can launch broot with `br -H`).
|
||||||
|
# A popular flag is the `g` one which displays git related info.
|
||||||
|
#
|
||||||
|
# default_flags:
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Terminal's title
|
||||||
|
# If you want the terminal's title to be updated when you change
|
||||||
|
# directory, set a terminal_title pattern by uncommenting one of
|
||||||
|
# the examples below and tuning it to your taste.
|
||||||
|
#
|
||||||
|
# terminal_title: "[broot] {git-name}"
|
||||||
|
# terminal_title: "{file} 🐄"
|
||||||
|
# terminal_title: "-= {file-name} =-"
|
||||||
|
# reset_terminal_title_on_exit: false
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Date/Time format
|
||||||
|
# If you want to change the format for date/time, uncomment the
|
||||||
|
# following line and change it according to
|
||||||
|
# https://docs.rs/chrono/0.4.11/chrono/format/strftime/index.html
|
||||||
|
#
|
||||||
|
# date_time_format: %Y/%m/%d %R
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# uncomment to activate modal mode
|
||||||
|
#
|
||||||
|
# (you really should read https://dystroy.org/broot/modal/
|
||||||
|
# before as it may not suit everybody even among vim users)
|
||||||
|
#
|
||||||
|
# You may start either in 'command' mode, or in 'input' mode
|
||||||
|
#
|
||||||
|
# modal: true
|
||||||
|
# initial_mode: command
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Whether to mark the selected line with a triangle
|
||||||
|
#
|
||||||
|
show_selection_mark: true
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Column order
|
||||||
|
# cols_order, if specified, must be a permutation of the following
|
||||||
|
# array. You should keep the name column at the end as it has a
|
||||||
|
# variable length.
|
||||||
|
#
|
||||||
|
# cols_order: [
|
||||||
|
# mark
|
||||||
|
# git
|
||||||
|
# size
|
||||||
|
# permission
|
||||||
|
# date
|
||||||
|
# count
|
||||||
|
# branch
|
||||||
|
# name
|
||||||
|
# ]
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# True Colors
|
||||||
|
# If this parameter isn't set, broot tries to automatically
|
||||||
|
# determine whether true colors (24 bits) are available.
|
||||||
|
# As this process is unreliable, you may uncomment this setting
|
||||||
|
# and set it to false or true if you notice the colors in
|
||||||
|
# previewed images are too off.
|
||||||
|
#
|
||||||
|
# true_colors: false
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Icons
|
||||||
|
# If you want to display icons in broot, uncomment this line
|
||||||
|
# (see https://dystroy.org/broot/icons for installation and
|
||||||
|
# troubleshooting)
|
||||||
|
#
|
||||||
|
# icon_theme: vscode
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Special paths
|
||||||
|
# If some paths must be handled specially, uncomment (and change
|
||||||
|
# this section as per the examples)
|
||||||
|
# Setting "list":"never" on a dir prevents broot from looking at its
|
||||||
|
# children when searching, unless the dir is the selected root.
|
||||||
|
# Setting "sum":"never" on a dir prevents broot from looking at its
|
||||||
|
# children when computing the total size and count of files.
|
||||||
|
# Setting "show":"always" makes a file visible even if its name
|
||||||
|
# starts with a dot.
|
||||||
|
# Setting "list":"always" may be useful on a link to a directory
|
||||||
|
# (they're otherwise not entered by broot unless selected)
|
||||||
|
#
|
||||||
|
special_paths: {
|
||||||
|
"/media" : {
|
||||||
|
list: "never"
|
||||||
|
sum: "never"
|
||||||
|
}
|
||||||
|
"~/.config": { "show": "always" }
|
||||||
|
"trav": {
|
||||||
|
show: always
|
||||||
|
list: "always",
|
||||||
|
sum: "never"
|
||||||
|
}
|
||||||
|
# "~/useless": { "show": "never" }
|
||||||
|
# "~/my-link-I-want-to-explore": { "list": "always" }
|
||||||
|
}
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Quit on last cancel
|
||||||
|
# You can usually cancel the last state change on escape.
|
||||||
|
# If you want the escape key to quit broot when there's nothing
|
||||||
|
# to cancel (for example when you just opened broot), uncomment
|
||||||
|
# this parameter
|
||||||
|
#
|
||||||
|
# quit_on_last_cancel: true
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Search modes
|
||||||
|
#
|
||||||
|
# broot allows many search modes.
|
||||||
|
# A search mode is defined by
|
||||||
|
# - the way to search: 'fuzzy', 'exact', 'regex', or 'tokens'.
|
||||||
|
# - where to search: file 'name', 'path', or file 'content'
|
||||||
|
# A search pattern may for example be "fuzzy path" (default),
|
||||||
|
# "regex content" or "exact path".
|
||||||
|
#
|
||||||
|
# The search mode is selected from its prefix. For example, if
|
||||||
|
# you type "abc", the default mode is "fuzzy path". If you type
|
||||||
|
# "/abc", the mode is "regex path". If you type "rn/abc", the mode
|
||||||
|
# is "regex name".
|
||||||
|
#
|
||||||
|
# This mapping may be modified. You may want to dedicate the
|
||||||
|
# empty prefix (the one which doesn't need a '/') to the
|
||||||
|
# search mode you use most often. The example below makes it
|
||||||
|
# easy to search on name rather than on the subpath.
|
||||||
|
#
|
||||||
|
# More information on
|
||||||
|
# https://dystroy.org/broot/input/#the-filtering-pattern
|
||||||
|
#
|
||||||
|
# search_modes: {
|
||||||
|
# <empty>: fuzzy name
|
||||||
|
# /: regex name
|
||||||
|
# }
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# File Extension Colors
|
||||||
|
#
|
||||||
|
# uncomment and modify the next section if you want to color
|
||||||
|
# file name depending on their extension
|
||||||
|
#
|
||||||
|
# ext_colors: {
|
||||||
|
# png: rgb(255, 128, 75)
|
||||||
|
# rs: yellow
|
||||||
|
# }
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Max file size for content search
|
||||||
|
#
|
||||||
|
# Bigger files are ignored when searching their content. You
|
||||||
|
# can specify this size either in ISO units (eg 5GB) or in
|
||||||
|
# the old binary units (eg 44Kib)
|
||||||
|
content_search_max_file_size: 10MB
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Max Panels Count
|
||||||
|
#
|
||||||
|
# Change this if you sometimes want to have more than 2 panels
|
||||||
|
# open
|
||||||
|
# max_panels_count: 2
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Update work dir
|
||||||
|
#
|
||||||
|
# By default, broot process' work dir is kept in sync with the
|
||||||
|
# current's panel root. If you want to keep it unchanged,
|
||||||
|
# uncomment this setting
|
||||||
|
#
|
||||||
|
# update_work_dir: false
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Kitty Keyboard extension
|
||||||
|
#
|
||||||
|
# If you want to use advanced keyboard shortcuts in Kitty
|
||||||
|
# compatible terminals (Kitty, Wezterm), set this to true.
|
||||||
|
#
|
||||||
|
# This makes it possible to use shortcuts like 'space-n',
|
||||||
|
# 'ctrl-alt-a-b', 'shift-space', etc.
|
||||||
|
#
|
||||||
|
enable_kitty_keyboard: false
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# lines around matching line in filtered preview
|
||||||
|
#
|
||||||
|
# When searching the content of a file, you can have either
|
||||||
|
# only the matching lines displayed, or some of the surrounding
|
||||||
|
# ones too.
|
||||||
|
#
|
||||||
|
lines_before_match_in_preview: 1
|
||||||
|
lines_after_match_in_preview: 1
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# transformations before preview
|
||||||
|
#
|
||||||
|
# It's possible to define transformations to apply to some files
|
||||||
|
# before calling one of the default preview renderers in broot.
|
||||||
|
# Below are two examples that you may uncomment and adapt:
|
||||||
|
#
|
||||||
|
preview_transformers: [
|
||||||
|
// # Use mutool to render any PDF file as an image
|
||||||
|
// # In this example we use placeholders for the input and output files
|
||||||
|
// {
|
||||||
|
// input_extensions: [ "pdf" ] // case doesn't matter
|
||||||
|
// output_extension: png
|
||||||
|
// mode: image
|
||||||
|
// command: [ "mutool", "draw", "-w", "1000", "-o", "{output-path}", "{input-path}" ]
|
||||||
|
// }
|
||||||
|
|
||||||
|
// # Use LibreOffice to render Office files as images
|
||||||
|
// # In this example, {output-dir} is used to specify where LibreOffice must write the result
|
||||||
|
// {
|
||||||
|
// input_extensions: [ "xls", "xlsx", "doc", "docx", "ppt", "pptx", "ods", "odt", "odp" ]
|
||||||
|
// output_extension: png
|
||||||
|
// mode: image
|
||||||
|
// command: [
|
||||||
|
// "libreoffice", "--headless",
|
||||||
|
// "--convert-to", "png",
|
||||||
|
// "--outdir", "{output-dir}",
|
||||||
|
// "{input-path}"
|
||||||
|
// ]
|
||||||
|
// }
|
||||||
|
|
||||||
|
// # Use jq to beautify JSON
|
||||||
|
// # In this example, the command refers to neither the input nor the output,
|
||||||
|
// # so broot pipes them to the stdin and stdout of the jq process
|
||||||
|
// {
|
||||||
|
// input_extensions: [ "json" ]
|
||||||
|
// output_extension: json
|
||||||
|
// mode: text
|
||||||
|
// command: [ "jq" ]
|
||||||
|
// }
|
||||||
|
]
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Imports
|
||||||
|
#
|
||||||
|
# While it's possible to have all configuration in one file,
|
||||||
|
# it's more convenient to split it in several ones.
|
||||||
|
# Importing also allows to set a condition on the terminal's
|
||||||
|
# color, which makes it possible to have a different skin
|
||||||
|
# chosen when your terminal has a light background and when
|
||||||
|
# it has a light one.
|
||||||
|
imports: [
|
||||||
|
|
||||||
|
# Verbs are better configured in verbs.hjson. But you
|
||||||
|
# can also add another files for your personal verbs
|
||||||
|
verbs.hjson
|
||||||
|
|
||||||
|
# This file contains the skin to use when the terminal
|
||||||
|
# is dark (or when this couldn't be determined)
|
||||||
|
{
|
||||||
|
luma: [
|
||||||
|
dark
|
||||||
|
unknown
|
||||||
|
]
|
||||||
|
# (un)comment to choose your preferred skin
|
||||||
|
file: skins/dark-blue.hjson
|
||||||
|
//file: skins/catppuccin-macchiato.hjson
|
||||||
|
//file: skins/catppuccin-mocha.hjson
|
||||||
|
//file: skins/dark-gruvbox.hjson
|
||||||
|
//file: skins/dark-orange.hjson
|
||||||
|
//file: skins/solarized-dark.hjson
|
||||||
|
}
|
||||||
|
|
||||||
|
# This skin is imported when your terminal is light
|
||||||
|
{
|
||||||
|
luma: light
|
||||||
|
# (un)comment to choose your preferred skin
|
||||||
|
//file: skins/solarized-light.hjson
|
||||||
|
file: skins/white.hjson
|
||||||
|
}
|
||||||
|
]
|
||||||
1
dot_config/broot/launcher/bash/symlink_br
Normal file
1
dot_config/broot/launcher/bash/symlink_br
Normal file
@ -0,0 +1 @@
|
|||||||
|
/Users/corey/Library/Application Support/org.dystroy.broot/launcher/bash/1
|
||||||
4
dot_config/broot/launcher/installed-v4
Normal file
4
dot_config/broot/launcher/installed-v4
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
This file tells broot the installation of the br function was done.
|
||||||
|
If there's a problem and you want to install it again run
|
||||||
|
broot -- install
|
||||||
171
dot_config/broot/skins/catppuccin-macchiato.hjson
Normal file
171
dot_config/broot/skins/catppuccin-macchiato.hjson
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
###############################################################
|
||||||
|
# A skin for a terminal with a dark background
|
||||||
|
# This skin uses RGB values so won't work for some
|
||||||
|
# terminals.
|
||||||
|
#
|
||||||
|
# Created by Majixed
|
||||||
|
# Based on the catppuccin-mocha theme by A. Taha Baki <atahabaki@pm.me>
|
||||||
|
#
|
||||||
|
# Doc at https://dystroy.org/broot/skins/
|
||||||
|
###############################################################
|
||||||
|
|
||||||
|
skin: {
|
||||||
|
input: rgb(202, 211, 245) none
|
||||||
|
# fg:none bg:$surface2
|
||||||
|
selected_line: none rgb(91, 96, 120)
|
||||||
|
# fg:$text bg:none
|
||||||
|
default: rgb(202, 211, 245) none
|
||||||
|
# fg:$overlay0 bg:none
|
||||||
|
tree: rgb(110, 115, 141) none
|
||||||
|
# fg:$sapphire bg:none
|
||||||
|
parent: rgb(125, 196, 228) none
|
||||||
|
file: none none
|
||||||
|
#
|
||||||
|
### PERMISSIONS
|
||||||
|
#
|
||||||
|
perm__: rgb(184, 192, 224) none
|
||||||
|
# $peach
|
||||||
|
perm_r: rgb(245, 169, 127) none
|
||||||
|
# $maroon
|
||||||
|
perm_w: rgb(238, 153, 160) none
|
||||||
|
# $green
|
||||||
|
perm_x: rgb(166, 218, 149) none
|
||||||
|
# $teal
|
||||||
|
owner: rgb(139, 213, 202) none
|
||||||
|
# $sky
|
||||||
|
group: rgb(145, 215, 227) none
|
||||||
|
#
|
||||||
|
### DATE
|
||||||
|
#
|
||||||
|
# $subtext1
|
||||||
|
dates: rgb(184, 192, 224) none
|
||||||
|
#
|
||||||
|
### DIRECTORY
|
||||||
|
#
|
||||||
|
# $lavender
|
||||||
|
directory: rgb(183, 189, 248) none Bold
|
||||||
|
# $green
|
||||||
|
exe: rgb(166, 218, 149) none
|
||||||
|
# $yellow
|
||||||
|
link: rgb(238, 212, 159) none
|
||||||
|
# $subtext0
|
||||||
|
pruning: rgb(165, 173, 203) none Italic
|
||||||
|
#
|
||||||
|
### PREVIEW
|
||||||
|
#
|
||||||
|
# fg:$text bg:$mantle
|
||||||
|
preview_title: rgb(202, 211, 245) rgb(30, 32, 48)
|
||||||
|
# fg:$text bg:$mantle
|
||||||
|
preview: rgb(202, 211, 245) rgb(30, 32, 48)
|
||||||
|
# fg:$overlay0
|
||||||
|
preview_line_number: rgb(110, 115, 141) none
|
||||||
|
# fg:$overlay0
|
||||||
|
preview_separator: rgb(110, 115, 141) none
|
||||||
|
#
|
||||||
|
### MATCH
|
||||||
|
#
|
||||||
|
char_match: rgb(238, 212, 159) rgb(73, 77, 100) Bold Italic
|
||||||
|
content_match: rgb(238, 212, 159) rgb(73, 77, 100) Bold Italic
|
||||||
|
preview_match: rgb(238, 212, 159) rgb(73, 77, 100) Bold Italic
|
||||||
|
|
||||||
|
# children count
|
||||||
|
# fg:$yellow bg:none
|
||||||
|
count: rgb(238, 212, 159) none
|
||||||
|
sparse: rgb(237, 135, 150) none
|
||||||
|
content_extract: rgb(237, 135, 150) none Italic
|
||||||
|
#
|
||||||
|
### GIT
|
||||||
|
#
|
||||||
|
git_branch: rgb(245, 169, 127) none
|
||||||
|
git_insertions: rgb(245, 169, 127) none
|
||||||
|
git_deletions: rgb(245, 169, 127) none
|
||||||
|
git_status_current: rgb(245, 169, 127) none
|
||||||
|
git_status_modified: rgb(245, 169, 127) none
|
||||||
|
git_status_new: rgb(245, 169, 127) none Bold
|
||||||
|
git_status_ignored: rgb(245, 169, 127) none
|
||||||
|
git_status_conflicted: rgb(245, 169, 127) none
|
||||||
|
git_status_other: rgb(245, 169, 127) none
|
||||||
|
staging_area_title: rgb(245, 169, 127) none
|
||||||
|
#
|
||||||
|
### FLAG
|
||||||
|
#
|
||||||
|
flag_label: rgb(237, 135, 150) none
|
||||||
|
flag_value: rgb(237, 135, 150) none Bold
|
||||||
|
#
|
||||||
|
### STATUS
|
||||||
|
#
|
||||||
|
# fg:none #bg:$mantle
|
||||||
|
status_normal: none rgb(30, 32, 48)
|
||||||
|
# fg:$red bg:$mantle
|
||||||
|
status_italic: rgb(237, 135, 150) rgb(30, 32, 48) Italic
|
||||||
|
# fg:$maroon bg:$mantle
|
||||||
|
status_bold: rgb(238, 153, 160) rgb(30, 32, 48) Bold
|
||||||
|
# fg:$maroon bg:$mantle
|
||||||
|
status_ellipsis: rgb(238, 153, 160) rgb(30, 32, 48) Bold
|
||||||
|
# fg:$text bg:$red
|
||||||
|
status_error: rgb(202, 211, 245) rgb(237, 135, 150)
|
||||||
|
# fg:$maroon bg:$mantle
|
||||||
|
status_job: rgb(238, 153, 160) rgb(40, 38, 37)
|
||||||
|
# fg:$maroon bg:$mantle
|
||||||
|
status_code: rgb(238, 153, 160) rgb(30, 32, 48) Italic
|
||||||
|
# fg:$maroon bg:$mantle
|
||||||
|
mode_command_mark: rgb(238, 153, 160) rgb(30, 32, 48) Bold
|
||||||
|
#
|
||||||
|
### HELP
|
||||||
|
#
|
||||||
|
# fg:$text
|
||||||
|
help_paragraph: rgb(202, 211, 245) none
|
||||||
|
# fg:$red
|
||||||
|
help_headers: rgb(237, 135, 150) none Bold
|
||||||
|
# fg:$peach
|
||||||
|
help_bold: rgb(245, 169, 127) none Bold
|
||||||
|
# fg:$yellow
|
||||||
|
help_italic: rgb(238, 212, 159) none Italic
|
||||||
|
# fg:green bg:$surface0
|
||||||
|
help_code: rgb(166, 218, 149) rgb(54, 58, 79)
|
||||||
|
# fg:$overlay0
|
||||||
|
help_table_border: rgb(110, 115, 141) none
|
||||||
|
#
|
||||||
|
### HEX
|
||||||
|
#
|
||||||
|
# fg:$text
|
||||||
|
hex_null: rgb(202, 211, 245) none
|
||||||
|
# fg:$peach
|
||||||
|
hex_ascii_graphic: rgb(245, 169, 127) none
|
||||||
|
# fg:$green
|
||||||
|
hex_ascii_whitespace: rgb(166, 218, 149) none
|
||||||
|
# fg: teal
|
||||||
|
hex_ascii_other: rgb(139, 213, 202) none
|
||||||
|
# fg: red
|
||||||
|
hex_non_ascii: rgb(237, 135, 150) none
|
||||||
|
|
||||||
|
# fg:$text bg:$red
|
||||||
|
file_error: rgb(243, 60, 44) none
|
||||||
|
#
|
||||||
|
### PURPOSE
|
||||||
|
#
|
||||||
|
purpose_normal: none none
|
||||||
|
purpose_italic: rgb(169, 90, 127) none Italic
|
||||||
|
purpose_bold: rgb(169, 90, 127) none Bold
|
||||||
|
purpose_ellipsis: none none
|
||||||
|
#
|
||||||
|
### SCROLLBAR
|
||||||
|
#
|
||||||
|
# fg:$surface0
|
||||||
|
scrollbar_track: rgb(54, 58, 79) none
|
||||||
|
# fg:$surface1
|
||||||
|
scrollbar_thumb: rgb(91, 96, 120) none
|
||||||
|
#
|
||||||
|
### GOODTOBAD
|
||||||
|
#
|
||||||
|
good_to_bad_0: rgb(166, 218, 149) none
|
||||||
|
good_to_bad_1: rgb(139, 213, 202) none
|
||||||
|
good_to_bad_2: rgb(145, 215, 227) none
|
||||||
|
good_to_bad_3: rgb(125, 196, 228) none
|
||||||
|
good_to_bad_4: rgb(138, 173, 244) none
|
||||||
|
good_to_bad_5: rgb(183, 189, 248) none
|
||||||
|
good_to_bad_6: rgb(198, 160, 246) none
|
||||||
|
good_to_bad_7: rgb(245, 169, 127) none
|
||||||
|
good_to_bad_8: rgb(238, 153, 160) none
|
||||||
|
good_to_bad_9: rgb(237, 135, 150) none
|
||||||
|
}
|
||||||
171
dot_config/broot/skins/catppuccin-mocha.hjson
Normal file
171
dot_config/broot/skins/catppuccin-mocha.hjson
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
###############################################################
|
||||||
|
# A skin for a terminal with a dark background
|
||||||
|
# This skin uses RGB values so won't work for some
|
||||||
|
# terminals.
|
||||||
|
#
|
||||||
|
# Created by A. Taha Baki <atahabaki@pm.me>
|
||||||
|
# Based on the built-in gruvbox theme.
|
||||||
|
#
|
||||||
|
# Doc at https://dystroy.org/broot/skins/
|
||||||
|
###############################################################
|
||||||
|
|
||||||
|
skin: {
|
||||||
|
input: rgb(205, 214, 244) none
|
||||||
|
# fg:none bg:$surface2
|
||||||
|
selected_line: none rgb(88, 91, 112)
|
||||||
|
# fg:$text bg:none
|
||||||
|
default: rgb(205, 214, 244) none
|
||||||
|
# fg:$overlay0 bg:none
|
||||||
|
tree: rgb(108, 112, 134) none
|
||||||
|
# fg:$sapphire bg:none
|
||||||
|
parent: rgb(116, 199, 236) none
|
||||||
|
file: none none
|
||||||
|
#
|
||||||
|
### PERMISSIONS
|
||||||
|
#
|
||||||
|
perm__: rgb(186, 194, 222) none
|
||||||
|
# $peach
|
||||||
|
perm_r: rgb(250, 179, 135) none
|
||||||
|
# $maroon
|
||||||
|
perm_w: rgb(235, 160, 172) none
|
||||||
|
# $green
|
||||||
|
perm_x: rgb(166, 227, 161) none
|
||||||
|
# $teal
|
||||||
|
owner: rgb(148, 226, 213) none
|
||||||
|
# $sky
|
||||||
|
group: rgb(137, 220, 235) none
|
||||||
|
#
|
||||||
|
### DATE
|
||||||
|
#
|
||||||
|
# $subtext1
|
||||||
|
dates: rgb(186, 194, 222) none
|
||||||
|
#
|
||||||
|
### DIRECTORY
|
||||||
|
#
|
||||||
|
# $lavender
|
||||||
|
directory: rgb(180, 190, 254) none Bold
|
||||||
|
# $green
|
||||||
|
exe: rgb(166, 227, 161) none
|
||||||
|
# $yellow
|
||||||
|
link: rgb(249, 226, 175) none
|
||||||
|
# $subtext0
|
||||||
|
pruning: rgb(166, 173, 200) none Italic
|
||||||
|
#
|
||||||
|
### PREVIEW
|
||||||
|
#
|
||||||
|
# fg:$text bg:$mantle
|
||||||
|
preview_title: rgb(205, 214, 244) rgb(24, 24, 37)
|
||||||
|
# fg:$text bg:$mantle
|
||||||
|
preview: rgb(205, 214, 244) rgb(24, 24, 37)
|
||||||
|
# fg:$overlay0
|
||||||
|
preview_line_number: rgb(108, 112, 134) none
|
||||||
|
# fg:$overlay0
|
||||||
|
preview_separator: rgb(108, 112, 134) none
|
||||||
|
#
|
||||||
|
### MATCH
|
||||||
|
#
|
||||||
|
char_match: rgb(249, 226, 175) rgb(69, 71, 90) Bold Italic
|
||||||
|
content_match: rgb(249, 226, 175) rgb(69, 71, 90) Bold Italic
|
||||||
|
preview_match: rgb(249, 226, 175) rgb(69, 71, 90) Bold Italic
|
||||||
|
|
||||||
|
# children count
|
||||||
|
# fg:$yellow bg:none
|
||||||
|
count: rgb(249, 226, 175) none
|
||||||
|
sparse: rgb(243, 139, 168) none
|
||||||
|
content_extract: rgb(243, 139, 168) none Italic
|
||||||
|
#
|
||||||
|
### GIT
|
||||||
|
#
|
||||||
|
git_branch: rgb(250, 179, 135) none
|
||||||
|
git_insertions: rgb(250, 179, 135) none
|
||||||
|
git_deletions: rgb(250, 179, 135) none
|
||||||
|
git_status_current: rgb(250, 179, 135) none
|
||||||
|
git_status_modified: rgb(250, 179, 135) none
|
||||||
|
git_status_new: rgb(250, 179, 135) none Bold
|
||||||
|
git_status_ignored: rgb(250, 179, 135) none
|
||||||
|
git_status_conflicted: rgb(250, 179, 135) none
|
||||||
|
git_status_other: rgb(250, 179, 135) none
|
||||||
|
staging_area_title: rgb(250, 179, 135) none
|
||||||
|
#
|
||||||
|
### FLAG
|
||||||
|
#
|
||||||
|
flag_label: rgb(243, 139, 168) none
|
||||||
|
flag_value: rgb(243, 139, 168) none Bold
|
||||||
|
#
|
||||||
|
### STATUS
|
||||||
|
#
|
||||||
|
# fg:none #bg:$mantle
|
||||||
|
status_normal: none rgb(24, 24, 37)
|
||||||
|
# fg:$red bg:$mantle
|
||||||
|
status_italic: rgb(243, 139, 168) rgb(24, 24, 37) Italic
|
||||||
|
# fg:$maroon bg:$mantle
|
||||||
|
status_bold: rgb(235, 160, 172) rgb(24, 24, 37) Bold
|
||||||
|
# fg:$maroon bg:$mantle
|
||||||
|
status_ellipsis: rgb(235, 160, 172) rgb(24, 24, 37) Bold
|
||||||
|
# fg:$text bg:$red
|
||||||
|
status_error: rgb(205, 214, 244) rgb(243, 139, 168)
|
||||||
|
# fg:$maroon bg:$mantle
|
||||||
|
status_job: rgb(235, 160, 172) rgb(40, 38, 37)
|
||||||
|
# fg:$maroon bg:$mantle
|
||||||
|
status_code: rgb(235, 160, 172) rgb(24, 24, 37) Italic
|
||||||
|
# fg:$maroon bg:$mantle
|
||||||
|
mode_command_mark: rgb(235, 160, 172) rgb(24, 24, 37) Bold
|
||||||
|
#
|
||||||
|
### HELP
|
||||||
|
#
|
||||||
|
# fg:$text
|
||||||
|
help_paragraph: rgb(205, 214, 244) none
|
||||||
|
# fg:$red
|
||||||
|
help_headers: rgb(243, 139, 168) none Bold
|
||||||
|
# fg:$peach
|
||||||
|
help_bold: rgb(250, 179, 135) none Bold
|
||||||
|
# fg:$yellow
|
||||||
|
help_italic: rgb(249, 226, 175) none Italic
|
||||||
|
# fg:green bg:$surface0
|
||||||
|
help_code: rgb(166, 227, 161) rgb(49, 50, 68)
|
||||||
|
# fg:$overlay0
|
||||||
|
help_table_border: rgb(108, 112, 134) none
|
||||||
|
#
|
||||||
|
### HEX
|
||||||
|
#
|
||||||
|
# fg:$text
|
||||||
|
hex_null: rgb(205, 214, 244) none
|
||||||
|
# fg:$peach
|
||||||
|
hex_ascii_graphic: rgb(250, 179, 135) none
|
||||||
|
# fg:$green
|
||||||
|
hex_ascii_whitespace: rgb(166, 227, 161) none
|
||||||
|
# fg: teal
|
||||||
|
hex_ascii_other: rgb(148, 226, 213) none
|
||||||
|
# fg: red
|
||||||
|
hex_non_ascii: rgb(243, 139, 168) none
|
||||||
|
|
||||||
|
# fg:$text bg:$red
|
||||||
|
file_error: rgb(251, 73, 52) none
|
||||||
|
#
|
||||||
|
### PURPOSE
|
||||||
|
#
|
||||||
|
purpose_normal: none none
|
||||||
|
purpose_italic: rgb(177, 98, 134) none Italic
|
||||||
|
purpose_bold: rgb(177, 98, 134) none Bold
|
||||||
|
purpose_ellipsis: none none
|
||||||
|
#
|
||||||
|
### SCROLLBAR
|
||||||
|
#
|
||||||
|
# fg:$surface0
|
||||||
|
scrollbar_track: rgb(49, 50, 68) none
|
||||||
|
# fg:$surface1
|
||||||
|
scrollbar_thumb: rgb(88, 91, 112) none
|
||||||
|
#
|
||||||
|
### GOODTOBAD
|
||||||
|
#
|
||||||
|
good_to_bad_0: rgb(166, 227, 161) none
|
||||||
|
good_to_bad_1: rgb(148, 226, 213) none
|
||||||
|
good_to_bad_2: rgb(137, 220, 235) none
|
||||||
|
good_to_bad_3: rgb(116, 199, 236) none
|
||||||
|
good_to_bad_4: rgb(137, 180, 250) none
|
||||||
|
good_to_bad_5: rgb(180, 190, 254) none
|
||||||
|
good_to_bad_6: rgb(203, 166, 247) none
|
||||||
|
good_to_bad_7: rgb(250, 179, 135) none
|
||||||
|
good_to_bad_8: rgb(235, 160, 172) none
|
||||||
|
good_to_bad_9: rgb(243, 139, 168) none
|
||||||
|
}
|
||||||
115
dot_config/broot/skins/dark-blue.hjson
Normal file
115
dot_config/broot/skins/dark-blue.hjson
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
###############################################################
|
||||||
|
# A skin for a terminal with a dark background
|
||||||
|
#
|
||||||
|
# To create your own skin, copy this file, change the entries
|
||||||
|
# and import your skin file from the main conf file (look
|
||||||
|
# for "imports")
|
||||||
|
#
|
||||||
|
# Doc at https://dystroy.org/broot/skins/
|
||||||
|
###############################################################
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Skin
|
||||||
|
# If you want to change the colors of broot,
|
||||||
|
# uncomment the following block and start messing
|
||||||
|
# with the various values.
|
||||||
|
# A skin entry value is made of two parts separated with a '/':
|
||||||
|
# The first one is the skin for the active panel.
|
||||||
|
# The second one, optional, is the skin for non active panels.
|
||||||
|
# You may find explanations and other skins on
|
||||||
|
# https://dystroy.org/broot/skins
|
||||||
|
###############################################################
|
||||||
|
skin: {
|
||||||
|
default: gray(22) none / gray(20) none
|
||||||
|
tree: gray(8) None / gray(4) None
|
||||||
|
parent: gray(18) None / gray(13) None
|
||||||
|
file: gray(22) None / gray(15) None
|
||||||
|
directory: ansi(110) None bold / ansi(110) None
|
||||||
|
exe: Cyan None
|
||||||
|
link: Magenta None
|
||||||
|
pruning: gray(12) None Italic
|
||||||
|
perm__: gray(5) None
|
||||||
|
perm_r: ansi(94) None
|
||||||
|
perm_w: ansi(132) None
|
||||||
|
perm_x: ansi(65) None
|
||||||
|
owner: ansi(138) None
|
||||||
|
group: ansi(131) None
|
||||||
|
count: ansi(138) gray(4)
|
||||||
|
dates: ansi(66) None
|
||||||
|
sparse: ansi(214) None
|
||||||
|
content_extract: ansi(29) None
|
||||||
|
content_match: ansi(34) None
|
||||||
|
device_id_major: ansi(138) None
|
||||||
|
device_id_sep: ansi(102) None
|
||||||
|
device_id_minor: ansi(138) None
|
||||||
|
git_branch: ansi(178) None
|
||||||
|
git_insertions: ansi(28) None
|
||||||
|
git_deletions: ansi(160) None
|
||||||
|
git_status_current: gray(5) None
|
||||||
|
git_status_modified: ansi(28) None
|
||||||
|
git_status_new: ansi(94) None bold
|
||||||
|
git_status_ignored: gray(17) None
|
||||||
|
git_status_conflicted: ansi(88) None
|
||||||
|
git_status_other: ansi(88) None
|
||||||
|
selected_line: None gray(6) / None gray(4)
|
||||||
|
char_match: Green None
|
||||||
|
file_error: Red None
|
||||||
|
flag_label: gray(15) gray(2)
|
||||||
|
flag_value: ansi(178) gray(2) bold
|
||||||
|
input: White gray(2) / gray(15) None
|
||||||
|
status_error: gray(22) ansi(124)
|
||||||
|
status_job: ansi(220) gray(5)
|
||||||
|
status_normal: gray(20) gray(4) / gray(2) gray(2)
|
||||||
|
status_italic: ansi(178) gray(4) / gray(2) gray(2)
|
||||||
|
status_bold: ansi(178) gray(4) bold / gray(2) gray(2)
|
||||||
|
status_code: ansi(229) gray(4) / gray(2) gray(2)
|
||||||
|
status_ellipsis: gray(19) gray(1) / gray(2) gray(2)
|
||||||
|
purpose_normal: gray(20) gray(2)
|
||||||
|
purpose_italic: ansi(178) gray(2)
|
||||||
|
purpose_bold: ansi(178) gray(2) bold
|
||||||
|
purpose_ellipsis: gray(20) gray(2)
|
||||||
|
scrollbar_track: gray(7) None / gray(4) None
|
||||||
|
scrollbar_thumb: gray(22) None / gray(14) None
|
||||||
|
help_paragraph: gray(20) None
|
||||||
|
help_bold: ansi(178) None bold
|
||||||
|
help_italic: ansi(229) None
|
||||||
|
help_code: gray(21) gray(3)
|
||||||
|
help_headers: ansi(178) None
|
||||||
|
help_table_border: ansi(239) None
|
||||||
|
preview: gray(20) gray(1) / gray(18) gray(2)
|
||||||
|
preview_title: gray(23) gray(2) / gray(21) gray(2)
|
||||||
|
preview_line_number: gray(12) gray(3)
|
||||||
|
preview_separator: gray(5) None
|
||||||
|
preview_match: None ansi(29)
|
||||||
|
hex_null: gray(8) None
|
||||||
|
hex_ascii_graphic: gray(18) None
|
||||||
|
hex_ascii_whitespace: ansi(143) None
|
||||||
|
hex_ascii_other: ansi(215) None
|
||||||
|
hex_non_ascii: ansi(167) None
|
||||||
|
staging_area_title: gray(22) gray(2) / gray(20) gray(3)
|
||||||
|
mode_command_mark: gray(5) ansi(204) bold
|
||||||
|
good_to_bad_0: ansi(28)
|
||||||
|
good_to_bad_1: ansi(29)
|
||||||
|
good_to_bad_2: ansi(29)
|
||||||
|
good_to_bad_3: ansi(29)
|
||||||
|
good_to_bad_4: ansi(29)
|
||||||
|
good_to_bad_5: ansi(100)
|
||||||
|
good_to_bad_6: ansi(136)
|
||||||
|
good_to_bad_7: ansi(172)
|
||||||
|
good_to_bad_8: ansi(166)
|
||||||
|
good_to_bad_9: ansi(196)
|
||||||
|
}
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Syntax Theme
|
||||||
|
#
|
||||||
|
# If you want to choose the theme used for preview, uncomment
|
||||||
|
# one of the following lines:
|
||||||
|
#
|
||||||
|
# syntax_theme: GitHub
|
||||||
|
# syntax_theme: SolarizedDark
|
||||||
|
# syntax_theme: SolarizedLight
|
||||||
|
syntax_theme: MochaDark
|
||||||
|
# syntax_theme: OceanDark
|
||||||
|
# syntax_theme: OceanLight
|
||||||
|
|
||||||
88
dot_config/broot/skins/dark-gruvbox.hjson
Normal file
88
dot_config/broot/skins/dark-gruvbox.hjson
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
###############################################################
|
||||||
|
# A skin for a terminal with a dark background
|
||||||
|
# This skin uses RGB values so won't work for some
|
||||||
|
# terminals.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# (initially contributed by @basbebe)
|
||||||
|
#
|
||||||
|
# Doc at https://dystroy.org/broot/skins/
|
||||||
|
###############################################################
|
||||||
|
|
||||||
|
skin: {
|
||||||
|
default: rgb(235, 219, 178) none / rgb(189, 174, 147) none
|
||||||
|
tree: rgb(70, 70, 80) None / rgb(60, 60, 60) None
|
||||||
|
parent: rgb(235, 219, 178) none / rgb(189, 174, 147) none Italic
|
||||||
|
file: None None / None None Italic
|
||||||
|
directory: rgb(131, 165, 152) None Bold / rgb(131, 165, 152) None
|
||||||
|
exe: rgb(184, 187, 38) None
|
||||||
|
link: rgb(104, 157, 106) None
|
||||||
|
pruning: rgb(124, 111, 100) None Italic
|
||||||
|
perm__: None None
|
||||||
|
perm_r: rgb(215, 153, 33) None
|
||||||
|
perm_w: rgb(204, 36, 29) None
|
||||||
|
perm_x: rgb(152, 151, 26) None
|
||||||
|
owner: rgb(215, 153, 33) None Bold
|
||||||
|
group: rgb(215, 153, 33) None
|
||||||
|
count: rgb(69, 133, 136) rgb(50, 48, 47)
|
||||||
|
dates: rgb(168, 153, 132) None
|
||||||
|
sparse: rgb(250, 189,47) None
|
||||||
|
content_extract: ansi(29) None Italic
|
||||||
|
content_match: ansi(34) None Bold
|
||||||
|
git_branch: rgb(251, 241, 199) None
|
||||||
|
git_insertions: rgb(152, 151, 26) None
|
||||||
|
git_deletions: rgb(190, 15, 23) None
|
||||||
|
git_status_current: rgb(60, 56, 54) None
|
||||||
|
git_status_modified: rgb(152, 151, 26) None
|
||||||
|
git_status_new: rgb(104, 187, 38) None Bold
|
||||||
|
git_status_ignored: rgb(213, 196, 161) None
|
||||||
|
git_status_conflicted: rgb(204, 36, 29) None
|
||||||
|
git_status_other: rgb(204, 36, 29) None
|
||||||
|
selected_line: None rgb(60, 56, 54) / None rgb(50, 48, 47)
|
||||||
|
char_match: rgb(250, 189, 47) None
|
||||||
|
file_error: rgb(251, 73, 52) None
|
||||||
|
flag_label: rgb(189, 174, 147) None
|
||||||
|
flag_value: rgb(211, 134, 155) None Bold
|
||||||
|
input: rgb(251, 241, 199) None / rgb(189, 174, 147) None Italic
|
||||||
|
status_error: rgb(213, 196, 161) rgb(204, 36, 29)
|
||||||
|
status_job: rgb(250, 189, 47) rgb(60, 56, 54)
|
||||||
|
status_normal: None rgb(40, 38, 37) / None None
|
||||||
|
status_italic: rgb(211, 134, 155) rgb(40, 38, 37) Italic / None None
|
||||||
|
status_bold: rgb(211, 134, 155) rgb(40, 38, 37) Bold / None None
|
||||||
|
status_code: rgb(251, 241, 199) rgb(40, 38, 37) / None None
|
||||||
|
status_ellipsis: rgb(251, 241, 199) rgb(40, 38, 37) Bold / None None
|
||||||
|
purpose_normal: None None
|
||||||
|
purpose_italic: rgb(177, 98, 134) None Italic
|
||||||
|
purpose_bold: rgb(177, 98, 134) None Bold
|
||||||
|
purpose_ellipsis: None None
|
||||||
|
scrollbar_track: rgb(80, 73, 69) None / rgb(50, 48, 47) None
|
||||||
|
scrollbar_thumb: rgb(213, 196, 161) None / rgb(102, 92, 84) None
|
||||||
|
help_paragraph: None None
|
||||||
|
help_bold: rgb(214, 93, 14) None Bold
|
||||||
|
help_italic: rgb(211, 134, 155) None Italic
|
||||||
|
help_code: rgb(142, 192, 124) rgb(50, 48, 47)
|
||||||
|
help_headers: rgb(254, 128, 25) None Bold
|
||||||
|
help_table_border: rgb(80, 73, 69) None
|
||||||
|
preview_title: rgb(235, 219, 178) rgb(40, 40, 40) / rgb(189, 174, 147) rgb(40, 40, 40)
|
||||||
|
preview: rgb(235, 219, 178) rgb(40, 40, 40) / rgb(235, 219, 178) rgb(40, 40, 40)
|
||||||
|
preview_line_number: rgb(124, 111, 100) None / rgb(124, 111, 100) rgb(40, 40, 40)
|
||||||
|
preview_separator: rgb(70, 70, 80) None / rgb(60, 60, 60) None
|
||||||
|
preview_match: None ansi(29) Bold
|
||||||
|
hex_null: rgb(189, 174, 147) None
|
||||||
|
hex_ascii_graphic: rgb(213, 196, 161) None
|
||||||
|
hex_ascii_whitespace: rgb(152, 151, 26) None
|
||||||
|
hex_ascii_other: rgb(254, 128, 25) None
|
||||||
|
hex_non_ascii: rgb(214, 93, 14) None
|
||||||
|
staging_area_title: rgb(235, 219, 178) rgb(40, 40, 40) / rgb(189, 174, 147) rgb(40, 40, 40)
|
||||||
|
mode_command_mark: gray(5) ansi(204) Bold
|
||||||
|
good_to_bad_0: ansi(28)
|
||||||
|
good_to_bad_1: ansi(29)
|
||||||
|
good_to_bad_2: ansi(29)
|
||||||
|
good_to_bad_3: ansi(29)
|
||||||
|
good_to_bad_4: ansi(29)
|
||||||
|
good_to_bad_5: ansi(100)
|
||||||
|
good_to_bad_6: ansi(136)
|
||||||
|
good_to_bad_7: ansi(172)
|
||||||
|
good_to_bad_8: ansi(166)
|
||||||
|
good_to_bad_9: ansi(196)
|
||||||
|
}
|
||||||
110
dot_config/broot/skins/dark-orange.hjson
Normal file
110
dot_config/broot/skins/dark-orange.hjson
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
###############################################################
|
||||||
|
# A skin for a terminal with a dark background
|
||||||
|
#
|
||||||
|
# To create your own skin, copy this file, change the entries
|
||||||
|
# and import your skin file from the main conf file (look
|
||||||
|
# for "imports")
|
||||||
|
#
|
||||||
|
# Doc at https://dystroy.org/broot/skins/
|
||||||
|
###############################################################
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Skin
|
||||||
|
# If you want to change the colors of broot,
|
||||||
|
# uncomment the following bloc and start messing
|
||||||
|
# with the various values.
|
||||||
|
# A skin entry value is made of two parts separated with a '/':
|
||||||
|
# The first one is the skin for the active panel.
|
||||||
|
# The second one, optional, is the skin for non active panels.
|
||||||
|
# You may find explanations and other skins on
|
||||||
|
# https://dystroy.org/broot/skins
|
||||||
|
###############################################################
|
||||||
|
skin: {
|
||||||
|
default: none none / gray(20) none
|
||||||
|
tree: ansi(94) None / gray(3) None
|
||||||
|
parent: gray(18) None / gray(13) None
|
||||||
|
file: gray(20) None / gray(15) None
|
||||||
|
directory: ansi(208) None Bold / ansi(172) None bold
|
||||||
|
exe: Cyan None
|
||||||
|
link: Magenta None
|
||||||
|
pruning: gray(12) None Italic
|
||||||
|
perm__: gray(5) None
|
||||||
|
perm_r: ansi(94) None
|
||||||
|
perm_w: ansi(132) None
|
||||||
|
perm_x: ansi(65) None
|
||||||
|
owner: ansi(138) None
|
||||||
|
group: ansi(131) None
|
||||||
|
count: ansi(136) gray(3)
|
||||||
|
dates: ansi(66) None
|
||||||
|
sparse: ansi(214) None
|
||||||
|
content_extract: ansi(29) None
|
||||||
|
content_match: ansi(34) None
|
||||||
|
git_branch: ansi(229) None
|
||||||
|
git_insertions: ansi(28) None
|
||||||
|
git_deletions: ansi(160) None
|
||||||
|
git_status_current: gray(5) None
|
||||||
|
git_status_modified: ansi(28) None
|
||||||
|
git_status_new: ansi(94) None Bold
|
||||||
|
git_status_ignored: gray(17) None
|
||||||
|
git_status_conflicted: ansi(88) None
|
||||||
|
git_status_other: ansi(88) None
|
||||||
|
selected_line: None gray(5) / None gray(4)
|
||||||
|
char_match: Yellow None
|
||||||
|
file_error: Red None
|
||||||
|
flag_label: gray(15) None
|
||||||
|
flag_value: ansi(208) None Bold
|
||||||
|
input: White None / gray(15) gray(2)
|
||||||
|
status_error: gray(22) ansi(124)
|
||||||
|
status_job: ansi(220) gray(5)
|
||||||
|
status_normal: gray(20) gray(3) / gray(2) gray(2)
|
||||||
|
status_italic: ansi(208) gray(3) / gray(2) gray(2)
|
||||||
|
status_bold: ansi(208) gray(3) Bold / gray(2) gray(2)
|
||||||
|
status_code: ansi(229) gray(3) / gray(2) gray(2)
|
||||||
|
status_ellipsis: gray(19) gray(1) / gray(2) gray(2)
|
||||||
|
purpose_normal: gray(20) gray(2)
|
||||||
|
purpose_italic: ansi(178) gray(2)
|
||||||
|
purpose_bold: ansi(178) gray(2) Bold
|
||||||
|
purpose_ellipsis: gray(20) gray(2)
|
||||||
|
scrollbar_track: gray(7) None / gray(4) None
|
||||||
|
scrollbar_thumb: gray(22) None / gray(14) None
|
||||||
|
help_paragraph: gray(20) None
|
||||||
|
help_bold: ansi(208) None Bold
|
||||||
|
help_italic: ansi(166) None
|
||||||
|
help_code: gray(21) gray(3)
|
||||||
|
help_headers: ansi(208) None
|
||||||
|
help_table_border: ansi(239) None
|
||||||
|
preview: gray(20) gray(1) / gray(18) gray(2)
|
||||||
|
preview_line_number: gray(12) gray(3)
|
||||||
|
preview_separator: ansi(94) None / gray(3) None
|
||||||
|
preview_match: None ansi(29)
|
||||||
|
hex_null: gray(11) None
|
||||||
|
hex_ascii_graphic: gray(18) None
|
||||||
|
hex_ascii_whitespace: ansi(143) None
|
||||||
|
hex_ascii_other: ansi(215) None
|
||||||
|
hex_non_ascii: ansi(167) None
|
||||||
|
good_to_bad_0: ansi(28)
|
||||||
|
good_to_bad_1: ansi(29)
|
||||||
|
good_to_bad_2: ansi(29)
|
||||||
|
good_to_bad_3: ansi(29)
|
||||||
|
good_to_bad_4: ansi(29)
|
||||||
|
good_to_bad_5: ansi(100)
|
||||||
|
good_to_bad_6: ansi(136)
|
||||||
|
good_to_bad_7: ansi(172)
|
||||||
|
good_to_bad_8: ansi(166)
|
||||||
|
good_to_bad_9: ansi(196)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Syntax Theme
|
||||||
|
#
|
||||||
|
# If you want to choose the theme used for preview, uncomment
|
||||||
|
# one of the following lines:
|
||||||
|
#
|
||||||
|
# syntax_theme: GitHub
|
||||||
|
syntax_theme: SolarizedDark
|
||||||
|
# syntax_theme: SolarizedLight
|
||||||
|
# syntax_theme: MochaDark
|
||||||
|
# syntax_theme: OceanDark
|
||||||
|
# syntax_theme: OceanLight
|
||||||
|
|
||||||
132
dot_config/broot/skins/native-16.hjson
Normal file
132
dot_config/broot/skins/native-16.hjson
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
###############################################################
|
||||||
|
# 16 ANSI color theme. Colors in this theme are restricted from
|
||||||
|
# ANSI color 0 - 15. This will allow the theme to adapt to your
|
||||||
|
# terminal emulator's theme. Note that, for now, the preview
|
||||||
|
# mode does not yet support this theme because of syntect not
|
||||||
|
# having a 16 ansi color theme.
|
||||||
|
#
|
||||||
|
# More info at https://jeffkreeftmeijer.com/vim-16-color/
|
||||||
|
# Doc at https://dystroy.org/broot/skins/
|
||||||
|
###############################################################
|
||||||
|
|
||||||
|
skin: {
|
||||||
|
directory: ansi(12)
|
||||||
|
file: ansi(7)
|
||||||
|
pruning: ansi(8) none italic
|
||||||
|
selected_line: none ansi(0)
|
||||||
|
tree: ansi(8)
|
||||||
|
|
||||||
|
# Search
|
||||||
|
char_match: ansi(3) none underlined
|
||||||
|
parent: ansi(4) none bold
|
||||||
|
|
||||||
|
# File properties
|
||||||
|
exe: ansi(2)
|
||||||
|
link: ansi(13)
|
||||||
|
sparse: ansi(12)
|
||||||
|
|
||||||
|
# Prompt
|
||||||
|
input: ansi(6)
|
||||||
|
|
||||||
|
# Status bar
|
||||||
|
status_bold: ansi(7) ansi(8) bold
|
||||||
|
status_code: ansi(10) ansi(8)
|
||||||
|
status_ellipsis: ansi(7) ansi(8)
|
||||||
|
status_error: ansi(7) ansi(8)
|
||||||
|
status_italic: ansi(7) ansi(8) italic
|
||||||
|
status_job: ansi(7) ansi(8)
|
||||||
|
status_normal: ansi(7) ansi(8)
|
||||||
|
|
||||||
|
# Flag status
|
||||||
|
flag_label: ansi(6)
|
||||||
|
flag_value: ansi(14) none bold
|
||||||
|
|
||||||
|
# Background
|
||||||
|
default: none none
|
||||||
|
|
||||||
|
# Scrollbar
|
||||||
|
scrollbar_track: ansi(0)
|
||||||
|
scrollbar_thumb: ansi(3)
|
||||||
|
|
||||||
|
# Git
|
||||||
|
git_branch: ansi(13)
|
||||||
|
git_deletions: ansi(1)
|
||||||
|
git_insertions: ansi(2)
|
||||||
|
git_status_conflicted: ansi(1)
|
||||||
|
git_status_current: ansi(6)
|
||||||
|
git_status_ignored: ansi(8)
|
||||||
|
git_status_modified: ansi(3)
|
||||||
|
git_status_new: ansi(2) none bold
|
||||||
|
git_status_other: ansi(5)
|
||||||
|
|
||||||
|
# Staging area
|
||||||
|
staging_area_title: ansi(3)
|
||||||
|
|
||||||
|
# Documentation
|
||||||
|
help_bold: ansi(7) none bold
|
||||||
|
help_code: ansi(4)
|
||||||
|
help_headers: ansi(3)
|
||||||
|
help_italic: ansi(7) none italic
|
||||||
|
help_paragraph: ansi(7)
|
||||||
|
help_table_border: ansi(8)
|
||||||
|
|
||||||
|
# Device column
|
||||||
|
device_id_major: ansi(5)
|
||||||
|
device_id_minor: ansi(5)
|
||||||
|
device_id_sep: ansi(5)
|
||||||
|
|
||||||
|
# Counts column
|
||||||
|
count: ansi(13)
|
||||||
|
|
||||||
|
# Dates column
|
||||||
|
dates: ansi(6)
|
||||||
|
|
||||||
|
# Permissions column
|
||||||
|
group: ansi(3)
|
||||||
|
owner: ansi(3)
|
||||||
|
perm__: ansi(8)
|
||||||
|
perm_r: ansi(3)
|
||||||
|
perm_w: ansi(1)
|
||||||
|
perm_x: ansi(2)
|
||||||
|
|
||||||
|
# Hex preview
|
||||||
|
hex_null: ansi(8)
|
||||||
|
hex_ascii_graphic: ansi(2)
|
||||||
|
hex_ascii_whitespace: ansi(3)
|
||||||
|
hex_ascii_other: ansi(4)
|
||||||
|
hex_non_ascii: ansi(5)
|
||||||
|
|
||||||
|
# Preview
|
||||||
|
# preview: none
|
||||||
|
# preview_line_number: none
|
||||||
|
# preview_match: none
|
||||||
|
# preview_title: none
|
||||||
|
|
||||||
|
# Used for displaying errors
|
||||||
|
file_error: ansi(1)
|
||||||
|
|
||||||
|
# Content searches
|
||||||
|
content_extract: ansi(7)
|
||||||
|
content_match: ansi(3) none underlined
|
||||||
|
|
||||||
|
# Used in status line
|
||||||
|
purpose_bold: ansi(0) ansi(7) bold
|
||||||
|
purpose_ellipsis: ansi(0)
|
||||||
|
purpose_italic: ansi(0) ansi(7) italic
|
||||||
|
purpose_normal: ansi(0)
|
||||||
|
|
||||||
|
# Modal indicator
|
||||||
|
mode_command_mark: ansi(7) ansi(4)
|
||||||
|
|
||||||
|
# File system occupation
|
||||||
|
good_to_bad_0: ansi(2)
|
||||||
|
good_to_bad_1: ansi(2)
|
||||||
|
good_to_bad_2: ansi(2)
|
||||||
|
good_to_bad_3: ansi(2)
|
||||||
|
good_to_bad_4: ansi(2)
|
||||||
|
good_to_bad_5: ansi(1)
|
||||||
|
good_to_bad_6: ansi(1)
|
||||||
|
good_to_bad_7: ansi(1)
|
||||||
|
good_to_bad_8: ansi(1)
|
||||||
|
good_to_bad_9: ansi(1)
|
||||||
|
}
|
||||||
66
dot_config/broot/skins/solarized-dark.hjson
Normal file
66
dot_config/broot/skins/solarized-dark.hjson
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
// contributed by [@danieltrautmann](https://github.com/danieltrautmann)
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// The Solarized Dark skin uses RGB values, so it might not work well with some
|
||||||
|
// terminals
|
||||||
|
//
|
||||||
|
// Doc at https://dystroy.org/broot/skins/
|
||||||
|
|
||||||
|
skin: {
|
||||||
|
default: "rgb(131, 148, 150) rgb(0, 43, 54) / rgb(131, 148, 150) rgb(7, 54, 66)" // base0 base03 / base01 base02
|
||||||
|
tree: "rgb(88, 110, 117) none" // base01 default
|
||||||
|
file: "none none" // default default
|
||||||
|
directory: "rgb(38, 139, 210) none bold" // blue default bold
|
||||||
|
exe: "rgb(211, 1, 2) none" // red default
|
||||||
|
link: "rgb(211, 54, 130) none" // magenta default
|
||||||
|
pruning: "rgb(88, 110, 117) none italic" // base01 default italic
|
||||||
|
perm__: "rgb(88, 110, 117) none" // base01 default
|
||||||
|
perm_r: "none none" // default default
|
||||||
|
perm_w: "none none" // default default
|
||||||
|
perm_x: "none none" // default default
|
||||||
|
owner: "rgb(88, 110, 117) none" // base01 default
|
||||||
|
group: "rgb(88, 110, 117) none" // base01 default
|
||||||
|
sparse: "none none" // default default
|
||||||
|
git_branch: "rgb(147, 161, 161) none" // base1 default
|
||||||
|
git_insertions: "rgb(133, 153, 0) none" // green default
|
||||||
|
git_deletions: "rgb(211, 1, 2) none" // red default
|
||||||
|
git_status_current: "none none" // default default
|
||||||
|
git_status_modified: "rgb(181, 137, 0) none" // yellow default
|
||||||
|
git_status_new: "rgb(133, 153, 0) none" // green default
|
||||||
|
git_status_ignored: "rgb(88, 110, 117) none" // base01 default
|
||||||
|
git_status_conflicted: "rgb(211, 1, 2) none" // red default
|
||||||
|
git_status_other: "rgb(211, 1, 2) none" // red default
|
||||||
|
selected_line: "none rgb(7, 54, 66)" // default base02
|
||||||
|
char_match: "rgb(133, 153, 0) none underlined" // green default underlined
|
||||||
|
file_error: "rgb(203, 75, 22) none italic" // orange default italic
|
||||||
|
flag_label: "none none" // default default
|
||||||
|
flag_value: "rgb(181, 137, 0) none bold" // yellow default bold
|
||||||
|
input: "none none" // default default
|
||||||
|
status_error: "rgb(203, 75, 22) rgb(7, 54, 66)" // orange base02
|
||||||
|
status_job: "rgb(108, 113, 196) rgb(7, 54, 66) bold" // violet base02 bold
|
||||||
|
status_normal: "none rgb(7, 54, 66)" // default base02
|
||||||
|
status_italic: "rgb(181, 137, 0) rgb(7, 54, 66)" // yellow base02
|
||||||
|
status_bold: "rgb(147, 161, 161) rgb(7, 54, 66) bold" // base1 base02 bold
|
||||||
|
status_code: "rgb(108, 113, 196) rgb(7, 54, 66)" // violet base02
|
||||||
|
status_ellipsis: "none rgb(7, 54, 66)" // default base02
|
||||||
|
scrollbar_track: "rgb(7, 54, 66) none" // base02 default
|
||||||
|
scrollbar_thumb: "none none" // default default
|
||||||
|
help_paragraph: "none none" // default default
|
||||||
|
help_bold: "rgb(147, 161, 161) none bold" // base1 default bold
|
||||||
|
help_italic: "rgb(147, 161, 161) none italic" // base1 default italic
|
||||||
|
help_code: "rgb(147, 161, 161) rgb(7, 54, 66)" // base1 base02
|
||||||
|
help_headers: "rgb(181, 137, 0) none" // yellow default
|
||||||
|
help_table_border: "none none" // default default
|
||||||
|
preview_title: "gray(20) rgb(0, 43, 54)"
|
||||||
|
staging_area_title: "gray(22) rgb(0, 43, 54)"
|
||||||
|
good_to_bad_0: "ansi(28)" // green
|
||||||
|
good_to_bad_1: "ansi(29)"
|
||||||
|
good_to_bad_2: "ansi(29)"
|
||||||
|
good_to_bad_3: "ansi(29)"
|
||||||
|
good_to_bad_4: "ansi(29)"
|
||||||
|
good_to_bad_5: "ansi(100)"
|
||||||
|
good_to_bad_6: "ansi(136)"
|
||||||
|
good_to_bad_7: "ansi(172)"
|
||||||
|
good_to_bad_8: "ansi(166)"
|
||||||
|
good_to_bad_9: "ansi(196)" // red
|
||||||
|
}
|
||||||
118
dot_config/broot/skins/solarized-light.hjson
Normal file
118
dot_config/broot/skins/solarized-light.hjson
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
// contributed by [@danieltrautmann](https://github.com/danieltrautmann)
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// The Solarized Light skin uses RGB values, so it might not work well with some
|
||||||
|
// terminals
|
||||||
|
//
|
||||||
|
// If you prefer to keep the background the same as your terminal background, change
|
||||||
|
// the "default" entry to
|
||||||
|
// default: "none none / rgb(147, 161, 161) none"
|
||||||
|
//
|
||||||
|
// Doc at https://dystroy.org/broot/skins/
|
||||||
|
|
||||||
|
skin: {
|
||||||
|
// base00 default / base1 base2
|
||||||
|
default: "rgb(101, 123, 131) none / rgb(147, 161, 161) none"
|
||||||
|
// base1 default
|
||||||
|
tree: "rgb(147, 161, 161) none"
|
||||||
|
// default default
|
||||||
|
file: "none none"
|
||||||
|
// blue default bold
|
||||||
|
directory: "rgb(38, 139, 210) none bold"
|
||||||
|
// red default
|
||||||
|
exe: "rgb(211, 1, 2) none"
|
||||||
|
// magenta default
|
||||||
|
link: "rgb(211, 54, 130) none"
|
||||||
|
// base1 default italic
|
||||||
|
pruning: "rgb(147, 161, 161) none italic"
|
||||||
|
// base1 default
|
||||||
|
perm__: "rgb(147, 161, 161) none"
|
||||||
|
// default default
|
||||||
|
perm_r: "none none"
|
||||||
|
// default default
|
||||||
|
perm_w: "none none"
|
||||||
|
// default default
|
||||||
|
perm_x: "none none"
|
||||||
|
// base1 default
|
||||||
|
owner: "rgb(147, 161, 161) none"
|
||||||
|
// base1 default
|
||||||
|
group: "rgb(147, 161, 161) none"
|
||||||
|
// default default
|
||||||
|
sparse: "none none"
|
||||||
|
// base01 default
|
||||||
|
git_branch: "rgb(88, 110, 117) none"
|
||||||
|
// green default
|
||||||
|
git_insertions: "rgb(133, 153, 0) none"
|
||||||
|
// red default
|
||||||
|
git_deletions: "rgb(211, 1, 2) none"
|
||||||
|
// default default
|
||||||
|
git_status_current: "none none"
|
||||||
|
// yellow default
|
||||||
|
git_status_modified: "rgb(181, 137, 0) none"
|
||||||
|
// green default
|
||||||
|
git_status_new: "rgb(133, 153, 0) none"
|
||||||
|
// base1 default
|
||||||
|
git_status_ignored: "rgb(147, 161, 161) none"
|
||||||
|
// red default
|
||||||
|
git_status_conflicted: "rgb(211, 1, 2) none"
|
||||||
|
// red default
|
||||||
|
git_status_other: "rgb(211, 1, 2) none"
|
||||||
|
// default base2
|
||||||
|
selected_line: "none rgb(238, 232, 213)"
|
||||||
|
// green default underlined
|
||||||
|
char_match: "rgb(133, 153, 0) none underlined"
|
||||||
|
// orange default italic
|
||||||
|
file_error: "rgb(203, 75, 22) none italic"
|
||||||
|
// default default
|
||||||
|
flag_label: "none none"
|
||||||
|
// yellow default bold
|
||||||
|
flag_value: "rgb(181, 137, 0) none bold"
|
||||||
|
// default default
|
||||||
|
input: "none none"
|
||||||
|
// orange base2
|
||||||
|
status_error: "rgb(203, 75, 22) rgb(238, 232, 213)"
|
||||||
|
// violet base2 bold
|
||||||
|
status_job: "rgb(108, 113, 196) rgb(238, 232, 213) bold"
|
||||||
|
// default base2
|
||||||
|
status_normal: "none rgb(238, 232, 213)"
|
||||||
|
// yellow base2
|
||||||
|
status_italic: "rgb(181, 137, 0) rgb(238, 232, 213)"
|
||||||
|
// base01 base2 bold
|
||||||
|
status_bold: "rgb(88, 110, 117) rgb(238, 232, 213) bold"
|
||||||
|
// violet base2
|
||||||
|
status_code: "rgb(108, 113, 196) rgb(238, 232, 213)"
|
||||||
|
// default base2
|
||||||
|
status_ellipsis: "none rgb(238, 232, 213)"
|
||||||
|
// base2 default
|
||||||
|
scrollbar_track: "rgb(238, 232, 213) none"
|
||||||
|
// default default
|
||||||
|
scrollbar_thumb: "none none"
|
||||||
|
// default default
|
||||||
|
help_paragraph: "none none"
|
||||||
|
// base01 default bold
|
||||||
|
help_bold: "rgb(88, 110, 117) none bold"
|
||||||
|
// base01 default italic
|
||||||
|
help_italic: "rgb(88, 110, 117) none italic"
|
||||||
|
// base01 base2
|
||||||
|
help_code: "rgb(88, 110, 117) rgb(238, 232, 213)"
|
||||||
|
// yellow default
|
||||||
|
help_headers: "rgb(181, 137, 0) none"
|
||||||
|
// default default
|
||||||
|
help_table_border: "none none"
|
||||||
|
preview_title: "rgb(147, 161, 161) rgb(238, 232, 213)"
|
||||||
|
preview: "rgb(101, 123, 131) rgb(253, 246, 227) / rgb(147, 161, 161) rgb(238, 232, 213)"
|
||||||
|
preview_line_number: "rgb(147, 161, 161) rgb(238, 232, 213)"
|
||||||
|
preview_separator: "rgb(147, 161, 161) rgb(238, 232, 213)"
|
||||||
|
preview_match: "None ansi(29)"
|
||||||
|
staging_area_title: "gray(22) rgb(253, 246, 227)"
|
||||||
|
good_to_bad_0: ansi(28)
|
||||||
|
good_to_bad_1: ansi(29)
|
||||||
|
good_to_bad_2: ansi(29)
|
||||||
|
good_to_bad_3: ansi(29)
|
||||||
|
good_to_bad_4: ansi(29)
|
||||||
|
good_to_bad_5: ansi(100)
|
||||||
|
good_to_bad_6: ansi(136)
|
||||||
|
good_to_bad_7: ansi(172)
|
||||||
|
good_to_bad_8: ansi(166)
|
||||||
|
good_to_bad_9: ansi(196)
|
||||||
|
}
|
||||||
84
dot_config/broot/skins/white.hjson
Normal file
84
dot_config/broot/skins/white.hjson
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
###############################################################
|
||||||
|
# A skin for a terminal with a white background
|
||||||
|
#
|
||||||
|
# To create your own skin, copy this file, change the entries
|
||||||
|
# and import your skin file from the main conf file (look
|
||||||
|
# for "imports")
|
||||||
|
#
|
||||||
|
# Doc at https://dystroy.org/broot/skins/
|
||||||
|
###############################################################
|
||||||
|
syntax_theme: base16-ocean.light
|
||||||
|
|
||||||
|
skin: {
|
||||||
|
default: gray(1) None
|
||||||
|
tree: gray(7) None / gray(18) None
|
||||||
|
file: gray(3) None / gray(8) None
|
||||||
|
directory: ansi(25) None Bold / ansi(25) None
|
||||||
|
exe: ansi(130) None
|
||||||
|
link: Magenta None
|
||||||
|
pruning: gray(12) None Italic
|
||||||
|
perm__: gray(5) None
|
||||||
|
perm_r: ansi(94) None
|
||||||
|
perm_w: ansi(132) None
|
||||||
|
perm_x: ansi(65) None
|
||||||
|
owner: ansi(138) None
|
||||||
|
group: ansi(131) None
|
||||||
|
dates: ansi(66) None
|
||||||
|
sparse: ansi(214) None
|
||||||
|
git_branch: ansi(229) None
|
||||||
|
git_insertions: ansi(28) None
|
||||||
|
git_deletions: ansi(160) None
|
||||||
|
git_status_current: gray(5) None
|
||||||
|
git_status_modified: ansi(28) None
|
||||||
|
git_status_new: ansi(94) None Bold
|
||||||
|
git_status_ignored: gray(17) None
|
||||||
|
git_status_conflicted: ansi(88) None
|
||||||
|
git_status_other: ansi(88) None
|
||||||
|
selected_line: None gray(19) / None gray(21)
|
||||||
|
char_match: ansi(22) None
|
||||||
|
file_error: Red None
|
||||||
|
flag_label: gray(9) None
|
||||||
|
flag_value: ansi(166) None Bold
|
||||||
|
input: gray(1) None / gray(4) gray(20)
|
||||||
|
status_error: gray(22) ansi(124)
|
||||||
|
status_normal: gray(2) gray(20)
|
||||||
|
status_job: ansi(220) gray(5)
|
||||||
|
status_italic: ansi(166) gray(20)
|
||||||
|
status_bold: ansi(166) gray(20)
|
||||||
|
status_code: ansi(17) gray(20)
|
||||||
|
status_ellipsis: gray(19) gray(15)
|
||||||
|
purpose_normal: gray(20) gray(2)
|
||||||
|
purpose_italic: ansi(178) gray(2)
|
||||||
|
purpose_bold: ansi(178) gray(2) Bold
|
||||||
|
purpose_ellipsis: gray(20) gray(2)
|
||||||
|
scrollbar_track: gray(20) none
|
||||||
|
scrollbar_thumb: ansi(238) none
|
||||||
|
help_paragraph: gray(2) none
|
||||||
|
help_bold: ansi(202) none bold
|
||||||
|
help_italic: ansi(202) none italic
|
||||||
|
help_code: gray(5) gray(22)
|
||||||
|
help_headers: ansi(202) none
|
||||||
|
help_table_border: ansi(239) None
|
||||||
|
preview_title: gray(3) None / gray(5) None
|
||||||
|
preview: gray(5) gray(23) / gray(7) gray(23)
|
||||||
|
preview_line_number: gray(6) gray(20)
|
||||||
|
preview_separator: gray(7) None / gray(18) None
|
||||||
|
preview_match: None ansi(29) Underlined
|
||||||
|
hex_null: gray(15) None
|
||||||
|
hex_ascii_graphic: gray(2) None
|
||||||
|
hex_ascii_whitespace: ansi(143) None
|
||||||
|
hex_ascii_other: ansi(215) None
|
||||||
|
hex_non_ascii: ansi(167) None
|
||||||
|
staging_area_title: gray(8) None / gray(13) None
|
||||||
|
mode_command_mark: gray(15) ansi(204) Bold
|
||||||
|
good_to_bad_0: ansi(28)
|
||||||
|
good_to_bad_1: ansi(29)
|
||||||
|
good_to_bad_2: ansi(29)
|
||||||
|
good_to_bad_3: ansi(29)
|
||||||
|
good_to_bad_4: ansi(29)
|
||||||
|
good_to_bad_5: ansi(100)
|
||||||
|
good_to_bad_6: ansi(136)
|
||||||
|
good_to_bad_7: ansi(172)
|
||||||
|
good_to_bad_8: ansi(166)
|
||||||
|
good_to_bad_9: ansi(196)
|
||||||
|
}
|
||||||
161
dot_config/broot/verbs.hjson
Normal file
161
dot_config/broot/verbs.hjson
Normal file
@ -0,0 +1,161 @@
|
|||||||
|
###############################################################
|
||||||
|
# This file contains the verb definitions for broot
|
||||||
|
#
|
||||||
|
# Some verbs here are examples and not enabled by default: you
|
||||||
|
# need to uncomment them if you want to use them.
|
||||||
|
#
|
||||||
|
# Documentation at https://dystroy.org/broot/verbs/
|
||||||
|
###############################################################
|
||||||
|
|
||||||
|
verbs: [
|
||||||
|
|
||||||
|
# You should customize this standard opening of text files.
|
||||||
|
# If you edit text files in your terminal (vi, emacs, helix, eg.), then
|
||||||
|
# you'll find it convenient to change the 'key' from 'ctrl-e' to 'enter'.
|
||||||
|
#
|
||||||
|
# If $EDITOR isn't set on your computer, you should either set it using
|
||||||
|
# something similar to
|
||||||
|
# export EDITOR=/usr/local/bin/nvim
|
||||||
|
# or just replace it with your editor of choice in the 'execution'
|
||||||
|
# pattern.
|
||||||
|
# If your editor is able to open a file on a specific line, use {line}
|
||||||
|
# so that you may jump directly at the right line from a preview or
|
||||||
|
# a content search.
|
||||||
|
# Examples depending on your favourite editor:
|
||||||
|
# execution: "nvim +{line} {file}"
|
||||||
|
# execution: "helix {file}:{line}"
|
||||||
|
{
|
||||||
|
invocation: edit
|
||||||
|
shortcut: e
|
||||||
|
key: enter
|
||||||
|
apply_to: text_file
|
||||||
|
execution: "$EDITOR {file}"
|
||||||
|
leave_broot: true
|
||||||
|
}
|
||||||
|
|
||||||
|
# Example 1: launching `tail -n` on the selected file (leaving broot)
|
||||||
|
# {
|
||||||
|
# name: tail_lines
|
||||||
|
# invocation: tl {lines_count}
|
||||||
|
# execution: "tail -f -n {lines_count} {file}"
|
||||||
|
# }
|
||||||
|
|
||||||
|
# Example 2: creating a new file without leaving broot
|
||||||
|
# {
|
||||||
|
# name: touch
|
||||||
|
# invocation: touch {new_file}
|
||||||
|
# execution: "touch {directory}/{new_file}"
|
||||||
|
# leave_broot: false
|
||||||
|
# }
|
||||||
|
|
||||||
|
# A convenient shortcut to create new text files in
|
||||||
|
# the current directory or below
|
||||||
|
{
|
||||||
|
invocation: create {subpath}
|
||||||
|
execution: "$EDITOR {directory}/{subpath}"
|
||||||
|
leave_broot: false
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
invocation: git_diff
|
||||||
|
shortcut: gd
|
||||||
|
leave_broot: false
|
||||||
|
execution: "git difftool -y {file}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# On ctrl-b, propose the creation of a copy of the selection.
|
||||||
|
# While this might occasionally be useful, this verb is mostly here
|
||||||
|
# as an example to demonstrate rare standard groups like {file-stem}
|
||||||
|
# and {file-dot-extension} and the auto_exec verb property which
|
||||||
|
# allows verbs to stay unexecuted until you hit enter
|
||||||
|
{
|
||||||
|
invocation: "backup {version}"
|
||||||
|
key: ctrl-b
|
||||||
|
leave_broot: false
|
||||||
|
auto_exec: false
|
||||||
|
execution: "cp -r {file} {parent}/{file-stem}-{version}{file-dot-extension}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# By default, `rm` does the system rm, and completely removes
|
||||||
|
# the file. If you prefer to have the file moved to the system
|
||||||
|
# trash, you may use the ':trash' internal with the verb below:
|
||||||
|
# {
|
||||||
|
# invocation: "rm"
|
||||||
|
# internal: "trash"
|
||||||
|
# leave_broot: false
|
||||||
|
# }
|
||||||
|
|
||||||
|
# This verb lets you launch a terminal on ctrl-T
|
||||||
|
# (on exit you'll be back in broot)
|
||||||
|
{
|
||||||
|
invocation: terminal
|
||||||
|
key: ctrl-t
|
||||||
|
execution: "$SHELL"
|
||||||
|
set_working_dir: true
|
||||||
|
leave_broot: false
|
||||||
|
}
|
||||||
|
|
||||||
|
# Here's an example of a verb needing the shell capabilities.
|
||||||
|
# It copies all children of the currently selected directory
|
||||||
|
# to a destination you type.
|
||||||
|
# It uses a star, which needs the shell for expansion. That's
|
||||||
|
# why such verb must have the `from_shell: true` parameter.
|
||||||
|
# {
|
||||||
|
# invocation: "cpa {dest}"
|
||||||
|
# external: "cp -r {directory}/* {dest}"
|
||||||
|
# from_shell: true
|
||||||
|
# }
|
||||||
|
|
||||||
|
# Here's an example of a shortcut bringing you to your home directory
|
||||||
|
# {
|
||||||
|
# invocation: home
|
||||||
|
# key: ctrl-home
|
||||||
|
# execution: ":focus ~"
|
||||||
|
# }
|
||||||
|
|
||||||
|
# Here's going to the work-dir root of the current git repository
|
||||||
|
# {
|
||||||
|
# invocation: gtr
|
||||||
|
# execution: ":focus {git-root}"
|
||||||
|
# }
|
||||||
|
|
||||||
|
# A popular set of shortcuts for going up and down:
|
||||||
|
#
|
||||||
|
# {
|
||||||
|
# key: ctrl-k
|
||||||
|
# execution: ":line_up"
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# key: ctrl-j
|
||||||
|
# execution: ":line_down"
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# key: ctrl-u
|
||||||
|
# execution: ":page_up"
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# key: ctrl-d
|
||||||
|
# execution: ":page_down"
|
||||||
|
# }
|
||||||
|
|
||||||
|
# If you develop using git, you might like to often switch
|
||||||
|
# to the git status filter:
|
||||||
|
# {
|
||||||
|
# key: alt-g
|
||||||
|
# execution: ":toggle_git_status"
|
||||||
|
# }
|
||||||
|
|
||||||
|
# You can reproduce the bindings of Norton Commander
|
||||||
|
# on copying or moving to the other panel:
|
||||||
|
# {
|
||||||
|
# key: F5
|
||||||
|
# external: "cp -r {file} {other-panel-directory}"
|
||||||
|
# leave_broot: false
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# key: F6
|
||||||
|
# external: "mv {file} {other-panel-directory}"
|
||||||
|
# leave_broot: false
|
||||||
|
# }
|
||||||
|
]
|
||||||
|
|
||||||
186
dot_config/fd/ignore
Normal file
186
dot_config/fd/ignore
Normal file
@ -0,0 +1,186 @@
|
|||||||
|
# Version control
|
||||||
|
.git/
|
||||||
|
.svn/
|
||||||
|
.hg/
|
||||||
|
.bzr/
|
||||||
|
|
||||||
|
# macOS
|
||||||
|
.DS_Store
|
||||||
|
.AppleDouble
|
||||||
|
.LSOverride
|
||||||
|
Icon\r
|
||||||
|
._*
|
||||||
|
.Spotlight-V100
|
||||||
|
.Trashes
|
||||||
|
|
||||||
|
# Dependencies
|
||||||
|
node_modules/
|
||||||
|
vendor/
|
||||||
|
bower_components/
|
||||||
|
jspm_packages/
|
||||||
|
.npm/
|
||||||
|
.yarn/
|
||||||
|
|
||||||
|
# Build outputs
|
||||||
|
dist/
|
||||||
|
build/
|
||||||
|
out/
|
||||||
|
target/
|
||||||
|
*.o
|
||||||
|
*.so
|
||||||
|
*.dylib
|
||||||
|
*.dll
|
||||||
|
*.exe
|
||||||
|
|
||||||
|
# IDE and editors
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
.project
|
||||||
|
.classpath
|
||||||
|
.settings/
|
||||||
|
|
||||||
|
# Python
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
*$py.class
|
||||||
|
.Python
|
||||||
|
venv/
|
||||||
|
env/
|
||||||
|
.virtualenv/
|
||||||
|
.tox/
|
||||||
|
.pytest_cache/
|
||||||
|
|
||||||
|
# Ruby
|
||||||
|
.bundle/
|
||||||
|
.vendor/
|
||||||
|
Gemfile.lock
|
||||||
|
|
||||||
|
# Logs and databases
|
||||||
|
*.log
|
||||||
|
*.sqlite
|
||||||
|
*.sqlite3
|
||||||
|
*.db
|
||||||
|
|
||||||
|
# Temporary files
|
||||||
|
tmp/
|
||||||
|
temp/
|
||||||
|
cache/
|
||||||
|
.cache/
|
||||||
|
.tmp/
|
||||||
|
|
||||||
|
# Coverage reports
|
||||||
|
coverage/
|
||||||
|
.coverage
|
||||||
|
htmlcov/
|
||||||
|
.nyc_output/
|
||||||
|
|
||||||
|
# Environment files
|
||||||
|
.env
|
||||||
|
.env.local
|
||||||
|
.env.*.local
|
||||||
|
|
||||||
|
# Rust
|
||||||
|
Cargo.lock
|
||||||
|
target/
|
||||||
|
|
||||||
|
# Go
|
||||||
|
go.sum
|
||||||
|
vendor/
|
||||||
|
|
||||||
|
# Video
|
||||||
|
*.mp4
|
||||||
|
*.avi
|
||||||
|
*.mov
|
||||||
|
*.mkv
|
||||||
|
*.flv
|
||||||
|
*.wmv
|
||||||
|
*.webm
|
||||||
|
*.m4v
|
||||||
|
*.mpg
|
||||||
|
*.mpeg
|
||||||
|
*.3gp
|
||||||
|
|
||||||
|
# Audio
|
||||||
|
*.mp3
|
||||||
|
*.wav
|
||||||
|
*.flac
|
||||||
|
*.aac
|
||||||
|
*.ogg
|
||||||
|
*.wma
|
||||||
|
*.m4a
|
||||||
|
*.opus
|
||||||
|
*.aiff
|
||||||
|
*.ape
|
||||||
|
|
||||||
|
# Images
|
||||||
|
*.png
|
||||||
|
*.jpg
|
||||||
|
*.jpeg
|
||||||
|
*.gif
|
||||||
|
*.bmp
|
||||||
|
*.svg
|
||||||
|
*.ico
|
||||||
|
*.tiff
|
||||||
|
*.tif
|
||||||
|
*.webp
|
||||||
|
*.psd
|
||||||
|
*.raw
|
||||||
|
*.heif
|
||||||
|
*.heic
|
||||||
|
*.HEIC
|
||||||
|
|
||||||
|
# Documents
|
||||||
|
*.pdf
|
||||||
|
*.doc
|
||||||
|
*.docx
|
||||||
|
*.xls
|
||||||
|
*.xlsx
|
||||||
|
*.ppt
|
||||||
|
*.pptx
|
||||||
|
*.odt
|
||||||
|
*.ods
|
||||||
|
*.odp
|
||||||
|
|
||||||
|
# Archives
|
||||||
|
*.zip
|
||||||
|
*.tar
|
||||||
|
*.gz
|
||||||
|
*.bz2
|
||||||
|
*.7z
|
||||||
|
*.rar
|
||||||
|
*.xz
|
||||||
|
*.Z
|
||||||
|
*.deb
|
||||||
|
*.rpm
|
||||||
|
*.dmg
|
||||||
|
*.pkg
|
||||||
|
*.iso
|
||||||
|
|
||||||
|
# Fonts
|
||||||
|
*.ttf
|
||||||
|
*.otf
|
||||||
|
*.woff
|
||||||
|
*.woff2
|
||||||
|
*.eot
|
||||||
|
|
||||||
|
# Adobe/Design
|
||||||
|
*.afphoto
|
||||||
|
*.afdesign
|
||||||
|
*.ai
|
||||||
|
*.eps
|
||||||
|
*.sketch
|
||||||
|
*.fig
|
||||||
|
*.xd
|
||||||
|
|
||||||
|
# Game files
|
||||||
|
*.mcpack
|
||||||
|
*.pak
|
||||||
|
*.unity3d
|
||||||
|
|
||||||
|
# Binary/Compiled
|
||||||
|
*.bin
|
||||||
|
*.dat
|
||||||
|
*.data
|
||||||
8
dot_config/git/config
Normal file
8
dot_config/git/config
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[user]
|
||||||
|
name = Corey Smith
|
||||||
|
email = corey@coreysmith.design
|
||||||
|
[filter "lfs"]
|
||||||
|
clean = git-lfs clean -- %f
|
||||||
|
smudge = git-lfs smudge -- %f
|
||||||
|
process = git-lfs filter-process
|
||||||
|
required = true
|
||||||
1
dot_config/git/ignore
Normal file
1
dot_config/git/ignore
Normal file
@ -0,0 +1 @@
|
|||||||
|
**/.claude/settings.local.json
|
||||||
34
dot_config/gitmux/dot_gitmux.conf
Normal file
34
dot_config/gitmux/dot_gitmux.conf
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
tmux:
|
||||||
|
symbols:
|
||||||
|
branch: ' '
|
||||||
|
hashprefix: ':'
|
||||||
|
ahead: 'ahead '
|
||||||
|
behind: 'behind '
|
||||||
|
staged: 'staged '
|
||||||
|
conflict: 'conflict '
|
||||||
|
modified: 'modified '
|
||||||
|
untracked: 'untracked '
|
||||||
|
stashed: 'stashed '
|
||||||
|
clean: 'clean'
|
||||||
|
insertions: Σ
|
||||||
|
deletions: Δ
|
||||||
|
styles:
|
||||||
|
clear: '#[fg=#000000]'
|
||||||
|
state: '#[fg=#000000]'
|
||||||
|
branch: '#[fg=#000000]'
|
||||||
|
remote: '#[fg=#000000]'
|
||||||
|
divergence: '#[fg=#000000]'
|
||||||
|
staged: '#[fg=#000000]'
|
||||||
|
conflict: '#[fg=#000000]'
|
||||||
|
modified: '#[fg=#000000]'
|
||||||
|
untracked: '#[fg=#000000]'
|
||||||
|
stashed: '#[fg=#000000]'
|
||||||
|
clean: '#[fg=#000000]'
|
||||||
|
insertions: '#[fg=#000000]'
|
||||||
|
deletions: '#[fg=#000000]'
|
||||||
|
layout: [remote-branch, branch]
|
||||||
|
options:
|
||||||
|
branch_max_len: 0
|
||||||
|
branch_trim: right
|
||||||
|
ellipsis: …
|
||||||
|
hide_clean: true
|
||||||
0
dot_config/hammerspoon/Spoons/.keep
Normal file
0
dot_config/hammerspoon/Spoons/.keep
Normal file
38
dot_config/hammerspoon/init.lua
Normal file
38
dot_config/hammerspoon/init.lua
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
-- Auto-hide WezTerm when it loses focus
|
||||||
|
weztermAppWatcher = hs.application.watcher.new(function(appName, eventType, appObject)
|
||||||
|
if eventType == hs.application.watcher.deactivated and appName == "WezTerm" then
|
||||||
|
print("WezTerm lost focus, hiding...")
|
||||||
|
appObject:hide()
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
weztermAppWatcher:start()
|
||||||
|
|
||||||
|
print("WezTerm auto-hide enabled")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Function to simulate key presses
|
||||||
|
local function pressFn(mods, key)
|
||||||
|
if key == nil then
|
||||||
|
key = mods
|
||||||
|
mods = {}
|
||||||
|
end
|
||||||
|
|
||||||
|
return function() hs.eventtap.keyStroke(mods, key, 1000) end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Function to remap keys
|
||||||
|
local function remap(mods, key, pressFn)
|
||||||
|
hs.hotkey.bind(mods, key, pressFn, nil, pressFn)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Define Caps Lock as the Hyperkey
|
||||||
|
local hyper = {'ctrl', 'alt', 'cmd'}
|
||||||
|
|
||||||
|
-- Remap HJKL to arrow keys using Caps Lock as a Hyperkey
|
||||||
|
remap(hyper, 'h', pressFn({}, 'left')) -- Move left
|
||||||
|
remap(hyper, 'j', pressFn({}, 'down')) -- Move down
|
||||||
|
remap(hyper, 'k', pressFn({}, 'up')) -- Move up
|
||||||
|
remap(hyper, 'l', pressFn({}, 'right')) -- Move right
|
||||||
|
|
||||||
9
dot_config/nvim/after/queries/blade/highlights.scm
Normal file
9
dot_config/nvim/after/queries/blade/highlights.scm
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
(directive) @function
|
||||||
|
(directive_start) @function
|
||||||
|
(directive_end) @function
|
||||||
|
(comment) @comment
|
||||||
|
((parameter) @include (#set! "priority" 110))
|
||||||
|
((php_only) @include (#set! "priority" 110))
|
||||||
|
((bracket_start) @function (#set! "priority" 120))
|
||||||
|
((bracket_end) @function (#set! "priority" 120))
|
||||||
|
(keyword) @function
|
||||||
4
dot_config/nvim/after/queries/blade/injections.scm
Normal file
4
dot_config/nvim/after/queries/blade/injections.scm
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
((text) @injection.content
|
||||||
|
(#not-has-ancestor? @injection.content "envoy")
|
||||||
|
(#set! injection.combined)
|
||||||
|
(#set! injection.language php))
|
||||||
571
dot_config/nvim/colors/lpcstudio.lua
Normal file
571
dot_config/nvim/colors/lpcstudio.lua
Normal file
@ -0,0 +1,571 @@
|
|||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Neovim Colorscheme for Little Plummer Creek Studio
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- Jump To:
|
||||||
|
-- 1. Setup
|
||||||
|
-- 2. Palette
|
||||||
|
-- 3. Groups
|
||||||
|
-- 4. Do the Thing!
|
||||||
|
--
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Setup
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- Setup the Colorscheme boilerplate. This is a light theme.
|
||||||
|
--
|
||||||
|
|
||||||
|
vim.cmd('highlight clear')
|
||||||
|
|
||||||
|
if vim.fn.exists('syntax_on') then
|
||||||
|
vim.cmd('syntax reset')
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.o.background = 'light'
|
||||||
|
|
||||||
|
vim.g.colors_name = 'lpcstudio'
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Palette
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- Define the Palette as hue to be used in highlight groups. Based on the
|
||||||
|
-- TailwindCSS colors at https://tailwindcss.com/docs/customizing-colors
|
||||||
|
--
|
||||||
|
|
||||||
|
local hue = {
|
||||||
|
base = {
|
||||||
|
["50"] = "#FDFDFF",
|
||||||
|
["100"] = "#F7F8FA",
|
||||||
|
["200"] = "#EBECF0",
|
||||||
|
["250"] = "#DCDDE1",
|
||||||
|
["300"] = "#CCCDD1",
|
||||||
|
["350"] = "#BDBFC4",
|
||||||
|
["400"] = "#A3A6AE",
|
||||||
|
["500"] = "#80838B",
|
||||||
|
["600"] = "#696C74",
|
||||||
|
["700"] = "#54575F",
|
||||||
|
["800"] = "#3E4149",
|
||||||
|
["900"] = "#2B2E35",
|
||||||
|
["950"] = "#1A1C22",
|
||||||
|
},
|
||||||
|
slate = {
|
||||||
|
["50"] = "#f8fafc",
|
||||||
|
["100"] = "#f1f5f9",
|
||||||
|
["200"] = "#e2e8f0",
|
||||||
|
["300"] = "#cbd5e1",
|
||||||
|
["400"] = "#94a3b8",
|
||||||
|
["450"] = "#6C7C94",
|
||||||
|
["500"] = "#64748b",
|
||||||
|
["600"] = "#475569",
|
||||||
|
["700"] = "#334155",
|
||||||
|
["800"] = "#1e293b",
|
||||||
|
["900"] = "#0f172a",
|
||||||
|
["950"] = "#020617",
|
||||||
|
},
|
||||||
|
gray = {
|
||||||
|
["50"] = "#f9fafb",
|
||||||
|
["100"] = "#f3f4f6",
|
||||||
|
["200"] = "#e5e7eb",
|
||||||
|
["300"] = "#d1d5db",
|
||||||
|
["400"] = "#9ca3af",
|
||||||
|
["500"] = "#6b7280",
|
||||||
|
["600"] = "#4b5563",
|
||||||
|
["700"] = "#374151",
|
||||||
|
["800"] = "#1f2937",
|
||||||
|
["900"] = "#111827",
|
||||||
|
["950"] = "#030712",
|
||||||
|
},
|
||||||
|
zinc = {
|
||||||
|
["50"] = "#fafafa",
|
||||||
|
["100"] = "#f4f4f5",
|
||||||
|
["200"] = "#e4e4e7",
|
||||||
|
["300"] = "#d4d4d8",
|
||||||
|
["400"] = "#a1a1aa",
|
||||||
|
["500"] = "#71717a",
|
||||||
|
["600"] = "#52525b",
|
||||||
|
["700"] = "#3f3f46",
|
||||||
|
["800"] = "#27272a",
|
||||||
|
["900"] = "#18181b",
|
||||||
|
["950"] = "#09090b",
|
||||||
|
},
|
||||||
|
neutral = {
|
||||||
|
["50"] = "#fafafa",
|
||||||
|
["100"] = "#f5f5f5",
|
||||||
|
["200"] = "#e5e5e5",
|
||||||
|
["300"] = "#d4d4d4",
|
||||||
|
["400"] = "#a3a3a3",
|
||||||
|
["500"] = "#737373",
|
||||||
|
["600"] = "#525252",
|
||||||
|
["700"] = "#404040",
|
||||||
|
["800"] = "#262626",
|
||||||
|
["900"] = "#171717",
|
||||||
|
["950"] = "#0a0a0a",
|
||||||
|
},
|
||||||
|
stone = {
|
||||||
|
["50"] = "#fafaf9",
|
||||||
|
["100"] = "#f5f5f4",
|
||||||
|
["200"] = "#e7e5e4",
|
||||||
|
["300"] = "#d6d3d1",
|
||||||
|
["400"] = "#a8a29e",
|
||||||
|
["500"] = "#78716c",
|
||||||
|
["600"] = "#57534e",
|
||||||
|
["700"] = "#44403c",
|
||||||
|
["800"] = "#292524",
|
||||||
|
["900"] = "#1c1917",
|
||||||
|
["950"] = "#0c0a09",
|
||||||
|
},
|
||||||
|
red = {
|
||||||
|
["50"] = "#fef2f2",
|
||||||
|
["100"] = "#fee2e2",
|
||||||
|
["200"] = "#fecaca",
|
||||||
|
["300"] = "#fca5a5",
|
||||||
|
["400"] = "#f87171",
|
||||||
|
["500"] = "#ef4444",
|
||||||
|
["600"] = "#dc2626",
|
||||||
|
["700"] = "#b91c1c",
|
||||||
|
["800"] = "#991b1b",
|
||||||
|
["900"] = "#7f1d1d",
|
||||||
|
["950"] = "#450a0a",
|
||||||
|
},
|
||||||
|
orange = {
|
||||||
|
["50"] = "#fff7ed",
|
||||||
|
["100"] = "#ffedd5",
|
||||||
|
["200"] = "#fed7aa",
|
||||||
|
["300"] = "#fdba74",
|
||||||
|
["400"] = "#fb923c",
|
||||||
|
["500"] = "#f97316",
|
||||||
|
["600"] = "#ea580c",
|
||||||
|
["700"] = "#c2410c",
|
||||||
|
["800"] = "#9a3412",
|
||||||
|
["900"] = "#7c2d12",
|
||||||
|
["950"] = "#431407",
|
||||||
|
},
|
||||||
|
amber = {
|
||||||
|
["50"] = "#fffbeb",
|
||||||
|
["100"] = "#fef3c7",
|
||||||
|
["200"] = "#fde68a",
|
||||||
|
["300"] = "#fcd34d",
|
||||||
|
["400"] = "#fbbf24",
|
||||||
|
["500"] = "#f59e0b",
|
||||||
|
["600"] = "#d97706",
|
||||||
|
["700"] = "#b45309",
|
||||||
|
["800"] = "#92400e",
|
||||||
|
["900"] = "#78350f",
|
||||||
|
["950"] = "#451a03",
|
||||||
|
},
|
||||||
|
yellow = {
|
||||||
|
["50"] = "#fefce8",
|
||||||
|
["100"] = "#fef9c3",
|
||||||
|
["200"] = "#fef08a",
|
||||||
|
["300"] = "#fde047",
|
||||||
|
["400"] = "#facc15",
|
||||||
|
["500"] = "#eab308",
|
||||||
|
["600"] = "#ca8a04",
|
||||||
|
["700"] = "#a16207",
|
||||||
|
["800"] = "#854d0e",
|
||||||
|
["900"] = "#713f12",
|
||||||
|
["950"] = "#422006",
|
||||||
|
},
|
||||||
|
lime = {
|
||||||
|
["50"] = "#f7fee7",
|
||||||
|
["100"] = "#ecfccb",
|
||||||
|
["200"] = "#d9f99d",
|
||||||
|
["300"] = "#bef264",
|
||||||
|
["400"] = "#a3e635",
|
||||||
|
["500"] = "#84cc16",
|
||||||
|
["600"] = "#65a30d",
|
||||||
|
["700"] = "#4d7c0f",
|
||||||
|
["800"] = "#3f6212",
|
||||||
|
["900"] = "#365314",
|
||||||
|
["950"] = "#1a2e05",
|
||||||
|
},
|
||||||
|
green = {
|
||||||
|
["50"] = "#f0fdf4",
|
||||||
|
["100"] = "#dcfce7",
|
||||||
|
["200"] = "#bbf7d0",
|
||||||
|
["300"] = "#86efac",
|
||||||
|
["400"] = "#4ade80",
|
||||||
|
["500"] = "#22c55e",
|
||||||
|
["600"] = "#16a34a",
|
||||||
|
["700"] = "#15803d",
|
||||||
|
["800"] = "#166534",
|
||||||
|
["900"] = "#14532d",
|
||||||
|
["950"] = "#052e16",
|
||||||
|
},
|
||||||
|
emerald = {
|
||||||
|
["50"] = "#ecfdf5",
|
||||||
|
["100"] = "#d1fae5",
|
||||||
|
["200"] = "#a7f3d0",
|
||||||
|
["300"] = "#6ee7b7",
|
||||||
|
["400"] = "#34d399",
|
||||||
|
["500"] = "#10b981",
|
||||||
|
["600"] = "#059669",
|
||||||
|
["700"] = "#047857",
|
||||||
|
["800"] = "#065f46",
|
||||||
|
["900"] = "#064e3b",
|
||||||
|
["950"] = "#022c22",
|
||||||
|
},
|
||||||
|
teal = {
|
||||||
|
["50"] = "#f0fdfa",
|
||||||
|
["100"] = "#ccfbf1",
|
||||||
|
["200"] = "#99f6e4",
|
||||||
|
["300"] = "#5eead4",
|
||||||
|
["400"] = "#2dd4bf",
|
||||||
|
["500"] = "#14b8a6",
|
||||||
|
["600"] = "#0d9488",
|
||||||
|
["700"] = "#0f766e",
|
||||||
|
["800"] = "#115e59",
|
||||||
|
["900"] = "#134e4a",
|
||||||
|
["950"] = "#042f2e",
|
||||||
|
},
|
||||||
|
cyan = {
|
||||||
|
["50"] = "#ecfeff",
|
||||||
|
["100"] = "#cffafe",
|
||||||
|
["200"] = "#a5f3fc",
|
||||||
|
["300"] = "#67e8f9",
|
||||||
|
["400"] = "#22d3ee",
|
||||||
|
["500"] = "#06b6d4",
|
||||||
|
["600"] = "#0891b2",
|
||||||
|
["700"] = "#0e7490",
|
||||||
|
["800"] = "#155e75",
|
||||||
|
["900"] = "#164e63",
|
||||||
|
["950"] = "#083344",
|
||||||
|
},
|
||||||
|
sky = {
|
||||||
|
["50"] = "#f0f9ff",
|
||||||
|
["100"] = "#e0f2fe",
|
||||||
|
["200"] = "#bae6fd",
|
||||||
|
["300"] = "#7dd3fc",
|
||||||
|
["400"] = "#38bdf8",
|
||||||
|
["500"] = "#0ea5e9",
|
||||||
|
["600"] = "#0284c7",
|
||||||
|
["700"] = "#0369a1",
|
||||||
|
["800"] = "#075985",
|
||||||
|
["900"] = "#0c4a6e",
|
||||||
|
["950"] = "#082f49",
|
||||||
|
},
|
||||||
|
blue = {
|
||||||
|
["50"] = "#eff6ff",
|
||||||
|
["100"] = "#dbeafe",
|
||||||
|
["200"] = "#bfdbfe",
|
||||||
|
["300"] = "#93c5fd",
|
||||||
|
["400"] = "#60a5fa",
|
||||||
|
["500"] = "#3b82f6",
|
||||||
|
["600"] = "#2563eb",
|
||||||
|
["700"] = "#1d4ed8",
|
||||||
|
["800"] = "#1e40af",
|
||||||
|
["900"] = "#1e3a8a",
|
||||||
|
["950"] = "#172554",
|
||||||
|
},
|
||||||
|
indigo = {
|
||||||
|
["50"] = "#eef2ff",
|
||||||
|
["100"] = "#e0e7ff",
|
||||||
|
["200"] = "#c7d2fe",
|
||||||
|
["300"] = "#a5b4fc",
|
||||||
|
["400"] = "#818cf8",
|
||||||
|
["500"] = "#6366f1",
|
||||||
|
["600"] = "#4f46e5",
|
||||||
|
["700"] = "#4338ca",
|
||||||
|
["800"] = "#3730a3",
|
||||||
|
["900"] = "#312e81",
|
||||||
|
["950"] = "#1e1b4b",
|
||||||
|
},
|
||||||
|
violet = {
|
||||||
|
["50"] = "#f5f3ff",
|
||||||
|
["100"] = "#ede9fe",
|
||||||
|
["200"] = "#ddd6fe",
|
||||||
|
["300"] = "#c4b5fd",
|
||||||
|
["400"] = "#a78bfa",
|
||||||
|
["500"] = "#8b5cf6",
|
||||||
|
["600"] = "#7c3aed",
|
||||||
|
["700"] = "#6d28d9",
|
||||||
|
["800"] = "#5b21b6",
|
||||||
|
["900"] = "#4c1d95",
|
||||||
|
["950"] = "#2e1065",
|
||||||
|
},
|
||||||
|
purple = {
|
||||||
|
["50"] = "#faf5ff",
|
||||||
|
["100"] = "#f3e8ff",
|
||||||
|
["200"] = "#e9d5ff",
|
||||||
|
["300"] = "#d8b4fe",
|
||||||
|
["400"] = "#c084fc",
|
||||||
|
["500"] = "#a855f7",
|
||||||
|
["600"] = "#9333ea",
|
||||||
|
["700"] = "#7e22ce",
|
||||||
|
["800"] = "#6b21a8",
|
||||||
|
["900"] = "#581c87",
|
||||||
|
["950"] = "#3b0764",
|
||||||
|
},
|
||||||
|
fuchsia = {
|
||||||
|
["50"] = "#fdf4ff",
|
||||||
|
["100"] = "#fae8ff",
|
||||||
|
["200"] = "#f5d0fe",
|
||||||
|
["300"] = "#f0abfc",
|
||||||
|
["400"] = "#e879f9",
|
||||||
|
["500"] = "#d946ef",
|
||||||
|
["600"] = "#c026d3",
|
||||||
|
["700"] = "#a21caf",
|
||||||
|
["800"] = "#86198f",
|
||||||
|
["900"] = "#701a75",
|
||||||
|
["950"] = "#4a044e",
|
||||||
|
},
|
||||||
|
pink = {
|
||||||
|
["50"] = "#fdf2f8",
|
||||||
|
["100"] = "#fce7f3",
|
||||||
|
["200"] = "#fbcfe8",
|
||||||
|
["300"] = "#f9a8d4",
|
||||||
|
["400"] = "#f472b6",
|
||||||
|
["500"] = "#ec4899",
|
||||||
|
["600"] = "#db2777",
|
||||||
|
["700"] = "#be185d",
|
||||||
|
["800"] = "#9d174d",
|
||||||
|
["900"] = "#831843",
|
||||||
|
["950"] = "#500724",
|
||||||
|
},
|
||||||
|
rose = {
|
||||||
|
["50"] = "#fff1f2",
|
||||||
|
["100"] = "#ffe4e6",
|
||||||
|
["200"] = "#fecdd3",
|
||||||
|
["300"] = "#fda4af",
|
||||||
|
["400"] = "#fb7185",
|
||||||
|
["500"] = "#f43f5e",
|
||||||
|
["600"] = "#e11d48",
|
||||||
|
["700"] = "#be123c",
|
||||||
|
["800"] = "#9f1239",
|
||||||
|
["900"] = "#881337",
|
||||||
|
["950"] = "#4c0519",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Groups
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- Let's get down to business. Define highlight groups using the palette
|
||||||
|
-- we worked so hard on. Access colors with `hue.base["shade"]`. Example:
|
||||||
|
--
|
||||||
|
-- Normal = { fg = hue.base["500"], bg = "NONE", bold = true }
|
||||||
|
--
|
||||||
|
|
||||||
|
local groups = {
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Cursor Line
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
CursorLine = {},
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Matching Parentheses
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
MatchParen = { fg = 0 },
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Sign Column
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
SignColumn = { fg = 0 },
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Normal Text
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
Normal = { fg = hue.base["900"] },
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Vertical Splits
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
VertSplit = { fg = hue.base["400"] },
|
||||||
|
WinSeparator = { fg = hue.base["400"] },
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Floating Window Borders
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
FloatBorder = { fg = hue.base["600"], bg = hue.base["100"] },
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Search
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
Search = { fg = hue.base["600"], bg = hue.amber["200"] },
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Visual Highlighting
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
Visual = { bg = hue.base["300"] },
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- End of Buffers
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
EndOfBuffer = { fg = hue.base["900"] },
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Popup Menu
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
Pmenu = { fg = hue.neutral["100"], bg = hue.neutral["500"], italic = true },
|
||||||
|
PmenuSel = { fg = hue.neutral["100"], bg = hue.blue["500"], italic = true },
|
||||||
|
PmenuSbar = { bg = hue.neutral["500"] },
|
||||||
|
PmenuThumb = { bg = hue.neutral["500"] },
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Tab Line
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
TabLine = { fg = hue.base["400"], bg = hue.base["700"] },
|
||||||
|
TabLineFill = { fg = hue.base["100"], bg = hue.base["700"] },
|
||||||
|
TabLineSel = { fg = hue.base["100"], bg = hue.base["600"], bold = true },
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Line Numbers
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
LineNr = { fg = hue.base["500"] },
|
||||||
|
LineNrAbove = { fg = hue.base["500"] },
|
||||||
|
LineNrBelow = { fg = hue.base["500"] },
|
||||||
|
CursorLineNr = { fg = hue.base["500"] },
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Status Line
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
StatusLine = { fg = hue.base["200"], bg = hue.base["700"] },
|
||||||
|
StatusLineNC = { fg = hue.base["200"], bg = hue.base["700"] },
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Syntax
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
Boolean = { fg = hue.yellow["800"] },
|
||||||
|
Comment = { fg = hue.base["500"] },
|
||||||
|
Conditional = { fg = hue.fuchsia["800"] },
|
||||||
|
Constant = { fg = hue.amber["800"] },
|
||||||
|
Debug = {},
|
||||||
|
Define = {},
|
||||||
|
Delimiter = {},
|
||||||
|
Error = {},
|
||||||
|
Exception = {},
|
||||||
|
Float = {},
|
||||||
|
Function = { fg = hue.rose["800"] },
|
||||||
|
Identifier = { fg = hue.rose["800"] },
|
||||||
|
Ignore = {},
|
||||||
|
Include = { fg = hue.fuchsia["800"], bold = true },
|
||||||
|
Keyword = { fg = hue.sky["800"], bold = true },
|
||||||
|
Label = { fg = hue.rose["800"] },
|
||||||
|
Macro = {},
|
||||||
|
Number = { fg = hue.yellow["800"] },
|
||||||
|
Operator = {},
|
||||||
|
PreCondit = {},
|
||||||
|
PreProc = {},
|
||||||
|
Repeat = {},
|
||||||
|
Special = { fg = hue.cyan["800"] },
|
||||||
|
SpecialChar = {},
|
||||||
|
SpecialComment = {},
|
||||||
|
Statement = {},
|
||||||
|
StorageClass = { fg = hue.sky["800"], bold = true },
|
||||||
|
String = { fg = hue.lime["700"] },
|
||||||
|
Structure = { fg = hue.sky["800"], bold = true },
|
||||||
|
Tag = { fg = hue.rose["800"] },
|
||||||
|
Title = { bold = true },
|
||||||
|
Todo = {},
|
||||||
|
Type = { fg = hue.sky["800"] },
|
||||||
|
Typedef = {},
|
||||||
|
Underlined = { fg = hue.blue["800"], underline = true },
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Diffs
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Added = { fg = hue.green["700"] },
|
||||||
|
Changed = { fg = hue.sky["700"] },
|
||||||
|
Removed = { fg = hue.red["800"] },
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Diagnosticles
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
DiagnosticError = { fg = hue.red["300"], italic = true },
|
||||||
|
DiagnosticWarn = { fg = hue.orange["300"], italic = true },
|
||||||
|
DiagnosticHint = { fg = hue.amber["300"], italic = true },
|
||||||
|
DiagnosticInfo = { fg = hue.base["300"], italic = true },
|
||||||
|
|
||||||
|
DiagnosticUnderlineWarn = { bg = hue.amber["100"] },
|
||||||
|
DiagnosticUnderlineHint = { bg = hue.amber["100"] },
|
||||||
|
DiagnosticUnnecessary = { bg = hue.amber["100"] },
|
||||||
|
|
||||||
|
-- Trouble Plugin
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
TroubleFile = { fg = hue.base["900"], bold = true },
|
||||||
|
TroubleCount = { fg = hue.base["400"], bold = true },
|
||||||
|
TroubleSignError = { fg = hue.red["600"] },
|
||||||
|
TroubleSignWarning = { fg = hue.orange["600"] },
|
||||||
|
TroubleSignHint = { fg = hue.amber["600"] },
|
||||||
|
TroubleSignInfo = { fg = hue.base["600"] },
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Diff
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
GitSignsAdd = { fg = hue.lime["400"] },
|
||||||
|
GitSignsDelete = { fg = hue.red["400"] },
|
||||||
|
GitSignsChange = { fg = hue.blue["400"] },
|
||||||
|
GitSignsText = { fg = hue.base["400"] },
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- NvimTree Plugin
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
NvimTreeCursorLine = { fg = hue.base["100"], bg = hue.base["400"] },
|
||||||
|
NvimTreeNormal = { fg = hue.base["950"] },
|
||||||
|
NvimTreeFolderIcon = { fg = hue.base["950"] },
|
||||||
|
NvimTreeFileIcon = { fg = hue.base["950"] },
|
||||||
|
NvimTreeFolderName = { fg = hue.base["950"] },
|
||||||
|
NvimTreeEmptyFolder = { fg = hue.base["950"] },
|
||||||
|
NvimTreeEmptyFolderName = { fg = hue.base["950"] },
|
||||||
|
NvimTreeOpenedFile = { fg = hue.base["950"] },
|
||||||
|
NvimTreeOpenedFolderName = { fg = hue.base["950"] },
|
||||||
|
NvimTreeSpecialFile = { fg = hue.base["950"] },
|
||||||
|
NvimTreeSymlink = { fg = hue.base["950"] },
|
||||||
|
NvimTreeFile = { fg = hue.base["950"] },
|
||||||
|
NvimTreeFileDeleted = { fg = hue.base["950"] },
|
||||||
|
NvimTreeFileDirty = { fg = hue.base["950"] },
|
||||||
|
NvimTreeFileMerge = { fg = hue.base["950"] },
|
||||||
|
NvimTreeFileRenamed = { fg = hue.base["950"] },
|
||||||
|
NvimTreeFileStaged = { fg = hue.base["950"] },
|
||||||
|
NvimTreeExecFile = { fg = hue.base["950"] },
|
||||||
|
NvimTreeWindowPicker = { fg = hue.base["100"], bg = hue.base["900"] },
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Set all the colors
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- Zhu li! Do the thing!
|
||||||
|
--
|
||||||
|
|
||||||
|
for group, settings in pairs(groups) do
|
||||||
|
vim.api.nvim_set_hl(0, group, settings)
|
||||||
|
end
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Manage NvimTree colors on enter and exit
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
--
|
||||||
|
--
|
||||||
|
|
||||||
|
local nvimTreeCursorLine = vim.api.nvim_create_augroup("NvimTreeCursorLine", {
|
||||||
|
clear = true
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("BufEnter", {
|
||||||
|
pattern = "NvimTree_1",
|
||||||
|
callback = function()
|
||||||
|
vim.cmd("setlocal cursorline")
|
||||||
|
vim.api.nvim_set_hl(0, "NvimTreeCursorLine", {
|
||||||
|
fg = hue.base["100"], bg = hue.blue["500"]
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
group = nvimTreeCursorLine,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("BufLeave", {
|
||||||
|
pattern = "NvimTree_1",
|
||||||
|
callback = function()
|
||||||
|
vim.api.nvim_set_hl(0, "NvimTreeCursorLine", {
|
||||||
|
fg = hue.base["900"], bg = hue.base["250"]
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
group = nvimTreeCursorLine,
|
||||||
|
})
|
||||||
|
|
||||||
6
dot_config/nvim/ftplugin/css.lua
Normal file
6
dot_config/nvim/ftplugin/css.lua
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
local space = 2
|
||||||
|
vim.opt.shiftwidth = space
|
||||||
|
vim.opt.tabstop = space
|
||||||
|
vim.opt.softtabstop = space
|
||||||
|
vim.opt.expandtab = true
|
||||||
|
vim.opt.shiftround = true
|
||||||
4
dot_config/nvim/ftplugin/go.lua
Normal file
4
dot_config/nvim/ftplugin/go.lua
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
vim.opt_local.expandtab = false
|
||||||
|
vim.opt_local.shiftwidth = 4
|
||||||
|
vim.opt_local.tabstop = 4
|
||||||
|
vim.opt_local.softtabstop = 0
|
||||||
6
dot_config/nvim/ftplugin/html.lua
Normal file
6
dot_config/nvim/ftplugin/html.lua
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
local space = 2
|
||||||
|
vim.opt.shiftwidth = space
|
||||||
|
vim.opt.tabstop = space
|
||||||
|
vim.opt.softtabstop = space
|
||||||
|
vim.opt.expandtab = true
|
||||||
|
vim.opt.shiftround = true
|
||||||
0
dot_config/nvim/ftplugin/php.lua
Normal file
0
dot_config/nvim/ftplugin/php.lua
Normal file
587
dot_config/nvim/init.lua
Normal file
587
dot_config/nvim/init.lua
Normal file
@ -0,0 +1,587 @@
|
|||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- mini.nvim
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- This Neovim configuration leans heavily on the mini.nvim ecosystem.
|
||||||
|
--
|
||||||
|
-- Installing mini.nvim and all its modules allows us to load each module with
|
||||||
|
-- a simple 'require('mini.module').setup()'. Using the mini.deps module allows
|
||||||
|
-- for adding plugins using the `MiniDeps.add()` function followed by the same
|
||||||
|
-- 'require('plugin').setup()'. Pass a config to setup to configure modules and
|
||||||
|
-- plugins, for example `require('plugin').setup.({config})`.
|
||||||
|
--
|
||||||
|
-- See `https://github.com/echasnovski/mini.nvim`
|
||||||
|
--
|
||||||
|
|
||||||
|
local path_package = vim.fn.stdpath('data') .. '/site'
|
||||||
|
local mini_path = path_package .. '/pack/deps/start/mini.nvim'
|
||||||
|
if not vim.loop.fs_stat(mini_path) then
|
||||||
|
vim.cmd('echo "Installing `mini.nvim`" | redraw')
|
||||||
|
local clone_cmd = {
|
||||||
|
'git', 'clone', '--filter=blob:none',
|
||||||
|
'https://github.com/echasnovski/mini.nvim', mini_path
|
||||||
|
}
|
||||||
|
vim.fn.system(clone_cmd)
|
||||||
|
vim.cmd('packadd mini.nvim | helptags ALL')
|
||||||
|
end
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- mini.deps
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- See `https://github.com/echasnovski/mini.deps`
|
||||||
|
--
|
||||||
|
|
||||||
|
local deps = require('mini.deps')
|
||||||
|
deps.setup()
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- mini.ai
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- See `https://github.com/echasnovski/mini.ai`
|
||||||
|
--
|
||||||
|
|
||||||
|
local ai = require('mini.ai')
|
||||||
|
ai.setup()
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- mini.basics
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- See `https://github.com/echasnovski/mini.basics`
|
||||||
|
--
|
||||||
|
|
||||||
|
local basics = require('mini.basics')
|
||||||
|
basics.setup()
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- mini.completion
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- See `https://github.com/echasnovski/mini.completion`
|
||||||
|
--
|
||||||
|
|
||||||
|
local completion = require('mini.completion')
|
||||||
|
completion.setup()
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- mini.diff
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- See `https://github.com/echasnovski/mini.diff`
|
||||||
|
--
|
||||||
|
|
||||||
|
local diff = require('mini.diff')
|
||||||
|
diff.setup()
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- mini.git
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- See `https://github.com/echasnovski/mini.git`
|
||||||
|
--
|
||||||
|
|
||||||
|
local git = require('mini.git')
|
||||||
|
git.setup()
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- mini.hipatterns
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- See `https://github.com/echasnovski/mini.hipatterns`
|
||||||
|
--
|
||||||
|
|
||||||
|
local hipatterns = require('mini.hipatterns')
|
||||||
|
hipatterns.setup({
|
||||||
|
highlighters = {
|
||||||
|
hex_color = hipatterns.gen_highlighter.hex_color(),
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- mini.indentscope
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- See `https://github.com/echasnovski/mini.indentscope`
|
||||||
|
--
|
||||||
|
|
||||||
|
local indentscope = require('mini.indentscope')
|
||||||
|
indentscope.setup()
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- mini.pairs
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- See `https://github.com/echasnovski/mini.pairs`
|
||||||
|
--
|
||||||
|
|
||||||
|
local pairs = require('mini.pairs')
|
||||||
|
pairs.setup()
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- mini.surround
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- See `https://github.com/echasnovski/mini.surround`
|
||||||
|
--
|
||||||
|
|
||||||
|
local surround = require('mini.surround')
|
||||||
|
surround.setup()
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- mini.statusline
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- See `https://github.com/echasnovski/mini.statusline`
|
||||||
|
--
|
||||||
|
|
||||||
|
local special_filetypes = {
|
||||||
|
'NvimTree',
|
||||||
|
'NeoTree',
|
||||||
|
'Trouble'
|
||||||
|
}
|
||||||
|
|
||||||
|
local function is_special_filetype(filetype)
|
||||||
|
for _, special_filetype in ipairs(special_filetypes) do
|
||||||
|
if filetype == special_filetype then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
local function get_position_indicator()
|
||||||
|
local filetype = vim.bo.filetype
|
||||||
|
|
||||||
|
if is_special_filetype(filetype) then
|
||||||
|
return ""
|
||||||
|
end
|
||||||
|
|
||||||
|
local space_or_tab = vim.bo.expandtab and "S" or "T"
|
||||||
|
local shiftwidth = vim.bo.shiftwidth
|
||||||
|
local row, col = vim.fn.line('.'), vim.fn.col('.')
|
||||||
|
|
||||||
|
return space_or_tab .. shiftwidth .. ' ' .. string.format("%d:%d", row, col) .. ' '
|
||||||
|
end
|
||||||
|
|
||||||
|
local function get_filename()
|
||||||
|
local filetype = vim.bo.filetype
|
||||||
|
local symbol = vim.bo.readonly and " [-] " or (vim.bo.modified and " [+] " or "")
|
||||||
|
|
||||||
|
if filetype == '' then
|
||||||
|
return "[scratch]" .. symbol
|
||||||
|
elseif is_special_filetype(filetype) then
|
||||||
|
return filetype
|
||||||
|
else
|
||||||
|
return vim.fn.expand('%:.') .. symbol
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Set up mini.statusline
|
||||||
|
require('mini.statusline').setup({
|
||||||
|
content = {
|
||||||
|
active = function()
|
||||||
|
local filetype = vim.bo.filetype
|
||||||
|
|
||||||
|
-- For special filetypes, return a simplified statusline
|
||||||
|
if is_special_filetype(filetype) then
|
||||||
|
return get_filename()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- For regular files, construct the full statusline
|
||||||
|
return string.format(
|
||||||
|
' %s%s%s',
|
||||||
|
get_filename(), -- filename with modification symbol
|
||||||
|
'%=', -- middle spacing
|
||||||
|
get_position_indicator() -- position indicator
|
||||||
|
)
|
||||||
|
end,
|
||||||
|
|
||||||
|
inactive = function()
|
||||||
|
-- For inactive windows, show a simpler statusline
|
||||||
|
return string.format(
|
||||||
|
' %s%s%s',
|
||||||
|
get_filename(), -- filename with modification symbol
|
||||||
|
'%=', -- middle spacing
|
||||||
|
get_position_indicator() -- position indicator
|
||||||
|
)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
use_icons = true,
|
||||||
|
set_vim_settings = true,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- nvim-lspconfig
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- See `https://github.com/neovim/nvim-lspconfig`
|
||||||
|
--
|
||||||
|
|
||||||
|
MiniDeps.add({
|
||||||
|
source = 'neovim/nvim-lspconfig',
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.lsp.config('luals', {
|
||||||
|
cmd = {'lua-language-server'},
|
||||||
|
filetypes = {'lua'},
|
||||||
|
root_markers = {'.luarc.json', '.luarc.jsonc'},
|
||||||
|
settings = {
|
||||||
|
Lua = {
|
||||||
|
diagnostics = {
|
||||||
|
globals = {'vim', 'MiniDeps'}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.lsp.enable('luals')
|
||||||
|
|
||||||
|
|
||||||
|
vim.lsp.config('gopls', {
|
||||||
|
cmd = {'gopls'},
|
||||||
|
filetypes = {'go', 'gomod', 'gowork', 'gotmpl'},
|
||||||
|
root_markers = {'go.mod', '.git'},
|
||||||
|
settings = {
|
||||||
|
gopls = {
|
||||||
|
analyses = {
|
||||||
|
unusedparams = true,
|
||||||
|
},
|
||||||
|
staticcheck = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.lsp.enable('gopls')
|
||||||
|
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- nvim-treesitter
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- See `https://github.com/nvim-treesitter/nvim-treesitter`
|
||||||
|
--
|
||||||
|
|
||||||
|
MiniDeps.add({
|
||||||
|
source = 'nvim-treesitter/nvim-treesitter',
|
||||||
|
checkout = 'master',
|
||||||
|
monitor = 'main',
|
||||||
|
hooks = {
|
||||||
|
post_checkout = function()
|
||||||
|
vim.cmd('TSUpdate')
|
||||||
|
end
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Add the custom Blade parser
|
||||||
|
local parser_config = require("nvim-treesitter.parsers").get_parser_configs()
|
||||||
|
|
||||||
|
parser_config.blade = {
|
||||||
|
install_info = {
|
||||||
|
url = "https://github.com/EmranMR/tree-sitter-blade", -- Community parser repo
|
||||||
|
files = { "src/parser.c" },
|
||||||
|
branch = "main",
|
||||||
|
},
|
||||||
|
filetype = "blade",
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Treesitter setup
|
||||||
|
require('nvim-treesitter.configs').setup({
|
||||||
|
auto_install = true, -- Automatically install missing parsers
|
||||||
|
ensure_installed = {
|
||||||
|
'bash',
|
||||||
|
'c',
|
||||||
|
'c_sharp',
|
||||||
|
'css',
|
||||||
|
'csv',
|
||||||
|
'dockerfile',
|
||||||
|
'editorconfig',
|
||||||
|
'git_config',
|
||||||
|
'gitcommit',
|
||||||
|
'gitignore',
|
||||||
|
'go',
|
||||||
|
'graphql',
|
||||||
|
'html',
|
||||||
|
'javascript',
|
||||||
|
'jq',
|
||||||
|
'jsdoc',
|
||||||
|
'json',
|
||||||
|
'lua',
|
||||||
|
'luadoc',
|
||||||
|
'markdown',
|
||||||
|
'markdown_inline',
|
||||||
|
'nginx',
|
||||||
|
'php',
|
||||||
|
'phpdoc',
|
||||||
|
'python',
|
||||||
|
'query',
|
||||||
|
'ruby',
|
||||||
|
'rust',
|
||||||
|
'scss',
|
||||||
|
'sql',
|
||||||
|
'tmux',
|
||||||
|
'toml',
|
||||||
|
'typescript',
|
||||||
|
'vim',
|
||||||
|
'vimdoc',
|
||||||
|
'xml',
|
||||||
|
'yaml',
|
||||||
|
'blade', -- Add blade here
|
||||||
|
},
|
||||||
|
highlight = {
|
||||||
|
enable = true, -- Enable syntax highlighting
|
||||||
|
},
|
||||||
|
indent = {
|
||||||
|
enable = false, -- Disable indentation for now
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Set filetype for Blade files
|
||||||
|
vim.cmd [[autocmd BufRead,BufNewFile *.blade.php set filetype=blade]]
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- tmux.nvim
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- See `https://github.com/aserowy/tmux.nvim`
|
||||||
|
--
|
||||||
|
|
||||||
|
MiniDeps.add({ source = 'aserowy/tmux.nvim' })
|
||||||
|
require('tmux').setup({})
|
||||||
|
|
||||||
|
-- Terminal Keymaps
|
||||||
|
vim.keymap.set("t", "<c-j>", "<c-\\><c-n><c-w>j", {noremap = true})
|
||||||
|
vim.keymap.set("t", "<c-h>", "<c-\\><c-n><c-w>h", {noremap = true})
|
||||||
|
vim.keymap.set("t", "<c-k>", "<c-\\><c-n><c-w>k", {noremap = true})
|
||||||
|
vim.keymap.set("t", "<c-l>", "<c-\\><c-n><c-w>l", {noremap = true})
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- Oil
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- See `https://github.com/stevearc/oil.nvim`
|
||||||
|
--
|
||||||
|
|
||||||
|
MiniDeps.add({ source = 'stevearc/oil.nvim' })
|
||||||
|
|
||||||
|
require('oil').setup({
|
||||||
|
skip_confirm_for_simple_edits = true,
|
||||||
|
prompt_save_on_select_new_entry = false,
|
||||||
|
delete_to_trash = true,
|
||||||
|
confirmation = {
|
||||||
|
border = "double",
|
||||||
|
},
|
||||||
|
view_options = {
|
||||||
|
show_hidden = true,
|
||||||
|
sort = {
|
||||||
|
{
|
||||||
|
"name", "asc"
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.keymap.set("n", "-", "<CMD>Oil<CR>", { desc = "Open parent directory" })
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- Neogit
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- See `https://github.com/NeogitOrg/neogit`
|
||||||
|
--
|
||||||
|
|
||||||
|
MiniDeps.add({ source = 'nvim-lua/plenary.nvim' })
|
||||||
|
MiniDeps.add({ source = 'NeogitOrg/neogit' })
|
||||||
|
|
||||||
|
require('neogit').setup({
|
||||||
|
integrations = {
|
||||||
|
fzf_lua = true, -- Use your existing fzf-lua
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- FZF Lua
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- See `https://github.com/ibhagwan/fzf-lua`
|
||||||
|
--
|
||||||
|
|
||||||
|
MiniDeps.add({
|
||||||
|
source = 'ibhagwan/fzf-lua'
|
||||||
|
})
|
||||||
|
|
||||||
|
require('fzf-lua').setup({
|
||||||
|
fzf_bin = 'fzf', -- Use system fzf (not embedded)
|
||||||
|
|
||||||
|
-- Make it fill the screen like terminal fzf
|
||||||
|
winopts = {
|
||||||
|
height = 1.0, -- Full height
|
||||||
|
width = 1.0, -- Full width
|
||||||
|
row = 0, -- Top of screen
|
||||||
|
col = 0, -- Left of screen
|
||||||
|
border = 'none', -- No border (like terminal)
|
||||||
|
preview = {
|
||||||
|
border = 'double',
|
||||||
|
title = false, -- Remove the preview title
|
||||||
|
title_pos = false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Let fzf handle the layout/preview like in terminal
|
||||||
|
fzf_opts = {
|
||||||
|
-- Remove fzf-lua's default overrides to use your terminal config
|
||||||
|
['--height'] = false, -- Don't override height
|
||||||
|
['--layout'] = false, -- Don't override layout
|
||||||
|
['--border'] = false, -- Don't override border
|
||||||
|
['--info'] = false, -- Don't override info position
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Ensure previews work like your terminal setup
|
||||||
|
files = {
|
||||||
|
-- preview_opts = 'hidden', -- Let fzf handle preview
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>f", "<cmd>FzfLua files<cr>", { desc = "Search Files" })
|
||||||
|
vim.keymap.set("n", "<leader>o", "<cmd>FzfLua oldfiles<cr>", { desc = "List Recent Files" })
|
||||||
|
vim.keymap.set("n", "<leader>b", "<cmd>FzfLua buffers<cr>", { desc = "List Buffers" })
|
||||||
|
vim.keymap.set("n", "<leader>g", "<cmd>FzfLua live_grep<cr>", { desc = "List Matched Strings" })
|
||||||
|
vim.keymap.set("n", "<leader>d", "<cmd>FzfLua lsp_diagnostics<cr>", { desc = "List Diagnostics" })
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- VimWiki
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
--
|
||||||
|
--
|
||||||
|
|
||||||
|
-- MiniDeps.add({
|
||||||
|
-- source = 'vimwiki/vimwiki'
|
||||||
|
-- })
|
||||||
|
--
|
||||||
|
-- require('vimwiki').setup()
|
||||||
|
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- Set Colorscheme
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- Use the custom colorscheme at `nvim/colors/lpcstudio`
|
||||||
|
--
|
||||||
|
|
||||||
|
vim.cmd 'colorscheme lpcstudio'
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- Disable swapfile
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- The swapfiles seem unneeded with my local development environment. Crashes
|
||||||
|
-- are rare, and the files are combersome.
|
||||||
|
--
|
||||||
|
|
||||||
|
vim.opt.swapfile = false
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- Show the mode in the command line
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- I like seeing the mode in the bottom left and not following me around.
|
||||||
|
-- I generally know what mode I'm in and don't need a vibrant hint.
|
||||||
|
--
|
||||||
|
|
||||||
|
vim.opt.showmode = true
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- Make cursor blink
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
-- Sometimes on a big monitor I have trouble finding cursors. This helps.
|
||||||
|
--
|
||||||
|
|
||||||
|
vim.cmd [[ set guicursor+=a:blinkon1 ]]
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- Automatically resize windows
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
--
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("VimResized", {
|
||||||
|
command = "wincmd =",
|
||||||
|
})
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- Default Spacing
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
--
|
||||||
|
--
|
||||||
|
|
||||||
|
local space = 4
|
||||||
|
vim.opt.shiftwidth = space
|
||||||
|
vim.opt.tabstop = space
|
||||||
|
vim.opt.softtabstop = space
|
||||||
|
vim.opt.expandtab = true
|
||||||
|
vim.opt.shiftround = true
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- Keymaps
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
--
|
||||||
|
--
|
||||||
|
|
||||||
|
vim.keymap.set('i', '<F15>', '<C-o>o', { noremap = true, silent = true, desc = "Open new line below (Shift+Enter)" })
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- Open Help buffers to the right
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
--
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
|
desc = "Automatically Split help Buffers to the right",
|
||||||
|
pattern = "help",
|
||||||
|
command = "wincmd L",
|
||||||
|
})
|
||||||
|
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
-- Search highlight remove on cursor move
|
||||||
|
-- -----------------------------------------------------------------------------
|
||||||
|
--
|
||||||
|
--
|
||||||
|
|
||||||
|
local function augroup(name, fnc)
|
||||||
|
fnc(vim.api.nvim_create_augroup(name, { clear = true }))
|
||||||
|
end
|
||||||
|
|
||||||
|
augroup("ibhagwan/ToggleSearchHL", function(g)
|
||||||
|
vim.api.nvim_create_autocmd("InsertEnter", {
|
||||||
|
group = g,
|
||||||
|
callback = function()
|
||||||
|
vim.schedule(function() vim.cmd("nohlsearch") end)
|
||||||
|
end
|
||||||
|
})
|
||||||
|
vim.api.nvim_create_autocmd("CursorMoved", {
|
||||||
|
group = g,
|
||||||
|
callback = function()
|
||||||
|
local view, rpos = vim.fn.winsaveview(), vim.fn.getpos(".")
|
||||||
|
vim.cmd(string.format("silent! keepjumps go%s",
|
||||||
|
(vim.fn.line2byte(view.lnum) + view.col + 1 - (vim.v.searchforward == 1 and 2 or 0))))
|
||||||
|
local ok, _ = pcall(vim.cmd, "silent! keepjumps norm! n")
|
||||||
|
local insearch = ok and (function()
|
||||||
|
local npos = vim.fn.getpos(".")
|
||||||
|
return npos[2] == rpos[2] and npos[3] == rpos[3]
|
||||||
|
end)()
|
||||||
|
vim.fn.winrestview(view)
|
||||||
|
if not insearch then
|
||||||
|
vim.schedule(function() vim.cmd("nohlsearch") end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
})
|
||||||
|
end)
|
||||||
|
|
||||||
8
dot_config/nvim/lua/plugins/conform.lua
Normal file
8
dot_config/nvim/lua/plugins/conform.lua
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
return {
|
||||||
|
'stevearc/conform.nvim',
|
||||||
|
opts = {
|
||||||
|
formatters_by_ft = {
|
||||||
|
blade = { "blade-formatter" }
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
2
dot_config/nvim/spell/en.utf-8.add
Normal file
2
dot_config/nvim/spell/en.utf-8.add
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Coeur d’Alene
|
||||||
|
diminishment
|
||||||
BIN
dot_config/nvim/spell/en.utf-8.add.spl
Normal file
BIN
dot_config/nvim/spell/en.utf-8.add.spl
Normal file
Binary file not shown.
16
dot_config/nvim/testinit.lua
Normal file
16
dot_config/nvim/testinit.lua
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-- Enable modern command-line completion
|
||||||
|
vim.opt.wildmode = { "longest", "full" }
|
||||||
|
vim.opt.wildmenu = true
|
||||||
|
vim.opt.wildoptions = "pum"
|
||||||
|
vim.opt.pumblend = 10
|
||||||
|
vim.opt.pumheight = 10
|
||||||
|
|
||||||
|
-- Enhanced command-line completion
|
||||||
|
vim.keymap.set('c', '<C-p>', '<Up>', { noremap = true })
|
||||||
|
vim.keymap.set('c', '<C-n>', '<Down>', { noremap = true })
|
||||||
|
|
||||||
|
-- Set up better command-line experience
|
||||||
|
vim.opt.cmdheight = 1
|
||||||
|
vim.opt.laststatus = 2
|
||||||
|
vim.opt.showmode = true
|
||||||
|
vim.opt.showcmd = true
|
||||||
107
dot_config/sketchybar/executable_sketchybarrc
Normal file
107
dot_config/sketchybar/executable_sketchybarrc
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
# This is a demo config to showcase some of the most important commands.
|
||||||
|
# It is meant to be changed and configured, as it is intentionally kept sparse.
|
||||||
|
# For a (much) more advanced configuration example see my dotfiles:
|
||||||
|
# https://github.com/FelixKratz/dotfiles
|
||||||
|
|
||||||
|
PLUGIN_DIR="$CONFIG_DIR/plugins"
|
||||||
|
|
||||||
|
##### Bar Appearance #####
|
||||||
|
# Configuring the general appearance of the bar.
|
||||||
|
# These are only some of the options available. For all options see:
|
||||||
|
# https://felixkratz.github.io/SketchyBar/config/bar
|
||||||
|
# If you are looking for other colors, see the color picker:
|
||||||
|
# https://felixkratz.github.io/SketchyBar/config/tricks#color-picker
|
||||||
|
|
||||||
|
sketchybar --bar position=top height=48 blur_radius=30 color=0x40000000
|
||||||
|
|
||||||
|
##### Changing Defaults #####
|
||||||
|
# We now change some default values, which are applied to all further items.
|
||||||
|
# For a full list of all available item properties see:
|
||||||
|
# https://felixkratz.github.io/SketchyBar/config/items
|
||||||
|
|
||||||
|
default=(
|
||||||
|
padding_left=5
|
||||||
|
padding_right=5
|
||||||
|
icon.font="Symbols Nerd Font:Regular:14.0"
|
||||||
|
label.font=".AppleSystemUIFont:Medium:14.0"
|
||||||
|
icon.color=0xffffffff
|
||||||
|
label.color=0xffffffff
|
||||||
|
icon.padding_left=4
|
||||||
|
icon.padding_right=4
|
||||||
|
label.padding_left=4
|
||||||
|
label.padding_right=4
|
||||||
|
y_offset=6
|
||||||
|
)
|
||||||
|
sketchybar --default "${default[@]}"
|
||||||
|
|
||||||
|
##### Adding Mission Control Space Indicators #####
|
||||||
|
# Let's add some mission control spaces:
|
||||||
|
# https://felixkratz.github.io/SketchyBar/config/components#space----associate-mission-control-spaces-with-an-item
|
||||||
|
# to indicate active and available mission control spaces.
|
||||||
|
|
||||||
|
# SPACE_ICONS=("1" "2" "3" "4" "5" "6" "7" "8" "9" "10")
|
||||||
|
# for i in "${!SPACE_ICONS[@]}"
|
||||||
|
# do
|
||||||
|
# sid="$(($i+1))"
|
||||||
|
# space=(
|
||||||
|
# space="$sid"
|
||||||
|
# icon="${SPACE_ICONS[i]}"
|
||||||
|
# icon.padding_left=7
|
||||||
|
# icon.padding_right=7
|
||||||
|
# background.color=0x40ffffff
|
||||||
|
# background.corner_radius=5
|
||||||
|
# background.height=25
|
||||||
|
# label.drawing=off
|
||||||
|
# script="$PLUGIN_DIR/space.sh"
|
||||||
|
# click_script="yabai -m space --focus $sid"
|
||||||
|
# )
|
||||||
|
# sketchybar --add space space."$sid" left --set space."$sid" "${space[@]}"
|
||||||
|
# done
|
||||||
|
|
||||||
|
sketchybar --add event aerospace_workspace_change
|
||||||
|
|
||||||
|
for sid in $(aerospace list-workspaces --all); do
|
||||||
|
sketchybar --add item space.$sid left \
|
||||||
|
--subscribe space.$sid aerospace_workspace_change \
|
||||||
|
--set space.$sid \
|
||||||
|
background.color=0x44ffffff \
|
||||||
|
background.corner_radius=5 \
|
||||||
|
background.height=20 \
|
||||||
|
background.drawing=off \
|
||||||
|
label="$sid" \
|
||||||
|
click_script="aerospace workspace $sid" \
|
||||||
|
script="$CONFIG_DIR/plugins/aerospace.sh $sid"
|
||||||
|
done
|
||||||
|
|
||||||
|
##### Adding Left Items #####
|
||||||
|
# We add some regular items to the left side of the bar, where
|
||||||
|
# only the properties deviating from the current defaults need to be set
|
||||||
|
|
||||||
|
sketchybar --add item chevron left \
|
||||||
|
--set chevron icon="" label.drawing=off \
|
||||||
|
--add item front_app left \
|
||||||
|
--set front_app icon.drawing=off script="$PLUGIN_DIR/front_app.sh" \
|
||||||
|
--subscribe front_app front_app_switched
|
||||||
|
|
||||||
|
##### Adding Right Items #####
|
||||||
|
# In the same way as the left items we can add items to the right side.
|
||||||
|
# Additional position (e.g. center) are available, see:
|
||||||
|
# https://felixkratz.github.io/SketchyBar/config/items#adding-items-to-sketchybar
|
||||||
|
|
||||||
|
# Some items refresh on a fixed cycle, e.g. the clock runs its script once
|
||||||
|
# every 10s. Other items respond to events they subscribe to, e.g. the
|
||||||
|
# volume.sh script is only executed once an actual change in system audio
|
||||||
|
# volume is registered. More info about the event system can be found here:
|
||||||
|
# https://felixkratz.github.io/SketchyBar/config/events
|
||||||
|
|
||||||
|
sketchybar --add item clock right \
|
||||||
|
--set clock update_freq=10 icon=" " script="$PLUGIN_DIR/clock.sh" \
|
||||||
|
# --add item volume right \
|
||||||
|
# --set volume script="$PLUGIN_DIR/volume.sh" \
|
||||||
|
--subscribe volume volume_change \
|
||||||
|
--add item battery right \
|
||||||
|
--set battery update_freq=120 script="$PLUGIN_DIR/battery.sh" \
|
||||||
|
--subscribe battery system_woke power_source_change
|
||||||
|
|
||||||
|
##### Force all scripts to run the first time (never do this in a script) #####
|
||||||
|
sketchybar --update
|
||||||
10
dot_config/sketchybar/plugins/executable_aerospace.sh
Normal file
10
dot_config/sketchybar/plugins/executable_aerospace.sh
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# make sure it's executable with:
|
||||||
|
# chmod +x ~/.config/sketchybar/plugins/aerospace.sh
|
||||||
|
|
||||||
|
if [ "$1" = "$FOCUSED_WORKSPACE" ]; then
|
||||||
|
sketchybar --set $NAME background.drawing=on
|
||||||
|
else
|
||||||
|
sketchybar --set $NAME background.drawing=off
|
||||||
|
fi
|
||||||
28
dot_config/sketchybar/plugins/executable_battery.sh
Normal file
28
dot_config/sketchybar/plugins/executable_battery.sh
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
PERCENTAGE="$(pmset -g batt | grep -Eo "\d+%" | cut -d% -f1)"
|
||||||
|
CHARGING="$(pmset -g batt | grep 'AC Power')"
|
||||||
|
|
||||||
|
if [ "$PERCENTAGE" = "" ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "${PERCENTAGE}" in
|
||||||
|
9[0-9]|100) ICON=""
|
||||||
|
;;
|
||||||
|
[6-8][0-9]) ICON=""
|
||||||
|
;;
|
||||||
|
[3-5][0-9]) ICON=""
|
||||||
|
;;
|
||||||
|
[1-2][0-9]) ICON=""
|
||||||
|
;;
|
||||||
|
*) ICON=""
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [[ "$CHARGING" != "" ]]; then
|
||||||
|
ICON=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# The item invoking this script (name $NAME) will get its icon and label
|
||||||
|
# updated with the current battery status
|
||||||
|
sketchybar --set "$NAME" icon="$ICON" label="${PERCENTAGE}%"
|
||||||
8
dot_config/sketchybar/plugins/executable_clock.sh
Normal file
8
dot_config/sketchybar/plugins/executable_clock.sh
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# The $NAME variable is passed from sketchybar and holds the name of
|
||||||
|
# the item invoking this script:
|
||||||
|
# https://felixkratz.github.io/SketchyBar/config/events#events-and-scripting
|
||||||
|
|
||||||
|
sketchybar --set "$NAME" label="$(date '+%d/%m %H:%M')"
|
||||||
|
|
||||||
10
dot_config/sketchybar/plugins/executable_front_app.sh
Normal file
10
dot_config/sketchybar/plugins/executable_front_app.sh
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Some events send additional information specific to the event in the $INFO
|
||||||
|
# variable. E.g. the front_app_switched event sends the name of the newly
|
||||||
|
# focused application in the $INFO variable:
|
||||||
|
# https://felixkratz.github.io/SketchyBar/config/events#events-and-scripting
|
||||||
|
|
||||||
|
if [ "$SENDER" = "front_app_switched" ]; then
|
||||||
|
sketchybar --set "$NAME" label="$INFO"
|
||||||
|
fi
|
||||||
7
dot_config/sketchybar/plugins/executable_space.sh
Normal file
7
dot_config/sketchybar/plugins/executable_space.sh
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# The $SELECTED variable is available for space components and indicates if
|
||||||
|
# the space invoking this script (with name: $NAME) is currently selected:
|
||||||
|
# https://felixkratz.github.io/SketchyBar/config/components#space----associate-mission-control-spaces-with-an-item
|
||||||
|
|
||||||
|
sketchybar --set "$NAME" background.drawing="$SELECTED"
|
||||||
20
dot_config/sketchybar/plugins/executable_volume.sh
Normal file
20
dot_config/sketchybar/plugins/executable_volume.sh
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# The volume_change event supplies a $INFO variable in which the current volume
|
||||||
|
# percentage is passed to the script.
|
||||||
|
|
||||||
|
if [ "$SENDER" = "volume_change" ]; then
|
||||||
|
VOLUME="$INFO"
|
||||||
|
|
||||||
|
case "$VOLUME" in
|
||||||
|
[6-9][0-9]|100) ICON=""
|
||||||
|
;;
|
||||||
|
[3-5][0-9]) ICON=""
|
||||||
|
;;
|
||||||
|
[1-9]|[1-2][0-9]) ICON=""
|
||||||
|
;;
|
||||||
|
*) ICON=""
|
||||||
|
esac
|
||||||
|
|
||||||
|
sketchybar --set "$NAME" icon="$ICON" label="$VOLUME%"
|
||||||
|
fi
|
||||||
48
dot_config/tmux/scripts/executable_get_git_hosting.sh
Normal file
48
dot_config/tmux/scripts/executable_get_git_hosting.sh
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Use the provided path or default to the current directory.
|
||||||
|
current_path="${1:-.}"
|
||||||
|
cd "$current_path" 2>/dev/null || exit 1
|
||||||
|
|
||||||
|
# Check if we are inside a Git repository.
|
||||||
|
if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
||||||
|
# Get the URL of the 'origin' remote.
|
||||||
|
remote_url="$(git config --get remote.origin.url)"
|
||||||
|
|
||||||
|
if [ -n "$remote_url" ]; then
|
||||||
|
# We have a remote, so let's get the icon and domain.
|
||||||
|
|
||||||
|
# 1. Determine the icon based on the URL's content.
|
||||||
|
icon=""
|
||||||
|
if [[ $remote_url == *"github"* ]]; then
|
||||||
|
icon=" "
|
||||||
|
elif [[ $remote_url == *"gitlab"* ]]; then
|
||||||
|
icon=" "
|
||||||
|
elif [[ $remote_url == *"gitea"* ]]; then
|
||||||
|
icon=" "
|
||||||
|
else
|
||||||
|
# Fallback icon for any other git remote (e.g., Bitbucket, Codeberg).
|
||||||
|
icon=" "
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 2. Extract the domain from the remote URL.
|
||||||
|
domain=""
|
||||||
|
if [[ $remote_url =~ ^https?:// ]]; then
|
||||||
|
# For HTTPS URLs (e.g., "https://github.com/user/repo.git")
|
||||||
|
domain=$(echo "$remote_url" | sed -E 's#https?://([^/]+).*#\1#')
|
||||||
|
elif [[ $remote_url =~ @ ]]; then
|
||||||
|
# For SSH URLs (e.g., "git@github.com:user/repo.git")
|
||||||
|
domain=$(echo "$remote_url" | sed -E 's/.*@([^:]+):.*/\1/')
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 3. Print the icon and the extracted domain.
|
||||||
|
echo "$icon $domain"
|
||||||
|
else
|
||||||
|
# No remote is configured, so it's a local repository.
|
||||||
|
echo " local"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Not a git repository, so output nothing.
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
26
dot_config/tmux/scripts/executable_ssh_aware_directory.sh
Normal file
26
dot_config/tmux/scripts/executable_ssh_aware_directory.sh
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Icons
|
||||||
|
icon_local=" " # Your specified local icon
|
||||||
|
icon_remote=" " # Your specified remote icon
|
||||||
|
|
||||||
|
current_cmd=$(tmux display-message -p '#{pane_current_command}')
|
||||||
|
|
||||||
|
if [[ "$current_cmd" == "ssh" ]]; then
|
||||||
|
# Remote - get info from pane title
|
||||||
|
pane_title_raw=$(tmux display-message -p '#{pane_title}')
|
||||||
|
# Clean up: remove any spaces after the colon
|
||||||
|
pane_title_cleaned=$(echo "$pane_title_raw" | sed 's/: /:/g')
|
||||||
|
|
||||||
|
# Output plain text: ICON user@host:directory (or ICON title if not parsable)
|
||||||
|
echo "${icon_remote}${pane_title_cleaned:-remote}"
|
||||||
|
else
|
||||||
|
# Local - build the same format
|
||||||
|
user_part="$(whoami)"
|
||||||
|
host_part="$(hostname -s)"
|
||||||
|
local_dir_raw=$(echo "$1" | sed "s|^$HOME|~|") # $1 is #{pane_current_path}
|
||||||
|
|
||||||
|
# Output plain text: ICON user@host:directory
|
||||||
|
echo "${icon_local}${user_part}@${host_part}:${local_dir_raw}"
|
||||||
|
fi
|
||||||
|
|
||||||
267
dot_config/tmux/tmux.conf
Normal file
267
dot_config/tmux/tmux.conf
Normal file
@ -0,0 +1,267 @@
|
|||||||
|
# ______
|
||||||
|
# /_ __/___ ___ __ ___ __
|
||||||
|
# / / / __ `__ \/ / / / |/_/
|
||||||
|
# / / / / / / / / /_/ /> <
|
||||||
|
# /_/ /_/ /_/ /_/\__,_/_/|_|
|
||||||
|
#
|
||||||
|
# Corey Smith
|
||||||
|
# Tmux Configurations
|
||||||
|
# corey@litteplummercreek.studio
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Configuration Notes
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Tmux has shortened versions of some commands, the following are used:
|
||||||
|
# set = set-option
|
||||||
|
# setw = set-window-option
|
||||||
|
# bind = bind-key
|
||||||
|
# run = run-shell
|
||||||
|
#
|
||||||
|
|
||||||
|
set-environment -g TMUX_PLUGIN_MANAGER_PATH "$XDG_DATA_HOME/tmux/plugins"
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Set helper script path
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# This is where custom helper scripts need to be located for tmux
|
||||||
|
# to utilize them.
|
||||||
|
#
|
||||||
|
|
||||||
|
script_path="$HOME/.config/tmux/scripts"
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Open windows and panes in current directory
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# By default Tmux opens new windows and panes in the user home directory, I
|
||||||
|
# would prefer they open in the directory I am currently in since I am usually
|
||||||
|
# working on a project and just need a new terminal window.
|
||||||
|
#
|
||||||
|
|
||||||
|
bind c new-window -c "#{pane_current_path}"
|
||||||
|
bind '"' split-window -v -c "#{pane_current_path}"
|
||||||
|
bind % split-window -h -c "#{pane_current_path}"
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Turn on mouse reporting for native scrolling
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# This allows tmux to scroll contents using the mouse scroll wheel.
|
||||||
|
#
|
||||||
|
|
||||||
|
set -g mouse on
|
||||||
|
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Speed up refresh rate
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Using Gitmux is nicer with a faster response time, this speeds up how
|
||||||
|
# quickly the Tmux status bar will refresh itself with new information.
|
||||||
|
#
|
||||||
|
|
||||||
|
set -g status-interval 1
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Set Tmux 256 Colors
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# More colors!
|
||||||
|
#
|
||||||
|
|
||||||
|
set -g default-terminal 'tmux-256color'
|
||||||
|
set -as terminal-overrides ',xterm*:Tc:sitm=\E[3m'
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Set Focus Events On
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Neovim :checkhealth recommends setting focus-events to on. What does it do?
|
||||||
|
#
|
||||||
|
|
||||||
|
set -g focus-events on
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Order sessions by name
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# <prefix>s provides a list of open sessions, I find it easier to scan them
|
||||||
|
# if they are ordered alphabetically ascending by name.
|
||||||
|
#
|
||||||
|
|
||||||
|
bind s choose-tree -ZsNO name
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Message Style
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# <prefix>:
|
||||||
|
#
|
||||||
|
|
||||||
|
set -g message-style "bg=default, fg=#000000,bold"
|
||||||
|
set -g message-command-style "bg=default, fg=#000000,bold"
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Set indexes to 1 instead of 0
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# A lot of programming languages are zero indexed. But I'm not programming
|
||||||
|
# when using Tmux. I am using an interface. I want lists to start from 1,
|
||||||
|
# which coincidentally also matches the leftmost number key on my keyboard.
|
||||||
|
#
|
||||||
|
# Below, "panes" and "windows" are configured to start at 1.
|
||||||
|
#
|
||||||
|
# It is unfortunately not possible to start the session list from 1 yet.
|
||||||
|
#
|
||||||
|
|
||||||
|
set -g mode-style "bg=#3B82F6,fg=#FDFDFF"
|
||||||
|
set -g renumber-windows on
|
||||||
|
set -g base-index 1
|
||||||
|
setw -g pane-base-index 1
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Status Bar
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# I prefer the Tmux Status Bar at the top because it clashes with Neovim's
|
||||||
|
# Status Bar and Command Lines. I also prefer to think of Tmux's Status Bar
|
||||||
|
# as a macOS style "Menu Bar for the command line".
|
||||||
|
#
|
||||||
|
|
||||||
|
set -g status-position top
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Status Bar Border
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Move the status bar to the top and format it as an underline below the
|
||||||
|
# status bar. Set the pane borders to a color that blends with Neovim's
|
||||||
|
# Vertical and Horizontal Splits.
|
||||||
|
#
|
||||||
|
|
||||||
|
setw -g pane-border-status top
|
||||||
|
setw -g pane-border-format '─'
|
||||||
|
set -g pane-border-style "bg=default, fg=#A3A6AE"
|
||||||
|
set -g pane-active-border-style "bg=default, fg=#A3A6AE"
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Popup
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Settings for the Tmux Popup function
|
||||||
|
#
|
||||||
|
|
||||||
|
set -g popup-border-lines "double"
|
||||||
|
set -g popup-border-style fg=black
|
||||||
|
bind-key p display-popup -T ' Shell ' -d "#{pane_current_path}"
|
||||||
|
|
||||||
|
bind-key s display-popup -E "tmux list-sessions -F '#{session_name}' | fzf --prompt='Select Tmux Session: ' | xargs -I {} tmux switch-client -t '{}'"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Status Bar Information
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# The information displayed in the status bar.
|
||||||
|
#
|
||||||
|
|
||||||
|
gitmux_path="$HOME/.gitmux.conf"
|
||||||
|
|
||||||
|
separator=" #[fg=#A3A6AE]│#[fg=#000000] "
|
||||||
|
tmux_logo=" "
|
||||||
|
session="#[bold]#S#[nobold]"
|
||||||
|
# directory=" #(echo '#{pane_current_path}/' | sed 's|^$HOME|~|')"
|
||||||
|
directory="#(${script_path}/ssh_aware_directory.sh '#{pane_current_path}')"
|
||||||
|
# git_icon="${separator}#(${script_path}/get_git_hosting.sh '#{pane_current_path}') "
|
||||||
|
# git_status="#[fg=#555555]#(gitmux -cfg ${gitmux_path} '#{pane_current_path}')#[fg=#000000]"
|
||||||
|
date_time="%l:%M%p"
|
||||||
|
status_color="fg=#000000, bg=default"
|
||||||
|
window_status_format=' #[fg=#555555]#W#[fg=#000000]'
|
||||||
|
window_status_current_format=' #[fg=#047857] #[fg=#000000]#[bold]#W#[nobold]'
|
||||||
|
|
||||||
|
# Function to get the number of panes when zoomed
|
||||||
|
pane_count="#(tmux list-panes -t '#{session_name}:#{window_index}' | wc -l | tr -d ' ')"
|
||||||
|
|
||||||
|
# Function to indicate if the current window is zoomed
|
||||||
|
zoomed_flag="#(if [ #{window_zoomed_flag} -eq 1 ]; then echo ' '; else echo ' '; fi)"
|
||||||
|
|
||||||
|
set -g status-style "${status_color}"
|
||||||
|
set -g status-justify right
|
||||||
|
set -g status-left-length 300
|
||||||
|
set -g window-status-format "${window_status_format}"
|
||||||
|
set -g window-status-current-format "${window_status_current_format}"
|
||||||
|
set -g status-left "${tmux_logo}${session}${separator}${directory}${separator}"
|
||||||
|
set -g status-right "${separator}${zoomed_flag}${pane_count} "
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Speed up Vim escape key
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Speed up the escape key delay in Vim to prevent Tmux and Neovim from
|
||||||
|
# feeling sluggish or as if the terminal froze for a second.
|
||||||
|
#
|
||||||
|
|
||||||
|
set -sg escape-time 10
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Navigate Tmux Sessions
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Use ctrl+option up/down to switch to next or previous session
|
||||||
|
#
|
||||||
|
|
||||||
|
bind -n C-M-j switch-client -p
|
||||||
|
bind -n C-M-k switch-client -n
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Navigate Tmux Windows
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Use ctrl+option left/right to switch to next or previous window
|
||||||
|
# Use ctrl+option n/p to swap current window with next or previous window
|
||||||
|
#
|
||||||
|
|
||||||
|
bind -n C-M-l next-window
|
||||||
|
bind -n C-M-h previous-window
|
||||||
|
|
||||||
|
bind -n C-M-p run-shell 'tmux swap-window -t -1 && tmux select-window -t :-'
|
||||||
|
bind -n C-M-n run-shell 'tmux swap-window -t +1 && tmux select-window -t :+'
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Navigate Tmux Panes and Neovim Buffers
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Use ctrl hjkl to navigate through both Tmux Panes and Neovim/Vim/HX Buffers.
|
||||||
|
#
|
||||||
|
|
||||||
|
is_program="ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?(hx|vifm|g?(view|n?vim?x?)(diff)?)$'"
|
||||||
|
|
||||||
|
bind -n 'C-h' if-shell "$is_program" 'send-keys C-h' { if -F '#{pane_at_left}' '' 'select-pane -L' }
|
||||||
|
bind -n 'C-j' if-shell "$is_program" 'send-keys C-j' { if -F '#{pane_at_bottom}' '' 'select-pane -D' }
|
||||||
|
bind -n 'C-k' if-shell "$is_program" 'send-keys C-k' { if -F '#{pane_at_top}' '' 'select-pane -U' }
|
||||||
|
bind -n 'C-l' if-shell "$is_program" 'send-keys C-l' { if -F '#{pane_at_right}' '' 'select-pane -R' }
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Reload Configuration
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Use <prefix>u to reload the config.
|
||||||
|
#
|
||||||
|
|
||||||
|
bind u source-file ~/.config/tmux/tmux.conf \; display "Reloading..."
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
# Plugins
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Use <prefix>U to update the plugins.
|
||||||
|
# set -g @plugin 'tmux-plugins/tpm'
|
||||||
|
# add plugins here
|
||||||
|
# run '~/.tmux/plugins/tpm/tpm'
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
71
dot_config/vim/dot_vimrc
Normal file
71
dot_config/vim/dot_vimrc
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
" Minimal .vimrc for production servers
|
||||||
|
|
||||||
|
" Basic settings
|
||||||
|
set nocompatible " Use Vim defaults
|
||||||
|
syntax on " Enable syntax highlighting
|
||||||
|
set background=light " Use light background
|
||||||
|
|
||||||
|
" Disable all fancy colors, keep it simple
|
||||||
|
highlight clear
|
||||||
|
|
||||||
|
" Basic black and white scheme with minimal highlighting
|
||||||
|
highlight Normal cterm=NONE ctermfg=black ctermbg=NONE
|
||||||
|
highlight Comment cterm=NONE ctermfg=darkgray ctermbg=NONE
|
||||||
|
highlight Constant cterm=NONE ctermfg=darkblue ctermbg=NONE
|
||||||
|
highlight Special cterm=NONE ctermfg=darkblue ctermbg=NONE
|
||||||
|
highlight Identifier cterm=NONE ctermfg=black ctermbg=NONE
|
||||||
|
highlight Statement cterm=bold ctermfg=black ctermbg=NONE
|
||||||
|
highlight PreProc cterm=NONE ctermfg=darkblue ctermbg=NONE
|
||||||
|
highlight Type cterm=bold ctermfg=black ctermbg=NONE
|
||||||
|
highlight Underlined cterm=underline ctermfg=black ctermbg=NONE
|
||||||
|
highlight Todo cterm=bold ctermfg=black ctermbg=yellow
|
||||||
|
highlight Error cterm=bold ctermfg=white ctermbg=red
|
||||||
|
highlight Search cterm=NONE ctermfg=black ctermbg=yellow
|
||||||
|
|
||||||
|
" UI elements
|
||||||
|
highlight LineNr cterm=NONE ctermfg=darkgray ctermbg=NONE
|
||||||
|
highlight StatusLine cterm=bold ctermfg=white ctermbg=darkgray
|
||||||
|
highlight StatusLineNC cterm=NONE ctermfg=black ctermbg=lightgray
|
||||||
|
highlight VertSplit cterm=NONE ctermfg=darkgray ctermbg=NONE
|
||||||
|
highlight Visual cterm=NONE ctermfg=black ctermbg=lightgray
|
||||||
|
|
||||||
|
" Practical settings for server work
|
||||||
|
set number " Show line numbers
|
||||||
|
set ruler " Show cursor position
|
||||||
|
set laststatus=2 " Always show status line
|
||||||
|
set showcmd " Show partial commands
|
||||||
|
set showmatch " Show matching brackets
|
||||||
|
set incsearch " Incremental search
|
||||||
|
set hlsearch " Highlight search results
|
||||||
|
set ignorecase " Case-insensitive search
|
||||||
|
set smartcase " Unless search contains uppercase
|
||||||
|
set autoindent " Auto-indent new lines
|
||||||
|
set smartindent " Smart auto-indenting
|
||||||
|
set tabstop=4 " Tab width is 4 spaces
|
||||||
|
set shiftwidth=4 " Indent also with 4 spaces
|
||||||
|
set expandtab " Expand tabs to spaces
|
||||||
|
set nowrap " Don't wrap lines
|
||||||
|
set backspace=indent,eol,start " Backspace through everything
|
||||||
|
set wildmenu " Command-line completion
|
||||||
|
set wildmode=list:longest " Complete until longest common string
|
||||||
|
set history=50 " Keep 50 lines of command history
|
||||||
|
set viminfo='20,\"50 " Remember 50 lines of registers
|
||||||
|
set nobackup " No backup files
|
||||||
|
set noswapfile " No swap files
|
||||||
|
|
||||||
|
" Highlight trailing whitespace
|
||||||
|
highlight ExtraWhitespace ctermbg=red
|
||||||
|
match ExtraWhitespace /\s\+$/
|
||||||
|
|
||||||
|
" Indicate insert/normal mode in the status line
|
||||||
|
set showmode
|
||||||
|
|
||||||
|
" For production servers - highlight the hostname in red if it contains 'live'
|
||||||
|
let hostname = substitute(system('hostname'), '\n', '', '')
|
||||||
|
if hostname =~ 'live'
|
||||||
|
highlight User1 cterm=bold ctermfg=white ctermbg=red
|
||||||
|
set statusline=%1*[PRODUCTION]%*\ %f\ %h%w%m%r\ %=%(%l,%c%V\ %=\ %P%)
|
||||||
|
else
|
||||||
|
set statusline=%f\ %h%w%m%r\ %=%(%l,%c%V\ %=\ %P%)
|
||||||
|
endif
|
||||||
|
|
||||||
71
dot_config/wezterm/wezterm.lua
Normal file
71
dot_config/wezterm/wezterm.lua
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
-- Pull in the wezterm API
|
||||||
|
local wezterm = require 'wezterm'
|
||||||
|
|
||||||
|
-- This will hold the configuration.
|
||||||
|
local config = wezterm.config_builder()
|
||||||
|
|
||||||
|
-- This is where you actually apply your config choices
|
||||||
|
config.enable_tab_bar = false
|
||||||
|
config.animation_fps = 10
|
||||||
|
|
||||||
|
-- Window
|
||||||
|
config.initial_cols = 274
|
||||||
|
config.initial_rows = 52
|
||||||
|
config.window_decorations = "RESIZE"
|
||||||
|
|
||||||
|
-- Typography
|
||||||
|
config.font = wezterm.font({
|
||||||
|
family = 'SF Mono',
|
||||||
|
weight = 'Regular'
|
||||||
|
})
|
||||||
|
config.line_height = 1.2
|
||||||
|
config.font_size = 14
|
||||||
|
config.cell_width = 1
|
||||||
|
|
||||||
|
-- Cursor
|
||||||
|
config.cursor_thickness = 2
|
||||||
|
config.cursor_blink_rate = 600
|
||||||
|
config.cursor_blink_ease_in = 'Constant'
|
||||||
|
config.cursor_blink_ease_out = 'Constant'
|
||||||
|
config.bold_brightens_ansi_colors = false
|
||||||
|
|
||||||
|
config.colors = {
|
||||||
|
foreground = '#1A1C22',
|
||||||
|
background = '#FAF9F5',
|
||||||
|
cursor_bg = '#3B82F6',
|
||||||
|
cursor_fg = '#F7F6F3',
|
||||||
|
ansi = {
|
||||||
|
'#1A1C22',
|
||||||
|
'#C63533',
|
||||||
|
'#3F7A59',
|
||||||
|
'#D4680F',
|
||||||
|
'#2D739F',
|
||||||
|
'#B9437F',
|
||||||
|
'#3599A2',
|
||||||
|
'#BDBFC4',
|
||||||
|
},
|
||||||
|
brights = {
|
||||||
|
'#3E4149',
|
||||||
|
'#E07270',
|
||||||
|
'#62BF8B',
|
||||||
|
'#DC9154',
|
||||||
|
'#61A5D0',
|
||||||
|
'#DC83B0',
|
||||||
|
'#6DBAC1',
|
||||||
|
'#DCDDE1',
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
-- START: Add Shift+Enter key binding here
|
||||||
|
config.keys = config.keys or {} -- Ensure the keys table exists if not already defined
|
||||||
|
|
||||||
|
table.insert(config.keys, {
|
||||||
|
key = 'Enter', -- The key pressed
|
||||||
|
mods = 'SHIFT', -- The modifier key (Shift)
|
||||||
|
action = wezterm.action.SendString('\u{1b}[25~') -- Send the escape sequence for F15
|
||||||
|
-- '\u{1b}' is ESC. '[25~' is a common sequence for F15.
|
||||||
|
})
|
||||||
|
-- END: Shift+Enter key binding
|
||||||
|
|
||||||
|
-- and finally, return the configuration to wezterm
|
||||||
|
return config
|
||||||
18
run_once_before_configure-hammerspoon.sh
Normal file
18
run_once_before_configure-hammerspoon.sh
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "Configuring Hammerspoon to use ~/.config/hammerspoon..."
|
||||||
|
|
||||||
|
if ! command -v hammerspoon &> /dev/null; then
|
||||||
|
echo "Warning: Hammerspoon not found. Setting preference anyway for when it's installed."
|
||||||
|
fi
|
||||||
|
|
||||||
|
defaults write org.hammerspoon.Hammerspoon MJConfigFile "~/.config/hammerspoon/init.lua"
|
||||||
|
|
||||||
|
if defaults read org.hammerspoon.Hammerspoon MJConfigFile &> /dev/null; then
|
||||||
|
echo "✅ Hammerspoon configured to use ~/.config/hammerspoon/init.lua"
|
||||||
|
else
|
||||||
|
echo "❌ Failed to set Hammerspoon config path"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user