i3
Public Types | Public Member Functions | Data Fields
Binding Struct Reference

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...

#include <data.h>

Public Types

enum  { B_UPON_KEYPRESS = 0, B_UPON_KEYRELEASE = 1, B_UPON_KEYRELEASE_IGNORE_MODS = 2 }
 If true, the binding should be executed upon a KeyRelease event, not a KeyPress (the default). More...
 

Public Member Functions

 TAILQ_ENTRY (Binding) bindings
 

Data Fields

input_type_t input_type
 
enum Binding:: { ... }  release
 If true, the binding should be executed upon a KeyRelease event, not a KeyPress (the default). More...
 
bool border
 If this is true for a mouse binding, the binding should be executed when the button is pressed over the window border. More...
 
bool whole_window
 If this is true for a mouse binding, the binding should be executed when the button is pressed over any part of the window, not just the title bar (default). More...
 
uint32_t number_keycodes
 
uint32_t keycode
 Keycode to bind. More...
 
i3_event_state_mask_t event_state_mask
 Bitmask which is applied against event->state for KeyPress and KeyRelease events to determine whether this binding applies to the current state. More...
 
char * symbol
 Symbol the user specified in configfile, if any. More...
 
xcb_keycode_t * translated_to
 Only in use if symbol != NULL. More...
 
char * command
 Command, like in command mode. More...
 

Detailed Description

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)

Definition at line 250 of file data.h.

Member Enumeration Documentation

anonymous enum

If true, the binding should be executed upon a KeyRelease event, not a KeyPress (the default).

Enumerator
B_UPON_KEYPRESS 
B_UPON_KEYRELEASE 
B_UPON_KEYRELEASE_IGNORE_MODS 

Definition at line 257 of file data.h.

Member Function Documentation

Binding::TAILQ_ENTRY ( Binding  )

Field Documentation

bool Binding::border

If this is true for a mouse binding, the binding should be executed when the button is pressed over the window border.

Definition at line 271 of file data.h.

Referenced by configure_binding(), and route_click().

char* Binding::command
i3_event_state_mask_t Binding::event_state_mask

Bitmask which is applied against event->state for KeyPress and KeyRelease events to determine whether this binding applies to the current state.

Definition at line 286 of file data.h.

Referenced by check_for_duplicate_bindings(), configure_binding(), dump_event_state_mask(), get_binding(), grab_keycode_for_binding(), reorder_binding_cmp(), and translate_keysyms().

input_type_t Binding::input_type
uint32_t Binding::keycode
uint32_t Binding::number_keycodes
enum { ... } Binding::release

If true, the binding should be executed upon a KeyRelease event, not a KeyPress (the default).

Referenced by check_for_duplicate_bindings(), configure_binding(), get_binding(), and translate_keysyms().

char* Binding::symbol

Symbol the user specified in configfile, if any.

This needs to be stored with the binding to be able to re-convert it into a keycode if the keyboard mapping changes (using Xmodmap for example)

Definition at line 291 of file data.h.

Referenced by binding_copy(), binding_free(), bindings_should_grab_scrollwheel_buttons(), check_for_duplicate_bindings(), configure_binding(), dump_binding(), get_binding(), ipc_send_binding_event(), and translate_keysyms().

xcb_keycode_t* Binding::translated_to

Only in use if symbol != NULL.

Gets set to the value to which the symbol got translated when binding. Useful for unbinding and checking which binding was used when a key press event comes in.

This is an array of number_keycodes size.

Definition at line 298 of file data.h.

Referenced by add_keycode_if_matches(), binding_copy(), binding_free(), get_binding(), grab_all_keys(), and translate_keysyms().

bool Binding::whole_window

If this is true for a mouse binding, the binding should be executed when the button is pressed over any part of the window, not just the title bar (default).

Definition at line 276 of file data.h.

Referenced by bindings_should_grab_scrollwheel_buttons(), configure_binding(), handle_button_press(), and route_click().


The documentation for this struct was generated from the following file: