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:
11
README.md
11
README.md
@@ -33,12 +33,14 @@ The Idea was a Development Environment runnable by almost everything. No GUI nee
|
|||||||
| **Shell** | [Zsh](https://www.zsh.org) + [Oh My Zsh](https://ohmyz.sh) | Autosuggestions, syntax highlighting, smart completions |
|
| **Shell** | [Zsh](https://www.zsh.org) + [Oh My Zsh](https://ohmyz.sh) | Autosuggestions, syntax highlighting, smart completions |
|
||||||
| **Prompt** | [Starship](https://starship.rs) | Fast, minimal, git-aware prompt |
|
| **Prompt** | [Starship](https://starship.rs) | Fast, minimal, git-aware prompt |
|
||||||
| **Git** | [Lazygit](https://github.com/jesseduffield/lazygit) | Beautiful terminal UI for git |
|
| **Git** | [Lazygit](https://github.com/jesseduffield/lazygit) | Beautiful terminal UI for git |
|
||||||
|
| **File Manager** | [Yazi](https://yazi-rs.github.io) | Blazing fast terminal file manager with image preview |
|
||||||
| **Serial** | [tio](https://github.com/tio/tio) | Simple serial device I/O |
|
| **Serial** | [tio](https://github.com/tio/tio) | Simple serial device I/O |
|
||||||
|
| **Font** | [JetBrainsMono Nerd Font](https://www.nerdfonts.com) | Icons and ligatures for all TUI tools |
|
||||||
| **Theme** | 5 colorschemes | Consistent look across every tool (see below) |
|
| **Theme** | 5 colorschemes | Consistent look across every tool (see below) |
|
||||||
|
|
||||||
### Colorschemes
|
### Colorschemes
|
||||||
|
|
||||||
The installer lets you pick a theme that is applied **consistently** across Neovim, Starship, Zellij, and Lazygit:
|
The installer lets you pick a theme that is applied **consistently** across Neovim, Starship, Zellij, Lazygit, and Yazi:
|
||||||
|
|
||||||
| # | Theme | Style |
|
| # | Theme | Style |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
@@ -54,7 +56,7 @@ You can **switch themes at any time** after installation:
|
|||||||
archduino-theme # or just: theme
|
archduino-theme # or just: theme
|
||||||
```
|
```
|
||||||
|
|
||||||
This updates Starship, Zellij, Lazygit, and NvChad in one step.
|
This updates Starship, Zellij, Lazygit, Yazi, and NvChad in one step.
|
||||||
|
|
||||||
### Supported Boards (out of the box)
|
### Supported Boards (out of the box)
|
||||||
|
|
||||||
@@ -84,7 +86,7 @@ The installer will:
|
|||||||
2. Let you pick your **colorscheme** (applied to all tools)
|
2. Let you pick your **colorscheme** (applied to all tools)
|
||||||
3. Let you choose between **progress bar** or **verbose** output
|
3. Let you choose between **progress bar** or **verbose** output
|
||||||
4. Ask for your sudo password **once** (cached for the entire install)
|
4. Ask for your sudo password **once** (cached for the entire install)
|
||||||
5. Run through all 9 setup steps automatically
|
5. Run through all 11 setup steps automatically
|
||||||
|
|
||||||
After it finishes, start a new shell or run `source ~/.zshrc`.
|
After it finishes, start a new shell or run `source ~/.zshrc`.
|
||||||
|
|
||||||
@@ -105,10 +107,12 @@ ArduinoArch/
|
|||||||
│ ├── nord.sh # Nord configs
|
│ ├── nord.sh # Nord configs
|
||||||
│ └── dracula.sh # Dracula configs
|
│ └── dracula.sh # Dracula configs
|
||||||
├── packages.sh # Base packages (build tools, ripgrep, fd, bat, etc.)
|
├── packages.sh # Base packages (build tools, ripgrep, fd, bat, etc.)
|
||||||
|
├── fonts.sh # JetBrainsMono Nerd Font installation
|
||||||
├── zsh.sh # Oh My Zsh + plugins
|
├── zsh.sh # Oh My Zsh + plugins
|
||||||
├── starship.sh # Starship prompt config
|
├── starship.sh # Starship prompt config
|
||||||
├── zellij.sh # Zellij + config + Arduino workspace layout
|
├── zellij.sh # Zellij + config + Arduino workspace layout
|
||||||
├── neovim.sh # Neovim + NvChad + plugin configs (Arduino, LSP)
|
├── neovim.sh # Neovim + NvChad + plugin configs (Arduino, LSP)
|
||||||
|
├── yazi.sh # Yazi file manager + themed config
|
||||||
├── arduino.sh # Arduino CLI + AVR/ESP32/ESP8266 cores + common libraries
|
├── arduino.sh # Arduino CLI + AVR/ESP32/ESP8266 cores + common libraries
|
||||||
├── git.sh # Lazygit config
|
├── git.sh # Lazygit config
|
||||||
├── scaffold.sh # `arduino-new` scaffolding tool + board templates
|
├── scaffold.sh # `arduino-new` scaffolding tool + board templates
|
||||||
@@ -191,6 +195,7 @@ All keybindings are under `<leader>a`:
|
|||||||
| `acb` | `arduino-cli board list` |
|
| `acb` | `arduino-cli board list` |
|
||||||
| `lg` | `lazygit` |
|
| `lg` | `lazygit` |
|
||||||
| `v` | `nvim` |
|
| `v` | `nvim` |
|
||||||
|
| `y` | `yazi` (file manager) |
|
||||||
| `theme` | `archduino-theme` (switch colorscheme) |
|
| `theme` | `archduino-theme` (switch colorscheme) |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -75,10 +75,12 @@ fi
|
|||||||
|
|
||||||
# ── Run install steps ───────────────────────────────────────────
|
# ── Run install steps ───────────────────────────────────────────
|
||||||
source "$SCRIPT_DIR/lib/packages.sh"
|
source "$SCRIPT_DIR/lib/packages.sh"
|
||||||
|
source "$SCRIPT_DIR/lib/fonts.sh"
|
||||||
source "$SCRIPT_DIR/lib/zsh.sh"
|
source "$SCRIPT_DIR/lib/zsh.sh"
|
||||||
source "$SCRIPT_DIR/lib/starship.sh"
|
source "$SCRIPT_DIR/lib/starship.sh"
|
||||||
source "$SCRIPT_DIR/lib/zellij.sh"
|
source "$SCRIPT_DIR/lib/zellij.sh"
|
||||||
source "$SCRIPT_DIR/lib/neovim.sh"
|
source "$SCRIPT_DIR/lib/neovim.sh"
|
||||||
|
source "$SCRIPT_DIR/lib/yazi.sh"
|
||||||
source "$SCRIPT_DIR/lib/arduino.sh"
|
source "$SCRIPT_DIR/lib/arduino.sh"
|
||||||
source "$SCRIPT_DIR/lib/git.sh"
|
source "$SCRIPT_DIR/lib/git.sh"
|
||||||
source "$SCRIPT_DIR/lib/scaffold.sh"
|
source "$SCRIPT_DIR/lib/scaffold.sh"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Step 7: Arduino CLI + board cores
|
# 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
|
if $IS_ARCH; then
|
||||||
$PKG_INSTALL arduino-cli
|
$PKG_INSTALL arduino-cli
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ NC='\033[0m'
|
|||||||
VERBOSE=true
|
VERBOSE=true
|
||||||
LOG_FILE="/tmp/archduino-install.log"
|
LOG_FILE="/tmp/archduino-install.log"
|
||||||
CURRENT_STEP=0
|
CURRENT_STEP=0
|
||||||
TOTAL_STEPS=10
|
TOTAL_STEPS=12
|
||||||
|
|
||||||
info() { echo -e "${GREEN}[✓]${NC} $1"; }
|
info() { echo -e "${GREEN}[✓]${NC} $1"; }
|
||||||
warn() { echo -e "${YELLOW}[!]${NC} $1"; }
|
warn() { echo -e "${YELLOW}[!]${NC} $1"; }
|
||||||
@@ -39,7 +39,7 @@ draw_progress() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
begin_quiet_mode() {
|
begin_quiet_mode() {
|
||||||
$IS_WSL && TOTAL_STEPS=11
|
$IS_WSL && TOTAL_STEPS=13
|
||||||
: >"$LOG_FILE"
|
: >"$LOG_FILE"
|
||||||
|
|
||||||
# Save real terminal to fd 3/4, redirect everything else to log
|
# 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
|
#!/bin/bash
|
||||||
# Step 8: Git + Lazygit
|
# Step 8: Git + Lazygit
|
||||||
|
|
||||||
step "8/9 — Setting up Git + Lazygit"
|
step "10/11 — Setting up Git + Lazygit"
|
||||||
|
|
||||||
if $IS_ARCH; then
|
if $IS_ARCH; then
|
||||||
$PKG_INSTALL lazygit
|
$PKG_INSTALL lazygit
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Steps 5+6: Neovim + NvChad
|
# Steps 5+6: Neovim + NvChad
|
||||||
|
|
||||||
step "5/9 — Installing Neovim (latest)"
|
step "6/11 — Installing Neovim (latest)"
|
||||||
|
|
||||||
NVIM_NEEDED=true
|
NVIM_NEEDED=true
|
||||||
if command -v nvim &>/dev/null; then
|
if command -v nvim &>/dev/null; then
|
||||||
@@ -21,7 +21,7 @@ if $NVIM_NEEDED; then
|
|||||||
info "Neovim installed: $(nvim --version | head -1)"
|
info "Neovim installed: $(nvim --version | head -1)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
step "6/9 — Setting up NvChad"
|
step "7/11 — Setting up NvChad"
|
||||||
|
|
||||||
NVIM_CFG="$HOME/.config/nvim"
|
NVIM_CFG="$HOME/.config/nvim"
|
||||||
NVCHAD_FRESH=false
|
NVCHAD_FRESH=false
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Step 1: Base packages
|
# Step 1: Base packages
|
||||||
|
|
||||||
step "1/9 — Installing base packages"
|
step "1/11 — Installing base packages"
|
||||||
|
|
||||||
if $IS_ARCH; then
|
if $IS_ARCH; then
|
||||||
sudo pacman -Syu --noconfirm
|
sudo pacman -Syu --noconfirm
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Step 9: Project scaffolding tool + templates
|
# 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
|
mkdir -p ~/.local/bin ~/.config/archduino/templates
|
||||||
|
|
||||||
@@ -215,6 +215,11 @@ info "Zellij updated"
|
|||||||
write_lazygit_config ~/.config/lazygit/config.yml
|
write_lazygit_config ~/.config/lazygit/config.yml
|
||||||
info "Lazygit updated"
|
info "Lazygit updated"
|
||||||
|
|
||||||
|
# Yazi
|
||||||
|
mkdir -p ~/.config/yazi
|
||||||
|
write_yazi_config ~/.config/yazi/theme.toml
|
||||||
|
info "Yazi updated"
|
||||||
|
|
||||||
# NvChad
|
# NvChad
|
||||||
NVIM_CFG="$HOME/.config/nvim"
|
NVIM_CFG="$HOME/.config/nvim"
|
||||||
if [[ -f "$NVIM_CFG/lua/chadrc.lua" ]]; then
|
if [[ -f "$NVIM_CFG/lua/chadrc.lua" ]]; then
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ alias acm="arduino-cli monitor"
|
|||||||
alias acb="arduino-cli board list"
|
alias acb="arduino-cli board list"
|
||||||
alias lg="lazygit"
|
alias lg="lazygit"
|
||||||
alias v="nvim"
|
alias v="nvim"
|
||||||
|
alias y="yazi"
|
||||||
alias theme="archduino-theme"
|
alias theme="archduino-theme"
|
||||||
# ── END ARCHDUINO ───────────────────────────────────────────────'
|
# ── END ARCHDUINO ───────────────────────────────────────────────'
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Step 3: Starship prompt
|
# Step 3: Starship prompt
|
||||||
|
|
||||||
step "3/9 — Installing Starship"
|
step "4/11 — Installing Starship"
|
||||||
|
|
||||||
if $IS_ARCH; then
|
if $IS_ARCH; then
|
||||||
$PKG_INSTALL starship
|
$PKG_INSTALL starship
|
||||||
|
|||||||
@@ -90,3 +90,38 @@ gui:
|
|||||||
- "#cdd6f4"
|
- "#cdd6f4"
|
||||||
YAML
|
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"
|
- "#f8f8f2"
|
||||||
YAML
|
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"
|
- "#ebdbb2"
|
||||||
YAML
|
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"
|
- "#d8dee9"
|
||||||
YAML
|
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"
|
- "#c0caf5"
|
||||||
YAML
|
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
|
#!/bin/bash
|
||||||
# Step 4: Zellij terminal multiplexer
|
# Step 4: Zellij terminal multiplexer
|
||||||
|
|
||||||
step "4/9 — Installing Zellij"
|
step "5/11 — Installing Zellij"
|
||||||
|
|
||||||
if $IS_ARCH; then
|
if $IS_ARCH; then
|
||||||
$PKG_INSTALL zellij
|
$PKG_INSTALL zellij
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Step 2: Zsh + Oh My Zsh + plugins
|
# 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
|
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 ||
|
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