Autostart klasörünün var olup olmadığını kontrol edip, yoksa oluşturmak için script'i güncelleyebiliriz. Aynı zamanda, script'in çalıştığından emin olmak için daha fazla hata kontrolü ekleyebiliriz.
Güncellenmiş Script: setup_user.sh
bash
Kodu kopyala
#!/bin/bash
# Flag dosyasının yolu
FLAG_FILE="$HOME/.config/.first_login_done"
# Daha önce çalışıp çalışmadığını kontrol et
if [ -f "$FLAG_FILE" ]; then
exit 0
fi
# /home/$USER/.config/autostart konumunu oluştur
mkdir -p "$HOME/.config/autostart"
# KDE için masaüstü dosyasını oluştur
if [ -n "$(pgrep plasmashell)" ]; then
echo "[Desktop Entry]
Type=Link
Name=StartIcon
Icon=/PokeOS/pokeball.png
" > "$HOME/.config/autostart/start-icon.desktop"
qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript \
"var allDesktops = desktops(); for (i=0; i<allDesktops.length; i++) { d = allDesktops; d.wallpaperPlugin = \"org.kde.image\"; d.currentConfigGroup = Array(\"Wallpaper\", \"org.kde.image\", \"General\"); d.writeConfig(\"Image\", \"file:///PokeOS/Poipoleorg.png\"); }"
fi
# Cinnamon için masaüstü dosyasını oluştur
if [ -n "$(pgrep cinnamon)" ]; then
echo "[Desktop Entry]
Type=Link
Name=StartIcon
Icon=/PokeOS/pokeball.png
" > "$HOME/.config/autostart/start-icon.desktop"
gsettings set org.cinnamon.desktop.background picture-uri "file:///PokeOS/Poipoleorg.png"
fi
# İlk çalıştırma flag dosyasını oluştur
touch "$FLAG_FILE"
1. Adım: Kullanıcı için oturum başlatma dosyasını oluşturma
Bu script'i /etc/skel dizininde saklayacağız, böylece yeni oluşturulan her kullanıcıda bu script bulunacak.
bash
Kodu kopyala
sudo cp setup_user.sh /etc/skel/
sudo chmod +x /etc/skel/setup_user.sh
2. Adım: Kullanıcı oturum açtığında script'in çalışması için bir giriş dosyası oluşturma
Yeni kullanıcılar oluşturulduğunda script'in çalışması için bir .profile veya .bashrc dosyasına ekleyebiliriz.
.profile veya .bashrc dosyasına ekleme
/etc/skel/.profile veya /etc/skel/.bashrc dosyasına aşağıdaki satırı ekleyin:
bash
Kodu kopyala
# Kullanıcı oturum açtığında script'i çalıştır
if [ -f "$HOME/setup_user.sh" ]; then
bash "$HOME/setup_user.sh"
fi
Bu güncellemeler, autostart klasörünün bulunmadığı hatasını ortadan kaldıracaktır. Böylece, script çalışmadan önce gerekli klasörler oluşturulacak ve script sorunsuz çalışacaktır.