1
0
mirror of https://github.com/Llewellynvdm/conky.git synced 2025-02-02 20:18:30 +00:00

Add lua_startup_hook.

This commit is contained in:
Brenden Matthews 2009-08-01 14:36:38 -06:00
parent a3e4b3dd41
commit 358a2b989e
6 changed files with 47 additions and 6 deletions

View File

@ -339,8 +339,8 @@
optional arguments. Use this hook for drawing things on optional arguments. Use this hook for drawing things on
top of what Conky draws. Conky puts 'conky_' in front top of what Conky draws. Conky puts 'conky_' in front
of function_name to prevent accidental calls to the of function_name to prevent accidental calls to the
wrong function unless you place 'conky_' in front of wrong function unless you place 'conky_' in front of it
it yourself.</para> yourself.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
@ -357,8 +357,8 @@
optional arguments. Use this hook for drawing things on optional arguments. Use this hook for drawing things on
top of what Conky draws. Conky puts 'conky_' in front top of what Conky draws. Conky puts 'conky_' in front
of function_name to prevent accidental calls to the of function_name to prevent accidental calls to the
wrong function unless you place 'conky_' in front of wrong function unless you place 'conky_' in front of it
it yourself.</para> yourself.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
@ -388,6 +388,23 @@
front of it yourself.</para> front of it yourself.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term>
<command>
<option>lua_startup_hook</option>
</command>
<option>function_name [function arguments]</option>
</term>
<listitem>
<para>This function, if defined, will be called by
Conky at startup or when the configuration is reloaded.
Use this hook to initialize values, or for any run-once
applications. Conky puts 'conky_' in front of
function_name to prevent accidental calls to the wrong
function unless you put you place 'conky_' in front of
it yourself.</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term> <term>
<command> <command>

View File

@ -5,7 +5,7 @@
syntax "conky" "(\.*conkyrc.*$|conky.conf)" syntax "conky" "(\.*conkyrc.*$|conky.conf)"
## Configuration items ## Configuration items
color green "\<(alignment|append_file|background|border_inner_margin|border_outer_margin|border_width|color0|color1|color2|color3|color4|color5|color6|color7|color8|color9|colorN|cpu_avg_samples|default_bar_size|default_color|default_gauge_size|default_graph_size|default_outline_color|default_shade_color|diskio_avg_samples|display|double_buffer|draw_borders|draw_graph_borders|draw_outline|draw_shades|extra_newline|font|format_human_readable|gap_x|gap_y|if_up_strictness|imap|imlib_cache_flush_interval|imlib_cache_size|lua_draw_hook_post|lua_draw_hook_pre|lua_load|lua_shutdown_hook|mail_spool|max_port_monitor_connections|max_specials|max_user_text|maximum_width|minimum_size|mpd_host|mpd_password|mpd_port|music_player_interval|net_avg_samples|no_buffers|out_to_console|out_to_ncurses|out_to_stderr|out_to_x|override_utf8_locale|overwrite_file|own_window|own_window_class|own_window_colour|own_window_hints|own_window_title|own_window_transparent|own_window_type|pad_percents|pop3|sensor_device|short_units|show_graph_range|show_graph_scale|stippled_borders|temperature_unit|template|template0|template1|template2|template3|template4|template5|template6|template7|template8|template9|text|text_buffer_size|top_cpu_separate|top_name_width|total_run_times|update_interval|update_interval_on_battery|uppercase|use_spacer|use_xft|xftalpha|xftfont)\>" color green "\<(alignment|append_file|background|border_inner_margin|border_outer_margin|border_width|color0|color1|color2|color3|color4|color5|color6|color7|color8|color9|colorN|cpu_avg_samples|default_bar_size|default_color|default_gauge_size|default_graph_size|default_outline_color|default_shade_color|diskio_avg_samples|display|double_buffer|draw_borders|draw_graph_borders|draw_outline|draw_shades|extra_newline|font|format_human_readable|gap_x|gap_y|if_up_strictness|imap|imlib_cache_flush_interval|imlib_cache_size|lua_draw_hook_post|lua_draw_hook_pre|lua_load|lua_shutdown_hook|lua_startup_hook|mail_spool|max_port_monitor_connections|max_specials|max_user_text|maximum_width|minimum_size|mpd_host|mpd_password|mpd_port|music_player_interval|net_avg_samples|no_buffers|out_to_console|out_to_ncurses|out_to_stderr|out_to_x|override_utf8_locale|overwrite_file|own_window|own_window_class|own_window_colour|own_window_hints|own_window_title|own_window_transparent|own_window_type|pad_percents|pop3|sensor_device|short_units|show_graph_range|show_graph_scale|stippled_borders|temperature_unit|template|template0|template1|template2|template3|template4|template5|template6|template7|template8|template9|text|text_buffer_size|top_cpu_separate|top_name_width|total_run_times|update_interval|update_interval_on_battery|uppercase|use_spacer|use_xft|xftalpha|xftfont)\>"
## Configuration item constants ## Configuration item constants
color yellow "\<(above|below|bottom_left|bottom_right|bottom_middle|desktop|dock|no|none|normal|override|skip_pager|skip_taskbar|sticky|top_left|top_right|top_middle|middle_left|middle_right|undecorated|yes)\>" color yellow "\<(above|below|bottom_left|bottom_right|bottom_middle|desktop|dock|no|none|normal|override|skip_pager|skip_taskbar|sticky|top_left|top_right|top_middle|middle_left|middle_right|undecorated|yes)\>"

View File

@ -12,7 +12,7 @@ endif
syn region ConkyrcComment start=/^\s*#/ end=/$/ syn region ConkyrcComment start=/^\s*#/ end=/$/
syn keyword ConkyrcSetting alignment append_file background border_inner_margin border_outer_margin border_width color0 color1 color2 color3 color4 color5 color6 color7 color8 color9 colorN cpu_avg_samples default_bar_size default_color default_gauge_size default_graph_size default_outline_color default_shade_color diskio_avg_samples display double_buffer draw_borders draw_graph_borders draw_outline draw_shades extra_newline font format_human_readable gap_x gap_y if_up_strictness imap imlib_cache_flush_interval imlib_cache_size lua_draw_hook_post lua_draw_hook_pre lua_load lua_shutdown_hook mail_spool max_port_monitor_connections max_specials max_user_text maximum_width minimum_size mpd_host mpd_password mpd_port music_player_interval net_avg_samples no_buffers out_to_console out_to_ncurses out_to_stderr out_to_x override_utf8_locale overwrite_file own_window own_window_class own_window_colour own_window_hints own_window_title own_window_transparent own_window_type pad_percents pop3 sensor_device short_units show_graph_range show_graph_scale stippled_borders temperature_unit template template0 template1 template2 template3 template4 template5 template6 template7 template8 template9 text text_buffer_size top_cpu_separate top_name_width total_run_times update_interval update_interval_on_battery uppercase use_spacer use_xft xftalpha xftfont syn keyword ConkyrcSetting alignment append_file background border_inner_margin border_outer_margin border_width color0 color1 color2 color3 color4 color5 color6 color7 color8 color9 colorN cpu_avg_samples default_bar_size default_color default_gauge_size default_graph_size default_outline_color default_shade_color diskio_avg_samples display double_buffer draw_borders draw_graph_borders draw_outline draw_shades extra_newline font format_human_readable gap_x gap_y if_up_strictness imap imlib_cache_flush_interval imlib_cache_size lua_draw_hook_post lua_draw_hook_pre lua_load lua_shutdown_hook lua_startup_hook mail_spool max_port_monitor_connections max_specials max_user_text maximum_width minimum_size mpd_host mpd_password mpd_port music_player_interval net_avg_samples no_buffers out_to_console out_to_ncurses out_to_stderr out_to_x override_utf8_locale overwrite_file own_window own_window_class own_window_colour own_window_hints own_window_title own_window_transparent own_window_type pad_percents pop3 sensor_device short_units show_graph_range show_graph_scale stippled_borders temperature_unit template template0 template1 template2 template3 template4 template5 template6 template7 template8 template9 text text_buffer_size top_cpu_separate top_name_width total_run_times update_interval update_interval_on_battery uppercase use_spacer use_xft xftalpha xftfont
syn keyword ConkyrcConstant syn keyword ConkyrcConstant
\ above \ above

View File

@ -8932,6 +8932,13 @@ char load_config_file(const char *f)
CONF_ERR; CONF_ERR;
} }
} }
CONF("lua_startup_hook") {
if (value) {
llua_set_startup_hook(value);
} else {
CONF_ERR;
}
}
CONF("lua_shutdown_hook") { CONF("lua_shutdown_hook") {
if (value) { if (value) {
llua_set_shutdown_hook(value); llua_set_shutdown_hook(value);
@ -9418,6 +9425,9 @@ void initialisation(int argc, char **argv) {
NORM_ERR("error setting signal handler: %s", strerror(errno)); NORM_ERR("error setting signal handler: %s", strerror(errno));
} }
#ifdef HAVE_LUA
llua_startup_hook();
#endif /* HAVE_LUA */
} }
int main(int argc, char **argv) int main(int argc, char **argv)

View File

@ -41,6 +41,7 @@ static int llua_block_notify = 0;
static char *draw_pre_hook = 0; static char *draw_pre_hook = 0;
static char *draw_post_hook = 0; static char *draw_post_hook = 0;
static char *startup_hook = 0;
static char *shutdown_hook = 0; static char *shutdown_hook = 0;
lua_State *lua_L = NULL; lua_State *lua_L = NULL;
@ -402,6 +403,12 @@ void llua_draw_post_hook(void)
llua_do_call(draw_post_hook, 0); llua_do_call(draw_post_hook, 0);
} }
void llua_startup_hook(void)
{
if (!lua_L || !startup_hook) return;
llua_do_call(startup_hook, 0);
}
void llua_shutdown_hook(void) void llua_shutdown_hook(void)
{ {
if (!lua_L || !shutdown_hook) return; if (!lua_L || !shutdown_hook) return;
@ -418,6 +425,11 @@ void llua_set_draw_post_hook(const char *args)
draw_post_hook = strdup(args); draw_post_hook = strdup(args);
} }
void llua_set_startup_hook(const char *args)
{
startup_hook = strdup(args);
}
void llua_set_shutdown_hook(const char *args) void llua_set_shutdown_hook(const char *args)
{ {
shutdown_hook = strdup(args); shutdown_hook = strdup(args);

View File

@ -54,10 +54,12 @@ void llua_inotify_query(int wd, int mask);
#ifdef X11 #ifdef X11
void llua_draw_pre_hook(void); void llua_draw_pre_hook(void);
void llua_draw_post_hook(void); void llua_draw_post_hook(void);
void llua_startup_hook(void);
void llua_shutdown_hook(void); void llua_shutdown_hook(void);
void llua_set_draw_pre_hook(const char *args); void llua_set_draw_pre_hook(const char *args);
void llua_set_draw_post_hook(const char *args); void llua_set_draw_post_hook(const char *args);
void llua_set_startup_hook(const char *args);
void llua_set_shutdown_hook(const char *args); void llua_set_shutdown_hook(const char *args);
void llua_setup_window_table(int text_start_x, int text_start_y, int text_width, int text_height); void llua_setup_window_table(int text_start_x, int text_start_y, int text_width, int text_height);