alfred-linux/config/hooks/live/0200-alfred-browser.hook.chroot
Alfred 18c2bfd5c6 Initial commit: Alfred Linux v4.0 build system
- build-unified.sh: master build script (16 hooks, kernel 7.0.0-rc7)
- config/package-lists: Debian package selections
- assets: Alfred Commander extension tarball
- docs: ARM64 investigation, kernel upgrade roadmap
2026-04-07 11:38:44 -04:00

92 lines
4.4 KiB
Bash

#!/bin/bash
# ═══════════════════════════════════════════════════════════════
# Alfred Linux v2.0-b2 — Alfred Browser Integration Hook
#
# Installs Alfred Browser, removes Firefox ESR, sets defaults.
# BUILD: v2.0-b2 (Browser)
# ═══════════════════════════════════════════════════════════════
set -e
echo "[Alfred Linux v2.0-b2] Installing Alfred Browser..."
# ── 1. Install Alfred Browser dependencies ──
# The .deb depends on libwebkit2gtk-4.1-0, libgtk-3-0, libayatana-appindicator3-1
apt-get install -y libwebkit2gtk-4.1-0 libgtk-3-0 libayatana-appindicator3-1 2>/dev/null || true
# ── 2. Install Alfred Browser from packages.chroot ──
# live-build should auto-install .debs from config/packages.chroot/
# But as a safety net, install manually if not already present
if ! dpkg -l alfred-browser 2>/dev/null | grep -q '^ii'; then
BROWSER_DEB=$(find / -name "alfred-browser*.deb" -type f 2>/dev/null | head -1)
if [[ -n "$BROWSER_DEB" ]]; then
dpkg -i "$BROWSER_DEB" || apt-get -f install -y
else
echo "[WARN] Alfred Browser .deb not found in ISO — skipping"
fi
fi
# ── 3. Remove Firefox ESR ──
echo "[Alfred Linux v2.0-b2] Removing Firefox ESR..."
apt-get purge -y firefox-esr 2>/dev/null || true
apt-get autoremove -y 2>/dev/null || true
# ── 4. Set Alfred Browser as default ──
if [[ -f /usr/bin/alfred-browser ]]; then
# Register as x-www-browser alternative (priority 200 = higher than any default)
update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/bin/alfred-browser 200 2>/dev/null || true
update-alternatives --set x-www-browser /usr/bin/alfred-browser 2>/dev/null || true
# Set as default web browser via xdg
# Need a proper .desktop file
if [[ -f "/usr/share/applications/Alfred Browser.desktop" ]]; then
# Fix desktop file name to be xdg-compliant (no spaces)
cp "/usr/share/applications/Alfred Browser.desktop" /usr/share/applications/alfred-browser.desktop 2>/dev/null || true
fi
# Ensure desktop file has correct MimeType
if [[ -f /usr/share/applications/alfred-browser.desktop ]]; then
if ! grep -q "MimeType=" /usr/share/applications/alfred-browser.desktop; then
echo "MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp" >> /usr/share/applications/alfred-browser.desktop
fi
# Set categories if missing
if ! grep -q "Categories=" /usr/share/applications/alfred-browser.desktop; then
echo "Categories=Network;WebBrowser;" >> /usr/share/applications/alfred-browser.desktop
fi
fi
# Set via xdg-settings (for the skel user profile)
mkdir -p /etc/skel/.config
echo "text/html=alfred-browser.desktop" > /etc/skel/.config/mimeapps.list
echo "x-scheme-handler/http=alfred-browser.desktop" >> /etc/skel/.config/mimeapps.list
echo "x-scheme-handler/https=alfred-browser.desktop" >> /etc/skel/.config/mimeapps.list
echo "x-scheme-handler/ftp=alfred-browser.desktop" >> /etc/skel/.config/mimeapps.list
echo "application/xhtml+xml=alfred-browser.desktop" >> /etc/skel/.config/mimeapps.list
# Also set system-wide
mkdir -p /usr/share/applications
cat > /usr/share/applications/defaults.list << 'DEFAULTS'
[Default Applications]
text/html=alfred-browser.desktop
x-scheme-handler/http=alfred-browser.desktop
x-scheme-handler/https=alfred-browser.desktop
x-scheme-handler/ftp=alfred-browser.desktop
application/xhtml+xml=alfred-browser.desktop
DEFAULTS
echo "[Alfred Linux v2.0-b2] Alfred Browser set as default browser"
else
echo "[WARN] /usr/bin/alfred-browser not found after install"
fi
# ── 5. XFCE panel web browser launcher ──
# Update XFCE's preferred browser
mkdir -p /etc/skel/.config/xfce4
if [[ -f /etc/skel/.config/xfce4/helpers.rc ]]; then
sed -i 's/WebBrowser=.*/WebBrowser=alfred-browser/' /etc/skel/.config/xfce4/helpers.rc
else
echo "WebBrowser=alfred-browser" > /etc/skel/.config/xfce4/helpers.rc
fi
echo "[Alfred Linux v2.0-b2] Alfred Browser integration complete."