install-aptos-fonts (#3)

Reviewed-on: lxcafe/lxcafe#3
This commit is contained in:
2026-02-22 17:27:33 +01:00
parent 375ad53a4d
commit fb04ecd1ed
5 changed files with 69 additions and 14 deletions
+8 -1
View File
@@ -1,4 +1,11 @@
# lxcafe Repository
Linux Mint post-installation scripts.
Ablage für Code Schnipsel
## 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.
@@ -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:"
+7 -1
View File
@@ -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
@@ -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'
+16 -8
View File
@@ -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 <scriptName>.sh
bash <scriptName>.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)