From ffd5bfcbd0d0898e17bffa8f7145d617325e9c23 Mon Sep 17 00:00:00 2001 From: Dylan Araps Date: Wed, 2 Aug 2017 11:12:34 +1000 Subject: [PATCH 01/12] general: Enforce 100 chars per line. --- neofetch | 182 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 120 insertions(+), 62 deletions(-) diff --git a/neofetch b/neofetch index 5e36617c..13c6f84e 100755 --- a/neofetch +++ b/neofetch @@ -57,7 +57,8 @@ get_distro() { case "$os" in "Linux" | "BSD" | "MINIX") - if [[ "$(< /proc/version)" == *"Microsoft"* || "$kernel_version" == *"Microsoft"* ]]; then + if [[ "$(< /proc/version)" == *"Microsoft"* || + "$kernel_version" == *"Microsoft"* ]]; then case "$distro_shorthand" in "on") distro="$(lsb_release -sir) [Windows 10]" ;; "tiny") distro="Windows 10" ;; @@ -114,8 +115,10 @@ get_distro() { distro="Android $(getprop ro.build.version.release)" elif [[ -f "/etc/os-release" || -f "/usr/lib/os-release" ]]; then + files=("/etc/os-release" "/usr/lib/os-release") + # Source the os-release file - for file in /etc/os-release /usr/lib/os-release; do + for file in "${files[@]}"; do source "$file" && break done @@ -127,8 +130,8 @@ get_distro() { esac # Workarounds for distros that go against the os-release standard. - [[ -z "${distro// }" ]] && distro="$(awk '/BLAG/ {print $1; exit}' /etc/os-release /usr/lib/os-release)" - [[ -z "${distro// }" ]] && distro="$(awk -F'=' '{print $2; exit}' /etc/os-release /usr/lib/os-release)" + [[ -z "${distro// }" ]] && distro="$(awk '/BLAG/ {print $1; exit}')" "${files[@]}" + [[ -z "${distro// }" ]] && distro="$(awk -F'=' '{print $2; exit}')" "${files[@]}" else for release_file in /etc/*-release; do @@ -145,7 +148,9 @@ get_distro() { # Workarounds for FreeBSD based distros. [[ -f "/etc/pcbsd-lang" ]] && distro="PCBSD" [[ -f "/etc/rc.conf.trueos" ]] && distro="TrueOS" - [[ -f "/etc/pacbsd-release" ]] && distro="PacBSD" # /etc/pacbsd-release is an empty file + + # /etc/pacbsd-release is an empty file + [[ -f "/etc/pacbsd-release" ]] && distro="PacBSD" fi fi distro="$(trim_quotes "$distro")" @@ -493,9 +498,6 @@ get_packages() { type -p pacman-g2 >/dev/null && \ packages="$((packages+=$(pacman-g2 -Q | wc -l)))" - type -p cave >/dev/null && \ - packages="$((packages+=$(ls -d -1 /var/db/paludis/repositories/cross-installed/*/data/* /var/db/paludis/repositories/installed/data/* | wc -l)))" - type -p lvu >/dev/null && \ packages="$((packages+=$(lvu installed | wc -l)))" @@ -523,6 +525,11 @@ get_packages() { type -p alps >/dev/null && \ packages="$((packages+=$(alps showinstalled | wc -l)))" + if type -p cave >/dev/null; then + package_dir=(/var/db/paludis/repositories/{cross-installed,installed}/*/data/*) + packages="$((packages+=$(ls -d -1 "${package_dir[@]}" | wc -l)))" + fi + if type -p pkg >/dev/null; then case "$kernel_name" in "FreeBSD") packages="$((packages+=$(pkg info | wc -l)))" ;; @@ -697,7 +704,11 @@ get_wm() { ;; "Windows") - wm="$(tasklist | grep -m 1 -o -F -e "bugn" -e "Windawesome" -e "blackbox" -e "emerge" -e "litestep")" + wm="$(tasklist | grep -m 1 -o -F -e "bugn" \ + -e "Windawesome" \ + -e "blackbox" \ + -e "emerge" \ + -e "litestep")" [[ "$wm" == "blackbox" ]] && wm="bbLean (Blackbox)" wm="${wm:+$wm, }Explorer" ;; @@ -713,8 +724,14 @@ get_wm_theme() { ((de_run != 1)) && get_de case "$wm" in - "E16") wm_theme="$(awk -F "= " '/theme.name/ {print $2}' "${HOME}/.e16/e_config--0.0.cfg")";; - "Sawfish") wm_theme="$(awk -F ")" '/\(quote default-frame-style/ {print $2}' "${HOME}/.sawfish/custom")" ;; + "E16") + wm_theme="$(awk -F "= " '/theme.name/ {print $2}' "${HOME}/.e16/e_config--0.0.cfg")" + ;; + + "Sawfish") + wm_theme="$(awk -F ")" '/\(quote default-frame-style/ {print $2}' \ + "${HOME}/.sawfish/custom")" + ;; "Cinnamon" | "Muffin" | "Mutter (Muffin)") detheme="$(gsettings get org.cinnamon.theme name)" @@ -748,7 +765,8 @@ get_wm_theme() { "E17" | "Enlightenment") if type -p eet >/dev/null; then - wm_theme="$(eet -d "${HOME}/.e/e/config/standard/e.cfg" config | awk '/value \"file\" string.*.edj/ {print $4}')" + wm_theme="$(eet -d "${HOME}/.e/e/config/standard/e.cfg" config | \ + awk '/value \"file\" string.*.edj/ {print $4}')" wm_theme="${wm_theme##*/}" wm_theme="${wm_theme%.*}" fi @@ -772,7 +790,8 @@ get_wm_theme() { ob_file="rc" fi - wm_theme="$(awk -F "[<,>]" '/]" '//dev/null 2>&1 && song="$(mpc current)" - ;; + *) mpc >/dev/null 2>&1 && song="$(mpc current)" ;; esac [[ "$(trim "$song")" == "-" ]] && unset -v song @@ -1457,10 +1507,12 @@ get_resolution() { resolution="${resolution//x??@/ @ }" else - resolution="$(system_profiler SPDisplaysDataType | awk '/Resolution:/ {printf $2"x"$4" @ "$6"Hz, "}')" + resolution="$(system_profiler SPDisplaysDataType |\ + awk '/Resolution:/ {printf $2"x"$4" @ "$6"Hz, "}')" fi - scale_factor="$(/usr/libexec/PlistBuddy -c "Print DisplayAnyUserSets:0:0:Resolution" /Library/Preferences/com.apple.windowserver.plist)" + scale_factor="$(/usr/libexec/PlistBuddy -c "Print DisplayAnyUserSets:0:0:Resolution" \ + /Library/Preferences/com.apple.windowserver.plist)" # If no refresh rate is empty. [[ "$resolution" == *"@ Hz"* ]] && \ @@ -1499,9 +1551,15 @@ get_resolution() { *) if type -p xrandr >/dev/null; then case "$refresh_rate" in - "on") resolution="$(xrandr --nograb --current | awk 'match($0,/[0-9]*\.[0-9]*\*/) {printf $1 " @ " substr($0,RSTART,RLENGTH) "Hz, "}')" ;; + "on") + resolution="$(xrandr --nograb --current |\ + awk 'match($0,/[0-9]*\.[0-9]*\*/) {printf $1 " @ " + substr($0,RSTART,RLENGTH) "Hz, "}')" + ;; + "off") - resolution="$(xrandr --nograb --current | awk -F 'connected |\\+' '/ connected/ {printf $2 ", "}')" + resolution="$(xrandr --nograb --current | \ + awk -F 'connected |\\+' '/ connected/ {printf $2 ", "}')" resolution="${resolution/primary }" ;; esac From 72459ced1c3ae645a8a5ea7c1caeb5e7755e49a1 Mon Sep 17 00:00:00 2001 From: Dylan Araps Date: Wed, 2 Aug 2017 11:33:29 +1000 Subject: [PATCH 02/12] general: Enforce 100 chars per line. --- neofetch | 143 +++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 97 insertions(+), 46 deletions(-) diff --git a/neofetch b/neofetch index 13c6f84e..99e4d568 100755 --- a/neofetch +++ b/neofetch @@ -20,8 +20,8 @@ old_ifs="$IFS" export LC_ALL=C export LANG=C -# Add /usr/xpg4/bin, /usr/sbin, /sbin, and /usr/etc to PATH. -export PATH="/usr/xpg4/bin:/usr/sbin:/sbin:/usr/etc:${PATH}" +# Add more paths to $PATH. +export PATH="/usr/xpg4/bin:/usr/sbin:/sbin:/usr/etc:/usr/libexec:${PATH}" # Set no case match. shopt -s nocasematch @@ -821,7 +821,7 @@ get_wm_theme() { ;; "Quartz Compositor") - wm_theme="$(/usr/libexec/PlistBuddy -c "Print AppleAquaColorVariant" \ + wm_theme="$(PlistBuddy -c "Print AppleAquaColorVariant" \ "${HOME}/Library/Preferences/.GlobalPreferences.plist")" if [[ -z "$wm_theme" ]] || ((wm_theme == 1)); then @@ -1511,7 +1511,7 @@ get_resolution() { awk '/Resolution:/ {printf $2"x"$4" @ "$6"Hz, "}')" fi - scale_factor="$(/usr/libexec/PlistBuddy -c "Print DisplayAnyUserSets:0:0:Resolution" \ + scale_factor="$(PlistBuddy -c "Print DisplayAnyUserSets:0:0:Resolution" \ /Library/Preferences/com.apple.windowserver.plist)" # If no refresh rate is empty. @@ -1759,7 +1759,9 @@ get_term() { case "${name// }" in "${SHELL/*\/}" | *"sh" | "tmux"* | "screen" | "su"*) ;; "login"* | *"Login"* | "init" | "(init)") term="$(tty)" ;; - "ruby" | "1" | "systemd" | "sshd"* | "python"* | "USER"*"PID"* | "kdeinit"*) break ;; + "ruby" | "1" | "systemd" | "sshd"* | "python"* | "USER"*"PID"* | "kdeinit"*) + break + ;; "gnome-terminal-") term="gnome-terminal" ;; *"nvim") term="Neovim Terminal" ;; *"NeoVimServer"*) term="VimR Terminal" ;; @@ -1777,58 +1779,67 @@ get_term_font() { case "$term" in "alacritty"*) - term_font="$(awk -F ':|#' '/normal:/ {getline; print}' "${XDG_CONFIG_HOME}/alacritty/alacritty.yml")" + term_font="$(awk -F ':|#' '/normal:/ {getline; print}' \ + "${XDG_CONFIG_HOME}/alacritty/alacritty.yml")" term_font="${term_font/*family:}" term_font="${term_font/$'\n'*}" term_font="${term_font/\#*}" ;; "Apple_Terminal") - term_font="$(osascript -e 'tell application "Terminal" to font name of window frontmost')" + term_font="$(osascript -e 'tell application "Terminal" to + font name of window frontmost')" ;; "iTerm2") # Unfortunately the profile name is not unique, but it seems to be the only thing - # that identifies an active profile. There is the "id of current session of current window" - # thou, but that does not match to a guid in the plist. - # So, be warned! Collisions may occur! + # that identifies an active profile. There is the "id of current session of current win- + # dow" though, but that does not match to a guid in the plist. + # So, be warned, collisions may occur! # See: https://groups.google.com/forum/#!topic/iterm2-discuss/0tO3xZ4Zlwg - local current_profile_name - current_profile_name="$(osascript -e 'tell application "iTerm2" to profile name of current session of current window')" + local current_profile_name profiles_count profile_name diff_font none_ascii + + current_profile_name="$(osascript -e 'tell application "iTerm2" to profile name + of current session of current window')" # Warning: Dynamic profiles are not taken into account here! # https://www.iterm2.com/documentation-dynamic-profiles.html # Count Guids in "New Bookmarks"; they should be unique - local profiles_count - profiles_count="$(/usr/libexec/PlistBuddy -c "Print :New\ Bookmarks:" ~/Library/Preferences/com.googlecode.iterm2.plist | grep -c "Guid")" + profiles_count="$(PlistBuddy -c "Print :New\ Bookmarks:" \ + "" |\ + grep -c "Guid")" + + font_file="${HOME}/Library/Preferences/com.googlecode.iterm2.plist" for ((i=0; i<=profiles_count; i++)); do - local profile_name - profile_name="$(/usr/libexec/PlistBuddy -c "Print :New\ Bookmarks:${i}:Name:" ~/Library/Preferences/com.googlecode.iterm2.plist)" + profile_name="$(PlistBuddy -c "Print :New\ Bookmarks:${i}:Name:" "$font_file")" if [[ "$profile_name" == "$current_profile_name" ]]; then # "Normal Font" - term_font="$(/usr/libexec/PlistBuddy -c "Print :New\ Bookmarks:${i}:Normal\ Font:" ~/Library/Preferences/com.googlecode.iterm2.plist)" + term_font="$(PlistBuddy -c "Print :New\ Bookmarks:${i}:Normal\ Font:" \ + "$font_file")" + # Font for non-ascii characters # Only check for a different non-ascii font, if the user checked # the "use a different font for non-ascii text" switch. - local use_different_font - use_different_font="$(/usr/libexec/PlistBuddy -c "Print :New\ Bookmarks:${i}:Use\ Non-ASCII\ Font:" ~/Library/Preferences/com.googlecode.iterm2.plist)" + diff_font="$(PlistBuddy -c "Print :New\ Bookmarks:${i}:Use\ Non-ASCII\ Font:" \ + "$font_file")" - if [[ "$use_different_font" == "true" ]]; then - local non_ascii_font - non_ascii_font="$(/usr/libexec/PlistBuddy -c "Print :New\ Bookmarks:${i}:Non\ Ascii\ Font:" ~/Library/Preferences/com.googlecode.iterm2.plist)" + if [[ "$diff_font" == "true" ]]; then + non_ascii="$(PlistBuddy -c "Print :New\ Bookmarks:${i}:Non\ Ascii\ Font:" \ + "$font_file")" - [[ "$term_font" != "$non_ascii_font" ]] && \ - term_font="$term_font (normal) / $non_ascii_font (non-ascii)" + [[ "$term_font" != "$non_ascii" ]] && \ + term_font="$term_font (normal) / $non_ascii (non-ascii)" fi fi done ;; "deepin-terminal"*) - term_font="$(awk -F '=' '/font=/ {a=$2} /font_size/ {b=$2} END{print a " " b}' "${XDG_CONFIG_HOME}/deepin/deepin-terminal/config.conf")" + term_font="$(awk -F '=' '/font=/ {a=$2} /font_size/ {b=$2} END{print a " " b}' \ + "${XDG_CONFIG_HOME}/deepin/deepin-terminal/config.conf")" ;; "Hyper"*) @@ -1844,9 +1855,11 @@ get_term_font() { for i in "${konsole_instances[@]}"; do konsole_sessions=($(qdbus "${i}" | grep '/Sessions/')) + # TODO: Swap to a while loop here. for session in "${konsole_sessions[@]}"; do if ((child == "$(qdbus "${i}" "${session}" processId)")); then - profile="$(qdbus "${i}" "${session}" environment | awk -F '=' '/KONSOLE_PROFILE_NAME/ {print $2}')" + profile="$(qdbus "${i}" "${session}" environment |\ + awk -F '=' '/KONSOLE_PROFILE_NAME/ {print $2}')" break fi done @@ -1856,15 +1869,18 @@ get_term_font() { # We could have two profile files for the same profile name, take first match profile_filename="$(grep -l "Name=${profile}" "${HOME}"/.local/share/konsole/*.profile)" profile_filename="${profile_filename/$'\n'*}" - [[ "$profile_filename" ]] && term_font="$(awk -F '=|,' '/Font=/ {print $2 " " $3}' "$profile_filename")" + [[ "$profile_filename" ]] && \ + term_font="$(awk -F '=|,' '/Font=/ {print $2 " " $3}' "$profile_filename")" ;; "lxterminal"*) - term_font="$(awk -F '=' '/fontname=/ {print $2; exit}' "${XDG_CONFIG_HOME}/lxterminal/lxterminal.conf")" + term_font="$(awk -F '=' '/fontname=/ {print $2; exit}' \ + "${XDG_CONFIG_HOME}/lxterminal/lxterminal.conf")" ;; "mate-terminal") - # To get the actual config we have to create a temporarily file with the --save-config option. + # To get the actual config we have to create a temporarily file with the + # --save-config option. mateterm_config="/tmp/mateterm.cfg" # Ensure /tmp exists and we do not overwrite anything. @@ -1876,11 +1892,13 @@ get_term_font() { role="${role//\"}" profile="$(awk -F '=' -v r="$role" \ - '$0~r {getline; if(/Maximized/) getline; if(/Fullscreen/) getline; id=$2"]"} + '$0~r {getline; if(/Maximized/) getline; + if(/Fullscreen/) getline; id=$2"]"} $0~id {if(id) {getline; print $2; exit}}' "$mateterm_config")" rm -f "$mateterm_config" + # TODO: Limit line length here. if [[ "$(gsettings get org.mate.terminal.profile:/org/mate/terminal/profiles/"${profile}"/ use-system-font)" == "true" ]]; then term_font="$(gsettings get org.mate.interface monospace-font-name)" else @@ -1896,23 +1914,31 @@ get_term_font() { "pantheon"*) term_font="$(gsettings get org.pantheon.terminal.settings font)" - [[ -z "${term_font//\'}" ]] && term_font="$(gsettings get org.gnome.desktop.interface monospace-font-name)" + + [[ -z "${term_font//\'}" ]] && \ + term_font="$(gsettings get org.gnome.desktop.interface monospace-font-name)" + term_font="$(trim_quotes "$term_font")" ;; "sakura"*) - term_font="$(awk -F '=' '/^font=/ {print $2; exit}' "${XDG_CONFIG_HOME}/sakura/sakura.conf")" + term_font="$(awk -F '=' '/^font=/ {print $2; exit}' \ + "${XDG_CONFIG_HOME}/sakura/sakura.conf")" ;; "terminology") - term_font="$(strings "${XDG_CONFIG_HOME}/terminology/config/standard/base.cfg" | awk '/^font\.name$/{print a}{a=$0}')" + term_font="$(strings "${XDG_CONFIG_HOME}/terminology/config/standard/base.cfg" |\ + awk '/^font\.name$/{print a}{a=$0}')" term_font="${term_font/.pcf}" term_font="${term_font/:*}" ;; "termite") - [[ -f "${XDG_CONFIG_HOME}/termite/config" ]] && termite_config="${XDG_CONFIG_HOME}/termite/config" - term_font="$(awk -F '= ' '/\[options\]/ {opt=1} /^\s*font/ {if(opt==1) a=$2; opt=0} END{print a}' "/etc/xdg/termite/config" "$termite_config")" + [[ -f "${XDG_CONFIG_HOME}/termite/config" ]] && \ + termite_config="${XDG_CONFIG_HOME}/termite/config" + + term_font="$(awk -F '= ' '/\[options\]/ {opt=1} /^\s*font/ {if(opt==1) a=$2; opt=0} + END{print a}' "/etc/xdg/termite/config" "$termite_config")" ;; "urxvt" | "urxvtd" | "rxvt-unicode" | "xterm") @@ -1933,7 +1959,8 @@ get_term_font() { ;; "xfce4-terminal") - term_font="$(awk -F '=' '/^FontName/ {a=$2} /^FontUseSystem=TRUE/ {a=$0} END{print a}' "${XDG_CONFIG_HOME}/xfce4/terminal/terminalrc")" + term_font="$(awk -F '=' '/^FontName/ {a=$2} /^FontUseSystem=TRUE/ {a=$0} END{print a}' \ + "${XDG_CONFIG_HOME}/xfce4/terminal/terminalrc")" if [[ "$term_font" == "FontUseSystem=TRUE" ]]; then term_font="$(gsettings get org.gnome.desktop.interface monospace-font-name)" @@ -1953,7 +1980,10 @@ get_disk() { # Get "df" version. df_version="$(df --version 2>&1)" case "$df_version" in - *"blocks"*) err "Your version of df cannot be used due to the non-standard flags" ; return ;; # Haiku + *"blocks"*) # Haiku + err "Your version of df cannot be used due to the non-standard flags" + return + ;; *"IMitv"*) df_flags=(-P -g) ;; # AIX *"befhikm"*) df_flags=(-P -k) ;; # IRIX *) df_flags=(-P -h) ;; @@ -1967,8 +1997,10 @@ get_disk() { IFS="$old_ifs" # Stop here if 'df' fails to print disk info. - [[ -z "${disks[*]}" ]] && \ - { err "Disk: df failed to print the disks, make sure the disk_show array is set properly."; return; } + if [[ -z "${disks[*]}" ]]; then + err "Disk: df failed to print the disks, make sure the disk_show array is set properly." + return + fi for disk in "${disks[@]}"; do # Create a second array and make each element split at whitespace this time. @@ -1976,7 +2008,9 @@ get_disk() { disk_perc="${disk_info[4]/'%'}" case "$df_version" in - *"befhikm"*) disk="$((disk_info[2]/1024/1024))G / $((disk_info[1]/1024/1024))G (${disk_perc}%)" ;; + *"befhikm"*) + disk="$((disk_info[2]/1024/1024))G / $((disk_info[1]/1024/1024))G (${disk_perc}%)" + ;; *) disk="${disk_info[2]/i} / ${disk_info[1]/i} (${disk_perc}%)" ;; esac @@ -2158,11 +2192,27 @@ get_install_date() { ls_prog="$(ls --version 2>&1)" case "$ls_prog" in - *"BusyBox"*) install_date="$(ls -tdce "$install_file" | awk '{printf $10 " " $7 " " $8 " " $9}')" ;; - *"crtime"*) install_date="$(ls -tdcE "$install_file" | awk '{printf $6 " " $7}')" ;; # xpg4 (Solaris) - *"ACFHLRSZ"*) install_date="$(ls -dl "$install_file" | awk '{printf $6 " " $7}')" ;; # Toybox - *"GNU coreutils"*) install_date="$(ls -tcd --full-time "$install_file" | awk '{printf $6 " " $7}')" ;; - *"ACFHLNRS"* | *"RadC1xmnlog"*) err "Install Date doesn't work because your 'ls' does not support showing full date and time."; return ;; # AIX ls / IRIX ls + *"BusyBox"*) + install_date="$(ls -tdce "$install_file" | awk '{printf $10 " " $7 " " $8 " " $9}')" + ;; + + *"crtime"*) # xpg4 (Solaris) + install_date="$(ls -tdcE "$install_file" | awk '{printf $6 " " $7}')" + ;; + + *"ACFHLRSZ"*) # Toybox + install_date="$(ls -dl "$install_file" | awk '{printf $6 " " $7}')" + ;; + + *"GNU coreutils"*) + install_date="$(ls -tcd --full-time "$install_file" | awk '{printf $6 " " $7}')" + ;; + + *"ACFHLNRS"* | *"RadC1xmnlog"*) # AIX ls / IRIX ls + err "Install Date doesn't work because your 'ls' doesn't support full date/time." + return + ;; + *) install_date="$(ls -dlctT "$install_file" | awk '{printf $9 " " $6 " "$7 " " $8}')" ;; esac @@ -2256,7 +2306,8 @@ image_backend() { *) err "Image: Unknown image backend specified '$image_backend'." - err "Image: Valid backends are: 'ascii', 'caca', 'catimg', 'jp2a', 'iterm2', 'off', 'sixel', 'termpix', 'tycat', 'w3m')" + err "Image: Valid backends are: 'ascii', 'caca', 'catimg', 'jp2a', 'iterm2', + 'off', 'sixel', 'termpix', 'tycat', 'w3m')" err "Image: Falling back to ascii mode." get_ascii ;; From 3a41c45b6131b53e7e6556f7ca4b131f2095e532 Mon Sep 17 00:00:00 2001 From: Dylan Araps Date: Wed, 2 Aug 2017 11:47:15 +1000 Subject: [PATCH 03/12] general: Enforce 100 chars per line. --- neofetch | 146 +++++++++++++++++++++++++++++++++++++---------------- neofetch.1 | 41 +++++++++------ 2 files changed, 127 insertions(+), 60 deletions(-) diff --git a/neofetch b/neofetch index 99e4d568..a18de264 100755 --- a/neofetch +++ b/neofetch @@ -2429,7 +2429,10 @@ get_wallpaper() { case "$de" in "MATE"*) image="$(gsettings get org.mate.background picture-filename)" ;; - "Xfce"*) image="$(xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/workspace0/last-image)" ;; + "Xfce"*) + image="$(xfconf-query -c xfce4-desktop -p \ + "/backdrop/screen0/monitor0/workspace0/last-image")" + ;; "Cinnamon"*) image="$(gsettings get org.cinnamon.desktop.background picture-uri)" @@ -2441,7 +2444,8 @@ get_wallpaper() { image="$(awk -F\' '/feh/ {printf $2}' "${HOME}/.fehbg")" elif type -p nitrogen >/dev/null; then - image="$(awk -F'=' '/file/ {printf $2;exit;}' "${XDG_CONFIG_HOME}/nitrogen/bg-saved.cfg")" + image="$(awk -F'=' '/file/ {printf $2;exit;}' \ + "${XDG_CONFIG_HOME}/nitrogen/bg-saved.cfg")" else image="$(gsettings get org.gnome.desktop.background picture-uri)" @@ -2544,7 +2548,8 @@ get_term_size() { # If the ID was found get the window size. if [[ "$current_window" ]]; then - term_size="$(xwininfo -id "$current_window" | awk -F ': ' '/Width|Height/ {printf $2 " "}')" + term_size="$(xwininfo -id "$current_window" |\ + awk -F ': ' '/Width|Height/ {printf $2 " "}')" term_width="${term_size/ *}" term_height="${term_size/${term_width}}" else @@ -2680,15 +2685,20 @@ make_thumbnail() { display_image() { case "$image_backend" in "caca") - img2txt -W "$((width / font_width)))" -H "$((height / font_height))" --gamma=0.6 "$image" || to_off "Image: libcaca failed to display the image." + img2txt -W "$((width / font_width)))" \ + -H "$((height / font_height))" \ + --gamma=0.6 "$image" ||\ + to_off "Image: libcaca failed to display the image." ;; "catimg") - catimg -w "$((width * 2 / font_width))" -r 0 "$image" || to_off "Image: catimg failed to display the image." + catimg -w "$((width * 2 / font_width))" -r 0 "$image" ||\ + to_off "Image: catimg failed to display the image." ;; "jp2a") - jp2a --width="$((width / font_width))" --colors "$image" || to_off "Image: jp2a failed to display the image." + jp2a --width="$((width / font_width))" --colors "$image" ||\ + to_off "Image: jp2a failed to display the image." ;; "sixel") @@ -2696,11 +2706,13 @@ display_image() { ;; "termpix") - termpix --width "$((width / font_width))" "$image" || to_off "Image: termpix failed to display the image." + termpix --width "$((width / font_width))" "$image" ||\ + to_off "Image: termpix failed to display the image." ;; "iterm2") - iterm_cmd="\033]1337;File=width=${width}px;height=${height}px;inline=1:$(base64 < "$image")" + image="$(base64 < "$image")" + iterm_cmd="\033]1337;File=width=${width}px;height=${height}px;inline=1:${image}" # Tmux requires an additional escape sequence for this to work. [[ -n "$TMUX" ]] && iterm_cmd="\033Ptmux;\033${iterm_cmd}\033\\" @@ -2709,7 +2721,8 @@ display_image() { ;; "tycat") - tycat "$image" || to_off "Image: tycat failed to display the image." + tycat "$image" ||\ + to_off "Image: tycat failed to display the image." ;; "w3m") @@ -2719,7 +2732,8 @@ display_image() { # appearing in specific terminal emulators. sleep 0.05 printf "%b\n" "0;1;$xoffset;$yoffset;$width;$height;;;;;$image\n4;\n3;" |\ - "${w3m_img_path:-false}" -bg "$background_color" >/dev/null 2>&1 || to_off "Image: w3m-img failed to display the image." + "${w3m_img_path:-false}" -bg "$background_color" >/dev/null 2>&1 ||\ + to_off "Image: w3m-img failed to display the image." zws="\xE2\x80\x8B\x20" ;; @@ -2777,12 +2791,14 @@ scrot_upload() { case "$image_host" in "teknik") - image_url="$(curl -sf -F file="@${image_file};type=image/png" "https://api.teknik.io/v1/Upload")" + image_url="$(curl -sf -F file="@${image_file};type=image/png" \ + "https://api.teknik.io/v1/Upload")" image_url="$(awk -F 'url:|,' '{printf $2}' <<< "${image_url//\"}")" ;; "imgur") - image_url="$(curl -sH "Authorization: Client-ID 0e8b44d15e9fc95" -F image="@${image_file}" "https://api.imgur.com/3/upload")" + image_url="$(curl -sH "Authorization: Client-ID 0e8b44d15e9fc95" \ + -F image="@${image_file}" "https://api.imgur.com/3/upload")" image_url="$(awk -F 'id:|,' '{printf $2}' <<< "${image_url//\"}")" [[ "$image_url" ]] && image_url="https://i.imgur.com/${image_url}.png" ;; @@ -2920,7 +2936,8 @@ prin() { get_underline() { if [[ "$underline_enabled" == "on" ]]; then printf -v underline "%${length}s" - printf "%b\n" "${text_padding:+\033[${text_padding}C}${zws}${underline_color}${underline// /$underline_char}${reset} " + printf "%b%b\n" "${text_padding:+\033[${text_padding}C}${zws}${underline_color}" \ + "${underline// /$underline_char}${reset} " unset -v length fi prin=1 @@ -3620,7 +3637,8 @@ get_distro_colors() { ascii_file="void" ;; - *"[Windows 10]"* | *"on Windows 10"* | "Windows 8"* | "Windows 10"* | "windows10" | "windows8" ) + *"[Windows 10]"* | *"on Windows 10"* | "Windows 8"* |\ + "Windows 10"* | "windows10" | "windows8" ) set_colors 6 7 ascii_file="windows10" ;; @@ -3949,41 +3967,67 @@ old_functions() { } old_options() { - [[ -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." - [[ "$cpu_cores" == "on" ]] && err "Config: cpu_cores='on' is deprecated, use cpu_cores='logical|physical|off' instead." - [[ -n "$image" ]] && { err "Config: \$image is deprecated, use \$image_source instead."; image_source="$image"; } + [[ -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." + [[ "$cpu_cores" == "on" ]] && \ + err "Config: cpu_cores='on' is deprecated, use cpu_cores='logical|physical|off' instead." + [[ -n "$image" ]] && \ + { err "Config: \$image is deprecated, use \$image_source instead."; image_source="$image"; } # All progress_ variables were changed to bar_. - [[ -n "$progress_char" ]] && err "Config: \$progress_char is deprecated, use \$bar_char_elapsed and \$bar_char_total instead." - [[ -n "$progress_border" ]] && { err "Config: \$progress_border is deprecated, use \$bar_border instead."; bar_border="$progress_border"; } - [[ -n "$progress_length" ]] && { err "Config: \$progress_length is deprecated, use \$bar_length instead."; bar_length="$progress_length"; } - [[ -n "$progress_color_elapsed" ]] && { err "Config: \$progress_color_elapsed is deprecated, use \$bar_color_elapsed instead."; bar_color_elapsed="$progress_color_elapsed"; } - [[ -n "$progress_color_total" ]] && { err "Config: \$progress_color_total is deprecated, use \$bar_color_total instead."; bar_color_total="$progress_color_total"; } + [[ -n "$progress_char" ]] && \ + err "Config: \$progress_char is deprecated, use \$bar_char_{elapsed,total} instead." + [[ -n "$progress_border" ]] && \ + { err "Config: \$progress_border is deprecated, use \$bar_border instead."; \ + bar_border="$progress_border"; } + [[ -n "$progress_length" ]] && \ + { err "Config: \$progress_length is deprecated, use \$bar_length instead."; \ + bar_length="$progress_length"; } + [[ -n "$progress_color_elapsed" ]] && \ + { err "Config: \$progress_color_elapsed is deprecated, use \$bar_color_elapsed instead."; \ + bar_color_elapsed="$progress_color_elapsed"; } + [[ -n "$progress_color_total" ]] && \ + { err "Config: \$progress_color_total is deprecated, use \$bar_color_total instead."; \ + bar_color_total="$progress_color_total"; } # All cpufreq values were changed in 3.0. - [[ "$speed_type" == "current" ]] && err "Config: speed_type='current' is deprecated, use speed_type='scaling_cur_freq' instead." - [[ "$speed_type" == "min" ]] && err "Config: speed_type='min' is deprecated, use speed_type='scaling_min_freq' instead." - [[ "$speed_type" == "max" ]] && err "Config: speed_type='max' is deprecated, use speed_type='scaling_max_freq' instead." - [[ "$speed_type" == "bios" ]] && err "Config: speed_type='bios' is deprecated, use speed_type='bios_limit' instead." + [[ "$speed_type" == "current" ]] && \ + err "Config: speed_type='current' is deprecated, use speed_type='scaling_cur_freq' instead." + [[ "$speed_type" == "min" ]] && \ + err "Config: speed_type='min' is deprecated, use speed_type='scaling_min_freq' instead." + [[ "$speed_type" == "max" ]] && \ + err "Config: speed_type='max' is deprecated, use speed_type='scaling_max_freq' instead." + [[ "$speed_type" == "bios" ]] && \ + err "Config: speed_type='bios' is deprecated, use speed_type='bios_limit' instead." # Ascii_logo_size was removed in 3.0. - [[ "$ascii_logo_size" ]] && err "Config: ascii_logo_size is deprecated, use ascii_distro='{alpine,arch,crux,gentoo,openbsd,void}_small' instead." + [[ "$ascii_logo_size" ]] && \ + err "Config: ascii_logo_size is deprecated, use ascii_distro='{distro}_small' instead." # $start and $end were replaced with ${block_range[@]} in 3.0. - [[ "$start" && "$end" ]] && { err "Config: \$start and \$end are deprecated, use block_range=(0 7) instead."; block_range=("$start" "$end"); } + [[ "$start" && "$end" ]] && \ + { err "Config: \$start and \$end are deprecated, use block_range=(0 7) instead."; \ + block_range=("$start" "$end"); } # Fahrenheit support was added to CPU so the options were changed. - [[ "$cpu_temp" == "on" ]] && { err "Config: cpu_temp='on' is deprecated, use cpu_temp='C' or 'F' instead."; cpu_temp="C"; } + [[ "$cpu_temp" == "on" ]] && \ + { err "Config: cpu_temp='on' is deprecated, use cpu_temp='C' or 'F' instead."; + cpu_temp="C"; } # Birthday was renamed to Install Date in 3.0 - [[ -n "$birthday_time" ]] && { err "Config: \$birthday_time is deprecated, use \3install_time instead."; install_time="$birthday_time"; } + [[ -n "$birthday_time" ]] && \ + { err "Config: \$birthday_time is deprecated, use \3install_time instead."; \ + install_time="$birthday_time"; } # Scrot dir was removed in 3.1.0. [[ -n "$scrot_dir" ]] && scrot_dir= # cpu_shorthand was deprecated in 3.3.0 - [[ -n "$cpu_shorthand" ]] && { err "Config: \$cpu_shorthand is deprecated, use \$cpu_brand, \$cpu_cores, and \$cpu_speed instead."; } + [[ -n "$cpu_shorthand" ]] && \ + { err "Config: \$cpu_shorthand is deprecated, use \$cpu_brand, \$cpu_cores, and + \$cpu_speed instead."; } } cache_uname() { @@ -4124,7 +4168,7 @@ INFO: --disable infoname Allows you to disable an info line from appearing in the output. - NOTE: You can supply multiple args. eg. 'neofetch --disable cpu gpu disk shell' + NOTE: You can supply multiple args. eg. 'neofetch --disable cpu gpu' --os_arch on/off Hide/Show OS architecture. --speed_type type Change the type of cpu speed to display. @@ -4135,7 +4179,8 @@ INFO: --speed_shorthand on/off Whether or not to show decimals in CPU speed. - NOTE: This flag is not supported in systems with CPU speed less than 1 GHz. + NOTE: This flag is not supported in systems with CPU speed less than + 1 GHz. --cpu_brand on/off Enable/Disable CPU brand in output. --cpu_cores type Whether or not to display the number of CPU cores @@ -4148,7 +4193,8 @@ INFO: NOTE: This only works on Linux and BSD. - NOTE: For FreeBSD and NetBSD-based systems, you need to enable coretemp kernel module. This only supports newer Intel processors. + NOTE: For FreeBSD and NetBSD-based systems, you need to enable + coretemp kernel module. This only supports newer Intel processors. --distro_shorthand on/off Shorten the output of distro (tiny, on, off) @@ -4222,9 +4268,11 @@ BARS: IMAGE BACKEND: --backend backend Which image backend to use. - Possible values: 'ascii', 'caca', 'catimg', 'jp2a', 'iterm2', 'off', 'sixel', 'tycat', 'w3m' + Possible values: 'ascii', 'caca', 'catimg', 'jp2a', 'iterm2', 'off', + 'sixel', 'tycat', 'w3m' --source source Which image or ascii file to use. - Possible values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/' + Possible values: 'auto', 'ascii', 'wallpaper', '/path/to/img', + '/path/to/ascii', '/path/to/dir/' --ascii source Shortcut to use 'ascii' backend. --caca source Shortcut to use 'caca' backend. --catimg source Shortcut to use 'catimg' backend. @@ -4236,7 +4284,8 @@ IMAGE BACKEND: --w3m source Shortcut to use 'w3m' backend. --off Shortcut to use 'off' backend. - NOTE: 'source; can be any of the following: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/' + NOTE: 'source; can be any of the following: 'auto', 'ascii', 'wallpaper', '/path/to/img', + '/path/to/ascii', '/path/to/dir/' ASCII: --ascii_colors x x x x x x Colors to print the ascii art @@ -4248,9 +4297,11 @@ ASCII: NOTE: Ubuntu has flavor variants. - NOTE: Change this to 'Lubuntu', 'Xubuntu', 'Ubuntu-GNOME', 'Ubuntu-Studio' or 'Ubuntu-Budgie' to use the flavors. + NOTE: Change this to 'Lubuntu', 'Xubuntu', 'Ubuntu-GNOME', + 'Ubuntu-Studio' or 'Ubuntu-Budgie' to use the flavors. - NOTE: Alpine, Arch, CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, and Void have a smaller logo variant. + NOTE: Alpine, Arch, CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, + OpenBSD, and Void have a smaller logo variant. NOTE: Use '{distro name}_small' to use the small variants. @@ -4260,7 +4311,8 @@ ASCII: Possible values: bar, infobar, barinfo, off IMAGE: - --loop Redraw the image constantly until Ctrl+C is used. This fixes issues in some terminals emulators when using image mode. + --loop Redraw the image constantly until Ctrl+C is used. This fixes issues + in some terminals emulators when using image mode. --size 00px | --size 00% How to size the image. Possible values: auto, 00px, 00%, none --crop_mode mode Which crop mode to use @@ -4277,7 +4329,8 @@ IMAGE: This only works with w3m. --gap num Gap between image and text. - NOTE: --gap can take a negative value which will move the text closer to the left side. + NOTE: --gap can take a negative value which will move the text + closer to the left side. --clean Delete cached files and thumbnails. @@ -4439,7 +4492,8 @@ get_args() { # Image backend "--backend") image_backend="$2" ;; "--source") image_source="$2" ;; - "--ascii" | "--caca" | "--catimg" | "--jp2a" | "--iterm2" | "--off" | "--sixel" | "--termpix" | "--tycat" | "--w3m") + "--ascii" | "--caca" | "--catimg" | "--jp2a" | "--iterm2" | "--off" | "--sixel" |\ + "--termpix" | "--tycat" | "--w3m") image_backend="${1/--}" case "$2" in "-"* | "") ;; @@ -4512,7 +4566,11 @@ get_args() { "-vv") set -x; verbose="on" ;; "--help") usage ;; "--version") version ;; - "--gen-man") help2man -n"A fast, highly customizable system info script" -N ./neofetch -o neofetch.1; exit 1 ;; + "--gen-man") + help2man -n "A fast, highly customizable system info script" \ + -N ./neofetch -o neofetch.1 + exit 1 + ;; esac shift diff --git a/neofetch.1 b/neofetch.1 index 21e96bd8..0980355e 100644 --- a/neofetch.1 +++ b/neofetch.1 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH NEOFETCH "1" "July 2017" "Neofetch 3.2.1-git" "User Commands" +.TH NEOFETCH "1" "August 2017" "Neofetch 3.2.1-git" "User Commands" .SH NAME Neofetch \- A fast, highly customizable system info script .SH SYNOPSIS @@ -18,7 +18,7 @@ NOTE: Every launch flag has a config option. Allows you to disable an info line from appearing in the output. .IP -NOTE: You can supply multiple args. eg. 'neofetch \fB\-\-disable\fR cpu gpu disk shell' +NOTE: You can supply multiple args. eg. 'neofetch \fB\-\-disable\fR cpu gpu' .TP \fB\-\-os_arch\fR on/off Hide/Show OS architecture. @@ -32,8 +32,9 @@ NOTE: This only supports Linux with cpufreq. .TP \fB\-\-speed_shorthand\fR on/off Whether or not to show decimals in CPU speed. -.IP -NOTE: This flag is not supported in systems with CPU speed less than 1 GHz. +.TP +NOTE: This flag is not supported in systems with CPU speed less than +1 GHz. .TP \fB\-\-cpu_brand\fR on/off Enable/Disable CPU brand in output. @@ -51,8 +52,9 @@ Hide/Show cpu speed. Hide/Show cpu temperature. .IP NOTE: This only works on Linux and BSD. -.IP -NOTE: For FreeBSD and NetBSD\-based systems, you need to enable coretemp kernel module. This only supports newer Intel processors. +.TP +NOTE: For FreeBSD and NetBSD\-based systems, you need to enable +coretemp kernel module. This only supports newer Intel processors. .TP \fB\-\-distro_shorthand\fR on/off Shorten the output of distro (tiny, on, off) @@ -182,11 +184,13 @@ Possible values: bar, infobar, barinfo, off .TP \fB\-\-backend\fR backend Which image backend to use. -Possible values: 'ascii', 'caca', 'catimg', 'jp2a', 'iterm2', 'off', 'sixel', 'tycat', 'w3m' +Possible values: 'ascii', 'caca', 'catimg', 'jp2a', 'iterm2', 'off', +\&'sixel', 'tycat', 'w3m' .TP \fB\-\-source\fR source Which image or ascii file to use. -Possible values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/' +Possible values: 'auto', 'ascii', 'wallpaper', '/path/to/img', +\&'/path/to/ascii', '/path/to/dir/' .TP \fB\-\-ascii\fR source Shortcut to use 'ascii' backend. @@ -218,7 +222,8 @@ Shortcut to use 'w3m' backend. \fB\-\-off\fR Shortcut to use 'off' backend. .IP -NOTE: 'source; can be any of the following: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/' +NOTE: 'source; can be any of the following: 'auto', 'ascii', 'wallpaper', '/path/to/img', +\&'/path/to/ascii', '/path/to/dir/' .SS "ASCII:" .TP \fB\-\-ascii_colors\fR x x x x x x @@ -232,10 +237,12 @@ NOTE: Arch and Ubuntu have 'old' logo variants. NOTE: Use 'arch_old' or 'ubuntu_old' to use the old logos. .IP NOTE: Ubuntu has flavor variants. -.IP -NOTE: Change this to 'Lubuntu', 'Xubuntu', 'Ubuntu\-GNOME', 'Ubuntu\-Studio' or 'Ubuntu\-Budgie' to use the flavors. -.IP -NOTE: Alpine, Arch, CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, and Void have a smaller logo variant. +.TP +NOTE: Change this to 'Lubuntu', 'Xubuntu', 'Ubuntu\-GNOME', +\&'Ubuntu\-Studio' or 'Ubuntu\-Budgie' to use the flavors. +.TP +NOTE: Alpine, Arch, CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, +OpenBSD, and Void have a smaller logo variant. .IP NOTE: Use '{distro name}_small' to use the small variants. .TP @@ -249,7 +256,8 @@ Possible values: bar, infobar, barinfo, off .SS "IMAGE:" .TP \fB\-\-loop\fR -Redraw the image constantly until Ctrl+C is used. This fixes issues in some terminals emulators when using image mode. +Redraw the image constantly until Ctrl+C is used. This fixes issues +in some terminals emulators when using image mode. .TP \fB\-\-size\fR 00px | \fB\-\-size\fR 00% How to size the image. @@ -278,8 +286,9 @@ This only works with w3m. .TP \fB\-\-gap\fR num Gap between image and text. -.IP -NOTE: \fB\-\-gap\fR can take a negative value which will move the text closer to the left side. +.TP +NOTE: \fB\-\-gap\fR can take a negative value which will move the text +closer to the left side. .TP \fB\-\-clean\fR Delete cached files and thumbnails. From 40e77788dd547082086dc24822d3b0ad1cef4032 Mon Sep 17 00:00:00 2001 From: Dylan Araps Date: Wed, 2 Aug 2017 12:29:09 +1000 Subject: [PATCH 04/12] general: Enforce 100 chars per line. --- neofetch | 41 +++++++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/neofetch b/neofetch index a18de264..18053f90 100755 --- a/neofetch +++ b/neofetch @@ -796,7 +796,7 @@ get_wm_theme() { "PekWM") [[ -f "${HOME}/.pekwm/config" ]] && \ - wm_theme="$(awk -F "/" '/Theme/ {gsub(/\"/,""); print $NF}' "${HOME}/.pekwm/config")" + wm_theme="$(awk -F "/" '/Theme/{gsub(/\"/,""); print $NF}' "${HOME}/.pekwm/config")" ;; "Xfwm4") @@ -809,11 +809,16 @@ get_wm_theme() { kwinrc="${kde_config_dir}/kwinrc" kdebugrc="${kde_config_dir}/kdebugrc" - # TODO: Fix line length here. if [[ -f "$kwinrc" ]]; then - wm_theme="$(awk '/theme=/{gsub(/theme=.*qml_|theme=.*svg__/,"",$0); print $0; exit}' "$kwinrc")" - [[ -z "$wm_theme" ]] && wm_theme="$(awk '/library=org.kde/{gsub(/library=org.kde./,"",$0); print $0; exit}' "$kwinrc")" - [[ -z "$wm_theme" ]] && wm_theme="$(awk '/PluginLib=kwin3_/{gsub(/PluginLib=kwin3_/,"",$0); print $0; exit}' "$kwinrc")" + wm_theme="$(awk '/theme=/{gsub(/theme=.*qml_|theme=.*svg__/,"",$0); + print $0; exit}' "$kwinrc")" + + [[ -z "$wm_theme" ]] && \ + wm_theme="$(awk '/library=org.kde/{gsub(/library=org.kde./,"",$0); + print $0; exit}' "$kwinrc")" + [[ -z "$wm_theme" ]] && \ + wm_theme="$(awk '/PluginLib=kwin3_/{gsub(/PluginLib=kwin3_/,"",$0); + print $0; exit}' "$kwinrc")" elif [[ -f "$kdebugrc" ]]; then wm_theme="$(awk '/(decoration)/ {gsub(/\[/,"",$1); print $1; exit}' "$kdebugrc")" @@ -881,9 +886,11 @@ get_cpu() { ;; *) - # TODO: Fix line length here. - cpu="$(awk -F ': | @' '/model name|Processor|^cpu model|chip type|^cpu type/ {printf $2; exit}' "$cpu_file")" - [[ "$cpu" == *"processor rev"* ]] && cpu="$(awk -F':' '/Hardware/ {print $2; exit}' "$cpu_file")" + cpu="$(awk -F ': | @' '/model name|Processor|^cpu model|chip type|^cpu type/ + {printf $2; exit}' "$cpu_file")" + + [[ "$cpu" == *"processor rev"* ]] && \ + cpu="$(awk -F':' '/Hardware/ {print $2; exit}' "$cpu_file")" ;; esac @@ -1384,8 +1391,11 @@ get_memory() { } get_song() { - # TODO: Fix line length here. - player="$(ps x | awk '!(/ awk|Helper|Cache|ibus|indicator/) && /mpd|mopidy|cmus|mocp|spotify|Google Play|iTunes.app|rhythmbox|banshee|amarok|deadbeef|audacious|xmms2d|gnome-music|lollypop|clementine|pragha|exaile|juk|bluemindo|guayadeque|yarock|qmmp|quodlibet|deepin-music|tomahawk|pogo/ {printf $5 " " $6; exit}')" + player="$(ps x | awk '!(/ awk|Helper|Cache|ibus|indicator/) && /mpd|mopidy|cmus|mocp|spotify| + Google Play|iTunes.app|rhythmbox|banshee|amarok|deadbeef|audacious| + xmms2d|gnome-music|lollypop|clementine|pragha|exaile|juk|bluemindo| + guayadeque|yarock|qmmp|quodlibet|deepin-music|tomahawk|pogo/ + {printf $5 " " $6; exit}')" get_song_dbus() { # Multiple players use an almost identical dbus command to get the information. @@ -1855,7 +1865,6 @@ get_term_font() { for i in "${konsole_instances[@]}"; do konsole_sessions=($(qdbus "${i}" | grep '/Sessions/')) - # TODO: Swap to a while loop here. for session in "${konsole_sessions[@]}"; do if ((child == "$(qdbus "${i}" "${session}" processId)")); then profile="$(qdbus "${i}" "${session}" environment |\ @@ -1898,11 +1907,15 @@ get_term_font() { rm -f "$mateterm_config" - # TODO: Limit line length here. - if [[ "$(gsettings get org.mate.terminal.profile:/org/mate/terminal/profiles/"${profile}"/ use-system-font)" == "true" ]]; then + mate_get() { + gsettings get org.mate.terminal.profile:\ + /org/mate/terminal/profiles/"$1"/ "$2" + } + + if [[ "$(mate_get "$profile" "use-system-font")" == "true" ]]; then term_font="$(gsettings get org.mate.interface monospace-font-name)" else - term_font="$(gsettings get org.mate.terminal.profile:/org/mate/terminal/profiles/"${profile}"/ font)" + term_font="$(mate_get "$profile" "font")" fi term_font="$(trim_quotes "$term_font")" fi From aaba03f0a9cb86aa3462f86b9ce5f1f31425b244 Mon Sep 17 00:00:00 2001 From: Dylan Araps Date: Wed, 2 Aug 2017 12:34:53 +1000 Subject: [PATCH 05/12] travis: Test for line length --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 381e0cab..7268a088 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,3 +21,4 @@ script: # See this wiki page for why we're disabling these errors. # https://github.com/dylanaraps/neofetch/wiki/Shellcheck-Exclusions - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then shellcheck neofetch -e SC1090,SC2009,SC2012,SC2016,SC2034,SC2128,SC2153,SC2154,SC2178,SC2010; fi + - ! grep '.\{101\}' neofetch From 5dedfd22b2e516587fed37e402abac9ca40a11e5 Mon Sep 17 00:00:00 2001 From: Dylan Araps Date: Wed, 2 Aug 2017 12:44:33 +1000 Subject: [PATCH 06/12] travis: Test for line length --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 7268a088..42da819a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,4 +21,4 @@ script: # See this wiki page for why we're disabling these errors. # https://github.com/dylanaraps/neofetch/wiki/Shellcheck-Exclusions - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then shellcheck neofetch -e SC1090,SC2009,SC2012,SC2016,SC2034,SC2128,SC2153,SC2154,SC2178,SC2010; fi - - ! grep '.\{101\}' neofetch + - if grep '.\{101\}' neofetch; then (exit 1); else (exit 0); fi From 5467fb47dae50721d85e30db22467f2f9e88883e Mon Sep 17 00:00:00 2001 From: Dylan Araps Date: Wed, 2 Aug 2017 12:54:41 +1000 Subject: [PATCH 07/12] general: Fix indent --- neofetch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/neofetch b/neofetch index 18053f90..8d0361d1 100755 --- a/neofetch +++ b/neofetch @@ -4040,7 +4040,7 @@ old_options() { # cpu_shorthand was deprecated in 3.3.0 [[ -n "$cpu_shorthand" ]] && \ { err "Config: \$cpu_shorthand is deprecated, use \$cpu_brand, \$cpu_cores, and - \$cpu_speed instead."; } + \$cpu_speed instead."; } } cache_uname() { From d7abf3ce684d26005701bd788ea2cad0d7a9100e Mon Sep 17 00:00:00 2001 From: Dylan Araps Date: Wed, 2 Aug 2017 12:57:00 +1000 Subject: [PATCH 08/12] general: Enforce 100 chars per line. --- .travis.yml | 2 +- neofetch | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 42da819a..680643c2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,5 +20,5 @@ script: - time ./neofetch --ascii --config config/travis.conf -v # See this wiki page for why we're disabling these errors. # https://github.com/dylanaraps/neofetch/wiki/Shellcheck-Exclusions - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then shellcheck neofetch -e SC1090,SC2009,SC2012,SC2016,SC2034,SC2128,SC2153,SC2154,SC2178,SC2010; fi + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then shellcheck neofetch -e SC1090,SC2009,SC2012,SC2016,SC2034,SC2128,SC2153,SC2154,SC2178,SC2010,SC1004; fi - if grep '.\{101\}' neofetch; then (exit 1); else (exit 0); fi diff --git a/neofetch b/neofetch index 8d0361d1..d473f385 100755 --- a/neofetch +++ b/neofetch @@ -1391,9 +1391,9 @@ get_memory() { } get_song() { - player="$(ps x | awk '!(/ awk|Helper|Cache|ibus|indicator/) && /mpd|mopidy|cmus|mocp|spotify| - Google Play|iTunes.app|rhythmbox|banshee|amarok|deadbeef|audacious| - xmms2d|gnome-music|lollypop|clementine|pragha|exaile|juk|bluemindo| + player="$(ps x | awk '!(/ awk|Helper|Cache|ibus|indicator/) && /mpd|mopidy|cmus|mocp|spotify|\ + Google Play|iTunes.app|rhythmbox|banshee|amarok|deadbeef|audacious|\ + xmms2d|gnome-music|lollypop|clementine|pragha|exaile|juk|bluemindo|\ guayadeque|yarock|qmmp|quodlibet|deepin-music|tomahawk|pogo/ {printf $5 " " $6; exit}')" From e53404e3494b6147a30870fc9f98388a4adc1837 Mon Sep 17 00:00:00 2001 From: Dylan Araps Date: Wed, 2 Aug 2017 12:58:08 +1000 Subject: [PATCH 09/12] general: Fix awk missing backslash --- neofetch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/neofetch b/neofetch index d473f385..f4743eef 100755 --- a/neofetch +++ b/neofetch @@ -886,7 +886,7 @@ get_cpu() { ;; *) - cpu="$(awk -F ': | @' '/model name|Processor|^cpu model|chip type|^cpu type/ + cpu="$(awk -F ': | @' '/model name|Processor|^cpu model|chip type|^cpu type/\ {printf $2; exit}' "$cpu_file")" [[ "$cpu" == *"processor rev"* ]] && \ From 4c48b426accb5f553012f920f7e1036746ce05d9 Mon Sep 17 00:00:00 2001 From: Dylan Araps Date: Wed, 2 Aug 2017 13:06:17 +1000 Subject: [PATCH 10/12] general: Fix missing backslashes --- neofetch | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/neofetch b/neofetch index f4743eef..c92f37b7 100755 --- a/neofetch +++ b/neofetch @@ -810,14 +810,14 @@ get_wm_theme() { kdebugrc="${kde_config_dir}/kdebugrc" if [[ -f "$kwinrc" ]]; then - wm_theme="$(awk '/theme=/{gsub(/theme=.*qml_|theme=.*svg__/,"",$0); + wm_theme="$(awk '/theme=/{gsub(/theme=.*qml_|theme=.*svg__/,"",$0);\ print $0; exit}' "$kwinrc")" [[ -z "$wm_theme" ]] && \ - wm_theme="$(awk '/library=org.kde/{gsub(/library=org.kde./,"",$0); + wm_theme="$(awk '/library=org.kde/{gsub(/library=org.kde./,"",$0);\ print $0; exit}' "$kwinrc")" [[ -z "$wm_theme" ]] && \ - wm_theme="$(awk '/PluginLib=kwin3_/{gsub(/PluginLib=kwin3_/,"",$0); + wm_theme="$(awk '/PluginLib=kwin3_/{gsub(/PluginLib=kwin3_/,"",$0);\ print $0; exit}' "$kwinrc")" elif [[ -f "$kdebugrc" ]]; then @@ -1437,7 +1437,7 @@ get_song() { ;; "cmus"*) - song="$(cmus-remote -Q | awk '/tag artist/ {$1=$2=""; print; print " - "} + song="$(cmus-remote -Q | awk '/tag artist/ {$1=$2=""; print; print " - "}\ /tag title/ {$1=$2=""; print}')" ;; @@ -1446,14 +1446,14 @@ get_song() { "Linux") get_song_dbus "spotify" ;; "Mac OS X") - song="$(osascript -e 'tell application "Spotify" to artist of current track as + song="$(osascript -e 'tell application "Spotify" to artist of current track as \ string & " - " & name of current track as string')" ;; esac ;; "itunes"*) - song="$(osascript -e 'tell application "iTunes" to artist of current track as + song="$(osascript -e 'tell application "iTunes" to artist of current track as \ string & " - " & name of current track as string')" ;; @@ -1479,14 +1479,14 @@ get_song() { "quodlibet"*) song="$(dbus-send --print-reply --dest=net.sacredchao.QuodLibet \ /net/sacredchao/QuodLibet net.sacredchao.QuodLibet.CurrentSong |\ - awk -F'"' '/artist/ {getline; a=$2} + awk -F'"' '/artist/ {getline; a=$2} \ /title/ {getline; t=$2} END{print a " - " t}')" ;; "pogo"*) song="$(dbus-send --print-reply --dest=org.mpris.pogo /Player \ org.freedesktop.MediaPlayer.GetMetadata | - awk -F'"' '/string "artist"/ {getline; a=$2} /string "title"/ {getline; t=$2} + awk -F'"' '/string "artist"/ {getline; a=$2} /string "title"/ {getline; t=$2} \ END{print a " - " t}')" ;; @@ -1563,7 +1563,7 @@ get_resolution() { case "$refresh_rate" in "on") resolution="$(xrandr --nograb --current |\ - awk 'match($0,/[0-9]*\.[0-9]*\*/) {printf $1 " @ " + awk 'match($0,/[0-9]*\.[0-9]*\*/) {printf $1 " @ "\ substr($0,RSTART,RLENGTH) "Hz, "}')" ;; @@ -1797,7 +1797,7 @@ get_term_font() { ;; "Apple_Terminal") - term_font="$(osascript -e 'tell application "Terminal" to + term_font="$(osascript -e 'tell application "Terminal" to \ font name of window frontmost')" ;; @@ -1809,18 +1809,15 @@ get_term_font() { # See: https://groups.google.com/forum/#!topic/iterm2-discuss/0tO3xZ4Zlwg local current_profile_name profiles_count profile_name diff_font none_ascii - current_profile_name="$(osascript -e 'tell application "iTerm2" to profile name + current_profile_name="$(osascript -e 'tell application "iTerm2" to profile name \ of current session of current window')" # Warning: Dynamic profiles are not taken into account here! # https://www.iterm2.com/documentation-dynamic-profiles.html + font_file="${HOME}/Library/Preferences/com.googlecode.iterm2.plist" # Count Guids in "New Bookmarks"; they should be unique - profiles_count="$(PlistBuddy -c "Print :New\ Bookmarks:" \ - "" |\ - grep -c "Guid")" - - font_file="${HOME}/Library/Preferences/com.googlecode.iterm2.plist" + profiles_count="$(PlistBuddy -c "Print :New\ Bookmarks:" "$font_file" | grep -c "Guid")" for ((i=0; i<=profiles_count; i++)); do profile_name="$(PlistBuddy -c "Print :New\ Bookmarks:${i}:Name:" "$font_file")" @@ -1901,8 +1898,8 @@ get_term_font() { role="${role//\"}" profile="$(awk -F '=' -v r="$role" \ - '$0~r {getline; if(/Maximized/) getline; - if(/Fullscreen/) getline; id=$2"]"} + '$0~r {getline; if(/Maximized/) getline; \ + if(/Fullscreen/) getline; id=$2"]"} \ $0~id {if(id) {getline; print $2; exit}}' "$mateterm_config")" rm -f "$mateterm_config" @@ -1950,7 +1947,7 @@ get_term_font() { [[ -f "${XDG_CONFIG_HOME}/termite/config" ]] && \ termite_config="${XDG_CONFIG_HOME}/termite/config" - term_font="$(awk -F '= ' '/\[options\]/ {opt=1} /^\s*font/ {if(opt==1) a=$2; opt=0} + term_font="$(awk -F '= ' '/\[options\]/ {opt=1} /^\s*font/ {if(opt==1) a=$2; opt=0} \ END{print a}' "/etc/xdg/termite/config" "$termite_config")" ;; From b3d15cd168108d94480e341be7091cc82aa847a3 Mon Sep 17 00:00:00 2001 From: Dylan Araps Date: Wed, 2 Aug 2017 13:07:42 +1000 Subject: [PATCH 11/12] general: Fix whitespace --- neofetch | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/neofetch b/neofetch index c92f37b7..f15c07d6 100755 --- a/neofetch +++ b/neofetch @@ -765,7 +765,7 @@ get_wm_theme() { "E17" | "Enlightenment") if type -p eet >/dev/null; then - wm_theme="$(eet -d "${HOME}/.e/e/config/standard/e.cfg" config | \ + wm_theme="$(eet -d "${HOME}/.e/e/config/standard/e.cfg" config |\ awk '/value \"file\" string.*.edj/ {print $4}')" wm_theme="${wm_theme##*/}" wm_theme="${wm_theme%.*}" @@ -900,9 +900,9 @@ get_cpu() { # Get CPU speed. if [[ -d "$speed_dir" ]]; then # Fallback to bios_limit if $speed_type fails. - speed="$(< "${speed_dir}/${speed_type}")" || \ - speed="$(< "${speed_dir}/bios_limit")" || \ - speed="$(< "${speed_dir}/scaling_max_freq")" || \ + speed="$(< "${speed_dir}/${speed_type}")" ||\ + speed="$(< "${speed_dir}/bios_limit")" ||\ + speed="$(< "${speed_dir}/scaling_max_freq")" ||\ speed="$(< "${speed_dir}/cpuinfo_max_freq")" speed="$((speed / 1000))" @@ -1161,7 +1161,7 @@ get_gpu() { for gpu in "${gpus[@]}"; do # GPU shorthand tests. - [[ "$gpu_type" == "dedicated" && "$gpu" =~ (i|I)ntel ]] || \ + [[ "$gpu_type" == "dedicated" && "$gpu" =~ (i|I)ntel ]] ||\ [[ "$gpu_type" == "integrated" && ! "$gpu" =~ (i|I)ntel ]] && \ { unset -v gpu; continue; } @@ -1215,7 +1215,7 @@ get_gpu() { source "${cache_dir}/neofetch/gpu" else - gpu="$(system_profiler SPDisplaysDataType | \ + gpu="$(system_profiler SPDisplaysDataType |\ awk -F': ' '/^\ *Chipset Model:/ {printf $2 ", "}')" gpu="${gpu//'/ $'}" gpu="${gpu%,*}" @@ -1262,7 +1262,7 @@ get_gpu() { ;; "Haiku") - gpu="$(listdev | grep -A2 -F 'device Display controller' | \ + gpu="$(listdev | grep -A2 -F 'device Display controller' |\ awk -F':' '/device beef/ {print $2}')" ;; @@ -1568,7 +1568,7 @@ get_resolution() { ;; "off") - resolution="$(xrandr --nograb --current | \ + resolution="$(xrandr --nograb --current |\ awk -F 'connected |\\+' '/ connected/ {printf $2 ", "}')" resolution="${resolution/primary }" ;; @@ -1984,7 +1984,7 @@ get_term_font() { } get_disk() { - type -p df >/dev/null 2>&1 || \ + type -p df >/dev/null 2>&1 ||\ { err "Disk requires 'df' to function. Install 'df' to get disk info."; return; } # Get "df" version. From 9c8afe56c38eca0ef4a4f506905f2a9ba44fc6fa Mon Sep 17 00:00:00 2001 From: Dylan Araps Date: Wed, 2 Aug 2017 13:09:33 +1000 Subject: [PATCH 12/12] docs: travis --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 680643c2..388082b0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,4 +21,7 @@ script: # See this wiki page for why we're disabling these errors. # https://github.com/dylanaraps/neofetch/wiki/Shellcheck-Exclusions - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then shellcheck neofetch -e SC1090,SC2009,SC2012,SC2016,SC2034,SC2128,SC2153,SC2154,SC2178,SC2010,SC1004; fi + # The if statement is here to invert the exit code from grep. + # grep normally errors if no match is found but we want the opposite. + # We invert it so grep fails if a match is found. - if grep '.\{101\}' neofetch; then (exit 1); else (exit 0); fi