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:
parent
a0b9afe2f9
commit
3a2a1bb111
8 changed files with 118 additions and 33 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue