static-httpd

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 47704a7f2321fe1fd35f856183196f0dc7a70e17
parent 3c666e68b41f20eb6c43514d0e6fccfedcbba3d3
Author: fjbalon <fjbalon@templier.es>
Date:   Wed, 24 Jun 2026 16:03:26 +0200

Mejora de artículo de slock y cambio de png por gif en artículo slock

Diffstat:
Mslock/index.html | 48+++++++++++++++++++++++++++++++++++++++++++++---
Aslock/slock-blur.gif | 0
Dslock/slock-blur.png | 0
3 files changed, 45 insertions(+), 3 deletions(-)

diff --git a/slock/index.html b/slock/index.html @@ -385,6 +385,49 @@ From: Lars Niesen &lt;iah71niesen@gso-koeln.de&gt; </code></pre> <p>De tal forma que, una vez aplicados los cambios de software, al ser ejecutado captura la pantalla completa usando <emb>imlib2</emb> (<emb>imlib_copy_drawable_to_image</emb> desde <emb>RootWindow</emb>), aplica desenfoque directamente sobre es imagen en memoria con <emb>imlib_image_blur(blurRadius)</emb> y la convierte en un Pixmap, que pone como fondo de ventana de bloqueo con <emb>XSetWindowBackgroundPixmap</emb>.</p> <p>Quedando un fondo como el siguiente ejemplo:</p> -<img src="slock-blur.png" /> +<img src="slock-blur.gif" /> +<p>Una vez instalado el programa y siendo posible invocarlo desde cualquier terminal o dmenu, el siguiente es, para mí, crearle un acceso directo de teclas para, desde el gestor de ventanas que utilizo (dwm) poder invocarlo más rápidamente cuando quiera bloquear la pantalla manualmente. Esto lo he hecho sencillamente modificando el <emb>config.h</emb>, y añadiendo:</p> +<pre><code class="diff"><span class="info">diff --git a/config.h b/config.h</span> +<span class="hunk">@@ -62,11 +62,13 @@ static const Layout layouts[] = {</span> + static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */ + static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; + static const char *termcmd[] = { "xterm", NULL }; +<span class="add">+static const char *slockcmd[] = { "slock", NULL };</span> + + static const Key keys[] = { + /* modifier key function argument */ + { MODKEY, XK_r, spawn, {.v = dmenucmd } }, + { MODKEY, XK_Return, spawn, {.v = termcmd } }, +<span class="add">+ { MODKEY|ShiftMask, XK_l, spawn, { .v = slockcmd} },</span> + { MODKEY, XK_b, togglebar, {0} }, + { MODKEY, XK_j, focusstack, {.i = +1 } }, + { MODKEY, XK_k, focusstack, {.i = -1 } },</code></pre> +<p>De tal forma que, con la pulsación de teclas <kbd>Mod4</kbd>+<kbd>Shift</kbd>+<kbd>l</kbd> se ejecuta slock y se bloquea la pantalla.</p> +<p>Cuando cierro la tapa del portátil, el equipo se suspende. Esto provoca el equipo apague casi todos los componentes físicos, pero mantenga una leve alimentación a la memoria RAM, la cual contiene todo el contenido tal cual estaba. De tal forma, al despertar (o abrir la tapa) el equipo alimenta todos los componentes de nuevo, e inicia rápidamente, casi instantáneamente, pues la información ya estaba en RAM. Por lo que cuando voy a desplazarme, cierro y abro la tapa manteniendo la sesión íntegra.</p> +<p>Sin embargo, si no he ejecutado slock antes, al abrir la sesión no estará protegida. Esto es un riesgo de seguridad, pues un tercero podría hacerse con la máquina suspendida, despertarla y tener acceso a toda la sesión sin protección de ningún tipo. Por lo tanto, es interesante añadir una ejecución de slock automática al suspender el equipo.</p> +<p>Eso sí, a menudo tengo el equipo conectado por HDMI a algún monitor o TV, siendo que me interesa cerrar la tapa directamente y mantener el equipo en funcionamiento en otro monitor, por lo que hacerlo automático al cerrar la tapa no sería útil; sino, en concreto, suspender el equipo. La forma, pues, más limpia y fiable será usar, con <emb>elogind</emb>, los hooks de <emb>system-sleep</emb>. Estos son los scripts que se ejecutan automáticamente antes y después de cualquier suspensión o hibernación, independientemente si se activa por cerrar la tapa o por cualquier otro motivo programado. <emb>elogind</emb> es un módulo de systemd que gestiona el login de usuarios, sesiones gráficas y el manejo de energía, pero separada y sin depender de todo systemd, claro (si no, no sería software nativo en Slackware 15).</p> +<p>Lo que he hecho es crear un script en <emb>/lib64/elogind/system-sleep</emb> como el siguiente:</p> +<pre><code>#!/bin/sh +#/lib64/elogind/system-sleep/lock-slock + +USER="javier" +USERHOME="/home/$USER" +DISPLAY=:0 +XAUTHORITY="$USERHOME/.Xauthority" + +case "$1" in + pre) + export DISPLAY XAUTHORITY + su - "$USER" -c "slock" & + sleep 1.5 + ;; + post) + ;; +esac</code></pre> +<p>Evidentemente con sus privilegios necesarios y el reinicio del demonio <emb>elogind</emb>. También podemos ejecutar el último comando para corroborar que, efectivamente, se bloquea la pantalla:</p> +<pre><code>chmod +x /lib64/elogind/system-sleep/lock-slock +/etc/rc.d/rc.elogind restart +/lib64/elogind/system-sleep/lock-slock pre suspend</code></pre> +<p>De tal forma, el equipo se bloqueará usando slock justo antes de ser suspendido, garantizando la seguridad de la máquina una vez despierta.</p> </body> -</html> -\ No newline at end of file +</html> diff --git a/slock/slock-blur.gif b/slock/slock-blur.gif Binary files differ. diff --git a/slock/slock-blur.png b/slock/slock-blur.png Binary files differ.