Ege Bostancı

Fish'ten Zsh'e Geçiş ve Catppuccin Macchiato Setup'ı

8 Nisan 2026 4 dk okuma

Fish’ten zsh’e geçiş, tüm terminal araçlarını Catppuccin Macchiato (Blue accent) temasına uyumlama ve iki yardımcı shell scriptinin kurulumu.

Shell Geçişi: Fish → Zsh

Neden: Fish POSIX uyumlu değil, çok satırlı komut yapıştırmaları (örn. for ... end blokları, uzun find -exec zincirleri) sürekli parse hatası veriyordu. İnternetten kopyalanan her bash komutu için “tek satıra sıkıştır” dansı yapmak gerekiyordu.

sudo pacman -S zsh zsh-completions zsh-syntax-highlighting zsh-autosuggestions
chsh -s /usr/bin/zsh

Konsole profili fish’e sabitlenmişti, onu da düzelttik:

CachyOS zsh ile Powerlevel10k gelir. Starship kullandığımız için wizard’ı atladık:

~/.zshrc

# Powerlevel10k sihirbazını devre dışı bırak
POWERLEVEL9K_DISABLE_CONFIGURATION_WIZARD=true

# CachyOS zsh config (oh-my-zsh + aliases)
source /usr/share/cachyos-zsh-config/cachyos-config.zsh

# Starship prompt
eval "$(starship init zsh)"

# Fish tarzı otomatik öneriler
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh 2>/dev/null

# Syntax highlighting (en sonda olmalı)
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 2>/dev/null
source ~/.config/zsh/themes/catppuccin_macchiato-zsh-syntax-highlighting.zsh 2>/dev/null

# fzf Catppuccin Macchiato
export FZF_DEFAULT_OPTS=" \
--color=bg+:#363a4f,bg:#24273a,spinner:#f4dbd6,hl:#ed8796 \
--color=fg:#cad3f5,header:#ed8796,info:#c6a0f6,pointer:#f4dbd6 \
--color=marker:#b7bdf8,fg+:#cad3f5,prompt:#c6a0f6,hl+:#ed8796 \
--color=selected-bg:#494d64 \
--color=border:#8aadf4,label:#cad3f5"

export EZA_CONFIG_DIR=~/.config/eza

# Aliaslar
alias ll='eza -lah --icons --group-directories-first'
alias la='eza -a --icons'
alias ls='eza --icons --group-directories-first'
alias cat='bat --paging=never'

Catppuccin Macchiato + Blue Accent

Kurulan yerler:

KatmanDosya / YerNot
Konsole arka plan~/.local/share/konsole/catppuccin-macchiato.colorschemeProfilde ColorScheme=catppuccin-macchiato
Starship prompt~/.config/starship.tomlpalette = 'catppuccin_macchiato', segmentler blue/sapphire/sky/teal/lavender
zsh-syntax-highlighting~/.config/zsh/themes/catppuccin_macchiato-zsh-syntax-highlighting.zshzshrc’den source edilir
bat~/.config/bat/config + $(bat --config-dir)/themes/--theme="Catppuccin Macchiato"
btop~/.config/btop/btop.conf + ~/.config/btop/themes/catppuccin_macchiato.themecolor_theme = "catppuccin_macchiato"
fzfzshrc’deki FZF_DEFAULT_OPTS

Hata simgesi: Starship error_symbol hâlâ #ed8796 (macchiato red) — görünürlük için kasıtlı.

Tema indirme komutları (referans)

# Konsole
curl -fsSL -o ~/.local/share/konsole/catppuccin-macchiato.colorscheme \
  https://raw.githubusercontent.com/catppuccin/konsole/main/themes/catppuccin-macchiato.colorscheme

# zsh-syntax-highlighting
mkdir -p ~/.config/zsh/themes
curl -fsSL -o ~/.config/zsh/themes/catppuccin_macchiato-zsh-syntax-highlighting.zsh \
  https://raw.githubusercontent.com/catppuccin/zsh-syntax-highlighting/main/themes/catppuccin_macchiato-zsh-syntax-highlighting.zsh

# bat
mkdir -p "$(bat --config-dir)/themes"
curl -fsSL -o "$(bat --config-dir)/themes/Catppuccin Macchiato.tmTheme" \
  https://github.com/catppuccin/bat/raw/main/themes/Catppuccin%20Macchiato.tmTheme
bat cache --build

# btop
mkdir -p ~/.config/btop/themes
curl -fsSL -o ~/.config/btop/themes/catppuccin_macchiato.theme \
  https://raw.githubusercontent.com/catppuccin/btop/main/themes/catppuccin_macchiato.theme

Yardımcı Scriptler

1. sort-wallpapers.sh

~/.local/bin/sort-wallpapers.sh — Bir dizindeki görselleri 4K/, QHD/, FHD/, Ultrawide/, Portrait/, Kucuk/, Bozuk/ klasörlerine ayırır. ImageMagick identify kullanır.

#!/bin/sh
set -e
DIR="${1:-$HOME/Pictures/Wallpapers/r-wallpaper}"
cd "$DIR"
mkdir -p 4K QHD FHD Ultrawide Portrait Kucuk Bozuk

find . -maxdepth 1 -type f \( -iname '*.jpg' -o -iname '*.jpeg' -o -iname '*.png' -o -iname '*.webp' -o -iname '*.gif' \) -print0 |
while IFS= read -r -d '' f; do
  dims=$(identify -format '%w %h' "$f" 2>/dev/null | head -1) || dims=""
  if [ -z "$dims" ]; then mv -- "$f" Bozuk/; continue; fi
  w=$(echo "$dims" | cut -d' ' -f1)
  h=$(echo "$dims" | cut -d' ' -f2)
  if [ "$h" -gt "$w" ]; then
    target=Portrait
  else
    ratio=$((w * 100 / h))
    if [ "$ratio" -ge 210 ]; then target=Ultrawide
    elif [ "$w" -ge 3840 ]; then target=4K
    elif [ "$w" -ge 2560 ]; then target=QHD
    elif [ "$w" -ge 1920 ]; then target=FHD
    else target=Kucuk; fi
  fi
  mv -- "$f" "$target/"
done

Kategori kuralları:

2. sort-tg-export.sh

~/.local/bin/sort-tg-export.sh~/Downloads/tg_export/ altındaki her alt klasörde dosyaları Fotograflar/ ve Videolar/ şeklinde ikiye ayırır.

#!/bin/bash
set -e
BASE="${1:-$HOME/Downloads/tg_export}"
for d in "$BASE"/*/; do
  [ -d "$d" ] || continue
  mkdir -p "$d/Fotograflar" "$d/Videolar"
  find "$d" -maxdepth 1 -type f \( \
    -iname '*.jpg' -o -iname '*.jpeg' -o -iname '*.png' \
    -o -iname '*.webp' -o -iname '*.gif' -o -iname '*.heic' \
  \) -exec mv -t "$d/Fotograflar/" {} +
  find "$d" -maxdepth 1 -type f \( \
    -iname '*.mp4' -o -iname '*.mov' -o -iname '*.mkv' \
    -o -iname '*.webm' -o -iname '*.avi' -o -iname '*.m4v' \
  \) -exec mv -t "$d/Videolar/" {} +
done

r/wallpaper Top All-Time İndirme (bdfr)

gallery-dl Reddit’in bot korumasına takıldı (IP ban riski). BDFR (Bulk Downloader for Reddit) alternatif çalıştı — ama güncel praw ile uyumsuz:

pipx install bdfr
pipx inject bdfr 'praw<7.8' --force
bdfr download ~/Pictures/Wallpapers/r-wallpaper \
  --subreddit wallpaper --sort top --time all --limit 1000 --no-dupes

İndirme sonrası:

cd ~/Pictures/Wallpapers/r-wallpaper
mv -n wallpaper/* . 2>/dev/null
rmdir wallpaper 2>/dev/null
~/.local/bin/sort-wallpapers.sh

İlk çalıştırmada sonuç: 469 görsel → 4K: 169, FHD: 208, QHD: 68, Kucuk: 18, Ultrawide: 4, Portrait: 2, Bozuk: 0.

Öğrenilen / Dikkat


İlgili yazılar