changeset:   2140:0b45fe3128a8
user:        Kris Maglione <jg_AT_suckless.org>
date:        Thu May 24 20:30:48 2007 -0400
summary:     Added basic support for setting a client fullscreen via the fs (and menu). Updated manpages.
diff -r 0fab0d43fd8f -r 0b45fe3128a8 cmd/wmii/client.c
--- a/cmd/wmii/client.c	Thu May 24 17:42:33 2007 -0400
+++ b/cmd/wmii/client.c	Thu May 24 20:30:48 2007 -0400
@@ -434,6 +434,22 @@ kill_client(Client * c) {
 }
 
 void
+fullscreen(Client *c, Bool fullscreen) {
+	Frame *f;
+
+	c->fullscreen = fullscreen;
+	if((f = c->sel)) {
+		if(fullscreen) {
+			if(!f->area->floating)
+				send_to_area(f->view->area, f);
+			focus_client(c);
+		}
+		if(f->view == screen->sel)
+			focus_view(screen, f->view);
+	}
+}
+
+void
 set_urgent(Client *c, Bool urgent, Bool write) {
         XWMHints *wmh;
         char *cwrite, *cnot;
@@ -615,16 +631,8 @@ configreq_event(Window *w, XConfigureReq
         r = rectaddpt(r, p);
         r = gravclient(c, r);
 
-	if((Dx(r) == Dx(screen->r))
-	&& (Dy(r) == Dy(screen->r))) {
-		c->fullscreen = True;
-		if(f) {
-			if(!f->area->floating)
-				send_to_area(f->view->area, f);
-			focus_client(c);
-			restack_view(f->view);
-		}
-	}
+	if((Dx(r) == Dx(screen->r)) && (Dy(r) == Dy(screen->r)))
+		fullscreen(c, True);
 
         if(c->sel->area->floating)
                 resize_client(c, &r);
diff -r 0fab0d43fd8f -r 0b45fe3128a8 cmd/wmii/fns.h
--- a/cmd/wmii/fns.h	Thu May 24 17:42:33 2007 -0400
+++ b/cmd/wmii/fns.h	Thu May 24 20:30:48 2007 -0400
@@ -32,8 +32,9 @@ void unmap_client(Client*, int state);
 void unmap_client(Client*, int state);
 int map_frame(Client*);
 int unmap_frame(Client*);
-void set_urgent(Client *c, Bool urgent, Bool write);
-void set_cursor(Client*, Cursor cur);
+void fullscreen(Client*, Bool);
+void set_urgent(Client *, Bool urgent, Bool write);
+void set_cursor(Client*, Cursor);
 void focus_frame(Frame*, Bool restack);
 void reparent_client(Client*, Window*, Point);
 void manage_client(Client*);
diff -r 0fab0d43fd8f -r 0b45fe3128a8 cmd/wmii/message.c
--- a/cmd/wmii/message.c	Thu May 24 17:42:33 2007 -0400
+++ b/cmd/wmii/message.c	Thu May 24 20:30:48 2007 -0400
@@ -15,6 +15,8 @@ static char
 
 /* Edit |sort   Edit s/"([^"]+)"/L\1/g   Edit |tr 'a-z' 'A-Z' */
 enum {
+	LFULLSCREEN,
+	LNOTFULLSCREEN,
         LNOTURGENT,
         LURGENT,
         LBORDER,
@@ -39,6 +41,8 @@ enum {
         LTILDE,
 };
 char *symtab[] = {
+	"Fullscreen",
+	"NotFullscreen",
         "NotUrgent",
         "Urgent",
         "border",
@@ -351,6 +355,12 @@ message_client(Client *c, Message *m) {
         case LNOTURGENT:
                 set_urgent(c, False, True);
                 break;
+	case LFULLSCREEN:
+		fullscreen(c, True);
+		break;
+	case LNOTFULLSCREEN:
+		fullscreen(c, False);
+		break;
         default:
                 return Ebadcmd;
         }
diff -r 0fab0d43fd8f -r 0b45fe3128a8 man/wmii.1
--- a/man/wmii.1	Thu May 24 17:42:33 2007 -0400
+++ b/man/wmii.1	Thu May 24 20:30:48 2007 -0400
@@ -3,12 +3,128 @@ wmii \(em window manager improved\(emimp
 wmii \(em window manager improved\(emimproved
 .SH SYNOPSIS
 .B wmii
+.RB [ -a
+.IR <address> ]
+.RB [ -c
+.IR <wmiirc> ]
+.br
+.B wmii \-v
+
 .SH DESCRIPTION
+.PD 0
 .SS Overview
 .B wmii
-is a dynamic window manager for X11. See
-.BR wmiiwm (1)
-for more info.
+is a dynamic window manager for X11. In contrast to static window management
+the user rarely has to think about how to organize windows, no matter what he
+is doing or how many applications are used at the same time. The window manager
+adapts to the current environment and fits to the needs of the user, rather 
+than forcing him to use a preset, fixed layout and trying to shoehorn all
+windows and applications into it.
+.P
+.B wmii
+supports classic and tiled window management with extended keyboard and mouse
+control. The classic window management arranges windows in a floating layer
+in which windows can be moved and resized freely. The tiled window management 
+is based on columns which split up the screen horizontally. Each column handles
+arbitrary windows and arranges them vertically in a non\-overlapping way. They
+can then be moved and resized between and within columns at will.
+.P
+.B wmii
+provides a virtual filesystem which represents the internal state similar to
+the procfs of Unix operating systems. Modifying this virtual filesystem results
+in changing the state of the window manager. The virtual filesystem service can
+be accessed through 9P\-capable client programs, like
+.BR wmiir (1) .
+This allows simple and powerful remote control of the core window manager.
+.P
+.B wmii
+basically consists of clients, columns, views, and the bar, which are described
+in detail in the
+.B Terminology
+section.
+
+.SS Terminology
+.TP 2
+Display
+A running X server instance consisting of input devices and screens.
+.TP 2
+Screen
+A physical or virtual (Xinerama or 
+.BR Xnest (1))
+screen of an X display. A screen displays a bar window and a view at a time.
+.TP 2
+Window
+A (rectangular) drawable X object which is displayed on a screen, usually an
+application window.
+.TP 2
+Client
+An application window surrounded by a frame window containing a border and a
+title\-bar.
+.TP 2
+Floating layer
+A screen layer of
+.B wmii
+on top of all other layers, where clients are arranged in a classic (floating)
+way. They can be resized or moved freely.
+.TP 2
+Managed layer
+A screen layer of
+.B wmii
+behind the floating layer, where clients are arranged in a non\-overlapping
+(managed) way.  Here, the window manager dynamically assigns each client a
+size and position. The managed layer consists of columns.
+.TP 2
+Tag
+Alphanumeric strings which can be assigned to a client. This provides a
+mechanism to group clients with similar properties. Clients can have one
+tag, e.g.
+.IR work ,
+or several tags, e.g.
+.IR work+mail .
+Tags are separated with the
+.I +
+character.
+.TP 2
+View
+A set of clients containing a specific tag, quite similiar to a workspace in
+other window managers.  It consists of the floating and managed layers.
+.TP 2
+Column
+A column is a screen area which arranges clients vertically in a
+non\-overlapping way. Columns provide three different modes, which arrange
+clients with equal size, stacked, or maximized respectively. Clients can be
+moved and resized between and within columns freely.
+.TP 2
+Bar
+The bar at the bottom of the screen displays a label for each view and
+allows the creation of arbitrary user\-defined labels.
+.TP 2
+Event
+An event is a message which can be read from a special file in the filesystem
+of
+.BR wmii ,
+such as a mouse button press, a key press, or a message written by a different
+9P\-client.
+.SS Basic window management
+Running a raw
+.B wmii
+process without a
+.BR wmiirc (1)
+script provides basic window management capabilities already. However, to use
+it effectively, remote control through its filesystem interface is necessary.
+By default it is only usable with the mouse in conjunction with the
+.I Mod1 (Alt)
+modifier key. Other interactions, such as customizing the style, killing or
+retagging clients, and grabbing keys, cannot be achieved without accessing the
+filesystem.
+.P
+The filesystem can be accessed by connecting to the
+.I address
+of
+.B wmii
+with any 9P\-capable client, such as
+.BR wmiir (1).
+
 .SS Actions
 An action is a shell script in the default setup, but it can actually be
 any executable file.  It is executed usually by selecting it from the
@@ -196,10 +312,9 @@ and thus can be used in actions:
 .TP
 WMII_ADDRESS
 Socket file of
-.BR wmiiwm (1).
 Used by
 .BR wmiir (1).
 .SH SEE ALSO
-.BR wmiiwm (1),
 .BR dmenu (1),
 .BR wmiir (1)
+
diff -r 0fab0d43fd8f -r 0b45fe3128a8 man/wmiiloop.1
--- a/man/wmiiloop.1	Thu May 24 17:42:33 2007 -0400
+++ b/man/wmiiloop.1	Thu May 24 20:30:48 2007 -0400
@@ -18,62 +18,46 @@ syntax to simplify writing a wmii event 
 
 .br
 .B eventloop
-sends any text up to the first line containing
-.I # 
-.IR Events|Actions|Key ,
-and any text after any other line begining with
-.IR # ,
-directly to its standard output. Any other line is processed based
-on its first word, with every indented line after it taken as its
-.IR body .
-.TP 2
-.BI "Key " sequence
-The key sequence
-.I sequence
-is bound to its
-.IR body .
-.I sequence
-is written to
-.I /keys
-and
-.I body
-is executed, with
-.I $key
-set to
-.I sequence
-whenever the key is pressed.
+associates lines begining with 
+.IR Event ", " Action ", or " Key
+(henceforth known as
+.BR $keyword ),
+followed by arbitrary text (henceforth known as
+.BR $args ),
+with functions which call any indented lines which follow.
+In the function names, all non-alphanumeric characters in $args
+are replaced with underscores (_). The functions are named
+$keyword'_'$args.
 
-.TP 2
-.BI "Event " name
-Whenever an event with
-.I name
-is read from
-.IR /event ,
-.I body
-is executed, with
-.I $event
-set to
-.IR name ,
-and
-.I $[1\-9]
-set to further arguments.
+Any variables in the unintented lines are interpolated by the shell.
 
-.TP 2
-.BI "Action " name
-A function called
-.BI Action_ name
-is created with
-.I body
-as its body, and
-.I name
-is added to the
-.I $ACTIONS
-variable.
+Additionally, each declaration's
+.B $args
+are assigned to a variable named
+.BR $keyword's' .
+In this case, no transliteration occurs. For instance, the following
+declaration:
+
+.B Key 
+.IB $MODKEY -j
+.br
+	echo Got $@
+
+yields (assuming 
+.I $MODKEY
+is set to 
+.IR Mod1 ):
+
+Keys=" $Keys Mod1-j"
+.br
+Mod1_j() {
+.br
+	echo Got $@
+.br
+}
 
 .SH SEE ALSO
 .BR wmii (1),
 .BR wmiir (1),
-.BR wmiiwm (1)
 .B PREFIX/etc/wmiirc
 
-http://www.cs.bell\-labs.com/sys/man/5/INDEX.html
diff -r 0fab0d43fd8f -r 0b45fe3128a8 man/wmiiwm.1
--- a/man/wmiiwm.1	Thu May 24 17:42:33 2007 -0400
+++ b/man/wmiiwm.1	Thu May 24 20:30:48 2007 -0400
@@ -9,40 +9,6 @@ wmiiwm \(em window manager improved\(emi
 .RB [ \-v ]
 .SH DESCRIPTION
 
-.PD 0
-.SS Overview
-.BR wmiiwm (1)
-is the core of window manager improved\(emimproved.
-.P
-.B wmii
-is a dynamic window manager for X11. In contrast to static window management
-the user rarely has to think about how to organize windows, no matter what he
-is doing or how many applications are used at the same time. The window manager
-adapts to the current environment and fits to the needs of the user, rather 
-than forcing him to use a preset, fixed layout and trying to shoehorn all
-windows and applications into it.
-.P
-.B wmii
-supports classic and tiled window management with extended keyboard and mouse
-control. The classic window management arranges windows in a floating layer
-in which windows can be moved and resized freely. The tiled window management 
-is based on columns which split up the screen horizontally. Each column handles
-arbitrary windows and arranges them vertically in a non\-overlapping way. They
-can then be moved and resized between and within columns at will.
-.P
-.B wmii
-provides a virtual filesystem which represents the internal state similar to
-the procfs of Unix operating systems. Modifying this virtual filesystem results
-in changing the state of the window manager. The virtual filesystem service can
-be accessed through 9P\-capable client programs, like
-.BR wmiir (1) .
-This allows simple and powerful remote control of the core window manager.
-.P
-.B wmii
-basically consists of clients, columns, views, and the bar, which are described
-in detail in the
-.B Terminology
-section.
 .SS Options
 .TP
 .BI \-a " address"
@@ -63,86 +29,6 @@ 0.
 .TP
 .B \-v
 Prints version information to stdout, then exits.
-.SS Terminology
-.TP 2
-Display
-A running X server instance consisting of input devices and screens.
-.TP 2
-Screen
-A physical or virtual (Xinerama or 
-.BR Xnest (1))
-screen of an X display. A screen displays a bar window and a view at a time.
-.TP 2
-Window
-A (rectangular) drawable X object which is displayed on a screen, usually an
-application window.
-.TP 2
-Client
-An application window surrounded by a frame window containing a border and a
-title\-bar.
-.TP 2
-Floating layer
-A screen layer of
-.B wmii
-on top of all other layers, where clients are arranged in a classic (floating)
-way. They can be resized or moved freely.
-.TP 2
-Managed layer
-A screen layer of
-.B wmii
-behind the floating layer, where clients are arranged in a non\-overlapping
-(managed) way.  Here, the window manager dynamically assigns each client a
-size and position. The managed layer consists of columns.
-.TP 2
-Tag
-Alphanumeric strings which can be assigned to a client. This provides a
-mechanism to group clients with similar properties. Clients can have one
-tag, e.g.
-.IR work ,
-or several tags, e.g.
-.IR work+mail .
-Tags are separated with the
-.I +
-character.
-.TP 2
-View
-A set of clients containing a specific tag, quite similiar to a workspace in
-other window managers.  It consists of the floating and managed layers.
-.TP 2
-Column
-A column is a screen area which arranges clients vertically in a
-non\-overlapping way. Columns provide three different modes, which arrange
-clients with equal size, stacked, or maximized respectively. Clients can be
-moved and resized between and within columns freely.
-.TP 2
-Bar
-The bar at the bottom of the screen displays a label for each view and
-allows the creation of arbitrary user\-defined labels.
-.TP 2
-Event
-An event is a message which can be read from a special file in the filesystem
-of
-.BR wmiiwm ,
-such as a mouse button press, a key press, or a message written by a different
-9P\-client.
-.SS Basic window management
-Running a raw
-.B wmiiwm
-process without the
-.BR wmii (1)
-script provides basic window management capabilities already. However to use
-it effectively, remote control through its filesystem interface is necessary.
-By default it is only usable with the mouse in conjunction with the
-.I Mod1 (Alt)
-modifier key. Other interactions like customizing the style, killing or
-retagging clients, or grabbing keys cannot be achieved without accessing the
-filesystem.
-.P
-The filesystem can be accessed by connecting to the
-.I address
-of
-.B wmiiwm
-with any 9P\-capable client, like
 .BR wmiir (1).
 .SH SEE ALSO
 .BR wmii (1),
diff -r 0fab0d43fd8f -r 0b45fe3128a8 rc/rc.wmii.rc
--- a/rc/rc.wmii.rc	Thu May 24 17:42:33 2007 -0400
+++ b/rc/rc.wmii.rc	Thu May 24 20:30:48 2007 -0400
@@ -101,10 +101,12 @@ fn Event-ClientMouseDown {
 fn Event-ClientMouseDown {
         client = $1; button = $2
         if(~ $button 3) {
-		do=`{9menu -initial $menulast Nop Delete}
+		do=`{9menu -initial $menulast Nop Delete Fullscreen}
                 switch($do) {
                 case Delete
                         wmiir xwrite /client/$client/ctl kill
+		case Fullscreen
+			wmiir xwrite /client/$client/ctl Fullscreen
                 }
                 if(! ~ $#do 0)
                         menulast = $do;
Received on Fri Jun 01 2007 - 03:10:39 UTC
This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 15:57:09 UTC