mirror of
https://github.com/LukeHagar/omarchy.git
synced 2025-12-06 04:20:23 +00:00
Turn pkg and cmd functions into bins to avoid PATH issues in subshells
This commit is contained in:
9
bin/omarchy-cmd-missing
Executable file
9
bin/omarchy-cmd-missing
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
for cmd in "$@"; do
|
||||||
|
if ! command -v "$cmd" &>/dev/null; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
return 1
|
||||||
7
bin/omarchy-cmd-present
Executable file
7
bin/omarchy-cmd-present
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
for cmd in "$@"; do
|
||||||
|
command -v "$cmd" &>/dev/null || return 1
|
||||||
|
done
|
||||||
|
|
||||||
|
return 0
|
||||||
@@ -14,7 +14,7 @@ for file in ~/.local/share/omarchy/migrations/*.sh; do
|
|||||||
if [[ ! -f "$STATE_DIR/$filename" && ! -f "$STATE_DIR/skipped/$filename" ]]; then
|
if [[ ! -f "$STATE_DIR/$filename" && ! -f "$STATE_DIR/skipped/$filename" ]]; then
|
||||||
echo -e "\e[32m\nRunning migration (${filename%.sh})\e[0m"
|
echo -e "\e[32m\nRunning migration (${filename%.sh})\e[0m"
|
||||||
|
|
||||||
if bash -e $file; then
|
if bash $file; then
|
||||||
touch "$STATE_DIR/$filename"
|
touch "$STATE_DIR/$filename"
|
||||||
else
|
else
|
||||||
if gum confirm "Migration ${filename%.sh} failed. Skip and continue?"; then
|
if gum confirm "Migration ${filename%.sh} failed. Skip and continue?"; then
|
||||||
|
|||||||
7
bin/omarchy-pkg-add
Executable file
7
bin/omarchy-pkg-add
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
for pkg in "$@"; do
|
||||||
|
pacman -Q "$pkg" &>/dev/null || return 1
|
||||||
|
done
|
||||||
|
|
||||||
|
return 0
|
||||||
7
bin/omarchy-pkg-drop
Executable file
7
bin/omarchy-pkg-drop
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
for pkg in "$@"; do
|
||||||
|
if pacman -Q "$pkg" &>/dev/null; then
|
||||||
|
sudo pacman -Rns --noconfirm "$pkg"
|
||||||
|
fi
|
||||||
|
done
|
||||||
9
bin/omarchy-pkg-missing
Executable file
9
bin/omarchy-pkg-missing
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
for pkg in "$@"; do
|
||||||
|
if ! pacman -Q "$pkg" &>/dev/null; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
return 1
|
||||||
7
bin/omarchy-pkg-present
Executable file
7
bin/omarchy-pkg-present
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
for pkg in "$@"; do
|
||||||
|
pacman -Q "$pkg" &>/dev/null || return 1
|
||||||
|
done
|
||||||
|
|
||||||
|
return 0
|
||||||
@@ -65,54 +65,3 @@ img2png() {
|
|||||||
-define png:exclude-chunk=all \
|
-define png:exclude-chunk=all \
|
||||||
"${1%.*}.png"
|
"${1%.*}.png"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
pkg-present() {
|
|
||||||
for pkg in "$@"; do
|
|
||||||
pacman -Q "$pkg" &>/dev/null || return 1
|
|
||||||
done
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg-missing() {
|
|
||||||
for pkg in "$@"; do
|
|
||||||
if ! pacman -Q "$pkg" &>/dev/null; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg-add() {
|
|
||||||
for pkg in "$@"; do
|
|
||||||
if ! pacman -Q "$pkg" &>/dev/null; then
|
|
||||||
sudo pacman -S --noconfirm --needed "$pkg"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg-remove() {
|
|
||||||
for pkg in "$@"; do
|
|
||||||
if pacman -Q "$pkg" &>/dev/null; then
|
|
||||||
sudo pacman -Rns --noconfirm "$pkg"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
cmd-present() {
|
|
||||||
for cmd in "$@"; do
|
|
||||||
command -v "$cmd" &>/dev/null || return 1
|
|
||||||
done
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
cmd-missing() {
|
|
||||||
for cmd in "$@"; do
|
|
||||||
if ! command -v "$cmd" &>/dev/null; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
echo "Ensure new pkg/cmd functions are available to old-run migrations"
|
|
||||||
|
|
||||||
source $OMARCHY_PATH/default/bash/functions
|
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
echo "Add missing installation of bat (used by the ff alias)"
|
echo "Add missing installation of bat (used by the ff alias)"
|
||||||
|
|
||||||
pkg-add bat
|
omarchy-pkg-add bat
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
echo "Installing missing fd terminal tool for finding files"
|
echo "Installing missing fd terminal tool for finding files"
|
||||||
|
|
||||||
pkg-add fd
|
omarchy-pkg-add fd
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
echo "Switching from vlc to mpv for the default video player"
|
echo "Switching from vlc to mpv for the default video player"
|
||||||
if cmd-missing mpv; then
|
if omarchy-cmd-missing mpv; then
|
||||||
pkg-remove vlc
|
omarchy-pkg-drop vlc
|
||||||
rm ~/.local/share/applications/vlc.desktop
|
rm ~/.local/share/applications/vlc.desktop
|
||||||
|
|
||||||
pkg-add mpv
|
omarchy-pkg-add mpv
|
||||||
xdg-mime default mpv.desktop video/mp4
|
xdg-mime default mpv.desktop video/mp4
|
||||||
xdg-mime default mpv.desktop video/x-msvideo
|
xdg-mime default mpv.desktop video/x-msvideo
|
||||||
xdg-mime default mpv.desktop video/x-matroska
|
xdg-mime default mpv.desktop video/x-matroska
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
echo "Add LocalSend as new default application"
|
echo "Add LocalSend as new default application"
|
||||||
|
|
||||||
pkg-add localsend
|
omarchy-pkg-add localsend
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
echo "Install ffmpegthumbnailer for video thumbnails in the file manager"
|
echo "Install ffmpegthumbnailer for video thumbnails in the file manager"
|
||||||
|
|
||||||
pkg-add ffmpegthumbnailer
|
omarchy-pkg-add ffmpegthumbnailer
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
echo "Install bash-completion"
|
echo "Install bash-completion"
|
||||||
|
|
||||||
pkg-add bash-completion
|
omarchy-pkg-add bash-completion
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
echo "Install Impala as new wifi selection TUI"
|
echo "Install Impala as new wifi selection TUI"
|
||||||
|
|
||||||
if cmd-missing impala; then
|
if omarchy-cmd-missing impala; then
|
||||||
pkg-add impala
|
omarchy-pkg-add impala
|
||||||
omarchy-refresh-waybar
|
omarchy-refresh-waybar
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
echo "Adding gnome-keyring to make 1password work with 2FA codes"
|
echo "Adding gnome-keyring to make 1password work with 2FA codes"
|
||||||
|
|
||||||
pkg-add gnome-keyring
|
omarchy-pkg-add gnome-keyring
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
echo "Install Plymouth splash screen"
|
echo "Install Plymouth splash screen"
|
||||||
|
|
||||||
pkg-add uwsm plymouth
|
omarchy-pkg-add uwsm plymouth
|
||||||
source "$OMARCHY_PATH/install/login/plymouth.sh"
|
source "$OMARCHY_PATH/install/login/plymouth.sh"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
echo "Update to use UWSM and seamless login"
|
echo "Update to use UWSM and seamless login"
|
||||||
|
|
||||||
if cmd-missing uwsm; then
|
if omarchy-cmd-missing uwsm; then
|
||||||
sudo rm -f /etc/systemd/system/getty@tty1.service.d/override.conf
|
sudo rm -f /etc/systemd/system/getty@tty1.service.d/override.conf
|
||||||
sudo rmdir /etc/systemd/system/getty@tty1.service.d/ 2>/dev/null || true
|
sudo rmdir /etc/systemd/system/getty@tty1.service.d/ 2>/dev/null || true
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
echo "Install missing docker-buildx package for out-of-the-box Kamal compatibility"
|
echo "Install missing docker-buildx package for out-of-the-box Kamal compatibility"
|
||||||
|
|
||||||
pkg-add docker-buildx
|
omarchy-pkg-add docker-buildx
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
echo "Install slurp + wl-screenrec for new ALT+PrintScreen screen recorder"
|
echo "Install slurp + wl-screenrec for new ALT+PrintScreen screen recorder"
|
||||||
|
|
||||||
pkg-add slurp wl-screenrec
|
omarchy-pkg-add slurp wl-screenrec
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
echo "Replace volume control GUI with a TUI"
|
echo "Replace volume control GUI with a TUI"
|
||||||
|
|
||||||
if cmd-missing wiremix; then
|
if omarchy-cmd-missing wiremix; then
|
||||||
pkg-add wiremix
|
omarchy-pkg-add wiremix
|
||||||
pkg-remove pavucontrol
|
omarchy-pkg-drop pavucontrol
|
||||||
omarchy-refresh-applications
|
omarchy-refresh-applications
|
||||||
omarchy-refresh-waybar
|
omarchy-refresh-waybar
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
echo "Remove needless fcitx5-configtool package"
|
echo "Remove needless fcitx5-configtool package"
|
||||||
|
|
||||||
pkg-remove fcitx5-configtool
|
omarchy-pkg-drop fcitx5-configtool
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
echo "Install satty for the new screenshot flow"
|
echo "Install satty for the new screenshot flow"
|
||||||
|
|
||||||
pkg-add satty
|
omarchy-pkg-add satty
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
echo "Replace wofi with walker as the default launcher"
|
echo "Replace wofi with walker as the default launcher"
|
||||||
|
|
||||||
if cmd-missing walker; then
|
if omarchy-cmd-missing walker; then
|
||||||
pkg-add walker-bin libqalculate
|
omarchy-pkg-add walker-bin libqalculate
|
||||||
|
|
||||||
pkg-remove wofi
|
omarchy-pkg-drop wofi
|
||||||
rm -rf ~/.config/wofi
|
rm -rf ~/.config/wofi
|
||||||
|
|
||||||
mkdir -p ~/.config/walker
|
mkdir -p ~/.config/walker
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
echo "Install swayOSD to show volume status"
|
echo "Install swayOSD to show volume status"
|
||||||
|
|
||||||
if cmd-missing swayosd-server; then
|
if omarchy-cmd-missing swayosd-server; then
|
||||||
pkg-add swayosd
|
omarchy-pkg-add swayosd
|
||||||
setsid uwsm app -- swayosd-server &>/dev/null &
|
setsid uwsm app -- swayosd-server &>/dev/null &
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
echo "Install wf-recorder for screen recording for nvidia"
|
echo "Install wf-recorder for screen recording for nvidia"
|
||||||
|
|
||||||
pkg-add wf-recorder
|
omarchy-pkg-add wf-recorder
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
echo "Allow updating of timezone by right-clicking on the clock (or running omarchy-cmd-tzupdate)"
|
echo "Allow updating of timezone by right-clicking on the clock (or running omarchy-cmd-tzupdate)"
|
||||||
|
|
||||||
if cmd-missing tzupdate; then
|
if omarchy-cmd-missing tzupdate; then
|
||||||
$OMARCHY_PATH/install/config/timezones.sh
|
$OMARCHY_PATH/install/config/timezones.sh
|
||||||
omarchy-refresh-waybar
|
omarchy-refresh-waybar
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
echo "Enable auto-discovery of network printers"
|
echo "Enable auto-discovery of network printers"
|
||||||
|
|
||||||
if [[ ! -f /etc/systemd/resolved.conf.d/10-disable-multicast.conf ]]; then
|
if [[ ! -f /etc/systemd/resolved.conf.d/10-disable-multicast.conf ]]; then
|
||||||
pkg-add avahi nss-mdns
|
omarchy-pkg-add avahi nss-mdns
|
||||||
|
|
||||||
# Disable multicast dns in resolved. Avahi will provide this for better network printer discovery
|
# Disable multicast dns in resolved. Avahi will provide this for better network printer discovery
|
||||||
sudo mkdir -p /etc/systemd/resolved.conf.d
|
sudo mkdir -p /etc/systemd/resolved.conf.d
|
||||||
@@ -10,7 +10,7 @@ if [[ ! -f /etc/systemd/resolved.conf.d/10-disable-multicast.conf ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if ! grep -q '^CreateRemotePrinters Yes' /etc/cups/cups-browsed.conf; then
|
if ! grep -q '^CreateRemotePrinters Yes' /etc/cups/cups-browsed.conf; then
|
||||||
pkg-add cups-browsed
|
omarchy-pkg-add cups-browsed
|
||||||
# Enable automatically adding remote printers
|
# Enable automatically adding remote printers
|
||||||
echo 'CreateRemotePrinters Yes' | sudo tee -a /etc/cups/cups-browsed.conf
|
echo 'CreateRemotePrinters Yes' | sudo tee -a /etc/cups/cups-browsed.conf
|
||||||
sudo systemctl enable --now cups-browsed.service
|
sudo systemctl enable --now cups-browsed.service
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
echo "Add support for accessing Android phone data via file manager"
|
echo "Add support for accessing Android phone data via file manager"
|
||||||
|
|
||||||
pkg-add gvfs-mtp
|
omarchy-pkg-add gvfs-mtp
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
echo "Add xmlstarlet needed for updating fonts via Omarchy menu"
|
echo "Add xmlstarlet needed for updating fonts via Omarchy menu"
|
||||||
|
|
||||||
pkg-add xmlstarlet
|
omarchy-pkg-add xmlstarlet
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
echo "Configure Docker to use the host's DNS resolver"
|
echo "Configure Docker to use the host's DNS resolver"
|
||||||
|
|
||||||
if cmd-present docker; then
|
if omarchy-cmd-present docker; then
|
||||||
# If the daemon configuration has been changed since we wrote it, leave it as-is
|
# If the daemon configuration has been changed since we wrote it, leave it as-is
|
||||||
ORIGINAL_CONFIG='{"log-driver":"json-file","log-opts":{"max-size":"10m","max-file":"5"}}'
|
ORIGINAL_CONFIG='{"log-driver":"json-file","log-opts":{"max-size":"10m","max-file":"5"}}'
|
||||||
|
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ set_theme_colors() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
if cmd-present chromium; then
|
if omarchy-cmd-present chromium; then
|
||||||
pkg-remove chromium
|
omarchy-pkg-drop chromium
|
||||||
pkg-add omarchy-chromium
|
omarchy-pkg-add omarchy-chromium
|
||||||
|
|
||||||
if pgrep -x chromium; then
|
if pgrep -x chromium; then
|
||||||
if gum confirm "Chromium must be restarted. Ready?"; then
|
if gum confirm "Chromium must be restarted. Ready?"; then
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
echo "Add minimal starship prompt to terminal"
|
echo "Add minimal starship prompt to terminal"
|
||||||
|
|
||||||
if cmd-missing starship; then
|
if omarchy-cmd-missing starship; then
|
||||||
pkg-add starship
|
omarchy-pkg-add starship
|
||||||
cp $OMARCHY_PATH/config/starship.toml ~/.config/starship.toml
|
cp $OMARCHY_PATH/config/starship.toml ~/.config/starship.toml
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
echo "Ensure TTE and dependencies are installed"
|
echo "Ensure TTE and dependencies are installed"
|
||||||
|
|
||||||
pkg-add python-poetry-core python-terminaltexteffects
|
omarchy-pkg-add python-poetry-core python-terminaltexteffects
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
echo "Add potentially missing dependency for power profile controls"
|
echo "Add potentially missing dependency for power profile controls"
|
||||||
|
|
||||||
pkg-add python-gobject
|
omarchy-pkg-add python-gobject
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
echo "Install wf-recorder for intel based device"
|
echo "Install wf-recorder for intel based device"
|
||||||
|
|
||||||
pkg-add wf-recorder
|
omarchy-pkg-add wf-recorder
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
echo "Switch from lazydocker-bin to lazydocker official"
|
echo "Switch from lazydocker-bin to lazydocker official"
|
||||||
|
|
||||||
pkg-remove lazydocker-bin
|
omarchy-pkg-drop lazydocker-bin
|
||||||
pkg-add lazydocker
|
omarchy-pkg-add lazydocker
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
echo "Migrate AUR packages to official repos where possible"
|
echo "Migrate AUR packages to official repos where possible"
|
||||||
|
|
||||||
reinstall_package_opr() {
|
reinstall_package_opr() {
|
||||||
if pkg-present $1; then
|
if omarchy-pkg-present $1; then
|
||||||
sudo pacman -Rns --noconfirm $1
|
sudo pacman -Rns --noconfirm $1
|
||||||
sudo pacman -S --noconfirm ${2:-$1}
|
sudo pacman -S --noconfirm ${2:-$1}
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
pkg-remove yay-bin-debug
|
omarchy-pkg-drop yay-bin-debug
|
||||||
|
|
||||||
reinstall_package_opr yay-bin yay
|
reinstall_package_opr yay-bin yay
|
||||||
reinstall_package_opr obsidian-bin obsidian
|
reinstall_package_opr obsidian-bin obsidian
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
echo "Replace buggy native Zoom client with webapp"
|
echo "Replace buggy native Zoom client with webapp"
|
||||||
|
|
||||||
if pkg-present zoom; then
|
if omarchy-pkg-present zoom; then
|
||||||
pkg-remove zoom
|
omarchy-pkg-drop zoom
|
||||||
omarchy-webapp-install "Zoom" https://app.zoom.us/wc/home https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/zoom.png
|
omarchy-webapp-install "Zoom" https://app.zoom.us/wc/home https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/zoom.png
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
echo "Remove any Chaotic-AUR infrastructure packages"
|
echo "Remove any Chaotic-AUR infrastructure packages"
|
||||||
|
|
||||||
pkg-remove chaotic-keyring chaotic-mirrorlist
|
omarchy-pkg-drop chaotic-keyring chaotic-mirrorlist
|
||||||
|
|
||||||
if sudo pacman-key --list-keys 3056513887B78AEB >/dev/null 2>&1; then
|
if sudo pacman-key --list-keys 3056513887B78AEB >/dev/null 2>&1; then
|
||||||
sudo pacman-key --delete 3056513887B78AEB
|
sudo pacman-key --delete 3056513887B78AEB
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
echo "Add back ttf-ia-writer if it was missing"
|
echo "Add back ttf-ia-writer if it was missing"
|
||||||
|
|
||||||
pkg-add ttf-ia-writer
|
omarchy-pkg-add ttf-ia-writer
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
echo "Replace JetBrains Mono font with the Nerd Font edition"
|
echo "Replace JetBrains Mono font with the Nerd Font edition"
|
||||||
|
|
||||||
pkg-add ttf-jetbrains-mono-nerd
|
omarchy-pkg-add ttf-jetbrains-mono-nerd
|
||||||
pkg-remove ttf-jetbrains-mono
|
omarchy-pkg-drop ttf-jetbrains-mono
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
echo "Add Samba network drive support to the file manager"
|
echo "Add Samba network drive support to the file manager"
|
||||||
|
|
||||||
pkg-add gvfs-smb
|
omarchy-pkg-add gvfs-smb
|
||||||
|
|||||||
Reference in New Issue
Block a user