Artix + S6 suite + dwm - Peak unix 🗿

7 Me gusta

Me gusta mantener la estética propia de dwm sin necesidad de hacer tantos cambios.

Lo único que cambiaría, bajo mi criterio estético:

  • Para dar más estabilidad visual y de color sería la de dar, a la sección que identifica la ventana enfocada, el mismo color que el resto de la barra. Esto se puede lograr fácilmente con el patch titlecolor, que añade un nuevo esquema de color para ser utilizado por el título de la ventana, de modo que sus colores -primer plano y fondo- se puedan modificar de forma independiente. Y en ese caso, pongo los mismos.

  • Eliminaría el borde cian que marca la ventana enfocada cuando sólo hay una ventana. Así se gana en simplicidad visual. Además, si sólo hay una ventana, no es necesario que marques el enfoque, sólo hay una opción. Esto se puede lograr con noborderfloating.

1 me gusta

Cambio de titlecolor

En config.def.h añadir un nuevo esquema de color:

@@ -16,6 +16,7 @@ static const char *colors[][3]      = {
 	/*               fg         bg         border   */
 	[SchemeNorm] = { col_gray3, col_gray1, col_gray2 },
 	[SchemeSel]  = { col_gray4, col_cyan,  col_cyan  },
+	[SchemeTitle]  = { col_gray4, col_cyan,  col_cyan  },
 };

Y en dwm.c, añadimos el esquema de color a la numeración de posibles y modificamos la función drw_setscheme:

@@ -59,7 +59,7 @@
 
 /* enums */
 enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
-enum { SchemeNorm, SchemeSel }; /* color schemes */
+enum { SchemeNorm, SchemeSel, SchemeTitle }; /* color schemes */
 enum { NetSupported, NetWMName, NetWMState, NetWMCheck,
        NetWMFullscreen, NetActiveWindow, NetWMWindowType,
        NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */
@@ -731,7 +731,7 @@ drawbar(Monitor *m)
 
 	if ((w = m->ww - tw - x) > bh) {
 		if (m->sel) {
-			drw_setscheme(drw, scheme[m == selmon ? SchemeSel : SchemeNorm]);
+			drw_setscheme(drw, scheme[m == selmon ? SchemeTitle : SchemeNorm]);
 			drw_text(drw, x, 0, w, bh, lrpad / 2, m->sel->name, 0);
 			if (m->sel->isfloating)
 				drw_rect(drw, x + boxs, boxs, boxw, boxw, m->sel->isfixed, 0);

Eliminación de bordes cuando sólo hay una ventana

En este caso, más sencillo aún, sólo tienes que añadir en la función resizeclient de dwm.c el condicional:

@@ -1282,6 +1282,13 @@ resizeclient(Client *c, int x, int y, int w, int h)
	c->oldw = c->w; c->w = wc.width = w;
 	c->oldh = c->h; c->h = wc.height = h;
	wc.border_width = c->bw;
+	if (((nexttiled(c->mon->clients) == c && !nexttiled(c->next))
+	    || &monocle == c->mon->lt[c->mon->sellt]->arrange)
+	    && !c->isfullscreen && !c->isfloating) {
+		c->w = wc.width += c->bw * 2;
+		c->h = wc.height += c->bw * 2;
+		wc.border_width = 0;
+	}
 	XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc);
 	configure(c);
 	XSync(dpy, False);
1 me gusta

También me gusta la estética original de dwm, es simple.

Hasta ahora no tengo ningún patch aplicado en dwm, solo algunas modificaciones menores: fuentes y otro ajuste que hice para que st ocupe el 100% del espacio disponible, porque me dejaba un pequeño gap a un lado, dependiendo de la posición.

El dwm-noborderfloating*-*.diff lo probé y pasó sin problemas. El de titlecolor lo voy a considerar, se me ocurre que cambie de color para que haga match con la modeline de Emacs, aunque ese sería un cambio al bg, no?.

Igual trato de no alejarme mucho del comportamiento base de dwm, pero ese tipo de cambios pequeños sí suma. ¿Has aplicado algún otro patch que vaya por la línea del minimalismo?

1 me gusta