Added --size and $image_size to set the size in pixels. Text is still dynamically padded according to image size.
This commit is contained in:
parent
a5e76d80fc
commit
4bb699a7f0
4 changed files with 37 additions and 45 deletions
5
1.1.md
5
1.1.md
|
@ -4,7 +4,7 @@
|
||||||
<sup>New screenfetch mode</sup>
|
<sup>New screenfetch mode</sup>
|
||||||
|
|
||||||
- If `w3m` or `imagemagick` aren't installed we gracefully fallback to ascii mode.
|
- If `w3m` or `imagemagick` aren't installed we gracefully fallback to ascii mode.
|
||||||
- Automatically find the `w3mimgdisplay` path and fallback to ascii mode if not found.
|
- Automatically find the `w3m-img` path and fallback to ascii mode if not found. \[1\]
|
||||||
- Fix padding escape codes on BSD systems.
|
- Fix padding escape codes on BSD systems.
|
||||||
- Swap escape codes from `\e` to `\033` for consistency.
|
- Swap escape codes from `\e` to `\033` for consistency.
|
||||||
- We only move the cursor to the bottom of the terminal in w3m/iterm2 rendering modes.
|
- We only move the cursor to the bottom of the terminal in w3m/iterm2 rendering modes.
|
||||||
|
@ -16,6 +16,7 @@
|
||||||
- Removed `--colors` as it was apparently broken from day 1.
|
- Removed `--colors` as it was apparently broken from day 1.
|
||||||
- Usage has been reformatted so that every flag has a value.
|
- Usage has been reformatted so that every flag has a value.
|
||||||
|
|
||||||
|
\[1\] Setting `$w3m_img_path` will make the script look there first.
|
||||||
|
|
||||||
### Image
|
### Image
|
||||||
|
|
||||||
|
@ -24,8 +25,10 @@
|
||||||
- Added `--ascii_distro` to choose which distro's ascii logo to display.
|
- Added `--ascii_distro` to choose which distro's ascii logo to display.
|
||||||
- Added `--ascii_colors` and `$ascii_colors` which allow you to change the colors of the ascii art<br \>
|
- Added `--ascii_colors` and `$ascii_colors` which allow you to change the colors of the ascii art<br \>
|
||||||
and distro logos. \[2\]
|
and distro logos. \[2\]
|
||||||
|
- Added `--size` and `$image_size` to set the image size in pixels.
|
||||||
- Rename `--shuffledir` and `$shuffledir` to `shuffle_dir`.
|
- Rename `--shuffledir` and `$shuffledir` to `shuffle_dir`.
|
||||||
- Rename `--imgtempdir` and `$imgtempdir` to `thumbnail_dir`
|
- Rename `--imgtempdir` and `$imgtempdir` to `thumbnail_dir`
|
||||||
|
- Removed `--split_size` and `$split_size` as they were weird and confusing to use.
|
||||||
- Default thumbnail directory is now `$HOME/.cache/thumbnails/fetch`. Thanks @tudurom
|
- Default thumbnail directory is now `$HOME/.cache/thumbnails/fetch`. Thanks @tudurom
|
||||||
- If `--image` and `--ascii` are left empty we fallback to ascii distro mode.
|
- If `--image` and `--ascii` are left empty we fallback to ascii distro mode.
|
||||||
|
|
||||||
|
|
|
@ -158,6 +158,10 @@ specify a custom config location using `--config path/to/config`.
|
||||||
If you don't know your font width in pixels keep trying values until the image is half the<br \>
|
If you don't know your font width in pixels keep trying values until the image is half the<br \>
|
||||||
terminal width.
|
terminal width.
|
||||||
|
|
||||||
|
Once `font_width` is set the image will by default take up half the terminal width. You can<br \>
|
||||||
|
use the launch flag `--size px` or change the config option `$image_size` to set it to a custom<br \>
|
||||||
|
size in pixels.
|
||||||
|
|
||||||
You can also use the launch flag `--font_width` to set it on the fly.
|
You can also use the launch flag `--font_width` to set it on the fly.
|
||||||
|
|
||||||
|
|
||||||
|
@ -263,6 +267,7 @@ alias fetch2="fetch \
|
||||||
--image type Image source. Where and what image we display.
|
--image type Image source. Where and what image we display.
|
||||||
Possible values: wall, shuffle, ascii,
|
Possible values: wall, shuffle, ascii,
|
||||||
/path/to/img, off
|
/path/to/img, off
|
||||||
|
--size px Size in pixels to make the image.
|
||||||
--image_backend w3m/iterm2 Which program to use to draw images.
|
--image_backend w3m/iterm2 Which program to use to draw images.
|
||||||
--shuffle_dir path/to/dir Which directory to shuffle for an image.
|
--shuffle_dir path/to/dir Which directory to shuffle for an image.
|
||||||
--font_width px Used to automatically size the image
|
--font_width px Used to automatically size the image
|
||||||
|
|
|
@ -228,15 +228,6 @@ image_backend="w3m"
|
||||||
# Some systems have this in another location
|
# Some systems have this in another location
|
||||||
w3m_img_path="/usr/lib/w3m/w3mimgdisplay"
|
w3m_img_path="/usr/lib/w3m/w3mimgdisplay"
|
||||||
|
|
||||||
# Split Size
|
|
||||||
# Sizing for the img and text splits
|
|
||||||
# The larger the value the less space fetch will take up.
|
|
||||||
# The default value of 2 splits the image and text at
|
|
||||||
# half terminal width each.
|
|
||||||
# A value of 3 splits them at a third width each and etc.
|
|
||||||
# --split_size num
|
|
||||||
split_size=2
|
|
||||||
|
|
||||||
# Image position
|
# Image position
|
||||||
# Only works with the w3m backend
|
# Only works with the w3m backend
|
||||||
# --image_position left/right
|
# --image_position left/right
|
||||||
|
@ -259,6 +250,11 @@ crop_offset="center"
|
||||||
# Used when calculating dynamic image size
|
# Used when calculating dynamic image size
|
||||||
font_width=5
|
font_width=5
|
||||||
|
|
||||||
|
# Image size
|
||||||
|
# The image is half the terminal width by default.
|
||||||
|
# --size half, px
|
||||||
|
image_size="half"
|
||||||
|
|
||||||
# Right gap between image and text
|
# Right gap between image and text
|
||||||
# --gap num
|
# --gap num
|
||||||
gap=4
|
gap=4
|
||||||
|
|
58
fetch
58
fetch
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
# Speed up script by not using unicode
|
# Speed up script by not using unicode
|
||||||
export LC_ALL=C
|
export LC_ALL=C
|
||||||
export LANG=c
|
export LANG=C
|
||||||
export LANGUAGE=C
|
export LANGUAGE=C
|
||||||
|
|
||||||
|
|
||||||
|
@ -248,15 +248,6 @@ image_backend="w3m"
|
||||||
# Some systems have this in another location
|
# Some systems have this in another location
|
||||||
w3m_img_path="/usr/lib/w3m/w3mimgdisplay"
|
w3m_img_path="/usr/lib/w3m/w3mimgdisplay"
|
||||||
|
|
||||||
# Split Size
|
|
||||||
# Sizing for the img and text splits
|
|
||||||
# The larger the value the less space fetch will take up.
|
|
||||||
# The default value of 2 splits the image and text at
|
|
||||||
# half terminal width each.
|
|
||||||
# A value of 3 splits them at a third width each and etc.
|
|
||||||
# --split_size num
|
|
||||||
split_size=2
|
|
||||||
|
|
||||||
# Image position
|
# Image position
|
||||||
# Only works with the w3m backend
|
# Only works with the w3m backend
|
||||||
# --image_position left/right
|
# --image_position left/right
|
||||||
|
@ -277,8 +268,14 @@ crop_offset="center"
|
||||||
|
|
||||||
# Font width
|
# Font width
|
||||||
# Used when calculating dynamic image size
|
# Used when calculating dynamic image size
|
||||||
|
# --font_width num
|
||||||
font_width=5
|
font_width=5
|
||||||
|
|
||||||
|
# Image size
|
||||||
|
# The image is half the terminal width by default.
|
||||||
|
# --size half, px
|
||||||
|
image_size="half"
|
||||||
|
|
||||||
# Right gap between image and text
|
# Right gap between image and text
|
||||||
# --gap num
|
# --gap num
|
||||||
gap=4
|
gap=4
|
||||||
|
@ -1415,15 +1412,6 @@ getwallpaper () {
|
||||||
|
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
# Shuffle {{{
|
|
||||||
|
|
||||||
getshuffle () {
|
|
||||||
img=$(find "$shuffle_dir" -type f \( -name '*.jpg' -o -name '*.png' \) -print0 |
|
|
||||||
shuf -n1 -z)
|
|
||||||
}
|
|
||||||
|
|
||||||
# }}}
|
|
||||||
|
|
||||||
# Ascii {{{
|
# Ascii {{{
|
||||||
|
|
||||||
getascii () {
|
getascii () {
|
||||||
|
@ -1619,7 +1607,8 @@ getimage () {
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"shuffle")
|
"shuffle")
|
||||||
getshuffle
|
img="$(find "$shuffle_dir" -type f \( -name '*.jpg' -o -name '*.png' \) -print0 |
|
||||||
|
shuf -n1 -z)"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"ascii")
|
"ascii")
|
||||||
|
@ -1632,7 +1621,7 @@ getimage () {
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# If $img is empty, fallback to ascii mode.
|
# If $img isn't a file, fallback to ascii mode.
|
||||||
if [ ! -f "$img" ]; then
|
if [ ! -f "$img" ]; then
|
||||||
# Fallback to ascii mode
|
# Fallback to ascii mode
|
||||||
image="ascii"
|
image="ascii"
|
||||||
|
@ -1646,18 +1635,18 @@ getimage () {
|
||||||
lines=$(tput lines)
|
lines=$(tput lines)
|
||||||
|
|
||||||
# Image size is half of the terminal
|
# Image size is half of the terminal
|
||||||
imgsize=$((columns * font_width / split_size))
|
[ "$image_size" == "half" ] && image_size=$((columns * font_width / 2))
|
||||||
|
|
||||||
# Where to draw the image
|
# Where to draw the image
|
||||||
case "$image_position" in
|
case "$image_position" in
|
||||||
"left")
|
"left")
|
||||||
# Padding is half the terminal width + gap
|
# Padding is half the terminal width + gap
|
||||||
padding="\033[$((columns / split_size + gap))C"
|
padding="\033[$((image_size / font_width + gap))C"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"right")
|
"right")
|
||||||
padding="\033[0C"
|
padding="\033[0C"
|
||||||
xoffset=$((columns * font_width / split_size - gap))
|
xoffset=$((columns * font_width / 2 - gap))
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -1668,13 +1657,13 @@ getimage () {
|
||||||
case "${img##*/}" in
|
case "${img##*/}" in
|
||||||
*"."*)
|
*"."*)
|
||||||
# Get name of image and prefix it with it's crop mode and offset
|
# Get name of image and prefix it with it's crop mode and offset
|
||||||
imgname="$crop_mode-$crop_offset-$imgsize-${img##*/}"
|
imgname="$crop_mode-$crop_offset-$image_size-${img##*/}"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
# Add a file extension if the image doesn't have one. This
|
# Add a file extension if the image doesn't have one. This
|
||||||
# fixes w3m not being able to display them.
|
# fixes w3m not being able to display them.
|
||||||
imgname="$crop_mode-$crop_offset-$imgsize-${img##*/}.jpg"
|
imgname="$crop_mode-$crop_offset-$image_size-${img##*/}.jpg"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -1705,7 +1694,7 @@ getimage () {
|
||||||
-gravity south \
|
-gravity south \
|
||||||
-background "$c" \
|
-background "$c" \
|
||||||
-extent "$size"x"$size" \
|
-extent "$size"x"$size" \
|
||||||
-scale "$imgsize"x"$imgsize" \
|
-scale "$image_size"x"$image_size" \
|
||||||
"$thumbnail_dir/$imgname"
|
"$thumbnail_dir/$imgname"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
@ -1713,8 +1702,8 @@ getimage () {
|
||||||
convert \
|
convert \
|
||||||
"$img" \
|
"$img" \
|
||||||
-trim +repage \
|
-trim +repage \
|
||||||
-scale "$imgsize"x"$imgsize"^ \
|
-scale "$image_size"x"$image_size"^ \
|
||||||
-extent "$imgsize"x"$imgsize" \
|
-extent "$image_size"x"$image_size" \
|
||||||
"$thumbnail_dir/$imgname"
|
"$thumbnail_dir/$imgname"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
@ -1724,7 +1713,7 @@ getimage () {
|
||||||
-gravity $crop_offset \
|
-gravity $crop_offset \
|
||||||
-crop "$size"x"$size"+0+0 \
|
-crop "$size"x"$size"+0+0 \
|
||||||
-quality 95 \
|
-quality 95 \
|
||||||
-scale "$imgsize"x"$imgsize" \
|
-scale "$image_size"x"$image_size" \
|
||||||
"$thumbnail_dir/$imgname"
|
"$thumbnail_dir/$imgname"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -2022,12 +2011,11 @@ usage () { cat << EOF
|
||||||
--image type Image source. Where and what image we display.
|
--image type Image source. Where and what image we display.
|
||||||
Possible values: wall, shuffle, ascii,
|
Possible values: wall, shuffle, ascii,
|
||||||
/path/to/img, off
|
/path/to/img, off
|
||||||
|
--size px Size in pixels to make the image.
|
||||||
--image_backend w3m/iterm2 Which program to use to draw images.
|
--image_backend w3m/iterm2 Which program to use to draw images.
|
||||||
--shuffle_dir path/to/dir Which directory to shuffle for an image.
|
--shuffle_dir path/to/dir Which directory to shuffle for an image.
|
||||||
--font_width px Used to automatically size the image
|
--font_width px Used to automatically size the image
|
||||||
--image_position left/right Where to display the image: (Left/Right)
|
--image_position left/right Where to display the image: (Left/Right)
|
||||||
--split_size num Width of img/text splits, A value of 2 makes each
|
|
||||||
split half the terminal width and etc.
|
|
||||||
--crop_mode mode Which crop mode to use
|
--crop_mode mode Which crop mode to use
|
||||||
Takes the values: normal, fit, fill
|
Takes the values: normal, fit, fill
|
||||||
--crop_offset value Change the crop offset for normal mode.
|
--crop_offset value Change the crop offset for normal mode.
|
||||||
|
@ -2125,11 +2113,11 @@ while [ "$1" ]; do
|
||||||
case "$2" in "--"* | "") image="ascii" ;; esac
|
case "$2" in "--"* | "") image="ascii" ;; esac
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
--size) image_size="$2" ;;
|
||||||
--image_backend) image_backend="$2" ;;
|
--image_backend) image_backend="$2" ;;
|
||||||
--shuffle_dir) shuffle_dir="$2" ;;
|
--shuffle_dir) shuffle_dir="$2" ;;
|
||||||
--font_width) font_width="$2" ;;
|
--font_width) font_width="$2" ;;
|
||||||
--image_position) image_position="$2" ;;
|
--image_position) image_position="$2" ;;
|
||||||
--split_size) split_size="$2" ;;
|
|
||||||
--crop_mode) crop_mode="$2" ;;
|
--crop_mode) crop_mode="$2" ;;
|
||||||
--crop_offset) crop_offset="$2" ;;
|
--crop_offset) crop_offset="$2" ;;
|
||||||
--xoffset) xoffset="$2" ;;
|
--xoffset) xoffset="$2" ;;
|
||||||
|
@ -2207,12 +2195,12 @@ fi
|
||||||
if [ "$image" != "off" ] && [ "$image" != "ascii" ]; then
|
if [ "$image" != "off" ] && [ "$image" != "ascii" ]; then
|
||||||
case "$image_backend" in
|
case "$image_backend" in
|
||||||
"w3m")
|
"w3m")
|
||||||
printf "%b%s\n" "0;1;$xoffset;$yoffset;$imgsize;$imgsize;;;;;$img\n4;\n3;" |\
|
printf "%b%s\n" "0;1;$xoffset;$yoffset;$image_size;$image_size;;;;;$img\n4;\n3;" |\
|
||||||
$w3m_img_path 2>/dev/null || padding="\033[0C"
|
$w3m_img_path 2>/dev/null || padding="\033[0C"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"iterm2")
|
"iterm2")
|
||||||
printf "%b%s\a\n" "\033]1337;File=width=${imgsize}px;height=${imgsize}px;inline=1:$(base64 < "$img")"
|
printf "%b%s\a\n" "\033]1337;File=width=${image_size}px;height=${image_size}px;inline=1:$(base64 < "$img")"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in a new issue