|
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" |
9 | | -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 |
14 | | -fi |
| 3 | +browser=$(xdg-settings get default-web-browser 2>/dev/null) |
15 | 4 |
|
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}" |
| 5 | +# Chromium-based browsers support --app flag |
| 6 | +chromium_browsers="google-chrome*|brave-browser*|com.brave.Browser*|microsoft-edge*|opera*|vivaldi*|chromium*" |
| 7 | + |
| 8 | +# Firefox-based browsers support -kiosk flag |
| 9 | +firefox_browsers="firefox*|zen-browser*|app.zen_browser.zen*|floorp*|librewolf*" |
| 10 | + |
| 11 | +if [[ $browser =~ $chromium_browsers ]]; then |
| 12 | + browser_type="chromium" |
| 13 | +elif [[ $browser =~ $firefox_browsers ]]; then |
| 14 | + browser_type="firefox" |
| 15 | + |
| 16 | +# Launch based on browser type and installation method |
| 17 | +case "$browser_type" in |
| 18 | + chromium) |
| 19 | + if [[ $browser == com.brave.Browser* ]]; then |
| 20 | + # Flatpak Brave |
| 21 | + exec setsid flatpak run com.brave.Browser --incognito --app="$1" "${@:2}" |
| 22 | + else |
| 23 | + # Regular Chromium-based browser |
| 24 | + browser_bin=$(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,/usr}/share/applications/$browser 2>/dev/null | head -1) |
| 25 | + exec setsid "$browser_bin" --incognito --app="$1" "${@:2}" |
| 26 | + fi |
| 27 | + ;; |
| 28 | + firefox) |
| 29 | + if [[ $browser == app.zen_browser.zen* ]]; then |
| 30 | + # Flatpak Zen Browser |
| 31 | + exec setsid flatpak run app.zen_browser.zen -kiosk -private-window "$1" "${@:2}" |
| 32 | + else |
| 33 | + # Regular Firefox-based browser |
| 34 | + browser_bin=$(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,/usr}/share/applications/$browser 2>/dev/null | head -1) |
| 35 | + exec setsid "$browser_bin" -kiosk -private-window "$1" "${@:2}" |
| 36 | + fi |
| 37 | + ;; |
| 38 | +esac |
0 commit comments