From 1c2569327f68d536cfa76efe35ff58b13e33c8b6 Mon Sep 17 00:00:00 2001 From: Dylan Araps Date: Sat, 14 Jan 2017 20:59:12 +1100 Subject: [PATCH] Image: Rewrite image backends --- 2017-01-14-160401_515x360_scrot.png | Bin 0 -> 13970 bytes neofetch | 161 ++++++++++++++-------------- 2 files changed, 78 insertions(+), 83 deletions(-) create mode 100644 2017-01-14-160401_515x360_scrot.png diff --git a/2017-01-14-160401_515x360_scrot.png b/2017-01-14-160401_515x360_scrot.png new file mode 100644 index 0000000000000000000000000000000000000000..f205f3173ce280b222b912c7cbf95e3030810e74 GIT binary patch literal 13970 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 literal 0 HcmV?d00001 diff --git a/neofetch b/neofetch index 0ff17521..f384fe86 100755 --- a/neofetch +++ b/neofetch @@ -1941,54 +1941,45 @@ get_cols() { # IMAGES -get_image_backend() { - # This function determines which image backend to use - # by checking for programs and etc. +image_backend() { + if [[ ! "${image_backend}" =~ (off|ascii) ]]; then + # Fallback to ascii mode if imagemagick isn't installed. + type -p convert >/dev/null 2>&1 || image_backend="ascii" - # If the image source isn't "ascii" or "off". - if [[ ! "${image_source}" =~ ^(off|ascii)$ ]]; then # If X isn't running force ascii mode here. [[ -z "$DISPLAY" ]] && image_source="ascii" - - # Fallback to ascii mode if imagemagick isn't installed. - type -p convert >/dev/null 2>&1 || image_source="ascii" fi - # Get the image program. - get_image_program + image_backend="off" - # If image source is ascii fallback to ascii. - if [[ "$image_source" == "ascii" ]]; then - to_ascii "Image: \$image_source set to 'ascii', falling back to ascii mode." - err "Image: Change \$image_source to another value to use image mode." - return - fi + case "${image_backend:-off}" in + "ascii") get_ascii ;; + "off") image_backend="off" ;; - case "${image_backend:=image}" in - "image") - case "$image_source" in - "wall"*) get_wallpaper 2>/dev/null ;; - "off") image_backend="off"; return ;; - *) - if [[ -d "$image_source" ]]; then - files=("${image_source%/}"/*.{png,jpg,jpeg}) - printf -v image "%s" "${files[RANDOM % (${#files[@]} - 1)]}" - else - image="$image_source" - fi - ;; - esac + "iterm2" | "w3m-img" | "tycat") + get_image_source - # Fallback to ascii mode if image isn't a file. if [[ ! -f "$image" ]]; then - to_ascii "Image: '$image' doesn't exist, falling back to ascii mode." + to_ascii "Image: \'$image_source\' doesn't exist, falling back to ascii mode." + return + fi + + get_image_program + + if type -p "$image_program" >/dev/null 2>&1; then + err "Image: Drawing images using $image_program" + else + to_ascii "Image: Failed to find image program. ($image_program)" + err "Image: Falling back to ascii mode." return fi get_term_size - # Fallback to ascii mode if terminal size wasn't found. - if [[ -z "$term_width" ]] || ((term_width == 0)); then + if [[ "$term_width" ]] && ((term_width >= 1)); then + clear + zws="​ " + else to_ascii "Image: Failed to find terminal window size" err "Image: Check the 'Images in the terminal' wiki page for more info" return @@ -1996,16 +1987,18 @@ get_image_backend() { get_image_size make_thumbnail - - # If the backend is still set to "image" after - # make_thumbnail(), then display the image. - [[ "$image_backend" == "image" ]] && display_image + display_image ;; - "ascii") get_ascii 2>/dev/null ;; + *) + image_backend="off" + err "Image: Unknown image backend specified. ($image_backend)" + err "Image: Valid backends are: 'iterm2', 'w3m-img'. 'tycat', 'ascii', 'off'" + err "Image: Falling back to off mode." + ;; esac - # Set cursor position next to ascii art. + # Set cursor position next image/ascii. [[ "$image_backend" != "off" ]] && printf "%b" "\033[${lines:-0}A\033[9999999D" } @@ -2066,39 +2059,22 @@ get_ascii() { export LC_ALL=C } -get_image_program() { - if [[ -n "$ITERM_PROFILE" ]]; then - image_program="iterm2" +get_image_source() { + case "$image_source" in + "wall"*) + get_wallpaper 2>/dev/null + ;; - elif [[ "$(tycat 2>/dev/null)" ]]; then - image_program="tycat" + *) + if [[ -d "$image_source" ]]; then + files=("${image_source%/}"/*.{png,jpg,jpeg,jpe,gif}) + printf -v image "%s" "${files[RANDOM % (${#files[@]} - 1)]}" - else - image_program="w3m" - get_w3m_img_path - fi -} - -get_w3m_img_path() { - if [[ -x "$w3m_img_path" ]]; then - return - - elif [[ -x "/usr/lib/w3m/w3mimgdisplay" ]]; then - w3m_img_path="/usr/lib/w3m/w3mimgdisplay" - - elif [[ -x "/usr/libexec/w3m/w3mimgdisplay" ]]; then - w3m_img_path="/usr/libexec/w3m/w3mimgdisplay" - - elif [[ -x "/usr/lib64/w3m/w3mimgdisplay" ]]; then - w3m_img_path="/usr/lib64/w3m/w3mimgdisplay" - - elif [[ -x "/usr/libexec64/w3m/w3mimgdisplay" ]]; then - w3m_img_path="/usr/libexec64/w3m/w3mimgdisplay" - - else - image_backend="ascii" - err "Image: w3m-img wasn't found on your system, falling back to ascii mode." - fi + else + image="$image_source" + fi + ;; + esac } get_wallpaper() { @@ -2162,6 +2138,33 @@ get_wallpaper() { [[ "${image/*\./}" == "xml" ]] && image="" } +get_image_program() { + if [[ -n "$ITERM_PROFILE" ]]; then + image_program="iterm2" + + elif [[ "$(tycat 2>/dev/null)" ]]; then + image_program="tycat" + + else + # Find w3m-img path. + if [[ -x "$w3m_img_path" ]]; then + image_program="$w3m_img_path" + + elif [[ -x "/usr/lib/w3m/w3mimgdisplay" ]]; then + image_program="/usr/lib/w3m/w3mimgdisplay" + + elif [[ -x "/usr/libexec/w3m/w3mimgdisplay" ]]; then + image_program="/usr/libexec/w3m/w3mimgdisplay" + + elif [[ -x "/usr/lib64/w3m/w3mimgdisplay" ]]; then + image_program="/usr/lib64/w3m/w3mimgdisplay" + + elif [[ -x "/usr/libexec64/w3m/w3mimgdisplay" ]]; then + image_program="/usr/libexec64/w3m/w3mimgdisplay" + fi + fi +} + get_term_size() { # This functions gets the current window size in # pixels. @@ -2230,12 +2233,6 @@ get_term_size() { term_width=0 fi fi - - # If the terminal size was found correctly. - if [[ "$term_width" ]] && ((term_width >= 1)); then - clear - zws="​ " - fi } get_image_size() { @@ -2358,7 +2355,7 @@ make_thumbnail() { display_image() { case "$image_program" in - "w3m") + *"w3m"*) # Add a tiny delay to fix issues with images not # appearing in specific terminal emulators. sleep 0.05 @@ -2383,9 +2380,6 @@ to_ascii() { # Print the ascii art. get_ascii 2>/dev/null - # Move cursor next to ascii art. - printf "%b" "\033[${lines:-0}A\033[9999999D" - # Log the error. err "$1" } @@ -3404,7 +3398,7 @@ get_term_padding() { dynamic_prompt() { case "$image_backend" in - "image") + "iterm2" | "w3m-img" | "tycat") get_term_padding 2>/dev/null # Calculate image height in terminal cells. @@ -4001,7 +3995,8 @@ main() { printf "\033[?25l\033[?7l" fi - get_image_backend + # get_image_backend + image_backend old_functions get_cache_dir print_info 2>/dev/null