@@ -53,7 +53,6 @@ sxiv supports the following command-line options: | |||
Use the following keys to control the basic behaviour of sxiv: | |||
q Quit sxiv | |||
Escape Quit sxiv and return an exit value of 2 (useful for scripting) | |||
f Toggle fullscreen mode (requires an EWMH/NetWM compliant | |||
window manager) | |||
@@ -73,6 +72,7 @@ Inside image view mode, the following key mappings are available: | |||
a Toggle anti-aliasing | |||
A Toggle visibility of alpha-channel, i.e. transparency | |||
r Reload image | |||
D Remove image from file list and go to next image | |||
Return Switch to thumbnail mode | |||
Additionally, the image view offers the following mouse commands: | |||
@@ -91,6 +91,7 @@ In thumbnail mode, the following key and mouse mappings are available: | |||
h,j,k,l Move selection left/down/up/right (also with arrow keys) | |||
g/G Move selection to first/last image | |||
D Remove selected image from file list and select next image | |||
Return Open selected image | |||
Button1 Select image/open image if it is already selected | |||
@@ -370,7 +370,7 @@ void redraw() { | |||
} | |||
void on_keypress(XKeyEvent *kev) { | |||
int x, y; | |||
int i, x, y; | |||
unsigned int w, h; | |||
char key; | |||
KeySym ksym; | |||
@@ -385,10 +385,10 @@ void on_keypress(XKeyEvent *kev) { | |||
#ifdef EXT_COMMANDS | |||
/* external commands from commands.h */ | |||
if (CLEANMASK(kev->state) & ControlMask) { | |||
for (x = 0; x < LEN(commands); ++x) { | |||
if (commands[x].ksym == ksym) { | |||
for (i = 0; i < LEN(commands); ++i) { | |||
if (commands[i].ksym == ksym) { | |||
win_set_cursor(&win, CURSOR_WATCH); | |||
if (run_command(commands[x].cmdline, commands[x].reload)) { | |||
if (run_command(commands[i].cmdline, commands[i].reload)) { | |||
if (mode == MODE_NORMAL) { | |||
img_close(&img, 1); | |||
load_image(fileidx); | |||
@@ -571,6 +571,38 @@ void on_keypress(XKeyEvent *kev) { | |||
win_toggle_fullscreen(&win); | |||
/* render on next configurenotify */ | |||
break; | |||
case XK_D: | |||
if (mode == MODE_THUMBS) { | |||
if (tns.sel >= tns.cnt) | |||
break; | |||
i = tns.sel; | |||
} else { | |||
i = fileidx; | |||
} | |||
if (filecnt == 1) { | |||
cleanup(); | |||
exit(0); | |||
} | |||
if (i + 1 < filecnt) | |||
memmove(filenames + i, filenames + i + 1, (filecnt - i - 1) * | |||
sizeof(const char*)); | |||
else if (fileidx) | |||
fileidx--; | |||
if (i + 1 < tns.cnt) { | |||
memmove(tns.thumbs + i, tns.thumbs + i + 1, (tns.cnt - i - 1) * | |||
sizeof(thumb_t)); | |||
memset(tns.thumbs + tns.cnt - 1, 0, sizeof(thumb_t)); | |||
} else if (tns.sel) { | |||
tns.sel--; | |||
} | |||
filecnt--; | |||
if (mode == MODE_NORMAL) | |||
load_image(fileidx); | |||
if (i < tns.cnt) | |||
tns.cnt--; | |||
changed = tns.dirty = 1; | |||
break; | |||
} | |||
if (changed) | |||
@@ -82,9 +82,6 @@ at startup. | |||
.B q | |||
Quit sxiv. | |||
.TP | |||
.B Escape | |||
Quit sxiv and return an exit value of 2. | |||
.TP | |||
.B Return | |||
Switch to thumbnail mode; in thumbnail mode: open selected image. | |||
.SS Navigate image list | |||
@@ -156,6 +153,10 @@ Toggle visibility of alpha-channel, i.e. image transparency. | |||
.TP | |||
.B r | |||
Reload image. | |||
.TP | |||
.B D | |||
Remove image from file list and go to next image; in thumbnail mode: remove | |||
selected image from file list and select next image. | |||
.SH MOUSE COMMANDS | |||
.SS Navigate image list | |||
.TP | |||