diff --git a/README.md b/README.md index cda09ee..23b94f4 100644 --- a/README.md +++ b/README.md @@ -74,11 +74,12 @@ of small previews is displayed, making it easy to choose an image to open. -d Scale all images to 100%, but fit large images into window -F Use size-hints to make the window fixed/floating -f Start in fullscreen mode + -G GAMMA Set image gamma to GAMMA (-32..32) -g GEOMETRY Set window position and size (see section GEOMETRY SPECIFICATIONS of X(7)) -i Read file list from stdin - -n NUM Start at picture NUM -N NAME Set X window resource name to NAME + -n NUM Start at picture NUM -o Write list of marked files to stdout when quitting -q Be quiet, disable warnings -r Search given directories recursively for images @@ -108,6 +109,7 @@ of small previews is displayed, making it easy to choose an image to open. D Remove image from file list and go to next image m Mark/unmark current image + M Reverse all image marks N Go [count] marked images forward P Go [count] marked images backward diff --git a/commands.c b/commands.c index 7562bd1..49298bf 100644 --- a/commands.c +++ b/commands.c @@ -251,6 +251,17 @@ bool it_toggle_image_mark(arg_t a) return true; } +bool it_reverse_marks(arg_t a) +{ + int i, cnt = mode == MODE_IMAGE ? filecnt : tns.cnt; + + for (i = 0; i < cnt; i++) + files[i].marked = !files[i].marked; + if (mode == MODE_THUMB) + tns.dirty = true; + return true; +} + bool it_navigate_marked(arg_t a) { long n = (long) a; diff --git a/commands.h b/commands.h index 16aee07..ba40eed 100644 --- a/commands.h +++ b/commands.h @@ -55,6 +55,7 @@ bool it_n_or_last(arg_t); bool i_navigate_frame(arg_t); bool i_toggle_animation(arg_t); bool it_toggle_image_mark(arg_t); +bool it_reverse_marks(arg_t); bool it_navigate_marked(arg_t); bool it_scroll_move(arg_t); bool it_scroll_screen(arg_t); diff --git a/config.def.h b/config.def.h index bc8e419..b1e9c02 100644 --- a/config.def.h +++ b/config.def.h @@ -101,6 +101,7 @@ static const keymap_t keys[] = { { true, XK_space, i_toggle_animation, (arg_t) None }, { false, XK_m, it_toggle_image_mark, (arg_t) None }, + { false, XK_M, it_reverse_marks, (arg_t) None }, { false, XK_N, it_navigate_marked, (arg_t) +1 }, { false, XK_P, it_navigate_marked, (arg_t) -1 }, diff --git a/sxiv.1 b/sxiv.1 index 42ee155..1fca2dd 100644 --- a/sxiv.1 +++ b/sxiv.1 @@ -135,6 +135,9 @@ Remove current image from file list and go to next image. .B m Mark/unmark the current image. .TP +.B M +Reverse all image marks. +.TP .B N Go .I count