- Seleccion de modelo: JARVIS cambia su cerebro en caliente (elegir_modelo). - Ventanas en Wayland: backend para Sway e Hyprland (ventanas-wayland.sh). - ROADMAP.md y CONTRIBUTING.md: tareas acotadas y como empezar, para animar commits (mas gestores, mas acciones, probar otros modelos, el RAG). - docs/rag.md: tabla explicita de que se publica y que no del RAG; nota de que un clon recien hecho ya tiene RAG util (man pages + glosario) sin datos privados. - README enlaza el roadmap y menciona la eleccion de modelo.
57 lines
3.2 KiB
Bash
Executable file
57 lines
3.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Backend de ventanas para Wayland (Sway e Hyprland). ventanas.sh delega aqui
|
|
# cuando detecta uno de esos compositores.
|
|
#
|
|
# Por que un fichero aparte y no dentro de ventanas.sh: aquel es X11 puro
|
|
# (xdotool, xrandr) y esta probado; mezclar aqui lo romperia. Cada backend en su
|
|
# sitio, y este se puede iterar sin tocar el que ya funciona.
|
|
#
|
|
# En Wayland NO se pueden mover ventanas AJENAS sin permisos del compositor, asi
|
|
# que esto actua sobre la ventana ACTIVA (la que tiene el foco), que es lo que
|
|
# el compositor si deja hacer. Por eso ignora el <ventana> que si usa el X11.
|
|
#
|
|
# ── ESTADO ──────────────────────────────────────────────────────────────────
|
|
#
|
|
# maximiza / restaura / minimiza: confiables (pantalla completa y scratchpad son
|
|
# ordenes de una linea, bien documentadas en los dos compositores).
|
|
# izquierda / derecha / centro: escritas de la documentacion, A PROBAR en un
|
|
# equipo real —el flotante y las unidades (ppt, %) varian por version—. Es un
|
|
# primer commit ideal para quien use Sway o Hyprland. Ver ROADMAP.md.
|
|
set -uo pipefail
|
|
|
|
verbo=${1:-}
|
|
|
|
if command -v swaymsg >/dev/null 2>&1 && swaymsg -t get_version >/dev/null 2>&1; then
|
|
COMP=sway
|
|
elif command -v hyprctl >/dev/null 2>&1 && hyprctl version >/dev/null 2>&1; then
|
|
COMP=hypr
|
|
else
|
|
echo "no encuentro Sway ni Hyprland en marcha"; exit 1
|
|
fi
|
|
|
|
sway() { swaymsg "$@" >/dev/null 2>&1; }
|
|
hypr() { hyprctl dispatch "$@" >/dev/null 2>&1; }
|
|
|
|
case "$verbo:$COMP" in
|
|
# --- pantalla completa: confiable ---
|
|
maximiza:sway) sway fullscreen enable; echo "Maximizada, señor" ;;
|
|
maximiza:hypr) hypr fullscreen 1; echo "Maximizada, señor" ;;
|
|
restaura:sway) sway fullscreen disable; echo "Restaurada, señor" ;;
|
|
restaura:hypr) hypr fullscreen 0; echo "Restaurada, señor" ;;
|
|
minimiza:sway) sway move scratchpad; echo "Minimizada, señor" ;;
|
|
minimiza:hypr) hypr movetoworkspacesilent special; echo "Minimizada, señor" ;;
|
|
|
|
# --- mitades y centro: A PROBAR (unidades/flotante dependen de la version) ---
|
|
izquierda:sway) sway floating enable; sway resize set width 50 ppt height 100 ppt; sway move absolute position 0 0; echo "A la izquierda, señor" ;;
|
|
derecha:sway) sway floating enable; sway resize set width 50 ppt height 100 ppt; sway move absolute position 50 ppt 0; echo "A la derecha, señor" ;;
|
|
centro:sway) sway floating enable; sway resize set width 70 ppt height 80 ppt; sway move absolute position center; echo "Al centro, señor" ;;
|
|
izquierda:hypr) hypr setfloating; hypr resizeactive exact 50% 100%; hypr moveactive exact 0 0; echo "A la izquierda, señor" ;;
|
|
derecha:hypr) hypr setfloating; hypr resizeactive exact 50% 100%; hypr moveactive exact 50% 0; echo "A la derecha, señor" ;;
|
|
centro:hypr) hypr setfloating; hypr resizeactive exact 70% 80%; hypr centerwindow; echo "Al centro, señor" ;;
|
|
|
|
*)
|
|
echo "en $COMP todavia no esta esa orden de ventanas. Implementadas:" \
|
|
"maximiza, restaura, minimiza, izquierda, derecha, centro." \
|
|
"Las demas (mover entre pantallas, escritorios) estan en el roadmap."
|
|
exit 1 ;;
|
|
esac
|