92 lines
4.4 KiB
Plaintext
92 lines
4.4 KiB
Plaintext
|
|
#!/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."
|