Skip to content

Ma configuration de Bazzite Gnome avec thème WhiteSur, machine virtuelle optimisée & environnement de développement dans un container distrobox

License

Notifications You must be signed in to change notification settings

Imasu/Guide-Installation-Bazzite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Guide d'installation Bazzite

Synthèse de mon installation de Bazzite Gnome Nvidia
Documentation Bazzite
Blog généraliste sur Linux avec astuces



Pré installation

Type et taille des partitions à créer

Partiton Taille Type de partition
/boot/efi 100 Mo EFI
/boot 1 Go EXT4
/systemfile > 40 Go BTRFS

Détail pour un partitionnement manuel Fedora Manual Partitioning.
Commande pour lister les partitions: lsblk
Article pour retrouver les commandes de changement de droits sur les répertoires: linux file permissions



Commandes utiles sur une uBlue

Spécifique à uBlue

Update manuel ujust update.
Affiche le contenu du script ujust ujust --show <script>.

Commandes rpm-ostree d'une Fedora Atomic

Liste des environnements rpm-ostree status -v.
Conservation de l'environnement actuel (=0) sudo ostree admin pin <n>.
Dé-conservation d'un environnement sudo ostree admin pin --unpin <n>.

Rollback vers le précédent environnement rpm-ostree rollback.

Rechercher un package dans le dépôt ostree rpm-ostree search <package>.
Installation d'un package sur la couche de base rpm-ostree install <package>.
Désinstallation d'un package sur la couche de base rpm-ostree uninstall <package>.

Suppression d'un package livré par défaut dans la couche de base rpm-ostree override remove <package>.

Commandes linux

  • rpm -qi <nom du package/programme> : description de diverses informations sur le package (version, release, date d'installation...)
  • passwd username : forçage du mot de passe sans tenir compte des restriction de format



Setup du système

Secure Boot

Suivre ce guide pour réinstaller le Secure Boot Documentation Bazzite - Secure Boot Instructions.

Configuration système

Passer le clavier en Français et non en Français (alternative)
Changement du nom du PC

hostnamectl set-hostname <hostname>

Configuration Gnome

Taille des polices, couleurs, etc

gsettings set org.gnome.desktop.interface accent-color 'slate'
gsettings set org.gnome.desktop.interface clock-show-date true
gsettings set org.gnome.desktop.interface clock-show-seconds true
gsettings set org.gnome.desktop.interface clock-show-weekday true
gsettings set org.gnome.desktop.interface enable-hot-corners false
gsettings set org.gnome.desktop.interface font-antialiasing 'rgba'
gsettings set org.gnome.desktop.interface font-hinting 'full'
gsettings set org.gnome.desktop.interface font-rgba-order 'rgb'
gsettings set org.gnome.desktop.interface text-scaling-factor 0.92
gsettings set org.gnome.desktop.calendar show-weekdate true
gsettings set org.gnome.mutter.attach-modal-dialogs false

Gnome Tweaks -> remplacé par Refine & Ignition

Bazzite a supprimé en version 42 Gnome Tweaks, il est remplacé par Refine. Eventuellement à installer via Flatpak.
L'application pour gérer les applications lancées automatiquement est Ignition.
Exemple de configuration d'un script pour Solaar (cf. infra, section flatpak):

flatpak run io.github.pwr_solaar.solaar --window=hide

Configuration des services kDrive, OneDrive, Google Calendar ou Drive

Pour rendre disponible OneDrive et les services Google, il convient d'utiliser le service de comptes distants de Gnome.
Il peut être nécessaire d'installer le flatpak : Gnome Keyring

Configuration de BASH

Installation de Oh-My-Bash à partir de cette ligne de commande (source: Configurer Bash avec Oh-my-Bash.

bash -c "$(wget https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh -O -)"

Dans le fichier .bashrc:

  1. Thème sélectionné: powerline-multiline, avec la palette GNOME,
  2. Recopier les lignes originales du .bashrc de Bazzite dans la version générée par Oh-My-Bash. Nécessaire pour que Brew fonctionne,
  3. Corriger un problème d'autocompletion par ajout en fin de .bashrc de complete -d cd (Source issue 448),
  4. Prise en compte des modifications par la commande source .bashrc.

Configuration de NANO

Modification du fichier de configuration /etc/nanorc :

  • Auto indentation: set autoindent
  • Affichage du numéro de la ligne: set linenumbers
  • Gestion de la souris: set mouse
  • Thèmes: include /usr/share/nano/*.nanorc et include /usr/share/nano/extra/*.nanorc
  • Key bindings: décommenter les raccourcis nécessaires : Crl+X, C, V, Q, S, F, G, Z, Y

Bug ayant fait l'objet d'un contournement (à suivre pour le désactiver)

  • 11/04/2025. Version: 41.20250409.1 (2025-04-09T19:07:51Z)




Setup des applications

Flatpak

Quelques commandes:

  • Liste les sessions flatpak remotes
  • Liste les flatpack d'une session flatpack remote-ls <remote>
  • Installation et désinstallation sur la session utilisateur flatpak install <remote> <package> / flatpak uninstall <remote> <package>
  • Rechercher un package flatpak search <package>
  • Lancer un package flatpak run <package>
  • Permissions d'un package flatpak info --show-permissions <package>

Paramétrage pour toutes les applications

Ajouter pour toutes les applications les permissions suivantes:

Accélaration GPU : enable

Suppression des applications installées par défaut

Suppression d'applications installées par défaut:

flatpak uninstall system firefox
  • Le répertoire $HOME/.mozilla peut être supprimé.

Applications utilisées

A installer sur la session System pour éviter les doublons des packages de base et gagner de la place:

flatpak install system vivaldi gedit betterbird simplescan libreoffice solaar digiKam

digiKam = gestionnaire de photos.
solaar = gestionnaire de périphériques Logitech.


AppImage

Autre service d'applications notament pour celles achetées.
Gestion à partir de l'application Gear Level.
Créer un répertoire ~/.AppImages pour les stocker.

Applications utilisées

Brew

Applications et services sans GUI. Permet l'installation d'applications utilisées dans les lignes de commande.

Applications utilisées

  • exiftool : manipulation de fichiers images et vidéo par ligne de commande
Utiliser les paramètres   DateTimeOriginal   ou  CreateDate   pour ces commandes

// Renomme les fichiers par leur date de prise de vue (format YYY-MM-DD_HH:MM_id)
exiftool '-FileName<DateTimeOriginal' -d '%Y-%m-%d_%H:%M_%%-c.%%e' -r ~/Images/Google Photos/

// Crée des répertoires de type YYYY/MM et y déplace les fichiers selon leur date de prise de vue
exiftool -r -d %Y/%m "-directory<createdate" ~/Images

// Remplace les dates de dernière modification des fichiers par leur date de prise de vue
exiftool -overwrite_original '-FileModifyDate<DateTimeOriginal' -r ~/Images/




Modding du système GNOME

Extensions supplémentaires

Liste d'extensions à installer:

  • Dash to Dock: Position et taille -> taille des icônes: 40, Apparence -> réduire les marges, utiliser le thème par défaut
  • Desktop Icons NG
  • Extension List
  • OpenWeather Refined -> clé API personnelle WeatherAPI.com
  • Hide Top Bar: activer l'option Sensitivity -> Show panel when mouse approaches...; désactiver les options Sensitivity -> In the above case, also show panel when fullscreen, Intellihide -> only when the active window takes the space.

En standard sur Bazzite: AppIndicator and KStatusNotifierItem Support, Blur my shell, Caffeine, Hot Edge, Just Perfection, Logo Menu, Tiling Shell, User Themes.

  • Just Perfection: dans comportement sélectionner Bureau pour l'option Etat de démarrage
  • L'extension Hot Edge est à désactiver pour éviter de basculer sur les autres bureaux lorsque la souris se déplace rapidemment vers le bas de l'écran.

Application du thème WhiteSur

  1. Créer une distrobox pour la compilation du theme avec un home folder distinct
distrobox create -i "fedora:latest" -n "sys-deskcustom" -H "$HOME/.containers-home/sys-deskcustom"
  1. Dans la distrobox, installer git et toutes les dépendances demandées : sudo dnf install git <packages>
  2. Dans la distrobox, téléchager le thème et l'installer avec les commandes
cd
git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git --depth=1
cd WhiteSur-gtk-theme
./install.sh
./tweaks.sh -F
  1. Depuis la console du système hôte, copier le contenu des répertoires suivants dans leur homologue du système hôte
cp -r $HOME/.containers-home/sys-deskcustom/.config/gtk-4.0 $HOME/.config/
cp -r $HOME/.containers-home/sys-deskcustom/.themes  $HOME/.local/share/themes
  1. Depuis la console du système hôte, modifier les deux fichiers liens qui pointent vers le répertoire du container
ln -s -f $HOME/.config/gtk-4.0/gtk-Dark.css $HOME/.config/gtk-4.0/gtk.css
ln -s -f $HOME/.config/gtk-4.0/gtk-Dark.css $HOME/.config/gtk-4.0/gtk-dark.css
  1. Installer les Flatpaks générés par l'installation
    Le script d'installation a généré des fichiers flatpak dans le répertoire $HOME/.containers-home/sys-deskcustom/.cache/pakitheme
    Depuis la console du système hôte, aller dans ce répertoire et pour chaque sous répertoire installer le flatpak en mode system:
cd $HOME/.containers-home/sys-deskcustom/.cache/pakitheme
flatpak --system install WhiteSur-Dark/org.gtk.Gtk3theme.WhiteSur-Dark-x86_64.flatpak
flatpak --system install WhiteSur-Dark-solid/org.gtk.Gtk3theme.WhiteSur-Dark-solid-x86_64.flatpak
flatpak --system install WhiteSur-Light/org.gtk.Gtk3theme.WhiteSur-Light-x86_64.flatpak
  1. Paramétrer les permissions Flatpak à partir de FlatSeal
    Ajouter dans la section Filesystem pour toutes les applications les permissions suivantes
/var/home/$user name$/.local/share/icons/*:ro
/var/home/$user name$/.local/share/themes/*:ro
xdg-config/gtk-4.0:ro
xdg-config/gtk-3.0:ro
  1. Les icônes WhiteSur Icon Theme sont à déposer dans le répertoire $HOME/.local/share/icons
    Ne pas utiliser les icônes WhiteSur qui posent des problèmes sur Wayland.
  2. Les curseurs Bibata Modern Ice sont à déposer dans le même répertoire $HOME/.local/share/icons
  3. Le thème est à appliquer depuis Refine
  4. Supprimer le container distrobox rm sys-deskcustom, le répertoire $HOME/.containers-home/sys-deskcustom, le réperoirte WhiteSur-gtk-theme créé lors du processus d'installation.




Paramétrage de Steam pour le partage des jeux entre comptes

Solution dérivée de configuration du répertoire steam et de source pour la commande setfacl.

Configuration de la bibliothèque

Répertoire utilisé comme bibliothèque: /var/steam-library/.

sudo groupadd gamers
#Ajout des utilisateurs au nouveau groupe
sudo usermod -a -G gamers user1
sudo usermod -a -G gamers user2
sudo mkdir /var/steam-library
sudo chgrp -R gamers /var/steam-library/
sudo setfacl -PRdm u::rwx,g:gamers:rwx,o::r /var/steam-library
//sudo setfacl -R -b /var/steam-library/
//sudo setfacl -R -m g:gamers:rwX /var/steam-library/
//sudo setfacl -m d:g:gamers:rwx /var/steam-library/

Configuration de Steam

Modifier dans steam, pour tous les utilisateurs, le répertoire de stockage des jeux.




Installation d'une machine virtuelle Windows avec copier/coller et taille de bureau ajustable

Bazzite offre une configuration fonctionnelle par utilisation du script ujust setup-virtualization. /!\ Il y a souvent des bugs dans le script d'origine -> reprendre les instructions erronées manuellement (ujust --show ...).
Il est nécessaire d'activer VFIO /IOMMU pour bénéficier de meilleures performances. Pas de procédure fonctionnelle de CPU pass-through pour l'instant avec un iGPU... donc pas de cristal glass...

Chemin des images sous libvirt: /var/lib/libvirt/images

Guides pour l'installation du VM Windows. Une version est sauvegardée dans le github.


Remarques & étapes:

  • Concernant l'installation de KVM, seules les sections 9 et 10 du 1er guide restent pertinentes. Ce n'est pas peine de créer les services libvirtd individuels car Bazzite fonctionne déjà ainsi.
  • Le guide Asus est très intéressant pour les hooks qemu et la conf KVM qu'il propose (hooks, memballoon...).
    En partant du principe d'une machine virtuelle nommée Window_11, le github contient le fichier KVM optimisé et le répertoire pour les hooks à déposer dans /etc/libvirt/hooks/qemu.d/. Les deux fonctionnent ensemble, sinon des erreurs seront remontées par KVM.
  • Concernant l'installation de la VM Windows, la configuration de KVM proposée dans les 2 premiers guides n'est pas optimale pour mon PC. Elément le plus important: Configuration du processeur en mode : IvyBridge-IBRS source avec PIN des CPU.
    Configuration optimisée: Configuration KVM Windows.

Drivers Virtio:




Installation de git

L'installation de git sur le poste principal est très simple grace à l'utilisation de GitHub CLI.
Le choix du protocole HTTPS permet un clonage effectif des répertoires avec un git clone <lien https>

git config --global user.name  "Imasu"
git config --global user.email "@gmail.com"
brew install gh
gh auth login

Guide synthétique d'utilisation de git: Git Push Local Branch to Remote – How to Publish a New Branch in Git.
Quelques commandes utiles:
-git init pour initialiser un dépôt local
-git add . pour ajouter tous les fichiers du répertoire au dépôt local
-git commit -m "commit message" pour sauvegarder les changements fait aux fichiers locaux

-git remote add origin <url.git> pour attacher le dépôt à un serveur distant Git
-git remote -v pour vérifier l'attachement au serveur distant

-git pull pour synchroniser depuis le serveur distant
-git push -u origin main pour envoyer les modifications sur le serveur distant (il est possible de changer la branche avec la commande git branch -M main)




Installation d'un environnement de développement conteneurisé

Choix le plus simple et avisé !!

Container Distrobox

Installation d'une distrobox selon cette commande. Il ne faut pas utiliser la version GUI BOXES qui ne propose pas toutes les options.
Il est important de spécifier un chemin HOME dédié pour éviter que les fichiers de l'hôte soient modifiés par ceux du conteneur.

Liste de containers distrobox containers distros

Distributions testées et fonctionnelles (wayland):

  • Fedora : --image quay.io/fedora/fedora-toolbox:latest,
  • Archlinux : --image quay.io/toolbx/arch-toolbox:latest,

Exemples avec implémentation du driver nvidia et une isolation renforcée (--unshare-all --init). Attention au répertoire pour le dossier $HOME du conteneur

distrobox create --image quay.io/fedora/fedora-toolbox:latest --name Name-FedoraOS --nvidia --unshare-all --home /home/$USER/.containers-home/Name-FedoraOS
distrobox create --image quay.io/toolbx/arch-toolbox:latest --name Name-ArchEnv --nvidia --unshare-all --init --home /home/$USER/.containers-home/Name-ArchEnv

Paramétrage du container

Activation du pilote Vulkan (bug lié à Fedora/Silverblue/Bazzite, non corrigé au 06/04/2025)

Par défaut, le pilote Vulkan ne fonctionnera pas car le flag --nvidia ne trouvera pas l'un des fichiers de configuration source
Solution le temps que Fedora/Silverblue/Bazzite introduise un fix:

## Copier le fichier manquant depuis l'hôte en le renommant puis le recopier dans le bon répertoire du conteneur
Hôte:
cp /usr/share/vulkan/icd.d/nvidia_icd.x86_64.json ~/Téléchargements/nvidia_icd.json

Conteneur:
sudo cp Téléchargements/nvidia_icd.json /usr/share/vulkan/icd.d/

Vérification par installation de vulkan-tools puis par la commande vulkaninfo --summary

Configuration du shell

Définir un profil pour le Bash avec la palette Tokyo Night Moon

Paquets à installer

Installation des paquets essentiels : nano, git...

FEDORA:
  sudo dnf update
  sudo dnf install nano git

ARCH:
  sudo pacman -Syu
  sudo pacman -S nano git

Optionnel:

  • Installation de Oh-My-Bash en suivant le guide supra. Ne fonctionne que si l'on est entré dans le container à partir du menu du Shell. Thèmes à utiliser: agnoster ou powerline-multiline.
  • Configuration de nano en suivant le guide supra.
  • Installation de chromium pour qu'un navigateur soit actif sur le conteneur (nécessaire par exemple pour la documentation des programmes Rust)

Installation de VS Code: depuis la racine du $HOME du container (cd ~/), suivre la procédure de MS
Note: la version du paquet Arch n'est pas la version complète par exmple): (https://code.visualstudio.com/docs/setup/linux)

Installation de RustRover (JetBrains): depuis la racine du $HOME du container (cd ~/), suivre la procédure de JetBrains
Il est possible après de créer un symlink vers ~/.local/bin pour pouvoir lancer RustRover directement sans aller dans son répertoire d'installation (/opt/RustRover...)

Paramétrage de base de Git Commandes GIT de base

git config --global user.name  "Imasu"
git config --global user.email "@gmail.com"

Dans les projets, pour éviter la synchronisation de certains fichiers ou répertoires, créer un fichier .gitignore avec les paramètrages nécessaires.

Mise en oeuvre de code & git

Sous environnement GNOME

  1. Pour un container Arch, installer le packet gnome-keyring (pas besoin pour Fedora).
  2. Lancer VS-Code, sur l'écran d’accueil, sélectionner 'Clone Git Repository...' et suivre les instructions. Sur Fedora, faire plusieurs cancel pour arriver à la méthode avec saisie d'un code.
  3. Thèmes: Tokyo Night Dark Enhanced , Atom One Dark Theme

Installation des languages

Languages testés:




Installation d'un environnement de développement sur le système hôte avec gestion de containers

Installation de VS-Code par Flatpak puis utilisation de conteneurs pour les développements.
Au final pas le choix le plus avisé -> il est préférable d'installer l'environnement de dév (VS-Code, git, langage directement dans une distrobox)

Container Distrobox

Cf supra.

Configuration VS Code

Installation de l'environnement en suivant ce guide VSCode + Dev Containers and Toolbx/Distrobox setup for Fedora Silverblue

Installation de VS-Code par flatpak

Installation

flatpak --system install flathub com.visualstudio.code

Configuration du flatpak
A partir d'une configuration standard

flatpak --system override --env HOST_DISPLAY="$DISPLAY" --env HOST_SHELL="$SHELL" --env HOST_SSH_AUTH_SOCK="$SSH_AUTH_SOCK" com.visualsudio.code

Cela créé le fichier /var/lib/flatpak/overrides/com.visualsudio.code

Rend visible podman depuis VS Code sous flatpak

mkdir -p ${HOME}/.var/app/com.visualstudio.code/data/node_modules/bin
ln -sf /app/bin/host-spawn ${HOME}/.var/app/com.visualstudio.code/data/node_modules/bin/podman

Configuration de VS Code

  1. Lancer VS Code
  2. Installer l'extension Dev Containers
  3. CTRL+, pour ouvrir l'éditeur de paramètres
  4. Rechercher docker path et remplacer la valeur par podman

Configuration des containers distrobox (pour VS Code sous flatpak)

Pour chacun des containers distrobox

  1. Créer un fichier json dans le répertoire ${HOME}/.var/app/com.visualstudio.code/config/Code/User/globalStorage/ms-vscode-remote.remote-containers/nameConfigs/${YOUR_DISTROBOX_CONTAINER_NAME}.json
{
  "remoteUser": "${localEnv:USER}",
  "settings": {
    "dev.containers.copyGitConfig": false,
    "dev.containers.gitCredentialHelperConfigLocation": "none"
  },

  "terminal.integrated.profiles.linux": {
    "distrobox": {
      "path": "${localEnv:SHELL}",
      "args": [
        "-l"
      ]
    },

    "toolbx": {
      "path": "/usr/sbin/capsh",
      "args": [
        "--caps=",
        "--",
        "-c",
        "exec \"\$@\"",
        "/bin/sh",
        "${localEnv:SHELL}",
        "-l"
      ]
    }
  },

  "terminal.integrated.defaultProfile.linux": "distrobox",

  "remoteEnv": {
    "COLORTERM": "${localEnv:COLORTERM}",
    "DBUS_SESSION_BUS_ADDRESS": "${localEnv:DBUS_SESSION_BUS_ADDRESS}",
    "DESKTOP_SESSION": "${localEnv:DESKTOP_SESSION}",
    "DISPLAY": "${localEnv:HOST_DISPLAY}",
    "LANG": "${localEnv:LANG}",
    "SHELL": "${localEnv:HOST_SHELL}",
    "SSH_AUTH_SOCK": "${localEnv:HOST_SSH_AUTH_SOCK}",
    "TERM": "${localEnv:TERM}",
    "VTE_VERSION": "${localEnv:VTE_VERSION}",
    "XDG_CURRENT_DESKTOP": "${localEnv:XDG_CURRENT_DESKTOP}",
    "XDG_DATA_DIRS": "${localEnv:XDG_DATA_DIRS}",
    "XDG_MENU_PREFIX": "${localEnv:XDG_MENU_PREFIX}",
    "XDG_RUNTIME_DIR": "${localEnv:XDG_RUNTIME_DIR}",
    "XDG_SESSION_DESKTOP": "${localEnv:XDG_SESSION_DESKTOP}",
    "XDG_SESSION_TYPE": "${localEnv:XDG_SESSION_TYPE}"
  }
}
  1. Créer un répertoire pour les données VS-Code dans le container avec le code
sudo mkdir /.vscode-server
sudo chown ${USER}:${USER} /.vscode-server
ln -sf /.vscode-server ${HOME}/.vscode-server
sudo chmod 755 /root
sudo ln -sf /.vscode-server /root/.vscode-server




fin

About

Ma configuration de Bazzite Gnome avec thème WhiteSur, machine virtuelle optimisée & environnement de développement dans un container distrobox

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published