FROM registry.fedoraproject.org/fedora-bootc:43

#Ajout du dépot vscode
RUN rpm --import https://packages.microsoft.com/keys/microsoft.asc \
    && echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\nautorefresh=1\ntype=rpm-md\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" | tee /etc/yum.repos.d/vscode.repo > /dev/null

#Ajout du dépot mullvad
RUN curl -fsSL https://repository.mullvad.net/rpm/stable/mullvad.repo -o /etc/yum.repos.d/mullvad.repo

#Install de gnome avec support hardware + Podman + Cups + Vulkan driver + Plymouth + dev tools + divers utilitaires
RUN dnf install -y \
        @base-x \
        @hardware-support \
        @development-tools \
        gnome-initial-setup \
        gdm \
        gnome-shell \
        gnome-session \
        ptyxis \
        nautilus \
        gnome-control-center \
        gnome-settings-daemon \
        gnome-keyring \
        gnome-calculator \
        gnome-clocks \
        gnome-calendar \
        gnome-text-editor \
        papers \
        loupe \
        gnome-weather \
        code \
        glibc-langpack-fr \
        flatpak \
        buildah \
        podman \
        podman-docker \
        fuse-overlayfs \
        cups \
        dconf \
        cups-pdf \
        gnome-menus \
        vulkan-loader \
        vulkan-tools \
        mesa-vulkan-drivers \
        xorg-x11-drv-amdgpu \
        plymouth \
        wget \
        plymouth-system-theme \
        plymouth-plugin-label \
        plymouth-plugin-fade-throbber \
        podman-compose \
        mullvad-vpn \
        kernel-modules \
        kernel-modules-extra \
        SDL2 \
        evtest \
        libusb \
        usbutils \
    && dnf remove -y gnome-software gnome-software-rpm-ostree || true \
    && dnf clean all \
    && rm -rf /var/cache/dnf

#Installation de Yaak
RUN wget https://github.com/mountain-loop/yaak/releases/download/v2025.7.0/yaak-2025.7.0-1.x86_64.rpm -O /tmp/yaak.rpm \
    && dnf install -y /tmp/yaak.rpm \
    && rm -f /tmp/yaak.rpm

#Installation de Filen Desktop
RUN wget https://cdn.filen.io/@filen/desktop/release/latest/Filen_linux_x86_64.rpm -O /tmp/filen.rpm \
    && dnf install -y /tmp/filen.rpm \
    && rm -f /tmp/filen.rpm

#Installation de starship
RUN curl -sS https://starship.rs/install.sh | sh -s -- -y

#Installation des polices FiraMono Nerd Font
RUN mkdir -p /usr/share/fonts/firamono-nerd && \
    cd /usr/share/fonts/firamono-nerd && \
    wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.4.0/FiraMono.zip && \
    unzip FiraMono.zip && \
    rm FiraMono.zip && \
    fc-cache -fv

#Configuration de starship pour tous les utilisateurs
RUN echo 'eval "$(starship init bash)"' >> /etc/bashrc

#Configuration par défaut de starship pour tous les utilisateurs
RUN mkdir -p /etc/skel/.config && \
    starship preset nerd-font-symbols -o /etc/skel/.config/starship.toml

#Langue FR par défaut + Fuse userns + Timezone Paris
RUN echo "LANG=fr_FR.UTF-8" > /etc/locale.conf \
    && echo "KEYMAP=fr" > /etc/vconsole.conf \
    && ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime \
    && echo "user.max_user_namespaces=28633" > /etc/sysctl.d/userns.conf

#Configuration des fenêtres gnome pour avoir les btns style windows
RUN mkdir -p /etc/dconf/db/local.d /etc/dconf/profile && \
    printf "[org/gnome/desktop/wm/preferences]\nbutton-layout=':minimize,maximize,close'\n" > /etc/dconf/db/local.d/02-window-buttons && \
    printf "user-db:user\nsystem-db:local\n" > /etc/dconf/profile/user && \
    dconf update 2>/dev/null || true

#Activation du module xpad pour support manette xbox
RUN echo "xpad" > /etc/modules-load.d/xpad.conf

# Ajout de flathub avec des apps par défaut
RUN flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo \
    && flatpak install -y --system flathub runtime/org.gnome.Platform/x86_64/49 \
    && flatpak install -y --system flathub io.github.kolunmi.Bazaar

#Définir le target graphique par défaut
RUN systemctl set-default graphical.target

#Activation des services + Desactivation de bootc-update automatique
RUN systemctl preset-all && \
    systemctl enable gdm.service NetworkManager.service bluetooth.service podman.socket cups.service mullvad-daemon.service && \
    systemctl mask bootc-fetch-apply-updates.timer