]> git.sur5r.net Git - i3/i3/blobdiff - include/config.h
Merge branch 'master' into next
[i3/i3] / include / config.h
index 76fee94d9c97f716c5a984a9679dc208202f1988..b0f22417ab038715812c1c537ab43576909e7a02 100644 (file)
@@ -6,12 +6,11 @@
  *
  * include/config.h: Contains all structs/variables for the configurable
  * part of i3 as well as functions handling the configuration file (calling
- * the parser (src/cfgparse.y) with the correct path, switching key bindings
- * mode).
+ * the parser (src/config_parse.c) with the correct path, switching key
+ * bindings mode).
  *
  */
-#ifndef I3_CONFIG_H
-#define I3_CONFIG_H
+#pragma once
 
 #include <stdbool.h>
 #include "queue.h"
@@ -95,10 +94,11 @@ struct Config {
     char *ipc_socket_path;
     const char *restart_state_path;
 
-    int default_layout;
+    layout_t default_layout;
     int container_stack_limit;
     int container_stack_limit_value;
     int default_border_width;
+    int default_floating_border_width;
 
     /** Default orientation for new containers */
     int default_orientation;
@@ -109,6 +109,16 @@ struct Config {
      * It is not planned to add any different focus models. */
     bool disable_focus_follows_mouse;
 
+    /** 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. */
+    warping_t mouse_warping;
+
     /** 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.
@@ -180,6 +190,7 @@ struct Config {
         struct Colortriple focused_inactive;
         struct Colortriple unfocused;
         struct Colortriple urgent;
+        struct Colortriple placeholder;
     } client;
     struct config_bar {
         struct Colortriple focused;
@@ -189,9 +200,19 @@ struct Config {
 
     /** What should happen when a new popup is opened during fullscreen mode */
     enum {
-        PDF_LEAVE_FULLSCREEN = 0,
-        PDF_IGNORE = 1
+        /* display (and focus) the popup when it belongs to the fullscreen
+         * window only. */
+        PDF_SMART = 0,
+
+        /* leave fullscreen mode unconditionally */
+        PDF_LEAVE_FULLSCREEN = 1,
+
+        /* just ignore the popup, that is, don’t map it */
+        PDF_IGNORE = 2,
     } popup_during_fullscreen;
+
+    /* The number of currently parsed barconfigs */
+    int number_barconfigs;
 };
 
 /**
@@ -219,8 +240,14 @@ struct Barconfig {
      * root window! */
     char *socket_path;
 
-    /** Bar display mode (hide unless modifier is pressed or show in dock mode) */
-    enum { M_DOCK = 0, M_HIDE = 1 } mode;
+    /** Bar display mode (hide unless modifier is pressed or show in dock mode or always hide in invisible mode) */
+    enum { M_DOCK = 0,
+           M_HIDE = 1,
+           M_INVISIBLE = 2 } mode;
+
+    /* The current hidden_state of the bar, which indicates whether it is hidden or shown */
+    enum { S_HIDE = 0,
+           S_SHOW = 1 } hidden_state;
 
     /** Bar modifier (to show bar when in hide mode). */
     enum {
@@ -234,8 +261,17 @@ struct Barconfig {
         M_MOD5 = 7
     } modifier;
 
+    /** Command that should be run when mouse wheel up button is pressed over
+     * i3bar to override the default behavior. */
+    char *wheel_up_cmd;
+
+    /** Command that should be run when mouse wheel down button is pressed over
+     * i3bar to override the default behavior. */
+    char *wheel_down_cmd;
+
     /** Bar position (bottom by default). */
-    enum { P_BOTTOM = 0, P_TOP = 1 } position;
+    enum { P_BOTTOM = 0,
+           P_TOP = 1 } position;
 
     /** Command that should be run to execute i3bar, give a full path if i3bar is not
      * in your $PATH.
@@ -254,12 +290,21 @@ struct Barconfig {
      * zero. */
     bool hide_workspace_buttons;
 
+    /** Strip workspace numbers? Configuration option is
+     * 'strip_workspace_numbers yes'. */
+    bool strip_workspace_numbers;
+
+    /** 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;
+
     /** Enable verbose mode? Useful for debugging purposes. */
     bool verbose;
 
     struct bar_colors {
         char *background;
         char *statusline;
+        char *separator;
 
         char *focused_workspace_border;
         char *focused_workspace_bg;
@@ -290,12 +335,6 @@ struct Barconfig {
  */
 void load_configuration(xcb_connection_t *conn, const char *override_configfile, bool reload);
 
-/**
- * Translates keysymbols to keycodes for all bindings which use keysyms.
- *
- */
-void translate_keysyms(void);
-
 /**
  * Ungrabs all keys, to be called before re-grabbing the keys because of a
  * mapping_notify event or a configuration file reload
@@ -304,23 +343,10 @@ void translate_keysyms(void);
 void ungrab_all_keys(xcb_connection_t *conn);
 
 /**
- * Grab the bound keys (tell X to send us keypress events for those keycodes)
- *
- */
-void grab_all_keys(xcb_connection_t *conn, bool bind_mode_switch);
-
-/**
- * Switches the key bindings to the given mode, if the mode exists
+ * Sends the current bar configuration as an event to all barconfig_update listeners.
  *
  */
-void switch_mode(const char *new_mode);
-
-/**
- * Returns a pointer to the Binding with the specified modifiers and keycode
- * or NULL if no such binding exists.
- *
- */
-Binding *get_binding(uint16_t modifiers, bool key_release, xcb_keycode_t keycode);
+void update_barconfig();
 
 /**
  * Kills the configerror i3-nagbar process, if any.
@@ -332,8 +358,3 @@ Binding *get_binding(uint16_t modifiers, bool key_release, xcb_keycode_t keycode
  *
  */
 void kill_configerror_nagbar(bool wait_for_it);
-
-/* prototype for src/cfgparse.y */
-void parse_file(const char *f);
-
-#endif