From d8f29b3c49724da78c9035aae8aeaa8aa7e93bce Mon Sep 17 00:00:00 2001 From: r4d! <83989081+crue-ton@users.noreply.github.com> Date: Thu, 24 Feb 2022 22:28:22 -0500 Subject: [PATCH 1/7] windows support + disk --- pfetch | 124 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 116 insertions(+), 8 deletions(-) diff --git a/pfetch b/pfetch index d47b878..46253fd 100755 --- a/pfetch +++ b/pfetch @@ -2,6 +2,8 @@ # # pfetch - Simple POSIX sh fetch script. +#PF_ASCII="arch" + # Wrapper around all escape sequences used by pfetch to allow for # greater control over which sequences are used (if any at all). esc() { @@ -293,6 +295,19 @@ get_os() { fi ;; + (CYGWIN*|MSYS*|MINGW*) + # Grab everything after the first instance of + # white-space in the command output of 'wmic'. + # + # The format of 'wmic' is as follows: + # Caption=Microsoft Windows 7 Enterprise + # + # This extracts: ^^^^^^^^^^^^^^^^^^^^ + read -r _ distro <<-EOF + $(wmic os get Caption | head -n 2 | tail -n +2) + EOF + ;; + (Darwin*) # Parse the SystemVersion.plist file to grab the macOS # version. The file is in the following format: @@ -435,6 +450,12 @@ get_host() { (*BSD* | Minix) host=$(sysctl -n hw.vendor hw.product) ;; + (CYGWIN*|MSYS*|MINGW*) + host=$(wmic computersystem get model \ + | tail -n +2 \ + | sed 's/.*=//g' + ) + ;; esac # Turn the host string into an argument list so we can iterate @@ -485,7 +506,7 @@ get_uptime() { # converting that data into days, hours and minutes using simple # math. case $os in - (Linux* | Minix* | SerenityOS*) + (Linux* | Minix* | SerenityOS*|CYGWIN*|MSYS*|MINGW*) IFS=. read -r s _ < /proc/uptime ;; @@ -564,7 +585,7 @@ get_pkgs() { # managers are installed. packages=$( case $os in - (Linux*) + (Linux*|CYGWIN*|MSYS*|MINGW*) # Commands which print packages one per line. has bonsai && bonsai list has crux && pkginfo -i @@ -575,6 +596,7 @@ get_pkgs() { has apk && apk info has guix && guix package --list-installed has opkg && opkg list-installed + has scoop && scoop list # Directories containing packages. has kiss && printf '%s\n' /var/db/kiss/installed/*/ @@ -679,6 +701,9 @@ get_pkgs() { (OpenBSD) packages=$((packages)) ;; + (CYGWIN*|MSYS*|MINGW*) + packages=$((packages - 3)) + ;; esac case $packages in @@ -693,7 +718,7 @@ get_memory() { # Used memory is calculated using the following "formula": # MemUsed = MemTotal + Shmem - MemFree - Buffers - Cached - SReclaimable # Source: https://github.com/KittyKatt/screenFetch/issues/386 - (Linux*) + (Linux*|CYGWIN*|MSYS*|MINGW*) # Parse the '/proc/meminfo' file splitting on ':' and 'k'. # The format of the file is 'key: 000kB' and an additional # split is used on 'k' to filter out 'kB'. @@ -939,10 +964,81 @@ get_memory() { log memory "${mem_used:-?}M / ${mem_full:-?}M" >&6 } +get_disk() { + # Store the version of the 'df' command as the available + # flags, options and implementation differs between operating + # systems and we need to handle these edge-cases. + df_version=$(df --version 2>&1) + + case $df_version in + # The 'df' command is from AIX. + *IMitv*) + set -- -P -g + ;; + + # The 'df' command is from IRIX. + *befhikm*) + set -- -P -k + ;; + + # The 'df' command is from OpenBSD. + *hiklnP*) + set -- -h + ;; + + # The 'df' command is from Haiku and is wildly + # different and provides no workable output, + # end here. + *Tracker*) # Haiku + return + ;; + + # From testing it is saffe to assume that + # any other 'df' version provides these flags. + *) + set -- -P -h + ;; + esac + + # Read the output of 'df' line by line. The first line + # contains header information for the "table" so it is + # skipped. + # + # The next lines are then split to grab the relevant + # information and thankfully the output remains the + # same between all but one 'df' implementation. + # + # TODO: Configure disks to send to 'df'. Do we need to + # do this? I'd love to _not_ do it. + df "$@" / | while read -r name full used _ perc _; do + [ "$header" ] || { header=1; continue; } + + case $df_version in + # The 'df' command is from IRIX. + *befhikm*) + used=$((used/1024/1024))G + full=$((full/1024/1024))G + ;; + esac + # + # probably a better way to do this, but a simple fixs + case $os in + CYGWIN*|MSYS*|MINGW*) + windisk=$(df -h | tail -n +2 | awk 'NR==1{print $4" / "$3,"("$6")"}') + log disk "$windisk" >&6 + ;; + *) + log disk "$used / $full ($perc)" >&6 + ;; + esac + done + +} + get_wm() { case $os in - (Darwin*) - # Don't display window manager on macOS. + (Darwin*|CYGWIN*|MSYS*|MINGW*) + # Don't display window manager on macOS and Windows. ;; (*) @@ -1257,6 +1353,19 @@ get_ascii() { ${c5} .//. EOF ;; + + CYGWIN*|MSYS*|MINGW*) + read_ascii 4 <<-EOF + ${c4} + ###### ###### + ###### ###### + ###### ###### + + ###### ###### + ###### ###### + ###### ###### + EOF + ;; ([Dd]ahlia*) read_ascii 1 <<-EOF @@ -1824,7 +1933,7 @@ get_ascii() { # This ensures that any variables defined in the while loop # are still accessible in the script. done <<-EOF - $(printf %s "$ascii" | sed 's/\[3.m//g') + $(printf %s "$ascii" | awk '{gsub("\\[3.m","");print}') EOF # Add a gap between the ascii art and the information. @@ -1914,8 +2023,7 @@ EOF # Disable globbing and set the positional parameters to the # contents of 'PF_INFO'. set -f - set +f -- ${PF_INFO-ascii title os host kernel uptime pkgs memory} - + set +f -- ${PF_INFO-ascii title os host kernel uptime pkgs memory disk} # Iterate over the info functions to determine the lengths of the # "info names" for output alignment. The option names and subtitles # match 1:1 so this is thankfully simple. From 98f380a6f833d5bd5fd70cbd389d8c7fdfcb535c Mon Sep 17 00:00:00 2001 From: r4d! <83989081+crue-ton@users.noreply.github.com> Date: Thu, 24 Feb 2022 22:50:45 -0500 Subject: [PATCH 2/7] Add files via upload --- pfetch.png | Bin 0 -> 48913 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 pfetch.png diff --git a/pfetch.png b/pfetch.png new file mode 100644 index 0000000000000000000000000000000000000000..0ef87162486706beaec0f20c35376e778f992907 GIT binary patch literal 48913 zcmd432{e@b|39n+HOO6w5bAERg$j{vs3a7!jO~= zaPaBhzG=$A!I{Cqv7i4C7x2zjVCN3--#&j+z3Uw1J*Sp|lY_20cXc>8D&lw;j-0^x zVc*+U{u~^~p6vbGH{~J`#KF;Apnp@xJji~H$zLZhoKB)E2t0}qbvAtd^&}S~>gZV) zrL2TPU#C;&MY`T1;?w-kt#rQyy%vY{LXE|+i z-#Q+-bo11ihvq*<_C-z$>Wm&*=`|+H?5tQ=Ob(+<*ybck=Vx)t0E)exT}?<8-K+#N zOsboUrH?*)NFh!ZG&bVAChGdVaHzW~`?Tfxgs*&mE28|1S48Q@HVKcP+8Y86j^`oE z*r_S;gS~&wfFF+>CFqF%KDnZ^&ih}le+aZF{@2UXX8-f?=XZ{39Qd!duju~&;d(B?LecS+gXcEb;UR^u= zBq>5m+@qP?g6*1-h~*pE2Yez6>C_H%{8~ZQ7L_0D+Wcklq#`Z%{mw|ZPc@m?W%NF5`(*OWUhq?cP37egr1fK4?RwEbGS1JyY72xvRU~83yrr~*w}}; zjF<>SqfY>h(stOJ80{XZYUZjY!nt{U<~v%^d(K=`%7{HZ^nlA}X_?il8{Rr~u=g`T zOZubOsh8dQ0@vC8IP?OAUXH3&;^(Z#l9~p}$#tQasMHIWkYv?+?8RrkFRwZGJ_~A)-L+q}p_2Zvac{?EDVz@C z;yA50k@BNvI;v@s`P3P5K?f##D4>X)$h72Cd{{$uEZ@IEdXg#8RSvxhKKaD+OLr=v z47(l&4gAutd35j6kD{lAIi8<7>^kZqe6^7^J7X!IgM@vGNB zSvz2Mc6Q>Rq8!f)a#O#+?H=@7QUkYFkGTAnIR)F>A{i^o^+%XX3f(Odum-mUWVmT! zTA#n>B)k4ighpf$$esx&iwq%M*v0s%23NWq%3?ichcpHWflKgkF%x!~%_RhDessa! z_Ne)`X3d$dFNk5|DfT8NI{D%E?tOf=Th0^ha>J900Ir=Btp;{N)HJ*D3!yxRnHN1= zABIA(`JdWb3?bRp=ATF9glD{yJ4urI^{{Dw`tV8m4vT%>EfYo0Gq%TGUicE%PMmZd zmvod{o{CMJdV73$`Dxti5A@)4^E&uq;?uIM)QZDEzfU{t?Rhs3eIb3b=OukcEi=I4 zRgRuw`{+EdbUodhqq4mT?;Dy} zFB9PO2dydbppJz!?O&|!JzK0&`nB5Jq%zsP$|U5cg~^mvAXD9&Q}=>|@suWrkffsVzhdCA1S2 z;<}{AJqmG@c)@sQ(V?i(K2AEWrSZ3vZv3N8t+oz4pKi(F^#qqdwm04)w6@dEeCKaN zMJ=j2ZbiB*yNwTj!vW7!L0LGkPHrr}h;~t=pTU5W7#yNNW3^Y$0C7dBhMN+qQP{XD zzZW-53@MdNHYv*+8Sa*BQ>*ei{4(1QL=~SPSuQk2uuJM6ud|P9L4GFP_HZCOUxspCB@vl(Za!GG_VL&+Bg!_6;K-*ZxY(^E2jXi(LFO52C<4oW?2{TIf`( zD_*-R6*xjv0CsnH#V4HLr$!1ra;&LWeP=`*Byr-c%*i2tY2G^xKX5`jr<`m!*`%+b z#}(j(@DooPjYeUm(BWix_|nQmZC(3g!EYP`d@pqsUon~GRx|lj#SfFI-QLnsm)0Qf z(!VQk_8%Ho*}}n330saUsMJi_E4AlOtj&cC{5;0S9T)^t4ZJ3OH O;DDPZfDoQ1 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 Date: Sat, 28 May 2022 17:59:57 -0400 Subject: [PATCH 3/7] add a more 'vanilla' kernel support for win --- pfetch | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pfetch b/pfetch index 46253fd..7e3e761 100755 --- a/pfetch +++ b/pfetch @@ -415,6 +415,10 @@ get_kernel() { (*BSD*|Haiku|Minix) return ;; + # Use wmic to get the OS version + (CYGWIN*|MSYS*|MINGW*) + kernel=$(wmic os get Version) + kernel=${kernel/Version} esac # '$kernel' is the cached output of 'uname -r'. From e1f040186a825a4d13648c38548f6ea64879a1b3 Mon Sep 17 00:00:00 2001 From: crue-ton <83989081+crue-ton@users.noreply.github.com> Date: Sat, 28 May 2022 18:13:51 -0400 Subject: [PATCH 4/7] fix kernel not loading correctly --- pfetch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pfetch b/pfetch index 7e3e761..10e1264 100755 --- a/pfetch +++ b/pfetch @@ -418,7 +418,7 @@ get_kernel() { # Use wmic to get the OS version (CYGWIN*|MSYS*|MINGW*) kernel=$(wmic os get Version) - kernel=${kernel/Version} + kernel=$(echo $kernel | awk '{print $3}') esac # '$kernel' is the cached output of 'uname -r'. From 43d6ac0ac22d7a1937f1b356204ad9e78452d21d Mon Sep 17 00:00:00 2001 From: crue-ton <83989081+crue-ton@users.noreply.github.com> Date: Sat, 28 May 2022 19:03:04 -0400 Subject: [PATCH 5/7] Update readme --- README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/README.md b/README.md index b084d6b..70ed158 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,8 @@ picture"! - DragonflyBSD, FreeBSD, NetBSD and OpenBSD. - **Windows** - Windows subsystem for Linux. + - Windows Powershell (Requires extra tinkering for easy use) + - Windows CMD (Requires extra tinkering for easy use) - **Haiku** - **MacOS** - **Minix** @@ -42,6 +44,25 @@ picture"! ## Configuration +For users using pwsh on Windows, add this to your $Profile + +```powershell +# I would just git clone the repo in the home directoy +Function pfetch {sh $env:UserProfile\pfetch\pfetch} +``` + +For users using cmd o Windows, do this: +- Make a doskey macro file, preferablly in `C:\bat\macros.doskey` <-- macros file +- Go to Registry Editor +- Go to Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Conmand Processor +- Make a new string value called `Autorun` +- Right click on it and click `Modify...` +- Change the value path to: +``` +DOSKEY /MACROFILE="C:\bat\macros.doskey" +``` +- Tada! Just run a new instance of cmd! + `pfetch` is configured through environment variables. ```sh From 63aa8e608514f9bf957c8c6113cfc0b17e5e8daf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?mo=C3=ABt?= <83989081+crue-ton@users.noreply.github.com> Date: Sat, 28 May 2022 19:04:52 -0400 Subject: [PATCH 6/7] Update readme spelling errors --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 70ed158..8f5abe0 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ For users using pwsh on Windows, add this to your $Profile Function pfetch {sh $env:UserProfile\pfetch\pfetch} ``` -For users using cmd o Windows, do this: +For users using cmd on Windows, do this: - Make a doskey macro file, preferablly in `C:\bat\macros.doskey` <-- macros file - Go to Registry Editor - Go to Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Conmand Processor @@ -63,6 +63,7 @@ DOSKEY /MACROFILE="C:\bat\macros.doskey" ``` - Tada! Just run a new instance of cmd! + `pfetch` is configured through environment variables. ```sh From d9cfb6a665c8a0d312cc24fbd505e9e28670e7f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?mo=C3=ABt?= <83989081+crue-ton@users.noreply.github.com> Date: Sat, 28 May 2022 19:07:54 -0400 Subject: [PATCH 7/7] Add what to add to macros file :facepalm: --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8f5abe0..3a43f9b 100644 --- a/README.md +++ b/README.md @@ -58,9 +58,14 @@ For users using cmd on Windows, do this: - Make a new string value called `Autorun` - Right click on it and click `Modify...` - Change the value path to: -``` +```cmd DOSKEY /MACROFILE="C:\bat\macros.doskey" ``` +- Edit the macros.doskey file to something like this: +```cmd +pfetch=sh %UserProfile%\pfetch\pfetch +``` + - Tada! Just run a new instance of cmd!