# # $Id: calcwins.awk,v 1.21 1996/08/23 01:41:18 ejb Exp $ # $Source: /home/ejb/Xresources/RCS/calcwins.awk,v $ # $Author: ejb $ # # Usage: echo " " | awk -f # { # # Get commandline parameters # WIDTH = $1; # width of screen HEIGHT = $2; # height of screen WM = $3; # windowmanager FONT_H = $4; # font height of default font FONT_W = $5; # font width of default font } END { # # Define global parameters # X_BHEIGHT = 4; # border width vertical extra most x apps X_BWIDTH = 4; # border width horizontal extra most x apps E_BHEIGHT = 2; # border width vertical extra for emacs TITLEBAR = 23; # titlebar height for wm B_MARGIN = 26; # margin at bottom of screen for icons, etc. # # Calculate actual window geometries # xbiff_h = 23; xbiff_w = 40; xbiff_l = WIDTH/2 + 2; xbiff2_l = WIDTH/2 - xbiff_w - 2; xbiff_b = 1; login_l = 0; login_t = 0; login_w = 80; login_h = 15; # Subtract 1 because 1-pixel overlap with qxterm is okay login_pixht = login_h * FONT_H + X_BHEIGHT + TITLEBAR - 1; qxterm_l = 0; qxterm_w = 80; qxterm_h = int((HEIGHT - login_pixht - TITLEBAR - B_MARGIN - \ X_BHEIGHT) / FONT_H); qxterm_b = HEIGHT - login_pixht - (qxterm_h * FONT_H) - TITLEBAR - \ X_BHEIGHT; emacs_w = 81; emacs_h = int((HEIGHT - TITLEBAR - E_BHEIGHT - B_MARGIN)/FONT_H); emacs_l = WIDTH/2; emacs_t = 1; # 0 triggers emacs 19.29 bug; 1 is centered better anyway if ((WM == "olwm") || (WM == "olvwm")) emacs_t += TITLEBAR; glarp_w = 80; glarp_h = int((HEIGHT - TITLEBAR - X_BHEIGHT - B_MARGIN)/FONT_H); if (WM == "olvwm") glarp_l = (3 * WIDTH) / 2; else glarp_l = -WIDTH/2; glarp_b = HEIGHT - (glarp_h * FONT_H) - X_BHEIGHT - TITLEBAR; if (qxterm_h < 30) { qxterm_h = glarp_h; qxterm_b = glarp_b; } fleft_w = glarp_w; fleft_h = glarp_h; fleft_l = 0; fleft_b = glarp_b; # Centered window half the height of the screen and 80 columns wide. center_w = 80; center_h = int((HEIGHT - TITLEBAR) * .7 / FONT_H); center_l = int((WIDTH - (80 * FONT_W) - X_BWIDTH) / 2); center_t = int(HEIGHT * .15); # # Adjust lefts that are WIDTH/2 mod WIDTH in case windows are too # wide # if (80 * FONT_W > WIDTH/2) { emacs_l -= ((emacs_w * FONT_W) - WIDTH/2) + 4; glarp_l -= ((glarp_w * FONT_W) - WIDTH/2) + 6; } puzzle_margin = 10; puzzle_h = HEIGHT - TITLEBAR - 2 * puzzle_margin; puzzle_w = int(WIDTH * 0.45) - 2 * puzzle_margin; puzzle_t = puzzle_margin; puzzle2_l = int((WIDTH - puzzle_w)/2); puzzle3_l = puzzle_margin; # # Print out geometries # nwfmt = "-D%s=%dx%d+%d+%d "; swfmt = "-D%s=%dx%d+%d-%d "; printf(nwfmt, "LOGINGEOM", login_w, login_h, login_left, login_t); printf(swfmt, "QGEOM", qxterm_w, qxterm_h, qxterm_l, qxterm_b); printf(nwfmt, "EGEOM", emacs_w, emacs_h, emacs_l, emacs_t); printf(swfmt, "GLARPGEOM", glarp_w, glarp_h, glarp_l, glarp_b); printf(swfmt, "FLEFTGEOM", fleft_w, fleft_h, fleft_l, fleft_b); printf(swfmt, "XBIFFGEOM", xbiff_w, xbiff_h, xbiff_l, xbiff_b); printf(swfmt, "XBIFF2GEOM", xbiff_w, xbiff_h, xbiff2_l, xbiff_b); printf(nwfmt, "CENTERGEOM", center_w, center_h, center_l, center_t); printf(nwfmt, "PUZZLE2GEOM", puzzle_w, puzzle_h, puzzle2_l, puzzle_t); printf(nwfmt, "PUZZLE3GEOM", puzzle_w, puzzle_h, puzzle3_l, puzzle_t); printf("\n"); }