Improve error message when called with -show

This commit is contained in:
Dave Davenport 2017-03-31 13:47:44 +02:00
parent d31fc5c8bc
commit 9ae1344d56
10 changed files with 223 additions and 209 deletions

View file

@ -2,86 +2,86 @@
#define ROFI_DEFAULT_THEME #define ROFI_DEFAULT_THEME
const char *default_theme = const char *default_theme =
"* {" "* {"
" spacing: 2;" " spacing: 2;"
" background: #FFFDF6E3;" " background: #FFFDF6E3;"
"}" "}"
"#window {" "#window {"
" border: 1;" " border: 1;"
" foreground: #FF002B36;" " foreground: #FF002B36;"
" padding: 5;" " padding: 5;"
" background: @background;" " background: @background;"
"}" "}"
"#window.mainbox {" "#window.mainbox {"
" border: 0;" " border: 0;"
" padding: 0;" " padding: 0;"
"}" "}"
"#window.mainbox.message.box {" "#window.mainbox.message.box {"
" border: 1px dash 0px 0px ;" " border: 1px dash 0px 0px ;"
" padding: 2px 0px 0px ;" " padding: 2px 0px 0px ;"
"}" "}"
"#window.mainbox.message.normal {" "#window.mainbox.message.normal {"
" foreground: #FF002B36;" " foreground: #FF002B36;"
"}" "}"
"#window.mainbox.listview {" "#window.mainbox.listview {"
" fixed-height: 0;" " fixed-height: 0;"
" border: 1px dash 0px 0px ;" " border: 1px dash 0px 0px ;"
" columns: 1;" " columns: 1;"
" padding: 2px 0px 0px ;" " padding: 2px 0px 0px ;"
"}" "}"
"#window.mainbox.listview.element {" "#window.mainbox.listview.element {"
" border: 0;" " border: 0;"
"}" "}"
"#window.mainbox.listview.element.normal.normal {" "#window.mainbox.listview.element.normal.normal {"
" foreground: #FF002B36;" " foreground: #FF002B36;"
" background: #FFFDF6E3;" " background: #FFFDF6E3;"
"}" "}"
"#window.mainbox.listview.element.normal.urgent {" "#window.mainbox.listview.element.normal.urgent {"
" foreground: #FFDC322F;" " foreground: #FFDC322F;"
" background: #FFFDF6E3;" " background: #FFFDF6E3;"
"}" "}"
"#window.mainbox.listview.element.normal.active {" "#window.mainbox.listview.element.normal.active {"
" foreground: #FF268BD2;" " foreground: #FF268BD2;"
" background: #FFFDF6E3;" " background: #FFFDF6E3;"
"}" "}"
"#window.mainbox.listview.element.selected.normal {" "#window.mainbox.listview.element.selected.normal {"
" foreground: #FFEEE8D5;" " foreground: #FFEEE8D5;"
" background: #FF586E75;" " background: #FF586E75;"
"}" "}"
"#window.mainbox.listview.element.selected.urgent {" "#window.mainbox.listview.element.selected.urgent {"
" foreground: #FFFDF6E3;" " foreground: #FFFDF6E3;"
" background: #FFDC322F;" " background: #FFDC322F;"
"}" "}"
"#window.mainbox.listview.element.selected.active {" "#window.mainbox.listview.element.selected.active {"
" foreground: #FFFDF6E3;" " foreground: #FFFDF6E3;"
" background: #FF268BD2;" " background: #FF268BD2;"
"}" "}"
"#window.mainbox.listview.element.alternate.normal {" "#window.mainbox.listview.element.alternate.normal {"
" foreground: #FF002B36;" " foreground: #FF002B36;"
" background: #FFEEE8D5;" " background: #FFEEE8D5;"
"}" "}"
"#window.mainbox.listview.element.alternate.urgent {" "#window.mainbox.listview.element.alternate.urgent {"
" foreground: #FFDC322F;" " foreground: #FFDC322F;"
" background: #FFEEE8D5;" " background: #FFEEE8D5;"
"}" "}"
"#window.mainbox.listview.element.alternate.active {" "#window.mainbox.listview.element.alternate.active {"
" foreground: #FF268BD2;" " foreground: #FF268BD2;"
" background: #FFEEE8D5;" " background: #FFEEE8D5;"
"}" "}"
"#window.mainbox.listview.scrollbar {" "#window.mainbox.listview.scrollbar {"
" border: 0;" " border: 0;"
" padding: 0;" " padding: 0;"
"}" "}"
"#window.mainbox.sidebar.box {" "#window.mainbox.sidebar.box {"
" border: 1px dash 0px 0px ;" " border: 1px dash 0px 0px ;"
"}" "}"
"#window.mainbox.inputbar {" "#window.mainbox.inputbar {"
" spacing: 0;" " spacing: 0;"
"}" "}"
"#window.mainbox.inputbar.box {" "#window.mainbox.inputbar.box {"
"}" "}"
"#window.mainbox.inputbar.normal {" "#window.mainbox.inputbar.normal {"
" foreground: #FF002B36;" " foreground: #FF002B36;"
" background: @background;" " background: @background;"
"}"; "}";
#endif #endif

View file

@ -104,7 +104,7 @@ typedef char* ( *_mode_preprocess_input )( Mode *sw, const char *input );
* *
* @returns the (valid pango markup) message to display. * @returns the (valid pango markup) message to display.
*/ */
typedef char * (*_mode_get_message )( const Mode *sw ); typedef char * ( *_mode_get_message )( const Mode *sw );
/** /**
* Structure defining a switcher. * Structure defining a switcher.

View file

@ -196,7 +196,6 @@ extern xcb_colormap_t map;
*/ */
void x11_create_visual_and_colormap ( void ); void x11_create_visual_and_colormap ( void );
/** /**
* Gets a surface containing the background image of the desktop. * Gets a surface containing the background image of the desktop.
* *

View file

@ -105,6 +105,11 @@ struct xkb_stuff xkb = {
char *config_path = NULL; char *config_path = NULL;
/** Array holding all activated modi. */ /** Array holding all activated modi. */
Mode **modi = NULL; Mode **modi = NULL;
/** List of (possibly uninitialized) modi's */
Mode ** available_modi = NULL;
/** Length of #num_available_modi */
unsigned int num_available_modi = 0;
/** Number of activated modi in #modi array */ /** Number of activated modi in #modi array */
unsigned int num_modi = 0; unsigned int num_modi = 0;
/** Current selected mode */ /** Current selected mode */
@ -334,6 +339,41 @@ static void help ( G_GNUC_UNUSED int argc, char **argv )
} }
} }
static void help_print_no_arguments ( void )
{
int is_term = isatty ( fileno ( stdout ) );
// Daemon mode
fprintf ( stderr, "Rofi is unsure what to show.\n" );
fprintf ( stderr, "Please specify the mode you want to show.\n\n" );
fprintf ( stderr, " %srofi%s -show %s{mode}%s\n\n",
is_term ? color_bold : "", is_term ? color_reset : "",
is_term ? color_green : "", is_term ? color_reset : "" );
fprintf ( stderr, "The following modi are enabled:\n" );
for ( unsigned int j = 0; j < num_modi; j++ ) {
fprintf ( stderr, " * %s%s%s\n",
is_term ? color_green : "",
modi[j]->name,
is_term ? color_reset : "" );
}
fprintf ( stderr, "\nThe following can be enabled:\n" );
for ( unsigned int i = 0; i < num_available_modi; i++ ) {
gboolean active = FALSE;
for ( unsigned int j = 0; j < num_modi; j++ ) {
if ( modi[j] == available_modi[i] ) {
active = TRUE;
break;
}
}
if ( !active ) {
fprintf ( stderr, " * %s%s%s\n",
is_term ? color_red : "",
available_modi[i]->name,
is_term ? color_reset : "" );
}
}
fprintf ( stderr, "\nTo activate a mode, add it to the list of modi in the 'modi' setting." );
}
/** /**
* Cleanup globally allocated memory. * Cleanup globally allocated memory.
*/ */
@ -407,10 +447,6 @@ static void cleanup ()
/** /**
* Collected modi * Collected modi
*/ */
/** List of (possibly uninitialized) modi's */
Mode ** available_modi = NULL;
/** Length of #num_available_modi */
unsigned int num_available_modi = 0;
/** /**
* @param name Search for mode with this name. * @param name Search for mode with this name.
@ -548,7 +584,7 @@ static int add_mode ( const char * token )
} }
else { else {
// Report error, don't continue. // Report error, don't continue.
fprintf ( stderr, "Invalid script switcher: %s\n", token ); fprintf ( stderr, "Invalid script mode: %s\n", token );
} }
} }
return ( index == num_modi ) ? -1 : (int) index; return ( index == num_modi ) ? -1 : (int) index;
@ -806,27 +842,7 @@ static gboolean startup ( G_GNUC_UNUSED gpointer data )
run_switcher ( 0 ); run_switcher ( 0 );
} }
else{ else{
// Daemon mode help_print_no_arguments ( );
fprintf ( stderr, "Please specify the mode you want to show.\n\n" );
fprintf ( stderr, " rofi -show {mode}\n\n");
fprintf ( stderr, "The following modi are available:\n" );
for ( unsigned int j = 0; j < num_modi; j++ ) {
fprintf ( stderr, " * %s\n", modi[j]->name);
}
fprintf ( stderr, "\nThe following can be enabled:\n" );
for ( unsigned int i = 0; i < num_available_modi; i++ ) {
gboolean active = FALSE;
for ( unsigned int j = 0; j < num_modi; j++ ) {
if ( modi[j] == available_modi[i] ){
active = TRUE;
break;
}
}
if ( ! active ) {
fprintf ( stderr, " * %s\n", available_modi[i]->name);
}
}
fprintf ( stderr, "\nTo activate a mode, add it to the list of modi in the 'modi' setting.");
g_main_loop_quit ( main_loop ); g_main_loop_quit ( main_loop );
} }
@ -1104,8 +1120,8 @@ int main ( int argc, char *argv[] )
g_free ( theme_str ); g_free ( theme_str );
} }
if ( rofi_theme_is_empty ( ) ) { if ( rofi_theme_is_empty ( ) ) {
if ( rofi_theme_parse_string ( default_theme ) ){ if ( rofi_theme_parse_string ( default_theme ) ) {
fprintf(stderr, "Failed to parse default theme. Giving up..\n"); fprintf ( stderr, "Failed to parse default theme. Giving up..\n" );
rofi_theme = NULL; rofi_theme = NULL;
cleanup (); cleanup ();
return EXIT_FAILURE; return EXIT_FAILURE;

View file

@ -807,7 +807,6 @@ void x11_create_visual_and_colormap ( void )
} }
} }
xcb_window_t xcb_stuff_get_root_window ( xcb_stuff *xcb ) xcb_window_t xcb_stuff_get_root_window ( xcb_stuff *xcb )
{ {
return xcb->screen->root; return xcb->screen->root;