X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fconfiguration.h;h=6f55ac2a57f7fe7ef280ca956267b46c63b82db9;hb=64e7646c7ee3cec9803597c5fde5d5a907881249;hp=b7cdc804459ca6195676a1ba460714ca23615920;hpb=f58dde28504cd78267439ec232be9689ff82d47c;p=i3%2Fi3 diff --git a/include/configuration.h b/include/configuration.h index b7cdc804..6f55ac2a 100644 --- a/include/configuration.h +++ b/include/configuration.h @@ -21,6 +21,7 @@ typedef struct Config Config; typedef struct Barconfig Barconfig; extern char *current_configpath; +extern char *current_config; extern Config config; extern SLIST_HEAD(modes_head, Mode) modes; extern TAILQ_HEAD(barconfig_head, Barconfig) barconfigs; @@ -68,7 +69,8 @@ struct Variable { char *value; char *next_match; - SLIST_ENTRY(Variable) variables; + SLIST_ENTRY(Variable) + variables; }; /** @@ -82,7 +84,8 @@ struct Mode { bool pango_markup; struct bindings_head *bindings; - SLIST_ENTRY(Mode) modes; + SLIST_ENTRY(Mode) + modes; }; /** @@ -134,15 +137,24 @@ struct Config { * comes with i3. Thus, you can turn it off entirely. */ bool disable_workspace_bar; - /** 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. This option forces i3 to - * always wrap, which will result in you having to use "focus parent" - * more often. */ - bool force_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. */ + focus_wrapping_t focus_wrapping; /** By default, use the RandR API for multi-monitor setups. * Unfortunately, the nVidia binary graphics driver doesn't support @@ -154,6 +166,9 @@ struct Config { * is fetched once and never updated. */ bool force_xinerama; + /** Don’t use RandR 1.5 for querying outputs. */ + bool disable_randr15; + /** Overwrites output detection (for testing), see src/fake_outputs.c */ char *fake_outputs; @@ -186,6 +201,13 @@ struct Config { * decoration. Marks starting with a "_" will be ignored either way. */ bool show_marks; + /** Title alignment options. */ + enum { + ALIGN_LEFT, + ALIGN_CENTER, + ALIGN_RIGHT + } title_align; + /** The default border style for new windows. */ border_style_t default_border; @@ -253,7 +275,8 @@ struct Barconfig { /* List of outputs on which the tray is allowed to be shown, in order. * The special value "none" disables it (per default, it will be shown) and * the special value "primary" enabled it on the primary output. */ - TAILQ_HEAD(tray_outputs_head, tray_output_t) tray_outputs; + TAILQ_HEAD(tray_outputs_head, tray_output_t) + tray_outputs; /* Padding around the tray icons. */ int tray_padding; @@ -273,18 +296,10 @@ struct Barconfig { S_SHOW = 1 } hidden_state; /** Bar modifier (to show bar when in hide mode). */ - enum { - M_NONE = 0, - M_CONTROL = 1, - M_SHIFT = 2, - M_MOD1 = 3, - M_MOD2 = 4, - M_MOD3 = 5, - M_MOD4 = 6, - M_MOD5 = 7 - } modifier; - - TAILQ_HEAD(bar_bindings_head, Barbinding) bar_bindings; + uint32_t modifier; + + TAILQ_HEAD(bar_bindings_head, Barbinding) + bar_bindings; /** Bar position (bottom by default). */ enum { P_BOTTOM = 0, @@ -314,6 +329,10 @@ struct Barconfig { * 'strip_workspace_numbers yes'. */ bool strip_workspace_numbers; + /** Strip workspace name? Configuration option is + * 'strip_workspace_name yes'. */ + bool strip_workspace_name; + /** Hide mode button? Configuration option is 'binding_mode_indicator no' * but we invert the bool for the same reason as hide_workspace_buttons.*/ bool hide_binding_mode_indicator; @@ -351,7 +370,8 @@ struct Barconfig { char *binding_mode_text; } colors; - TAILQ_ENTRY(Barconfig) configs; + TAILQ_ENTRY(Barconfig) + configs; }; /** @@ -366,13 +386,18 @@ struct Barbinding { /** The command which is to be executed for this button. */ char *command; - TAILQ_ENTRY(Barbinding) bindings; + /** If true, the command will be executed after the button is released. */ + bool release; + + TAILQ_ENTRY(Barbinding) + bindings; }; struct tray_output_t { char *output; - TAILQ_ENTRY(tray_output_t) tray_outputs; + TAILQ_ENTRY(tray_output_t) + tray_outputs; }; /** @@ -409,7 +434,7 @@ void ungrab_all_keys(xcb_connection_t *conn); * Sends the current bar configuration as an event to all barconfig_update listeners. * */ -void update_barconfig(); +void update_barconfig(void); /** * Kills the configerror i3-nagbar process, if any.