i3
Config Struct Reference

Holds part of the configuration (the part which is not already in dedicated structures in include/data.h). More...

#include <configuration.h>

Collaboration diagram for Config:

Data Structures

struct  config_bar
 
struct  config_client
 

Public Types

enum  { FOWA_SMART , FOWA_URGENT , FOWA_FOCUS , FOWA_NONE }
 Behavior when a window sends a NET_ACTIVE_WINDOW message. More...
 
enum  { ALIGN_LEFT , ALIGN_CENTER , ALIGN_RIGHT }
 Title alignment options. More...
 
enum  { PDF_SMART = 0 , PDF_LEAVE_FULLSCREEN = 1 , PDF_IGNORE = 2 , PDF_ALL = 3 }
 What should happen when a new popup is opened during fullscreen mode. More...
 

Data Fields

const char * terminal
 
i3Font font
 
char * ipc_socket_path
 
char * restart_state_path
 
layout_t default_layout
 
int container_stack_limit
 
int container_stack_limit_value
 
int default_border_width
 
int default_floating_border_width
 
int default_orientation
 Default orientation for new containers.
 
bool disable_focus_follows_mouse
 By default, focus follows mouse.
 
warping_t mouse_warping
 By default, when switching focus to a window on a different output (e.g.
 
hide_edge_borders_mode_t hide_edge_borders
 Remove borders if they are adjacent to the screen edge.
 
bool disable_workspace_bar
 By default, a workspace bar is drawn at the bottom of the screen.
 
focus_wrapping_t focus_wrapping
 When focus wrapping is enabled (the default), attempting to move focus past the edge of the screen (in other words, in a direction in which there are no more containers to focus) will cause the focus to wrap to the opposite edge of the current container.
 
bool force_xinerama
 By default, use the RandR API for multi-monitor setups.
 
bool disable_randr15
 Don’t use RandR 1.5 for querying outputs.
 
char * fake_outputs
 Overwrites output detection (for testing), see src/fake_outputs.c.
 
bool workspace_auto_back_and_forth
 Automatic workspace back and forth switching.
 
float workspace_urgency_timer
 By default, urgency is cleared immediately when switching to another workspace leads to focusing the con with the urgency hint.
 
enum Config:: { ... }  focus_on_window_activation
 Behavior when a window sends a NET_ACTIVE_WINDOW message.
 
bool show_marks
 Specifies whether or not marks should be displayed in the window decoration.
 
enum Config:: { ... }  title_align
 Title alignment options.
 
border_style_t default_border
 The default border style for new windows.
 
border_style_t default_floating_border
 The default border style for new floating windows.
 
uint32_t floating_modifier
 The modifier which needs to be pressed in combination with your mouse buttons to do things with floating windows (move, resize)
 
uint32_t swap_modifier
 The modifier which needs to be pressed in combination with the floating modifier and your mouse buttons to swap containers during tiling drag.
 
int32_t floating_maximum_width
 Maximum and minimum dimensions of a floating window.
 
int32_t floating_maximum_height
 
int32_t floating_minimum_width
 
int32_t floating_minimum_height
 
struct Config::config_client client
 
struct Config::config_bar bar
 
enum Config:: { ... }  popup_during_fullscreen
 What should happen when a new popup is opened during fullscreen mode.
 
int number_barconfigs
 
tiling_drag_t tiling_drag
 
gaps_t gaps
 
smart_gaps_t smart_gaps
 

Detailed Description

Holds part of the configuration (the part which is not already in dedicated structures in include/data.h).

Definition at line 106 of file configuration.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Behavior when a window sends a NET_ACTIVE_WINDOW message.

Enumerator
FOWA_SMART 
FOWA_URGENT 
FOWA_FOCUS 
FOWA_NONE 

Definition at line 199 of file configuration.h.

◆ anonymous enum

anonymous enum

Title alignment options.

Enumerator
ALIGN_LEFT 
ALIGN_CENTER 
ALIGN_RIGHT 

Definition at line 215 of file configuration.h.

◆ anonymous enum

anonymous enum

What should happen when a new popup is opened during fullscreen mode.

Enumerator
PDF_SMART 
PDF_LEAVE_FULLSCREEN 
PDF_IGNORE 
PDF_ALL 

Definition at line 258 of file configuration.h.

Field Documentation

◆ bar

struct Config::config_bar Config::bar

Referenced by load_configuration().

◆ client

◆ container_stack_limit

int Config::container_stack_limit

Definition at line 114 of file configuration.h.

◆ container_stack_limit_value

int Config::container_stack_limit_value

Definition at line 115 of file configuration.h.

◆ default_border

border_style_t Config::default_border

The default border style for new windows.

Definition at line 222 of file configuration.h.

Referenced by border_width_from_style(), CFGFUN(), con_new_skeleton(), and load_configuration().

◆ default_border_width

◆ default_floating_border

border_style_t Config::default_floating_border

The default border style for new floating windows.

Definition at line 225 of file configuration.h.

Referenced by border_width_from_style(), CFGFUN(), floating_enable(), and load_configuration().

◆ default_floating_border_width

int Config::default_floating_border_width

◆ default_layout

layout_t Config::default_layout

Definition at line 113 of file configuration.h.

Referenced by CFGFUN(), create_workspace_on_output(), and workspace_get().

◆ default_orientation

int Config::default_orientation

Default orientation for new containers.

Definition at line 120 of file configuration.h.

Referenced by _workspace_apply_default_orientation(), CFGFUN(), load_configuration(), and output_change_mode().

◆ disable_focus_follows_mouse

bool Config::disable_focus_follows_mouse

By default, focus follows mouse.

If the user explicitly wants to turn this off (and instead rely only on the keyboard for changing focus), we allow them to do this with this relatively special option. It is not planned to add any different focus models.

Definition at line 126 of file configuration.h.

Referenced by CFGFUN(), check_crossing_screen_boundary(), handle_enter_notify(), and handle_motion_notify().

◆ disable_randr15

bool Config::disable_randr15

Don’t use RandR 1.5 for querying outputs.

Definition at line 180 of file configuration.h.

Referenced by CFGFUN(), and main().

◆ disable_workspace_bar

bool Config::disable_workspace_bar

By default, a workspace bar is drawn at the bottom of the screen.

If you want to have a more fancy bar, it is recommended to replace the whole bar by dzen2, for example using the i3-wsbar script which comes with i3. Thus, you can turn it off entirely.

Definition at line 148 of file configuration.h.

◆ fake_outputs

char* Config::fake_outputs

Overwrites output detection (for testing), see src/fake_outputs.c.

Definition at line 183 of file configuration.h.

Referenced by CFGFUN(), free_configuration(), and main().

◆ floating_maximum_height

int32_t Config::floating_maximum_height

Definition at line 236 of file configuration.h.

Referenced by CFGFUN(), and floating_check_size().

◆ floating_maximum_width

int32_t Config::floating_maximum_width

Maximum and minimum dimensions of a floating window.

Definition at line 235 of file configuration.h.

Referenced by CFGFUN(), and floating_check_size().

◆ floating_minimum_height

int32_t Config::floating_minimum_height

Definition at line 238 of file configuration.h.

Referenced by CFGFUN(), and floating_check_size().

◆ floating_minimum_width

int32_t Config::floating_minimum_width

Definition at line 237 of file configuration.h.

Referenced by CFGFUN(), and floating_check_size().

◆ floating_modifier

uint32_t Config::floating_modifier

The modifier which needs to be pressed in combination with your mouse buttons to do things with floating windows (move, resize)

Definition at line 229 of file configuration.h.

Referenced by CFGFUN(), and route_click().

◆ []

enum { ... } Config::focus_on_window_activation

Behavior when a window sends a NET_ACTIVE_WINDOW message.

Referenced by CFGFUN(), handle_client_message(), and handle_configure_request().

◆ focus_wrapping

focus_wrapping_t Config::focus_wrapping

When focus wrapping is enabled (the default), attempting to move focus past the edge of the screen (in other words, in a direction in which there are no more containers to focus) will cause the focus to wrap to the opposite edge of the current container.

When it is disabled, nothing happens; the current focus is preserved.

Additionally, focus wrapping may be forced. Think of the following layout: Horizontal workspace with a tabbed con on the left of the screen and a terminal on the right of the screen. You are in the second container in the tabbed container and focus to the right. By default, i3 will set focus to the terminal on the right. If you are in the first container in the tabbed container however, focusing to the left will wrap. Setting focus_wrapping to FOCUS_WRAPPING_FORCE forces i3 to always wrap, which will result in you having to use "focus parent" more often.

Definition at line 167 of file configuration.h.

Referenced by CFGFUN(), CFGFUN(), get_tree_next(), and load_configuration().

◆ font

◆ force_xinerama

bool Config::force_xinerama

By default, use the RandR API for multi-monitor setups.

Unfortunately, the nVidia binary graphics driver doesn't support this API. Instead, it only support the less powerful Xinerama API, which can be enabled by this option.

Note: this option takes only effect on the initial startup (eg. reconfiguration is not possible). On startup, the list of screens is fetched once and never updated.

Definition at line 177 of file configuration.h.

Referenced by CFGFUN(), and main().

◆ gaps

◆ hide_edge_borders

hide_edge_borders_mode_t Config::hide_edge_borders

Remove borders if they are adjacent to the screen edge.

This is useful if you are reaching scrollbar on the edge of the screen or do not want to waste a single pixel of displayspace. By default, this is disabled.

Definition at line 142 of file configuration.h.

Referenced by CFGFUN(), CFGFUN(), con_border_style_rect_without_title(), and x_get_border_rectangles().

◆ ipc_socket_path

char* Config::ipc_socket_path

Definition at line 110 of file configuration.h.

Referenced by CFGFUN(), cmd_restart(), free_configuration(), i3_exit(), and main().

◆ mouse_warping

warping_t Config::mouse_warping

By default, when switching focus to a window on a different output (e.g.

focusing a window on workspace 3 on output VGA-1, coming from workspace 2 on LVDS-1), the mouse cursor is warped to the center of that window.

With the mouse_warping option, you can control when the mouse cursor should be warped. "none" disables warping entirely, whereas "output" is the default behavior described above.

Definition at line 136 of file configuration.h.

Referenced by CFGFUN(), and x_set_warp_to().

◆ number_barconfigs

int Config::number_barconfigs

Definition at line 274 of file configuration.h.

Referenced by CFGFUN().

◆ []

enum { ... } Config::popup_during_fullscreen

What should happen when a new popup is opened during fullscreen mode.

Referenced by CFGFUN(), fullscreen_blocks_floating_render(), and manage_window().

◆ restart_state_path

char* Config::restart_state_path

Definition at line 111 of file configuration.h.

Referenced by CFGFUN(), free_configuration(), and store_restart_layout().

◆ show_marks

bool Config::show_marks

Specifies whether or not marks should be displayed in the window decoration.

Marks starting with a "_" will be ignored either way.

Definition at line 212 of file configuration.h.

Referenced by CFGFUN(), load_configuration(), and x_draw_decoration().

◆ smart_gaps

smart_gaps_t Config::smart_gaps

Definition at line 282 of file configuration.h.

Referenced by calculate_effective_gaps(), and CFGFUN().

◆ swap_modifier

uint32_t Config::swap_modifier

The modifier which needs to be pressed in combination with the floating modifier and your mouse buttons to swap containers during tiling drag.

Definition at line 232 of file configuration.h.

Referenced by CFGFUN(), load_configuration(), and tiling_drag().

◆ terminal

const char* Config::terminal

Definition at line 107 of file configuration.h.

◆ tiling_drag

tiling_drag_t Config::tiling_drag

Definition at line 276 of file configuration.h.

Referenced by CFGFUN(), load_configuration(), and route_click().

◆ []

enum { ... } Config::title_align

Title alignment options.

Referenced by CFGFUN(), and x_draw_decoration().

◆ workspace_auto_back_and_forth

bool Config::workspace_auto_back_and_forth

Automatic workspace back and forth switching.

If this is set, a switch to the currently active workspace will switch to the previously focused one instead, making it possible to fast toggle between two workspaces.

Definition at line 189 of file configuration.h.

Referenced by CFGFUN(), maybe_auto_back_and_forth_workspace(), and maybe_back_and_forth().

◆ workspace_urgency_timer

float Config::workspace_urgency_timer

By default, urgency is cleared immediately when switching to another workspace leads to focusing the con with the urgency hint.

When having multiple windows on that workspace, the user needs to guess which application raised the event. To prevent this, the reset of the urgency flag can be delayed using an urgency timer.

Definition at line 196 of file configuration.h.

Referenced by CFGFUN(), load_configuration(), and workspace_show().


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