#!/bin/bash
set -euo pipefail

METADATA_FILE="$HOME/.config/nemo/desktop-metadata"
[ -f "$METADATA_FILE" ] || exit 0

# Mevcut değeri okuyan fonksiyon
get_key() {
    local key="$1"
    if grep -q "^$key=" "$METADATA_FILE"; then
        grep "^$key=" "$METADATA_FILE" | head -n 1 | cut -d'=' -f2
    else
        echo "false" # Dosyada hiç yoksa varsayılan olarak false kabul et
    fi
}

set_key() {
    local key="$1"
    local value="$2"
    if grep -q "^$key=" "$METADATA_FILE"; then
        sed -i "s/^$key=.*/$key=$value/" "$METADATA_FILE"
    else
        sed -i "/^\[desktop-monitor/a $key=$value" "$METADATA_FILE"
    fi
}

quit_nemo_cleanly() {
    nemo-desktop --quit 2>/dev/null || true
    for i in {1..15}; do
        pgrep -x nemo-desktop >/dev/null || break
        sleep 0.05
    done
}

start_nemo_cleanly() {
    nemo-desktop >/dev/null 2>&1 &
    disown
}

### --- İŞLEM AKIŞI ---

# 1. Kullanıcının mevcut ayarını oku ve tersini hesapla
ORIGINAL_STATE=$(get_key "nemo-icon-view-auto-layout")

if [ "$ORIGINAL_STATE" = "true" ]; then
    TEMP_STATE="false"
else
    TEMP_STATE="true"
fi

# 2. Ters değere ayarla ve Nemo'yu başlat (Bu sayede değişiklik tetiklenir)
set_key "nemo-icon-view-auto-layout" "$TEMP_STATE"
quit_nemo_cleanly
start_nemo_cleanly

# Simgelerin ızgaraya oturması/hizalanması için güvenli bekleme süresi
sleep 0.5

# 3. Orijinal değere geri dön ve Nemo'yu tekrar başlat
quit_nemo_cleanly
set_key "nemo-icon-view-auto-layout" "$ORIGINAL_STATE"
start_nemo_cleanly
