From fb04ecd1ed9857b7f72ffe9e7453fa214ff41ca6 Mon Sep 17 00:00:00 2001 From: "markus.block" Date: Sun, 22 Feb 2026 17:27:33 +0100 Subject: [PATCH] install-aptos-fonts (#3) Reviewed-on: https://gitea.netzwissen.de/lxcafe/lxcafe/pulls/3 --- README.md | 9 ++++- ...tallationsarbeiten_LC_Esslingen_XFCE_v8.sh | 35 ++++++++++++++++++- post_installation_script/README.md | 8 ++++- .../02_start_container_with_image.sh | 7 ++-- post_installation_script_test/README.md | 24 ++++++++----- 5 files changed, 69 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 1b29ccb..a12da14 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,11 @@ # lxcafe Repository +Linux Mint post-installation scripts. -Ablage für Code Schnipsel \ No newline at end of file +## Structure + +- **post_installation_script/** - Main post-installation scripts for Linux Mint XFCE +- **post_installation_script_test/** - Docker based testing environment for script development +- **.agents/** - Agent instructions for AI-assisted development + +See individual README files in each directory for detailed information on usage and development. \ No newline at end of file diff --git a/post_installation_script/20251212_Nachinstallationsarbeiten_LC_Esslingen_XFCE_v8.sh b/post_installation_script/20251212_Nachinstallationsarbeiten_LC_Esslingen_XFCE_v8.sh index 12ac3af..783d988 100644 --- a/post_installation_script/20251212_Nachinstallationsarbeiten_LC_Esslingen_XFCE_v8.sh +++ b/post_installation_script/20251212_Nachinstallationsarbeiten_LC_Esslingen_XFCE_v8.sh @@ -35,6 +35,11 @@ echo " # Vorausgesetzt wird eine Installation von Linux Mint XFCE. # Das Skript bietet -teilweise interaktiv- die Installation von zusätzlichen Programmen an, die Linux Mint XFCE nicht standardmässig mitbringt. # +# Folgende Dateien werden aus dem Skript referenziert und werden im selben Verzeichnis wie dieses Skript erwartet +## - Microsoft Aptos Fonts.zip +## - google-fonts.tar.gz +## - xfce4-panel.xml +# # Zu Beginn werden die folgenden zusätzlichen Programme in einem Schritt installiert: # # xfce4-goodies (zusätzliche Elemente für die Taskleiste) @@ -54,6 +59,8 @@ echo " # # sudo apt-get update +# needed by script to unzip Aptos font +sudo apt install unzip -y sSuffixDate=$(date '+%Y-%m-%d_%H:%M:%S') @@ -61,7 +68,7 @@ sSuffixDate=$(date '+%Y-%m-%d_%H:%M:%S') echo if question_answered_with_yes "#### Installiere Zusatzprogramme für 64 bit Mint XFCE? ####"; then echo "#### 64 bit Mint XFCE ####" - sudo apt -y install xfce4-goodies clementine vlc htop hardinfo font-manager asunder gtkhash xfce4-panel-profiles + sudo apt -y install xfce4-goodies clementine vlc htop hardinfo font-manager asunder gtkhash xfce4-panel-profiles unzip bIsVlcInstalled=true fi @@ -106,6 +113,32 @@ if question_answered_with_yes " ### Installiere M$ Schriften? ###"; then sudo apt install ttf-mscorefonts-installer fi +echo +echo +echo " ## Microsoft Aptos Schriftarten installieren:" +if question_answered_with_yes " ### Installiere Aptos Schriften? ###"; then + echo + echo "### Aptos Schriften ###" + + _aptos_zip="Microsoft Aptos Fonts.zip" + if [ ! -f "$_aptos_zip" ]; then + echo "" + echo "$_aptos_zip nicht gefunden." + echo "Bitte laden Sie die Datei von Microsoft herunter und legen Sie sie im selben Verzeichnis wie dieses Skript ab." + else + echo + echo "Entpacke das Archiv..." + unzip -o "$_aptos_zip" + echo "Erstelle /usr/share/fonts/truetype/aptos/" + sudo mkdir -p /usr/share/fonts/truetype/aptos + echo "Installiere alle .ttf Schriften..." + find . -name "*.ttf" -exec sudo install -m644 {} /usr/share/fonts/truetype/aptos/ \; 2>/dev/null || true + echo "Aktualisiere den Font-Cache" + fc-cache -f + echo "Fertig! Aptos Schriftarten sind installiert." + fi +fi + echo echo echo " ## freie Google-Schriften als Ersatz für aktuelle MS-Standardschriften installieren:" diff --git a/post_installation_script/README.md b/post_installation_script/README.md index c45a9c5..1860907 100644 --- a/post_installation_script/README.md +++ b/post_installation_script/README.md @@ -1,6 +1,12 @@ # Post-Installation Script -This directory contains all files belonging to the Linux Mint XFCE post-installation script. +This directory contains files belonging to the Linux Mint XFCE post-installation script. + +## Prerequisites to run the script +- Linux Mint XFCE installed and running +- Internet connection for downloading packages and updates +- Script file: `20251212_Nachinstallationsarbeiten_LC_Esslingen_XFCE_v8.sh` copied to Desktop +- External files are referenced by the script, please check header comments in the script ## Usage diff --git a/post_installation_script_test/02_start_container_with_image.sh b/post_installation_script_test/02_start_container_with_image.sh index 861a518..419c8c1 100755 --- a/post_installation_script_test/02_start_container_with_image.sh +++ b/post_installation_script_test/02_start_container_with_image.sh @@ -1,7 +1,8 @@ #!/bin/bash -# Start container with the test image (interactive shell) docker run -it --rm \ --tmpfs /tmp:rw \ - -v "$(pwd)/../post_installation_script/":/workspace/:ro \ - mint-script-test + --entrypoint bash \ + -v "$(pwd)/../post_installation_script/":/workspace-source:ro \ + mint-script-test \ + -c 'cp -r /workspace-source/* /workspace/ && cd /workspace && exec bash' diff --git a/post_installation_script_test/README.md b/post_installation_script_test/README.md index 23d005b..dd3b61e 100644 --- a/post_installation_script_test/README.md +++ b/post_installation_script_test/README.md @@ -1,6 +1,12 @@ # Post-Installation Script Testing -This directory contains everything needed to test the post-installation script in a safe, isolated container environment. +This directory contains a quick (but not complete) test for post-installation script in a safe, isolated container environment. +The container has no UI installed and therefore can't test the UI related parts of the script (Taskbar adaptions), but +it allows to test the logic, prompts, and error handling of the script. + +## Prerequisites +- Docker or Podman installed on the host system. If Podman is used, an alias for `docker` command should be set up (e.g. `alias docker=podman`) +- in order to use the provided scripts without modification. ## Contents @@ -32,7 +38,7 @@ Run the prepared shell script to build the image ```bash cd post_installation_script_test -sh 01_create_image.sh +bash 01_create_image.sh ``` ### Start a container for testing @@ -41,23 +47,25 @@ image and remove container after it is stopped. After container is started an in ```bash cd post_installation_script_test -sh 02_start_container_with_image.sh +bash 02_start_container_with_image.sh ``` ### Test the script file in the running container -After container is started an interactive session was started in the container and the script can be started for testing. -If script is changed on the host it just needs to be restarted in the container to reflect the changes. -This works because to folder is mounted into the container. +After container is started an interactive session was started in the container and the script can be started for testing. +The source script folder is mounted read-only to `/workspace-source` and contents are copied to `/workspace` at container startup. +To test changes made on the host, restart the container - it will copy the updated files. ```bash ls -al -sh .sh +bash .sh ``` ## Security Notes -- The script is mounted read-only (`:ro` flag) to prevent container from modifying host files +- The source script folder is mounted read-only to `/workspace-source` +- Contents are automatically copied to `/workspace` (writable) at container startup +- This keeps the host script folder untouched while allowing the script to write files (e.g., font extraction) - All apt installations are real but isolated in the container - Use `--tmpfs /tmp:rw` for any temporary writes inside the container - Container is automatically removed after exit (`--rm` flag)