diff --git a/config.c b/config.c index 94bd7eee1..462eb58c5 100644 --- a/config.c +++ b/config.c @@ -328,7 +328,10 @@ parse_config(const char *confpatharg, awesome_config *awesomeconf) ret = cfg_parse(cfg, confpath); if(ret == CFG_FILE_ERROR) + { perror("awesome: parsing configuration file failed"); + cfg_parse_buf(cfg, AWESOME_DEFAULT_CONFIG); + } else if(ret == CFG_PARSE_ERROR) cfg_error(cfg, "awesome: parsing configuration file %s failed.\n", confpath); @@ -338,6 +341,13 @@ parse_config(const char *confpatharg, awesome_config *awesomeconf) if(!cfg_screen) cfg_screen = cfg_getsec(cfg, "screen"); + if(!cfg_screen) + { + fprintf(stderr, "awesome: parsing configuration file failed, no screen section found"); + cfg_parse_buf(cfg, AWESOME_DEFAULT_CONFIG); + cfg_screen = cfg_getsec(cfg, "screen"); + } + /* get screen specific sections */ cfg_statusbar = cfg_getsec(cfg_screen, "statusbar"); cfg_tags = cfg_getsec(cfg_screen, "tags"); diff --git a/config.h b/config.h index 7c3ad3e56..3fa0f1c4f 100644 --- a/config.h +++ b/config.h @@ -233,6 +233,564 @@ struct awesome_config char *configpath; }; +#define AWESOME_DEFAULT_CONFIG \ +"screen 0 \ +{ \ + tags \ + { \ + tag one { } \ + tag two { } \ + tag three { } \ + tag four { } \ + tag five { } \ + tag six { } \ + tag seven { } \ + tag eight { } \ + tag nine { } \ + } \ + layouts \ + { \ + layout tile { symbol = \"[]=\" } \ + layout tileleft { symbol = \"=[]\" } \ + layout max { symbol = \"[ ]\" } \ + layout floating { symbol = \"><>\" } \ + } \ +} \ + \ +mouse \ +{ \ + tag \ + { \ + button = \"1\" \ + command = \"tag_view\" \ + } \ + tag \ + { \ + button = \"1\" \ + modkey = {\"Mod4\"} \ + command = \"client_tag\" \ + } \ + tag \ + { \ + button = \"3\" \ + command = \"tag_toggleview\" \ + } \ + tag \ + { \ + button = \"3\" \ + modkey = {\"Mod4\"} \ + command = \"client_toggletag\" \ + } \ + tag \ + { \ + button = \"4\" \ + command = \"tag_viewnext\" \ + } \ + tag \ + { \ + button = \"5\" \ + command = \"tag_viewprev\" \ + } \ + # For click on layout symbol \ + layout \ + { \ + button = \"1\" \ + command = \"tag_setlayout\" \ + arg = \"+1\" \ + } \ + layout \ + { \ + button = \"4\" \ + command = \"tag_setlayout\" \ + arg = \"+1\" \ + } \ + layout \ + { \ + button = \"3\" \ + command = \"tag_setlayout\" \ + arg = \"-1\" \ + } \ + layout \ + { \ + button = \"5\" \ + command = \"tag_setlayout\" \ + arg = \"-1\" \ + } \ + root \ + { \ + button = \"3\" \ + command = \"spawn\" \ + arg = \"exec urxvt\" \ + } \ + root \ + { \ + button = \"4\" \ + command = \"tag_viewnext\" \ + } \ + root \ + { \ + button = \"5\" \ + command = \"tag_viewprev\" \ + } \ + client \ + { \ + modkey = {\"Mod4\"} \ + button = \"1\" \ + command = \"client_movemouse\" \ + } \ + client \ + { \ + modkey = {\"Mod4\"} \ + button = \"2\" \ + command = \"client_zoom\" \ + } \ + client \ + { \ + modkey = {\"Mod4\"} \ + button = \"3\" \ + command = \"client_resizemouse\" \ + } \ +} \ + \ +keys \ +{ \ + key \ + { \ + modkey = {\"Mod4\"} \ + key = \"Return\" \ + command = \"spawn\" \ + arg = \"exec xterm\" \ + } \ + key \ + { \ + modkey = {\"Mod4\"} \ + key = \"space\" \ + command = \"tag_setlayout\" \ + arg = \"+1\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\"} \ + key = \"space\" \ + command = \"tag_setlayout\" \ + arg = \"-1\" \ + } \ + key \ + { \ + modkey = {\"Mod4\"} \ + key = \"b\" \ + command = \"togglebar\" \ + } \ + key \ + { \ + modkey = {\"Mod4\"} \ + key = \"j\" \ + command = \"client_focusnext\" \ + } \ + key \ + { \ + modkey = {\"Mod4\"} \ + key = \"k\" \ + command = \"client_focusprev\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\"} \ + key = \"j\" \ + command = \"client_swapnext\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\"} \ + key = \"k\" \ + command = \"client_swapprev\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Control\"} \ + key = \"j\" \ + command = \"screen_focusnext\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Control\"} \ + key = \"k\" \ + command = \"screen_focusprev\" \ + } \ + key \ + { \ + modkey = {\"Mod4\"} \ + key = \"h\" \ + command = \"tag_setmwfact\" \ + arg = \"-0.05\" \ + } \ + key \ + { \ + modkey = {\"Mod4\"} \ + key = \"l\" \ + command = \"tag_setmwfact\" \ + arg = \"+0.05\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\"} \ + key = \"h\" \ + command = \"tag_setnmaster\" \ + arg = \"+1\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\"} \ + key = \"l\" \ + command = \"tag_setnmaster\" \ + arg = \"-1\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Control\"} \ + key = \"h\" \ + command = \"tag_setncol\" \ + arg = \"+1\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Control\"} \ + key = \"l\" \ + command = \"tag_setncol\" \ + arg = \"-1\" \ + } \ + key \ + { \ + modkey = {\"Mod4\"} \ + key = \"Escape\" \ + command = \"tag_viewprev_selected\" \ + } \ + key \ + { \ + modkey = {\"Mod4\"} \ + key = \"Left\" \ + command = \"tag_viewprev\" \ + } \ + key \ + { \ + modkey = {\"Mod4\"} \ + key = \"Right\" \ + command = \"tag_viewnext\" \ + } \ + key \ + { \ + modkey = {\"Mod4\"} \ + key = \"m\" \ + command = \"client_togglemax\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Control\"} \ + key = \"Return\" \ + command = \"client_zoom\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Control\"} \ + key = \"space\" \ + command = \"client_togglefloating\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\"} \ + key = \"c\" \ + command = \"client_kill\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\"} \ + key = \"q\" \ + command = \"quit\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Control\"} \ + key = \"r\" \ + command = \"reloadconfig\" \ + } \ + key \ + { \ + modkey = {\"Mod4\"} \ + key = \"0\" \ + command = \"tag_view\" \ + } \ + key \ + { \ + modkey = {\"Mod4\"} \ + key = \"1\" \ + command = \"tag_view\" \ + arg = \"1\" \ + } \ + key \ + { \ + modkey = {\"Mod4\"} \ + key = \"2\" \ + command = \"tag_view\" \ + arg = \"2\" \ + } \ + key \ + { \ + modkey = {\"Mod4\"} \ + key = \"3\" \ + command = \"tag_view\" \ + arg = \"3\" \ + } \ + key \ + { \ + modkey = {\"Mod4\"} \ + key = \"4\" \ + command = \"tag_view\" \ + arg = \"4\" \ + } \ + key \ + { \ + modkey = {\"Mod4\"} \ + key = \"5\" \ + command = \"tag_view\" \ + arg = \"5\" \ + } \ + key \ + { \ + modkey = {\"Mod4\"} \ + key = \"6\" \ + command = \"tag_view\" \ + arg = \"6\" \ + } \ + key \ + { \ + modkey = {\"Mod4\"} \ + key = \"7\" \ + command = \"tag_view\" \ + arg = \"7\" \ + } \ + key \ + { \ + modkey = {\"Mod4\"} \ + key = \"8\" \ + command = \"tag_view\" \ + arg = \"8\" \ + } \ + key \ + { \ + modkey = {\"Mod4\"} \ + key = \"9\" \ + command = \"tag_view\" \ + arg = \"9\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Control\"} \ + key = \"0\" \ + command = \"tag_toggleview\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Control\"} \ + key = \"1\" \ + command = \"tag_toggleview\" \ + arg = \"1\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Control\"} \ + key = \"2\" \ + command = \"tag_toggleview\" \ + arg = \"2\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Control\"} \ + key = \"3\" \ + command = \"tag_toggleview\" \ + arg = \"3\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Control\"} \ + key = \"4\" \ + command = \"tag_toggleview\" \ + arg = \"4\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Control\"} \ + key = \"5\" \ + command = \"tag_toggleview\" \ + arg = \"5\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Control\"} \ + key = \"6\" \ + command = \"tag_toggleview\" \ + arg = \"6\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Control\"} \ + key = \"7\" \ + command = \"tag_toggleview\" \ + arg = \"7\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Control\"} \ + key = \"8\" \ + command = \"tag_toggleview\" \ + arg = \"8\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Control\"} \ + key = \"9\" \ + command = \"tag_toggleview\" \ + arg = \"9\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\"} \ + key = \"0\" \ + command = \"client_tag\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\"} \ + key = \"1\" \ + command = \"client_tag\" \ + arg = \"1\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\"} \ + key = \"2\" \ + command = \"client_tag\" \ + arg = \"2\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\"} \ + key = \"3\" \ + command = \"client_tag\" \ + arg = \"3\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\"} \ + key = \"4\" \ + command = \"client_tag\" \ + arg = \"4\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\"} \ + key = \"5\" \ + command = \"client_tag\" \ + arg = \"5\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\"} \ + key = \"6\" \ + command = \"client_tag\" \ + arg = \"6\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\"} \ + key = \"7\" \ + command = \"client_tag\" \ + arg = \"7\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\"} \ + key = \"8\" \ + command = \"client_tag\" \ + arg = \"8\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\"} \ + key = \"9\" \ + command = \"client_tag\" \ + arg = \"9\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\", \"Control\"} \ + key = \"0\" \ + command = \"client_toggletag\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\", \"Control\"} \ + key = \"1\" \ + command = \"client_toggletag\" \ + arg = \"1\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\", \"Control\"} \ + key = \"2\" \ + command = \"client_toggletag\" \ + arg = \"2\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\", \"Control\"} \ + key = \"3\" \ + command = \"client_toggletag\" \ + arg = \"3\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\", \"Control\"} \ + key = \"4\" \ + command = \"client_toggletag\" \ + arg = \"4\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\", \"Control\"} \ + key = \"5\" \ + command = \"client_toggletag\" \ + arg = \"5\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\", \"Control\"} \ + key = \"6\" \ + command = \"client_toggletag\" \ + arg = \"6\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\", \"Control\"} \ + key = \"7\" \ + command = \"client_toggletag\" \ + arg = \"7\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\", \"Control\"} \ + key = \"8\" \ + command = \"client_toggletag\" \ + arg = \"8\" \ + } \ + key \ + { \ + modkey = {\"Mod4\", \"Shift\", \"Control\"} \ + key = \"9\" \ + command = \"client_toggletag\" \ + arg = \"9\" \ + } \ +}" + void parse_config(const char *, awesome_config *); void uicb_reloadconfig(awesome_config *, const char *);