Bu repo, benim kişisel CachyOS end-4 Hyprland yapılandırma dosyalarımı (dotfiles) barındırır.
Tüm sistem stow kullanılarak modüler paketler halinde yönetilmektedir ve install.sh ana betiği (script) aracılığıyla yeni bir sistem kurulumunu otomatikleştirmek için tasarlanmıştır.
Format sonrası yeni bir sisteme geçtiğimde izlemem gereken adımlar:
-
Temel Paketleri Kur: Sisteme gerekli paket yöneticisini ve geliştirme araçlarını kur.
# Arch-based (CachyOS, Arch, Manjaro, vb.): sudo pacman -Syu --needed git base-devel # Fedora-based: sudo dnf install -y git @development-tools # Debian/Ubuntu-based: sudo apt update sudo apt install -y git build-essential
-
Repoyu Klonla: Bu
Dotfilesreposunu,stowve betiklerin beklediği~/Documentsdizinine klonla.git clone https://github.com/m24ih/dotfiles.git ~/Documents/Dotfiles -
Betiği Çalıştır: Ana kurulum betiğini çalıştır. Bu betik otomatik olarak dağıtımınızı tespit eder ve uygun paket yöneticisini kullanır.
cd ~/Documents/Dotfiles chmod +x install.sh ./install.sh
Bu komut dağıtımınıza göre gerekli paket yöneticisini kurar ve tüm bileşenleri yükler.
install.shartık modüler hâle getirilmiştir ve sadece belirli bölümleri çalıştırmak için komut satırı argümanları kabul eder:
./install.sh base package-manager
./install.sh stow
./install.sh hardware
./install.sh fonts
./install.sh ./install.sh ```
Kullanılabilir bölümler:
- `base` veya `packages`: git ve base-devel (veya dağıtım eşdeğeri)
- `package-manager` veya `pm`: Dağıtım özel paket yöneticisini yay (Arch) veya zaten bulunan dnf/apt (Diğerleri)
- `all`: packages.txt içindeki tüm paketleri kur (yay ile, Arch-based sistemlerde)
- `flatpak`: Flatpak paketlerini kur
- `stow` veya `dotfiles`: stow ile dotfile'ları bağla
- `hardware`: F tuşları ve Keychron donanım ayarlarını uygula
- `network`: Ağ ve ağ sürücü ayarlarını uygula (iwd, vivaldi middle click)
- `discord`: Discord proxy ayarlarını uygula
- `services`: Sistem ve kullanıcı servislerini yapılandır
- `ufw`: UFW güvenlik duvarı kurallarını uygula
- `warp`: Cloudflare WARP split tunnel kurallarını uygula
- `fonts`: JetBrains Mono Nerd Font ve diğer yazı tiplerini kur
-
Manuel Olarak Yapılacaklar (ÖNEMLİ): Kurulum betiği bittikten sonra, asla bu repoya eklenmemesi gereken "sır" (secret) dosyalarını manuel olarak yerine koy:
~/.config/rclone/rclone.conf(GDrive token'ları için)~/.config/gh/hosts.yml(GitHub CLI token'ı için)- Gerekse
sshanahtarları (~/.ssh/). - (Bunları 1Password'den al.)
-
Yeniden Başlat: Tüm ayarların (özellikle
fkeysgibi donanım modüllerinin) tam olarak uygulanması için sistemi yeniden başlat.
Bu repo, sembolik bağ (symlink) yöneticisi olan stow'u temel alır.
~/Documents/Dotfiles/ana dizinimizdir.- İçindeki her bir klasör (
hypr,nvim,fish,gtkvb.) bir "stow paketi" olarak kabul edilir. - Her paketin içindeki dosya yapısı,
~(home) dizininin yapısını taklit eder.
Örnek: fastfetch ayarlarını ~/.config/fastfetch konumuna bağlamak için, dosyaların konumu:
~/Documents/Dotfiles/fastfetch/.config/fastfetch/ şeklindedir.
install.sh betiği, STOW_PACKAGES dizisinde listelenen tüm paketler için otomatik olarak stow -R -t ~ [paket_adi] komutunu çalıştırır ve tüm ayarları ana dizine bağlar.
Gelecekte rofi gibi yeni bir programın yapılandırmasını eklemek istediğimde:
-
Paket Klasörünü Oluştur:
mkdir -p ~/Documents/Dotfiles/rofi -
~Taklit Yapısını Oluştur:rofiayarları~/.config/rofiiçinde duruyorsa,stowiçin şu yolu oluştur:mkdir -p ~/Documents/Dotfiles/rofi/.config -
Mevcut Ayarları Taşı: Gerçek yapılandırma klasörünü (
~/.config/rofi) bu yenistowpaketinin içine taşı:mv ~/.config/rofi ~/Documents/Dotfiles/rofi/.config/
-
Ana Betiği Güncelle:
install.shdosyasını aç veSTOW_PACKAGESdizisine"rofi"kelimesini ekle. -
Yeni Paketi "Stow" Et: (İsteğe bağlı) Betiği tekrar çalıştırmak yerine hemen bağlamak için:
cd ~/Documents/Dotfiles stow -R -t ~ rofi
-
Git'e Gönder: Yeni paketi repoya ekle.
git add . git commit -m "feat: Yeni 'rofi' paketini ekle" git push
Eğer fish veya nvim için bir temayı/eklentiyi git clone ile doğrudan .../fish/.config/fish/ klasörünün içine klonlarsam, bu Dotfiles reposu git add . yaparken "warning: adding embedded git repository" uyarısı verir.
Çözüm: İçerideki eklenti/tema klasörünün .git dizinini silerek onu "düz" dosyalara dönüştür.
# 1. Hatalı eklemeyi Git'in hafıyasından zorla kaldır
git rm --cached -f [hatali_paket_yolu]
# 2. İçerideki .git klasörünü sil
rm -rf [hatali_paket_yolu]/.git
# 3. Artık "düz" olan klasörü tekrar ekle
git add [hatali_paket_yolu]Yeni modüler install.sh ile sadece ihtiyacınız olan bölümleri çalıştırabilirsiniz. Bu, mevcut bir sistemde sadece donanım ayarlarını güncellemek veya sadece yeni bir stow paketi eklemek gibi senaryolar için kullanışlıdır.
Örnek kullanım senaryoları:
- Sadece dotfile bağlantısını yenilemek:
./install.sh stow - Yeni bir sistemde sadece temel paketleri ve yay'ı kurmak:
./install.sh base yay - Sadece ağ ayarlarını uygulamak (örneğin, iwd'ye geçmek):
./install.sh network