Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
neofetch
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ximper Linux
neofetch
Commits
72459ced
Commit
72459ced
authored
Aug 02, 2017
by
Dylan Araps
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
general: Enforce 100 chars per line.
parent
ffd5bfcb
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
97 additions
and
46 deletions
+97
-46
neofetch
neofetch
+97
-46
No files found.
neofetch
View file @
72459ced
...
...
@@ -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 win
dow
"
#
thou
, but that does not match to a guid in the plist.
# So, be warned
! C
ollisions 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
, c
ollisions 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
;;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment