#!/bin/sh

# gnucego-fix-installed.sh — parte do projeto GNUcego.
# Copyright (C) 2026 GNUcego contributors
#
# Este programa é SOFTWARE LIVRE: você pode redistribuí-lo e/ou modificá-lo
# sob os termos da GNU General Public License (GPL) publicada pela
# Free Software Foundation — versão 3 da Licença, ou (à sua escolha)
# qualquer versão posterior.
#
# Este programa é distribuído na esperança de ser útil, mas SEM QUALQUER
# GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de
# ADEQUAÇÃO A UM DETERMINADO FIM. Veja a GNU General Public License
# para mais detalhes.
#
# Você deve ter recebido uma cópia da GNU General Public License junto
# com este programa. Se não, veja <https://www.gnu.org/licenses/>.

# GNUcego -- correcoes pos-instalacao para sistema JA instalado.
# Aplica: identidade (GRUB/os-release/issue), fastfetch, i3 config.
# Rode como root no sistema GNUcego instalado:
#   sudo sh gnucego-fix-installed.sh
set -e

echo "=== 1) Identidade (os-release, lsb-release, issue) ==="
cat > /etc/os-release <<'EOF'
NAME="GNUcego GNU/Linux-libre"
VERSION="2026.2 LTS"
ID=gnucego
ID_LIKE=debian
PRETTY_NAME="GNUcego GNU/Linux-libre 2026.2 LTS"
ANSI_COLOR="1;31"
HOME_URL="https://gnucego.com.br"
SUPPORT_URL="https://gnucego.com.br"
BUG_REPORT_URL="https://gnucego.com.br"
EOF

printf 'GNUcego GNU/Linux-libre \\n \\l\n' > /etc/issue
printf 'GNUcego GNU/Linux-libre\n' > /etc/issue.net

echo "=== 2) GRUB (nome sem duplicacao + cores vermelhas) ==="
if [ -f /etc/default/grub ]; then
    sed -i 's/^GRUB_DISTRIBUTOR=.*/GRUB_DISTRIBUTOR="GNUcego GNU\/Linux-libre"/' /etc/default/grub
    grep -q '^GRUB_COLOR_NORMAL=' /etc/default/grub || echo 'GRUB_COLOR_NORMAL="white/black"' >> /etc/default/grub
    sed -i 's/^GRUB_COLOR_NORMAL=.*/GRUB_COLOR_NORMAL="white\/black"/' /etc/default/grub
    grep -q '^GRUB_COLOR_HIGHLIGHT=' /etc/default/grub || echo 'GRUB_COLOR_HIGHLIGHT="red/black"' >> /etc/default/grub
    sed -i 's/^GRUB_COLOR_HIGHLIGHT=.*/GRUB_COLOR_HIGHLIGHT="red\/black"/' /etc/default/grub
    # remove tema (para as cores do default/grub valerem)
    sed -i 's/^GRUB_THEME=.*/GRUB_THEME=""/' /etc/default/grub
fi
if [ -f /etc/grub.d/10_linux ]; then
    sed -i 's/Ubuntu|Kubuntu|\*GNU\/Linux)/Ubuntu|Kubuntu|*GNU\/Linux|*GNU\/Linux-libre)/' /etc/grub.d/10_linux
fi

echo "=== 3) fastfetch (corrige config se tiver a chave 'colors' invalida) ==="
for c in /etc/fastfetch/config.jsonc /home/*/.config/fastfetch/config.jsonc; do
    [ -f "$c" ] && sed -i '/"colors" *: *false/d' "$c" 2>/dev/null || true
done

echo "=== 4) i3 (terminator + xinit + .xinitrc + wallpaper) ==="
if command -v i3 >/dev/null 2>&1; then
    apt-get install -y terminator xinit feh 2>/dev/null || true
    WALL=/usr/share/backgrounds/gnucego/wallpaper.jpg
    [ -s "$WALL" ] || wget -q -O "$WALL" https://repo.gnucego.com.br/gnucego/wallpaper.jpg || true
    # .xinitrc
    printf '#!/bin/sh\nexec i3\n' > /etc/skel/.xinitrc 2>/dev/null || true
    for h in /home/*; do
        [ -d "$h" ] || continue
        u=$(basename "$h")
        [ -f "$h/.xinitrc" ] || printf '#!/bin/sh\nexec i3\n' > "$h/.xinitrc"
        mkdir -p "$h/.config/i3"
        if [ ! -f "$h/.config/i3/config" ] && [ -s "$WALL" ]; then
            cat > "$h/.config/i3/config" <<CFG
set \$mod Mod4
font pango:monospace 10
set \$terminal terminator
exec_always --no-startup-id feh --bg-scale "$WALL"
bar { status_command i3status }
bindsym \$mod+Return exec \$terminal
bindsym \$mod+d exec dmenu_run
bindsym \$mod+Shift+q kill
bindsym \$mod+Shift+r restart
bindsym \$mod+Shift+e exit
CFG
        fi
        chown -R "$u":"$u" "$h/.xinitrc" "$h/.config/i3" 2>/dev/null || true
    done
    echo "i3 configurado (terminator, xinit, wallpaper, .xinitrc)"
fi

echo "=== 5) Wallpaper (morcego voando) + tema MATE (TraditionalOk) + icone GNOME ==="
WALL=/usr/share/backgrounds/gnucego/wallpaper.jpg
mkdir -p /usr/share/backgrounds/gnucego /usr/share/backgrounds
# baixa o wallpaper novo (morcego voando) se ainda nao for o correto
wget -q -O "$WALL" http://repo.gnucego.com.br/gnucego/wallpaper.jpg 2>/dev/null || true
if [ -s "$WALL" ]; then
    cp "$WALL" /usr/share/backgrounds/gnucego-wallpaper.jpg 2>/dev/null || true

    # LightDM (login)
    if [ -f /etc/lightdm/lightdm-gtk-greeter.conf ]; then
        sed -i "s|^#\?background=.*|background=$WALL|" /etc/lightdm/lightdm-gtk-greeter.conf 2>/dev/null || echo "background=$WALL" >> /etc/lightdm/lightdm-gtk-greeter.conf
    else
        mkdir -p /etc/lightdm
        printf '[greeter]\nbackground=%s\ntheme-name=Adwaita\n' "$WALL" > /etc/lightdm/lightdm-gtk-greeter.conf 2>/dev/null
    fi

    # Sessao MATE (wallpaper + tema + icone) via dconf
    if command -v gsettings >/dev/null 2>&1 || [ -d /usr/share/glib-2.0/schemas ]; then
        mkdir -p /etc/dconf/db/local.d
        cat > /etc/dconf/db/local.d/00-gnucego-wallpaper <<EOF
[org/mate/background]
picture-filename='/usr/share/backgrounds/gnucego-wallpaper.jpg'
picture-options='zoom'
[org/mate/interface]
gtk-theme='TraditionalOk'
icon-theme='gnome'
[org/gnome/desktop/background]
picture-uri='file:///usr/share/backgrounds/gnucego-wallpaper.jpg'
picture-options='zoom'
EOF
        [ -f /etc/dconf/profile/user ] || cat > /etc/dconf/profile/user <<'EOF'
user-db:user
system-db:local
EOF
        dconf update 2>/dev/null || true
    fi
fi

update-grub 2>/dev/null || true

echo ""
echo "=== CONCLUIDO. Reinicie para ver o GRUB e o wallpaper. ==="
echo "Para entrar no i3: login no terminal -> startx"
