Index: libsylph/prefs_common.c =================================================================== --- libsylph/prefs_common.c (revision 3424) +++ libsylph/prefs_common.c (working copy) @@ -450,6 +450,7 @@ {"toggle_window_on_trayicon_click", "TRUE", #endif &prefs_common.toggle_window_on_trayicon_click, P_BOOL}, + {"run_minimized", "FALSE", &prefs_common.run_minimized, P_BOOL}, /* Other */ {"receive_dialog_mode", "1", &prefs_common.recv_dialog_mode, P_ENUM}, Index: libsylph/prefs_common.h =================================================================== --- libsylph/prefs_common.h (revision 3424) +++ libsylph/prefs_common.h (working copy) @@ -262,6 +262,7 @@ gboolean show_trayicon; gboolean minimize_to_tray; gboolean toggle_window_on_trayicon_click; + gboolean run_minimized; /* Other */ RecvDialogMode recv_dialog_mode; Index: src/mainwindow.c =================================================================== --- src/mainwindow.c (revision 3424) +++ src/mainwindow.c (working copy) @@ -1191,7 +1191,8 @@ online_switch_clicked(online_switch, mainwin); /* show main window */ - gtk_widget_show(mainwin->window); + if (!prefs_common.run_minimized) + gtk_widget_show(mainwin->window); #if !GTK_CHECK_VERSION(2, 6, 0) { Index: src/prefs_common_dialog.c =================================================================== --- src/prefs_common_dialog.c (revision 3424) +++ src/prefs_common_dialog.c (working copy) @@ -231,6 +231,7 @@ GtkWidget *checkbtn_show_trayicon; GtkWidget *checkbtn_minimize_to_tray; GtkWidget *checkbtn_tray_toggle_window; + GtkWidget *checkbtn_run_minimized; } iface; static struct Other { @@ -583,6 +584,8 @@ {"toggle_window_on_trayicon_click", &iface.checkbtn_tray_toggle_window, prefs_set_data_from_toggle, prefs_set_toggle}, + {"run_minimized", &iface.checkbtn_run_minimized, + prefs_set_data_from_toggle, prefs_set_toggle}, /* Other */ {"receive_dialog_mode", &other.optmenu_recvdialog, @@ -2600,6 +2603,7 @@ GtkWidget *checkbtn_show_trayicon; GtkWidget *checkbtn_minimize_to_tray; GtkWidget *checkbtn_tray_toggle_window; + GtkWidget *checkbtn_run_minimized; GtkWidget *button_keybind; @@ -2699,10 +2703,14 @@ _("Minimize to tray icon")); PACK_CHECK_BUTTON (vbox2, checkbtn_tray_toggle_window, _("Toggle window on trayicon click")); + PACK_CHECK_BUTTON (vbox2, checkbtn_run_minimized, + _("Start Sylpheed minimized")); SET_TOGGLE_SENSITIVITY (checkbtn_show_trayicon, checkbtn_minimize_to_tray); SET_TOGGLE_SENSITIVITY (checkbtn_show_trayicon, checkbtn_tray_toggle_window); + SET_TOGGLE_SENSITIVITY (checkbtn_show_trayicon, + checkbtn_run_minimized); hbox1 = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox1); @@ -2752,6 +2760,7 @@ iface.checkbtn_show_trayicon = checkbtn_show_trayicon; iface.checkbtn_minimize_to_tray = checkbtn_minimize_to_tray; iface.checkbtn_tray_toggle_window = checkbtn_tray_toggle_window; + iface.checkbtn_run_minimized = checkbtn_run_minimized; } static GtkWidget *prefs_other_create(void)