Root a demanda, lanzador de escritorio, captura nueva y ajustes

- Root: no se pide la contraseña al arrancar (echaba para atras). Se pide
  solo la primera vez que una accion necesita sudo, y se cachea. --candado
  para el modo seguro. Aviso de root prominente en el README.
- install.sh crea un lanzador de escritorio (jarvis.desktop) con el icono
  naranja: aparece en el menu de aplicaciones para arrancar con un clic.
- Captura del panel reemplazada por una mas limpia (solo la ventana).
- Quitado "Probado en ..." del README (informacion del equipo).
- ventanas.sh: aviso claro segun el compositor en Wayland.
This commit is contained in:
sito 2026-08-16 16:20:27 +02:00
parent a0b9afe2f9
commit 3a2a1bb111
8 changed files with 118 additions and 33 deletions

View file

@ -246,6 +246,11 @@ class Panel:
# (accion, para_que, hasta_cuando). para_que es "argumento" o "confirmar".
self.pendiente = None
# Root a demanda: las manos avisan aqui cuando una accion necesita sudo
# y no hay sesion. En vez de pedir la contraseña al arrancar, se pide
# solo entonces, una vez, y se cachea. Ver _pide_root.
self.manos.al_pedir_root = self._pide_root
# -------------------------------------------------------------- empujar
def arranca(self):
@ -528,6 +533,22 @@ class Panel:
self.tareas.lanza(accion, arg)
return True
def _pide_root(self, comando: str = ""):
"""Muestra el dialogo de contraseña porque una accion necesita root.
No es el candado del arranque eso pedia la contraseña de primeras y
echaba para atras: esto es a demanda, la PRIMERA vez que hace falta
sudo en la sesion. La contraseña que se teclee la valida y la cachea
_intenta_desbloquear (por el mismo canal "desbloquear"), asi que a
partir de ahi el root ya esta abierto y no se vuelve a pedir hasta que
caduque. Corre desde el hilo de las manos, asi que solo manda al HUD.
"""
que = (comando or "").strip()[:60]
self.cara.manda("bloqueo", {
"mensaje": f"Contraseña para: {que}" if que
else "Contraseña de administrador",
"root": True})
def _intenta_desbloquear(self, clave: str):
if not clave:
return