<variablelist>
- <varlistentry>
- <term>
- <command>
- <option>conky_parse(string)</option>
- </command>
- <option>function</option>
- </term>
- <listitem>
- <para>This function takes a string that is evaluated as
- per Conky's TEXT section, and then returns a string
- with the result.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- <command>
- <option>conky_window</option>
- </command>
- <option>table</option>
- </term>
- <listitem>
- <para>This table contains some information about
- Conky's window. The following table describes the
- values contained:</para>
- <simplelist>
- <member>
- <command>drawable</command>
- <option>Window's drawable (Xlib
- Drawable), requires Lua extras enabled at compile time.</option>
- </member>
- <member>
- <command>visual</command>
- <option>Window's visual (Xlib Visual), requires Lua extras enabled at compile time.</option>
- </member>
- <member>
- <command>display</command>
- <option>Window's display (Xlib
- Display), requires Lua extras enabled at compile time.</option>
- </member>
- <member>
- <command>width</command>
- <option>Window width (in pixels).</option>
- </member>
- <member>
- <command>height</command>
- <option>Window height (in pixels).</option>
- </member>
- <member>
- <command>border_inner_margin</command>
- <option>Window's inner border margin (in
- pixels).</option>
- </member>
- <member>
- <command>border_outer_margin</command>
- <option>Window's outer border margin (in
- pixels).</option>
- </member>
- <member>
- <command>border_width</command>
- <option>Window's border width (in
- pixels).</option>
- </member>
- <member>
- <command>text_start_x</command>
- <option>The x component of the starting
- coordinate of text drawing.</option>
- </member>
- <member>
- <command>text_start_y</command>
- <option>The y component of the starting
- coordinate of text drawing.</option>
- </member>
- <member>
- <command>text_width</command>
- <option>The width of the text drawing
- region.</option>
- </member>
- <member>
- <command>text_height</command>
- <option>The height of the text drawing
- region.</option>
- </member>
- </simplelist>
- <para>NOTE: This table is only defined when X support
- is enabled.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- <command>
- <option>conky_build_info</option>
- </command>
- <option>string</option>
- </term>
- <listitem>
- <para>A string containing the build info for this
- particular instance of Conky, including the version,
- build date, and architecture.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- <command>
- <option>conky_build_date</option>
- </command>
- <option>string</option>
- </term>
- <listitem>
- <para>A string containing the build date for this
- particular instance of Conky.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- <command>
- <option>conky_build_arch</option>
- </command>
- <option>string</option>
- </term>
- <listitem>
- <para>A string containing the build architecture for
- this particular instance of Conky.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- <command>
- <option>conky_version</option>
- </command>
- <option>string</option>
- </term>
- <listitem>
- <para>A string containing the version of the current
- instance of Conky.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- <command>
- <option>conky_config</option>
- </command>
- <option>string</option>
- </term>
- <listitem>
- <para>A string containing the path of the current Conky
- configuration file.</para>
- </listitem>
- </varlistentry>
+ <varlistentry>
+ <term>
+ <command>
+ <option>conky_parse(string)</option>
+ </command>
+ <option>function</option>
+ </term>
+ <listitem>
+ <para>This function takes a string that is evaluated as
+ per Conky's TEXT section, and then returns a string
+ with the result.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <command>
+ <option>conky_set_update_interval(number)</option>
+ </command>
+ <option>function</option>
+ </term>
+ <listitem>
+ <para>
+ Sets Conky's update interval (in seconds) to 'number'.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <command>
+ <option>conky_window</option>
+ </command>
+ <option>table</option>
+ </term>
+ <listitem>
+ <para>This table contains some information about
+ Conky's window. The following table describes the
+ values contained:</para>
+ <simplelist>
+ <member>
+ <command>drawable</command>
+ <option>Window's drawable (Xlib
+ Drawable), requires Lua extras enabled at compile time.</option>
+ </member>
+ <member>
+ <command>visual</command>
+ <option>Window's visual (Xlib Visual), requires Lua extras enabled at compile time.</option>
+ </member>
+ <member>
+ <command>display</command>
+ <option>Window's display (Xlib
+ Display), requires Lua extras enabled at compile time.</option>
+ </member>
+ <member>
+ <command>width</command>
+ <option>Window width (in pixels).</option>
+ </member>
+ <member>
+ <command>height</command>
+ <option>Window height (in pixels).</option>
+ </member>
+ <member>
+ <command>border_inner_margin</command>
+ <option>Window's inner border margin (in
+ pixels).</option>
+ </member>
+ <member>
+ <command>border_outer_margin</command>
+ <option>Window's outer border margin (in
+ pixels).</option>
+ </member>
+ <member>
+ <command>border_width</command>
+ <option>Window's border width (in
+ pixels).</option>
+ </member>
+ <member>
+ <command>text_start_x</command>
+ <option>The x component of the starting
+ coordinate of text drawing.</option>
+ </member>
+ <member>
+ <command>text_start_y</command>
+ <option>The y component of the starting
+ coordinate of text drawing.</option>
+ </member>
+ <member>
+ <command>text_width</command>
+ <option>The width of the text drawing
+ region.</option>
+ </member>
+ <member>
+ <command>text_height</command>
+ <option>The height of the text drawing
+ region.</option>
+ </member>
+ </simplelist>
+ <para>NOTE: This table is only defined when X support
+ is enabled.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <command>
+ <option>conky_info</option>
+ </command>
+ <option>table</option>
+ </term>
+ <listitem>
+ <para>This table contains some information about
+ Conky's internal data. The following table describes the
+ values contained:</para>
+ <simplelist>
+ <member>
+ <command>update_interval</command>
+ <option>Conky's update interval (in seconds).
+ </option>
+ </member>
+ <member>
+ <command>uptime</command>
+ <option>System uptime, in seconds.
+ </option>
+ </member>
+ </simplelist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <command>
+ <option>conky_build_info</option>
+ </command>
+ <option>string</option>
+ </term>
+ <listitem>
+ <para>A string containing the build info for this
+ particular instance of Conky, including the version,
+ build date, and architecture.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <command>
+ <option>conky_build_date</option>
+ </command>
+ <option>string</option>
+ </term>
+ <listitem>
+ <para>A string containing the build date for this
+ particular instance of Conky.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <command>
+ <option>conky_build_arch</option>
+ </command>
+ <option>string</option>
+ </term>
+ <listitem>
+ <para>A string containing the build architecture for
+ this particular instance of Conky.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <command>
+ <option>conky_version</option>
+ </command>
+ <option>string</option>
+ </term>
+ <listitem>
+ <para>A string containing the version of the current
+ instance of Conky.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <command>
+ <option>conky_config</option>
+ </command>
+ <option>string</option>
+ </term>
+ <listitem>
+ <para>A string containing the path of the current Conky
+ configuration file.</para>
+ </listitem>
+ </varlistentry>
</variablelist>
return 1; /* number of results */
}
+static int llua_conky_set_update_interval(lua_State *L)
+{
+ int n = lua_gettop(L); /* number of arguments */
+ double value;
+ if (n != 1) {
+ lua_pushstring(L, "incorrect arguments, conky_set_update_interval(number) takes exactly 1 argument");
+ lua_error(L);
+ }
+ if (!lua_isnumber(L, 1)) {
+ lua_pushstring(L, "incorrect argument (expecting a string)");
+ lua_error(L);
+ }
+ value = lua_tonumber(L, 1);
+ set_update_interval(value);
+ return 0; /* number of results */
+}
+
void llua_init(void)
{
const char *libs = PACKAGE_LIBDIR"/lib?.so;";
lua_pushcfunction(lua_L, &llua_conky_parse);
lua_setglobal(lua_L, "conky_parse");
+ lua_pushcfunction(lua_L, &llua_conky_set_update_interval);
+ lua_setglobal(lua_L, "conky_set_update_interval");
+
#if defined(X11) && defined(LUA_EXTRAS)
/* register tolua++ user types */
tolua_open(lua_L);
}
#endif /* HAVE_SYS_INOTIFY_H */
+void llua_set_number(const char *key, double value)
+{
+ lua_pushnumber(lua_L, value);
+ lua_setfield(lua_L, -2, key);
+}
+
#ifdef X11
void llua_draw_pre_hook(void)
{
draw_post = strdup(args);
}
-void llua_set_long(const char *key, long value)
-{
- lua_pushnumber(lua_L, value);
- lua_setfield(lua_L, -2, key);
-}
-
#ifdef LUA_EXTRAS
void llua_set_userdata(const char *key, const char *type, void *value)
{
#endif /* LUA_EXTRAS */
- llua_set_long("width", window.width);
- llua_set_long("height", window.height);
- llua_set_long("border_inner_margin", window.border_inner_margin);
- llua_set_long("border_outer_margin", window.border_outer_margin);
- llua_set_long("border_width", window.border_width);
+ llua_set_number("width", window.width);
+ llua_set_number("height", window.height);
+ llua_set_number("border_inner_margin", window.border_inner_margin);
+ llua_set_number("border_outer_margin", window.border_outer_margin);
+ llua_set_number("border_width", window.border_width);
- llua_set_long("text_start_x", text_start_x);
- llua_set_long("text_start_y", text_start_y);
- llua_set_long("text_width", text_width);
- llua_set_long("text_height", text_height);
+ llua_set_number("text_start_x", text_start_x);
+ llua_set_number("text_start_y", text_start_y);
+ llua_set_number("text_width", text_width);
+ llua_set_number("text_height", text_height);
lua_setglobal(lua_L, "conky_window");
}
return;
}
- llua_set_long("width", window.width);
- llua_set_long("height", window.height);
+ llua_set_number("width", window.width);
+ llua_set_number("height", window.height);
- llua_set_long("text_start_x", text_start_x);
- llua_set_long("text_start_y", text_start_y);
- llua_set_long("text_width", text_width);
- llua_set_long("text_height", text_height);
+ llua_set_number("text_start_x", text_start_x);
+ llua_set_number("text_start_y", text_start_y);
+ llua_set_number("text_width", text_width);
+ llua_set_number("text_height", text_height);
lua_setglobal(lua_L, "conky_window");
}
#endif /* X11 */
+void llua_setup_info(struct information *i, double u_interval)
+{
+ if (!lua_L) return;
+ lua_newtable(lua_L);
+
+ llua_set_number("update_interval", u_interval);
+ llua_set_number("uptime", i->uptime);
+
+ lua_setglobal(lua_L, "conky_info");
+}
+
+void llua_update_info(struct information *i, double u_interval)
+{
+ if (!lua_L) return;
+
+ lua_getglobal(lua_L, "conky_info");
+ if (lua_isnil(lua_L, -1)) {
+ /* window table isn't populated yet */
+ lua_pop(lua_L, 1);
+ return;
+ }
+
+ llua_set_number("update_interval", u_interval);
+ llua_set_number("uptime", i->uptime);
+
+ lua_setglobal(lua_L, "conky_info");
+}
+