diff options
| author | Daniel Friesel <derf@finalrewind.org> | 2018-05-10 21:16:00 +0200 | 
|---|---|---|
| committer | Daniel Friesel <derf@finalrewind.org> | 2018-05-10 21:19:39 +0200 | 
| commit | f68160e7fb3c86bfa14f8ea7faf0f3d104f4a457 (patch) | |
| tree | a5fc3a3bdc55d938760b6759c3be6f474d2e5225 /src | |
| parent | 0460870b2da6ed4f2c8112b508f279a2b2205fe9 (diff) | |
Only save background setting-related options in ~/.fehbg
This restores pre-2.21 ~/.fehbg behaviour. Replicating the entire commandline
in ~/.fehbg turned out to do more harm than good.
Closes #398
Diffstat (limited to 'src')
| -rw-r--r-- | src/wallpaper.c | 56 | 
1 files changed, 35 insertions, 21 deletions
| diff --git a/src/wallpaper.c b/src/wallpaper.c index 8d15335..4eaa660 100644 --- a/src/wallpaper.c +++ b/src/wallpaper.c @@ -461,6 +461,40 @@ void feh_wm_set_bg(char *fil, Imlib_Image im, int centered, int scaled,  					weprintf("Can't write to %s", path);  				} else {  					fputs("#!/bin/sh\n", fp); +					fputs(cmdargv[0], fp); +					fputs(" --bg-", fp); +					if (centered) +						fputs("center", fp); +					else if (scaled) +						fputs("scale", fp); +					else if (filled) +						fputs("fill", fp); +					else +						fputs("tile", fp); +#ifdef HAVE_LIBXINERAMA +					if (opt.xinerama) { +						if (opt.xinerama_index >= 0) { +							fprintf(fp, " --xinerama-index %d", opt.xinerama_index); +						} +					} +					else { +						fputs(" --no-xinerama", fp); +					} +#endif			/* HAVE_LIBXINERAMA */ +					if (opt.geom_flags & XValue) { +						fprintf(fp, " --geometry %c%d", +								opt.geom_flags & XNegative ? '-' : '+', +								opt.geom_flags & XNegative ? abs(opt.geom_x) : opt.geom_x); +						if (opt.geom_flags & YValue) { +							fprintf(fp, "%c%d", +									opt.geom_flags & YNegative ? '-' : '+', +									opt.geom_flags & YNegative ? abs(opt.geom_y) : opt.geom_y); +						} +					} +					if (opt.force_aliasing) { +						fputs(" --force-aliasing", fp); +					} +					fputc(' ', fp);  					if (use_filelist) {  						for (int i = 0; i < cmdargc; i++) {  							if (filelist_pos && !strcmp(FEH_FILE(filelist_pos->data)->filename, cmdargv[i])) { @@ -469,30 +503,10 @@ void feh_wm_set_bg(char *fil, Imlib_Image im, int centered, int scaled,  								fputs(shell_escape(absolute_path), fp);  								filelist_pos = filelist_pos->next;  								free(absolute_path); -							} else { -								/* argument is an option / option arg */ -								fputs(shell_escape(cmdargv[i]), fp); +								fputc(' ', fp);  							} -							fputc(' ', fp);  						}  					} else if (fil) { -						fputs("feh --bg-", fp); -						if (centered) -							fputs("center", fp); -						else if (scaled) -							fputs("scale", fp); -						else if (filled) -							fputs("fill", fp); -						else -							fputs("tile", fp); - -						if (opt.force_aliasing) -							fputs(" --force-aliasing", fp); -#ifdef HAVE_LIBXINERAMA -						if (!opt.xinerama) -							fputs(" --no-xinerama", fp); -#endif -						fputc(' ', fp);  						absolute_path = feh_absolute_path(fil);  						fputs(shell_escape(absolute_path), fp);  						free(absolute_path); | 
