#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdbool.h>
#include <assert.h>
#include <limits.h>
#include <locale.h>
#include <fcntl.h>
#include <getopt.h>
#include <X11/XKBlib.h>
#include <X11/extensions/XKB.h>
#include <xcb/xcb.h>
#include <xcb/xcb_atom.h>
#include <xcb/xcb_aux.h>
#include <xcb/xcb_event.h>
#include <xcb/xcb_property.h>
#include <xcb/xcb_keysyms.h>
#include <xcb/xcb_icccm.h>
#include <ev.h>
#include "config.h"
#include "data.h"
#include "debug.h"
#include "handlers.h"
#include "click.h"
#include "i3.h"
#include "layout.h"
#include "queue.h"
#include "table.h"
#include "util.h"
#include "xcb.h"
#include "randr.h"
#include "xinerama.h"
#include "manage.h"
#include "ipc.h"
#include "log.h"
#include "sighandler.h"
Go to the source code of this file.
Defines | |
#define | REQUEST_ATOM(name) atom_cookies[name] = xcb_intern_atom(conn, 0, strlen(#name), #name); |
#define | GET_ATOM(name) |
Functions | |
static void | xcb_got_event (EV_P_ struct ev_io *w, int revents) |
static void | xcb_prepare_cb (EV_P_ ev_prepare *w, int revents) |
static void | xcb_check_cb (EV_P_ ev_check *w, int revents) |
static void | xkb_got_event (EV_P_ struct ev_io *w, int revents) |
int | main (int argc, char *argv[], char *env[]) |
Variables | |
static int | xkb_event_base |
int | xkb_current_group |
xcb_connection_t * | global_conn |
char ** | start_argv |
Display * | xkbdpy |
xcb_key_symbols_t * | keysyms |
struct bindings_head * | bindings |
struct autostarts_head | autostarts = TAILQ_HEAD_INITIALIZER(autostarts) |
struct assignments_head | assignments = TAILQ_HEAD_INITIALIZER(assignments) |
struct stack_wins_head | stack_wins = SLIST_HEAD_INITIALIZER(stack_wins) |
xcb_event_handlers_t | evenths |
xcb_atom_t | atoms [NUM_ATOMS] |
xcb_window_t | root |
int | num_screens = 0 |
uint8_t | root_depth |
bool | xkb_supported = true |
#define GET_ATOM | ( | name | ) |
#define REQUEST_ATOM | ( | name | ) | atom_cookies[name] = xcb_intern_atom(conn, 0, strlen(#name), #name); |
Referenced by main().
int main | ( | int | argc, | |
char * | argv[], | |||
char * | env[] | |||
) |
Definition at line 193 of file mainx.c.
References _NET_ACTIVE_WINDOW, _NET_CURRENT_DESKTOP, _NET_SUPPORTED, _NET_SUPPORTING_WM_CHECK, _NET_WM_DESKTOP, _NET_WM_NAME, _NET_WM_STATE, _NET_WM_STATE_FULLSCREEN, _NET_WM_STRUT_PARTIAL, _NET_WM_WINDOW_TYPE, _NET_WM_WINDOW_TYPE_DIALOG, _NET_WM_WINDOW_TYPE_DOCK, _NET_WM_WINDOW_TYPE_SPLASH, _NET_WM_WINDOW_TYPE_TOOLBAR, _NET_WM_WINDOW_TYPE_UTILITY, _NET_WORKAREA, add_loglevel(), atoms, autostarts, c_ws, check_error(), Autostart::command, config, xoutput::current_workspace, die, DLOG, ELOG, evenths, expand_table_cols(), expand_table_rows(), GET_ATOM, get_first_output(), get_output_containing(), global_conn, grab_all_keys(), handle_button_press(), handle_client_message(), handle_clientleader_change(), handle_configure_event(), handle_configure_request(), handle_destroy_notify_event(), handle_enter_notify(), handle_event(), handle_expose_event(), handle_hints(), handle_key_press(), handle_map_request(), handle_mapping_notify(), handle_motion_notify(), handle_normal_hints(), handle_screen_change(), handle_transient_for(), handle_unmap_notify_event(), handle_window_type(), handle_windowclass_change(), handle_windowname_change(), handle_windowname_change_legacy(), init_table(), initialize_randr(), initialize_xinerama(), ipc_create_socket(), ipc_new_client(), Config::ipc_socket_path, keysyms, load_configuration(), LOG, manage_existing_windows(), REQUEST_ATOM, root, root_depth, scalloc(), set_verbosity(), setup_signal_handler(), sstrdup(), start_application(), start_argv, TAILQ_FIRST, TAILQ_FOREACH, translate_keysyms(), UTF8_STRING, WM_CLIENT_LEADER, WM_DELETE_WINDOW, WM_PROTOCOLS, WM_STATE, workspaces, xcb_check_cb(), xcb_get_numlock_mask(), xcb_got_event(), xcb_prepare_cb(), xkb_event_base, xkb_got_event(), xkb_supported, and xkbdpy.
static void xcb_check_cb | ( | EV_P_ ev_check * | w, | |
int | revents | |||
) | [static] |
static void xcb_got_event | ( | EV_P_ struct ev_io * | w, | |
int | revents | |||
) | [static] |
static void xcb_prepare_cb | ( | EV_P_ ev_prepare * | w, | |
int | revents | |||
) | [static] |
static void xkb_got_event | ( | EV_P_ struct ev_io * | w, | |
int | revents | |||
) | [static] |
Definition at line 130 of file mainx.c.
References DLOG, ELOG, global_conn, grab_all_keys(), keysyms, translate_keysyms(), ungrab_all_keys(), xcb_get_numlock_mask(), xkb_current_group, xkb_event_base, and xkbdpy.
Referenced by main().
struct assignments_head assignments = TAILQ_HEAD_INITIALIZER(assignments) |
Definition at line 75 of file mainx.c.
Referenced by load_configuration(), reparent_window(), and yyparse().
xcb_atom_t atoms[NUM_ATOMS] |
Definition at line 83 of file mainx.c.
Referenced by client_enter_fullscreen(), client_kill(), client_leave_fullscreen(), client_map(), client_supports_protocol(), client_unmap(), ewmh_update_active_window(), ewmh_update_current_desktop(), ewmh_update_workarea(), handle_client_message(), main(), manage_window(), and reparent_window().
struct autostarts_head autostarts = TAILQ_HEAD_INITIALIZER(autostarts) |
struct bindings_head* bindings |
Definition at line 69 of file mainx.c.
Referenced by get_binding(), grab_all_keys(), load_configuration(), switch_mode(), translate_keysyms(), and yyparse().
xcb_event_handlers_t evenths |
Definition at line 82 of file mainx.c.
Referenced by drag_pointer(), main(), xcb_check_cb(), and xcb_prepare_cb().
xcb_connection_t* global_conn |
Definition at line 58 of file mainx.c.
Referenced by check_crossing_screen_boundary(), client_min_height(), ewmh_update_active_window(), ewmh_update_current_desktop(), ewmh_update_workarea(), expand_table_cols(), expand_table_rows(), handle_signal(), i3_restart(), init_workspaces(), IPC_HANDLER(), load_configuration(), main(), new_container(), parse_command(), translate_keysyms(), workspace_assign_to(), workspace_height(), workspace_set_name(), xkb_got_event(), and yyparse().
xcb_key_symbols_t* keysyms |
Definition at line 66 of file mainx.c.
Referenced by handle_mapping_notify(), main(), sig_handle_key_press(), translate_keysyms(), xcb_get_numlock_mask(), and xkb_got_event().
int num_screens = 0 |
Definition at line 86 of file mainx.c.
Referenced by query_screens().
xcb_window_t root |
Definition at line 85 of file mainx.c.
Referenced by create_window(), drag_pointer(), ewmh_update_active_window(), ewmh_update_current_desktop(), ewmh_update_workarea(), handle_unmap_notify_event(), initialize_randr(), main(), open_input_window(), randr_query_outputs(), restore_geometry(), ungrab_all_keys(), and workspace_show().
uint8_t root_depth |
Definition at line 89 of file mainx.c.
Referenced by cached_pixmap_prepare(), handle_signal(), and main().
struct stack_wins_head stack_wins = SLIST_HEAD_INITIALIZER(stack_wins) |
Definition at line 78 of file mainx.c.
Referenced by get_stack_window(), handle_enter_notify(), handle_expose_event(), leave_stack_mode(), switch_layout_mode(), workspace_map_clients(), and workspace_unmap_clients().
char** start_argv |
Definition at line 61 of file mainx.c.
Referenced by i3_restart(), and main().
Definition at line 56 of file mainx.c.
Referenced by handle_key_press(), and xkb_got_event().
int xkb_event_base [static] |
Definition at line 54 of file mainx.c.
Referenced by main(), and xkb_got_event().
bool xkb_supported = true |
Display* xkbdpy |
Definition at line 64 of file mainx.c.
Referenced by main(), and xkb_got_event().