mirror of
https://github.com/dylanaraps/neofetch.git
synced 2025-10-04 09:08:38 +00:00
Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
56545944d3 | ||
|
5d63097994 | ||
|
b8c902e65f | ||
|
01bbad7c79 | ||
|
7dac8843f1 | ||
|
9b51f9f528 | ||
|
d233e5bb2e | ||
|
5cb04eccce | ||
|
7141db1046 | ||
|
af6358fe47 | ||
|
53148c1ffe | ||
|
c3901fbc2a | ||
|
68630a125e | ||
|
e8bd2975e0 | ||
|
9a7b4c3871 |
15
CHANGELOG.md
15
CHANGELOG.md
@@ -3,25 +3,14 @@
|
|||||||
- [**@yslgirl**](https://github.com/yslgirl)
|
- [**@yslgirl**](https://github.com/yslgirl)
|
||||||
- [**@iandrewt**](https://github.com/iandrewt)
|
- [**@iandrewt**](https://github.com/iandrewt)
|
||||||
- [**@chrisweeksnz**](https://github.com/chrisweeksnz)
|
- [**@chrisweeksnz**](https://github.com/chrisweeksnz)
|
||||||
- [**@dawidd6**](https://github.com/dawidd6)
|
|
||||||
- [**@MitchWeaver**](https://github.com/MitchWeaver)
|
|
||||||
- [**@StarryTony**](https://github.com/StarryTony)
|
|
||||||
|
|
||||||
|
|
||||||
## OS
|
## OS
|
||||||
|
|
||||||
- Fixed detection bug with Gentoo.
|
- Fixed detection bug with Gentoo.
|
||||||
- Fixed detection bug with TrueOS. [**@dawidd6**](https://github.com/dawidd6)
|
|
||||||
- Added support for macOS High Sierra. [**@yslgirl**](https://github.com/yslgirl)
|
- Added support for macOS High Sierra. [**@yslgirl**](https://github.com/yslgirl)
|
||||||
- Added support for Container Linux by CoreOS. [**@chrisweeksnz**](https://github.com/chrisweeksnz)
|
- Added support for Container Linux by CoreOS. [**@chrisweeksnz**](https://github.com/chrisweeksnz)
|
||||||
- Added support for 2017 iOS devices [**@iandrewt**](https://github.com/iandrewt)
|
- Added support for 2017 iOS devices [**@iandrewt**](https://github.com/iandrewt)
|
||||||
- Added support for LEDE. [**@dawidd6**](https://github.com/dawidd6)
|
|
||||||
|
|
||||||
|
|
||||||
## Images
|
|
||||||
|
|
||||||
- [MacOS/iTerm2] Fixed thumbnail not appearing (replaced by placeholder) [**@StarryTony**](https://github.com/StarryTony)
|
|
||||||
|
|
||||||
|
|
||||||
## Info
|
## Info
|
||||||
|
|
||||||
@@ -33,10 +22,6 @@
|
|||||||
|
|
||||||
- [macOS] Fixed Install Date. [**@iandrewt**](https://github.com/iandrewt)
|
- [macOS] Fixed Install Date. [**@iandrewt**](https://github.com/iandrewt)
|
||||||
|
|
||||||
**Package Manager**
|
|
||||||
|
|
||||||
- Added detection for Sabotage Linux's `butch` [**@MitchWeaver**](https://github.com/MitchWeaver)
|
|
||||||
|
|
||||||
**Resolution**
|
**Resolution**
|
||||||
|
|
||||||
- [macOS] Fixed errors on non-retina screens. [**@iandrewt**](https://github.com/iandrewt)
|
- [macOS] Fixed errors on non-retina screens. [**@iandrewt**](https://github.com/iandrewt)
|
||||||
|
@@ -1,9 +0,0 @@
|
|||||||
${c1} _________
|
|
||||||
/ /\
|
|
||||||
/ LE / \
|
|
||||||
/ DE / \
|
|
||||||
/________/ LE \
|
|
||||||
\ \ DE /
|
|
||||||
\ LE \ /
|
|
||||||
\ DE \ /
|
|
||||||
\________\/
|
|
@@ -617,8 +617,18 @@ image_loop="off"
|
|||||||
# Values: 'dir'
|
# Values: 'dir'
|
||||||
thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
|
thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
|
||||||
|
|
||||||
|
# Crop mode
|
||||||
|
#
|
||||||
|
# Default: 'normal'
|
||||||
|
# Values: 'normal', 'fit', 'fill'
|
||||||
|
# Flag: --crop_mode
|
||||||
|
#
|
||||||
|
# See this wiki page to learn about the fit and fill options.
|
||||||
|
# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F
|
||||||
|
crop_mode="normal"
|
||||||
|
|
||||||
# Crop offset
|
# Crop offset
|
||||||
# Note: Only affects 'square' image size.
|
# Note: Only affects 'normal' crop mode.
|
||||||
#
|
#
|
||||||
# Default: 'center'
|
# Default: 'center'
|
||||||
# Values: 'northwest', 'north', 'northeast', 'west', 'center'
|
# Values: 'northwest', 'north', 'northeast', 'west', 'center'
|
||||||
@@ -627,21 +637,20 @@ thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
|
|||||||
crop_offset="center"
|
crop_offset="center"
|
||||||
|
|
||||||
# Image size
|
# Image size
|
||||||
# NOTE: 'square' is the OLD behavior.
|
# The image is half the terminal width by default.
|
||||||
# NOTE: 'auto' keeps image aspect ratio and size where possible.
|
|
||||||
#
|
#
|
||||||
# Default: 'auto'
|
# Default: 'auto'
|
||||||
# Values: 'auto', 'square'
|
# Values: 'auto', '00px', '00%', 'none'
|
||||||
# Flags: --image_size
|
# Flags: --image_size
|
||||||
# --size
|
# --size
|
||||||
image_size="auto"
|
image_size="auto"
|
||||||
|
|
||||||
# Gap between image and text
|
# Ggap between image and text
|
||||||
#
|
#
|
||||||
# Default: '4'
|
# Default: '3'
|
||||||
# Values: 'num', '-num'
|
# Values: 'num', '-num'
|
||||||
# Flag: --gap
|
# Flag: --gap
|
||||||
gap=4
|
gap=3
|
||||||
|
|
||||||
# Image offsets
|
# Image offsets
|
||||||
# Only works with the w3m backend.
|
# Only works with the w3m backend.
|
||||||
|
229
neofetch
229
neofetch
@@ -44,6 +44,7 @@ get_os() {
|
|||||||
"MINIX") os="MINIX" ;;
|
"MINIX") os="MINIX" ;;
|
||||||
"AIX") os="AIX" ;;
|
"AIX") os="AIX" ;;
|
||||||
"IRIX64") os="IRIX" ;;
|
"IRIX64") os="IRIX" ;;
|
||||||
|
"HP-UX") os="HP-UX" ;;
|
||||||
*)
|
*)
|
||||||
printf "%s\n" "Unknown OS detected: '$kernel_name', aborting..." >&2
|
printf "%s\n" "Unknown OS detected: '$kernel_name', aborting..." >&2
|
||||||
printf "%s\n" "Open an issue on GitHub to add support for your OS." >&2
|
printf "%s\n" "Open an issue on GitHub to add support for your OS." >&2
|
||||||
@@ -153,7 +154,7 @@ get_distro() {
|
|||||||
|
|
||||||
# Workarounds for FreeBSD based distros.
|
# Workarounds for FreeBSD based distros.
|
||||||
[[ -f "/etc/pcbsd-lang" ]] && distro="PCBSD"
|
[[ -f "/etc/pcbsd-lang" ]] && distro="PCBSD"
|
||||||
[[ -f "/etc/trueos-lang" ]] && distro="TrueOS"
|
[[ -f "/etc/rc.conf.trueos" ]] && distro="TrueOS"
|
||||||
|
|
||||||
# /etc/pacbsd-release is an empty file
|
# /etc/pacbsd-release is an empty file
|
||||||
[[ -f "/etc/pacbsd-release" ]] && distro="PacBSD"
|
[[ -f "/etc/pacbsd-release" ]] && distro="PacBSD"
|
||||||
@@ -226,8 +227,11 @@ get_distro() {
|
|||||||
distro="AIX $(oslevel)"
|
distro="AIX $(oslevel)"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"IRIX")
|
"IRIX" | "HP-UX")
|
||||||
distro="IRIX ${kernel_version}"
|
distro="$os ${kernel_version}"
|
||||||
|
case "$distro_shorthand" in
|
||||||
|
"on" | "tiny") distro="${distro/ ${kernel_version}}" ;;
|
||||||
|
esac
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@@ -339,6 +343,10 @@ get_model() {
|
|||||||
"AIX")
|
"AIX")
|
||||||
model="$(/usr/bin/uname -M)"
|
model="$(/usr/bin/uname -M)"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
"HP-UX")
|
||||||
|
model="$(model)"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Remove dummy OEM info.
|
# Remove dummy OEM info.
|
||||||
@@ -368,8 +376,8 @@ get_title() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get_kernel() {
|
get_kernel() {
|
||||||
# Since these OS are integrated systems, it's better to skip this function altogether
|
# Since AIX has no useful output in uname, it's better to skip this function altogether
|
||||||
[[ "$os" =~ (AIX|IRIX) ]] && return
|
[[ "$os" == "AIX" ]] && return
|
||||||
|
|
||||||
case "$kernel_shorthand" in
|
case "$kernel_shorthand" in
|
||||||
"on") kernel="$kernel_version" ;;
|
"on") kernel="$kernel_version" ;;
|
||||||
@@ -377,7 +385,7 @@ get_kernel() {
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
# Hide kernel info if it's identical to the distro info.
|
# Hide kernel info if it's identical to the distro info.
|
||||||
if [[ "$os" =~ (BSD|MINIX) && "$distro" == *"$kernel_name"* ]]; then
|
if [[ "$os" =~ (BSD|MINIX|IRIX|HP-UX) && "$distro" == *"$kernel_name"* ]]; then
|
||||||
case "$distro_shorthand" in
|
case "$distro_shorthand" in
|
||||||
"on" | "tiny") kernel="$kernel_version" ;;
|
"on" | "tiny") kernel="$kernel_version" ;;
|
||||||
*) unset kernel ;;
|
*) unset kernel ;;
|
||||||
@@ -417,8 +425,8 @@ get_uptime() {
|
|||||||
seconds="${seconds/.*}"
|
seconds="${seconds/.*}"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"AIX" | "IRIX")
|
"AIX" | "IRIX" | "HP-UX")
|
||||||
t="$(LC_ALL=POSIX ps -o etime= -p 1)"
|
t="$(LC_ALL=POSIX UNIX95=1 ps -o etime= -p 1)"
|
||||||
d="0" h="0"
|
d="0" h="0"
|
||||||
case "$t" in *"-"*) d="${t%%-*}"; t="${t#*-}";; esac
|
case "$t" in *"-"*) d="${t%%-*}"; t="${t#*-}";; esac
|
||||||
case "$t" in *":"*":"*) h="${t%%:*}"; t="${t#*:}";; esac
|
case "$t" in *":"*":"*) h="${t%%:*}"; t="${t#*:}";; esac
|
||||||
@@ -552,9 +560,6 @@ get_packages() {
|
|||||||
packages="$((packages+=$(ls -d -1 "${package_dir[@]}" | wc -l)))"
|
packages="$((packages+=$(ls -d -1 "${package_dir[@]}" | wc -l)))"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
type -p butch >/dev/null && \
|
|
||||||
packages="$((packages+=$(butch list | wc -l)))"
|
|
||||||
|
|
||||||
if type -p pkg >/dev/null; then
|
if type -p pkg >/dev/null; then
|
||||||
case "$kernel_name" in
|
case "$kernel_name" in
|
||||||
"FreeBSD") packages="$((packages+=$(pkg info | wc -l)))" ;;
|
"FreeBSD") packages="$((packages+=$(pkg info | wc -l)))" ;;
|
||||||
@@ -602,6 +607,10 @@ get_packages() {
|
|||||||
"IRIX")
|
"IRIX")
|
||||||
packages="$(($(versions -b | wc -l)-3))"
|
packages="$(($(versions -b | wc -l)-3))"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
"HP-UX")
|
||||||
|
packages="$(($(swlist -l product | wc -l)-6))"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
((packages == 0)) && unset packages
|
((packages == 0)) && unset packages
|
||||||
@@ -689,10 +698,6 @@ get_de() {
|
|||||||
*"xfce5"*) de="Xfce5" ;;
|
*"xfce5"*) de="Xfce5" ;;
|
||||||
*"xfce"*) de="Xfce" ;;
|
*"xfce"*) de="Xfce" ;;
|
||||||
*"mate"*) de="MATE" ;;
|
*"mate"*) de="MATE" ;;
|
||||||
*"GNOME"*)
|
|
||||||
de="$(gnome-shell --version)"
|
|
||||||
de="${de/Shell }"
|
|
||||||
;;
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Log that the function was run.
|
# Log that the function was run.
|
||||||
@@ -758,7 +763,7 @@ get_wm_theme() {
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
"Sawfish")
|
"Sawfish")
|
||||||
wm_theme="$(awk -F '\\(quote|\\)' '/default-frame-style/ {print $(NF-4)}' \
|
wm_theme="$(awk -F ")" '/\(quote default-frame-style/ {print $2}' \
|
||||||
"${HOME}/.sawfish/custom")"
|
"${HOME}/.sawfish/custom")"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@@ -926,12 +931,7 @@ get_cpu() {
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
speed_dir="/sys/devices/system/cpu/cpu0/cpufreq"
|
speed_dir="/sys/devices/system/cpu/cpu0/cpufreq"
|
||||||
|
temp_dir="/sys/class/hwmon/hwmon0/temp1_input"
|
||||||
# Select the right temperature file.
|
|
||||||
for temp_dir in /sys/class/hwmon/*; do
|
|
||||||
[[ "$(< "${temp_dir}/name")" =~ (coretemp|fam15h_power) ]] && \
|
|
||||||
{ temp_dir="${temp_dir}/temp1_input"; break; }
|
|
||||||
done
|
|
||||||
|
|
||||||
# Get CPU speed.
|
# Get CPU speed.
|
||||||
if [[ -d "$speed_dir" ]]; then
|
if [[ -d "$speed_dir" ]]; then
|
||||||
@@ -949,8 +949,8 @@ get_cpu() {
|
|||||||
|
|
||||||
# Get CPU temp.
|
# Get CPU temp.
|
||||||
if [[ -f "$temp_dir" ]]; then
|
if [[ -f "$temp_dir" ]]; then
|
||||||
deg="$(< "$temp_dir")"
|
temp="$(< "$temp_dir")"
|
||||||
deg="$((deg * 100 / 10000))"
|
temp="$((temp * 100 / 10000))"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Get CPU cores.
|
# Get CPU cores.
|
||||||
@@ -1013,12 +1013,12 @@ get_cpu() {
|
|||||||
# Get CPU temp.
|
# Get CPU temp.
|
||||||
case "$kernel_name" in
|
case "$kernel_name" in
|
||||||
"FreeBSD"* | "DragonFly"* | "NetBSD"*)
|
"FreeBSD"* | "DragonFly"* | "NetBSD"*)
|
||||||
deg="$(sysctl -n dev.cpu.0.temperature)"
|
temp="$(sysctl -n dev.cpu.0.temperature)"
|
||||||
deg="${deg/C}"
|
temp="${temp/C}"
|
||||||
;;
|
;;
|
||||||
"OpenBSD"* | "Bitrig"*)
|
"OpenBSD"* | "Bitrig"*)
|
||||||
deg="$(sysctl -n hw.sensors.lm0.temp0)"
|
temp="$(sysctl -n hw.sensors.lm0.temp0)"
|
||||||
deg="${deg/ degC}"
|
temp="${temp/ degC}"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
@@ -1082,6 +1082,18 @@ get_cpu() {
|
|||||||
# Get CPU cores.
|
# Get CPU cores.
|
||||||
cores="$(sysconf NPROC_ONLN)"
|
cores="$(sysconf NPROC_ONLN)"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
"HP-UX")
|
||||||
|
# Get CPU name.
|
||||||
|
# This will be partial for now, because apparently hppa and
|
||||||
|
# IA64 has different approaches of how it should be handled.
|
||||||
|
|
||||||
|
# Get CPU speed.
|
||||||
|
# Same reasons as above.
|
||||||
|
|
||||||
|
# Get CPU cores.
|
||||||
|
cores="$(ioscan -k | grep -c "processor")"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Remove un-needed patterns from cpu output.
|
# Remove un-needed patterns from cpu output.
|
||||||
@@ -1135,15 +1147,15 @@ get_cpu() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Add CPU temp to the output.
|
# Add CPU temp to the output.
|
||||||
if [[ "$cpu_temp" != "off" && "$deg" ]]; then
|
if [[ "$cpu_temp" != "off" && "$temp" ]]; then
|
||||||
deg="${deg//.}"
|
temp="${temp//.}"
|
||||||
|
|
||||||
# Convert to Fahrenheit if enabled
|
# Convert to Fahrenheit if enabled
|
||||||
[[ "$cpu_temp" == "F" ]] && deg="$((deg * 90 / 50 + 320))"
|
[[ "$cpu_temp" == "F" ]] && temp="$((temp * 90 / 50 + 320))"
|
||||||
|
|
||||||
# Format the output
|
# Format the output
|
||||||
deg="[${deg/${deg: -1}}.${deg: -1}°${cpu_temp:-C}]"
|
temp="[${temp/${temp: -1}}.${temp: -1}°${cpu_temp:-C}]"
|
||||||
cpu="$cpu $deg"
|
cpu="$cpu $temp"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1417,6 +1429,13 @@ get_memory() {
|
|||||||
mem_free="$((mem_stat[5] / 1024))"
|
mem_free="$((mem_stat[5] / 1024))"
|
||||||
mem_used="$((mem_total - mem_free))"
|
mem_used="$((mem_total - mem_free))"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
"HP-UX")
|
||||||
|
mem_total="$(machinfo | awk -F':' '/Memory/ {print $2}')"
|
||||||
|
mem_total="${mem_total/MB*}"
|
||||||
|
mem_free="$(($(vmstat | awk 'NR==3{printf $5}') / 1024))"
|
||||||
|
mem_used="$((mem_total - mem_free))"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
memory="${mem_used}${mem_label:-MiB} / ${mem_total}${mem_label:-MiB}"
|
memory="${mem_used}${mem_label:-MiB} / ${mem_total}${mem_label:-MiB}"
|
||||||
|
|
||||||
@@ -2044,7 +2063,7 @@ get_disk() {
|
|||||||
# Get "df" version.
|
# Get "df" version.
|
||||||
df_version="$(df --version 2>&1)"
|
df_version="$(df --version 2>&1)"
|
||||||
case "$df_version" in
|
case "$df_version" in
|
||||||
*"Tracker"*) # Haiku
|
*"blocks"*) # Haiku
|
||||||
err "Your version of df cannot be used due to the non-standard flags"
|
err "Your version of df cannot be used due to the non-standard flags"
|
||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
@@ -2056,7 +2075,10 @@ get_disk() {
|
|||||||
# Create an array called 'disks' where each element is a separate line from
|
# Create an array called 'disks' where each element is a separate line from
|
||||||
# df's output. We then unset the first element which removes the column titles.
|
# df's output. We then unset the first element which removes the column titles.
|
||||||
IFS=$'\n'
|
IFS=$'\n'
|
||||||
disks=($(df "${df_flags[@]}" "${disk_show[@]:-/}"))
|
case "$os" in
|
||||||
|
"HP-UX") disks=($(bdf "${disk_show[@]:-/}" 2>/dev/null)); df_version="bdf" ;;
|
||||||
|
*) disks=($(df "${df_flags[@]}" "${disk_show[@]:-/}" 2>/dev/null)) ;;
|
||||||
|
esac
|
||||||
unset 'disks[0]'
|
unset 'disks[0]'
|
||||||
IFS="$old_ifs"
|
IFS="$old_ifs"
|
||||||
|
|
||||||
@@ -2072,9 +2094,10 @@ get_disk() {
|
|||||||
disk_perc="${disk_info[4]/'%'}"
|
disk_perc="${disk_info[4]/'%'}"
|
||||||
|
|
||||||
case "$df_version" in
|
case "$df_version" in
|
||||||
*"befhikm"*)
|
*"befhikm"*|"bdf")
|
||||||
disk="$((disk_info[2]/1024/1024))G / $((disk_info[1]/1024/1024))G (${disk_perc}%)"
|
disk="$((disk_info[2]/1024/1024))G / $((disk_info[1]/1024/1024)) (${disk_perc}%)"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*) disk="${disk_info[2]/i} / ${disk_info[1]/i} (${disk_perc}%)" ;;
|
*) disk="${disk_info[2]/i} / ${disk_info[1]/i} (${disk_perc}%)" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@@ -2252,6 +2275,7 @@ get_install_date() {
|
|||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
"AIX") install_file="/var/adm/ras/bosinstlog" ;;
|
"AIX") install_file="/var/adm/ras/bosinstlog" ;;
|
||||||
|
"HP-UX") install_file="/dev/config" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
ls_prog="$(ls --version 2>&1)"
|
ls_prog="$(ls --version 2>&1)"
|
||||||
@@ -2272,7 +2296,7 @@ get_install_date() {
|
|||||||
install_date="$(ls -tcd --full-time "$install_file" | awk '{printf $6 " " $7}')"
|
install_date="$(ls -tcd --full-time "$install_file" | awk '{printf $6 " " $7}')"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*"ACFHLNRS"* | *"RadC1xmnlog"*) # AIX ls / IRIX ls
|
*"ACFHLNRS"* | *"RadC1xmnlog"* | *"1ARadeCx"*) # AIX ls / IRIX ls / HP-UX ls
|
||||||
err "Install Date doesn't work because your 'ls' doesn't support full date/time."
|
err "Install Date doesn't work because your 'ls' doesn't support full date/time."
|
||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
@@ -2302,16 +2326,10 @@ get_gpu_driver() {
|
|||||||
gpu_driver="$(lspci -nnk | awk -F ': ' \
|
gpu_driver="$(lspci -nnk | awk -F ': ' \
|
||||||
'/Display|3D|VGA/{nr[NR+2]}; NR in nr {printf $2 ", "}')"
|
'/Display|3D|VGA/{nr[NR+2]}; NR in nr {printf $2 ", "}')"
|
||||||
gpu_driver="${gpu_driver%, }"
|
gpu_driver="${gpu_driver%, }"
|
||||||
|
|
||||||
if [[ "$gpu_driver" == *"nvidia"* ]]; then
|
|
||||||
gpu_driver="$(< /proc/driver/nvidia/version)"
|
|
||||||
gpu_driver="${gpu_driver/*Module }"
|
|
||||||
gpu_driver="NVIDIA ${gpu_driver/ *}"
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
"Mac OS X")
|
"Mac OS X")
|
||||||
if [[ "$(kextstat | grep "GeForceWeb")" != "" ]]; then
|
if [[ "$(kextstat | grep "GeForceWeb")" != "" ]]; then
|
||||||
gpu_driver="NVIDIA Web Driver"
|
gpu_driver="Nvidia Web Driver"
|
||||||
else
|
else
|
||||||
gpu_driver="macOS Default Graphics Driver"
|
gpu_driver="macOS Default Graphics Driver"
|
||||||
fi
|
fi
|
||||||
@@ -2667,32 +2685,44 @@ get_image_size() {
|
|||||||
font_width="$((term_width / columns))"
|
font_width="$((term_width / columns))"
|
||||||
font_height="$((term_height / lines))"
|
font_height="$((term_height / lines))"
|
||||||
|
|
||||||
# Get image size.
|
case "$image_size" in
|
||||||
|
"auto")
|
||||||
|
image_size="$((columns * font_width / 2))"
|
||||||
|
term_height="$((term_height - term_height / 4))"
|
||||||
|
|
||||||
|
((term_height < image_size)) && \
|
||||||
|
image_size="$term_height"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*"%")
|
||||||
|
percent="${image_size/\%}"
|
||||||
|
image_size="$((percent * term_width / 100))"
|
||||||
|
|
||||||
|
(((percent * term_height / 50) < image_size)) && \
|
||||||
|
image_size="$((percent * term_height / 100))"
|
||||||
|
;;
|
||||||
|
|
||||||
|
"none")
|
||||||
|
# Get image size so that we can do a better crop.
|
||||||
size="$(identify -format "%w %h" "$image")"
|
size="$(identify -format "%w %h" "$image")"
|
||||||
width="${size%% *}"
|
width="${size%% *}"
|
||||||
height="${size##* }"
|
height="${size##* }"
|
||||||
|
crop_mode="none"
|
||||||
case "$image_size" in
|
|
||||||
"square")
|
|
||||||
width="$((columns * font_width / 2))"
|
|
||||||
height="$width"
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*) image_size="${image_size/px}" ;;
|
||||||
while (( width >= (term_width / 2) ||
|
|
||||||
height >= (term_height / 2) )); do
|
|
||||||
width="$((width * 10 / 15))"
|
|
||||||
height="$((height * 10 / 15))"
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
width="${width:-$image_size}"
|
||||||
|
height="${height:-$image_size}"
|
||||||
|
|
||||||
text_padding="$((width / font_width + gap + xoffset/font_width))"
|
text_padding="$((width / font_width + gap + xoffset/font_width))"
|
||||||
}
|
}
|
||||||
|
|
||||||
make_thumbnail() {
|
make_thumbnail() {
|
||||||
# Name the thumbnail using variables so we can use it later.
|
# Name the thumbnail using variables so we can
|
||||||
image_name="$image_size-$crop_offset-$width-$height-${image##*/}"
|
# use it later.
|
||||||
|
image_name="$crop_mode-$crop_offset-$width-$height-${image//'/'/_}"
|
||||||
|
|
||||||
# Handle file extensions.
|
# Handle file extensions.
|
||||||
case "${image##*.}" in
|
case "${image##*.}" in
|
||||||
@@ -2704,17 +2734,62 @@ make_thumbnail() {
|
|||||||
# Create the thumbnail dir if it doesn't exist.
|
# Create the thumbnail dir if it doesn't exist.
|
||||||
mkdir -p "$thumbnail_dir"
|
mkdir -p "$thumbnail_dir"
|
||||||
|
|
||||||
[[ ! -f "$thumbnail_dir/$image_name" ]] && \
|
# Check to see if the thumbnail exists before we do any cropping.
|
||||||
|
if [[ ! -f "$thumbnail_dir/$image_name" ]]; then
|
||||||
|
# Get image size so that we can do a better crop.
|
||||||
|
if [[ -z "$size" ]]; then
|
||||||
|
size="$(identify -format "%w %h" "$image")"
|
||||||
|
og_width="${size%% *}"
|
||||||
|
og_height="${size##* }"
|
||||||
|
|
||||||
|
# This checks to see if height is greater than width
|
||||||
|
# so we can do a better crop of portrait images.
|
||||||
|
size="$og_height"
|
||||||
|
((og_height > og_width)) && size="$og_width"
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$crop_mode" in
|
||||||
|
"fit")
|
||||||
|
c="$(convert "$image" \
|
||||||
|
-colorspace srgb \
|
||||||
|
-format "%[pixel:p{0,0}]" info:)"
|
||||||
|
|
||||||
convert \
|
convert \
|
||||||
"$image" \
|
|
||||||
-strip \
|
|
||||||
-quality 50 \
|
|
||||||
-gravity "$crop_offset" \
|
|
||||||
-background none \
|
-background none \
|
||||||
-sample "$width"x"$height"^ \
|
"$image" \
|
||||||
|
-trim +repage \
|
||||||
|
-gravity south \
|
||||||
|
-background "$c" \
|
||||||
|
-extent "$size"x"$size" \
|
||||||
|
-scale "$width"x"$height" \
|
||||||
|
"$thumbnail_dir/$image_name"
|
||||||
|
;;
|
||||||
|
|
||||||
|
"fill")
|
||||||
|
convert \
|
||||||
|
-background none \
|
||||||
|
"$image" \
|
||||||
|
-trim +repage \
|
||||||
|
-scale "$width"x"$height"^ \
|
||||||
-extent "$width"x"$height" \
|
-extent "$width"x"$height" \
|
||||||
"$thumbnail_dir/$image_name"
|
"$thumbnail_dir/$image_name"
|
||||||
|
;;
|
||||||
|
|
||||||
|
"none") cp "$image" "$thumbnail_dir/$image_name" ;;
|
||||||
|
*)
|
||||||
|
convert \
|
||||||
|
-background none \
|
||||||
|
"$image" \
|
||||||
|
-gravity "$crop_offset" \
|
||||||
|
-crop "$size"x"$size"+0+0 \
|
||||||
|
-quality 95 \
|
||||||
|
-scale "$width"x"$height" \
|
||||||
|
"$thumbnail_dir/$image_name"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# The final image.
|
||||||
image="$thumbnail_dir/$image_name"
|
image="$thumbnail_dir/$image_name"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2960,7 +3035,7 @@ prin() {
|
|||||||
string="${subtitle_color}${bold}${string}"
|
string="${subtitle_color}${bold}${string}"
|
||||||
|
|
||||||
# Print the info.
|
# Print the info.
|
||||||
printf "%b\n" "${text_padding:+\033[${text_padding}C}${zws}${string}${reset} "
|
printf "%b\n" "${text_padding:+\033[${text_padding}C}${zws}${string}${reset}"
|
||||||
|
|
||||||
# Calculate info height.
|
# Calculate info height.
|
||||||
((++info_height))
|
((++info_height))
|
||||||
@@ -2973,7 +3048,7 @@ get_underline() {
|
|||||||
if [[ "$underline_enabled" == "on" ]]; then
|
if [[ "$underline_enabled" == "on" ]]; then
|
||||||
printf -v underline "%${length}s"
|
printf -v underline "%${length}s"
|
||||||
printf "%b%b\n" "${text_padding:+\033[${text_padding}C}${zws}${underline_color}" \
|
printf "%b%b\n" "${text_padding:+\033[${text_padding}C}${zws}${underline_color}" \
|
||||||
"${underline// /$underline_char}${reset} "
|
"${underline// /$underline_char}${reset}"
|
||||||
unset -v length
|
unset -v length
|
||||||
fi
|
fi
|
||||||
prin=1
|
prin=1
|
||||||
@@ -3358,11 +3433,6 @@ get_distro_colors() {
|
|||||||
ascii_file="kubuntu"
|
ascii_file="kubuntu"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"LEDE"*)
|
|
||||||
set_colors 4 7 1
|
|
||||||
ascii_file="lede"
|
|
||||||
;;
|
|
||||||
|
|
||||||
"Linux")
|
"Linux")
|
||||||
set_colors fg 8 3
|
set_colors fg 8 3
|
||||||
ascii_file="linux"
|
ascii_file="linux"
|
||||||
@@ -4035,7 +4105,7 @@ dynamic_prompt() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Set the prompt location.
|
# Set the prompt location.
|
||||||
((lines > 1)) && printf "%b" "\033[${lines}B"
|
((lines > 0)) && printf "%b" "\033[${lines}B"
|
||||||
}
|
}
|
||||||
|
|
||||||
old_functions() {
|
old_functions() {
|
||||||
@@ -4402,9 +4472,11 @@ ASCII:
|
|||||||
IMAGE:
|
IMAGE:
|
||||||
--loop Redraw the image constantly until Ctrl+C is used. This fixes issues
|
--loop Redraw the image constantly until Ctrl+C is used. This fixes issues
|
||||||
in some terminals emulators when using image mode.
|
in some terminals emulators when using image mode.
|
||||||
--size auto | --size square How to size the image.
|
--size 00px | --size 00% How to size the image.
|
||||||
Possible values: auto, 00px, 00%, none
|
Possible values: auto, 00px, 00%, none
|
||||||
--crop_offset value Change the crop offset for square mode.
|
--crop_mode mode Which crop mode to use
|
||||||
|
Takes the values: normal, fit, fill
|
||||||
|
--crop_offset value Change the crop offset for normal mode.
|
||||||
Possible values: northwest, north, northeast,
|
Possible values: northwest, north, northeast,
|
||||||
west, center, east, southwest, south, southeast
|
west, center, east, southwest, south, southeast
|
||||||
|
|
||||||
@@ -4699,11 +4771,6 @@ main() {
|
|||||||
# Take a screenshot.
|
# Take a screenshot.
|
||||||
[[ "$scrot" == "on" ]] && take_scrot
|
[[ "$scrot" == "on" ]] && take_scrot
|
||||||
|
|
||||||
# Add neofetch info to verbose output.
|
|
||||||
err "Neofetch command: $0 $*"
|
|
||||||
err "Neofetch version: $version"
|
|
||||||
err "Neofetch config: $config_version"
|
|
||||||
|
|
||||||
# Show error messages.
|
# Show error messages.
|
||||||
[[ "$verbose" == "on" ]] && printf "%b" "$err" >&2
|
[[ "$verbose" == "on" ]] && printf "%b" "$err" >&2
|
||||||
|
|
||||||
|
13
neofetch.1
13
neofetch.1
@@ -1,5 +1,5 @@
|
|||||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.5.
|
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4.
|
||||||
.TH NEOFETCH "1" "December 2017" "Neofetch 3.3.1-git" "User Commands"
|
.TH NEOFETCH "1" "September 2017" "Neofetch 3.3.0" "User Commands"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
Neofetch \- A fast, highly customizable system info script
|
Neofetch \- A fast, highly customizable system info script
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
@@ -259,11 +259,16 @@ Possible values: bar, infobar, barinfo, off
|
|||||||
Redraw the image constantly until Ctrl+C is used. This fixes issues
|
Redraw the image constantly until Ctrl+C is used. This fixes issues
|
||||||
in some terminals emulators when using image mode.
|
in some terminals emulators when using image mode.
|
||||||
.TP
|
.TP
|
||||||
\fB\-\-size\fR auto | \fB\-\-size\fR square How to size the image.
|
\fB\-\-size\fR 00px | \fB\-\-size\fR 00%
|
||||||
|
How to size the image.
|
||||||
Possible values: auto, 00px, 00%, none
|
Possible values: auto, 00px, 00%, none
|
||||||
.TP
|
.TP
|
||||||
|
\fB\-\-crop_mode\fR mode
|
||||||
|
Which crop mode to use
|
||||||
|
Takes the values: normal, fit, fill
|
||||||
|
.TP
|
||||||
\fB\-\-crop_offset\fR value
|
\fB\-\-crop_offset\fR value
|
||||||
Change the crop offset for square mode.
|
Change the crop offset for normal mode.
|
||||||
Possible values: northwest, north, northeast,
|
Possible values: northwest, north, northeast,
|
||||||
west, center, east, southwest, south, southeast
|
west, center, east, southwest, south, southeast
|
||||||
.TP
|
.TP
|
||||||
|
Reference in New Issue
Block a user