Linux’ta Oturum Ayarları: .xinitrc mi .xprofile mı?
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,sddmgibi display manager kullanan sistemler- Ortam değişkenleri (
PATH,XCURSOR_PATH), oturum başlangıç uygulamaları (numlockx,dunstvs.) - Arka plan servisleri (
mpd,ssh-agentgibi)
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_environmentgibi 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ı:
#!/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#
.xinitrciçeriğini analiz et- Ortam değişkenlerini ve servis başlatmalarını
.xprofileiçine taşı execkomutlarını yalnızca bir kere yaz (iç içe çağırma yapma).xinitrcdosyasını temizle veya sil (isteğe bağlı)
Sık Yapılan Hatalar#
.xprofileiçindesource ~/.xinitrcyapmak vexinitrciçinde tekrarexec i3yazmak → Çift başlatma hatası.xinitrc'ye sadeceexportkomutları 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! 💬