Giant blob of minor changes
[dotfiles/.git] / .local / bin / ufetch
1 #!/bin/sh
2 #
3 # ufetch-arch - tiny system info for arch
4
5 ## INFO
6
7 # user is already defined
8 host="$(cat /etc/hostname)"
9 os='Arch Linux'
10 kernel="$(uname -sr)"
11 uptime="$(uptime -p | sed 's/up //')"
12 packages="$(pacman -Q | wc -l)"
13 shell="$(basename "$SHELL")"
14
15 ## UI DETECTION
16
17 if [ -n "${DE}" ]; then
18         ui="${DE}"
19         uitype='DE'
20 elif [ -n "${WM}" ]; then
21         ui="${WM}"
22         uitype='WM'
23 elif [ -n "${XDG_CURRENT_DESKTOP}" ]; then
24         ui="${XDG_CURRENT_DESKTOP}"
25         uitype='DE'
26 elif [ -n "${DESKTOP_SESSION}" ]; then
27         ui="${DESKTOP_SESSION}"
28         uitype='DE'
29 elif [ -f "${HOME}/.xinitrc" ]; then
30         ui="$(tail -n 1 "${HOME}/.xinitrc" | cut -d ' ' -f 2)"
31         uitype='WM'
32 elif [ -f "${HOME}/.xsession" ]; then
33         ui="$(tail -n 1 "${HOME}/.xsession" | cut -d ' ' -f 2)"
34         uitype='WM'
35 else
36         ui='unknown'
37         uitype='UI'
38 fi
39 ui="$(basename ${ui})"
40
41 ## DEFINE COLORS
42
43 # probably don't change these
44 if [ -x "$(command -v tput)" ]; then
45         bold="$(tput bold)"
46         black="$(tput setaf 0)"
47         red="$(tput setaf 1)"
48         green="$(tput setaf 2)"
49         yellow="$(tput setaf 3)"
50         blue="$(tput setaf 4)"
51         magenta="$(tput setaf 5)"
52         cyan="$(tput setaf 6)"
53         white="$(tput setaf 7)"
54         reset="$(tput sgr0)"
55 fi
56
57 # you can change these
58 lc="${reset}${bold}${blue}"         # labels
59 nc="${reset}${bold}${blue}"         # user and hostname
60 ic="${reset}"                       # info
61 c0="${reset}${blue}"                # first color
62
63 ## OUTPUT
64
65 cat <<EOF
66
67 ${c0}        /\\         ${nc}${USER}${ic}@${nc}${host}${reset}
68 ${c0}       /  \\        ${lc}OS:        ${ic}${os}${reset}
69 ${c0}      /\\   \\       ${lc}KERNEL:    ${ic}${kernel}${reset}
70 ${c0}     /  __  \\      ${lc}UPTIME:    ${ic}${uptime}${reset}
71 ${c0}    /  (  )  \\     ${lc}PACKAGES:  ${ic}${packages}${reset}
72 ${c0}   / __|  |__\\\\    ${lc}SHELL:     ${ic}${shell}${reset}
73 ${c0}  /.\`        \`.\\   ${lc}${uitype}:        ${ic}${ui}${reset}
74
75 EOF
76