Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > c67c6057ffd14254a26624517a2352e6 > files > 383

i3-doc-3.e-3.bf1.fc14.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>i3: src/config.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.2-20100208 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>src/config.c File Reference</h1><code>#include &lt;stdio.h&gt;</code><br/>
<code>#include &lt;string.h&gt;</code><br/>
<code>#include &lt;sys/stat.h&gt;</code><br/>
<code>#include &lt;sys/types.h&gt;</code><br/>
<code>#include &lt;stdlib.h&gt;</code><br/>
<code>#include &lt;glob.h&gt;</code><br/>
<code>#include &lt;wordexp.h&gt;</code><br/>
<code>#include &lt;unistd.h&gt;</code><br/>
<code>#include &lt;X11/Xlib.h&gt;</code><br/>
<code>#include &lt;xcb/xcb_keysyms.h&gt;</code><br/>
<code>#include &quot;<a class="el" href="a00041_source.html">i3.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00052_source.html">util.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00034_source.html">config.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00054_source.html">xcb.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00051_source.html">table.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00053_source.html">workspace.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00044_source.html">log.h</a>&quot;</code><br/>
<div class="dynheader">
Include dependency graph for config.c:</div>
<div class="dynsection">
</div>

<p><a href="a00062_source.html">Go to the source code of this file.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html#a7b96960c81da5ecedc1d584069d9447c">GRAB_KEY</a>(modifier)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html#ae09f26b7018670246503bd977bc53a10">REQUIRED_OPTION</a>(name)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html#afa93ac77ffba69363be62e7b0e37f11d">INIT_COLOR</a>(x, cborder, cbackground, ctext)</td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html#aea199116bec04e7987dad157e10b49b5">glob_path</a> (const char *path)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This function resolves ~ in pathnames.  <a href="#aea199116bec04e7987dad157e10b49b5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html#a7c81151479c55671cd41ad9d1b3d3f52">path_exists</a> (const char *path)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks if the given path exists by calling stat().  <a href="#a7c81151479c55671cd41ad9d1b3d3f52"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html#afa95dc10a37decc54e9a376d0d462048">ungrab_all_keys</a> (xcb_connection_t *conn)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Ungrabs all keys, to be called before re-grabbing the keys because of a mapping_notify event or a configuration file reload.  <a href="#afa95dc10a37decc54e9a376d0d462048"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html#aaa0dba2e97ed49099bbecc084fec0021">grab_keycode_for_binding</a> (xcb_connection_t *conn, <a class="el" href="a00003.html">Binding</a> *bind, uint32_t keycode)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00003.html">Binding</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html#afc938201ea536eed0f0838bb3c4c5c2c">get_binding</a> (uint16_t modifiers, xcb_keycode_t keycode)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a pointer to the <a class="el" href="a00003.html" title="Holds a keybinding, consisting of a keycode combined with modifiers and the command...">Binding</a> with the specified modifiers and keycode or NULL if no such binding exists.  <a href="#afc938201ea536eed0f0838bb3c4c5c2c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html#a0ee8ffa5c11aeb96126b36171da84adc">translate_keysyms</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translates keysymbols to keycodes for all bindings which use keysyms.  <a href="#a0ee8ffa5c11aeb96126b36171da84adc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html#a1741cf749eb2243cca453355d3f6879b">grab_all_keys</a> (xcb_connection_t *conn, bool bind_mode_switch)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Grab the bound keys (tell X to send us keypress events for those keycodes).  <a href="#a1741cf749eb2243cca453355d3f6879b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html#a2ffac81a6e7d464474716e01da82c5df">switch_mode</a> (xcb_connection_t *conn, const char *new_mode)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Switches the key bindings to the given mode, if the mode exists.  <a href="#a2ffac81a6e7d464474716e01da82c5df"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html#ae3d7e99bd14d228645d8e223519a2827">get_config_path</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html#a6f3a92013cf7e1ece6139b05a43a2c95">parse_configuration</a> (const char *override_configpath)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html#a19bff8205cd2bd9492b5f95076dfa3a0">load_configuration</a> (xcb_connection_t *conn, const char *override_configpath, bool reload)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reads the configuration from ~/.i3/config or /etc/i3/config if not found.  <a href="#a19bff8205cd2bd9492b5f95076dfa3a0"></a><br/></td></tr>
<tr><td colspan="2"><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00010.html">Config</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html#a4a8dd3a2de125b72d4fe6251a0a271b5">config</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct modes_head&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html#a8a9fd888b55140d95a6f0c79a154b02c">modes</a></td></tr>
</table>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="a7b96960c81da5ecedc1d584069d9447c"></a><!-- doxytag: member="config.c::GRAB_KEY" ref="a7b96960c81da5ecedc1d584069d9447c" args="(modifier)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GRAB_KEY</td>
          <td>(</td>
          <td class="paramtype">modifier&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> { \
                        xcb_grab_key(conn, 0, <a class="code" href="a00071.html#a768f07da9e11ab88732a5c550ff49257">root</a>, modifier, keycode, \
                                     XCB_GRAB_MODE_SYNC, XCB_GRAB_MODE_ASYNC); \
                } <span class="keywordflow">while</span> (0)
</pre></div>
<p>Referenced by <a class="el" href="a00062_source.html#l00085">grab_keycode_for_binding()</a>.</p>

</div>
</div>
<a class="anchor" id="afa93ac77ffba69363be62e7b0e37f11d"></a><!-- doxytag: member="config.c::INIT_COLOR" ref="afa93ac77ffba69363be62e7b0e37f11d" args="(x, cborder, cbackground, ctext)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define INIT_COLOR</td>
          <td>(</td>
          <td class="paramtype">x, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cborder, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cbackground, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ctext&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> { \
                x.border = <a class="code" href="a00079.html#a0146fe310e31c9509a7a7846aa547c67" title="Returns the colorpixel to use for the given hex color (think of HTML).">get_colorpixel</a>(conn, cborder); \
                x.background = <a class="code" href="a00079.html#a0146fe310e31c9509a7a7846aa547c67" title="Returns the colorpixel to use for the given hex color (think of HTML).">get_colorpixel</a>(conn, cbackground); \
                x.text = <a class="code" href="a00079.html#a0146fe310e31c9509a7a7846aa547c67" title="Returns the colorpixel to use for the given hex color (think of HTML).">get_colorpixel</a>(conn, ctext); \
        } <span class="keywordflow">while</span> (0)
</pre></div>
<p>Referenced by <a class="el" href="a00062_source.html#l00307">load_configuration()</a>.</p>

</div>
</div>
<a class="anchor" id="ae09f26b7018670246503bd977bc53a10"></a><!-- doxytag: member="config.c::REQUIRED_OPTION" ref="ae09f26b7018670246503bd977bc53a10" args="(name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define REQUIRED_OPTION</td>
          <td>(</td>
          <td class="paramtype">name&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span> (<a class="code" href="a00062.html#a4a8dd3a2de125b72d4fe6251a0a271b5">config</a>.name == NULL) \
                <a class="code" href="a00052.html#a0b2164ee75646f16a7388a36e6800c35">die</a>(<span class="stringliteral">&quot;You did not specify required configuration option &quot;</span> #name <span class="stringliteral">&quot;\n&quot;</span>);
</pre></div>
<p>Referenced by <a class="el" href="a00062_source.html#l00307">load_configuration()</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="afc938201ea536eed0f0838bb3c4c5c2c"></a><!-- doxytag: member="config.c::get_binding" ref="afc938201ea536eed0f0838bb3c4c5c2c" args="(uint16_t modifiers, xcb_keycode_t keycode)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00003.html">Binding</a>* get_binding </td>
          <td>(</td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>modifiers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_keycode_t&nbsp;</td>
          <td class="paramname"> <em>keycode</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a pointer to the <a class="el" href="a00003.html" title="Holds a keybinding, consisting of a keycode combined with modifiers and the command...">Binding</a> with the specified modifiers and keycode or NULL if no such binding exists. </p>

<p>Definition at line <a class="el" href="a00062_source.html#l00109">109</a> of file <a class="el" href="a00062_source.html">config.c</a>.</p>

<p>References <a class="el" href="a00071_source.html#l00069">bindings</a>, <a class="el" href="a00036_source.html#l00277">Binding::keycode</a>, <a class="el" href="a00036_source.html#l00280">Binding::mods</a>, <a class="el" href="a00036_source.html#l00274">Binding::number_keycodes</a>, <a class="el" href="a00036_source.html#l00265">Binding::symbol</a>, <a class="el" href="a00047_source.html#l00325">TAILQ_END</a>, <a class="el" href="a00047_source.html#l00335">TAILQ_FOREACH</a>, and <a class="el" href="a00036_source.html#l00272">Binding::translated_to</a>.</p>

<p>Referenced by <a class="el" href="a00067_source.html#l00090">handle_key_press()</a>.</p>

</div>
</div>
<a class="anchor" id="ae3d7e99bd14d228645d8e223519a2827"></a><!-- doxytag: member="config.c::get_config_path" ref="ae3d7e99bd14d228645d8e223519a2827" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* get_config_path </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00062_source.html#l00235">235</a> of file <a class="el" href="a00062_source.html">config.c</a>.</p>

<p>References <a class="el" href="a00052_source.html#l00019">die</a>, <a class="el" href="a00062_source.html#l00044">glob_path()</a>, and <a class="el" href="a00062_source.html#l00070">path_exists()</a>.</p>

<p>Referenced by <a class="el" href="a00062_source.html#l00291">parse_configuration()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
</div>
</p>

</div>
</div>
<a class="anchor" id="aea199116bec04e7987dad157e10b49b5"></a><!-- doxytag: member="config.c::glob_path" ref="aea199116bec04e7987dad157e10b49b5" args="(const char *path)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* glob_path </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>path</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function resolves ~ in pathnames. </p>

<p>Definition at line <a class="el" href="a00062_source.html#l00044">44</a> of file <a class="el" href="a00062_source.html">config.c</a>.</p>

<p>References <a class="el" href="a00052_source.html#l00019">die</a>, and <a class="el" href="a00077_source.html#l00080">sstrdup()</a>.</p>

<p>Referenced by <a class="el" href="a00062_source.html#l00235">get_config_path()</a>, and <a class="el" href="a00068_source.html#l00502">ipc_create_socket()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
</div>
</p>

</div>
</div>
<a class="anchor" id="a1741cf749eb2243cca453355d3f6879b"></a><!-- doxytag: member="config.c::grab_all_keys" ref="a1741cf749eb2243cca453355d3f6879b" args="(xcb_connection_t *conn, bool bind_mode_switch)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void grab_all_keys </td>
          <td>(</td>
          <td class="paramtype">xcb_connection_t *&nbsp;</td>
          <td class="paramname"> <em>conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>bind_mode_switch</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Grab the bound keys (tell X to send us keypress events for those keycodes). </p>

<p>Definition at line <a class="el" href="a00062_source.html#l00188">188</a> of file <a class="el" href="a00062_source.html">config.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00075">BIND_MODE_SWITCH</a>, <a class="el" href="a00071_source.html#l00069">bindings</a>, <a class="el" href="a00062_source.html#l00085">grab_keycode_for_binding()</a>, <a class="el" href="a00036_source.html#l00277">Binding::keycode</a>, <a class="el" href="a00036_source.html#l00280">Binding::mods</a>, <a class="el" href="a00036_source.html#l00274">Binding::number_keycodes</a>, <a class="el" href="a00047_source.html#l00335">TAILQ_FOREACH</a>, and <a class="el" href="a00036_source.html#l00272">Binding::translated_to</a>.</p>

<p>Referenced by <a class="el" href="a00067_source.html#l00253">handle_mapping_notify()</a>, <a class="el" href="a00062_source.html#l00307">load_configuration()</a>, <a class="el" href="a00071_source.html#l00193">main()</a>, <a class="el" href="a00062_source.html#l00211">switch_mode()</a>, and <a class="el" href="a00071_source.html#l00130">xkb_got_event()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
</div>
</p>

</div>
</div>
<a class="anchor" id="aaa0dba2e97ed49099bbecc084fec0021"></a><!-- doxytag: member="config.c::grab_keycode_for_binding" ref="aaa0dba2e97ed49099bbecc084fec0021" args="(xcb_connection_t *conn, Binding *bind, uint32_t keycode)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void grab_keycode_for_binding </td>
          <td>(</td>
          <td class="paramtype">xcb_connection_t *&nbsp;</td>
          <td class="paramname"> <em>conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00003.html">Binding</a> *&nbsp;</td>
          <td class="paramname"> <em>bind</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>keycode</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00062_source.html#l00085">85</a> of file <a class="el" href="a00062_source.html">config.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00075">BIND_MODE_SWITCH</a>, <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00062.html#a7b96960c81da5ecedc1d584069d9447c">GRAB_KEY</a>, <a class="el" href="a00036_source.html#l00280">Binding::mods</a>, and <a class="el" href="a00054.html#ac430ae06cbf6f5ef252c9ebfca47e644">xcb_numlock_mask</a>.</p>

<p>Referenced by <a class="el" href="a00062_source.html#l00188">grab_all_keys()</a>, and <a class="el" href="a00062_source.html#l00138">translate_keysyms()</a>.</p>

</div>
</div>
<a class="anchor" id="a19bff8205cd2bd9492b5f95076dfa3a0"></a><!-- doxytag: member="config.c::load_configuration" ref="a19bff8205cd2bd9492b5f95076dfa3a0" args="(xcb_connection_t *conn, const char *override_configpath, bool reload)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void load_configuration </td>
          <td>(</td>
          <td class="paramtype">xcb_connection_t *&nbsp;</td>
          <td class="paramname"> <em>conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>override_configfile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>reload</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reads the configuration from ~/.i3/config or /etc/i3/config if not found. </p>
<p>If you specify override_configpath, only this path is used to look for a configuration file. </p>

<p>Definition at line <a class="el" href="a00062_source.html#l00307">307</a> of file <a class="el" href="a00062_source.html">config.c</a>.</p>

<p>References <a class="el" href="a00071_source.html#l00075">assignments</a>, <a class="el" href="a00010.html#a87797dfb71243a11161231d2fdf3ecdb">Config::bar</a>, <a class="el" href="a00034_source.html#l00075">Mode::bindings</a>, <a class="el" href="a00071_source.html#l00069">bindings</a>, <a class="el" href="a00010.html#a2cfc8e52ae874b8a76b8103b8da7b520">Config::client</a>, <a class="el" href="a00036_source.html#l00283">Binding::command</a>, <a class="el" href="a00034_source.html#l00121">Config::config_bar::focused</a>, <a class="el" href="a00034_source.html#l00115">Config::config_client::focused</a>, <a class="el" href="a00034_source.html#l00116">Config::config_client::focused_inactive</a>, <a class="el" href="a00034_source.html#l00087">Config::font</a>, <a class="el" href="a00052_source.html#l00029">FREE</a>, <a class="el" href="a00071_source.html#l00058">global_conn</a>, <a class="el" href="a00062_source.html#l00188">grab_all_keys()</a>, <a class="el" href="a00062.html#afa93ac77ffba69363be62e7b0e37f11d">INIT_COLOR</a>, <a class="el" href="a00062_source.html#l00038">modes</a>, <a class="el" href="a00036_source.html#l00190">Workspace::name</a>, <a class="el" href="a00034_source.html#l00074">Mode::name</a>, <a class="el" href="a00036_source.html#l00193">Workspace::name_len</a>, <a class="el" href="a00062_source.html#l00291">parse_configuration()</a>, <a class="el" href="a00079_source.html#l00301">predict_text_width()</a>, <a class="el" href="a00062.html#ae09f26b7018670246503bd977bc53a10">REQUIRED_OPTION</a>, <a class="el" href="a00077_source.html#l00074">scalloc()</a>, <a class="el" href="a00047_source.html#l00112">SLIST_EMPTY</a>, <a class="el" href="a00047_source.html#l00110">SLIST_FIRST</a>, <a class="el" href="a00047_source.html#l00128">SLIST_INIT</a>, <a class="el" href="a00047_source.html#l00137">SLIST_INSERT_HEAD</a>, <a class="el" href="a00047_source.html#l00150">SLIST_REMOVE</a>, <a class="el" href="a00077_source.html#l00080">sstrdup()</a>, <a class="el" href="a00047_source.html#l00332">TAILQ_EMPTY</a>, <a class="el" href="a00047_source.html#l00324">TAILQ_FIRST</a>, <a class="el" href="a00047_source.html#l00335">TAILQ_FOREACH</a>, <a class="el" href="a00047_source.html#l00348">TAILQ_INIT</a>, <a class="el" href="a00047_source.html#l00387">TAILQ_REMOVE</a>, <a class="el" href="a00036_source.html#l00196">Workspace::text_width</a>, <a class="el" href="a00062_source.html#l00138">translate_keysyms()</a>, <a class="el" href="a00036_source.html#l00272">Binding::translated_to</a>, <a class="el" href="a00034_source.html#l00122">Config::config_bar::unfocused</a>, <a class="el" href="a00034_source.html#l00117">Config::config_client::unfocused</a>, <a class="el" href="a00062_source.html#l00080">ungrab_all_keys()</a>, <a class="el" href="a00034_source.html#l00123">Config::config_bar::urgent</a>, <a class="el" href="a00034_source.html#l00118">Config::config_client::urgent</a>, <a class="el" href="a00036_source.html#l00304">Assignment::windowclass_title</a>, <a class="el" href="a00078_source.html#l00078">workspace_set_name()</a>, and <a class="el" href="a00076_source.html#l00034">workspaces</a>.</p>

<p>Referenced by <a class="el" href="a00071_source.html#l00193">main()</a>, and <a class="el" href="a00061_source.html#l00950">parse_command()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
</div>
</p>

</div>
</div>
<a class="anchor" id="a6f3a92013cf7e1ece6139b05a43a2c95"></a><!-- doxytag: member="config.c::parse_configuration" ref="a6f3a92013cf7e1ece6139b05a43a2c95" args="(const char *override_configpath)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void parse_configuration </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>override_configpath</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00062_source.html#l00291">291</a> of file <a class="el" href="a00062_source.html">config.c</a>.</p>

<p>References <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00062_source.html#l00235">get_config_path()</a>, and <a class="el" href="a00056_source.html#l00129">parse_file()</a>.</p>

<p>Referenced by <a class="el" href="a00062_source.html#l00307">load_configuration()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
</div>
</p>

</div>
</div>
<a class="anchor" id="a7c81151479c55671cd41ad9d1b3d3f52"></a><!-- doxytag: member="config.c::path_exists" ref="a7c81151479c55671cd41ad9d1b3d3f52" args="(const char *path)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool path_exists </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>path</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks if the given path exists by calling stat(). </p>

<p>Definition at line <a class="el" href="a00062_source.html#l00070">70</a> of file <a class="el" href="a00062_source.html">config.c</a>.</p>

<p>Referenced by <a class="el" href="a00062_source.html#l00235">get_config_path()</a>, and <a class="el" href="a00068_source.html#l00502">ipc_create_socket()</a>.</p>

</div>
</div>
<a class="anchor" id="a2ffac81a6e7d464474716e01da82c5df"></a><!-- doxytag: member="config.c::switch_mode" ref="a2ffac81a6e7d464474716e01da82c5df" args="(xcb_connection_t *conn, const char *new_mode)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void switch_mode </td>
          <td>(</td>
          <td class="paramtype">xcb_connection_t *&nbsp;</td>
          <td class="paramname"> <em>conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>new_mode</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Switches the key bindings to the given mode, if the mode exists. </p>

<p>Definition at line <a class="el" href="a00062_source.html#l00211">211</a> of file <a class="el" href="a00062_source.html">config.c</a>.</p>

<p>References <a class="el" href="a00034_source.html#l00075">Mode::bindings</a>, <a class="el" href="a00071_source.html#l00069">bindings</a>, <a class="el" href="a00044_source.html#l00020">ELOG</a>, <a class="el" href="a00062_source.html#l00188">grab_all_keys()</a>, <a class="el" href="a00044_source.html#l00019">LOG</a>, <a class="el" href="a00062_source.html#l00038">modes</a>, <a class="el" href="a00034_source.html#l00074">Mode::name</a>, <a class="el" href="a00047_source.html#l00115">SLIST_FOREACH</a>, <a class="el" href="a00062_source.html#l00138">translate_keysyms()</a>, and <a class="el" href="a00062_source.html#l00080">ungrab_all_keys()</a>.</p>

<p>Referenced by <a class="el" href="a00061_source.html#l00950">parse_command()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
</div>
</p>

</div>
</div>
<a class="anchor" id="a0ee8ffa5c11aeb96126b36171da84adc"></a><!-- doxytag: member="config.c::translate_keysyms" ref="a0ee8ffa5c11aeb96126b36171da84adc" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void translate_keysyms </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Translates keysymbols to keycodes for all bindings which use keysyms. </p>

<p>Definition at line <a class="el" href="a00062_source.html#l00138">138</a> of file <a class="el" href="a00062_source.html">config.c</a>.</p>

<p>References <a class="el" href="a00071_source.html#l00069">bindings</a>, <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00044_source.html#l00020">ELOG</a>, <a class="el" href="a00071_source.html#l00058">global_conn</a>, <a class="el" href="a00062_source.html#l00085">grab_keycode_for_binding()</a>, <a class="el" href="a00036_source.html#l00277">Binding::keycode</a>, <a class="el" href="a00071_source.html#l00066">keysyms</a>, <a class="el" href="a00036_source.html#l00274">Binding::number_keycodes</a>, <a class="el" href="a00077_source.html#l00068">smalloc()</a>, <a class="el" href="a00036_source.html#l00265">Binding::symbol</a>, <a class="el" href="a00047_source.html#l00335">TAILQ_FOREACH</a>, and <a class="el" href="a00036_source.html#l00272">Binding::translated_to</a>.</p>

<p>Referenced by <a class="el" href="a00067_source.html#l00253">handle_mapping_notify()</a>, <a class="el" href="a00062_source.html#l00307">load_configuration()</a>, <a class="el" href="a00071_source.html#l00193">main()</a>, <a class="el" href="a00062_source.html#l00211">switch_mode()</a>, and <a class="el" href="a00071_source.html#l00130">xkb_got_event()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
</div>
</p>

</div>
</div>
<a class="anchor" id="afa95dc10a37decc54e9a376d0d462048"></a><!-- doxytag: member="config.c::ungrab_all_keys" ref="afa95dc10a37decc54e9a376d0d462048" args="(xcb_connection_t *conn)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ungrab_all_keys </td>
          <td>(</td>
          <td class="paramtype">xcb_connection_t *&nbsp;</td>
          <td class="paramname"> <em>conn</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Ungrabs all keys, to be called before re-grabbing the keys because of a mapping_notify event or a configuration file reload. </p>

<p>Definition at line <a class="el" href="a00062_source.html#l00080">80</a> of file <a class="el" href="a00062_source.html">config.c</a>.</p>

<p>References <a class="el" href="a00044_source.html#l00021">DLOG</a>, and <a class="el" href="a00071_source.html#l00085">root</a>.</p>

<p>Referenced by <a class="el" href="a00067_source.html#l00253">handle_mapping_notify()</a>, <a class="el" href="a00062_source.html#l00307">load_configuration()</a>, <a class="el" href="a00062_source.html#l00211">switch_mode()</a>, and <a class="el" href="a00071_source.html#l00130">xkb_got_event()</a>.</p>

</div>
</div>
<hr/><h2>Variable Documentation</h2>
<a class="anchor" id="a4a8dd3a2de125b72d4fe6251a0a271b5"></a><!-- doxytag: member="config.c::config" ref="a4a8dd3a2de125b72d4fe6251a0a271b5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00010.html">Config</a> <a class="el" href="a00034.html#a4a8dd3a2de125b72d4fe6251a0a271b5">config</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00062_source.html#l00037">37</a> of file <a class="el" href="a00062_source.html">config.c</a>.</p>

<p>Referenced by <a class="el" href="a00059_source.html#l00060">button_press_stackwin()</a>, <a class="el" href="a00060_source.html#l00457">client_min_height()</a>, <a class="el" href="a00069_source.html#l00098">decorate_window()</a>, <a class="el" href="a00076_source.html#l00127">expand_table_cols()</a>, <a class="el" href="a00076_source.html#l00073">expand_table_rows()</a>, <a class="el" href="a00059_source.html#l00255">handle_button_press()</a>, <a class="el" href="a00067_source.html#l00292">handle_configure_request()</a>, <a class="el" href="a00067_source.html#l00173">handle_enter_notify()</a>, <a class="el" href="a00067_source.html#l00770">handle_expose_event()</a>, <a class="el" href="a00075_source.html#l00151">handle_signal()</a>, <a class="el" href="a00073_source.html#l00166">initialize_output()</a>, <a class="el" href="a00071_source.html#l00193">main()</a>, <a class="el" href="a00076_source.html#l00054">new_container()</a>, <a class="el" href="a00073_source.html#l00246">output_change_mode()</a>, <a class="el" href="a00069_source.html#l00348">render_container()</a>, <a class="el" href="a00069_source.html#l00596">render_internal_bar()</a>, <a class="el" href="a00069_source.html#l00680">render_workspace()</a>, <a class="el" href="a00072_source.html#l00151">reparent_window()</a>, <a class="el" href="a00069_source.html#l00248">resize_client()</a>, <a class="el" href="a00074_source.html#l00076">resize_graphical_handler()</a>, <a class="el" href="a00066_source.html#l00041">toggle_floating_mode()</a>, <a class="el" href="a00078_source.html#l00463">workspace_height()</a>, <a class="el" href="a00078_source.html#l00078">workspace_set_name()</a>, and <a class="el" href="a00056_source.html#l01427">yyparse()</a>.</p>

</div>
</div>
<a class="anchor" id="a8a9fd888b55140d95a6f0c79a154b02c"></a><!-- doxytag: member="config.c::modes" ref="a8a9fd888b55140d95a6f0c79a154b02c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct modes_head <a class="el" href="a00062.html#a8a9fd888b55140d95a6f0c79a154b02c">modes</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00062_source.html#l00038">38</a> of file <a class="el" href="a00062_source.html">config.c</a>.</p>

<p>Referenced by <a class="el" href="a00062_source.html#l00307">load_configuration()</a>, <a class="el" href="a00062_source.html#l00211">switch_mode()</a>, and <a class="el" href="a00056_source.html#l01427">yyparse()</a>.</p>

</div>
</div>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address>
</body>
</html>