feat: add Nerd Font installation, Yazi file manager, and themed Yazi config
- Install JetBrainsMono Nerd Font for icons across all TUI tools - Add Yazi as terminal file manager with themed config per colorscheme - Add write_yazi_config() to all 5 theme files - Theme switcher (archduino-theme) now also updates Yazi - Add 'y' alias for yazi in shell config - Update step numbering (9 -> 11 steps) and README
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
# Step 7: Arduino CLI + board cores
|
||||
|
||||
step "7/9 — Installing Arduino CLI + board cores"
|
||||
step "9/11 — Installing Arduino CLI + board cores"
|
||||
|
||||
if $IS_ARCH; then
|
||||
$PKG_INSTALL arduino-cli
|
||||
|
||||
@@ -13,7 +13,7 @@ NC='\033[0m'
|
||||
VERBOSE=true
|
||||
LOG_FILE="/tmp/archduino-install.log"
|
||||
CURRENT_STEP=0
|
||||
TOTAL_STEPS=10
|
||||
TOTAL_STEPS=12
|
||||
|
||||
info() { echo -e "${GREEN}[✓]${NC} $1"; }
|
||||
warn() { echo -e "${YELLOW}[!]${NC} $1"; }
|
||||
@@ -39,7 +39,7 @@ draw_progress() {
|
||||
}
|
||||
|
||||
begin_quiet_mode() {
|
||||
$IS_WSL && TOTAL_STEPS=11
|
||||
$IS_WSL && TOTAL_STEPS=13
|
||||
: >"$LOG_FILE"
|
||||
|
||||
# Save real terminal to fd 3/4, redirect everything else to log
|
||||
|
||||
25
lib/fonts.sh
Normal file
25
lib/fonts.sh
Normal file
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
# Step 2: Nerd Font installation
|
||||
|
||||
step "2/11 — Installing Nerd Font"
|
||||
|
||||
FONT_DIR="$HOME/.local/share/fonts/NerdFonts"
|
||||
FONT_NAME="JetBrainsMono"
|
||||
|
||||
if fc-list 2>/dev/null | grep -qi "JetBrainsMono Nerd"; then
|
||||
info "JetBrainsMono Nerd Font already installed"
|
||||
else
|
||||
mkdir -p "$FONT_DIR"
|
||||
curl -ksSLo /tmp/JetBrainsMono.tar.xz \
|
||||
"https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.tar.xz"
|
||||
tar xf /tmp/JetBrainsMono.tar.xz -C "$FONT_DIR"
|
||||
rm -f /tmp/JetBrainsMono.tar.xz
|
||||
fc-cache -f 2>/dev/null || true
|
||||
info "JetBrainsMono Nerd Font installed to $FONT_DIR"
|
||||
fi
|
||||
|
||||
if $IS_WSL; then
|
||||
warn "WSL detected: You must also install a Nerd Font on the Windows side."
|
||||
warn "Download from: https://www.nerdfonts.com/font-downloads"
|
||||
warn "Then set 'JetBrainsMono Nerd Font' in your terminal settings (Windows Terminal, etc.)."
|
||||
fi
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
# Step 8: Git + Lazygit
|
||||
|
||||
step "8/9 — Setting up Git + Lazygit"
|
||||
step "10/11 — Setting up Git + Lazygit"
|
||||
|
||||
if $IS_ARCH; then
|
||||
$PKG_INSTALL lazygit
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
# Steps 5+6: Neovim + NvChad
|
||||
|
||||
step "5/9 — Installing Neovim (latest)"
|
||||
step "6/11 — Installing Neovim (latest)"
|
||||
|
||||
NVIM_NEEDED=true
|
||||
if command -v nvim &>/dev/null; then
|
||||
@@ -21,7 +21,7 @@ if $NVIM_NEEDED; then
|
||||
info "Neovim installed: $(nvim --version | head -1)"
|
||||
fi
|
||||
|
||||
step "6/9 — Setting up NvChad"
|
||||
step "7/11 — Setting up NvChad"
|
||||
|
||||
NVIM_CFG="$HOME/.config/nvim"
|
||||
NVCHAD_FRESH=false
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
# Step 1: Base packages
|
||||
|
||||
step "1/9 — Installing base packages"
|
||||
step "1/11 — Installing base packages"
|
||||
|
||||
if $IS_ARCH; then
|
||||
sudo pacman -Syu --noconfirm
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
# Step 9: Project scaffolding tool + templates
|
||||
|
||||
step "9/9 — Creating project scaffolding tool"
|
||||
step "11/11 — Creating project scaffolding tool"
|
||||
|
||||
mkdir -p ~/.local/bin ~/.config/archduino/templates
|
||||
|
||||
@@ -215,6 +215,11 @@ info "Zellij updated"
|
||||
write_lazygit_config ~/.config/lazygit/config.yml
|
||||
info "Lazygit updated"
|
||||
|
||||
# Yazi
|
||||
mkdir -p ~/.config/yazi
|
||||
write_yazi_config ~/.config/yazi/theme.toml
|
||||
info "Yazi updated"
|
||||
|
||||
# NvChad
|
||||
NVIM_CFG="$HOME/.config/nvim"
|
||||
if [[ -f "$NVIM_CFG/lua/chadrc.lua" ]]; then
|
||||
|
||||
@@ -26,6 +26,7 @@ alias acm="arduino-cli monitor"
|
||||
alias acb="arduino-cli board list"
|
||||
alias lg="lazygit"
|
||||
alias v="nvim"
|
||||
alias y="yazi"
|
||||
alias theme="archduino-theme"
|
||||
# ── END ARCHDUINO ───────────────────────────────────────────────'
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
# Step 3: Starship prompt
|
||||
|
||||
step "3/9 — Installing Starship"
|
||||
step "4/11 — Installing Starship"
|
||||
|
||||
if $IS_ARCH; then
|
||||
$PKG_INSTALL starship
|
||||
|
||||
@@ -90,3 +90,38 @@ gui:
|
||||
- "#cdd6f4"
|
||||
YAML
|
||||
}
|
||||
|
||||
write_yazi_config() {
|
||||
cat >"$1" <<'TOML'
|
||||
[manager]
|
||||
cwd = { fg = "#f9e2af" }
|
||||
tab_active = { fg = "#1e1e2e", bg = "#f9e2af" }
|
||||
tab_inactive = { fg = "#bac2de", bg = "#313244" }
|
||||
border_symbol = "│"
|
||||
border_style = { fg = "#585b70" }
|
||||
count_copied = { fg = "#1e1e2e", bg = "#a6e3a1" }
|
||||
count_cut = { fg = "#1e1e2e", bg = "#f38ba8" }
|
||||
count_selected = { fg = "#1e1e2e", bg = "#f9e2af" }
|
||||
|
||||
[status]
|
||||
separator_open = ""
|
||||
separator_close = ""
|
||||
mode_normal = { fg = "#1e1e2e", bg = "#a6e3a1", bold = true }
|
||||
mode_select = { fg = "#1e1e2e", bg = "#f9e2af", bold = true }
|
||||
mode_unset = { fg = "#1e1e2e", bg = "#f38ba8", bold = true }
|
||||
progress_label = { fg = "#cdd6f4", bold = true }
|
||||
progress_normal = { fg = "#89b4fa", bg = "#313244" }
|
||||
progress_error = { fg = "#f38ba8", bg = "#313244" }
|
||||
|
||||
[input]
|
||||
border = { fg = "#f9e2af" }
|
||||
title = {}
|
||||
value = {}
|
||||
selected = { reversed = true }
|
||||
|
||||
[select]
|
||||
border = { fg = "#f9e2af" }
|
||||
active = { fg = "#a6e3a1", bold = true }
|
||||
inactive = {}
|
||||
TOML
|
||||
}
|
||||
|
||||
@@ -90,3 +90,38 @@ gui:
|
||||
- "#f8f8f2"
|
||||
YAML
|
||||
}
|
||||
|
||||
write_yazi_config() {
|
||||
cat >"$1" <<'TOML'
|
||||
[manager]
|
||||
cwd = { fg = "#f1fa8c" }
|
||||
tab_active = { fg = "#282a36", bg = "#f1fa8c" }
|
||||
tab_inactive = { fg = "#bfbfbf", bg = "#44475a" }
|
||||
border_symbol = "│"
|
||||
border_style = { fg = "#6272a4" }
|
||||
count_copied = { fg = "#282a36", bg = "#50fa7b" }
|
||||
count_cut = { fg = "#282a36", bg = "#ff5555" }
|
||||
count_selected = { fg = "#282a36", bg = "#f1fa8c" }
|
||||
|
||||
[status]
|
||||
separator_open = ""
|
||||
separator_close = ""
|
||||
mode_normal = { fg = "#282a36", bg = "#50fa7b", bold = true }
|
||||
mode_select = { fg = "#282a36", bg = "#f1fa8c", bold = true }
|
||||
mode_unset = { fg = "#282a36", bg = "#ff5555", bold = true }
|
||||
progress_label = { fg = "#f8f8f2", bold = true }
|
||||
progress_normal = { fg = "#bd93f9", bg = "#44475a" }
|
||||
progress_error = { fg = "#ff5555", bg = "#44475a" }
|
||||
|
||||
[input]
|
||||
border = { fg = "#f1fa8c" }
|
||||
title = {}
|
||||
value = {}
|
||||
selected = { reversed = true }
|
||||
|
||||
[select]
|
||||
border = { fg = "#f1fa8c" }
|
||||
active = { fg = "#50fa7b", bold = true }
|
||||
inactive = {}
|
||||
TOML
|
||||
}
|
||||
|
||||
@@ -90,3 +90,38 @@ gui:
|
||||
- "#ebdbb2"
|
||||
YAML
|
||||
}
|
||||
|
||||
write_yazi_config() {
|
||||
cat >"$1" <<'TOML'
|
||||
[manager]
|
||||
cwd = { fg = "#fabd2f" }
|
||||
tab_active = { fg = "#282828", bg = "#fabd2f" }
|
||||
tab_inactive = { fg = "#a89984", bg = "#3c3836" }
|
||||
border_symbol = "│"
|
||||
border_style = { fg = "#665c54" }
|
||||
count_copied = { fg = "#282828", bg = "#b8bb26" }
|
||||
count_cut = { fg = "#282828", bg = "#fb4934" }
|
||||
count_selected = { fg = "#282828", bg = "#fabd2f" }
|
||||
|
||||
[status]
|
||||
separator_open = ""
|
||||
separator_close = ""
|
||||
mode_normal = { fg = "#282828", bg = "#b8bb26", bold = true }
|
||||
mode_select = { fg = "#282828", bg = "#fabd2f", bold = true }
|
||||
mode_unset = { fg = "#282828", bg = "#fb4934", bold = true }
|
||||
progress_label = { fg = "#ebdbb2", bold = true }
|
||||
progress_normal = { fg = "#458588", bg = "#3c3836" }
|
||||
progress_error = { fg = "#fb4934", bg = "#3c3836" }
|
||||
|
||||
[input]
|
||||
border = { fg = "#fabd2f" }
|
||||
title = {}
|
||||
value = {}
|
||||
selected = { reversed = true }
|
||||
|
||||
[select]
|
||||
border = { fg = "#fabd2f" }
|
||||
active = { fg = "#b8bb26", bold = true }
|
||||
inactive = {}
|
||||
TOML
|
||||
}
|
||||
|
||||
@@ -90,3 +90,38 @@ gui:
|
||||
- "#d8dee9"
|
||||
YAML
|
||||
}
|
||||
|
||||
write_yazi_config() {
|
||||
cat >"$1" <<'TOML'
|
||||
[manager]
|
||||
cwd = { fg = "#ebcb8b" }
|
||||
tab_active = { fg = "#2e3440", bg = "#ebcb8b" }
|
||||
tab_inactive = { fg = "#e5e9f0", bg = "#3b4252" }
|
||||
border_symbol = "│"
|
||||
border_style = { fg = "#4c566a" }
|
||||
count_copied = { fg = "#2e3440", bg = "#a3be8c" }
|
||||
count_cut = { fg = "#2e3440", bg = "#bf616a" }
|
||||
count_selected = { fg = "#2e3440", bg = "#ebcb8b" }
|
||||
|
||||
[status]
|
||||
separator_open = ""
|
||||
separator_close = ""
|
||||
mode_normal = { fg = "#2e3440", bg = "#a3be8c", bold = true }
|
||||
mode_select = { fg = "#2e3440", bg = "#ebcb8b", bold = true }
|
||||
mode_unset = { fg = "#2e3440", bg = "#bf616a", bold = true }
|
||||
progress_label = { fg = "#d8dee9", bold = true }
|
||||
progress_normal = { fg = "#81a1c1", bg = "#3b4252" }
|
||||
progress_error = { fg = "#bf616a", bg = "#3b4252" }
|
||||
|
||||
[input]
|
||||
border = { fg = "#ebcb8b" }
|
||||
title = {}
|
||||
value = {}
|
||||
selected = { reversed = true }
|
||||
|
||||
[select]
|
||||
border = { fg = "#ebcb8b" }
|
||||
active = { fg = "#a3be8c", bold = true }
|
||||
inactive = {}
|
||||
TOML
|
||||
}
|
||||
|
||||
@@ -90,3 +90,38 @@ gui:
|
||||
- "#c0caf5"
|
||||
YAML
|
||||
}
|
||||
|
||||
write_yazi_config() {
|
||||
cat >"$1" <<'TOML'
|
||||
[manager]
|
||||
cwd = { fg = "#e0af68" }
|
||||
tab_active = { fg = "#1a1b26", bg = "#e0af68" }
|
||||
tab_inactive = { fg = "#a9b1d6", bg = "#283457" }
|
||||
border_symbol = "│"
|
||||
border_style = { fg = "#3b4261" }
|
||||
count_copied = { fg = "#1a1b26", bg = "#9ece6a" }
|
||||
count_cut = { fg = "#1a1b26", bg = "#f7768e" }
|
||||
count_selected = { fg = "#1a1b26", bg = "#e0af68" }
|
||||
|
||||
[status]
|
||||
separator_open = ""
|
||||
separator_close = ""
|
||||
mode_normal = { fg = "#1a1b26", bg = "#9ece6a", bold = true }
|
||||
mode_select = { fg = "#1a1b26", bg = "#e0af68", bold = true }
|
||||
mode_unset = { fg = "#1a1b26", bg = "#f7768e", bold = true }
|
||||
progress_label = { fg = "#c0caf5", bold = true }
|
||||
progress_normal = { fg = "#7aa2f7", bg = "#283457" }
|
||||
progress_error = { fg = "#f7768e", bg = "#283457" }
|
||||
|
||||
[input]
|
||||
border = { fg = "#e0af68" }
|
||||
title = {}
|
||||
value = {}
|
||||
selected = { reversed = true }
|
||||
|
||||
[select]
|
||||
border = { fg = "#e0af68" }
|
||||
active = { fg = "#9ece6a", bold = true }
|
||||
inactive = {}
|
||||
TOML
|
||||
}
|
||||
|
||||
22
lib/yazi.sh
Normal file
22
lib/yazi.sh
Normal file
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
# Step 8: Yazi file manager
|
||||
|
||||
step "8/11 — Installing Yazi"
|
||||
|
||||
if $IS_ARCH; then
|
||||
$PKG_INSTALL yazi ffmpegthumbnailer p7zip poppler
|
||||
else
|
||||
YAZI_VERSION=$(curl -ks "https://api.github.com/repos/sxyazi/yazi/releases/latest" | jq -r '.tag_name')
|
||||
curl -ksSLo /tmp/yazi.zip "https://github.com/sxyazi/yazi/releases/download/${YAZI_VERSION}/yazi-x86_64-unknown-linux-musl.zip"
|
||||
unzip -qo /tmp/yazi.zip -d /tmp/yazi-extract
|
||||
sudo install -m 755 /tmp/yazi-extract/yazi-x86_64-unknown-linux-musl/yazi /usr/local/bin/yazi
|
||||
rm -rf /tmp/yazi.zip /tmp/yazi-extract
|
||||
# Optional thumbnailer/preview deps
|
||||
sudo apt install -y ffmpegthumbnailer p7zip-full poppler-utils 2>/dev/null || true
|
||||
fi
|
||||
info "Yazi installed/updated"
|
||||
|
||||
mkdir -p ~/.config/yazi
|
||||
backup_config ~/.config/yazi/theme.toml
|
||||
write_yazi_config ~/.config/yazi/theme.toml
|
||||
info "Yazi configured with $THEME_DISPLAY_NAME"
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
# Step 4: Zellij terminal multiplexer
|
||||
|
||||
step "4/9 — Installing Zellij"
|
||||
step "5/11 — Installing Zellij"
|
||||
|
||||
if $IS_ARCH; then
|
||||
$PKG_INSTALL zellij
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
# Step 2: Zsh + Oh My Zsh + plugins
|
||||
|
||||
step "2/9 — Setting up Zsh"
|
||||
step "3/11 — Setting up Zsh"
|
||||
|
||||
if [[ ! -d "$HOME/.oh-my-zsh" ]]; then
|
||||
RUNZSH=no KEEP_ZSHRC=yes CHSH=no sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended ||
|
||||
|
||||
Reference in New Issue
Block a user