Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions system_files/bluefin/usr/share/ublue-os/just/apps.just
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# vim: set ft=make :

# Install recommended GNOME extensions for Bluefin
[group('Apps')]
install-gnome-extensions:
#!/usr/bin/bash
source /usr/lib/ujust/ujust.sh

if ! gum confirm "These GNOME extensions are not officially supported but are pretty awesome. Continue?" ; then
exit 0
fi

EXTENSIONS=(
"Battery-Health-Charging@maniacx.github.com"
"Bluetooth-Battery-Meter@maniacx.github.com"
"monitor-brightness-volume@ailin.nemui"
"copyous@boerdereinar.dev"
"just-perfection-desktop@just-perfection"
"nightthemeswitcher@romainvigier.fr"
"quicksettings-audio-devices-hider@marcinjahn.com"
"quicksettings-audio-devices-renamer@marcinjahn.com"
"tilingshell@ferrarodomenico.com"
)

echo "${bold}Installing GNOME Extensions...${normal}"
GNOME_VERSION=$(gnome-shell --version | cut -d' ' -f3 | cut -d'.' -f1)

for UUID in "${EXTENSIONS[@]}"; do
echo "Installing ${UUID%%@*}..."
# URL encode the UUID for the API request
UUID_ENCODED=$(echo -n "$UUID" | jq -sRr @uri)
DOWNLOAD_URL=$(curl -s "https://extensions.gnome.org/extension-info/?uuid=${UUID_ENCODED}&shell_version=${GNOME_VERSION}" | jq -r '.download_url')

if [ "$DOWNLOAD_URL" = "null" ] || [ -z "$DOWNLOAD_URL" ]; then
echo "${red}Failed: ${UUID%%@*}${normal}"
continue
fi

curl -sL "https://extensions.gnome.org${DOWNLOAD_URL}" -o /tmp/${UUID}.zip && \
gnome-extensions install --force /tmp/${UUID}.zip && \
rm -f /tmp/${UUID}.zip || echo "${red}Failed: ${UUID%%@*}${normal}"

# Enable all except Just Perfection
[ "$UUID" != "just-perfection-desktop@just-perfection" ] && \
gnome-extensions enable "$UUID" 2>/dev/null
done

echo ""
echo "${bold}Installation complete!${normal}"
echo "Just Perfection installed but not enabled (configure manually via Extension Manager)."
echo "${bold}NOTE:${normal} Log out and back in for extensions to fully activate."