* i3 - an improved dynamic tiling window manager
* © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
*
+ * assignments.c: Assignments for specific windows (for_window).
+ *
*/
#include "all.h"
* vim:ts=4:sw=4:expandtab
*
* i3 - an improved dynamic tiling window manager
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
*
- * © 2009-2011 Michael Stapelberg and contributors
- *
- * See file LICENSE for license information.
- *
- * src/click.c: Contains the handlers for button press (mouse click) events
- * because they are quite large.
+ * click.c: Button press (mouse click) events.
*
*/
+#include "all.h"
+
#include <time.h>
#include <math.h>
#include <X11/XKBlib.h>
-#include "all.h"
-
-
typedef enum { CLICK_BORDER = 0, CLICK_DECORATION = 1, CLICK_INSIDE = 2 } click_destination_t;
/*
* vim:ts=4:sw=4:expandtab
*
* i3 - an improved dynamic tiling window manager
- * © 2009-2010 Michael Stapelberg and contributors (see also: LICENSE)
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
*
- * con.c contains all functions which deal with containers directly (creating
- * containers, searching containers, getting specific properties from
- * containers, …).
+ * con.c: Functions which deal with containers directly (creating containers,
+ * searching containers, getting specific properties from containers,
+ * …).
*
*/
#include "all.h"
* vim:ts=4:sw=4:expandtab
*
* i3 - an improved dynamic tiling window manager
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
*
- * © 2009-2010 Michael Stapelberg and contributors
- *
- * See file LICENSE for license information.
- *
- * src/config.c: Contains all functions handling the configuration file (calling
- * the parser (src/cfgparse.y) with the correct path, switching key bindings
- * mode).
+ * config.c: Configuration file (calling the parser (src/cfgparse.y) with the
+ * correct path, switching key bindings mode).
*
*/
+#include "all.h"
/* We need Xlib for XStringToKeysym */
#include <X11/Xlib.h>
-#include "all.h"
-
char *current_configpath = NULL;
Config config;
struct modes_head modes;
/*
- * vim:ts=8:expandtab
+ * vim:ts=4:sw=4:expandtab
*
* i3 - an improved dynamic tiling window manager
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
*
- * © 2009-2010 Michael Stapelberg and contributors
- *
- * See file LICENSE for license information.
- *
- * debug.c: Contains debugging functions, especially FormatEvent, which prints unhandled events.
- * This code is from xcb-util.
+ * debug.c: Debugging functions, especially FormatEvent, which prints unhandled
+ * events. This code is from xcb-util.
*
*/
#include <stdio.h>
* vim:ts=4:sw=4:expandtab
*
* i3 - an improved dynamic tiling window manager
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
*
- * © 2009-2011 Michael Stapelberg and contributors
- *
- * See file LICENSE for license information.
- *
- * ewmh.c: Functions to get/set certain EWMH properties easily.
+ * ewmh.c: Get/set certain EWMH properties easily.
*
*/
-
#include "all.h"
/*
* vim:ts=4:sw=4:expandtab
*
* i3 - an improved dynamic tiling window manager
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
*
- * © 2009-2010 Michael Stapelberg and contributors
- *
- * See file LICENSE for license information.
- *
- * src/floating.c: contains all functions for handling floating clients
+ * floating.c: Floating windows.
*
*/
-
-
#include "all.h"
extern xcb_connection_t *conn;
* i3 - an improved dynamic tiling window manager
* © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
*
+ * handlers.c: Small handlers for various events (keypresses, focus changes,
+ * …).
+ *
*/
-#include <time.h>
+#include "all.h"
+#include <time.h>
#include <xcb/randr.h>
-
#include <X11/XKBlib.h>
-
#define SN_API_NOT_YET_FROZEN 1
#include <libsn/sn-monitor.h>
-#include "all.h"
-
int randr_base = -1;
/* After mapping/unmapping windows, a notify event is generated. However, we don’t want it,
* vim:ts=4:sw=4:expandtab
*
* i3 - an improved dynamic tiling window manager
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
*
- * © 2009-2011 Michael Stapelberg and contributors
- *
- * See file LICENSE for license information.
- *
- * ipc.c: Everything about the UNIX domain sockets for IPC
+ * ipc.c: UNIX domain socket IPC (initialization, client handling, protocol).
*
*/
+#include "all.h"
+
#include <sys/socket.h>
#include <sys/un.h>
#include <fcntl.h>
#include <yajl/yajl_parse.h>
#include <yajl/yajl_version.h>
-#include "all.h"
-
char *current_socketpath = NULL;
/* Shorter names for all those yajl_gen_* functions */
/*
* vim:ts=4:sw=4:expandtab
*
+ * i3 - an improved dynamic tiling window manager
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
+ *
+ * load_layout.c: Restore (parts of) the layout, for example after an inplace
+ * restart.
+ *
*/
+#include "all.h"
+
#include <yajl/yajl_common.h>
#include <yajl/yajl_gen.h>
#include <yajl/yajl_parse.h>
#include <yajl/yajl_version.h>
-#include "all.h"
-
/* TODO: refactor the whole parsing thing */
static char *last_key;
* vim:ts=4:sw=4:expandtab
*
* i3 - an improved dynamic tiling window manager
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
*
- * © 2009-2010 Michael Stapelberg and contributors
- *
- * See file LICENSE for license information.
- *
- * src/log.c: handles the setting of loglevels, contains the logging functions.
+ * log.c: Setting of loglevels, logging functions.
*
*/
#include <stdarg.h>
/*
* vim:ts=4:sw=4:expandtab
+ *
+ * i3 - an improved dynamic tiling window manager
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
+ *
+ * main.c: Initialization, main loop
+ *
*/
#include <ev.h>
#include <fcntl.h>
* i3 - an improved dynamic tiling window manager
* © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
*
- * manage.c: Contains all functions for initially managing new windows
- * (or existing ones on restart).
+ * manage.c: Initially managing new windows (or existing ones on restart).
*
*/
-
#include "all.h"
/*
* match_matches_window() to find the windows affected by this command.
*
*/
-
#include "all.h"
/*
/*
* vim:ts=4:sw=4:expandtab
+ *
+ * i3 - an improved dynamic tiling window manager
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
+ *
+ * move.c: Moving containers into some direction.
+ *
*/
-
#include "all.h"
+
#include "cmdparse.tab.h"
typedef enum { BEFORE, AFTER } position_t;
/*
* vim:ts=4:sw=4:expandtab
+ *
+ * i3 - an improved dynamic tiling window manager
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
+ *
+ * output.c: Output (monitor) related functions.
+ *
*/
-
#include "all.h"
/*
* vim:ts=4:sw=4:expandtab
*
* i3 - an improved dynamic tiling window manager
- *
- * © 2009-2011 Michael Stapelberg and contributors
- *
- * See file LICENSE for license information.
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
*
* For more information on RandR, please see the X.org RandR specification at
* http://cgit.freedesktop.org/xorg/proto/randrproto/tree/randrproto.txt
* (take your time to read it completely, it answers all questions).
*
*/
-#include <time.h>
+#include "all.h"
+#include <time.h>
#include <xcb/randr.h>
-#include "all.h"
-
/* While a clean namespace is usually a pretty good thing, we really need
* to use shorter names than the whole xcb_randr_* default names. */
typedef xcb_randr_get_crtc_info_reply_t crtc_info;
* i3 - an improved dynamic tiling window manager
* © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
*
+ * regex.c: Interface to libPCRE (perl compatible regular expressions).
*
*/
-
#include "all.h"
/*
/*
* vim:ts=4:sw=4:expandtab
+ *
+ * i3 - an improved dynamic tiling window manager
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
+ *
+ * render.c: Renders (determines position/sizes) the layout tree, updating the
+ * various rects. Needs to be pushed to X11 (see x.c) to be visible.
+ *
*/
-
#include "all.h"
/* change this to 'true' if you want to have additional borders around every
/*
* vim:ts=4:sw=4:expandtab
+ *
+ * i3 - an improved dynamic tiling window manager
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
+ *
+ * resize.c: Interactive resizing.
+ *
*/
#include "all.h"
* vim:ts=4:sw=4:expandtab
*
* i3 - an improved dynamic tiling window manager
- *
- * © 2009-2010 Michael Stapelberg and contributors
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
* © 2009-2010 Jan-Erik Rediger
*
- * See file LICENSE for license information.
- *
- * sighandler.c: contains all functions for signal handling
+ * sighandler.c: Interactive crash dialog upon SIGSEGV/SIGABRT/SIGFPE (offers
+ * to restart inplace).
*
*/
+#include "all.h"
+
#include <ev.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
#include <iconv.h>
#include <signal.h>
-#include <xcb/xcb.h>
-#include <xcb/xcb_aux.h>
#include <xcb/xcb_event.h>
-#include <xcb/xcb_keysyms.h>
#include <X11/keysym.h>
-#include "all.h"
-
static xcb_gcontext_t pixmap_gc;
static xcb_pixmap_t pixmap;
static int raised_signal;
* vim:ts=4:sw=4:expandtab
*
* i3 - an improved dynamic tiling window manager
- *
- * © 2009-2011 Michael Stapelberg and contributors
- *
- * See file LICENSE for license information.
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
*
* startup.c: Startup notification code. Ensures a startup notification context
- * is setup when launching applications. We store the current workspace to open
- * windows in that startup notification context on the appropriate workspace.
+ * is setup when launching applications. We store the current
+ * workspace to open windows in that startup notification context on
+ * the appropriate workspace.
*
*/
+#include "all.h"
+
#include <sys/types.h>
#include <sys/wait.h>
#define SN_API_NOT_YET_FROZEN 1
#include <libsn/sn-launcher.h>
-#include "all.h"
-
static TAILQ_HEAD(startup_sequence_head, Startup_Sequence) startup_sequences =
TAILQ_HEAD_INITIALIZER(startup_sequences);
/*
* vim:ts=4:sw=4:expandtab
+ *
+ * i3 - an improved dynamic tiling window manager
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
+ *
+ * tree.c: Everything that primarily modifies the layout tree data structure.
+ *
*/
-
#include "all.h"
struct Con *croot;
* vim:ts=4:sw=4:expandtab
*
* i3 - an improved dynamic tiling window manager
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
*
- * © 2009-2011 Michael Stapelberg and contributors
- *
- * See file LICENSE for license information.
- *
- * util.c: Utility functions, which can be useful everywhere.
+ * util.c: Utility functions, which can be useful everywhere within i3 (see
+ * also libi3).
*
*/
+#include "all.h"
+
#include <sys/wait.h>
#include <stdarg.h>
#include <iconv.h>
#define SN_API_NOT_YET_FROZEN 1
#include <libsn/sn-launcher.h>
-#include "all.h"
-
static iconv_t conversion_descriptor = 0;
int min(int a, int b) {
* i3 - an improved dynamic tiling window manager
* © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
*
+ * window.c: Updates window attributes (X11 hints/properties).
+ *
*/
#include "all.h"
* i3 - an improved dynamic tiling window manager
* © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
*
- * workspace.c: Functions for modifying workspaces
+ * workspace.c: Modifying workspaces, accessing them, moving containers to
+ * workspaces.
*
*/
#include "all.h"
/*
* vim:ts=4:sw=4:expandtab
+ *
+ * i3 - an improved dynamic tiling window manager
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
+ *
+ * x.c: Interface to X11, transfers our in-memory state to X11 (see also
+ * render.c). Basically a big state machine.
+ *
*/
-
#include "all.h"
/* Stores the X11 window ID of the currently focused window */
* vim:ts=4:sw=4:expandtab
*
* i3 - an improved dynamic tiling window manager
- *
- * © 2009-2010 Michael Stapelberg and contributors
- *
- * See file LICENSE for license information.
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
*
* xcb.c: Helper functions for easier usage of XCB
*
*/
-
#include "all.h"
TAILQ_HEAD(cached_fonts_head, Font) cached_fonts = TAILQ_HEAD_INITIALIZER(cached_fonts);
/*
* vim:ts=4:sw=4:expandtab
+ *
+ * i3 - an improved dynamic tiling window manager
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
+ *
+ * xcursor.c: libXcursor support for themed cursors.
+ *
*/
#include <assert.h>
#include <X11/Xcursor/Xcursor.h>
* vim:ts=4:sw=4:expandtab
*
* i3 - an improved dynamic tiling window manager
- *
- * © 2009-2011 Michael Stapelberg and contributors
- *
- * See file LICENSE for license information.
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
*
* This is LEGACY code (we support RandR, which can do much more than
* Xinerama), but necessary for the poor users of the nVidia binary
- * driver which does not support RandR in 2010 *sigh*.
+ * driver which does not support RandR in 2011 *sigh*.
*
*/
+#include "all.h"
#include <xcb/xinerama.h>
-#include "all.h"
static int num_screens;