Katılım
15 Aralık 2023
Mesajlar
2.801
Makaleler
3
Çözümler
27
Beğeniler
2.685
Yer
Avcılar/İstanbul
Selamlar, amacım KDE ve Cinnamon masaüstü içeren sistemimde yeni hesap açılınca otomatik başlat simgesi ve duvar kağıdı değişmesi. Bir kullanıcı oluşturulunca sadece bir kez çalışacak, ikinci oturumda çalışmayacak ancak kendini de imha etmeyecek bir script lazım. ChatGPT ile bir tane yaptım ama çıktı vermiyor script.

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.
 
Son düzenleyen: Moderatör: