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 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...
 
uint32_t mods
 Bitmask consisting of BIND_MOD_1, BIND_MODE_SWITCH, … 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 239 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 246 of file data.h.

Member Function Documentation

Binding::TAILQ_ENTRY ( Binding  )

Field Documentation

char* Binding::command

Command, like in command mode.

Definition at line 284 of file data.h.

Referenced by binding_copy(), binding_free(), check_for_duplicate_bindings(), configure_binding(), create_workspace_on_output(), dump_binding(), and run_binding().

input_type_t Binding::input_type
uint32_t Binding::keycode
uint32_t Binding::mods

Bitmask consisting of BIND_MOD_1, BIND_MODE_SWITCH, …

Definition at line 269 of file data.h.

Referenced by check_for_duplicate_bindings(), configure_binding(), dump_binding(), get_binding(), grab_all_keys(), grab_keycode_for_binding(), and translate_keysyms().

uint32_t Binding::number_keycodes

Definition at line 263 of file data.h.

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

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(), and get_binding().

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 274 of file data.h.

Referenced by binding_copy(), binding_free(), 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 281 of file data.h.

Referenced by 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 261 of file data.h.

Referenced by configure_binding(), and route_click().


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