-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbrowsers.go
More file actions
93 lines (88 loc) · 7.71 KB
/
browsers.go
File metadata and controls
93 lines (88 loc) · 7.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package main
import (
"os"
"path/filepath"
)
func GetSupportedBrowsers() []Browser {
// Define all potential browsers
// Mirroring the list from common.py
// Helper to expand ~
expand := func(path string) string {
if len(path) > 0 && path[0] == '~' {
home, err := os.UserHomeDir()
if err != nil {
return path
}
return filepath.Join(home, path[1:])
}
return path
}
potentialBrowsers := []Browser{
{BrowserTypeFirefox, "Firefox", "firefox", "/usr/bin/firefox"},
{BrowserTypeFirefox, "Firefox Developer Edition", "firefox-developer-edition", "/usr/bin/firefox-developer-edition"},
{BrowserTypeFirefox, "Firefox Nightly", "firefox-nightly", "/usr/bin/firefox-nightly"},
{BrowserTypeFirefox, "Firefox Extended Support Release", "firefox-esr", "/usr/bin/firefox-esr"},
{BrowserTypeFirefoxFlatpak, "Firefox (Flatpak)", "/var/lib/flatpak/exports/bin/org.mozilla.firefox", "/var/lib/flatpak/exports/bin/org.mozilla.firefox"},
{BrowserTypeFirefoxFlatpak, "Firefox (Flatpak)", expand("~/.local/share/flatpak/exports/bin/org.mozilla.firefox"), expand("~/.local/share/flatpak/exports/bin/org.mozilla.firefox")},
{BrowserTypeZenFlatpak, "Zen (Flatpak)", "/var/lib/flatpak/exports/bin/app.zen_browser.zen", "/var/lib/flatpak/exports/bin/app.zen_browser.zen"},
{BrowserTypeZenFlatpak, "Zen (Flatpak)", expand("~/.local/share/flatpak/exports/bin/app.zen_browser.zen"), expand("~/.local/share/flatpak/exports/bin/app.zen_browser.zen")},
{BrowserTypeFirefoxSnap, "Firefox (Snap)", "/snap/bin/firefox", "/snap/bin/firefox"},
{BrowserTypeChromium, "Brave", "brave", "/usr/bin/brave"},
{BrowserTypeChromium, "Brave Browser", "brave-browser", "/usr/bin/brave-browser"},
{BrowserTypeChromium, "Brave (Bin)", "brave-bin", "/usr/bin/brave-bin"},
{BrowserTypeChromium, "Chrome", "google-chrome-stable", "/usr/bin/google-chrome-stable"},
{BrowserTypeChromium, "Chrome (Beta)", "google-chrome-beta", "/usr/bin/google-chrome-beta"},
{BrowserTypeChromium, "Chrome (Flatpak)", "/var/lib/flatpak/exports/bin/com.google.Chrome", "/var/lib/flatpak/exports/bin/com.google.Chrome"},
{BrowserTypeChromium, "Chrome (Flatpak)", expand("~/.local/share/flatpak/exports/bin/com.google.Chrome"), expand("~/.local/share/flatpak/exports/bin/com.google.Chrome")},
{BrowserTypeChromium, "Chromium", "chromium", "/usr/bin/chromium"},
{BrowserTypeChromium, "Chromium (chromium-browser)", "chromium-browser", "/usr/bin/chromium-browser"},
{BrowserTypeChromium, "Chromium (Snap)", "chromium", "/snap/bin/chromium"},
{BrowserTypeChromium, "Chromium (Bin)", "chromium-bin", "/usr/bin/chromium-bin-browser"},
{BrowserTypeChromium, "Ungoogled Chromium", "ungoogled-chromium", "/usr/bin/ungoogled-chromium"},
{BrowserTypeEpiphany, "Epiphany", "epiphany", "/usr/bin/epiphany"},
{BrowserTypeFirefox, "LibreWolf", "librewolf", "/usr/bin/librewolf"},
{BrowserTypeLibreWolfFlatpak, "LibreWolf (Flatpak)", "/var/lib/flatpak/exports/bin/io.gitlab.librewolf-community", "/var/lib/flatpak/exports/bin/io.gitlab.librewolf-community"},
{BrowserTypeLibreWolfFlatpak, "LibreWolf (Flatpak)", expand("~/.local/share/flatpak/exports/bin/io.gitlab.librewolf-community"), expand("~/.local/share/flatpak/exports/bin/io.gitlab.librewolf-community")},
{BrowserTypeFirefox, "Waterfox", "waterfox", "/usr/bin/waterfox"},
{BrowserTypeFirefox, "Waterfox Current", "waterfox-current", "/usr/bin/waterfox-current"},
{BrowserTypeFirefox, "Waterfox Classic", "waterfox-classic", "/usr/bin/waterfox-classic"},
{BrowserTypeFirefox, "Waterfox 3rd Generation", "waterfox-g3", "/usr/bin/waterfox-g3"},
{BrowserTypeFirefox, "Waterfox 4th Generation", "waterfox-g4", "/usr/bin/waterfox-g4"},
{BrowserTypeFirefox, "Floorp", "floorp", "/usr/bin/floorp"},
{BrowserTypeWaterfoxFlatpak, "Waterfox (Flatpak)", "/var/lib/flatpak/exports/bin/net.waterfox.waterfox", "/var/lib/flatpak/exports/bin/net.waterfox.waterfox"},
{BrowserTypeWaterfoxFlatpak, "Waterfox (Flatpak)", expand("~/.local/share/flatpak/exports/bin/net.waterfox.waterfox"), expand("~/.local/share/flatpak/exports/bin/net.waterfox.waterfox")},
{BrowserTypeChromium, "Vivaldi", "vivaldi-stable", "/usr/bin/vivaldi-stable"},
{BrowserTypeChromium, "Vivaldi Snapshot", "vivaldi-snapshot", "/usr/bin/vivaldi-snapshot"},
{BrowserTypeChromium, "Vivaldi (Flatpak)", "/var/lib/flatpak/exports/bin/com.vivaldi.Vivaldi", "/var/lib/flatpak/exports/bin/com.vivaldi.Vivaldi"},
{BrowserTypeChromium, "Vivaldi (Flatpak)", expand("~/.local/share/flatpak/exports/bin/com.vivaldi.Vivaldi"), expand("~/.local/share/flatpak/exports/bin/com.vivaldi.Vivaldi")},
{BrowserTypeChromium, "Microsoft Edge", "microsoft-edge-stable", "/usr/bin/microsoft-edge-stable"},
{BrowserTypeChromium, "Microsoft Edge Beta", "microsoft-edge-beta", "/usr/bin/microsoft-edge-beta"},
{BrowserTypeChromium, "Microsoft Edge Dev", "microsoft-edge-dev", "/usr/bin/microsoft-edge-dev"},
{BrowserTypeChromium, "FlashPeak Slimjet", "flashpeak-slimjet", "/usr/bin/flashpeak-slimjet"},
{BrowserTypeChromium, "Ungoogled Chromium (Flatpak)", "/var/lib/flatpak/exports/bin/io.github.ungoogled_software.ungoogled_chromium", "/var/lib/flatpak/exports/bin/io.github.ungoogled_software.ungoogled_chromium"},
{BrowserTypeChromium, "Ungoogled Chromium (Flatpak)", expand("~/.local/share/flatpak/exports/bin/io.github.ungoogled_software.ungoogled_chromium"), expand("~/.local/share/flatpak/exports/bin/io.github.ungoogled_software.ungoogled_chromium")},
{BrowserTypeChromium, "Chromium (Flatpak)", "/var/lib/flatpak/exports/bin/org.chromium.Chromium", "/var/lib/flatpak/exports/bin/org.chromium.Chromium"},
{BrowserTypeChromium, "Chromium (Flatpak)", expand("~/.local/share/flatpak/exports/bin/org.chromium.Chromium"), expand("~/.local/share/flatpak/exports/bin/org.chromium.Chromium")},
{BrowserTypeFalkon, "Falkon", "falkon", "/usr/bin/falkon"},
{BrowserTypeChromium, "Edge (Flatpak)", "/var/lib/flatpak/exports/bin/com.microsoft.Edge", "/var/lib/flatpak/exports/bin/com.microsoft.Edge"},
{BrowserTypeChromium, "Edge (Flatpak)", expand("~/.local/share/flatpak/exports/bin/com.microsoft.Edge"), expand("~/.local/share/flatpak/exports/bin/com.microsoft.Edge")},
{BrowserTypeChromium, "Brave (Flatpak)", "/var/lib/flatpak/exports/bin/com.brave.Browser", "/var/lib/flatpak/exports/bin/com.brave.Browser"},
{BrowserTypeChromium, "Brave (Flatpak)", expand("~/.local/share/flatpak/exports/bin/com.brave.Browser"), expand("~/.local/share/flatpak/exports/bin/com.brave.Browser")},
{BrowserTypeChromium, "Yandex", "yandex-browser", "/usr/bin/yandex-browser"},
{BrowserTypeFalkon, "Falkon (Flatpak)", "/var/lib/flatpak/exports/bin/org.kde.falkon", "/var/lib/flatpak/exports/bin/org.kde.falkon"},
{BrowserTypeFalkon, "Falkon (Flatpak)", expand("~/.local/share/flatpak/exports/bin/org.kde.falkon"), expand("~/.local/share/flatpak/exports/bin/org.kde.falkon")},
{BrowserTypeChromium, "Naver Whale", "naver-whale-stable", "/usr/bin/naver-whale-stable"},
{BrowserTypeChromium, "Yandex (Flatpak)", "/var/lib/flatpak/exports/bin/ru.yandex.Browser", "/var/lib/flatpak/exports/bin/ru.yandex.Browser"},
{BrowserTypeChromium, "Yandex (Flatpak)", expand("~/.local/share/flatpak/exports/bin/ru.yandex.Browser"), expand("~/.local/share/flatpak/exports/bin/ru.yandex.Browser")},
{BrowserTypeChromium, "Thorium", "thorium-browser", "/usr/bin/thorium-browser"},
{BrowserTypeFloorpFlatpak, "Floorp (Flatpak)", "/var/lib/flatpak/exports/bin/one.ablaze.floorp", "/var/lib/flatpak/exports/bin/one.ablaze.floorp"},
{BrowserTypeFloorpFlatpak, "Floorp (Flatpak)", expand("~/.local/share/flatpak/exports/bin/one.ablaze.floorp"), expand("~/.local/share/flatpak/exports/bin/one.ablaze.floorp")},
}
var supported []Browser
for _, b := range potentialBrowsers {
if _, err := os.Stat(b.TestPath); err == nil {
supported = append(supported, b)
}
}
return supported
}