diff --git a/system_files/bluefin/usr/share/ublue-os/motd/env.sh b/system_files/bluefin/usr/share/ublue-os/motd/env.sh old mode 100755 new mode 100644 index 808d0db4..c625ae74 --- a/system_files/bluefin/usr/share/ublue-os/motd/env.sh +++ b/system_files/bluefin/usr/share/ublue-os/motd/env.sh @@ -1,6 +1,7 @@ #!/usr/bin/env sh # KEEP THIS SMALL # This will run on every shell that a user starts up. + +export MOTD_DIRECTORY="/usr/share/ublue-os/motd/" export MOTD_IMAGE_NAME="$(jq -rc '."image-ref"' "${MOTD_IMAGE_INFO_FILE:-/usr/share/ublue-os/image-info.json}" | sed 's@ostree-image-signed:docker://@@')" export MOTD_IMAGE_TAG="$(jq -rc '."image-tag"' "${MOTD_IMAGE_INFO_FILE:-/usr/share/ublue-os/image-info.json}")" -export MOTD_TIP="${MOTD_TIP:-"$(/usr/bin/cat "${MOTD_TIP_DIRECTORY:-/usr/share/ublue-os/motd/tips}"/*.md 2>/dev/null | shuf -n 1)"}" diff --git a/system_files/bluefin/usr/share/ublue-os/motd/lang/en.json b/system_files/bluefin/usr/share/ublue-os/motd/lang/en.json new file mode 100644 index 00000000..004f8890 --- /dev/null +++ b/system_files/bluefin/usr/share/ublue-os/motd/lang/en.json @@ -0,0 +1,12 @@ +{ + "welcome": "Welcome to Bluefin", + "cmd": "Command", + "desc": "Description", + "choose": "Show available commands", + "toggle": "Toggle this banner on/off", + "bling": "Enable terminal bling", + "brew": "Manage command line packages", + "issues": "Issues", + "askbluefin": "Ask Bluefin", + "docs": "Documentation" +} diff --git a/system_files/bluefin/usr/share/ublue-os/motd/lang/fr.json b/system_files/bluefin/usr/share/ublue-os/motd/lang/fr.json new file mode 100644 index 00000000..fba3af62 --- /dev/null +++ b/system_files/bluefin/usr/share/ublue-os/motd/lang/fr.json @@ -0,0 +1,12 @@ +{ + "welcome": "Bienvenue sur Bluefin", + "cmd": "Commande", + "desc": "Description", + "choose": "Affiche les commandes disponibles", + "toggle": "Active/Désactive cette bannière", + "bling": "Active le bling du terminal", + "brew": "Gère les paquets de la ligne de commande", + "issues": "Signaler un problème", + "askbluefin": "Consulter Bluefin", + "docs": "Documentation " +} diff --git a/system_files/bluefin/usr/share/ublue-os/motd/template.md b/system_files/bluefin/usr/share/ublue-os/motd/template.md index c986d0dc..25de3d44 100644 --- a/system_files/bluefin/usr/share/ublue-os/motd/template.md +++ b/system_files/bluefin/usr/share/ublue-os/motd/template.md @@ -1,16 +1,16 @@ -# 󱍢 Welcome to Bluefin +# 󱍢 ${_welcome} 󱋩 `${MOTD_IMAGE_NAME}:${MOTD_IMAGE_TAG}` -|  Command | Description | +|  ${_cmd} | ${_desc} | | ------- | ----------- | -| `ujust --choose` | Show available commands | -| `ujust toggle-user-motd` | Toggle this banner on/off | -| `ujust bluefin-cli` | Enable terminal bling | -| `brew help` | Manage command line packages | +| `ujust --choose` | ${_choose} | +| `ujust toggle-user-motd` | ${_toggle} | +| `ujust bluefin-cli` | ${_bling} | +| `brew help` | ${_brew} | ${MOTD_TIP} -- **󰊤** [Issues](https://issues.projectbluefin.io) -- **󰊤** [Ask Bluefin](https://ask.projectbluefin.io) -- **󰈙** [Documentation](https://docs.projectbluefin.io) +- **󰊤** [${_issues}](https://issues.projectbluefin.io) +- **󰊤** [${_askbluefin}](https://ask.projectbluefin.io) +- **󰈙** [${_docs}](https://docs.projectbluefin.io) diff --git a/system_files/bluefin/usr/share/ublue-os/motd/tips/10-tips.md b/system_files/bluefin/usr/share/ublue-os/motd/tips/tips-en.md similarity index 100% rename from system_files/bluefin/usr/share/ublue-os/motd/tips/10-tips.md rename to system_files/bluefin/usr/share/ublue-os/motd/tips/tips-en.md diff --git a/system_files/bluefin/usr/share/ublue-os/motd/tips/tips-fr.md b/system_files/bluefin/usr/share/ublue-os/motd/tips/tips-fr.md new file mode 100644 index 00000000..4c12ec8b --- /dev/null +++ b/system_files/bluefin/usr/share/ublue-os/motd/tips/tips-fr.md @@ -0,0 +1,26 @@ +Bluefin est votre passerelle vers le Cloud Native - rejoignez la communauté sur [landscape.cncf.io](https://l.cncf.io) +Vous aimez votre bureau ? Faites un don à [GNOME](https://donate.gnome.org) ! +Soutenez l'App Store ! Faites un don à  [Bazaar](https://github.com/kolunmi/bazaar) ! +Vous avez besoin d'informations techniques plus détaillées ? Consultez le [Guide de l'administrateur Bluefin](https://docs.projectbluefin.io/administration) +Vous aimez les serveurs ? Découvrez [ucore](https://github.com/ublue-os/ucore) +Une mise à jour a causé un problème ? Vous pouvez revenir en arrière avec `bootc rollback`. +Utilisez `brew search` et `brew install` pour installer des paquets. Bluefin se chargera automatiquement des mises à jour. +Utilisez `Ctrl`-`Alt`-`Entrée` pour ouvrir rapidement un terminal. +Tailscale est inclus, consultez [leur documentation](https://tailscale.com/kb/1017/install). +`ujust --choose` vous montrera chaque raccourci et le script qu'il exécute. +`tldr vim` vous donnera un aperçu des commandes de base pour un outil donné. +`ujust rebase-helper` peut vous aider à revenir à une image spécifique ou à un canal entièrement différent. Consultez la documentation pour plus d'informations. +`ujust changelogs` affiche un résumé des modifications apportées au paquet depuis la dernière mise à jour. +N'oubliez pas de consulter les [notes de mise à jour](https://github.com/ublue-os/bluefin/releases). +Aidez Bluefin à rester actif et en bonne santé, pensez à faire un [don](https://docs.projectbluefin.io/donations). +Développez avec des devcontainers ! Utilisez les fichiers `devcontainer.json` dans vos projets pour créer des environnements isolés et reproductibles. +Utilisez DistroShelf (dans le logo-menu sous « Containers ») pour créer des conteneurs personnalisés pour différentes distributions. +`ujust jetbrains-toolbox` installe les outils JetBrains dans votre dossier personnel, prêts à l'emploi ! +Des outils de profilage des performances sont intégrés : essayez `sysprof`, `bpftrace` et d'autres outils de débogage. +Changez de shell en toute sécurité : modifiez votre shell dans les paramètres du terminal plutôt que dans l'ensemble du système. +VS Code est livré avec l'extension devcontainers préinstallée, parfaite pour le développement conteneurisé. +Le développement de conteneurs est indépendant du système d'exploitation : vos devcontainers fonctionnent sous Linux, macOS et Windows. +Utilisez `docker compose` pour le développement multi-conteneurs si les devcontainers ne correspondent pas à votre flux de travail. +Ouvrez un dossier avec Clapgrep (disponible dans l'app store Bazaar) pour une recherche ultra puissante. +Bluefin sépare le système d'exploitation de votre environnement de développement : adoptez le flux de travail cloud natif. +Découvrez `ujust bbrew` pour une sélection d'applications de développement et de ligne de commande. diff --git a/system_files/shared/usr/bin/ublue-motd b/system_files/shared/usr/bin/ublue-motd old mode 100755 new mode 100644 index 7749a91e..0b86aa67 --- a/system_files/shared/usr/bin/ublue-motd +++ b/system_files/shared/usr/bin/ublue-motd @@ -1,8 +1,30 @@ #!/usr/bin/env sh -MOTD_TEMPLATE_FILE="${MOTD_TEMPLATE_FILE:-/usr/share/ublue-os/motd/template.md}" . "${MOTD_ENV_SCRIPT:-/usr/share/ublue-os/motd/env.sh}" +# Resolve language +LANG_CODE="${LANG:0:2}" +LANG_FILE="${MOTD_LANG_FOLDER:-./lang/}${LANG_CODE}.json" +if [ ! -f "$LANG_FILE" ]; then + LANG_FILE="${MOTD_LANG_FOLDER:-./lang/}en.json" +fi + +# Load translations as $_key variables +while IFS="=" read -r key value; do + export "_${key}"="$value" +done < <(jq -r 'to_entries[] | "\(.key)=\(.value)"' "$LANG_FILE") + +# Resolve tip +TIPS_FILE="${MOTD_DIRECTORY}tips/tips-${LANG_CODE}.md" +if [ -f "$TIPS_FILE" ]; then + export MOTD_TIP="$(shuf -n 1 "$TIPS_FILE" 2>/dev/null)" +else + export MOTD_TIP="No tips for today :(" +fi + +MOTD_TEMPLATE_FILE="${MOTD_DIRECTORY}template.md" + +# Render if command -v tput >/dev/null 2>&1 && [ -t 1 ]; then cols=$(tput cols 2>/dev/null) envsubst < "${MOTD_TEMPLATE_FILE}" | glow -w $cols -