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() {
|
||||
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 ;;
|
||||
*AUR*) terminal omarchy-pkg-aur-install ;;
|
||||
*Web*) present_terminal omarchy-webapp-install ;;
|
||||
@@ -362,13 +362,26 @@ show_install_menu() {
|
||||
*Development*) show_install_development_menu ;;
|
||||
*Editor*) show_install_editor_menu ;;
|
||||
*Terminal*) show_install_terminal_menu ;;
|
||||
*Browser*) show_install_browser_menu ;;
|
||||
*Gaming*) show_install_gaming_menu ;;
|
||||
*AI*) show_install_ai_menu ;;
|
||||
*Windows*) present_terminal "omarchy-windows-vm install" ;;
|
||||
*Gaming*) show_install_gaming_menu ;;
|
||||
*) show_main_menu ;;
|
||||
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() {
|
||||
case $(menu "Install" " Dropbox\n Tailscale\n NordVPN [AUR]\n ONCE\n Bitwarden\n Chromium Account") in
|
||||
*Dropbox*) present_terminal omarchy-install-dropbox ;;
|
||||
@@ -502,8 +515,9 @@ show_install_elixir_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 ;;
|
||||
*Browser*) show_remove_browser_menu ;;
|
||||
*Web*) present_terminal omarchy-webapp-remove ;;
|
||||
*TUI*) present_terminal omarchy-tui-remove ;;
|
||||
*Development*) show_remove_development_menu ;;
|
||||
@@ -518,6 +532,18 @@ show_remove_menu() {
|
||||
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() {
|
||||
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 ;;
|
||||
|
||||
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
|
||||
|
||||
# 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
|
||||
|
||||
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
|
||||
THEME_RGB_COLOR=$(<$CHROMIUM_THEME)
|
||||
THEME_HEX_COLOR=$(printf '#%02x%02x%02x' ${THEME_RGB_COLOR//,/ })
|
||||
else
|
||||
# Use a default, neutral grey if theme doesn't have a color
|
||||
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
|
||||
if [[ -f $CHROMIUM_THEME ]]; then
|
||||
THEME_RGB_COLOR=$(<$CHROMIUM_THEME)
|
||||
THEME_HEX_COLOR=$(printf '#%02x%02x%02x' ${THEME_RGB_COLOR//,/ })
|
||||
else
|
||||
# Use a default, neutral grey if theme doesn't have a color
|
||||
THEME_HEX_COLOR="#1c2027"
|
||||
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
|
||||
mkdir -p ~/.config/omarchy/themes
|
||||
|
||||
# Add managed policy directories for Chromium and Brave for theme changes.
|
||||
# Must exist before the first omarchy-theme-set, which writes color.json into them.
|
||||
# Chromium policy directory for theme
|
||||
sudo mkdir -p /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
|
||||
omarchy-theme-set "Tokyo Night"
|
||||
rm -rf ~/.config/chromium/SingletonLock # otherwise archiso will own the chromium singleton
|
||||
|
||||
Reference in New Issue
Block a user