#include #include #include #include #include static GtkWidget* window = NULL; static GtkWidget* term = NULL; void child_exited(VteTerminal *term, gpointer user_data){ gtk_main_quit(); } void window_init(){ GdkScreen* screen = gdk_screen_get_default(); gint width = gdk_screen_get_width(screen); gint height = gdk_screen_get_height(screen); //window window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_resizable((GtkWindow*)window, FALSE); gtk_window_set_decorated((GtkWindow*)window, FALSE); gtk_window_set_skip_taskbar_hint((GtkWindow*)window, TRUE); gtk_window_set_skip_pager_hint((GtkWindow*)window, TRUE); gtk_window_set_keep_below((GtkWindow*)window, TRUE); gtk_window_set_focus_on_map((GtkWindow*)window, FALSE); gtk_window_stick((GtkWindow*)window); gtk_signal_connect(GTK_OBJECT(window), "delete-event", GTK_SIGNAL_FUNC(gtk_main_quit), NULL); term = vte_terminal_new(); vte_terminal_set_size((VteTerminal*)term, 120, 10); vte_terminal_set_background_transparent((VteTerminal*)term, TRUE); vte_terminal_set_background_saturation((VteTerminal*)term, 1.0); vte_terminal_set_font_from_string((VteTerminal*)term, "Monospace 10"); vte_terminal_set_word_chars((VteTerminal*)term, "-A-Za-z0-9,./?%&#:_"); gtk_signal_connect(GTK_OBJECT(term), "child-exited", GTK_SIGNAL_FUNC(child_exited), NULL); gtk_container_add(GTK_CONTAINER(window), term); gtk_window_set_default_size((GtkWindow*)window, width/2, height/6); gtk_window_move((GtkWindow*)window, 0, height-(height/6)-26); gtk_widget_show(term); } int main(int argc, char* argv[]) { char* cmd = "/usr/bin/tail"; char* args[] = {"/usr/bin/tail", "-F", "/var/log/syslog", NULL}; extern char** environ; if(argc == 2){ args[2] = argv[1]; } gtk_init(&argc, &argv); window_init(); vte_terminal_fork_command((VteTerminal*)term, cmd, args, environ, "/tmp", FALSE, FALSE, FALSE); gtk_widget_show(window); gtk_main(); return 0; }