Compare commits

..

11 Commits
5.6 ... 5.6.1

4 changed files with 22 additions and 22 deletions

View File

@ -61,3 +61,4 @@ e4bcaca8e6ef13d2c3b81f1218ad15e5da4d68bd 5.2
8b7836a471f8f9ee61bec980df00971888d76343 5.4 8b7836a471f8f9ee61bec980df00971888d76343 5.4
85a78d8afa0fe8b106a8223b5327e5bddb5dd5e3 5.4.1 85a78d8afa0fe8b106a8223b5327e5bddb5dd5e3 5.4.1
deaa276abac17ca08fbeb936916e4c8292d293a4 5.5 deaa276abac17ca08fbeb936916e4c8292d293a4 5.5
5550702215773aad462f22a774dced9b87437c51 5.6

View File

@ -1,5 +1,5 @@
# dwm version # dwm version
VERSION = 5.6 VERSION = 5.6.1
# Customize below to fit your system # Customize below to fit your system

26
dwm.1
View File

@ -37,8 +37,10 @@ prints version information to standard output, then exits.
.SH USAGE .SH USAGE
.SS Status bar .SS Status bar
.TP .TP
.B Standard input .B X root window name
is read and displayed in the status text area. is read and displayed in the status text area. It can be set with the
.BR xsetroot (1)
command.
.TP .TP
.B Button1 .B Button1
click on a tag label to display all windows with that tag, click on the layout click on a tag label to display all windows with that tag, click on the layout
@ -56,7 +58,7 @@ click on a tag label adds/removes that tag to/from the focused window.
.TP .TP
.B Mod1\-Shift\-Return .B Mod1\-Shift\-Return
Start Start
.BR xterm. .BR uxterm (1).
.TP .TP
.B Mod1\-, .B Mod1\-,
Focus previous screen, if any. Focus previous screen, if any.
@ -67,7 +69,7 @@ Focus next screen, if any.
.B Mod1\-Shift\-, .B Mod1\-Shift\-,
Send focused window to previous screen, if any. Send focused window to previous screen, if any.
.TP .TP
.B Mod1\-Shift\-, .B Mod1\-Shift\-.
Send focused window to next screen, if any. Send focused window to next screen, if any.
.TP .TP
.B Mod1\-b .B Mod1\-b
@ -110,30 +112,22 @@ Toggle focused window between tiled and floating state.
Toggles to the previously selected tags. Toggles to the previously selected tags.
.TP .TP
.B Mod1\-Shift\-[1..n] .B Mod1\-Shift\-[1..n]
Apply Apply nth tag to focused window.
.RB nth
tag to focused window.
.TP .TP
.B Mod1\-Shift\-0 .B Mod1\-Shift\-0
Apply all tags to focused window. Apply all tags to focused window.
.TP .TP
.B Mod1\-Control\-Shift\-[1..n] .B Mod1\-Control\-Shift\-[1..n]
Add/remove Add/remove nth tag to/from focused window.
.B nth
tag to/from focused window.
.TP .TP
.B Mod1\-[1..n] .B Mod1\-[1..n]
View all windows with View all windows with nth tag.
.BR nth
tag.
.TP .TP
.B Mod1\-0 .B Mod1\-0
View all windows with any tag. View all windows with any tag.
.TP .TP
.B Mod1\-Control\-[1..n] .B Mod1\-Control\-[1..n]
Add/remove all windows with Add/remove all windows with nth tag to/from the view.
.BR nth
tag to/from the view.
.TP .TP
.B Mod1\-Shift\-q .B Mod1\-Shift\-q
Quit dwm. Quit dwm.

15
dwm.c
View File

@ -350,9 +350,9 @@ applysizehints(Client *c, int *x, int *y, int *w, int *h, Bool interact) {
/* adjust for aspect limits */ /* adjust for aspect limits */
if(c->mina > 0 && c->maxa > 0) { if(c->mina > 0 && c->maxa > 0) {
if(c->maxa < (float)*w / *h) if(c->maxa < (float)*w / *h)
*w = *h * c->maxa; *w = *h * c->maxa + 0.5;
else if(c->mina < (float)*h / *w) else if(c->mina < (float)*h / *w)
*h = *w * c->mina; *h = *w * c->mina + 0.5;
} }
if(baseismin) { /* increment calculation requires this */ if(baseismin) { /* increment calculation requires this */
*w -= c->basew; *w -= c->basew;
@ -1683,7 +1683,7 @@ updatebarpos(Monitor *m) {
void void
updategeom(void) { updategeom(void) {
int i, n = 1; int i, n = 1, nn;
Client *c; Client *c;
Monitor *newmons = NULL, *m = NULL, *tm; Monitor *newmons = NULL, *m = NULL, *tm;
@ -1692,6 +1692,11 @@ updategeom(void) {
if(XineramaIsActive(dpy)) if(XineramaIsActive(dpy))
info = XineramaQueryScreens(dpy, &n); info = XineramaQueryScreens(dpy, &n);
for(i = 1, nn = n; i < n; i++)
if(info[i - 1].x_org == info[i].x_org && info[i - 1].y_org == info[i].y_org
&& info[i - 1].width == info[i].width && info[i - 1].height == info[i].height)
--nn;
n = nn; /* we only consider unique geometries as separate screens */
#endif /* XINERAMA */ #endif /* XINERAMA */
/* allocate monitor(s) for the new geometry setup */ /* allocate monitor(s) for the new geometry setup */
for(i = 0; i < n; i++) { for(i = 0; i < n; i++) {
@ -1807,8 +1812,8 @@ updatesizehints(Client *c) {
else else
c->minw = c->minh = 0; c->minw = c->minh = 0;
if(size.flags & PAspect) { if(size.flags & PAspect) {
c->mina = (float)size.min_aspect.y / (float)size.min_aspect.x; c->mina = (float)size.min_aspect.y / size.min_aspect.x;
c->maxa = (float)size.max_aspect.x / (float)size.max_aspect.y; c->maxa = (float)size.max_aspect.x / size.max_aspect.y;
} }
else else
c->maxa = c->mina = 0.0; c->maxa = c->mina = 0.0;