From the 2.0 release but it applies here too:
> Some of the config options/arguments were renamed/changed and Neofetch will warn you on run if you're using deprecated options (`neofetch -v`). For this release I recommend using this release with a fresh config file so that you can make use of the new documentation.
> I say this every release; This changelog is incomplete, for a full list of changes take a look through the commit history. Neofetch now has an unspoken commit style so reading the commit history won't hurt as much as it used to.
Thanks to everyone who contributed this release, there were a lot of new faces this time around. :)
## Contributors
- **[@konimex](https://github.com/konimex)**
- **[@iandrewt](https://github.com/iandrewt)**
- **[@jorgegonzalez](https://github.com/jorgegonzalez)**
- **[@z33ky](https://github.com/z33ky)**
- **[@mstraube](https://github.com/mstraube)**
## IRC
Neofetch now has an irc channel at `#neofetch` on Freenode. If you have any questions, issues or ideas feel free to join the irc channel and I'll be happy to assist you. I know that we've already got the gitter chat but hopefully this makes things easier for those without a github account. :)
[![Freenode](https://img.shields.io/badge/%23neofetch-%20on%20Freenode-brightgreen.svg)](http://irc.lc/freenode/neofetch)
## OS
- Added support for AIX.
- Added support for GNU/kFreeBSD.
- Added support for MINIX.
- Added support for MX.
- Added support for GrombyangOS.
- Added support for AntiX.
- Added support for TrueOS.
- Added support for SalentOS.
- Added support for Open Source Media Center (OSMC).
- Added support for Gentoo FreeBSD.
- Added support for Joyent SmartOS.
- Added support for Windows (MSYS2).
## General
- Travis now runs [shellcheck](https://github.com/koalaman/shellcheck) on every commit and pull request.
- We've had to exclude around 10 lint errors, see this wiki page for why we did this:
- https://github.com/dylanaraps/neofetch/wiki/Shellcheck-Exclusions
- Optimize usage of get_de(), get_wm() and get_term().
- We were calling these multiple times, we now check to see if they were run previously.
- Optimize info caching, only check for cache files in scripts that use caching.
- Cleanup `main()`.
- Renamed `old_flags()` --> `old_options()`.
- The manpage is now generated using `help2man`. `help2man` parses the output of `--help` and `--version` to create a manpage. This ensures that our manpage stays 1:1 with the script documentation. We actually found a lot of outdated info in the old manpage thanks to this.
- A new flag was added called `--gen-man` which generates a neofetch manpage in your current directory.
- Delete most of `info()` and instead call `prin()`.
- This removes a lot of duplicate code between `info()` and `prin()`.
- Remove `printf` subshells and instead use `printf -v` to declare the variables.
- Set fixed `$PATH` in the beginning of the script.
- Fixed artifacts when using line-breaks in TTYs.
- Removed executable permission from config files. BASH can source them even if they're un-executable.
- All errors are now sent to `stderr`.
## Info
**Shell**
- [Fish] Fixed memory leak caused by Fish.
- Added support for `xonsh`.
- Fixed version output on `ksh`.
- Rewrote the function to remove duplicate code. All shells now use `$SHELL --version` to get the version info, with the exception of `mksh` which doesn't have a `--version` flag.
**Uptime**
- Moved duplicate code to a function.
- Changed `$uptime_shorthand` to `on` by default.
**Desktop Environment**
- Fixed issues where MATE wouldn't be detected properly.
- Added fallback to `$DESKTOP_SESSION`, `$MATE_DESKTOP_SESSION_ID` and `$GNOME_DESKTOP_SESSION_ID`.
- Hide Desktop Environment if it matches Window Manager.
**CPU**
- [Linux] Don't simplify `cpufreq` speed option names for no reason.
- [Linux] Fixed issues with CPU name detection for architectures other than x86/amd64/ARM.
- [NetBSD] Remove case statement in favor of 1 line test.
- Remove case sensitive substitutions.
- We match everything case insensitively so they were pointless.
- Simplify check for low CPU speeds.
- Expanded `cpu_temp` to take the values `C` and `F`. This means you can now display the CPU temperature as Fahrenheit.
**CPU Usage**
- Added Haiku cores command.
- Updated Linux and macOS commands to the match the commands in the `get_cpu()` function.
**GPU**
- [Linux] Each GPU is now printed on a separate line.
- [Linux] Added `--gpu_type` / `$gpu_type` which lets you display `all`, `dedicated` or `integrated` GPUs.
**Memory**
- [Solaris] Fixed inaccurate used memory size.
**~~Birthday~~ Install Date**
- Renamed `get_birthday()` -- > `get_install_date()`
- Removed all `date` usage from `get_install_date()`.
- Added a new function called `convert_time()` which takes the time stamped `ls` output and converts it to a pretty format. The function only uses bash so its much faster than calling `date`. This makes things simple and keeps the output consistent across all Operating Systems. Example: `2016-12-06 16:58:58.000000000` --> `Tue 06 Dec 2016 4:58 PM`
- Added an option so users can choose between using 24-hour and 12-hour time format
- `get_install_date()` will detect which `ls` program is being used instead of hardcoding them per OS.
**Disk**
- Rewrote function from scratch.
- The function is `40` lines smaller than before and works on all \[1\] versions of `df` we tested on \[2\].
- Added the option/flag `disk_show` which allows you to specify which disks, mount points or directories to show the disk info of. (One per line)
- Added the option/flag `disk_subtitle` which allows you to specify how we label each disk. (Mount point or Disk name)
- Removed all percentage calculation since `df` already provides us with the percentage.
- Warn the user if `df` isn't installed.
- Fixed broken output if `df` wasn't installed but the function was enabled.
\[1\] The function doesn't work on Haiku since their `df` is wildly non-standard. (The output format and flags are 100% different from all of the other `df` versions floating around.)
\[2\] Tested on `GNU`, `Busybox`, `BSD`, `Solaris` and `macOS` `df` versions.
**Theme**
- [KDE] Don't display GTK Themes if KDE is detected.
- [KDE] If `kde[0-9]-config` isn't found, try and look for `$HOME/.kde`.
**Window Manager Theme**
- Fixed WM Theme not detected on MATE. **[@mstraube](https://github.com/mstraube)**
- Fixed WM Theme detection on KDE. **[@mstraube](https://github.com/mstraube)**
**Song**
- [cmus] Simplify block and fix `artistsort` bug.
- Removed `state` detection.
- Removed duplicate `dbus-send` commands. **[@mstraube](https://github.com/mstraube)**
- Hide output if no song is playing.
- Enforce order `artist - title` in `get_song_dbus()`. **[@mstraube](https://github.com/mstraube)**
- Added support for xmms2. **[@z33ky](https://github.com/z33ky)**
- Added support for Exaile music player. **[@mstraube](https://github.com/mstraube)**
- Added support for JuK .**[@mstraube](https://github.com/mstraube)**
- Added support for Bluemindo. **[@mstraube](https://github.com/mstraube)**
- Added support for Guayadeque Player. **[@mstraube](https://github.com/mstraube)**
- Added support for Yarock. **[@mstraube](https://github.com/mstraube)**
- Added support for Qmmp. **[@mstraube](https://github.com/mstraube)**
- Added support for QuodLibet. **[@mstraube](https://github.com/mstraube)**
- Added support for Mopidy. **[@d3rrial](https://github.com/d3rrial)**
**Terminal Font**
- Added support for Alacritty.
- Added support for Konsole. **[@mstraube](https://github.com/mstraube)**
- Added support for Sakura Terminal. **[@mstraube](https://github.com/mstraube)**
- [Termite] Fixed incorrect font chosen. **[@mstraube](https://github.com/mstraube)**
- [Termite] Also look at default config. **[@mstraube](https://github.com/mstraube)**
**Battery**
- [MacOS] Fixed issue where battery always appears as charging. **[@jorgegonzalez](https://github.com/jorgegonzalez)**
**Local IP**
- [BSD and Solaris] Merged the detection to Linux.
- [Windows] Support multiple interfaces.
**Color Blocks**
- Use start++ instead of adding it manually after case. **[@konimex](https://github.com/konimex)**
- Fixed bug where color blocks wouldn't respect width in TTYs.
- Cursor positioning now takes `$block_height` into account.
- Fixed all artifacts in virtual consoles.
- Merged `$start` and `$end` into an array called `block_range`.
- This makes the config option match the command-line flag `--block_range`.
## Images
- [iTerm2] Fixed blank images.
- Fixed bug where image mode would attempt to run in a TTY.
## Wallpaper
- Decode URI filenames.
## Ascii
- Simplified ascii file handling.
- Removed a call to `tr` for those using `bash 3`.
- Fixed distro detection issues.
- Removed the assumption that `first word in distro --> ascii file name`
- Added Ubuntu-Studio. **[@konimex](https://github.com/konimex)**
- Fixed bug causing macOS ascii art to be used on other Operating Systems.
- Display warning about 'ascii' being the new default mode.
- Removed `ascii_logo_size` in favor of `ascii_distro='{arch,crux,gentoo}_small'`.
- [PCBSD] Use TrueOS ascii art.
- Added Void Linux (small) and Alpine Linux (small).
## Screenshot
- Use arrays for `$scrot_program`
## Args
- Fixed bug where `neofetch --config` sourced the user config twice.
- Cleaned up config arg handling.