if (configerror_pid == 0) {
char *editaction,
*pageraction;
- if (asprintf(&editaction, TERM_EMU " -e sh -c \"${EDITOR:-vi} \"%s\" && i3-msg reload\"", config_path) == -1)
+ if (asprintf(&editaction, "i3-sensible-terminal -e sh -c \"i3-sensible-editor \\\"%s\\\" && i3-msg reload\"", config_path) == -1)
exit(1);
- if (asprintf(&pageraction, TERM_EMU " -e sh -c \"${PAGER:-less} \"%s\"\"", errorfilename) == -1)
+ if (asprintf(&pageraction, "i3-sensible-terminal -e i3-sensible-pager \"%s\"", errorfilename) == -1)
exit(1);
char *argv[] = {
NULL, /* will be replaced by the executable path */
/* get key/value for this variable */
char *v_key = value, *v_value;
- if ((v_value = strstr(value, " ")) == NULL &&
- (v_value = strstr(value, "\t")) == NULL) {
+ if (strstr(value, " ") == NULL && strstr(value, "\t") == NULL) {
ELOG("Malformed variable assignment, need a value\n");
continue;
}
+ if (!(v_value = strstr(value, " ")))
+ v_value = strstr(value, "\t");
+
*(v_value++) = '\0';
struct Variable *new = scalloc(sizeof(struct Variable));
int extra = (strlen(current->value) - strlen(current->key));
char *next;
for (next = bufcopy;
- (next = strcasestr(bufcopy + (next - bufcopy), current->key)) != NULL;
+ next < (bufcopy + stbuf.st_size) &&
+ (next = strcasestr(next, current->key)) != NULL;
next += strlen(current->key)) {
*next = '_';
extra_bytes += extra;
%token TOK_1PIXEL "1pixel"
%token TOKFOCUSFOLLOWSMOUSE "focus_follows_mouse"
%token TOK_FORCE_FOCUS_WRAPPING "force_focus_wrapping"
+%token TOK_FORCE_XINERAMA "force_xinerama"
%token TOKWORKSPACEBAR "workspace_bar"
%token TOK_DEFAULT "default"
%token TOK_STACKING "stacking"
%token TOK_MARK "mark"
%token TOK_CLASS "class"
%token TOK_INSTANCE "instance"
+%token TOK_WINDOW_ROLE "window_role"
%token TOK_ID "id"
%token TOK_CON_ID "con_id"
%token TOK_TITLE "title"
| new_float
| focus_follows_mouse
| force_focus_wrapping
+ | force_xinerama
| workspace_bar
| workspace
| assign
current_match.instance = regex_new($3);
free($3);
}
+ | TOK_WINDOW_ROLE '=' STR
+ {
+ printf("criteria: window_role = %s\n", $3);
+ current_match.role = regex_new($3);
+ free($3);
+ }
| TOK_CON_ID '=' STR
{
printf("criteria: id = %s\n", $3);
}
;
+force_xinerama:
+ TOK_FORCE_XINERAMA bool
+ {
+ DLOG("force xinerama = %d\n", $2);
+ config.force_xinerama = $2;
+ }
+ ;
+
workspace_bar:
TOKWORKSPACEBAR bool
{