Merge pull request #306 from dylanaraps/sourceconfig
Remove default config from inside script and instead source it from the user config file.
This commit is contained in:
commit
9ec7bbb421
|
@ -11,4 +11,4 @@ before_install:
|
|||
|
||||
script:
|
||||
- sudo make install
|
||||
- time neofetch --test --ascii --config off --ascii_distro travis
|
||||
- time neofetch --ascii --config off --ascii_distro travis -v --test
|
||||
|
|
6
1.8.md
6
1.8.md
|
@ -32,6 +32,11 @@ bottom of the window. See [#279](https://github.com/dylanaraps/neofetch/pull/279
|
|||
- Removed `line_wrap` as having it set to `on` broke the output.
|
||||
- Minor text fixes.
|
||||
- Fix issue with incorrect text color when `barinfo` is set.
|
||||
- Fixed various Travis.ci bugs.
|
||||
- `-v` now shows where the config files were sourced from.
|
||||
- Removed in-script config in favor of sourcing the default user config.
|
||||
- Moved commands near the bottom of the script to a new function called `main`.
|
||||
- Cleanup
|
||||
|
||||
|
||||
### OS
|
||||
|
@ -125,4 +130,5 @@ distro ascii files. See this wiki page that explains the syntax. [Link](https://
|
|||
- Better `Ubuntu-GNOME` ascii art. **[@hashhar](https://github.com/hashhar)**
|
||||
- Fix a color issue with Debian's ascii logo.
|
||||
- Added `--ascii_distro mac` as a shorter way of using the OS X ascii.
|
||||
- Added missing `$ascii_distro` config option.
|
||||
|
||||
|
|
|
@ -345,6 +345,11 @@ xoffset=0
|
|||
# --ascii 'distro', path/to/ascii
|
||||
ascii="distro"
|
||||
|
||||
# Ascii distro
|
||||
# Which distro's ascii art to display.
|
||||
# --ascii_distro 'auto', 'distro_name'
|
||||
ascii_distro="auto"
|
||||
|
||||
# Ascii colors
|
||||
# When this is set to distro it will use your
|
||||
# ditro's colors to color the ascii.
|
||||
|
|
602
neofetch
602
neofetch
|
@ -16,420 +16,13 @@ XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-${HOME}/.config}"
|
|||
export LC_ALL=C
|
||||
export LANG=C
|
||||
|
||||
|
||||
# Config Options {{{
|
||||
|
||||
|
||||
# Info Options {{{
|
||||
|
||||
|
||||
# Info
|
||||
# See this wiki page for more info:
|
||||
# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
|
||||
printinfo () {
|
||||
info title
|
||||
info underline
|
||||
|
||||
info "OS" distro
|
||||
info "Kernel" kernel
|
||||
info "Uptime" uptime
|
||||
info "Packages" packages
|
||||
info "Shell" shell
|
||||
info "Resolution" resolution
|
||||
info "DE" de
|
||||
info "WM" wm
|
||||
info "WM Theme" wmtheme
|
||||
info "Theme" theme
|
||||
info "Icons" icons
|
||||
info "Terminal" term
|
||||
info "Terminal Font" termfont
|
||||
info "CPU" cpu
|
||||
info "GPU" gpu
|
||||
info "Memory" memory
|
||||
|
||||
# info "CPU Usage" cpu_usage
|
||||
# info "Disk" disk
|
||||
# info "Battery" battery
|
||||
# info "Font" font
|
||||
# info "Song" song
|
||||
# info "Local IP" localip
|
||||
# info "Public IP" publicip
|
||||
# info "Users" users
|
||||
# info "Birthday" birthday
|
||||
|
||||
info linebreak
|
||||
info cols
|
||||
info linebreak
|
||||
}
|
||||
|
||||
|
||||
# Kernel
|
||||
|
||||
# Show more kernel info
|
||||
# --kernel_shorthand on/off
|
||||
kernel_shorthand="on"
|
||||
|
||||
|
||||
# Distro
|
||||
|
||||
# Mac OS X hide/show build version
|
||||
# --osx_buildversion on/off
|
||||
osx_buildversion="on"
|
||||
|
||||
# Mac OS X hide/show codename
|
||||
# --osx_codename on/off
|
||||
osx_codename="on"
|
||||
|
||||
# Show 'x86_64' and 'x86' in 'Distro:' output.
|
||||
# --os_arch on/off
|
||||
os_arch="on"
|
||||
|
||||
|
||||
# Uptime
|
||||
|
||||
# Shorten the output of the uptime function
|
||||
# --uptime_shorthand tiny, on, off
|
||||
uptime_shorthand="off"
|
||||
|
||||
|
||||
# Shell
|
||||
|
||||
# Show the path to $SHELL
|
||||
# --shell_path on/off
|
||||
shell_path="on"
|
||||
|
||||
# Show $SHELL's version
|
||||
# --shell_version on/off
|
||||
shell_version="off"
|
||||
|
||||
|
||||
# CPU
|
||||
|
||||
# CPU speed type
|
||||
# Only works on Linux with cpufreq.
|
||||
# --speed_type current, min, max, bios,
|
||||
# scaling_current, scaling_min, scaling_max
|
||||
speed_type="max"
|
||||
|
||||
# CPU Shorthand
|
||||
# Set shorthand setting
|
||||
# --cpu_shorthand name, speed, tiny, on, off
|
||||
cpu_shorthand="off"
|
||||
|
||||
# CPU Cores
|
||||
# Display CPU cores in output
|
||||
# --cpu_cores on/off
|
||||
cpu_cores="on"
|
||||
|
||||
# GPU
|
||||
|
||||
# Shorten output of the getgpu funcion
|
||||
# --gpu_shorthand on/off/tiny
|
||||
gpu_shorthand="on"
|
||||
|
||||
# Resolution
|
||||
|
||||
# Display refresh rate next to each monitor
|
||||
# Unsupported on Windows
|
||||
# --refresh_rate on/off
|
||||
refresh_rate="off"
|
||||
|
||||
# Gtk Theme / Icons
|
||||
|
||||
# Shorten output (Hide [GTK2] etc)
|
||||
# --gtk_shorthand on/off
|
||||
gtk_shorthand="off"
|
||||
|
||||
|
||||
# Enable/Disable gtk2 theme/icons output
|
||||
# --gtk2 on/off
|
||||
gtk2="on"
|
||||
|
||||
# Enable/Disable gtk3 theme/icons output
|
||||
# --gtk3 on/off
|
||||
gtk3="on"
|
||||
|
||||
|
||||
# Battery
|
||||
|
||||
# Which battery to display.
|
||||
# By default we display all batteries.
|
||||
# NOTE: Only works on Linux.
|
||||
# --battery_num all, 0, 1, 2, etc
|
||||
battery_num="all"
|
||||
|
||||
# Whether or not to print each battery on the same line.
|
||||
# By default each battery gets its own line and title.
|
||||
# NOTE: Only works on Linux.
|
||||
# --battery_shorthand on/off
|
||||
battery_shorthand="off"
|
||||
|
||||
|
||||
# IP Address
|
||||
|
||||
# Website to ping for the public IP
|
||||
# --ip_host url
|
||||
public_ip_host="http://ident.me"
|
||||
|
||||
|
||||
# Song
|
||||
|
||||
# Print the Artist and Title on seperate lines
|
||||
# --song_shorthand on/off
|
||||
song_shorthand="off"
|
||||
|
||||
|
||||
# Birthday
|
||||
|
||||
# Whether to show a long pretty output
|
||||
# or a shortened one
|
||||
# NOTE: Long pretty output doesn't work on OpenBSD or NetBSD.
|
||||
# --birthday_shorthand on/off
|
||||
birthday_shorthand="off"
|
||||
|
||||
# Whether to show the time in the output
|
||||
# --birthday_time on/off
|
||||
birthday_time="on"
|
||||
|
||||
# Date format to use when printing birthday
|
||||
# --birthday_format "format"
|
||||
birthday_format="%a %d %b %Y %l:%M %p"
|
||||
|
||||
|
||||
# }}}
|
||||
|
||||
# Text Colors {{{
|
||||
|
||||
|
||||
# Text Colors
|
||||
# Each number represents a different part of
|
||||
# the text in this order:
|
||||
# title, @, underline, subtitle, colon, info
|
||||
# colors=(4 6 1 8 8 6)
|
||||
# You can also specify:
|
||||
# fg (foreground color)
|
||||
colors=(distro)
|
||||
|
||||
|
||||
# }}}
|
||||
|
||||
# Text Options {{{
|
||||
|
||||
|
||||
# Toggle bold text
|
||||
# --bold on/off
|
||||
bold="on"
|
||||
|
||||
# Enable/Disable Underline
|
||||
# --underline on/off
|
||||
underline_enabled="on"
|
||||
|
||||
# Underline character
|
||||
# --underline_char char
|
||||
underline_char="-"
|
||||
|
||||
|
||||
# }}}
|
||||
|
||||
# Color Blocks {{{
|
||||
|
||||
|
||||
# Color block range
|
||||
# --block_range start end
|
||||
start=0
|
||||
end=7
|
||||
|
||||
# Toggle color blocks
|
||||
# --color_blocks on/off
|
||||
color_blocks="on"
|
||||
|
||||
# Color block width in spaces
|
||||
# --block_width num
|
||||
block_width=2
|
||||
|
||||
# Color block height in lines
|
||||
# --block_height num
|
||||
block_height=1
|
||||
|
||||
|
||||
# }}}
|
||||
|
||||
# Progress Bars {{{
|
||||
|
||||
|
||||
# Progress bar character
|
||||
# --progress_char elapsed_char total_char
|
||||
progress_char_elapsed="="
|
||||
progress_char_total="-"
|
||||
|
||||
# Progress vorder
|
||||
# --progress_border on/off
|
||||
progress_border="on"
|
||||
|
||||
# Progress bar length in spaces
|
||||
# Number of chars long to make the progress bars.
|
||||
# --progress_length num
|
||||
progress_length="15"
|
||||
|
||||
# Progress bar colors
|
||||
# When set to distro, uses your distro's logo colors
|
||||
# Takes: num, "distro"
|
||||
# --progress_colors col col
|
||||
progress_color_elapsed="distro"
|
||||
progress_color_total="distro"
|
||||
|
||||
# Customize how the info is displayed.
|
||||
# bar: Only the progress bar is displayed.
|
||||
# infobar: The bar is displayed after the info.
|
||||
# barinfo: The bar is displayed before the info.
|
||||
# off: Only the info is displayed.
|
||||
#
|
||||
# --cpu_display bar/infobar/barinfo/off
|
||||
# --memory_display bar/infobar/barinfo/off
|
||||
# --battery_display bar/infobar/barinfo/off
|
||||
# --disk_display bar/infobar/barinfo/off
|
||||
cpu_display="off"
|
||||
memory_display="off"
|
||||
battery_display="off"
|
||||
disk_display="off"
|
||||
|
||||
|
||||
# }}}
|
||||
|
||||
# Image Options {{{
|
||||
|
||||
|
||||
# Image Source
|
||||
# --image wall, ascii, /path/to/img, /path/to/dir/, off
|
||||
image="wall"
|
||||
|
||||
# Thumbnail directory
|
||||
thumbnail_dir="$HOME/.cache/thumbnails/neofetch"
|
||||
|
||||
# W3m-img path
|
||||
# This is automatically detected, this variable
|
||||
# should only be set to w3m-img's location if the
|
||||
# builtin detection doesn't work.
|
||||
w3m_img_path="/usr/lib/w3m/w3mimgdisplay"
|
||||
|
||||
# Crop mode
|
||||
# --crop_mode normal/fit/fill
|
||||
crop_mode="normal"
|
||||
|
||||
# Crop offset
|
||||
# Only affects normal mode.
|
||||
# --crop_offset northwest/north/northeast/west/center
|
||||
# east/southwest/south/southeast
|
||||
crop_offset="center"
|
||||
|
||||
# Image size
|
||||
# The image is half the terminal width by default.
|
||||
# --size auto, 00px, 00%, none
|
||||
image_size="auto"
|
||||
|
||||
# Right gap between image and text
|
||||
# --gap num
|
||||
gap=2
|
||||
|
||||
# Image offsets
|
||||
# --xoffset px
|
||||
# --yoffset px
|
||||
yoffset=0
|
||||
xoffset=0
|
||||
|
||||
|
||||
# }}}
|
||||
|
||||
# Ascii Options {{{
|
||||
|
||||
|
||||
# Default ascii image to use
|
||||
# When this is set to distro it will use your
|
||||
# distro's logo as the ascii.
|
||||
# --ascii 'distro', path/to/ascii
|
||||
ascii="distro"
|
||||
|
||||
# Ascii colors
|
||||
# When this is set to distro it will use your
|
||||
# ditro's colors to color the ascii.
|
||||
# NOTE: You can also set this to a range of colors
|
||||
# which will allow you to custom color distro logos
|
||||
# --ascii_colors distro
|
||||
# --ascii_colors 2 4 5 6
|
||||
ascii_colors=(distro)
|
||||
|
||||
# Logo size
|
||||
# Arch, Crux and Gentoo have a smaller logo
|
||||
# variant. Changing the value below to 'small'
|
||||
# will make neofetch use the small logo.
|
||||
# --ascii_logo_size small, normal
|
||||
ascii_logo_size="normal"
|
||||
|
||||
# Bold ascii logo
|
||||
# Whether or not to bold the ascii logo.
|
||||
# --ascii_bold on/off
|
||||
ascii_bold="off"
|
||||
|
||||
|
||||
# }}}
|
||||
|
||||
# Scrot Options {{{
|
||||
|
||||
|
||||
# Whether or not to always take a screenshot
|
||||
# You can manually take a screenshot with "--scrot" or "-s"
|
||||
scrot="off"
|
||||
|
||||
# Screenshot program to launch
|
||||
# --scrot_cmd
|
||||
scrot_cmd="scrot -c -d 3"
|
||||
|
||||
# Scrot dir
|
||||
# Where to save the screenshots
|
||||
# --scrot_dir /path/to/screenshot/folder
|
||||
scrot_dir="$HOME/Pictures/"
|
||||
|
||||
# Scrot filename
|
||||
# What to name the screenshots
|
||||
# --scrot_name str
|
||||
scrot_name="neofetch-$(date +%F-%T).png"
|
||||
|
||||
|
||||
# }}}
|
||||
|
||||
# Stdout options {{{
|
||||
|
||||
# Separator for stdout mode
|
||||
# --stdout_separator string
|
||||
stdout_separator=" "
|
||||
|
||||
# }}}
|
||||
|
||||
# Config Options {{{
|
||||
|
||||
|
||||
# Enable/Disable config file
|
||||
# --config off, none
|
||||
config="on"
|
||||
|
||||
# Path to custom config file location
|
||||
# --config path/to/config
|
||||
config_file="${XDG_CONFIG_HOME:-${HOME}/.config}/neofetch/config"
|
||||
|
||||
|
||||
# }}}
|
||||
|
||||
|
||||
# }}}
|
||||
# Set no case match.
|
||||
shopt -s nocasematch
|
||||
|
||||
|
||||
# Gather Info {{{
|
||||
|
||||
|
||||
# Set no case match.
|
||||
shopt -s nocasematch
|
||||
|
||||
|
||||
# Operating System {{{
|
||||
|
||||
case "$(uname)" in
|
||||
|
@ -2887,9 +2480,20 @@ trim() {
|
|||
# Other {{{
|
||||
|
||||
|
||||
# Error {{{
|
||||
|
||||
err () {
|
||||
err+="$(color 1)[!]$(color fg) $1
|
||||
"
|
||||
}
|
||||
|
||||
# }}}
|
||||
|
||||
# Get script directory {{{
|
||||
|
||||
getscriptdir () {
|
||||
[ "$script_dir" ] && return
|
||||
|
||||
# Use $0 to get the script's physical path.
|
||||
cd "${0%/*}" || exit
|
||||
script_dir="${0##*/}"
|
||||
|
@ -2907,13 +2511,36 @@ getscriptdir () {
|
|||
|
||||
# }}}
|
||||
|
||||
# Source default config {{{
|
||||
|
||||
getdefaultconfig () {
|
||||
if [ -f "/usr/share/neofetch/config" ]; then
|
||||
default_config="/usr/share/neofetch/config"
|
||||
|
||||
elif [ -f "/usr/local/share/neofetch/config" ]; then
|
||||
default_config="/usr/local/share/neofetch/config"
|
||||
|
||||
else
|
||||
getscriptdir
|
||||
default_config="${script_dir}/config/config"
|
||||
fi
|
||||
|
||||
if source "$default_config"; then
|
||||
err "Sourced default config ($default_config)"
|
||||
else
|
||||
err "Default config not found, continuing..."
|
||||
fi
|
||||
}
|
||||
|
||||
# }}}
|
||||
|
||||
# Source Config {{{
|
||||
|
||||
# Check for $config_file first
|
||||
getconfig () {
|
||||
getuserconfig () {
|
||||
# Check $config_file
|
||||
if [ -f "$config_file" ]; then
|
||||
source "$config_file"
|
||||
err "Sourced user config ($config_file)"
|
||||
return
|
||||
fi
|
||||
mkdir -p "$XDG_CONFIG_HOME/neofetch/"
|
||||
|
@ -2921,22 +2548,25 @@ getconfig () {
|
|||
# Check $XDG_CONFIG_HOME/neofetch and create the
|
||||
# dir/files if they don't exist.
|
||||
if [ -f "$XDG_CONFIG_HOME/neofetch/config" ]; then
|
||||
source "$XDG_CONFIG_HOME/neofetch/config"
|
||||
config_file="$XDG_CONFIG_HOME/neofetch/config"
|
||||
|
||||
elif [ -f "/usr/share/neofetch/config" ]; then
|
||||
cp "/usr/share/neofetch/config" "$XDG_CONFIG_HOME/neofetch"
|
||||
source "$XDG_CONFIG_HOME/neofetch/config"
|
||||
config_file="$XDG_CONFIG_HOME/neofetch/config"
|
||||
|
||||
elif [ -f "/usr/local/share/neofetch/config" ]; then
|
||||
cp "/usr/local/share/neofetch/config" "$XDG_CONFIG_HOME/neofetch"
|
||||
source "$XDG_CONFIG_HOME/neofetch/config"
|
||||
config_file="$XDG_CONFIG_HOME/neofetch/config"
|
||||
|
||||
else
|
||||
getscriptdir
|
||||
|
||||
cp "$script_dir/config/config" "$XDG_CONFIG_HOME/neofetch"
|
||||
source "$XDG_CONFIG_HOME/neofetch/config"
|
||||
config_file="$XDG_CONFIG_HOME/neofetch/config"
|
||||
fi
|
||||
|
||||
source "$config_file"
|
||||
err "Sourced user config ($config_file)"
|
||||
}
|
||||
|
||||
# Check the commandline flags early for '--config none/off'
|
||||
|
@ -2946,7 +2576,10 @@ case "$@" in
|
|||
config="off"
|
||||
;;
|
||||
esac
|
||||
[ "$config" == "on" ] && getconfig 2>/dev/null
|
||||
|
||||
getdefaultconfig 2>/dev/null
|
||||
[ "${config:-on}" == "on" ] && getuserconfig 2>/dev/null
|
||||
|
||||
|
||||
# }}}
|
||||
|
||||
|
@ -3003,14 +2636,6 @@ kdeconfigdir () {
|
|||
|
||||
# }}}
|
||||
|
||||
# Error {{{
|
||||
|
||||
err () {
|
||||
err+="$(color 1)[!]$(color fg) $1 \n"
|
||||
}
|
||||
|
||||
# }}}
|
||||
|
||||
|
||||
# }}}
|
||||
|
||||
|
@ -3299,17 +2924,17 @@ while [ "$1" ]; do
|
|||
--config)
|
||||
case "$2" in
|
||||
"none" | "off") config="off" ;;
|
||||
*) config_file="$2"; config="on"; getconfig 2>/dev/null ;;
|
||||
*) config_file="$2"; config="on"; getuserconfig 2>/dev/null ;;
|
||||
esac
|
||||
;;
|
||||
--test)
|
||||
info=(title underline distro kernel uptime packages shell resolution de wm wmtheme theme icons cpu cpu_usage gpu memory font disk battery song localip publicip users birthday term termfont)
|
||||
|
||||
refresh_rate="on"
|
||||
shell_version="on"
|
||||
cpu_display="infobar"
|
||||
memory_display="infobar"
|
||||
disk_display="infobar"
|
||||
readonly refresh_rate="on"
|
||||
readonly shell_version="on"
|
||||
readonly cpu_display="infobar"
|
||||
readonly memory_display="infobar"
|
||||
readonly disk_display="infobar"
|
||||
|
||||
printinfo () {
|
||||
if [ "$TRAVIS_OS_NAME" ]; then
|
||||
|
@ -3326,6 +2951,10 @@ while [ "$1" ]; do
|
|||
info linebreak
|
||||
printf "%b%s" "\033[$(tput lines)H"
|
||||
}
|
||||
|
||||
# Set the test func to readonly so a config source
|
||||
# doesn't overwrite it.
|
||||
readonly -f printinfo
|
||||
;;
|
||||
|
||||
-v) verbose="on" ;;
|
||||
|
@ -3343,29 +2972,34 @@ done
|
|||
|
||||
# Call Functions and Finish Up {{{
|
||||
|
||||
main () {
|
||||
# Restore cursor and clear screen on ctrl+c
|
||||
trap 'printf "\033[?25h"; clear; exit' 2
|
||||
|
||||
# Restore cursor and clear screen on ctrl+c
|
||||
trap 'printf "\033[?25h"; clear; exit' 2
|
||||
# If the script exits for any reason, unhide the cursor.
|
||||
trap 'printf "\033[?25h"' EXIT
|
||||
|
||||
# Distro detection
|
||||
getdistro
|
||||
[ -z "$ascii_distro" ] && ascii_distro="$(trim "$distro")"
|
||||
# Distro detection
|
||||
getdistro
|
||||
case "${ascii_distro:-auto}" in
|
||||
"auto") ascii_distro="$(trim "$distro")" ;;
|
||||
esac
|
||||
|
||||
# Get colors and bold
|
||||
bold
|
||||
colors
|
||||
# Get colors and bold
|
||||
bold
|
||||
colors
|
||||
|
||||
# If the script exits for any reason, unhide the cursor.
|
||||
trap 'printf "\033[?25h"' EXIT
|
||||
# Clear the scren
|
||||
clear
|
||||
|
||||
# Clear the scren
|
||||
clear
|
||||
# Hide the cursor
|
||||
printf "\033[?25l"
|
||||
|
||||
# Hide the cursor
|
||||
printf "\033[?25l"
|
||||
# Images {{{
|
||||
|
||||
if [ "$image" != "off" ]; then
|
||||
# If iterm2 is detected use iterm2 backend.
|
||||
# Get the image src
|
||||
if [ "$image" != "off" ]; then
|
||||
# Set the image backend
|
||||
if [ -n "$ITERM_PROFILE" ]; then
|
||||
image_backend="iterm2"
|
||||
|
||||
|
@ -3383,10 +3017,10 @@ if [ "$image" != "off" ]; then
|
|||
|
||||
# Get the image
|
||||
getimage
|
||||
fi
|
||||
fi
|
||||
|
||||
# Display the image if enabled
|
||||
if [ "$image" != "off" ] && [ "$image" != "ascii" ]; then
|
||||
# Display the image if enabled
|
||||
if [ "$image" != "off" ] && [ "$image" != "ascii" ]; then
|
||||
case "$image_backend" in
|
||||
"w3m")
|
||||
printf "%b%s\n" "0;1;$xoffset;$yoffset;$width;$height;;;;;$img\n4;\n3;" |\
|
||||
|
@ -3401,47 +3035,51 @@ if [ "$image" != "off" ] && [ "$image" != "ascii" ]; then
|
|||
tycat "$img"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
# Disable line wrap
|
||||
printf "\033[?7l"
|
||||
# }}}
|
||||
|
||||
# Move cursor to the top
|
||||
[ "$image" != "off" ] && printf "\033[0H"
|
||||
# Disable line wrap
|
||||
printf "\033[?7l"
|
||||
|
||||
# Print the info
|
||||
printinfo
|
||||
# Move cursor to the top
|
||||
[ "$image" != "off" ] && printf "\033[0H"
|
||||
|
||||
# Dynamic prompt location {{{
|
||||
# Print the info
|
||||
printinfo
|
||||
|
||||
# Get cursor position
|
||||
info_height="$(stty -echo; IFS=';' read -rdR -t 1 -d c -p $'\033[6n\033[c' ROW COL; printf "%s" "${ROW#*[}"; stty echo)"
|
||||
# Dynamic prompt location {{{
|
||||
|
||||
# Calculate image height in terminal cells.
|
||||
# The '+ 3' adds a gap between the prompt and the content.
|
||||
[ "$image" != "ascii" ] && [ "$image" != "off" ] && \
|
||||
# Get cursor position
|
||||
info_height="$(stty -echo; IFS=';' read -rdR -t 1 -d c -p $'\033[6n\033[c' ROW COL; printf "%s" "${ROW#*[}"; stty echo)"
|
||||
|
||||
# Calculate image height in terminal cells.
|
||||
# The '+ 3' adds a gap between the prompt and the content.
|
||||
[ "$image" != "ascii" ] && [ "$image" != "off" ] && \
|
||||
lines="$((${height:-1} / ${font_height:-1} + 3))"
|
||||
|
||||
# If the info is higher than the ascii/image place the prompt
|
||||
# based on the info height instead of the ascii/image height.
|
||||
[ "${lines:-0}" -lt "${info_height:-0}" ] && lines="$info_height"
|
||||
# If the info is higher than the ascii/image place the prompt
|
||||
# based on the info height instead of the ascii/image height.
|
||||
[ "${lines:-0}" -lt "${info_height:-0}" ] && lines="$info_height"
|
||||
|
||||
# Set the prompt location
|
||||
[ "$image" != "off" ] && printf "%b%s" "\033[${lines:-0}H"
|
||||
|
||||
# }}}
|
||||
|
||||
# Re-enable line wrap
|
||||
printf "%b%s" "\033[?7h"
|
||||
|
||||
# If enabled take a screenshot
|
||||
if [ "$scrot" == "on" ]; then
|
||||
takescrot
|
||||
fi
|
||||
|
||||
# Show error messages
|
||||
if [ "$verbose" == "on" ]; then
|
||||
printf "%s" "$err"
|
||||
fi
|
||||
# Set the prompt location
|
||||
[ "$image" != "off" ] && printf "%b%s" "\033[${lines:-0}H"
|
||||
|
||||
# }}}
|
||||
|
||||
# Re-enable line wrap
|
||||
printf "%b%s" "\033[?7h"
|
||||
|
||||
# If enabled take a screenshot
|
||||
[ "$scrot" == "on" ] && takescrot
|
||||
|
||||
# Show error messages
|
||||
[ "$verbose" == "on" ] && printf "%s" "$err"
|
||||
|
||||
# Reset exit status of the tests above.
|
||||
printf "%s"
|
||||
}
|
||||
|
||||
main
|
||||
|
||||
# }}}
|
||||
|
|
Reference in New Issue