diff --git a/config/config b/config/config index 689ff744..5ff6caee 100644 --- a/config/config +++ b/config/config @@ -1,5 +1,4 @@ #!/usr/bin/env bash -# vim:fdm=marker # # Neofetch config file # https://github.com/dylanaraps/neofetch @@ -8,10 +7,7 @@ export LC_ALL=C export LANG=C -# Info Options {{{ - -# Info # See this wiki page for more info: # https://github.com/dylanaraps/neofetch/wiki/Customizing-Info print_info() { @@ -54,15 +50,18 @@ print_info() { # Kernel -# Show more kernel info + +# Shorten the output of the kernel function # --kernel_shorthand on, off kernel_shorthand="on" # Distro -# Shorten the output of distro (tiny, on, off) + +# Shorten the output of the distro function # NOTE: This is only possible on Linux, macOS, and Solaris +# --distro_shorthand on, off, tiny distro_shorthand="off" # Show 'x86_64' and 'x86' in 'Distro:' output. @@ -72,6 +71,7 @@ os_arch="on" # Uptime + # Shorten the output of the uptime function # --uptime_shorthand tiny, on, off uptime_shorthand="off" @@ -79,25 +79,26 @@ uptime_shorthand="off" # Shell + # Show the path to $SHELL # --shell_path on, off shell_path="off" -# Show $SHELL's version +# Show $SHELL version # --shell_version on, off shell_version="on" # 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 +# Shorten the output of the CPU function # --cpu_shorthand name, speed, tiny, on, off cpu_shorthand="off" @@ -115,19 +116,20 @@ cpu_speed="on" # Display CPU cores in output # Logical: All virtual cores # Physical: All physical cores -# --cpu_cores logical, physical, off # Note: 'physical' doesn't work on BSD. +# --cpu_cores logical, physical, off cpu_cores="logical" # CPU Temperature # Hide/Show CPU temperature. -# --cpu_temp on, off # Note: Only works on Linux. +# --cpu_temp on, off cpu_temp="off" # GPU + # Enable/Disable GPU Brand # --gpu_brand on, off gpu_brand="on" @@ -135,6 +137,7 @@ gpu_brand="on" # Resolution + # Display refresh rate next to each monitor # Unsupported on Windows # --refresh_rate on, off @@ -143,6 +146,7 @@ refresh_rate="off" # Gtk Theme / Icons + # Shorten output (Hide [GTK2] etc) # --gtk_shorthand on, off gtk_shorthand="off" @@ -159,6 +163,7 @@ gtk3="on" # IP Address + # Website to ping for the public IP # --ip_host url public_ip_host="http://ident.me" @@ -166,6 +171,7 @@ public_ip_host="http://ident.me" # Song + # Print the Artist and Title on seperate lines # --song_shorthand on, off song_shorthand="off" @@ -173,6 +179,7 @@ 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. @@ -188,9 +195,7 @@ birthday_time="on" birthday_format="+%a %d %b %Y %l:%M %p" -# }}} - -# Text Colors {{{ +# Text Colors # Text Colors @@ -203,9 +208,7 @@ birthday_format="+%a %d %b %Y %l:%M %p" colors=(distro) -# }}} - -# Text Options {{{ +# Text Options # Toggle bold text @@ -221,9 +224,7 @@ underline_enabled="on" underline_char="-" -# }}} - -# Color Blocks {{{ +# Color Blocks # Color block range @@ -244,9 +245,7 @@ block_width=3 block_height=1 -# }}} - -# Progress Bars {{{ +# Progress Bars # Progress bar character @@ -284,9 +283,7 @@ battery_display="off" disk_display="off" -# }}} - -# Image Options {{{ +# Image Options # Image Source @@ -345,9 +342,7 @@ xoffset=0 background_color= -# }}} - -# Ascii Options {{{ +# Ascii Options # Default ascii image to use @@ -383,9 +378,7 @@ ascii_logo_size="normal" ascii_bold="on" -# }}} - -# Scrot Options {{{ +# Scrot Options # Whether or not to always take a screenshot @@ -417,9 +410,7 @@ image_host="imgur" imgur_client_id="0e8b44d15e9fc95" -# }}} - -# Config Options {{{ +# Config Options # Enable/Disable config file @@ -429,6 +420,3 @@ config="on" # Path to custom config file location # --config path/to/config config_file="${XDG_CONFIG_HOME:-${HOME}/.config}/neofetch/config" - - -# }}} diff --git a/config/travis b/config/travis index e49a9b01..583ae1cd 100644 --- a/config/travis +++ b/config/travis @@ -1,5 +1,4 @@ #!/usr/bin/env bash -# vim:fdm=marker # # Neofetch config file for travis.ci # https://github.com/dylanaraps/neofetch diff --git a/neofetch b/neofetch index e81fced3..0ed2af65 100755 --- a/neofetch +++ b/neofetch @@ -1,6 +1,6 @@ #!/usr/bin/env bash # set -x -# vim: fdm=marker:noai:ts=4:sw=4:expandtab +# vim: noai:ts=4:sw=4:expandtab # # Neofetch: Simple system information script. # https://github.com/dylanaraps/neofetch @@ -19,9 +19,7 @@ export LANG=C # Set no case match. shopt -s nocasematch -# Gather Info {{{ - -# Operating System {{{ +# DETECT INFORMATION get_os() { case "$(uname)" in @@ -36,10 +34,6 @@ get_os() { esac } -# }}} - -# Model {{{ - get_model() { case "$os" in "Linux") @@ -118,17 +112,13 @@ get_model() { esac } -# }}} - -# Distro {{{ - get_distro() { [[ "$distro" ]] && return case "$os" in "Linux" | "GNU") - if grep -q -F 'Microsoft' /proc/version >/dev/null || \ - grep -q -F 'Microsoft' /proc/sys/kernel/osrelease >/dev/null; then + if grep -q -F 'Microsoft' /proc/version || \ + grep -q -F 'Microsoft' /proc/sys/kernel/osrelease; then case "$distro_shorthand" in "on") distro="$(lsb_release -sir) [Windows 10]" ;; "tiny") distro="Windows 10" ;; @@ -264,18 +254,10 @@ get_distro() { ascii_distro="$(trim "$distro")" } -# }}} - -# Title {{{ - get_title() { title="${USER:-$(whoami || printf "%s" "${HOME/*\/}")}@${HOSTNAME:-$(hostname)}" } -# }}} - -# Kernel {{{ - get_kernel() { case "$kernel_shorthand" in "on") kernel_flags="-r" ;; @@ -293,10 +275,6 @@ get_kernel() { fi } -# }}} - -# Uptime {{{ - get_uptime() { # Since Haiku's uptime cannot be fetched in seconds, a case outside # the usual case is needed @@ -376,10 +354,6 @@ get_uptime() { esac } -# }}} - -# Package Count {{{ - get_packages() { case "$os" in "Linux" | "iPhone OS" | "Solaris" | "GNU") @@ -476,10 +450,6 @@ get_packages() { (("$packages" == "0")) && unset packages } -# }}} - -# Shell {{{ - get_shell() { case "$shell_path" in "on") shell="$SHELL" ;; @@ -517,9 +487,6 @@ get_shell() { fi } -# }}} - -# Desktop Environment {{{ get_de() { case "$os" in "Mac OS X") de="Aqua" ;; @@ -550,10 +517,6 @@ get_de() { fi } -# }}} - -# Window Manager {{{ - get_wm() { if [[ -n "$DISPLAY" && "$os" != "Mac OS X" ]]; then id="$(xprop -root -notype | awk '$1=="_NET_SUPPORTING_WM_CHECK:"{print $5}')" @@ -579,10 +542,6 @@ get_wm() { fi } -# }}} - -# Window Manager Theme {{{ - get_wm_theme() { [[ -z "$wm" ]] && get_wm [[ -z "$de" ]] && get_de @@ -702,10 +661,6 @@ get_wm_theme() { (("$version" >= 4)) && wm_theme="${wm_theme^}" } -# }}} - -# CPU {{{ - get_cpu() { # NetBSD emulates the linux /proc filesystem instead of using sysctl for hw # information so we have to use this block below which temporarily sets the @@ -895,10 +850,6 @@ get_cpu() { esac } -# }}} - -# CPU Usage {{{ - get_cpu_usage() { case "$os" in "Windows") @@ -932,10 +883,6 @@ get_cpu_usage() { esac } -# }}} - -# GPU {{{ - get_gpu() { case "$os" in "Linux" | "GNU") @@ -1056,10 +1003,6 @@ get_gpu() { fi } -# }}} - -# Memory {{{ - get_memory() { case "$os" in "Linux" | "Windows" | "GNU") @@ -1126,10 +1069,6 @@ get_memory() { esac } -# }}} - -# Song {{{ - get_song() { # This is absurdly long. player="$(ps x | awk '!(/awk|Helper|Cache/) && /mpd|cmus|mocp|spotify|Google Play|iTunes.app|rhythmbox|banshee|amarok|deadbeef|audacious/ {printf $5 " " $6; exit}')" @@ -1244,10 +1183,6 @@ get_song() { fi } -# }}} - -# Resolution {{{ - get_resolution() { case "$os" in "Linux" | "BSD" | "Solaris" | "GNU") @@ -1307,10 +1242,6 @@ get_resolution() { resolution="${resolution%,*}" } -# }}} - -# Theme/Icons/Font {{{ - get_style() { # Fix weird output when the function # is run multiple times. @@ -1482,10 +1413,6 @@ get_font() { font="$theme" } -# }}} - -# Terminal Emulator {{{ - get_term() { # Check $PPID for terminal emulator. case "$os" in @@ -1530,10 +1457,6 @@ get_term() { esac } -# }}} - -# Terminal Emulator Font {{{ - get_term_font() { [[ -z "$term" ]] && get_term @@ -1585,10 +1508,6 @@ get_term_font() { (("$version" >= 4)) && term_font="${term_font^}" } -# }}} - -# Disk Usage {{{ - get_disk() { # df flags case "$os" in @@ -1650,10 +1569,6 @@ get_disk() { esac } -# }}} - -# Battery Usage {{{ - get_battery() { case "$os" in "Linux") @@ -1735,10 +1650,6 @@ get_battery() { esac } -# }}} - -# IP Address {{{ - get_local_ip() { case "$os" in "Linux") @@ -1779,19 +1690,11 @@ get_public_ip() { fi } -# }}} - -# Logged In Users {{{ - get_users() { users="$(who | awk '!seen[$1]++ {printf $1 ", "}')" users="${users%\,*}" } -# }}} - -# Birthday {{{ - get_birthday() { case "$os" in "Linux" | "GNU" | "iPhone OS") @@ -1861,10 +1764,6 @@ get_birthday() { birthday="${birthday/??:??*}" } -# }}} - -# Terminal colors {{{ - get_cols() { if [[ "$color_blocks" == "on" ]]; then # Convert the width to space chars. @@ -1894,13 +1793,7 @@ get_cols() { fi } -# }}} - -# }}} - -# Images {{{ - -# Wallpaper {{{ +# IMAGES get_wallpaper() { case "$os" in @@ -1954,10 +1847,6 @@ get_wallpaper() { [[ -z "$img" ]] && err "Image: Wallpaper detection failed, falling back to ascii mode." } -# }}} - -# Ascii {{{ - get_ascii() { if [[ ! -f "$ascii" || "$ascii" == "distro" ]]; then # Error message @@ -2030,10 +1919,6 @@ get_ascii() { export LC_ALL=C } -# }}} - -# Image {{{ - get_image() { # Fallback to ascii mode if imagemagick isn't installed. type -p convert >/dev/null 2>&1 || image="ascii" @@ -2234,11 +2119,6 @@ get_image() { img="$thumbnail_dir/$imgname" } -# }}} - -# Find w3m-img {{{ - -# Find w3mimgdisplay automatically get_w3m_img_path() { if [[ -x "$w3m_img_path" ]]; then return @@ -2261,9 +2141,17 @@ get_w3m_img_path() { fi } -# }}} +get_image_backend() { + if [[ -n "$ITERM_PROFILE" ]]; then + image_backend="iterm2" -# Display image {{{ + elif [[ "$(tycat 2>/dev/null)" ]]; then + image_backend="tycat" + + else + image_backend="w3m" + fi +} display_image() { if [[ "$image" != "ascii" ]]; then @@ -2287,35 +2175,13 @@ display_image() { fi } -# }}} - -# Get image backend {{{ - -get_image_backend() { - if [[ -n "$ITERM_PROFILE" ]]; then - image_backend="iterm2" - - elif [[ "$(tycat 2>/dev/null)" ]]; then - image_backend="tycat" - - else - image_backend="w3m" - fi -} - -# }}} - -# Screenshot {{{ +# SCREENSHOT take_scrot() { $scrot_cmd "${scrot_dir}${scrot_name}" [[ "$scrot_upload" == "on" ]] && scrot_upload } -# }}} - -# Screenshot Upload {{{ - scrot_upload() { if ! type -p curl >/dev/null 2>&1; then printf "%s\n" "[!] Install curl to upload images" @@ -2341,13 +2207,18 @@ scrot_upload() { printf "%s\n" "${image_url:-'[!] Image failed to upload'}" } -# }}} +scrot_args() { + scrot="on" + case "$2" in + "-"* | "") ;; + *) + scrot_name="${2##*/}" + scrot_dir="${2/$scrot_name}" + ;; + esac +} -# }}} - -# Text Formatting {{{ - -# Info {{{ +# TEXT FORMATTING info() { # $1 is the subtitle @@ -2402,10 +2273,6 @@ info() { fi } -# }}} - -# Prin {{{ - prin() { string="${1//$'\033[0m'}${2:+: $2}" @@ -2437,10 +2304,6 @@ prin() { prin=1 } -# }}} - -# Underline {{{ - get_underline() { if [[ "$underline_enabled" == "on" ]]; then underline="$(printf %"$length"s)" @@ -2448,10 +2311,6 @@ get_underline() { fi } -# }}} - -# Colors {{{ - colors() { # Reset colors/bold reset="\033[0m" @@ -2686,10 +2545,6 @@ color() { esac } -# }}} - -# Bold {{{ - bold() { case "$ascii_bold" in "on") ascii_bold="\033[1m" ;; @@ -2702,10 +2557,6 @@ bold() { esac } -# }}} - -# Linebreak {{{ - get_line_break() { line_break="​ " @@ -2713,42 +2564,29 @@ get_line_break() { info_height="$((info_height+=1))" } -# }}} - -# Trim whitespace {{{ - -# When a string is passed to 'echo' all trailing and leading -# whitespace is removed and inside the string multiple spaces are -# condensed into single spaces. -# -# The 'set -f/+f' is here so that 'echo' doesn't cause any expansion -# of special characters. -# -# The whitespace trim doesn't work with multiline strings so we use -# '${1//[[:space:]]/ }' to remove newlines beofre we trim the whitespace. trim() { + # When a string is passed to 'echo' all trailing and leading + # whitespace is removed and inside the string multiple spaces are + # condensed into single spaces. + # + # The 'set -f/+f' is here so that 'echo' doesn't cause any expansion + # of special characters. + # + # The whitespace trim doesn't work with multiline strings so we use + # '${1//[[:space:]]/ }' to remove newlines beofre we trim the whitespace. + set -f builtin echo -E ${1//[[:space:]]/ } set +f } -# }}} - -# }}} - -# Other {{{ - -# Error {{{ +# OTHER err() { err+="$(color 1)[!]\033[0m $1 " } -# }}} - -# Check for old flags {{{ - check_old_flags() { [[ -n "$osx_buildversion" ]] && err "Config: \$osx_buildversion is deprecated, use \$distro_shorthand instead." [[ -n "$osx_codename" ]] && err "Config: \$osx_codename is deprecated, use \$distro_shorthand instead." @@ -2756,10 +2594,6 @@ check_old_flags() { [[ "$cpu_cores" == "on" ]] && err "Config: \$cpu_cores='on' is deprecated, use \$cpu_cores='logical|physical|off' instead." } -# }}} - -# Get script directory {{{ - get_script_dir() { [[ "$script_dir" ]] && return @@ -2778,10 +2612,6 @@ get_script_dir() { script_dir="$(pwd -P)" } -# }}} - -# Source default config {{{ - get_default_config() { if [[ -f "/usr/share/neofetch/config" ]]; then default_config="/usr/share/neofetch/config" @@ -2805,10 +2635,6 @@ get_default_config() { fi } -# }}} - -# Source config {{{ - get_user_config() { # Check $config_file if [[ -f "$config_file" ]]; then @@ -2847,10 +2673,6 @@ get_user_config() { err "Config: Sourced user config ($config_file)" } -# }}} - -# Progress bars {{{ - bar() { # Get the values elapsed="$(($1 * progress_length / $2))" @@ -2872,19 +2694,11 @@ bar() { printf "%b\n" "${bar}${info_color}" } -# }}} - -# Cache {{{ - cache() { mkdir -p "$3/neofetch" echo "${1/*-}=\"$2\"" > "$3/neofetch/${1/*-}" } -# }}} - -# KDE config directory {{{ - kde_config_dir() { if [[ "$kde_config_dir" ]]; then return @@ -2903,20 +2717,17 @@ kde_config_dir() { fi } -# }}} - -# Terminal info {{{ -# -# Parse terminal config files to get -# info about padding. Due to how w3m-img -# works padding around the terminal throws -# off the cursor placement calculation in -# specific terminals. -# -# Note: This issue only seems to affect -# URxvt. - get_term_padding() { + # Terminal info + # + # Parse terminal config files to get + # info about padding. Due to how w3m-img + # works padding around the terminal throws + # off the cursor placement calculation in + # specific terminals. + # + # Note: This issue only seems to affect + # URxvt. [[ -z "$term" ]] && get_term case "$term" in @@ -2927,10 +2738,6 @@ get_term_padding() { esac } -# }}} - -# Dynamic prompt location {{{ - dynamic_prompt() { # Calculate image height in terminal cells. if [[ "$image" != "ascii" ]]; then @@ -2958,29 +2765,11 @@ dynamic_prompt() { printf "\n\n\n\n" } -# }}} - -# Scrot args {{{ - -scrot_args() { - scrot="on" - case "$2" in - "-"* | "") ;; - *) - scrot_name="${2##*/}" - scrot_dir="${2/$scrot_name}" - ;; - esac -} - -# }}} - -# Deprecated functions {{{ -# Neofetch 2.0 changed the names of a few variables. -# This function adds backwards compatibility for the -# old variable names. - old_functions() { + # Deprecated functions + # Neofetch 2.0 changed the names of a few variables. + # This function adds backwards compatibility for the + # old variable names. if type printinfo >/dev/null 2>&1; then print_info() { printinfo ; } get_wmtheme() { get_wm_theme; wmtheme="$wm_theme"; } @@ -2991,11 +2780,7 @@ old_functions() { fi } -# }}} - -# }}} - -# Usage {{{ +# FINISH UP usage() { printf "%s" " NEOFETCH @@ -3121,10 +2906,6 @@ usage() { printf "%s" " exit 1 } -# }}} - -# Args {{{ - get_args() { # Check the commandline flags early for '--config none/off' case "$@" in @@ -3293,10 +3074,6 @@ get_args() { done } -# }}} - -# Call Functions and Finish Up {{{ - main() { get_os get_default_config 2>/dev/null @@ -3365,5 +3142,3 @@ main() { } main "$@" - -# }}} diff --git a/neofetch.1 b/neofetch.1 index cbbb5377..403a3d46 100644 --- a/neofetch.1 +++ b/neofetch.1 @@ -1,4 +1,4 @@ -.TH NEOFETCH "1" "November 2016" "1.9.1" "User Commands" +.TH NEOFETCH "1" "November 2016" "2.0" "User Commands" .SH NAME neofetch \- simple system information script