From df6bc8c3b400e68cf3743c6af9519f589aa33cfe Mon Sep 17 00:00:00 2001 From: randogoth Date: Sat, 22 Nov 2025 14:31:02 +0200 Subject: [PATCH] removed docker and code, added flatpaks --- .../system/bluefin-icons-ensure.service | 14 ++++++ .../bluefin-icons-ensure.service | 1 + .../share/bluefin-icons/bls-add-bluefin.sh | 30 ++++++++++++ .../share/bluefin-icons/bluefin-icons.conf | 6 +++ .../usr/share/bluefin-icons/bluefin.png | Bin 0 -> 1231 bytes .../system/usr/share/bluefin-icons/install.sh | 46 ++++++++++++++++++ recipes/recipe.yml | 32 ++++++++---- 7 files changed, 120 insertions(+), 9 deletions(-) create mode 100644 files/system/etc/systemd/system/bluefin-icons-ensure.service create mode 120000 files/system/etc/systemd/system/multi-user.target.wants/bluefin-icons-ensure.service create mode 100755 files/system/usr/share/bluefin-icons/bls-add-bluefin.sh create mode 100644 files/system/usr/share/bluefin-icons/bluefin-icons.conf create mode 100644 files/system/usr/share/bluefin-icons/bluefin.png create mode 100755 files/system/usr/share/bluefin-icons/install.sh diff --git a/files/system/etc/systemd/system/bluefin-icons-ensure.service b/files/system/etc/systemd/system/bluefin-icons-ensure.service new file mode 100644 index 0000000..6837b20 --- /dev/null +++ b/files/system/etc/systemd/system/bluefin-icons-ensure.service @@ -0,0 +1,14 @@ +[Unit] +Description=Ensure Bluefin GRUB icon is installed when a GRUB theme exists +ConditionPathExists=/boot/grub2/user.cfg +After=local-fs.target + +[Service] +Type=oneshot +ExecStart=/usr/share/bluefin-icons/install.sh +SuccessExitStatus=0 3 +StandardOutput=journal +StandardError=journal + +[Install] +WantedBy=multi-user.target diff --git a/files/system/etc/systemd/system/multi-user.target.wants/bluefin-icons-ensure.service b/files/system/etc/systemd/system/multi-user.target.wants/bluefin-icons-ensure.service new file mode 120000 index 0000000..1ab8174 --- /dev/null +++ b/files/system/etc/systemd/system/multi-user.target.wants/bluefin-icons-ensure.service @@ -0,0 +1 @@ +../bluefin-icons-ensure.service \ No newline at end of file diff --git a/files/system/usr/share/bluefin-icons/bls-add-bluefin.sh b/files/system/usr/share/bluefin-icons/bls-add-bluefin.sh new file mode 100755 index 0000000..aae1797 --- /dev/null +++ b/files/system/usr/share/bluefin-icons/bls-add-bluefin.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +set -euo pipefail +shopt -s nullglob + +entries_dir="/boot/loader/entries" + +for f in "$entries_dir"/ostree-*.conf "$entries_dir"/*-ostree-*.conf; do + [ -f "$f" ] || continue + + # Already correct? skip + if grep -qxE 'grub_class[[:space:]]+bluefin' "$f"; then + continue + fi + + tmp="$(mktemp)" + if grep -qE '^grub_class[[:space:]]+' "$f"; then + sed -E 's/^grub_class[[:space:]].*/grub_class bluefin/' "$f" >"$tmp" + else + awk '1; /^title[[:space:]]/{print "grub_class bluefin";}' "$f" >"$tmp" + fi + + if ! cmp -s "$f" "$tmp"; then + chmod --reference="$f" "$tmp" + chown --reference="$f" "$tmp" + command -v chcon >/dev/null 2>&1 && chcon --reference="$f" "$tmp" 2>/dev/null || true + mv -f "$tmp" "$f" + else + rm -f "$tmp" + fi +done diff --git a/files/system/usr/share/bluefin-icons/bluefin-icons.conf b/files/system/usr/share/bluefin-icons/bluefin-icons.conf new file mode 100644 index 0000000..c21ab4c --- /dev/null +++ b/files/system/usr/share/bluefin-icons/bluefin-icons.conf @@ -0,0 +1,6 @@ +[Service] +ExecStartPost= +ExecStopPost=/usr/bin/bash --noprofile --norc -lc '/usr/local/sbin/bls-add-bluefin.sh' +StandardOutput=journal +StandardError=journal +Environment=STARSHIP_LOG=off diff --git a/files/system/usr/share/bluefin-icons/bluefin.png b/files/system/usr/share/bluefin-icons/bluefin.png new file mode 100644 index 0000000000000000000000000000000000000000..3cd982be2573e8092e4c1d6eba1a366c4427552a GIT binary patch literal 1231 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?F^X_+~x z3=A3*YbV-z9Cna78XvrLktn;hNa2ZqxjK*7A4RMVXyIBImT~pqlS}#;mnJOPVZpVI zmEB%!HJ{$OT~<4|njWxsY;K;ssC&wf{Yx$=U2A?^w`ceF9o6g{UyUxWStqgJ<+hn# zM~?cGh4SoK#GlAw&{#M#^4J^|)r*BScMl)GzFXt`tD1M`FRp*4!}i1Fk%Y0&?26`! zw994|?}ghV0>e7bcOLiIrSMVtx@iA>3-K7SinJ3x%b#^RA4yu+JJl@BHCTC`THlIU zem|X#B~SeNqxWu!c?vXzSHjYo#d`v_<~?1NoxA zLOVr@rXD!4v4P9v#5(yu{B`BoPnWChU6LU4qONdGzo5bfZj-FO&$VwXdW8@C=ZSf# zTfda=Ox>io?97SE2?^3WcI0KAk}KHB+%li%=9Jiz{=p}nH-0z%wM@sLg8R$5%DtxF z3x6>zS-JWNZ$SY^kC;aF-ov}AZ&m;P?z4Hn{I}ww+lQPE8#6F4uqAoByDv2dy;DN0pSOH1@aX7mP8E(ZbDR2IA zRz#dXKOtx@98@#gZE zs`IE)d%0)H-APd@ramgcmuftx8&5je@HW*|;D%jb>(mm@OI)5i*QjRpztxu%t*#by z+#{CZqp1GCqvvC0&&O)N+jqA8Eo%CC?8%!|oF%De{J%MVW7-k$^rom_#LQWToH`CT zdK!Pul287_IcMYFB%}1_osAEBaz46Us`HFieLKZOKV7Hf_P=>b)jQ-^>Xx6s|9Hoe zXEH3?Zv8WfWSY9;!h?8^#NSy)ZB87240km$PtwYrcC2B(X0iTeGxLyw1HucKCAQjf z*|7I9es54*aP?bSg7gNy2o@OzIgeMphE~r1qHiBoY-!a@4|hNCP4j`&2c8Q4J%jeC*CFW)mP?Zk+|9f{#rsz3?`&P}$hC&*PubWeKdb*GyPt)rw?Y{y8?5)EvK@S^{oE1HTM;F z*uKz9hj-Pl7FqI#$@BTKpEd9IC;gP1)c5b>uQk82H!eIUlg8{lnWy~_Ts*?ewuti7e`{S8{&739_2EAlpU|{fc^>bP0l+XkKu&2 + exit 3 +fi + +# Drop the Bluefin icon into the active theme. +echo "Copying Bluefin icon to ${icons_dir}" +install -m 644 -D "${script_dir}/bluefin.png" "${icons_dir}/bluefin.png" + +# Install the helper that ensures grub_class bluefin exists. +echo "Installing helper script to /usr/local/sbin" +install -m 755 "${script_dir}/bls-add-bluefin.sh" /usr/local/sbin/bls-add-bluefin.sh + +# Add the rpm-ostree hook and reload systemd. +echo "Installing systemd drop-in for rpm-ostree hook" +install -m 644 -D "${script_dir}/bluefin-icons.conf" /etc/systemd/system/ostree-finalize-staged.service.d/bluefin-icons.conf +systemctl daemon-reload + +# Immediately apply the Bluefin class to existing BLS entries. +echo "Applying grub_class bluefin to existing BLS entries" +/usr/local/sbin/bls-add-bluefin.sh + +# Report completion. +echo "Done. New deployments will keep the Bluefin GRUB icon." diff --git a/recipes/recipe.yml b/recipes/recipe.yml index 4a10377..933a29d 100644 --- a/recipes/recipe.yml +++ b/recipes/recipe.yml @@ -24,21 +24,35 @@ modules: - waydroid remove: packages: + - android-tools + - cockpit-bridge + - cockpit-machines + - cockpit-networkmanager + - cockpit-ostree + - cockpit-podman + - cockpit-selinux + - cockpit-storaged + - cockpit-system - code - docker-ce - docker-ce-cli - docker-ce-rootless-extras - docker-compose-plugin - docker-model-plugin + - containerd + - moby-engine -# - type: default-flatpaks -# configurations: -# - notify: true # Send notification after install/uninstall is finished (true/false) -# scope: system -# # If no repo information is specified, Flathub will be used by default -# install: # system flatpaks we want all users to have and not remove -# - org.mozilla.firefox -# - org.gnome.Loupe -# - scope: user # Also add Flathub user repo, but no user packages + - type: default-flatpaks + configurations: + - notify: true # Send notification after install/uninstall is finished (true/false) + scope: system + # If no repo information is specified, Flathub will be used by default + install: # system flatpaks we want all users to have and not remove + - net.waterfox.waterfox + - com.vscodium.codium + - org.telegram.desktop + remove: # replace default Firefox with Waterfox + - org.mozilla.firefox + - scope: user # Also add Flathub user repo, but no user packages - type: signing # this sets up the proper policy & signing files for signed images to work fully