winfetch

🛠 A command-line system information utility written in PowerShell. Like Neofetch, but for Windows.

MIT License

Stars
1.4K
Committers
25
winfetch - v2.5.1 Latest Release

Published by rashil2000 about 1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/lptstr/winfetch/compare/v2.5.0...v2.5.1

winfetch - v2.5.0

Published by rashil2000 over 1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/lptstr/winfetch/compare/v2.4.1...2.5.0

winfetch - v2.4.1

Published by rashil2000 over 2 years ago

What's Changed

Full Changelog: https://github.com/kiedtl/winfetch/compare/v2.4.0...v2.4.1

winfetch - v2.4.0

Published by rashil2000 over 2 years ago

Breaking Changes

The config file format before v2.0.0 is no longer compatible with Winfetch. It is recommended to use the new configuration file format (a .ps1 file) which was released in version 2.0.0.

What's Changed

Full Changelog: https://github.com/kiedtl/winfetch/compare/v2.3.0...v2.4.0

winfetch - v2.3.0

Published by jcwillox almost 3 years ago

Breaking Changes

The scoop manifest was moved from the extras bucket to the main bucket, in order to receive this and future updates you'll need to reinstall it.

scoop uninstall winfetch
scoop install winfetch

What's Changed

Full Changelog: https://github.com/kiedtl/winfetch/compare/v2.2.0...v2.3.0

winfetch - v2.2.0

Published by jcwillox over 3 years ago

Changelog

New Features

  • Add ability to specify custom package managers (#91)
  • Add Windows 11 Logo and Improve Logo Detection (#88)
  • Add PS packages information (#90)

Improvements

  • Workaround locale issue in PS 7.1+ (670463f)
  • Rewrote disk info to use Windows API calls instead of WMIC (#94)

Fixes

  • Handle terminal detection error (ae576e0)
winfetch - v2.1.0

Published by jcwillox over 3 years ago

In this release, the winfetch repository was moved from lptstr/winfetch to kiedtl/winfetch see #81 for more information. There were also several improvements to the backend and @rashil2000 removed our dependency on ImageMagick by performing image processing using PowerShell which should be much faster and more reliable.

Changelog

Fixes

  • Fix compatibility with scoop-search (#79)
  • Fix error with disk info when a CD drive is installed (#74)

New Features

  • Remove ImageMagick dependency (#75)
  • Show packages through winget (#85)

New Info

  • weather (#71)
winfetch - v2.0.0

Published by jcwillox over 3 years ago

This major release is backwards compatible with older versions, however, the configuration style and internals have changed significantly. Several new info segments have been added, along with the ability to configure the order of info segments and to add custom segments, as well as many other features, improvements and bug fixes. Two new maintainers have also been added, @jcwillox and @rashil2000.

Changelog

Fixed

  • Fixed errors when using strict-mode
  • Fixed errors when using -noimage
  • Fixed issues with image processing especially for larger images
  • Fixed detailed help not showing

New Features

  • Improved terminal detection
  • Improved scoop pkgs speed
  • Disable unused package managers, use -showpkgs <enabled pkgs>
  • Change the order of info segments
  • Insert blank info lines
  • Hide the colorbar
  • Colorbar now shows 16 colors
  • Add custom info segments in the config
  • Info lines are now written out progressively
  • Info segments can now display multiple lines
  • Show info for multiple disks, use -showdisks *
  • Added legacy windows logo, use -switchlogo to use the alternate logo
  • Added -all parameter to show all built-in info segments (regardless of your config)
  • Added -stripansi parameter to disable colors/fancy formatting similar to --stdout in neofetch
  • Added -configpath parameter and WINFETCH_CONFIG_PATH environment variable to override the default location of the config
  • Command-line parameters will now override those set in the config
  • Long lines will now be truncated instead of wrapping to the next line
  • Added a basic legacy branch for systems older than Windows 7
  • The default config is now embedded within winfetch.ps1 and is generated automatically if your config doesn't exist
  • Added percentage bars to cpu, memory, disk and battery, they are configured similar to neofetch, for example, use winfetch -cpustyle bar -diskstyle textbar

New Info

  • kernel
  • resolution
  • motherboard
  • battery
  • local_ip
  • public_ip
  • cpu_usage
  • locale
  • theme

New Configuration

We have also switched to a much more modular approach for info segments, this simplified the code and made it easier to add new info segments. This change also allows users to add custom info segments in their config. The default config has been updated, see the configuration docs for more information.

If you never used winfetch -genconf before then you should automatically be switched to the new config, otherwise, you can regenerate a new config with winfetch -genconf.
Optionally, you can attempt to migrate your old configuration, this commit may help.

Benchmarks

There have been many improvements to speed since v1.2.0. Comparing v1.2.0 to v2.0.0 with the same segments enabled 1500ms -> 350ms which is around a 4x improvement. More details can be seen on the winfetch vs neofetch benchmarks.

winfetch - v1.3.0

Published by kiedtl almost 4 years ago

Various fixes and improvements.

  • The OS field now shows more specific information.
  • The Memory field's style was changed to used / total. The information is rounded to one decimal space.
  • The Disk field now shows the percentage of used space in parens (instead of the disk label).
winfetch - 1.2.0

Published by kiedtl over 5 years ago

Winfetch is now cleaner, faster, and smaller.

Changelog

  • [+] Add support for PowerShell 5 (@TheIncorrigible1)
  • [!] Rewrite internals, Winfetch is now faster
  • [+] Make Winfetch output redirectable
  • [+] Add contributing guide
  • [!] Add support for new configuration style (@TheIncorrigible1)
  • [!] Cleaned logic and added consistent style (@TheIncorrigible1)
  • [!] Dependencies curl and PowerShell 6 no longer needed

Support for PowerShell 5

Thanks to (@TheIncorrigible1), support for PowerShell 5 was added and #3 was closed. You can now run Winfetch on older machines without PowerShell 6.

Internal rewrite

Again, thanks to (@TheIncorrigible1), major parts of Winfetch were rewritten, making v1.2.0 slightly faster (see benchmarks).

Also, the part of Winfetch that displays information was rewritten from scratch, and is now about 30 lines shorter.

Redirectable output

You can now redirect Winfetch output to a file, like so:

$ winfetch >> file

... and view the file in the terminal with cat:

$ cat file

Color, style, images, etc. will all be preserved intact in the file and can be viewed without problems.

You can now save Winfetch output in a file and cat the file when needed instead of re-running Winfetch.

New configuration

Configuration was rewritten in v1.2.0, and is slightly more intuitive.

You might want to manually delete your configuration file and run winfetch -genconf to re-generate the configuration.

Other minor changes

You can now run man (scoop which winfetch) to view help.

Alternatively, you can just run the following:

$ winfetch -help

Benchmarks

Benchmark #1: ./winfetch-old.ps1
  Time (mean ± σ):      3.994 s ±  0.040 s    [User: 0.0 ms, System: 13.6 ms]
  Range (min … max):    3.950 s …  4.070 s    10 runs

Benchmark #2: ./winfetch-new.ps1
  Time (mean ± σ):      3.610 s ±  0.046 s    [User: 33.8 ms, System: 85.5 ms]
  Range (min … max):    3.561 s …  3.718 s    10 runs

Summary
  './winfetch-new.ps1' ran
    1.11 ± 0.02 times faster than './winfetch-old.ps1'

The Winfetch source is also 3KB smaller, as well as almost 150 loc shorter.

winfetch - 1.1.0

Published by kiedtl over 5 years ago

This release fixes an output-related issue on Cmder/ConEmu, as well as adding a few new information fields and merging the package manager/packages installed fields. This version also adds some cool new feaatures, as well as some more minor ones.

Changelog

  • [*] Fixed issue #2: color bar color does not reset in Cmder/ConEmu
  • [+] Added field for current terminal emulator
  • [+] Added ability to enable/disable title and dashes in config
  • [!] Normalized order of information fields (like Neofetch)
  • [+] Added support for custom ASCII image in the terminal! Yay!
  • [+] Added -noimage flag to not display any image or logo
  • [+] Added -help flag to Winfetch that displays a help message
  • [!] Merged package managers/packages installed fields into one field

Custom images

Winfetch now has the ability to print ASCII images in the terminal! yay!

All you need to do is add the -image flag when you call Winfetch via the terminal:

$ winfetch -image /path/to/image.png

If you want Winfetch to grap your wallpaper instead of a custom image path, just specify wallpaper as the image.

$ winfetch -image wallpaper

You can also specify a default image via the configuration by adding the following line to your config file:

$image = "/path/to/image.png"

Example

(Note: this image may be slightly outdated.)

-noimage flag

Winfetch also provided a -noimage flag, which forces Winfetch to output only information - no images, no ASCII logos, etc.

This option will override the -image flag.

Issues fixed

In v1.0.0, the color bar would not reset the color, leading to one of the lines of the Windows logo having a white background:

This issue only appears in ConEmu and Cmder, however. (See #2)

Terminal emulator field

Now, you can also see which terminal you are using:

Terminal: Alacritty v0.2.9

This feature works by retrieving the parent process of the current PowerShell instance.

Disable/enable dashes and title

In Winfetch, the title/dashes are the first two fields:

user@COMPUTER
-------------

These two can now be enabled/disabled via the configuration with the $show_title and the $show_dashes variables.

Merged package manager/packages installed fields

Instead of appearing as two separate fields like so:

Package Managers: Scoop & Chocolatey
Packages: 128 packages installed

They now appear as only one field:

Packages: 1024 (scoop), 34 (choco)

Other changes

In this version, the order of the fields has been changed to better reflect the default order of Neofetch info.

Also, a -help option has been added to Winfetch, which briefly list available options and their uses.

winfetch - 1.0.0

Published by kiedtl over 5 years ago

This release fixes different miscellaneous bugs, as well as adding support for different information fields; most importantly, however, v1.0.0 adds support for a custom WinFetch configuration.

Changelog

  • [*] Fixed issue #1: uptime does not display properly
  • [+] Add support for custom configuration
  • [+] Add field for package manager
  • [+] Add field for packages installed count

Changes in uptime field (minor)

Previously, WinFetch would retrieve the number of seconds from the Get-Uptime cmdlet and manually calculate the number of days, hours, or minutes. This resulted in garbled/incorrect output:

Uptime: 0 day hours 56 minute

This bug is now fixed, and WinFetch now shows correct output:

Uptime: 3 hours 56 minutes

Package manager / package count field

WinFetch now has the ability to detect what package manager you are using (e.g. Scoop or Chocolatey) and how many packages you have installed:

Package Managers: Scoop & Chocolatey
Packages: 97 packages installed

Configuration

WinFetch now has a custom configuration feature. You can generate a default configuration by running:

./winfetch -genconf

WinFetch will download a default configuration from this repository to $env:XDG_CONFIG_HOME/winfetch (or ~/.config/winfetch/).

The default configuration looks like this:

# ===== WINFETCH CONFIGURATION =====

# Add a '#' to any of the lines in 
# this file to enable their output.

# $show_os                  = $false
# $show_computer            = $false
# $show_uptime              = $false
# $show_cpu                 = $false
# $show_gpu                 = $false
# $show_memory              = $false
# $show_disk                = $false
# $show_pkgs                = $false

$show_pwsh                = $false
$show_pkgmngr             = $false

To disable an information field, just remove the # from that line:

$show_os = $false			# DISABLED
# $show_os = $false			# ENABLED!
winfetch - Beta v0.1.1

Published by kiedtl over 5 years ago

Beta release. Download the .zip file, extract and run ./src/winfetch.ps1.

Changelog

  • [+] Add support for disk usage
  • [+] Add support for PowerShell version
winfetch - Beta v0.1.0

Published by kiedtl over 5 years ago

Beta release. Download the .zip file, extract and run ./src/winfetch.ps1.