mirror of
https://github.com/arthur-pbty/arthur-os.git
synced 2026-08-01 20:28:16 +02:00
Install a new default browser (#5627)
This commit is contained in:
Executable
+106
@@ -0,0 +1,106 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# omarchy:summary=Install a supported browser and make it the default
|
||||||
|
# omarchy:args=<chrome|brave|brave-origin|edge|firefox|zen>
|
||||||
|
# omarchy:examples=omarchy install browser firefox | omarchy install browser brave
|
||||||
|
|
||||||
|
make_default() {
|
||||||
|
xdg-settings set default-web-browser "$1"
|
||||||
|
xdg-mime default "$1" x-scheme-handler/http
|
||||||
|
xdg-mime default "$1" x-scheme-handler/https
|
||||||
|
xdg-mime default "$1" text/html
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_policy_directory() {
|
||||||
|
sudo mkdir -p "$1"
|
||||||
|
sudo chmod a+rw "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
announce_default_browser() {
|
||||||
|
echo ""
|
||||||
|
echo "$1 is now the default browser. Start it with Super + Shift + Return."
|
||||||
|
}
|
||||||
|
|
||||||
|
copy_chromium_flags() {
|
||||||
|
mkdir -p ~/.config
|
||||||
|
cp -f "${OMARCHY_PATH:-$HOME/.local/share/omarchy}/config/chromium-flags.conf" "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_firefox_preferences() {
|
||||||
|
local distribution_dir="$1"
|
||||||
|
|
||||||
|
setup_policy_directory "$distribution_dir"
|
||||||
|
sudo cp -f "$OMARCHY_PATH/default/firefox/policies.json" "$distribution_dir/policies.json"
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_firefox_wayland() {
|
||||||
|
mkdir -p ~/.config/environment.d
|
||||||
|
echo "MOZ_ENABLE_WAYLAND=1" > ~/.config/environment.d/omarchy-firefox-wayland.conf
|
||||||
|
}
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
chrome)
|
||||||
|
echo "Installing Chrome..."
|
||||||
|
omarchy-pkg-aur-add google-chrome || exit 1
|
||||||
|
|
||||||
|
setup_policy_directory /etc/opt/chrome/policies/managed
|
||||||
|
copy_chromium_flags ~/.config/chrome-flags.conf
|
||||||
|
make_default google-chrome.desktop
|
||||||
|
omarchy-theme-set-browser
|
||||||
|
announce_default_browser "Chrome"
|
||||||
|
;;
|
||||||
|
edge)
|
||||||
|
echo "Installing Edge..."
|
||||||
|
omarchy-pkg-aur-add microsoft-edge-stable-bin || exit 1
|
||||||
|
|
||||||
|
setup_policy_directory /etc/opt/edge/policies/managed
|
||||||
|
copy_chromium_flags ~/.config/microsoft-edge-stable-flags.conf
|
||||||
|
make_default microsoft-edge.desktop
|
||||||
|
omarchy-theme-set-browser
|
||||||
|
announce_default_browser "Edge"
|
||||||
|
;;
|
||||||
|
brave)
|
||||||
|
echo "Installing Brave..."
|
||||||
|
omarchy-pkg-aur-add brave-bin || exit 1
|
||||||
|
|
||||||
|
setup_policy_directory /etc/brave/policies/managed
|
||||||
|
copy_chromium_flags ~/.config/brave-flags.conf
|
||||||
|
make_default brave-browser.desktop
|
||||||
|
omarchy-theme-set-browser
|
||||||
|
announce_default_browser "Brave"
|
||||||
|
;;
|
||||||
|
brave-origin)
|
||||||
|
echo "Installing Brave Origin..."
|
||||||
|
omarchy-pkg-aur-add brave-origin-beta-bin || exit 1
|
||||||
|
|
||||||
|
setup_policy_directory /etc/brave/policies/managed
|
||||||
|
mkdir -p ~/.config
|
||||||
|
# FIXME: Use normal chromium flags when Brave Origin wrapper has been fixed
|
||||||
|
echo "--load-extension=~/.local/share/omarchy/default/chromium/extensions/copy-url" > ~/.config/brave-origin-beta-flags.conf
|
||||||
|
make_default brave-origin-beta.desktop
|
||||||
|
omarchy-theme-set-browser
|
||||||
|
announce_default_browser "Brave Origin"
|
||||||
|
;;
|
||||||
|
firefox)
|
||||||
|
echo "Installing Firefox..."
|
||||||
|
omarchy-pkg-add firefox || exit 1
|
||||||
|
|
||||||
|
setup_firefox_preferences /usr/lib/firefox/distribution
|
||||||
|
setup_firefox_wayland
|
||||||
|
make_default firefox.desktop
|
||||||
|
announce_default_browser "Firefox"
|
||||||
|
;;
|
||||||
|
zen)
|
||||||
|
echo "Installing Zen..."
|
||||||
|
omarchy-pkg-aur-add zen-browser-bin || exit 1
|
||||||
|
|
||||||
|
setup_firefox_preferences /opt/zen-browser/distribution
|
||||||
|
setup_firefox_wayland
|
||||||
|
make_default zen.desktop
|
||||||
|
announce_default_browser "Zen"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: omarchy-install-browser <chrome|brave|brave-origin|edge|firefox|zen>"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
+29
-3
@@ -352,7 +352,7 @@ show_setup_system_menu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
show_install_menu() {
|
show_install_menu() {
|
||||||
case $(menu "Install" " Package\n AUR\n Web App\n TUI\n Service\n Style\n Development\n Editor\n Terminal\n AI\n Windows\n Gaming") in
|
case $(menu "Install" " Package\n AUR\n Web App\n TUI\n Service\n Style\n Development\n Editor\n Terminal\n Browser\n AI\n Gaming\n Windows") in
|
||||||
*Package*) terminal omarchy-pkg-install ;;
|
*Package*) terminal omarchy-pkg-install ;;
|
||||||
*AUR*) terminal omarchy-pkg-aur-install ;;
|
*AUR*) terminal omarchy-pkg-aur-install ;;
|
||||||
*Web*) present_terminal omarchy-webapp-install ;;
|
*Web*) present_terminal omarchy-webapp-install ;;
|
||||||
@@ -362,13 +362,26 @@ show_install_menu() {
|
|||||||
*Development*) show_install_development_menu ;;
|
*Development*) show_install_development_menu ;;
|
||||||
*Editor*) show_install_editor_menu ;;
|
*Editor*) show_install_editor_menu ;;
|
||||||
*Terminal*) show_install_terminal_menu ;;
|
*Terminal*) show_install_terminal_menu ;;
|
||||||
|
*Browser*) show_install_browser_menu ;;
|
||||||
|
*Gaming*) show_install_gaming_menu ;;
|
||||||
*AI*) show_install_ai_menu ;;
|
*AI*) show_install_ai_menu ;;
|
||||||
*Windows*) present_terminal "omarchy-windows-vm install" ;;
|
*Windows*) present_terminal "omarchy-windows-vm install" ;;
|
||||||
*Gaming*) show_install_gaming_menu ;;
|
|
||||||
*) show_main_menu ;;
|
*) show_main_menu ;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
show_install_browser_menu() {
|
||||||
|
case $(menu "Install" " Chrome\n Edge\n Brave\n Brave Origin\n Firefox\n Zen") in
|
||||||
|
*Chrome*) present_terminal "omarchy-install-browser chrome" ;;
|
||||||
|
*Edge*) present_terminal "omarchy-install-browser edge" ;;
|
||||||
|
*"Brave Origin"*) present_terminal "omarchy-install-browser brave-origin" ;;
|
||||||
|
*Brave*) present_terminal "omarchy-install-browser brave" ;;
|
||||||
|
*Firefox*) present_terminal "omarchy-install-browser firefox" ;;
|
||||||
|
*Zen*) present_terminal "omarchy-install-browser zen" ;;
|
||||||
|
*) show_install_menu ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
show_install_service_menu() {
|
show_install_service_menu() {
|
||||||
case $(menu "Install" " Dropbox\n Tailscale\n NordVPN [AUR]\n ONCE\n Bitwarden\n Chromium Account") in
|
case $(menu "Install" " Dropbox\n Tailscale\n NordVPN [AUR]\n ONCE\n Bitwarden\n Chromium Account") in
|
||||||
*Dropbox*) present_terminal omarchy-install-dropbox ;;
|
*Dropbox*) present_terminal omarchy-install-dropbox ;;
|
||||||
@@ -502,8 +515,9 @@ show_install_elixir_menu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
show_remove_menu() {
|
show_remove_menu() {
|
||||||
case $(menu "Remove" " Package\n Web App\n TUI\n Development\n Gaming\n Preinstalls\n Dictation\n Theme\n Windows\n Fingerprint\n Fido2") in
|
case $(menu "Remove" " Package\n Browser\n Web App\n TUI\n Development\n Gaming\n Preinstalls\n Dictation\n Theme\n Windows\n Fingerprint\n Fido2") in
|
||||||
*Package*) terminal omarchy-pkg-remove ;;
|
*Package*) terminal omarchy-pkg-remove ;;
|
||||||
|
*Browser*) show_remove_browser_menu ;;
|
||||||
*Web*) present_terminal omarchy-webapp-remove ;;
|
*Web*) present_terminal omarchy-webapp-remove ;;
|
||||||
*TUI*) present_terminal omarchy-tui-remove ;;
|
*TUI*) present_terminal omarchy-tui-remove ;;
|
||||||
*Development*) show_remove_development_menu ;;
|
*Development*) show_remove_development_menu ;;
|
||||||
@@ -518,6 +532,18 @@ show_remove_menu() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
show_remove_browser_menu() {
|
||||||
|
case $(menu "Remove" " Chrome\n Edge\n Brave\n Brave Origin\n Firefox\n Zen") in
|
||||||
|
*Chrome*) present_terminal "omarchy-remove-browser chrome" ;;
|
||||||
|
*Edge*) present_terminal "omarchy-remove-browser edge" ;;
|
||||||
|
*"Brave Origin"*) present_terminal "omarchy-remove-browser brave-origin" ;;
|
||||||
|
*Brave*) present_terminal "omarchy-remove-browser brave" ;;
|
||||||
|
*Firefox*) present_terminal "omarchy-remove-browser firefox" ;;
|
||||||
|
*Zen*) present_terminal "omarchy-remove-browser zen" ;;
|
||||||
|
*) show_remove_menu ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
show_remove_gaming_menu() {
|
show_remove_gaming_menu() {
|
||||||
case $(menu "Remove" " Steam\n RetroArch\n Minecraft\n NVIDIA GeForce NOW\n Xbox Cloud Gaming\n Xbox Controller ()\n Moonlight (GameStream)\n Lutris (Battle.net)\n Heroic (Epic Games)") in
|
case $(menu "Remove" " Steam\n RetroArch\n Minecraft\n NVIDIA GeForce NOW\n Xbox Cloud Gaming\n Xbox Controller ()\n Moonlight (GameStream)\n Lutris (Battle.net)\n Heroic (Epic Games)") in
|
||||||
*Steam*) present_terminal omarchy-remove-gaming-steam ;;
|
*Steam*) present_terminal omarchy-remove-gaming-steam ;;
|
||||||
|
|||||||
Executable
+73
@@ -0,0 +1,73 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# omarchy:summary=Remove a supported browser and clean up Omarchy browser defaults
|
||||||
|
# omarchy:args=<chrome|brave|brave-origin|edge|firefox|zen>
|
||||||
|
# omarchy:examples=omarchy remove browser firefox | omarchy remove browser brave
|
||||||
|
# omarchy:requires-sudo=true
|
||||||
|
|
||||||
|
set_fallback_default_browser() {
|
||||||
|
local current_browser
|
||||||
|
current_browser=$(xdg-settings get default-web-browser)
|
||||||
|
|
||||||
|
if [[ $current_browser != "$1" ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
if omarchy-cmd-present chromium; then
|
||||||
|
xdg-settings set default-web-browser chromium.desktop
|
||||||
|
xdg-mime default chromium.desktop x-scheme-handler/http
|
||||||
|
xdg-mime default chromium.desktop x-scheme-handler/https
|
||||||
|
xdg-mime default chromium.desktop text/html
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
chrome)
|
||||||
|
echo "Removing Chrome..."
|
||||||
|
set_fallback_default_browser google-chrome.desktop
|
||||||
|
omarchy-pkg-drop google-chrome
|
||||||
|
rm -f ~/.config/chrome-flags.conf
|
||||||
|
sudo rm -f /etc/opt/chrome/policies/managed/color.json
|
||||||
|
;;
|
||||||
|
edge)
|
||||||
|
echo "Removing Edge..."
|
||||||
|
set_fallback_default_browser microsoft-edge.desktop
|
||||||
|
omarchy-pkg-drop microsoft-edge-stable-bin
|
||||||
|
rm -f ~/.config/microsoft-edge-stable-flags.conf
|
||||||
|
sudo rm -f /etc/opt/edge/policies/managed/color.json
|
||||||
|
;;
|
||||||
|
brave)
|
||||||
|
echo "Removing Brave..."
|
||||||
|
set_fallback_default_browser brave-browser.desktop
|
||||||
|
omarchy-pkg-drop brave-bin
|
||||||
|
rm -f ~/.config/brave-flags.conf
|
||||||
|
|
||||||
|
if omarchy-pkg-missing brave-origin-beta-bin; then
|
||||||
|
sudo rm -rf /etc/brave
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
brave-origin)
|
||||||
|
echo "Removing Brave Origin..."
|
||||||
|
set_fallback_default_browser brave-origin-beta.desktop
|
||||||
|
omarchy-pkg-drop brave-origin-beta-bin
|
||||||
|
rm -f ~/.config/brave-origin-beta-flags.conf
|
||||||
|
|
||||||
|
if omarchy-pkg-missing brave-bin; then
|
||||||
|
sudo rm -rf /etc/brave
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
firefox)
|
||||||
|
echo "Removing Firefox..."
|
||||||
|
set_fallback_default_browser firefox.desktop
|
||||||
|
omarchy-pkg-drop firefox
|
||||||
|
;;
|
||||||
|
zen)
|
||||||
|
echo "Removing Zen..."
|
||||||
|
set_fallback_default_browser zen.desktop
|
||||||
|
omarchy-pkg-drop zen-browser-bin
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: omarchy-remove-browser <chrome|brave|brave-origin|edge|firefox|zen>"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
@@ -1,31 +1,44 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# omarchy:summary=Apply the current theme color to Chromium and Brave
|
# omarchy:summary=Apply the current theme color to Chromium, Chrome, Edge, and Brave
|
||||||
# omarchy:hidden=true
|
# omarchy:hidden=true
|
||||||
|
|
||||||
CHROMIUM_THEME=~/.config/omarchy/current/theme/chromium.theme
|
CHROMIUM_THEME=~/.config/omarchy/current/theme/chromium.theme
|
||||||
|
|
||||||
if omarchy-cmd-present chromium || omarchy-cmd-present brave || omarchy-cmd-present brave-origin-beta; then
|
if [[ -f $CHROMIUM_THEME ]]; then
|
||||||
if [[ -f $CHROMIUM_THEME ]]; then
|
THEME_RGB_COLOR=$(<$CHROMIUM_THEME)
|
||||||
THEME_RGB_COLOR=$(<$CHROMIUM_THEME)
|
THEME_HEX_COLOR=$(printf '#%02x%02x%02x' ${THEME_RGB_COLOR//,/ })
|
||||||
THEME_HEX_COLOR=$(printf '#%02x%02x%02x' ${THEME_RGB_COLOR//,/ })
|
else
|
||||||
else
|
# Use a default, neutral grey if theme doesn't have a color
|
||||||
# Use a default, neutral grey if theme doesn't have a color
|
THEME_HEX_COLOR="#1c2027"
|
||||||
THEME_RGB_COLOR="28,32,39"
|
|
||||||
THEME_HEX_COLOR="#1c2027"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if omarchy-cmd-present chromium; then
|
|
||||||
echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\", \"BrowserColorScheme\": \"device\"}" | tee "/etc/chromium/policies/managed/color.json" >/dev/null
|
|
||||||
pgrep -x chromium >/dev/null && chromium --refresh-platform-policy --no-startup-window &>/dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Brave and Brave Origin Beta share /etc/brave/policies, so a single write covers both
|
|
||||||
if omarchy-cmd-present brave || omarchy-cmd-present brave-origin-beta; then
|
|
||||||
echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\", \"BrowserColorScheme\": \"device\"}" | tee "/etc/brave/policies/managed/color.json" >/dev/null
|
|
||||||
if pgrep -x brave >/dev/null; then
|
|
||||||
omarchy-cmd-present brave && brave --refresh-platform-policy --no-startup-window &>/dev/null
|
|
||||||
omarchy-cmd-present brave-origin-beta && brave-origin-beta --refresh-platform-policy --no-startup-window &>/dev/null
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
set_browser_policy() {
|
||||||
|
local policy_dir="$1"
|
||||||
|
|
||||||
|
[[ -d $policy_dir ]] || return
|
||||||
|
echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\", \"BrowserColorScheme\": \"device\"}" | tee "$policy_dir/color.json" >/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
refresh_running_browser() {
|
||||||
|
local process="$1"
|
||||||
|
local command="$2"
|
||||||
|
local pgrep_args="${3:--x}"
|
||||||
|
|
||||||
|
if omarchy-cmd-present "$command" && pgrep $pgrep_args "$process" >/dev/null; then
|
||||||
|
"$command" --refresh-platform-policy --no-startup-window &>/dev/null
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
set_browser_policy /etc/chromium/policies/managed
|
||||||
|
refresh_running_browser chromium chromium
|
||||||
|
|
||||||
|
set_browser_policy /etc/opt/chrome/policies/managed
|
||||||
|
refresh_running_browser chrome google-chrome-stable || refresh_running_browser chrome google-chrome
|
||||||
|
|
||||||
|
set_browser_policy /etc/opt/edge/policies/managed
|
||||||
|
refresh_running_browser msedge microsoft-edge-stable
|
||||||
|
|
||||||
|
set_browser_policy /etc/brave/policies/managed
|
||||||
|
refresh_running_browser brave brave
|
||||||
|
refresh_running_browser brave-origin-beta brave-origin-beta -f
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
--load-extension=~/.local/share/omarchy/default/chromium/extensions/copy-url
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
brave-flags.conf
|
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"policies": {
|
||||||
|
"Preferences": {
|
||||||
|
"apz.overscroll.enabled": {
|
||||||
|
"Value": true,
|
||||||
|
"Status": "default"
|
||||||
|
},
|
||||||
|
"media.ffmpeg.vaapi.enabled": {
|
||||||
|
"Value": true,
|
||||||
|
"Status": "default"
|
||||||
|
},
|
||||||
|
"media.hardware-video-decoding.force-enabled": {
|
||||||
|
"Value": true,
|
||||||
|
"Status": "default"
|
||||||
|
},
|
||||||
|
"widget.disable-swipe-tracker": {
|
||||||
|
"Value": false,
|
||||||
|
"Status": "default"
|
||||||
|
},
|
||||||
|
"widget.wayland.fractional-scale.enabled": {
|
||||||
|
"Value": true,
|
||||||
|
"Status": "default"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,14 +5,10 @@ sudo ln -snf /usr/share/icons/Adwaita/symbolic/actions/go-next-symbolic.svg /usr
|
|||||||
# Setup user theme folder
|
# Setup user theme folder
|
||||||
mkdir -p ~/.config/omarchy/themes
|
mkdir -p ~/.config/omarchy/themes
|
||||||
|
|
||||||
# Add managed policy directories for Chromium and Brave for theme changes.
|
# Chromium policy directory for theme
|
||||||
# Must exist before the first omarchy-theme-set, which writes color.json into them.
|
|
||||||
sudo mkdir -p /etc/chromium/policies/managed
|
sudo mkdir -p /etc/chromium/policies/managed
|
||||||
sudo chmod a+rw /etc/chromium/policies/managed
|
sudo chmod a+rw /etc/chromium/policies/managed
|
||||||
|
|
||||||
sudo mkdir -p /etc/brave/policies/managed
|
|
||||||
sudo chmod a+rw /etc/brave/policies/managed
|
|
||||||
|
|
||||||
# Set initial theme
|
# Set initial theme
|
||||||
omarchy-theme-set "Tokyo Night"
|
omarchy-theme-set "Tokyo Night"
|
||||||
rm -rf ~/.config/chromium/SingletonLock # otherwise archiso will own the chromium singleton
|
rm -rf ~/.config/chromium/SingletonLock # otherwise archiso will own the chromium singleton
|
||||||
|
|||||||
Reference in New Issue
Block a user