|
1 | 1 | #!/bin/bash |
2 | 2 |
|
3 | | -# Force Brave for webapps (--app flag only works with Chromium-based browsers) |
4 | | -# Try Flatpak first, then DNF package |
5 | | -if [[ -f "$HOME/.local/share/applications/com.brave.Browser.desktop" ]] || [[ -f "/var/lib/flatpak/exports/share/applications/com.brave.Browser.desktop" ]]; then |
6 | | - browser="com.brave.Browser.desktop" |
7 | | -elif [[ -f "$HOME/.local/share/applications/brave-browser.desktop" ]] || [[ -f "/usr/share/applications/brave-browser.desktop" ]]; then |
8 | | - browser="brave-browser.desktop" |
| 3 | +browser=$(xdg-settings get default-web-browser 2>/dev/null) |
| 4 | + |
| 5 | +# Check if browser is installed via Flatpak |
| 6 | +is_flatpak() { |
| 7 | + grep -q "^Exec=.*flatpak run" {~/.local,/usr,/var/lib/flatpak/exports}/share/applications/"$browser" 2>/dev/null |
| 8 | +} |
| 9 | + |
| 10 | +# Determine browser type |
| 11 | +case $browser in |
| 12 | + google-chrome*|brave*|microsoft-edge*|opera*|vivaldi*|chromium*|helium*) |
| 13 | + browser_type="chromium" |
| 14 | + flags="--incognito --app=" |
| 15 | + ;; |
| 16 | + firefox*|zen*|floorp*|librewolf*) |
| 17 | + browser_type="firefox" |
| 18 | + flags="-kiosk -private-window " |
| 19 | + ;; |
| 20 | + *) |
| 21 | + exec setsid flatpak run com.brave.Browser --incognito --app="$1" "${@:2}" |
| 22 | + ;; |
| 23 | +esac |
| 24 | + |
| 25 | +# Launch browser |
| 26 | +if is_flatpak; then |
| 27 | + # Extract app ID - look for pattern with dots (like app.zen_browser.zen or com.brave.Browser) |
| 28 | + app_id=$(grep "^Exec=" {~/.local,/usr,/var/lib/flatpak/exports}/share/applications/"$browser" 2>/dev/null | head -1 | grep -oE '[a-z]+\.[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+' | head -1) |
| 29 | + exec setsid flatpak run "$app_id" $flags"$1" "${@:2}" |
9 | 30 | else |
10 | | - echo "[ERROR] Brave browser not found. Webapps require Brave browser." |
11 | | - echo "[ERROR] Install with: sudo dnf install brave-browser" |
12 | | - echo "[ERROR] Or: flatpak install flathub com.brave.Browser" |
13 | | - exit 1 |
| 31 | + browser_bin=$(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,/usr}/share/applications/"$browser" 2>/dev/null | head -1) |
| 32 | + exec setsid "$browser_bin" $flags"$1" "${@:2}" |
14 | 33 | fi |
15 | | - |
16 | | -exec setsid $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,/usr,/var/lib/flatpak/exports}/share/applications/$browser 2>/dev/null | head -1) --app="$1" "${@:2}" |
|
0 commit comments