i3
data.h File Reference
#include <libsn/sn-launcher.h>
#include <xcb/randr.h>
#include <pcre2.h>
#include <sys/time.h>
#include <cairo/cairo.h>
#include "queue.h"
Include dependency graph for data.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  gaps_t
 
struct  Rect
 Stores a rectangle, for example the size of a window, the child window etc. More...
 
struct  reservedpx
 Stores the reserved pixels on each screen edge read from a _NET_WM_STRUT_PARTIAL. More...
 
struct  width_height
 Stores a width/height pair, used as part of deco_render_params to check whether the rects width/height have changed. More...
 
struct  deco_render_params
 Stores the parameters for rendering a window decoration. More...
 
struct  Workspace_Assignment
 Stores which workspace (by name or number) goes to which output and its gaps config. More...
 
struct  Ignore_Event
 
struct  Startup_Sequence
 Stores internal information about a startup sequence, like the workspace it was initiated on. More...
 
struct  regex
 Regular expression wrapper. More...
 
struct  Binding_Keycode
 Stores a resolved keycode (from a keysym), including the modifier mask. More...
 
struct  Binding
 Holds a keybinding, consisting of a keycode combined with modifiers and the command which is executed as soon as the key is pressed (see src/config_parser.c) More...
 
struct  Autostart
 Holds a command specified by either an: More...
 
struct  output_name
 
struct  xoutput
 An Output is a physical output on your graphics driver. More...
 
struct  Window
 A 'Window' is a type which contains an xcb_window_t and all the related information (hints like _NET_WM_NAME for that window). More...
 
struct  Match
 A "match" is a data structure which acts like a mask or expression to match certain windows or not. More...
 
struct  Assignment
 An Assignment makes specific windows go to a specific workspace/output or run a command for that window. More...
 
struct  mark_t
 
struct  Con
 A 'Con' represents everything from the X11 root window down to a single X11 window. More...
 

Macros

#define PCRE2_CODE_UNIT_WIDTH   8
 
#define SN_API_NOT_YET_FROZEN   1
 

Typedefs

typedef struct Binding Binding
 
typedef struct Rect Rect
 
typedef struct xoutput Output
 
typedef struct Con Con
 
typedef struct Match Match
 
typedef struct Assignment Assignment
 
typedef struct Window i3Window
 
typedef struct gaps_t gaps_t
 
typedef struct mark_t mark_t
 
typedef uint32_t i3_event_state_mask_t
 The lower 16 bits contain a xcb_key_but_mask_t, the higher 16 bits contain an i3_xkb_group_mask_t.
 

Enumerations

enum  direction_t { D_LEFT , D_RIGHT , D_UP , D_DOWN }
 
enum  orientation_t { NO_ORIENTATION = 0 , HORIZ , VERT }
 
enum  position_t { BEFORE , AFTER }
 
enum  border_style_t { BS_NONE = 0 , BS_PIXEL = 1 , BS_NORMAL = 2 }
 
enum  kill_window_t { DONT_KILL_WINDOW = 0 , KILL_WINDOW = 1 , KILL_CLIENT = 2 }
 parameter to specify whether tree_close_internal() and x_window_kill() should kill only this specific window or the whole X11 client More...
 
enum  adjacent_t {
  ADJ_NONE = 0 , ADJ_LEFT_SCREEN_EDGE = (1 << 0) , ADJ_RIGHT_SCREEN_EDGE = (1 << 1) , ADJ_UPPER_SCREEN_EDGE = (1 << 2) ,
  ADJ_LOWER_SCREEN_EDGE = (1 << 4)
}
 describes if the window is adjacent to the output (physical screen) edges. More...
 
enum  smart_gaps_t { SMART_GAPS_OFF , SMART_GAPS_ON , SMART_GAPS_INVERSE_OUTER }
 
enum  hide_edge_borders_mode_t {
  HEBM_NONE = ADJ_NONE , HEBM_VERTICAL = ADJ_LEFT_SCREEN_EDGE | ADJ_RIGHT_SCREEN_EDGE , HEBM_HORIZONTAL = ADJ_UPPER_SCREEN_EDGE | ADJ_LOWER_SCREEN_EDGE , HEBM_BOTH = HEBM_VERTICAL | HEBM_HORIZONTAL ,
  HEBM_SMART = (1 << 5) , HEBM_SMART_NO_GAPS = (1 << 6)
}
 
enum  mark_mode_t { MM_REPLACE , MM_ADD }
 
enum  layout_t {
  L_DEFAULT = 0 , L_STACKED = 1 , L_TABBED = 2 , L_DOCKAREA = 3 ,
  L_OUTPUT = 4 , L_SPLITV = 5 , L_SPLITH = 6
}
 Container layouts. More...
 
enum  input_type_t { B_KEYBOARD = 0 , B_MOUSE = 1 }
 Binding input types. More...
 
enum  i3_xkb_group_mask_t {
  I3_XKB_GROUP_MASK_ANY = 0 , I3_XKB_GROUP_MASK_1 = (1 << 0) , I3_XKB_GROUP_MASK_2 = (1 << 1) , I3_XKB_GROUP_MASK_3 = (1 << 2) ,
  I3_XKB_GROUP_MASK_4 = (1 << 3)
}
 Bitmask for matching XCB_XKB_GROUP_1 to XCB_XKB_GROUP_4. More...
 
enum  warping_t { POINTER_WARPING_OUTPUT = 0 , POINTER_WARPING_NONE = 1 }
 Mouse pointer warping modes. More...
 
enum  gaps_mask_t {
  GAPS_INNER = (1 << 0) , GAPS_TOP = (1 << 1) , GAPS_RIGHT = (1 << 2) , GAPS_BOTTOM = (1 << 3) ,
  GAPS_LEFT = (1 << 4) , GAPS_VERTICAL = (GAPS_TOP | GAPS_BOTTOM) , GAPS_HORIZONTAL = (GAPS_RIGHT | GAPS_LEFT) , GAPS_OUTER = (GAPS_VERTICAL | GAPS_HORIZONTAL)
}
 
enum  focus_wrapping_t { FOCUS_WRAPPING_OFF = 0 , FOCUS_WRAPPING_ON = 1 , FOCUS_WRAPPING_FORCE = 2 , FOCUS_WRAPPING_WORKSPACE = 3 }
 Focus wrapping modes. More...
 
enum  fullscreen_mode_t { CF_NONE = 0 , CF_OUTPUT = 1 , CF_GLOBAL = 2 }
 Fullscreen modes. More...
 

Macro Definition Documentation

◆ PCRE2_CODE_UNIT_WIDTH

#define PCRE2_CODE_UNIT_WIDTH   8

Definition at line 12 of file data.h.

◆ SN_API_NOT_YET_FROZEN

#define SN_API_NOT_YET_FROZEN   1

Definition at line 14 of file data.h.

Typedef Documentation

◆ Assignment

typedef struct Assignment Assignment

Definition at line 48 of file data.h.

◆ Binding

typedef struct Binding Binding

Definition at line 43 of file data.h.

◆ Con

typedef struct Con Con

Definition at line 46 of file data.h.

◆ gaps_t

typedef struct gaps_t gaps_t

Definition at line 50 of file data.h.

◆ i3_event_state_mask_t

typedef uint32_t i3_event_state_mask_t

The lower 16 bits contain a xcb_key_but_mask_t, the higher 16 bits contain an i3_xkb_group_mask_t.

This type is necessary for the fallback logic to work when handling XKB groups (see ticket #1775) and makes the code which locates keybindings upon KeyPress/KeyRelease events simpler.

Definition at line 136 of file data.h.

◆ i3Window

typedef struct Window i3Window

Definition at line 49 of file data.h.

◆ mark_t

typedef struct mark_t mark_t

Definition at line 51 of file data.h.

◆ Match

typedef struct Match Match

Definition at line 47 of file data.h.

◆ Output

typedef struct xoutput Output

Definition at line 45 of file data.h.

◆ Rect

typedef struct Rect Rect

Definition at line 44 of file data.h.

Enumeration Type Documentation

◆ adjacent_t

enum adjacent_t

describes if the window is adjacent to the output (physical screen) edges.

Enumerator
ADJ_NONE 
ADJ_LEFT_SCREEN_EDGE 
ADJ_RIGHT_SCREEN_EDGE 
ADJ_UPPER_SCREEN_EDGE 
ADJ_LOWER_SCREEN_EDGE 

Definition at line 78 of file data.h.

◆ border_style_t

Enumerator
BS_NONE 
BS_PIXEL 
BS_NORMAL 

Definition at line 65 of file data.h.

◆ direction_t

Enumerator
D_LEFT 
D_RIGHT 
D_UP 
D_DOWN 

Definition at line 56 of file data.h.

◆ focus_wrapping_t

Focus wrapping modes.

Enumerator
FOCUS_WRAPPING_OFF 
FOCUS_WRAPPING_ON 
FOCUS_WRAPPING_FORCE 
FOCUS_WRAPPING_WORKSPACE 

Definition at line 168 of file data.h.

◆ fullscreen_mode_t

Fullscreen modes.

Used by Con.fullscreen_mode.

Enumerator
CF_NONE 
CF_OUTPUT 
CF_GLOBAL 

Definition at line 629 of file data.h.

◆ gaps_mask_t

Enumerator
GAPS_INNER 
GAPS_TOP 
GAPS_RIGHT 
GAPS_BOTTOM 
GAPS_LEFT 
GAPS_VERTICAL 
GAPS_HORIZONTAL 
GAPS_OUTER 

Definition at line 154 of file data.h.

◆ hide_edge_borders_mode_t

Enumerator
HEBM_NONE 
HEBM_VERTICAL 
HEBM_HORIZONTAL 
HEBM_BOTH 
HEBM_SMART 
HEBM_SMART_NO_GAPS 

Definition at line 88 of file data.h.

◆ i3_xkb_group_mask_t

Bitmask for matching XCB_XKB_GROUP_1 to XCB_XKB_GROUP_4.

Enumerator
I3_XKB_GROUP_MASK_ANY 
I3_XKB_GROUP_MASK_1 
I3_XKB_GROUP_MASK_2 
I3_XKB_GROUP_MASK_3 
I3_XKB_GROUP_MASK_4 

Definition at line 122 of file data.h.

◆ input_type_t

Binding input types.

See Binding::input_type.

Enumerator
B_KEYBOARD 
B_MOUSE 

Definition at line 114 of file data.h.

◆ kill_window_t

parameter to specify whether tree_close_internal() and x_window_kill() should kill only this specific window or the whole X11 client

Enumerator
DONT_KILL_WINDOW 
KILL_WINDOW 
KILL_CLIENT 

Definition at line 73 of file data.h.

◆ layout_t

enum layout_t

Container layouts.

See Con::layout.

Enumerator
L_DEFAULT 
L_STACKED 
L_TABBED 
L_DOCKAREA 
L_OUTPUT 
L_SPLITV 
L_SPLITH 

Definition at line 101 of file data.h.

◆ mark_mode_t

Enumerator
MM_REPLACE 
MM_ADD 

Definition at line 95 of file data.h.

◆ orientation_t

Enumerator
NO_ORIENTATION 
HORIZ 
VERT 

Definition at line 60 of file data.h.

◆ position_t

enum position_t
Enumerator
BEFORE 
AFTER 

Definition at line 63 of file data.h.

◆ smart_gaps_t

Enumerator
SMART_GAPS_OFF 
SMART_GAPS_ON 
SMART_GAPS_INVERSE_OUTER 

Definition at line 84 of file data.h.

◆ warping_t

enum warping_t

Mouse pointer warping modes.

Enumerator
POINTER_WARPING_OUTPUT 
POINTER_WARPING_NONE 

Definition at line 141 of file data.h.