GithubHelp home page GithubHelp logo

cardiacman13 / architect Goto Github PK

View Code? Open in Web Editor NEW
126.0 3.0 29.0 1.4 MB

Le but de ce script est de configurer une Arch Linux stock avec un ensemble minimal de paquet, adapté à nos besoins spécifiques.

Home Page: https://www.youtube.com/channel/UC7VqJVFvk75-B0uKg4MWfpw

License: GNU Affero General Public License v3.0

Shell 100.00%
archlinux archlinux-installer linux tutorial fr script

architect's Introduction

🐧 SCRIPT ARCHITECT

Un script de post-installation pour Arch Linux

ENGLISH VERSION

Table des matières

Tout d'abord Arch est-elle faite pour vous ?

Arch Linux : Introduction & démo d'installation

Avant le script, voici une vidéo pour vous aider avec archinstall

Tutoriel Arch Linux Partie 1 : Archinstall

ET, le grand minimum à savoir pour survivre sur Arch :

Arch Linux, les bonnes pratiques avec Antiz !

🚀 Script Arch Linux

Mise à jour de Architect, la trad FR enfin disponible !

Ce script est parfait pour configurer un système Arch standard avec un ensemble minimal de paquets adapté à vos besoins juste après avoir utilisé archinstall. Il est spécifiquement orienté vers le gaming.

Important

Il est spécifiquement conçu pour une expérience pure d'Arch Linux (non testé sur Garuda, Manjaro, etc.). Nous effectuons tous nos tests sur une installation fraîche d'Arch Linux avec archinstall. Il n'est pas adapté aux ordinateurs de plus de 10 ans. Assurez-vous que votre matériel répond aux exigences des derniers pilotes Nvidia.

[!ATTENTION] Le script modifie la configuration de votre système, consultez le wiki ou le forum de la communauté pour plus d'informations.

Exécutez la commande suivante dans le terminal pour lancer le script :

sudo pacman -S git base-devel && git clone https://github.com/Cardiacman13/Architect.git ~/Architect && cd ~/Architect && chmod +x ./architect.sh && ./architect.sh

📝 Principales fonctionnalités

1. 🚀 Configurer le gestionnaire de paquets

Améliorer les fonctionnalités de Pacman :

  • 🎨 Activation de la sortie colorée.
  • 📝 Listes détaillées des paquets.
  • ⚡ Téléchargements parallèles.
  • 🔗 Support multilib.

2. ⌨️ Ajout d'Alias Utiles

Faciliter vos tâches en ligne de commande :

  • update-arch : Met à jour vos applications système en une seule fois.
  • clean-arch : Supprime les paquets inutilisés.
  • fix-key : Résout les problèmes liés aux clés lors des mises à jour.
  • update-mirrors : Rafraîchit la liste des miroirs de votre système.

3. 🎮 Configuration GPU pour le jeu (AMD, NVIDIA, Intel)

Préparer votre système pour le jeu avec :

  • 🎮 Choix des pilotes GPU :
    • 📹 Support AMD et bibliothèque 32 bits.
    • 📹 Support Intel et bibliothèque 32 bits.
    • 🔄 Choix NVIDIA :
      • Nvidia : Pilotes standard recommandés pour la plupart.
      • Nvidia-all : Pour les utilisateurs avancés (via le dépôt Frogging-Family/nvidia-all).

Ne luttez plus avec les pilotes Nvidia sur Linux ! NVIDIA ALL par TkG sur Arch / Distributions basées sur Arch

4. 🖥️ Environnement de Bureau

Choisissez votre DE :

5. 📦 Installer des paquets de base

Paquets essentiels pour une expérience complète :

  • 📦 Aideurs AUR : yay ou paru.
  • 🖋️ Polices, Emoji.
  • 🎬 Codecs.
  • ➕ Autres paquets cruciaux.

6. 🛠️ Améliorations diverses

Optimisez votre système :

  • 🎲 Augmentation de vm.max_map_count pour une meilleure compatibilité avec les jeux Windows. Arch wiki sur vm-max-map-count
  • 🖨️ Options pour le support de l'impression.
  • 🎵 Configuration Bluetooth.
  • 🎮 Support amélioré pour les manettes Xbox, PS5, 8bitdo.
  • 🐟 Suggérer la configuration de l'environnement Fish shell. (zsh en cours de réalisation)
  • 📂 Support Btrfs dans GRUB avec grub-btrfs.

7. 🔄 Demander l'installation de logiciels supplémentaires

Sélectionnez des logiciels supplémentaires en fonction de vos besoins :

Navigateurs Web :

Nom Paquet
Firefox firefox
Brave brave-bin
Chromium chromium
Vivaldi vivaldi
Google Chrome google-chrome
Microsoft Edge microsoft-edge-stable-bin

Utilitaires Système :

Nom Paquet
Arch Update arch-update
Open RGB openrgb

Communication :

Nom Paquet
Discord discord
Telegram telegram-desktop

Médias et Design :

Nom Paquet
OBS Studio obs-studio
Kdenlive kdenlive
Davinci Resolve davinci-resolve
Gimp gimp
Inkscape inkscape
Krita krita
VLC vlc
MPV mvp
Kazam kazam

Productivité et Bureautique :

Nom Paquet
LibreOffice libreoffice-fresh
OnlyOffice onlyoffice-bin
Visual Studio Code visual-studio-code-bin
VS Code Open Source code
CrossOver crossover

Divertissement et Jeu :

Nom Paquet
Steam steam
Lutris lutris wine-staging
Heroic Games Launcher heroic-games-launcher
Proton UP protonup-qt
Goverlay goverlay
Gamemode gamemode
Spotify spotify

Dépannage

Pour obtenir de l'aide, ouvrez une discussion dans la section de discussion

Sources

Sources et liens utiles :

🙏 Remerciements

  • Équipe Arch Linux pour leur travail incroyable.
  • Communauté Arch Linux pour leur documentation exceptionnelle.
  • Mainteneurs AUR pour leur travail acharné.
  • Tous les contributeurs.
  • Développeurs des paquets utilisés dans ce projet. Mention spéciale à :
  • Merci au Discord GLF pour les nombreux tests et retours.
  • Un grand merci à wmemcpy pour tout son travail sur ce projet.
  • Merci à Skythrew pour son travail sur la traduction française.
  • Merci à A1RM4X pour ses vidéos en anglais sur archinstall et ce projet.

architect's People

Contributors

a1rm4x avatar cardiacman13 avatar gatienvilain avatar gponcon avatar matleborgne avatar rawleenc avatar resu-xunil avatar skythrew avatar walrus543 avatar wmemcpy avatar xdavius avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

architect's Issues

Configuration MKINITCPIO vconsole font

les hooks keymap et consolefont dans mkinitcpio.conf se configurent dans vconsole.conf.

il faudrait pousser la configuration de /etc/vconsole.conf en écrastant la conf :

LOCALE="fr_FR.UTF-8"
KEYMAP="fr"
USECOLOR="yes"

il faut désactiver consolefont dans le HOOK de mkinitcipo.conf

HOOKS=(base udev autodetect modconf kms keyboard keymap block filesystems fsck)

J'ai un bug et erreur avec consolefont. si vous avez une solution (avec TKG en tout cas)...

Cette conf passe bien.

LOCALE ne semble pas obligatoire.

VERNUM

Bonjour,

Il n'y aurais pas quelque chose pour activer au demarage le NumVer (Pavé numerique) ?
Si oui, pourrais tu l'ajouter au script ?

merci

Changer le titre de la question pour xpadneo

Le titre est pas assez explicite. Si j'installes xpadneo, ma manette xbox ne fonctionne pas.

proposition :

Would you want to install xpadneo ? (Can improve xbox gamepad support, say No if unsure) <-- in red

Carte graphique VM

Pour vulkan (nécessaire pour Lutris en VM)

Lavapipe: vulkan-swrast lib32-vulkan-swrast

Pour les shaders en mode VM (optionnel mais vraiment génial ce truc)

SwiftShader(AUR): swiftshader-git

Pour les additions te fais pas chier c'est pas obligatoire mais tu peux ajouter une note dans le README pour aider parceque la doc du wiki est pas folle.

Paquet KDE inutile

Je suis sur GNOME, j'ai donc pris l'install post-installation sans le KDE derrière.
Le script m'a quand même installé tous les composants QT6 et j'ai vu passé des plasma-session dans le lot des paquets installés alors qu'ils me sont parfaitement inutile avec ma DE.

Barre de progression nécessaire

le script se fait mais je trouve pas ça très intuitif de devoir juste "attendre" entre les étapes
les barres de progression te montre que ça tourne derrière
là on ne sait pas trop si ça a planté ou si ça tourne

yay trop verbeux

ajouter un affichage de la liste des paquets et rendre yay muet mais conserver un log ?

echo ${packages}
yay -Sy ${packages} > /tmp/packlog 2>&1

ajouter mesa-vulkan-layers & lib32-mesa-vulkan-layers

***After the merge request was open for more than a half-year, Mesa 20.1 has landed a Vulkan device selection layer for choosing between multiple Vulkan-enabled GPUs on a given system as the default device.

This Vulkan layer allows for picking the default GPU for X11/Wayland/device sessions, similar to DRI PRIME for OpenGL. This Vulkan layer first checks for the MESA_VK_DEVICE_SELECT= environment variable for being pointed towards the GPU/driver to be used, otherwise checks DRI_PRIME and tries to match it to a proper configuration.***

Ce paquet est utiles dans les config PC portable AMD/AMD et INTEL/AMD

A ajouter dans les paquets GPU intel et nvidia

Ne genèrent pas de conflit.

loop in check grub

safe_append_to_file ne vérifie pas si le hook est déjà présent dans le fichier ou si un autre hook existe. Append to file tourne en boucle a chaque fois qu'on lance le script.

Si l'on a oublier une option, on ne peu pas réexécuter le script sans corrompre /etc/pacman.d/hook/100-grub.hook

il faudrait vérifier le contenu du fichier. Si le fichier existe avec son contenu, ne rien faire dans la fonction safe_apend_to_file.

solution B, ne pas utiliser append mais une redirection simple pour écraser le fichier a chaque passage (c'est pas beau mais ca marche)

Manque informations pour UFW

Ufw est installé sans consentement ni informations, et activé par défaut.

Cela peut bloquer les utilisateurs souhaitant utiliser Samba dans le futur

Suggestion : ajouter une question "Souhaitez vous installer et activer le pare-feu UFW ?"

Bonnes pratiques pacman

Ajouter un chapitre dans le tuto sur les bonnes pratique de maintenance + faire une vidéo avec Antiz (courte) et l'ajouter au tuto également.

Support manette PS4 pour Bluez

Le paquet AUR bluez-utils-compat permet le support du bluetooth oldgen pour certains GamePad dont la manette PS4.

Je ne sais pas si c'est intéressant de l'ajouter au script.

Correction a la fin du script

Bonjour, juste pour être plus propre, faudrait voir pour corriger la syntaxe.

\e[31mLe système redémarre dans 10 secondes ou appuyez sur Ctrl+C pour annuler.\e[0m

Bugs divers

  • Pour l'arrivée des questions, il faut une mise en page(la question est noyé après pacman

  • ajouter un reflector en début de script (allemage et france, ce sont les best)

  • auto détection BTRFS/EXT4

  • ajouter 'man' aux paquets obligatoires (erreur fish need man)

  • Manque imprimantes : hplip ou ajouts aussi canon/epson ?

  • Renomer le titre logiciels de base -> logiciels divers

  • Aerer un peu le text (ca fait trop pavé, ajouter des espaces)

  • j'ai mis non au flatpak mais j'ai pas lutris ni steam (kdenlive est passé)

  • Ajouter une option par défaut pour y/n lors des chois (ecrit Y majuscule pour le oui par défaut, ajouter la couleur vert/rouge y=vert n=no)

Supprimer l'icône hp-uiscan dégueulasse et inutile

NE RIEN FAIRE POUR L'INSTANT

ajouter :

sudo xdg-desktop-menu install /usr/share/desktop-directories/kf5-utilities.directory /usr/share/applications/hp-uiscan.desktop
sudo rm /usr/share/applications/hp-uiscan.desktop

Je cherche encore une bonne solution, si elle existe =)

Proposition d'amélioration sur le choix du GPU

Salut,

Libre à toi de voir si tu préfères ou pas, mais tu peux faire comme ça dans ton script pour le choix du GPU :

read -p "Quel est votre GPU? (INTEL/AMD/NVIDIA) : " user_gpu
while [[ ! "INTEL AMD NVIDIA" =~ $user_gpu ]]; do
  read -p "Quel est votre GPU? (INTEL/AMD/NVIDIA) : " user_gpu
done

Ça va forcer l'utilisateur à faire un choix valide.

++

David

-b dev

j'ai modifié readme pour correspondre a architect

par contre pensez a gérer les droits de modification. je peux tout faire.

Chaotic AUR

Sauf erreur la partie concernant chaotic AUR n'est pas dans le script.

Timeshift - problème lancement des sauvegardes en automatique

Bonjour, débutant sous linux mais il me semble avoir trouvé une issue sur l'automatisation des sauvegardes timeshift qui ne fonctionne pas sans effectuer les commandes suivantes après l'installation :

systemctl start cronie
systemctl start cronie.service

systemctl enable cronie
systemctl enable cronie.service

GamePad

Ajouter bluez-plugins pour le support des manettes PS3 en wifi

Ajouter support manette PS4/PS5 ? (A vérifier la méthode, quelqu'un pour tester ???(

pb avec install pipewire

error: target not found: pulseaudio
warning: pipewire-1:0.3.80-1 is up to date -- skipping
error: target not found: lib32-pipewire
Erreur lors de l'exécution de la commande : sudo pacman -S --needed --noconfirm pipewire lib32-pipewire pipewire-pulse pipewire-alsa pipewire-jack wireplumber
[lordsvein@wolfgaming Tuto-Arch]$ ^C

nvidia-drm.modeset=1

nvidia-drm.modeset=1 ne se met pas dans grub, on répare ça au plus vite, d'ici là il faut le faire à la main s'aidant du tuto.

Check pour btrfs assistant

J'ai repris ta ligne de check pour mkinitcpio.conf.

Elle permet de vérifier la présence de btrfs pour proposer btrfs assistant :

if [[ $(cat /etc/mkinitcpio.conf | grep -c "MODULES=(btrfs") -eq 1 ]]; then

probleme plugins kdenlive non installer

Salut Cardiac, J'ai essayer de lancé kdenlive dans le terminal et j'ai decouvert qu'il manquais les plugins d'effets et en faisant un sudo pacman -Q frei0r-plugins il m'indique pourtant en retour frei0r-plugins 2.3.1-1, je sais pas trop d'ou vient le probleme du coup j'envoie les logs si ca peut etre utile.

Could not detect package type, probably default? App dir is "/usr/bin"
mlt_repository_init: failed to dlopen /usr/lib/mlt-7/libmltsdl.so
(libSDL-1.2.so.0: Ne peut ouvrir le fichier d'objet partagé: Aucun fichier ou dossier de ce type)
mlt_repository_init: failed to dlopen /usr/lib/mlt-7/libmltrubberband.so
(librubberband.so.2: Ne peut ouvrir le fichier d'objet partagé: Aucun fichier ou dossier de ce type)
mlt_repository_init: failed to dlopen /usr/lib/mlt-7/libmltrtaudio.so
(librtaudio.so.6: Ne peut ouvrir le fichier d'objet partagé: Aucun fichier ou dossier de ce type)
mlt_repository_init: failed to dlopen /usr/lib/mlt-7/libmltmovit.so
(libmovit.so.8: Ne peut ouvrir le fichier d'objet partagé: Aucun fichier ou dossier de ce type)
No LADSPA plugins were found!

Check your LADSPA_PATH environment variable.
mlt_repository_init: failed to dlopen /usr/lib/mlt-7/libmltsox.so
(libsox.so.3: Ne peut ouvrir le fichier d'objet partagé: Aucun fichier ou dossier de ce type)
mlt_repository_init: failed to dlopen /usr/lib/mlt-7/libmltopencv.so
(libopencv_tracking.so.408: Ne peut ouvrir le fichier d'objet partagé: Aucun fichier ou dossier de ce type)
profilePath from appDir/../share: "/usr/share/mlt-7/profiles"
meltPath from KdenliveSetting::meltPath: ""
meltPath from profilePath/../../../bin: "/usr/bin/melt-7"
Empty metadata for "telecide"
plugin not available: "avfilter.acompressor"
plugin not available: "avfilter.aecho"
plugin not available: "avfilter.agate"
plugin not available: "avfilter.atadenoise"
plugin not available: "avfilter.bwdif"
plugin not available: "avfilter.deblock"
plugin not available: "avfilter.dedot"
plugin not available: "avfilter.deflate"
plugin not available: "avfilter.derain"
plugin not available: "avfilter.doubleweave"
plugin not available: "avfilter.field"
plugin not available: "avfilter.framestep"
plugin not available: "avfilter.fspp"
plugin not available: "avfilter.graphmonitor"
plugin not available: "avfilter.hqdn3d"
plugin not available: "avfilter.inflate"
plugin not available: "avfilter.lagfun"
plugin not available: "avfilter.loudnorm"
plugin not available: "avfilter.mcdeint"
plugin not available: "avfilter.random"
plugin not available: "avfilter.removegrain"
plugin not available: "avfilter.separatefields"
plugin not available: "avfilter.shuffleplanes"
plugin not available: "avfilter.sofalizer"
plugin not available: "avfilter.sr"
plugin not available: "avfilter.tmix"
plugin not available: "avfilter.w3fdif"
plugin not available: "avfilter.weave"
plugin not available: "avfilter.yadif"
plugin not available: "frei0r.alpha0ps"
plugin not available: "frei0r.alpha0ps"
plugin not available: "frei0r.alphagrad"
plugin not available: "frei0r.alphaspot"
plugin not available: "frei0r.baltan"
plugin not available: "frei0r.bgsubtract0r"
plugin not available: "frei0r.bigsh0t_eq_mask"
plugin not available: "frei0r.bigsh0t_eq_to_rect"
plugin not available: "frei0r.bigsh0t_eq_to_stereo"
plugin not available: "frei0r.bigsh0t_hemi_to_eq"
plugin not available: "frei0r.bigsh0t_rect_to_eq"
plugin not available: "frei0r.bigsh0t_stabilize_360"
plugin not available: "frei0r.bigsh0t_transform_360"
plugin not available: "frei0r.delay0r"
plugin not available: "frei0r.delaygrab"
plugin not available: "frei0r.facebl0r"
plugin not available: "frei0r.facedetect"
plugin not available: "frei0r.hqdn3d"
plugin not available: "frei0r.lightgraffiti"
plugin not available: "frei0r.lightgraffiti"
plugin not available: "frei0r.pr0be"
plugin not available: "frei0r.pr0file"
plugin not available: "frei0r.rgbparade"
plugin not available: "frei0r.scale0tilt"
plugin not available: "frei0r.tehRoxx0r"
plugin not available: "frei0r.vectorscope"
plugin not available: "ladspa"
plugin not available: "ladspa"
plugin not available: "ladspa"
plugin not available: "ladspa.9354877"
plugin not available: "ladspa"
plugin not available: "ladspa"
plugin not available: "ladspa"
plugin not available: "ladspa"
plugin not available: "ladspa"
plugin not available: "ladspa"
plugin not available: "ladspa"
plugin not available: "ladspa"
plugin not available: "movit.blur"
plugin not available: "movit.sharpen"
plugin not available: "movit.diffusion"
plugin not available: "movit.flip"
plugin not available: "movit.glow"
plugin not available: "movit.lift_gamma_gain"
plugin not available: "movit.mirror"
plugin not available: "movit.opacity"
plugin not available: "movit.rect"
plugin not available: "movit.saturation"
plugin not available: "movit.unsharp_mask"
plugin not available: "movit.vignette"
plugin not available: "movit.white_balance"
plugin not available: "rbpitch"
plugin not available: "rbpitch"
plugin not available: "sox"
plugin not available: "sox"
plugin not available: "sox"
plugin not available: "sox"
plugin not available: "sox"
plugin not available: "sox"
plugin not available: "sox"
plugin not available: "timewarp"
plugin not available: "opencv.tracker"
unsupported effect in group "frei0r.alpha0ps" : "/usr/share/kdenlive/effect-templates/secondary_color_correction.xml"
Asset "mask_start-frei0r.alphaspot" has invalid dependency "frei0r.alphaspot" and is going to be removed
plugin not available: "region"
=== /// CANNOT ACCESS SPEECH DICTIONARIES FOLDER
Xlib: extension "DRI2" missing on display ":1".
Xlib: extension "DRI2" missing on display ":1".
QQmlEngine::setContextForObject(): Object already has a QQmlContext
QQmlEngine::setContextForObject(): Object already has a QQmlContext
QQmlEngine::setContextForObject(): Object already has a QQmlContext
QQmlEngine::setContextForObject(): Object already has a QQmlContext
Found FFMpeg binary: "/usr/bin/ffmpeg"

FOUND SUPPORTED CODECS: ("h264_nvenc", "hevc_nvenc")
// FFMPEG ARGS: ("-hide_banner", "-filters")
/// ++ SCALE_NPP NOT SUPPORTED
:::: NOT FOUND DOCUMENT GUIDES !!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!
QQmlEngine::setContextForObject(): Object already has a QQmlContext
qrc:/qml/timeline.qml:502: ReferenceError: proxy is not defined
qrc:/qml/timeline.qml:482: ReferenceError: proxy is not defined
==== NO PREVIOUS TIMELINE
::::::::::: connecting timeline: QUuid("{ea11c2bc-8bb2-43df-9b70-5c59feef00fa}") , DUR: 0
root context get sub model new function
HHHHHHHHHHHH
INVALID BIN PLAYLIST...
=== OPENING FILE WITH TRACKS: 5
:::: FOUND TRACTOR WITH TRACKS: 2


=== MODEL DATA CHANGED: MUTE DONE TRACK NOT FOUND!!!
:::: FOUND TRACTOR WITH TRACKS: 2


=== MODEL DATA CHANGED: MUTE DONE TRACK NOT FOUND!!!
:::: FOUND TRACTOR WITH TRACKS: 2


=== MODEL DATA CHANGED: MUTE DONE TRACK NOT FOUND!!!
:::: FOUND TRACTOR WITH TRACKS: 2


=== MODEL DATA CHANGED: MUTE DONE TRACK NOT FOUND!!!
===== ACTIVATING DOCUMENT: QUuid("{ea11c2bc-8bb2-43df-9b70-5c59feef00fa}")
::::::::::::::::::::::
==== NO PREVIOUS TIMELINE
==== ABORTING NO TIMELINE AVAILABLE
::::::==

Résolutions de conflits de paquets

Description
Si j'utilise le script de rawleenc, j'ai déjà exfatprogs installé. Ca fait un conflit avec exfat-utils insolluble, provocant une erreur, qui n'en est pas une.

Steps to Reproduce
1- Installer arch avec script rawleenc
2- Exécuter architect

Expected Behavior
Ne pas avoir "Erreur - installation failed" en cas de conflit, Mais un message plus explicite "Conflit détecté : proposer ou pas la résolution manuelle", ou un simple commentaire précisant que le paquet déjà présent reste inchangé

Actual Behavior
Mesage d'erreur : Installation failed

Screenshots/Logs
Screenshot_20231129_131424

System Information
Arch - Rawleenc install script

Bash-completion et bluetooth

Salut.

Alors me concernant quand j'ai testé l'installation. Le bluetooth ne s'active pas. Alors que je crois bien avoir vu sa présence dans les scripts. (Sa s'active bien après coup)

Dans le cas où on installe pas fish il n'y a pas le bash-completion d'installé... (Perso c'est le minimum syndical pour moi)

Après j'utilise zsh avec le thème manjaro-zsh-config... que j'aime beaucoup mais je m'égare.

Sinon pour KDE moi j'utilise kwalletmanager pour gérer son trousseau de clé et aussi le yakuake pour avoir la console KDE a la mode quake. (C'est juste une idée comme une autre je ne sais pas si d'autres, utilise ça.)

Un dernier pour la route si tu rajoutes packagekit-qt5, discover est capable d'installer et d'update du package Pacman...( après reboot mais ne concerne pas "aur "donc bon c'est qu'une idée en passant)

Je ferai sûrement des petits ajouts de mon côté dans un fork pour mon utilisation perso ( mais sinon merci pour cette série de script... )

Si jamais j'ai des idées je posterai du merge request plutôt, pour ne pas polluer :)

Ajouter vérification pour multilib

Pour les installations Custom sans passer par archinstall (qui fait chier pour la /boot de 512m, que je trouve insuffisante), ce serait bien d'ajouter un check pour multilib si il est bien activé.

Cela permet aussi d'éviter des problèmes pour veux qui l'oublient dans archinstall

Variable NVIDIA/AMD/INTEL not in a function

Les variables restent vident dans les fonctions si déclarés en dehors de la fonction.
Sinon il faut les exporter.

Idem pour appeler une fonction dans une autre fonction

(Si tu sais déclarer une fonction exportée dans faire export -f ça m'intéresse ^^)

NVIDIA=false
AMD=false
INTEL=false

detect_graphics_card() {
print_step "Choix de la carte graphique"
if safe_ask "Voulez-vous installer les pilotes NVIDIA ?"; then
NVIDIA=true
fi
if safe_ask "Voulez-vous installer les pilotes AMD ?"; then
AMD=true
fi
if safe_ask "Voulez-vous installer les pilotes Intel ?"; then
INTEL=true
fi
}

Ajout de fonts pour Steam ?

Vérifier que toutes les ttf importantes sont installés mais je connais pas les paquets essentiels

Installer les fonts Microsoft ?

A contrôler...

Paquets manquants

Paquets AUR utiles manquants :

Rebuild-detector
Reflector-simple

Pour AMD :

amd-vulkan-prefixes (je dois vérifier si encore obligatoire/soucis de perfs)

Gestion de la langue

je galere a tout mettre en francais. l installe de base ne me permet pas de faire un loadkeys fr
J ai du faire :
localectl list-keymaps
localectl set-x11-keymap fr
localectl set-locale LANG=fr_FR
modifier le /etc/locale.conf et faire un locale-gen

Et meme comme ca j ai encore le terminal en anglais
l automatiser serait top
Peut etre y a t il une maniere plus simple

Conseil : structurer le script en plusieurs fichier

Hello une petite idée pourquoi ne pas scinder le script en plusieurs fichiers
Alors attention l'idée n'est pas de complexifié pour le plaisir mais au contraire de structurer et d'être plus efficace

Petit exemple

post-installation // Général

detect_graphics_card() {
    local marqueGPU
    print_step "Choix de la/les carte(s) graphique(s)"
    print_step "1. NVIDIA"
    print_step "2. AMD"
    print_step "3. INTEL"
    read -p "Quelle est la marque de votre carte graphique : 1, 2 ou 3 ?" marqueGPU

   if [[ "${marqueGPU}" == "1" then
      return "NVIDIA"
   fi
   if [[ "${marqueGPU}" == "2" then
      return "AMD"
   fi
   if [[ "${marqueGPU}" == "3" then
      return "INTEL"
   fi
}

install_graphic_driver {
   local marqueDriver = detect_graphics_card()
   if [[ "${marqueDriver }" == "NVIDIA" then
      safe_run ./post-nvidia
   fi
    if [[ "${marqueDriver }" == "AMD" then
      safe_run ./post-amd
   fi
    if [[ "${marqueDriver }" == "Intel" then
      safe_run ./post-intel
   fi
}

post-nvidia //Ne contiens que ce qui concerne NVIDIA

install_nvidia_drivers() {
    if [[ "${NVIDIA}" == true ]]; then
        print_step "Installation des pilotes NVIDIA"
        if [[ "${GRUB}" == true ]]; then
            safe_run sudo sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet"$/GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet nvidia-drm.modeset=1"/' /etc/default/grub
            safe_run sudo grub-mkconfig -o /boot/grub/grub.cfg
        else
            safe_run sudo sed -i '/^options root=/ s/$/ nvidia-drm.modeset=1/' /boot/loader/entries/*.conf
        fi

        print_step "Charger en priorité les pilotes NVIDIA"
        if [[ $(cat /etc/mkinitcpio.conf | grep -c "MODULES=(btrfs)") -eq 1 ]]; then
            safe_run sudo sed -i 's/MODULES=(btrfs)/MODULES=(btrfs nvidia nvidia_modeset nvidia_uvm nvidia_drm)/' /etc/mkinitcpio.conf
        else
            safe_run sudo sed -i 's/MODULES=()/MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)/' /etc/mkinitcpio.conf
        fi

        print_step "Installation des pilotes NVIDIA"
        safe_run yay -S --needed --noconfirm nvidia-dkms nvidia-utils lib32-nvidia-utils nvidia-settings vulkan-icd-loader lib32-vulkan-icd-loader cuda

        safe_run sudo mkdir -p /etc/pacman.d/hooks/
        safe_append_to_file "[Trigger]
        Operation=Install
        Operation=Upgrade
        Operation=Remove
        Type=Package
        Target=nvidia-dkms
        Target=usr/lib/modules/*/vmlinuz

        [Action]
        Description=Update NVIDIA module in initcpio
        Depends=mkinitcpio
        When=PostTransaction
        NeedsTargets
        Exec=/bin/sh -c 'while read -r trg; do case \$trg in linux) exit 0; esac; done; /usr/bin/mkinitcpio -P'" "/etc/pacman.d/hooks/nvidia.hook"
    fi
}

post-amd //Ne contiens que ce qui concerne AMD

install_amd_drivers() {
    if [[ "${AMD}" == true ]]; then
        print_step "Installation des pilotes AMD"
        safe_run yay -S --needed --noconfirm mesa lib32-mesa vulkan-radeon lib32-vulkan-radeon vulkan-icd-loader lib32-vulkan-icd-loader
    fi
}

post-intel //Ne contiens que ce qui concerne INTEL

install_intel_drivers() {
    if [[ "${INTEL}" == true ]]; then
        print_step "Installation des pilotes Intel"
        safe_run yay -S --needed --noconfirm mesa lib32-mesa vulkan-intel lib32-vulkan-intel vulkan-icd-loader lib32-vulkan-icd-loader
    fi
}

Voila ce n'est qu'une idée et on pourrais faire cela pour optimisation KDE / Gnome / Mate (oui oui je vous parlerais toujours de Mate)

De plus on pourrais faire des truc genre si j'install Nvidia et que j'install KDE il suffirait :
De récupérer la variable marqueDriver (via un return dans la fonction install_graphic_driver )
dans le script KDE on vérifie si NVIDIA (via cette variable en return dela fonction install_graphic_driver)
si oui on fait les petite opti pour Wayland qui sont dédié au cas particulier ou on install KDE Avec Nvidia

L'idée est d'avoir un fichier par utilisation et imaginons demain le script intel bug ben suffit de modifier juste le post-installation pour faire en sorte qu'il n'exécute plus le fichier post-intel le temps de débugger cela

Signature : Monsieur Pavé :-)

edit : j'ai enfin compris comment fonctionne la baliste code 8-)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.