Skip to content
Snippets Groups Projects
  • guns's avatar
    36b09fa0
    Add prev_dir and next_dir navigation actions · 36b09fa0
    guns authored
    Many image collections are organized by directory, so it is nice to have
    jump-to-adjacent-directory navigation.
    
    e.g. Given the following file hierarchy:
    
        .
        ├── A
        │   ├── 1.jpg
        │   ├── 2.jpg
        │   └── C
        │       ├── 1.jpg
        │       ├── 2.jpg
        │       └── 3.jpg
        └── B
            ├── 1.jpg
            ├── 2.jpg
            └── 3.jpg
    
    `feh --recursive` creates the following filelist:
    
        A/1.jpg <---- current_file
        A/2.jpg
        A/C/1.jpg
        A/C/2.jpg
        A/C/3.jpg
        B/1.jpg
        B/2.jpg
        B/3.jpg
    
    If we press [next_dir], we move the current_file pointer to:
    
        A/1.jpg
        A/2.jpg
        A/C/1.jpg <-- current_file
        A/C/2.jpg
        A/C/3.jpg
        B/1.jpg
        B/2.jpg
        B/3.jpg
    
    Pressing [next_dir] again moves the pointer to:
    
        A/1.jpg
        A/2.jpg
        A/C/1.jpg
        A/C/2.jpg
        A/C/3.jpg
        B/1.jpg <---- current_file
        B/2.jpg
        B/3.jpg
    
    [next_dir] now moves the pointer back to the top of the list:
    
        A/1.jpg <---- current_file
        A/2.jpg
        A/C/1.jpg
        A/C/2.jpg
        A/C/3.jpg
        B/1.jpg
        B/2.jpg
        B/3.jpg
    
    Pressing [prev_dir] from here moves backwards to the first image of the
    previous directory:
    
        A/1.jpg
        A/2.jpg
        A/C/1.jpg
        A/C/2.jpg
        A/C/3.jpg
        B/1.jpg <---- current_file
        B/2.jpg
        B/3.jpg
    
    When starting from an position that is not the first image of a
    directory, [prev_dir] moves the pointer to the first image of the
    current directory.
    
    These actions combine well with `--sort dirname` since all regular files
    in a directory will be sorted before any subdirectories, avoiding a
    filelist like the following:
    
        A/1.jpg
        A/SUBDIR/2.jpg
        A/SUBDIR/3.jpg
        A/4.jpg
    
    With `--sort dirname` that filelist becomes:
    
        A/1.jpg
        A/4.jpg
        A/SUBDIR/2.jpg
        A/SUBDIR/3.jpg
    36b09fa0
    History
    Add prev_dir and next_dir navigation actions
    guns authored
    Many image collections are organized by directory, so it is nice to have
    jump-to-adjacent-directory navigation.
    
    e.g. Given the following file hierarchy:
    
        .
        ├── A
        │   ├── 1.jpg
        │   ├── 2.jpg
        │   └── C
        │       ├── 1.jpg
        │       ├── 2.jpg
        │       └── 3.jpg
        └── B
            ├── 1.jpg
            ├── 2.jpg
            └── 3.jpg
    
    `feh --recursive` creates the following filelist:
    
        A/1.jpg <---- current_file
        A/2.jpg
        A/C/1.jpg
        A/C/2.jpg
        A/C/3.jpg
        B/1.jpg
        B/2.jpg
        B/3.jpg
    
    If we press [next_dir], we move the current_file pointer to:
    
        A/1.jpg
        A/2.jpg
        A/C/1.jpg <-- current_file
        A/C/2.jpg
        A/C/3.jpg
        B/1.jpg
        B/2.jpg
        B/3.jpg
    
    Pressing [next_dir] again moves the pointer to:
    
        A/1.jpg
        A/2.jpg
        A/C/1.jpg
        A/C/2.jpg
        A/C/3.jpg
        B/1.jpg <---- current_file
        B/2.jpg
        B/3.jpg
    
    [next_dir] now moves the pointer back to the top of the list:
    
        A/1.jpg <---- current_file
        A/2.jpg
        A/C/1.jpg
        A/C/2.jpg
        A/C/3.jpg
        B/1.jpg
        B/2.jpg
        B/3.jpg
    
    Pressing [prev_dir] from here moves backwards to the first image of the
    previous directory:
    
        A/1.jpg
        A/2.jpg
        A/C/1.jpg
        A/C/2.jpg
        A/C/3.jpg
        B/1.jpg <---- current_file
        B/2.jpg
        B/3.jpg
    
    When starting from an position that is not the first image of a
    directory, [prev_dir] moves the pointer to the first image of the
    current directory.
    
    These actions combine well with `--sort dirname` since all regular files
    in a directory will be sorted before any subdirectories, avoiding a
    filelist like the following:
    
        A/1.jpg
        A/SUBDIR/2.jpg
        A/SUBDIR/3.jpg
        A/4.jpg
    
    With `--sort dirname` that filelist becomes:
    
        A/1.jpg
        A/4.jpg
        A/SUBDIR/2.jpg
        A/SUBDIR/3.jpg