mirror of
https://github.com/marcogll/omarchy_setup.git
synced 2026-01-13 13:25:16 +00:00
implementacion de script
This commit is contained in:
@@ -6,6 +6,29 @@
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "${SCRIPT_DIR}/common.sh"
|
||||
|
||||
# Función para mostrar una barra de progreso
|
||||
# Uso: show_progress TOTAL_ITEMS CURRENT_ITEM "Mensaje"
|
||||
show_progress() {
|
||||
local total=$1
|
||||
local current=$2
|
||||
local msg=$3
|
||||
local percent=$((current * 100 / total))
|
||||
local completed_len=$((percent / 2))
|
||||
local bar=""
|
||||
for ((i=0; i<completed_len; i++)); do bar+="="; done
|
||||
local empty_len=$((50 - completed_len))
|
||||
for ((i=0; i<empty_len; i++)); do bar+=" "; done
|
||||
|
||||
# Asegurarse de que el cursor esté al principio de la línea y la limpie
|
||||
echo -ne "\r\033[K"
|
||||
# Imprimir la barra de progreso
|
||||
echo -ne " ${GREEN}[${bar}]${NC} ${percent}% - ${msg} (${current}/${total})"
|
||||
|
||||
if [[ $current -eq $total ]]; then
|
||||
echo "" # Nueva línea al final
|
||||
fi
|
||||
}
|
||||
|
||||
install_davinci_resolve() {
|
||||
log_step "Instalación de DaVinci Resolve (Intel Edition)"
|
||||
|
||||
@@ -23,12 +46,13 @@ install_davinci_resolve() {
|
||||
|
||||
log_info "Usando ZIP: ${RESOLVE_ZIP}"
|
||||
|
||||
start_spinner "Instalando dependencias básicas..."
|
||||
# Instalación de paquetes básicos
|
||||
log_info "Instalando paquetes básicos..."
|
||||
sudo pacman -S --needed --noconfirm \
|
||||
unzip patchelf libarchive xdg-user-dirs desktop-file-utils \
|
||||
file gtk-update-icon-cache rsync clinfo qt5-base qt5-svg qt5-x11extras \
|
||||
libpng libtiff libcurl || true
|
||||
libpng libtiff libcurl &> /dev/null
|
||||
stop_spinner $? "Dependencias básicas instaladas."
|
||||
|
||||
# Configurar OpenCL / Intel GPU
|
||||
log_info "Configurando runtime OpenCL de Intel y drivers de video..."
|
||||
@@ -39,15 +63,18 @@ install_davinci_resolve() {
|
||||
sudo pacman -Rns --noconfirm nvidia nvidia-utils nvidia-settings opencl-nvidia || true
|
||||
fi
|
||||
|
||||
start_spinner "Instalando headers del kernel (si es necesario)..."
|
||||
# Instalar headers del kernel si son necesarios
|
||||
KVER="$(uname -r)"
|
||||
if [[ ! -d "/usr/lib/modules/${KVER}/build" ]]; then
|
||||
log_info "Instalando headers de kernel..."
|
||||
sudo pacman -S --needed --noconfirm linux-headers linux-zen-headers || true
|
||||
sudo pacman -S --needed --noconfirm linux-headers linux-zen-headers &> /dev/null
|
||||
fi
|
||||
stop_spinner $? "Headers del kernel verificados."
|
||||
|
||||
# Instalar runtime OpenCL (compute runtime), desde AUR si es necesario
|
||||
if ! pacman -Qi intel-compute-runtime &>/dev/null; then
|
||||
start_spinner "Instalando intel-compute-runtime desde AUR..."
|
||||
log_info "Instalando intel-compute-runtime (puede venir del AUR)..."
|
||||
AUR_HELPER=$(ensure_aur_helper)
|
||||
if [ "$AUR_HELPER" = "yay" ]; then
|
||||
@@ -67,10 +94,11 @@ install_davinci_resolve() {
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
stop_spinner $? "intel-compute-runtime instalado."
|
||||
fi
|
||||
|
||||
start_spinner "Instalando paquetes de video y OpenCL..."
|
||||
# Instalar otros paquetes Intel / VA-API / OpenCL
|
||||
log_info "Instalando paquetes Intel / VA-API / OpenCL..."
|
||||
sudo pacman -S --needed --noconfirm \
|
||||
intel-media-driver \
|
||||
ocl-icd \
|
||||
@@ -79,7 +107,8 @@ install_davinci_resolve() {
|
||||
glu \
|
||||
gtk2 \
|
||||
fuse2 \
|
||||
libva-utils libvdpau-va-gl || true
|
||||
libva-utils libvdpau-va-gl &> /dev/null
|
||||
stop_spinner $? "Paquetes de video instalados."
|
||||
|
||||
# Asegurar el archivo ICD para OpenCL de Intel
|
||||
if [[ ! -f /etc/OpenCL/vendors/intel.icd ]]; then
|
||||
@@ -104,8 +133,7 @@ install_davinci_resolve() {
|
||||
log_info "Verificando soporte de decodificación VA-API para H264 / HEVC..."
|
||||
vainfo | grep -E "H264|HEVC" || true
|
||||
|
||||
# Extraer DaVinci Resolve
|
||||
log_info "Extrayendo DaVinci Resolve del ZIP..."
|
||||
start_spinner "Extrayendo DaVinci Resolve del ZIP (puede tardar)..."
|
||||
NEEDED_GB=10
|
||||
FREE_KB=$(df --output=avail -k "${ZIP_DIR}" | tail -n1)
|
||||
FREE_GB=$((FREE_KB / 1024 / 1024))
|
||||
@@ -116,7 +144,8 @@ install_davinci_resolve() {
|
||||
|
||||
WORKDIR="$(mktemp -d -p "${ZIP_DIR}" .resolve-extract-XXXXXXXX)"
|
||||
trap 'rm -rf "${WORKDIR}"' EXIT
|
||||
unzip -q "${RESOLVE_ZIP}" -d "${WORKDIR}"
|
||||
unzip -q "${RESOLVE_ZIP}" -d "${WORKDIR}"
|
||||
stop_spinner $? "ZIP extraído."
|
||||
|
||||
RUN_FILE="$(find "${WORKDIR}" -maxdepth 2 -type f -name 'DaVinci_Resolve_*_Linux.run' | head -n1 || true)"
|
||||
if [[ -z "${RUN_FILE}" ]]; then
|
||||
@@ -125,8 +154,10 @@ install_davinci_resolve() {
|
||||
fi
|
||||
chmod +x "${RUN_FILE}"
|
||||
|
||||
start_spinner "Extrayendo AppImage..."
|
||||
EX_DIR="$(dirname "${RUN_FILE}")"
|
||||
( cd "${EX_DIR}" && "./$(basename "${RUN_FILE}")" --appimage-extract >/dev/null )
|
||||
stop_spinner $? "AppImage extraído."
|
||||
|
||||
APPDIR="${EX_DIR}/squashfs-root"
|
||||
if [[ ! -d "${APPDIR}" ]]; then
|
||||
@@ -149,8 +180,7 @@ install_davinci_resolve() {
|
||||
ln -sf /usr/lib/libgmodule-2.0.so.0 libs/libgmodule-2.0.so.0
|
||||
popd >/dev/null
|
||||
|
||||
# Aplicar RPATH
|
||||
log_info "Aplicando RPATH con patchelf..."
|
||||
log_info "Aplicando RPATH con patchelf (esto puede tardar)..."
|
||||
RPATH_DIRS=(
|
||||
"libs"
|
||||
"libs/plugins/sqldrivers"
|
||||
@@ -167,17 +197,27 @@ install_davinci_resolve() {
|
||||
done
|
||||
RPATH_ABS+="\$ORIGIN"
|
||||
|
||||
# Usar barra de progreso para patchelf
|
||||
if command -v patchelf &>/dev/null; then
|
||||
find "${APPDIR}" -type f -exec bash -c '
|
||||
file -b "$1" | grep -q ELF && sudo patchelf --set-rpath "'"${RPATH_ABS}"'" "$1"
|
||||
' _ {} \; || true
|
||||
local files_to_patch
|
||||
files_to_patch=$(find "${APPDIR}" -type f -exec file {} + | grep "ELF" | cut -d: -f1)
|
||||
local total_files=$(echo "$files_to_patch" | wc -l)
|
||||
local current_file=0
|
||||
|
||||
echo "$files_to_patch" | while read -r file; do
|
||||
current_file=$((current_file + 1))
|
||||
show_progress "$total_files" "$current_file" "Aplicando RPATH..."
|
||||
sudo patchelf --set-rpath "${RPATH_ABS}" "$file" &>/dev/null
|
||||
done
|
||||
log_success "RPATH aplicado a $total_files archivos."
|
||||
fi
|
||||
|
||||
# Instalar en /opt/resolve
|
||||
log_info "Instalando DaVinci Resolve en /opt/resolve..."
|
||||
start_spinner "Copiando archivos a /opt/resolve..."
|
||||
sudo rm -rf /opt/resolve
|
||||
sudo mkdir -p /opt/resolve
|
||||
sudo rsync -a --delete "${APPDIR}/" /opt/resolve/
|
||||
stop_spinner $? "Archivos copiados a /opt/resolve."
|
||||
|
||||
sudo mkdir -p /opt/resolve/.license
|
||||
|
||||
# Enlazar libcrypt legado si es necesario
|
||||
@@ -230,4 +270,3 @@ EOF
|
||||
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
|
||||
install_davinci_resolve "$@"
|
||||
fi
|
||||
|
||||
|
||||
@@ -47,12 +47,14 @@ install_zsh() {
|
||||
|
||||
# Instalar Zsh y plugins
|
||||
log_info "Instalando Zsh y complementos..."
|
||||
# El spinner se inicia desde el script principal, aquí solo ejecutamos el comando
|
||||
sudo pacman -S --noconfirm --needed \
|
||||
zsh zsh-completions zsh-syntax-highlighting zsh-autosuggestions || {
|
||||
log_error "Error al instalar Zsh"
|
||||
return 1
|
||||
}
|
||||
|
||||
# No es necesario un spinner aquí, es muy rápido
|
||||
# Descargar configuración personalizada
|
||||
log_info "Descargando configuración de Zsh desde GitHub..."
|
||||
if curl -fsSL "${REPO_BASE}/.zshrc" -o ~/.zshrc; then
|
||||
|
||||
Reference in New Issue
Block a user