LightDM Kullanıyorsan Neden .xprofile
Kullanmalısın?
Arch Linux ya da diğer Linux dağıtımlarında masaüstü ortamını başlatmak için ~/.xinitrc
dosyasını mı düzenliyorsun ama hiçbir şey çalışmıyor mu? 🤔
Bu durumun tek bir sebebi olabilir: LightDM veya benzeri bir Display Manager kullanıyorsun ve .xinitrc
dosyan hiçbir işe yaramıyor! Bu yazıda, .xinitrc
ile .xprofile
farkını detaylıca inceleyecek ve neden .xprofile
kullanman gerektiğini adım adım göstereceğiz.
.xinitrc
ve .xprofile
Nedir?
.xinitrc
Dosyası Ne Yapar?
.xinitrc
, klasik olarak startx
komutu kullanılarak masaüstü ortamı başlatıldığında devreye girer. Genellikle şu durumlarda kullanılır:
- Oturumu
tty
üzerinden manuel başlatanlar - Hafif sistemler (Display Manager kullanmayanlar)
- Tam kontrol isteyen minimalist kullanıcılar
Örnek bir .xinitrc
içeriği:
#!/bin/bash
xsetroot -cursor_name left_ptr &
exec i3
````
### `.xprofile` Dosyası Ne İçin Kullanılır?
`.xprofile`, GUI oturumlarını **otomatik olarak başlatan Display Manager’lar** tarafından çalıştırılır. Özellikle şu durumlar için kullanılır:
* `lightdm`, `gdm`, `sddm` gibi display manager kullanan sistemler
* Ortam değişkenleri (`PATH`, `XCURSOR_PATH`), oturum başlangıç uygulamaları (`numlockx`, `dunst` vs.)
* Arka plan servisleri (`mpd`, `ssh-agent` gibi)
---
## LightDM `.xinitrc`'yi Neden Yoksayar?
Display Manager'lar (özellikle LightDM):
* Oturumu kendi başına başlatır
* `~/.xinitrc`'yi **çalıştırmaz**
* Sadece `~/.xprofile`, `~/.xsession`, `~/.pam_environment` gibi dosyalara bakar
Yani, `.xinitrc` dosyasına ne yazarsan yaz, **LightDM onu okumaz**.
Bu nedenle başlangıçta çalışmasını istediğin tüm komutları `.xprofile` içine taşımalısın.
---
## Uygulamalı Senaryo: `.xprofile` ile Doğru Başlatma
Aşağıdaki örnek `.xprofile` dosyası:
```bash
#!/bin/bash
# Ortam değişkenleri
export XCURSOR_PATH="$HOME/.local/share/icons:$HOME/.icons:/usr/share/icons"
# Arkaplan servisleri
pgrep -x "mpd" > /dev/null || setsid mpd &
setsid xscreensaver &
setsid dunst &
# SSH agent
eval "$(ssh-agent -s)" 2>/dev/null || true
# Nvidia ayarları
nvidia-settings --load-config-only --config "$HOME/.config/.nvidia-settings-rc" &
# i3 pencere yöneticisi
exec dbus-launch --sh-syntax --exit-with-session i3
Yukarıdaki komutları .xinitrc
içinde tuttuğun sürece hiçbir şey olmayacak. Ama .xprofile
içine koyarsan her şey sihir gibi çalışacak! 🪄
Adım Adım Geçiş: .xinitrc
→ .xprofile
.xinitrc
içeriğini analiz et- Ortam değişkenlerini ve servis başlatmalarını
.xprofile
içine taşı exec
komutlarını yalnızca bir kere yaz (iç içe çağırma yapma).xinitrc
dosyasını temizle veya sil (isteğe bağlı)
Sık Yapılan Hatalar
.xprofile
içindesource ~/.xinitrc
yapmak vexinitrc
içinde tekrarexec i3
yazmak → Çift başlatma hatası.xinitrc
'ye sadeceexport
komutları yazmak → Hiçbir şey çalışmaz.xprofile
'ı çalıştırılabilir yapmamak →chmod +x ~/.xprofile
Özet: Hangi Dosyayı Ne Zaman Kullanmalısın?
Durum | Doğru Dosya |
---|---|
startx ile oturum açıyorsan |
.xinitrc |
LightDM gibi bir DM varsa | .xprofile |
Sistem genel ortam değişkenleri | /etc/environment |
Sonuç ve Çağrı: Hangisini Kullanacağını Biliyor musun?
Artık .xinitrc
ile .xprofile
arasındaki farkları biliyorsun. Display Manager kullanıyorsan, tüm başlangıç komutlarını .xprofile
dosyana taşı.
Bu sayede başlatılamayan servisler, çalışmayan tema ayarları, eksik ikonlar gibi dertlerden kurtul!
👇
Sen de .xinitrc
mi yoksa .xprofile
mi kullanıyorsun? Deneyimlerini yorum olarak paylaş!
Soruların varsa da çekinmeden yaz! 💬