Guía personal para preparar y personalizar un entorno CachyOS a mi gusto. Establece un diseño de escritorio limpio y consistente, manteniendo la usabilidad. Contiene un listado de los programas que uso habitualmente y sus ajustes concretos. También se listan algunos scripts custom que me he creado para hacerme la vida más fácil y sincronizar ciertos servicios como Google Drive, OPRobots o Twitch.
- AUR
- FlatPak
- Personalización de Konsole y shell
- Wallpaper Engine (KDE)
- Colores y Temas (Plasma y Kvantum)
- Fondo dinámico en inicio de sesión
- Gestión de ventanas
- PlatformIO y STLink — reglas udev
- Red y Firewall
- Unidades de red (FailServer)
- Particiones y otros Discos
- F3D — Modo STEP y miniaturas
- Vivaldi
- Brave
- VSCode
- Emoji Picker: Pegado automático
- Gestos de ratón
- OBS
- MacroDeck
- Google Drive con rclone
- BLHeliSuite
- Google Drive con rclone
- TeamViewer
- GIT
- GIT Large File Storage
- Gaming
- Solución de Problemas
- Inicio Automático
Instala los paquetes listados desde AUR con paru -S:
paru -S --sudoloop \
brave-bin vivaldi discord blender freecad gimp inkscape kicad mypaint \
qbittorrent kdenlive obs-browser obs-pipewire-audio-capture obs-3d-effect \
obs-transition-table qt6-webengine vlc visual-studio-code-bin pulseview spotify \
bazaar jdk-openjdk archlinux-java-run stm32cubemx orca-slicer f3d zsh fastfetch \
cachyos-gaming-meta \ steam wallpaper-engine-kde-plugin-git kvantum xdotool \
ttf-firacode-nerd \
wl-clipboard ydotool rclone teamviewer git-lfs expresslrs-configurator-bin \
prismlauncherNote
--sudoloop: Mantiene activa la autenticación de sudo durante toda la operación
Nota rápida: si orca-slicer falla en su versión normal, usa orca-slicer-bin.
Instalar Bottles desde Flathub para ejecución de aplicaciones de Windows:
flatpak install flathub com.usebottles.bottlesInstalación y configuración rápida:
unzip -o ./assets/plasma6macos-fonts.zip -d ~/.local/share/fonts
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" -- --unattended
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-history-substring-search ~/.oh-my-zsh/custom/plugins/zsh-history-substring-search
curl -sS https://starship.rs/install.sh | sh
unzip -o ./assets/plasma6macos-zshstarship-konsole.zip -d ~
mkdir -p ~/.local/share/fastfetch
unzip -o ./assets/plasma6macos-fastfetch.zip "ascii/*" "presets/*" -d ~/.local/share/fastfetch/Edita el fichero ~/.zshrc
nano ~/.zshrcPara mostrar información del PC al abrir una terminal añadiendo el siguiente contenido al final
if [[ $- == *i* ]] && [[ "$TERM_PROGRAM" != "vscode" ]]; then
clear
fastfetch --config sysinfo
fiEdita ~/.config/starship.toml para personalizar el prompt
nano ~/.config/starship.tomlAñade a la sección [os.symbols] la sección para CachyOS.
CachyOS = ""Es posible que no se vea el icono en GitHub
Comprueba el nuevo terminal
source ~/.zshrcAccede a las preferencias de Konsole y asegúrate que zsh-starship sea el Perfil predeterminado
En VSCode configura el terminal por defecto a zsh y la fuente a FiraCode Nerd Font Mono para ver los iconos. (~/.config/Code/User/settings.json)
"terminal.integrated.defaultProfile.linux": "zsh",
"terminal.integrated.fontFamily": "FiraCode Nerd Font Mono",Note
Si la fuente FiraCode Nerd Font no se ve correctamente, asegúrate de haberla instalado desde AUR.
Por último, activa zsh como la shell por defecto del sistema (sustituye la shell actual al iniciar sesión):
chsh -s $(which zsh)Important
Cierra sesión y vuelve a entrar para que el cambio surta efecto. La shell por defecto en Konsole se hereda de esta configuración del sistema.
Important
Para que el plugin funcione puede ser necesario tener Wallpaper Engine instalado en Steam y activar la compatibilidad Windows 7 en las opciones del programa.
Ajusta los fondos de escritorio seleccionando la opción Wallpaper Engine for Kde en el desplegable de Tipo de fondo
Pulsa sobre Library para buscar la carpeta raíz de la librería de Steam. Debes seleccionar el directorio que contiene steamapps. SteamLibrary en este caso:
├── SteamLibrary
│ ├── steamapps
│ ├── libraryfolder.vdf
│ └── steam.dll
└── ...
Los fondos que tengas descargados en Wallpaper Engine (si está sincronizado) deberían aparecer automáticamente.
Tip
En el apartado Settings puedes establecer ajustes concretos del fondo. Es recomendable usar Display: Scale and Dropp para que el fondo se ajuste correctamente al escritorio.
Instala y aplica el tema Utterly-Nord desde el apartado de Tema global en las preferencias.
Tip
Puedes pulsar sobre Obtener novedades y buscarlo o importar el fichero Utterly-Nord
En el apartado Instalar / Actualizar temas, selecciona la carpeta con la extracción de Utterly-Nord-kvantum y pulsa Instalar.
Tip
También disponible en la tienda de KDE
En el apartado Cambiar / borrar un tema, selecciona Utterly-Nord y pulsa Usar este team
Important
Asegúrate que en el apartado de Estilo de las aplicaciones esté seleccionado y aplicado el estilo kvantum-dark
Instala y aplica el tema Utterly Round Dark desde el apartado de Decoraciones de las ventanas en las preferencias.
En este mismo apartado, ajusta en la parte superior el borda a Sin bordes de ventana
Tip
Puedes pulsar sobre Obtener novedades y buscarlo o importar el fichero Utterly-Round-Desktop
Pulsa en Obtener novedades, busca el set de iconos Tela y selecciona y aplica el set Tela Dark
Important
En este punto, debes reiniciar el sistema para asegurar que todas las configuraciones se hayan aplicado correctamente.
Warning
Por ahora esto no está funcionando correctamente, así que edita los elementos gráficos de la barra superior y elimina el componente WindowButtons
Este plasmoid sirve para mostrar los botones de la ventana (cerrar, maximizar, ...) en la barra superior.
sudo ./.local/share/plasma/plasmoids/org.kde.windowbuttons/lib-install.sh
kwriteconfig6 --file ~/.config/kwinrc --group Windows --key BorderlessMaximizedWindows false
qdbus6 org.kde.KWin /KWin reconfigurePuedes instalar las siguiente fuentes desde el menú Gestión de tipos de letra, pulsando sobre Instalar desde el archivo
San Francisco Pro (repositorio y assets) y SF Mono (repositorio y assets)
cd && sudo ./.local/share/plasma/plasmoids/org.kde.windowbuttons/lib-install.shAjustes visuales de la barra superior y los widgets del escritorio de Plasma:
Establece transparencia permanente en los widgets del escritorio desde las preferencias del Panel:
- Pulsa botón derecho sobre el escritorio y selecciona Editar modo de edición.
- En la esquina superior derecha del widget, pulsa sobre Configurar widget (icono de llave inglesa).
- En la opción Fondo, selecciona Traslúcido (sin tono).
En el componente Window Title de la barra superior:
- Pulsa botón derecho sobre el componente y selecciona Mostrar solo icono (o en su defecto, Configurar Window Title y marca la opción Sin texto).
Configura el reloj de la barra superior:
- Pulsa botón derecho sobre el reloj → Configurar el reloj digital.
- Desmarca Mostrar fecha.
- En Formato, selecciona 24h.
- Arrastra el reloj a la parte derecha de la barra superior para que quede junto al System Tray.
Lanzar el script de generación de fondo dinámico
chmod +x ./scripts/dynamic-login-wallpaper.sh
./scripts/dynamic-login-wallpaper.shEl script creará una imagen en ~/.dynamic-login-wallpaper/dynamic-login-wallpaper.png. Esta imagen se establecerá como fondo desde la sección Pantalla de inicio de sesión.
Tip
Cada vez que actualices el fondo de escritorio del Wallpaper Engine deberás ejecutar el script para que se actualice la imagen de fondo. La pantalla de login debería actualizarse automáticamente.
- Activar en KWin scripts de escritorios virtuales solo en monitor principal.
- Instalar y activar el script KWin "Remember Window Positions" para restaurar ventanas.
En Preferencias > Atajos de Teclado > Gestión de Ventanas configura los siguientes atajos:
| Acción | Atajo |
|---|---|
| Mover ventana al centro | Ctrl + Meta + C |
| Mover ventana mosaico superior derecho | Ctrl + Meta + O |
| Mover ventana mosaico superior izquierdo | Ctrl + Meta + I |
| Mover ventana mosaico inferior derecho | Ctrl + Meta + L |
| Mover ventana mosaico inferior izquierdo | Ctrl + Meta + K |
En Preferencias > Gestión de Ventanas > Selector de Tareas, ajusta el efecto a Barra Lateral para mostrar las ventanas abiertas en un panel lateral al usar Alt + Tab.
PlatformIO:
curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/develop/platformio/assets/system/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules
sudo udevadm control --reload-rules
sudo udevadm triggerST-Link:
sudo nano /etc/udev/rules.d/49-stlink-udev.rulesAñadir el siguiente contenido al fichero:
# ST-Link V2
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", MODE="0666"
# ST-Link V2-1
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", MODE="0666"
# ST-Link V2.1 (en mi caso)
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3752", MODE="0666"
# ST-Link V3
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374f", MODE="0666"Note
Es posible que haya dispositivos ST-Link con diferente idVendor o idProduct
Recargar reglas tras editar:
sudo udevadm control --reload-rules
sudo udevadm triggerAbrir puerto para MacroDeck (TCP 8191):
sudo ufw allow 8191/tcpMontaje desde Dolphin:
- Abre
smb://<LOCAL_IP_OR_HOSTNAME>en Dolphin. - Accede por primera vez a algún directorio y guarda las credenciales
- Luego, pulsa botón derecho y selecciona "Añadir a Lugares" para montarlo automáticamente de ahora en adelante.
Comprueba las particiones y discos para obtener su UUID:
lsblk -fEdita el fichero fstab para montar automáticamente las unidades al iniciar
sudo nano /etc/fstabAñade al final del fichero las configuraciones que correspondan
# storage
UUID=<UUID_STORAGE> /mnt/storage btrfs defaults,noatime,compress=zstd:3 0 0
# OPRobots
UUID=<UUID_OPROBOTS> /mnt/OPRobots ntfs3 rw,user,exec,uid=<UID>,gid=<GID>,noatime 0 0
# NobaraOS
UUID=<UUID_NOBARA> /mnt/NobaraOS btrfs defaults,noatime 0 0Tip
Para obtener tu UID y GID puedes ejecutar id -u e id -g respectivamente en una terminal
Verificar montajes antes de reiniciar:
sudo mount -aImportant
Si reinicias sin comprobar si no hay errores, puede que el sistema entre en "modo emergencia"
Crear un lanzador que fuerce lectura STEP:
cp /usr/share/applications/f3d.desktop ~/.local/share/applications/f3d-step.desktop
nano ~/.local/share/applications/f3d-step.desktopDentro del .desktop, añade o modifica:
Exec=f3d --force-reader=STEP %F
Name=F3D STEP ViewerActualizar la base de datos de aplicaciones:
update-desktop-database ~/.local/share/applicationsMiniaturas para STEP (thumbnailer):
mkdir -p ~/.local/share/thumbnailers
cp /usr/share/thumbnailers/f3d-plugin-occt.thumbnailer ~/.local/share/thumbnailers/
nano ~/.local/share/thumbnailers/f3d-plugin-occt.thumbnailerDentro del archivo *.thumbnailer ajusta Exec= así:
Exec=f3d --config=thumbnail --load-plugins=occt --force-reader=STEP --verbose=quiet --output=%o --resolution=%s,%s %iForzar regeneración de miniaturas y reiniciar Dolphin:
rm -rf ~/.cache/thumbnails/*
kquitapp6 dolphin || true
dolphin &Note
Es necesario activar las miniaturas para los tipos de ficheros necesarios; en mi caso todos
- Cambia el icono de Descargas a "Barra de Direcciones" para evitar el panel lateral.
- En Apariencia, elige "Usar ventana nativa" para una mejor integración con KDE y el tema custom.
- Limpia la barra lateral dejando solo servicios de chat IA (Copilot, ChatGPT, Gemini) y servicios de mensajería (Telegram, WhatsApp)
Tip
Para que funcione WhatsApp es necesario activar el modo de visualización del panel y navegar al home para que se muestre el QR de inicio de sesión
- Cambia en el apartado Aspecto al tema QT y activa Usar bordes y barra de título para mejor integración con KDE y tema custom.
Modifica los argumentos del lanzador con el programa Editor del menu para que use X11 en lugar de Wayland
--enable-features=UseOzonePlatform --ozone-platform=x11 %FTip
Edita directamente el lanzador de /usr/share/applications/code.desktop para aplicar los cambios también a la acción "Abrir nueva ventana"
De esta forma VSCode respetará el diseño de botones y menús y será más compatible con aplicaciones X11 (zoom-to-mouse de OBS, por ejemplo)
Crea un nuevo servicio para ydotoold
mkdir -p ~/.config/systemd/user
nano ~/.config/systemd/user/ydotoold.serviceCon el siguiente contenido
[Unit]
Description=ydotool daemon
[Service]
ExecStart=/usr/bin/ydotoold --socket-path=/run/user/<UID>/.ydotool_socket
Restart=on-failure
[Install]
WantedBy=default.targetLanza el nuevo servicio y comprueba su estado para verificar que esté activo
systemctl --user daemon-reload
systemctl --user enable --now ydotoold
systemctl --user status ydotooldTip
Si el servicio no arranca correctamente, cierra cualquier otra instancia previa de ydotoold, reinicia la sesión y vuelve a intentarlo.
Para obtener tu UID puedes ejecutar id -u en la terminal
Configura un nuevo atajo Atajos Personalizados que ejecute el script emoji-picker.sh.
Daemon que convierte gestos del ratón en atajos de teclado de KDE Plasma, usando los botones laterales Adelante y Atrás como modificadores. Los botones siguen funcionando con normalidad cuando no activan un gesto.
| Gesto | Acción |
|---|---|
| Mantener Adelante (≥ 0,4 s) | Captura de pantalla (selección de región) |
| Atrás + mover arriba | Mosaico de ventanas del escritorio actual |
| Atrás + mover abajo | Preview de todos los escritorios virtuales |
| Atrás + mover derecha | Escritorio virtual anterior |
| Atrás + mover izquierda | Escritorio virtual siguiente |
Consulta la guía completa de instalación y uso.
Edita los argumentos del lanzador en ~/.local/share/applications/ para dar compatibilidad con la interfaz gráfica y las fuentes necesarias
__NV_DISABLE_EXPLICIT_SYNC=1, QT_QPA_PLATFORM=xcbActiva el servidor WebSocket en el desplegable de Herramientas
En la aplicación de Bottles, accede al menú de Importar y selecciona Archivo completo en la esquina superior izquierda para importar el fichero MacroDeck-backup y restaurar la Bottle.
Abre MacroDeck y configura el plugin de conexión con OBS. Debería bastar con actualizar la contraseña.
Añade Macro Deck 2 al directorio de inicio automático copiando su lanzador de ~/.local/share/applications/ a ~/.config/autostart/
En la aplicación de Bottles, accede al menú de Importar y selecciona Archivo completo en la esquina superior izquierda para importar el fichero BLHeliSuite-backup y restaurar la Bottle.
Crea un nuevo lanzador para la Bottle de BLHeliSuite
nano ~/.local/share/applications/blhelisuite.desktopCon el siguiente contenido:
[Desktop Entry]
Comment=Launch BLHeliSuite using Bottles (update COM ports if needed).
Exec="$HOME/Scripts/CachyOS Customization/scripts/blheli-suite-port-sharing.sh"
Icon="$HOME/.var/app/com.usebottles.bottles/data/bottles/bottles/BLHeli-Suite/icons/icon_promo.png"
Name=BLHeliSuite
NoDisplay=false
Path=
PrefersNonDefaultGPU=false
StartupNotify=true
StartupWMClass=BLHeliSuite
Terminal=false
TryExec=/var/lib/flatpak/exports/bin/com.usebottles.bottles
Type=Application
X-Flatpak=com.usebottles.bottles
X-KDE-SubstituteUID=falseActualiza la base de datos de aplicaciones para que el nuevo lanzador esté disponible
update-desktop-database ~/.local/share/applicationsNote
Asegúrate de que el script blheli-suite-port-sharing.sh tenga permisos de ejecución (chmod +x blheli-suite-port-sharing.sh).
Es posible que sea necesario actualizar la ruta de la imagen del icono para usar ruta absoluta sin variable de entorno $HOME para que se muestre correctamente en el lanzador.
- Crear credenciales en Google Cloud Console (resumen paso a paso):
- Ve a https://console.cloud.google.com/ y crea un proyecto nuevo (ej.: CachyOS-rclone).
- En la barra de búsqueda superior, busca Google Drive API y dale a Habilitar.
- Ve a Pantalla de consentimiento de OAuth en APIs y servicios, selecciona tipo de usuario Externo, ponle un nombre y guarda (no necesitas rellenar más datos).
- En la sección Usuarios de prueba dentro de Público, añade la cuenta de Gmail que vas a usar para autorizar (tu correo personal).
- Ve a Clientes y pulsa en Crear cliente. Selecciona tipo de aplicación: Aplicación de escritorio (Desktop app) y haz clic en Crear.
- Copia el
Client IDyClient Secretque genera Google.
- Configurar sincronización:
rclone confignpara nuevo remoto- Nombre:
gdrive(o el que prefieras). - Tipo de almacenamiento: selecciona
drive(Google Drive). - Cuando pregunte
client_idyclient_secretpega los valores generados. scope: opciones comunes:drive: acceso completo recomendado si quieres sincronizar todo.drive.readonly: solo lectura.drive.file: acceso limitado a archivos creados por la app.drive.appfolder: carpeta de aplicación dedicada. Eligedrive(1) para sincronizaciones completas.
root_folder_id: dejar en blanco salvo que quieras apuntar a un Shared Drive o carpeta concreta.service_account_file: dejar en blanco para autenticación por OAuth.Edit advanced config?:nsalvo que necesites configurar proxies u opciones especiales.Use auto config?:ySe abrirá el navegador y te pedirá autorización.- Confirma que todo está bien con
yy sal del configurador conq.
- Compartido conmigo:
Si tienes carpetas en Compartido conmigo, añádelas a Mi unidad como accesos directos en la web de Google Drive antes de sincronizar. rclone puede tener problemas con elementos que solo están en Compartido conmigo si no los conviertes en accesos directos dentro de Mi unidad.
- Sincronización inicial con
bisync:
mkdir -p ~/GoogleDrive
rclone bisync gdrive: ~/GoogleDrive \
--resync \
--drive-skip-gdocs \
--drive-skip-dangling-shortcuts \
--compare size,modtime,checksum \
--resilient -vPOpciones usadas:
bisync: intenta mantener ambos lados (local y drive) en sync. Puede eliminar archivos si detecta que han sido borrados en el origen; úsalo con precaución.--resync: fuerza una sincronización completa, útil para la primera ejecución.--drive-skip-gdocs: evita querclonetrate de descargar/convertir Google Docs/Sheets/Slides nativos.--drive-skip-dangling-shortcuts: omite accesos directos que apuntan a elementos inexistentes.--compare size,modtime,checksum: compara por tamaño, fecha de modificación y checksum para detectar cambios con mayor fiabilidad.--resilient: intenta continuar ante errores transitorios y reintentos.--drive-acknowledge-abuse: ermite operar sobre ficheros marcados por Google como abuso/maliciosos; usar con precaución.-vP: mostrar información del proceso y progreso.
- Sincronización periódica con servicio
systemdy temporizador:
Crea el script de sincronización
nano ~/.local/bin/rclone_sync.shY añade el siguiente contenido
#!/bin/bash
if pidof -o %PPID -x "$0"; then
exit 1
fi
rclone bisync gdrive: "$HOME/GoogleDrive" \
--drive-skip-gdocs --drive-skip-dangling-shortcuts \
--drive-acknowledge-abuse --compare size,modtime,checksum --resilientCrea el servicio
nano ~/.config/systemd/user/rclone-sync.serviceY añade el siguiente contenido
[Unit]
Description=Sincronizacion optimizada de Rclone con Google Drive
After=network-online.target
[Service]
Type=oneshot
ExecStart=%h/.local/bin/rclone_sync.sh
[Install]
WantedBy=default.targetCrea el temporizador
nano ~/.config/systemd/user/rclone-sync.timerCon el siguiente contenido
[Unit]
Description=Temporizador para la sincronizacion de Rclone
[Timer]
OnBootSec=5m
OnUnitActiveSec=20m
Persistent=true
[Install]
WantedBy=timers.targetSe ejecutará el script de sincronizazión cada 20 minutos, esperando 5 minutos después del inicio del sistema
Activar y usar:
chmod +x ~/.local/bin/rclone_sync.sh
systemctl --user daemon-reload
systemctl --user enable --now rclone-sync.timerTip
Lista completa de los timers configurados y su próximo tiempo de ejecución: systemctl --user list-timers --all
Logs en tiempo real del proceso: journalctl --user -u rclone-sync.service -f
Forzar sincronización manual en cualquier momento: systemctl --user start rclone-sync.service
Inicia el proceso en segundo plano
teamviewer --daemon startConfigúralo para que se inicie automáticamente con el sistema
Añade el dispositivo a la cuenta para permitir conexión desatendida
Configura tu usuario y correo electrónico para GIT
git config --global user.name xxxxx
git config --global user.email xxxxxY la configuración general de GIT
git config --global init.defaultBranch main
git config --global pull.rebase false
git config --global core.autocrlf inputInicia lfs en el directorio de git que necesites
git lfs installAñade todos los tipos de fichero que quieras gestionar por LFS y añade .gitattributes al control de versiones
git lfs track "*.zip"
git lfs track "*.tar.gz"
git lfs track "*.tar.xz"
git add .gitattributesUsa Proton Experimental en Steam cuando necesites compatibilidad.
En algunos portátiles el touchpad no funciona porque el módulo mfd (Multi-Function Device) no se carga correctamente durante el arranque. Para solucionarlo:
- Edita el archivo de instalación de initcpio para
block:
sudo nano /usr/lib/initcpio/install/block- Busca y comenta la siguiente línea añadiendo un
#al inicio:
# add_checked_modules '/drivers/mfd/'- Reconstruye la imagen de initramfs:
sudo mkinitcpio -P- Reinicia el sistema.
Note
Comentar esta línea evita que initcpio filtre los controladores del subsistema mfd, permitiendo que se carguen los módulos correctos para el touchpad en el arranque.
Durante una actualización del sistema puede aparecer un conflicto entre vlc-plugin-lua y vlc-plugin-luajit que impide continuar con el update ni desinstalar el paquete en conflicto de forma normal.
La solución es eliminar el paquete conflictivo ignorando las dependencias y luego continuar con la actualización:
sudo pacman -Rdd vlc-plugin-luajit
sudo pacman -SyuWarning
El flag -dd omite la comprobación de dependencias al desinstalar. Úsalo solo cuando sea estrictamente necesario y tengas claro qué paquete está causando el conflicto.
Tip
La ruta en la que se almacenan los lanzadores de inicio automático es ~/.config/autostart/
Los lanzadores *.desktop se almacenan en ~/.local/share/applications/ o /usr/share/applications/ si están instaladas globalmente
Editar el lanzador de Steam con Exec=/usr/bin/steam -silent %U para que inicie ya minimizado.