strncasecmp(bind, "focus down", strlen("focus down")) == 0 ||
strncasecmp(bind, "border normal", strlen("border normal")) == 0 ||
strncasecmp(bind, "border 1pixel", strlen("border 1pixel")) == 0 ||
- strncasecmp(bind, "border borderless", strlen("border borderless")) == 0) {
+ strncasecmp(bind, "border borderless", strlen("border borderless")) == 0 ||
+ strncasecmp(bind, "--no-startup-id", strlen("--no-startup-id")) == 0 ||
+ strncasecmp(bind, "bar", strlen("bar")) == 0) {
printf("deciding for version 4 due to this line: %.*s\n", (int)(walk-line), line);
return 4;
}
v_value = strstr(value, "\t");
*(v_value++) = '\0';
+ while (*v_value == '\t' || *v_value == ' ')
+ v_value++;
struct Variable *new = scalloc(sizeof(struct Variable));
new->key = sstrdup(v_key);
/* We need to convert this v3 configuration */
char *converted = migrate_config(new, stbuf.st_size);
if (converted != NULL) {
- printf("\n");
- printf("****************************************************************\n");
- printf("NOTE: Automatically converted configuration file from v3 to v4.\n");
- printf("\n");
- printf("Please convert your config file to v4. You can use this command:\n");
- printf(" mv %s %s.O\n", f, f);
- printf(" i3-migrate-config-to-v4 %s.O > %s\n", f, f);
- printf("****************************************************************\n");
- printf("\n");
+ ELOG("\n");
+ ELOG("****************************************************************\n");
+ ELOG("NOTE: Automatically converted configuration file from v3 to v4.\n");
+ ELOG("\n");
+ ELOG("Please convert your config file to v4. You can use this command:\n");
+ ELOG(" mv %s %s.O\n", f, f);
+ ELOG(" i3-migrate-config-to-v4 %s.O > %s\n", f, f);
+ ELOG("****************************************************************\n");
+ ELOG("\n");
free(new);
new = converted;
} else {
}
if (context->has_errors || context->has_warnings) {
+ ELOG("FYI: You are using i3 version " I3_VERSION "\n");
+ if (version == 3)
+ ELOG("Please convert your configfile first, then fix any remaining errors (see above).\n");
start_configerror_nagbar(f);
}
%token TOK_BAR_BOTTOM "bottom"
%token TOK_BAR_TOP "top"
%token TOK_BAR_STATUS_COMMAND "status_command"
+%token TOK_BAR_I3BAR_COMMAND "i3bar_command"
%token TOK_BAR_FONT "font (bar)"
%token TOK_BAR_WORKSPACE_BUTTONS "workspace_buttons"
%token TOK_BAR_VERBOSE "verbose"
%token TOK_BAR_COLOR_ACTIVE_WORKSPACE "active_workspace"
%token TOK_BAR_COLOR_INACTIVE_WORKSPACE "inactive_workspace"
%token TOK_BAR_COLOR_URGENT_WORKSPACE "urgent_workspace"
+%token TOK_NO_STARTUP_ID "--no-startup-id"
%token TOK_MARK "mark"
%token TOK_CLASS "class"
%type <number> popup_setting
%type <number> bar_position_position
%type <number> bar_mode_mode
+%type <number> optional_no_startup_id
%type <string> command
%type <string> word_or_number
%type <string> qstring_or_number
barline:
comment
| bar_status_command
+ | bar_i3bar_command
| bar_output
| bar_tray_output
| bar_position
}
;
+bar_i3bar_command:
+ TOK_BAR_I3BAR_COMMAND STR
+ {
+ DLOG("should add i3bar_command %s\n", $2);
+ FREE(current_bar.i3bar_command);
+ current_bar.i3bar_command = $2;
+ }
+ ;
+
bar_output:
TOK_BAR_OUTPUT STR
{
;
exec:
- TOKEXEC STR
+ TOKEXEC optional_no_startup_id STR
{
- char *command = $2;
- bool no_startup_id = false;
- if (strncasecmp($2, "--no-startup-id ", strlen("--no-startup-id ")) == 0) {
- no_startup_id = true;
- /* We need to make a copy here, otherwise we leak the
- * --no-startup-id bytes in the beginning of the string */
- command = sstrdup(command + strlen("--no-startup-id "));
- free($2);
- }
-
struct Autostart *new = smalloc(sizeof(struct Autostart));
- new->command = command;
- new->no_startup_id = no_startup_id;
+ new->command = $3;
+ new->no_startup_id = $2;
TAILQ_INSERT_TAIL(&autostarts, new, autostarts);
}
;
exec_always:
- TOKEXEC_ALWAYS STR
+ TOKEXEC_ALWAYS optional_no_startup_id STR
{
- char *command = $2;
- bool no_startup_id = false;
- if (strncasecmp($2, "--no-startup-id ", strlen("--no-startup-id ")) == 0) {
- no_startup_id = true;
- /* We need to make a copy here, otherwise we leak the
- * --no-startup-id bytes in the beginning of the string */
- command = sstrdup(command + strlen("--no-startup-id "));
- free($2);
- }
-
struct Autostart *new = smalloc(sizeof(struct Autostart));
- new->command = command;
- new->no_startup_id = no_startup_id;
+ new->command = $3;
+ new->no_startup_id = $2;
TAILQ_INSERT_TAIL(&autostarts_always, new, autostarts_always);
}
;
+optional_no_startup_id:
+ /* empty */ { $$ = false; }
+ | TOK_NO_STARTUP_ID { $$ = true; }
+ ;
+
terminal:
TOKTERMINAL STR
{
TOKFONT STR
{
config.font = load_font($2, true);
+ set_font(&config.font);
printf("font %s\n", $2);
FREE(font_pattern);
font_pattern = $2;