diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2fe537ba..e794d894 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,12 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
+
+## [Unreleased]
+
This release bumps the version number up to `4.0.0` as it contains major
changes to how Neofetch is packaged and installed.
@@ -83,3 +92,2573 @@ discussed proposed changes in the bug tracker. I appreciate it. :+1:
**Window Manager**
- Added support for detecting `dwm`.
+
+
+## [3.4.0] - 2018-04-05
+
+This release adds support for a large number of Linux distros as well as support for the latest macOS and iOS devices. This release also contains a large number of bug fixes and some minor features.
+
+I'm pretty sure that this release is the largest in terms of number of contributors. Thanks to everyone who contributed this release!
+
+## Contributors
+
+- [**@yslgirl**](https://github.com/yslgirl)
+- [**@iandrewt**](https://github.com/iandrewt)
+- [**@chrisweeksnz**](https://github.com/chrisweeksnz)
+- [**@dawidd6**](https://github.com/dawidd6)
+- [**@MitchWeaver**](https://github.com/MitchWeaver)
+- [**@StarryTony**](https://github.com/StarryTony)
+- [**@rage311**](https://github.com/rage311)
+- [**@matoro**](https://github.com/matoro)
+- [**@szfcbr**](https://github.com/szfcbr)
+- [**@ArmstrongJ**](https://github.com/ArmstrongJ)
+- [**@robertwolter**](https://github.com/robertwolter)
+- [**@JadeMatrix**](https://github.com/JadeMatrix)
+- [**@MindTooth**](https://github.com/MindTooth)
+- [**@aidanharris**](https://github.com/aidanharris)
+- [**@khoacao96**](https://github.com/khoacao96)
+
+
+## OS
+
+- Added support for ArchMerge.
+- Added support for MagpieOS.
+- Added support for PostMarketOS.
+- Added support for Hyperbola GNU/Linux-libre [**@mstraube**](https://github.com/mstraube)
+- Added support for macOS High Sierra. [**@yslgirl**](https://github.com/yslgirl)
+- Added support for Container Linux by CoreOS. [**@chrisweeksnz**](https://github.com/chrisweeksnz)
+- Added support for 2017 iOS devices. [**@iandrewt**](https://github.com/iandrewt)
+- Added support for LEDE. [**@dawidd6**](https://github.com/dawidd6)
+- Added support for Pop!\_OS. [**@jliles**](https://github.com/jliles)
+- Added support for Lunar Linux.
+- Added support for 32-bit IRIX. [**@szfcbr**](https://github.com/szfcbr)
+- Added support for FreeMINT. [**@ArmstrongJ**](https://github.com/ArmstrongJ)
+- Added support for Anarchy Linux. [**@robertwolter**](https://github.com/robertwolter)
+- Added support for Calculate Linux. [**@robertwolter**](https://github.com/robertwolter)
+- Added support for NuTyX. [**@robertwolter**](https://github.com/robertwolter)
+- Added support for openSUSE Tumbleweed. [**@robertwolter**](http://github.com/robertwolter)
+- Fixed detection bug with Gentoo.
+- Fixed detection bug with OpenWRT. [**@dawidd6**](https://github.com/dawidd6)
+- Fixed detection bug with LEDE. [**@dawidd6**](https://github.com/dawidd6)
+- Fixed detection bug with TrueOS. [**@dawidd6**](https://github.com/dawidd6)
+- Fixed detection bug with Windows Subsystem for Linux and Crouton when an OS without lsb_release is installed.
+- Fixed ChromeOS detection.
+
+
+## General
+
+- Added more info to verbose mode for debugging.
+- Fixed bug in prompt location calculation.
+- Fixed prompt bug in OpenBSD.
+- Fixed broken AppleScript blocks. [**@JadeMatrix**](https://github.com/JadeMatrix)
+- Fixed function not working in bash 3. [**@JadeMatrix**](https://github.com/JadeMatrix)
+- Swapped sequences from `\033` to `\e`.
+- Fixed Pacman name conflict with the game. [**@MitchWeaver**](https://github.com/MitchWeaver)
+- Removed the last `echo` in the script.
+- Fixed typo. [**@khoacao96**](https://github.com/khoacao96)
+
+
+## Ascii
+
+- Added color updates for Kubuntu logo. **Maulik Mistry**
+- Added new DragonflyBSD logo. [**@MitchWeaver**](https://github.com/MitchWeaver)
+
+
+## Images
+
+- [MacOS/iTerm2] Fixed thumbnail not appearing. [**@StarryTony**](https://github.com/StarryTony)
+- Fixed bug with getting wallpaper from feh.
+- Added `pixterm` backend.
+- Don't force resolution in `catimg`.
+
+## Info
+
+**Desktop Environment**
+
+- Added GNOME version.
+- Added support for TDE.
+
+**Window Manager**
+
+- Added support for most (*if not all*) current Wayland compositors/window manager's.
+- Added support for some non-EWMH window managers.
+- [macOS] Fixed `chunkwm` being detected as `Kwm`. [**@iandrewt**](https://github.com/iandrewt)
+
+**Window Manager Theme**
+
+- Fixed `sawfish` detection.
+- [macOS] Now detects Light/Dark theme. [**@JadeMatrix**](https://github.com/JadeMatrix)
+
+**Install Date**
+
+- [macOS] Fixed Install Date. [**@iandrewt**](https://github.com/iandrewt)
+
+**Theme**
+
+- Fixed KDE font issue. [**@mstraube**](https://github.com/mstraube)
+
+**CPU**
+
+- [linux] Detect the correct temperature file to use.
+- [windows] Removed `$temp` usage as it's an envar.
+- [OpenBSD] Fixed CPU temperature that fails to appear in some systems. [**@rage311**](https://github.com/rage311)
+
+**GPU**
+
+- [linux] Added driver version to NVIDIA output.
+- [linux] Added driver version to Intel output.
+- [macOS] Added NVIDIA support. [**@iandrewt**](https://github.com/iandrewt)
+
+**Memory**
+
+- [OpenBSD] Fixed memory usage values. [**@rage311**](https://github.com/rage311)
+
+**Package Manager**
+
+- Added detection for Sabotage Linux's `butch` [**@MitchWeaver**](https://github.com/MitchWeaver)
+- Changed `pacman` detection to fix issues in other distros. [**@MitchWeaver**](https://github.com/MitchWeaver)
+
+**Resolution**
+
+- [macOS] Fixed errors on non-retina screens. [**@iandrewt**](https://github.com/iandrewt)
+
+**Song**
+
+- Added option to manually specify the player to use.
+- Added support for Elisa. [**@mstraube**](https://github.com/mstraube)
+- macOS detection is now more reliable. [**@JadeMatrix**](https://github.com/JadeMatrix)
+
+**Model**
+
+- Remove more unneeded outputs. [**@konimex**](https://github.com/konimex)
+
+**Disk**
+
+- Update Haiku's detection. [**@dawidd6**](https://github.com/dawidd6)
+
+**Battery**
+
+- Fixed Windows detection. [**@matoro**](https://github.com/matoro)
+
+**Shell**
+
+- Added support for `tcsh`. [**@szfcbr**](https://github.com/szfcbr)
+
+**Terminal Font**
+
+- Added more paths for Alacritty.
+- Added font support for Kitty. [**@MindTooth**](https://github.com/MindTooth)
+- Fixed Kitty `font_size` regex. [**@aidanharris**](https://github.com/aidanharris)
+- Added support for `XTerm.vt11.facename`. [**@aidanharris**](https://github.com/aidanharris)
+
+
+## [3.3.0] - 2017-09-14
+
+Thanks to everyone who contributed this release, I appreciate ya!
+
+## Contributors
+
+- **[@konimex](https://github.com/konimex)**
+- **[@mstraube](https://github.com/mstraube)**
+- **[@dominiklohmann](https://github.com/dominiklohmann)**
+- **[@ybden](https://github.com/ybden)**
+- **[@lexruee](https://github.com/lexruee)**
+- **[@AMDmi3](https://github.com/AMDmi3)**
+- **[@deadda7a](https://github.com/deadda7a)**
+- **[@winneon](https://github.com/winneon)**
+- **[@DamnWidget](https://github.com/DamnWidget)**
+
+
+## General
+
+- Config file now has a `.conf` suffix.
+- Neofetch now assumes target directories (config file and ASCII directory) at install time, this fixes problems with systems such as NixOS.
+- `stdout` mode is now reimplemented.
+ - This mode prints the information in plain text.
+ - You can use it with `--stdout`.
+ - Example: https://gist.github.com/dylanaraps/151c205322cf3acae62661b76464a3f7
+- Fixed prompt location if color blocks are disabled.
+- Make makefile more portable. **[@AMDmi3](https://github.com/AMDmi3)**
+
+
+## Operating System
+
+- Added support for AryaLinux. **[@mstraube](https://github.com/mstraube)**
+- Added support for Amazon Linux AMI.
+- Added support for Artix Linux. **[@DamnWidget](https://github.com/DamnWidget)**
+- Added support for Endless OS.
+- Added support for Sabotage Linux.
+- Added support for Siduction. **[@lexruee](https://github.com/lexruee)**
+- Added support for Source Mage.
+- Added support for Parsix GNU/Linux. **[@mstraube](https://github.com/mstraube)**
+- Added support for Nurunner. **[@mstraube](https://github.com/mstraube)**
+- Fixed Raspbian being detected as ChromeOS.
+
+
+## Images
+
+- [w3m] Fixed w3m-img not found on NixOS.
+- Added support for using all image types as input.
+ - Neofetch now supports `svg`, `tiff` etc.
+
+
+## ASCII
+
+- Added small Debian.
+- Added small FreeBSD.
+- Added small macOS.
+- Added small NixOS.
+
+
+## Info
+
+**GPU Driver**
+
+- [Linux] Added a new info function (*off by default*) to display the GPU Driver currently in use.
+- Add `info "GPU Driver" gpu_driver` to your config to use it.
+
+**CPU**
+
+- [Linux] Fixed inaccurate output on ARM SoC devices.
+- [Linux] Fixed CPU speed not appearing on PowerPC systems.
+- [NetBSD] Added support for CPU temperature. (NOTE: This only supports newer Intel processors)
+- Fixed inaccurate speed output in systems with CPU speed less than 1 GHz.
+- Deprecated `cpu_shorthand` in favor of `cpu_brand`.
+
+**GPU**
+
+- [Linux] Filter out duplicate entries.
+
+**Model**
+
+- Added support for QEMU/KVM.
+- Renamed subtitle to `Host:`.
+
+**Uptime**
+
+- [AIX/IRIX] Fixed Neofetch crashing when calculating uptime.
+
+**Terminal**
+
+- [SSH] Fixed infinite loop if neofetch is run on non-interactive shells.
+
+**Terminal Font**
+
+- Added support for LXTerminal. **[@mstraube](https://github.com/mstraube)**
+- Added support for GNUStep Terminal. **[@mstraube](https://github.com/mstraube)**
+- Fixed Xfce4-terminal font output when system-wide font is used. **[@mstraube](https://github.com/mstraube)**
+- Fixed MATE-Terminal issue. **[@mstraube](https://github.com/mstraube)**
+- Fixed URxvt font detection failing if `.` is used. **[@winneon](https://github.com/winneon)**
+
+**Theme**
+
+- [Qt/KDE] Fixed inaccurate theme naming. **[@mstraube](https://github.com/mstraube)**
+- [Qt/KDE] GTK theme is now shows as well.
+
+**Window Manager**
+
+- [macOS] Added support for `chunkwm`. **[@dominiklohmann](https://github.com/dominiklohmann)**
+- Fix incorrect output when using WindowMaker. **[@mstraube](https://github.com/mstraube)**
+
+**Song**
+
+- Added support for Pogo. **[@mstraube](https://github.com/mstraube)**
+- Fixed bug with players not being found.
+
+**Battery**
+
+- Added battery support for Thinkpads and other devices that use the `CMB` naming for batteries. **[@deadda7a](https://github.com/deadda7a)**
+
+
+## Images
+
+- Fixed division by 0 error in XTerm.
+
+## Screenshot
+
+- Use `maim` over `scrot`. **[@ybden](https://github.com/ybden)**
+- Fixed `scrot_cmd` arguments not being used. **[@winneon](https://github.com/winneon)**
+
+
+## [3.2.0] - 2017-06-21
+
+This release was long overdue and I apologise for the delay. I've been busy with study among other things. This update is smaller than usual but fixes some important bugs.
+
+
+Thanks once again to everyone that contributed!
+
+
+## Contributors
+
+- **[@MatthewCox](https://github.com/MatthewCox)**
+- **[@dawidd6](https://github.com/dawidd6)**
+- **[@erikdubois](https://github.com/erikdubois)**
+- **[@konimex](https://github.com/konimex)**
+- **[@mstraube](https://github.com/mstraube)**
+- **[@Artoriuz](https://github.com/Artoriuz)**
+- **[@WilsonRU](https://github.com/WilsonRU)**
+- **[@Takeya-Yuki](https://github.com/Takeya-Yuki)**
+- **[@iandrewt](https://github.com/iandrewt)**
+- **[@LER0ever](https://github.com/LER0ever)**
+
+
+## Operating System
+
+- Added support for IRIX.
+- Added support for Arch XFerience. **[@mstraube](https://github.com/mstraube)**
+- Added support for CloverOS.
+- Added support for Maui. **[@mstraube](https://github.com/mstraube)**
+- Added support for KS Linux. **[@Takeya-Yuki](https://github.com/Takeya-Yuki)**
+
+
+## General
+
+- Minimum required BASH version is now 3.2.
+ - (Neofetch has always used 3.2+ features, I've just made it obvious now in the documentation.)
+- Fixed config file not being created on first install.
+
+
+## Images
+
+- [w3m] Added `--loop` flag which makes Neofetch draw the image once per second.
+ - This is a workaround to the images disappearing on resize and workspace switch.
+ - Use Ctrl+C to exit.
+- [w3m] Fixed w3m-img not found on FreeBSD 12. **[@Artoriuz](https://github.com/Artoriuz)**
+
+
+## Ascii
+
+- Added Ubuntu-MATE ascii art.
+- Fixed ArchLabs ascii art. **[@erikdubois](https://github.com/erikdubois)**
+- Updated GoboLinux ascii art. **[@WilsonRU](https://github.com/WilsonRU)**
+- Fixed `--ascii_distro windows10` not working.
+
+
+## Info
+
+**Distro**
+
+- [Solaris, AIX, Haiku] The machine architecture will now be shown properly instead of machine ID.
+
+**Terminal Emulator**
+
+- Added support for Neovim terminal emulator. **[@LER0ever](https://github.com/LER0ever)**
+- Added font support for mate-terminal. **[@mstraube](https://github.com/mstraube)**
+- [Termite] Fix font mismatch. **[@MatthewCox](https://github.com/MatthewCox)**
+- Use `$SSH_TTY` for terminal detection if machine is connected via SSH.
+- Break from loop if PPID can't be accessed/not found.
+
+**GPU**
+
+- [Linux] Fixed GPU sort.
+
+**Song**
+
+- Do not detect ibus\* or indicator\* as player. **[@dawidd6](https://github.com/dawidd6)**
+
+**Model**
+
+- Specify when running on a Hackintosh. **[@LER0ever](https://github.com/LER0ever)**
+
+
+**Memory**
+
+- [FreeBSD]: Fix inaccurate free memory calculation.
+
+
+## [3.1.0] - 2017-04-25
+
+Hi, It's been quite a while since the last release. I've been extremely busy with university and I finally found some time to flag a new release. (I've been meaning to do this for a few weeks now)
+
+Though I haven't worked on Neofetch as much as I'd have liked, most of the changes this time round come from some familiar faces as well as some new contributors! Thanks to everyone for contributing, I appreciate it.
+
+
+## Contributors
+
+- **[@konimex](https://github.com/konimex)**
+- **[@mstraube](https://github.com/mstraube)**
+- **[@jorgegonzalez](https://github.com/jorgegonzalez)**
+- **[@ikeydoherty](https://github.com/ikeydoherty)**
+- **[@eliezio](https://github.com/eliezio)**
+- **[@nilesr](https://github.com/nilesr)**
+- **[@dritter](https://github.com/dritter)**
+- **[@HebaruSan](https://github.com/HebaruSan)**
+- **[@LER0ever](https://github.com/LER0ever)**
+- **[@obrevenge](https://github.com/obrevenge)**
+- **[@ajjames31](https://github.com/ajjames31)**
+- Eliezio Oliveira
+
+
+## Operating System
+
+- Added Chrome OS Crouton support. **[@LER0ever](https://github.com/LER0ever)**
+- Added support for SliTaz. **[@nilesr](https://github.com/nilesr)**
+- Added support for Nitrux. **[@mstraube](https://github.com/mstraube)**
+- Added support for DesaOS.
+- Added support for MinGW.
+- Added support for OBRevenge. **[@obrevenge](https://github.com/obrevenge)**
+- Added support for ArchLabs. **[@obrevenge](https://github.com/obrevenge)**
+
+
+## Screenshot
+
+The screenshot feature no longer requires any configuration before working. We no longer hardcode `${HOME}/Pictures/neofetch` as the screenshot location. Here's how the `-s` and `-su` flags now function:
+
+- `neofetch -s` will save a file in the current directory named: `neofetch-$(date +%F-%I-%M-%S-${RANDOM}).png`
+- `neofetch -s test.png` will save a file in the current directory called `test.png`
+- `neofetch -s ~/` will save a file in `~` called `neofetch-$(date +%F-%I-%M-%S-${RANDOM}).png`
+- `neofetch -s ~/test.png` will save a file in `~` called `test.png`.
+
+
+## ASCII
+
+- Arch ASCII art now uses lighter colors.
+- Fixed Ubuntu-Studio ASCII setting. **[@@HebaruSan](https://github.com/HebaruSan)**
+- Updated Parabola logo. **[@mstraube](https://github.com/mstraube)**
+- Updated Raspbian ASCII art.
+
+
+## Images
+
+- Added `libsixel` backend.
+- Added `termpix` backend.
+- Only use a zero width space in the `w3m` backend.
+- Fixed bug causing terminal size to not be found.
+- [iTerm2] Fixed images not appearing inside `tmux`.
+
+
+## Info
+
+**Locale**
+
+- Added a new function to display system locale. (Disabled by default)
+
+**CPU**
+
+- Added option to show decimals in CPU speed.
+
+**Terminal Font**
+
+- Added \*experimental\* font detection for iTerm2. **[@dritter](https://github.com/dritter)**
+
+**Window Manager**
+
+- [MacOS] Added support for Kwm. **[@jorgegonzalez](https://github.com/jorgegonzalez)**
+- [MacOS] Added support for Spectacle. **[@jorgegonzalez](https://github.com/jorgegonzalez)**
+- [MacOS] Added support for Amethyst. **[@jorgegonzalez](https://github.com/jorgegonzalez)**
+
+**Battery**
+
+- Added battery support for Bay Trail devices. **[@mstraube](https://github.com/mstraube)**
+
+**Disk**
+
+- Added new option to only show dir name in subtitle.
+
+**Song**
+
+- Added support for Deepin Music. **[@mstraube](https://github.com/mstraube)**
+- Added support for Tomahawk. **[@mstraube](https://github.com/mstraube)**
+- Fixed Audacious song output when `dbus-send` fails. **[@mstraube](https://github.com/mstraube)**
+
+**Local IP**
+
+- [Linux] Fixed UID showing instead of Local IP on several versions/configs of iproute2.
+
+**Packages**
+
+- [eopkg] Use a faster detection method. **[@ikeydoherty](https://github.com/ikeydoherty)**
+
+**Resolution**
+
+- [macOS] Fixed `screenresolution` not appearing at all on newer versions. **[@eliezio](https://github.com/eliezio)**
+- [Linux] Show decimals.
+
+**GPU**
+
+- [Linux] Hide duplicate GPU lines (Only display 1).
+
+
+## [3.0.1] - 2017-01-30
+
+This minor release fixes all of the bugs that were found in the 3.0 release.
+
+Thanks for all of the bug reports and contributions. :)
+
+## Contributors
+- **[@SomaUlte](https://github.com/SomaUlte)**
+- **[@jorgegonzalez](https://github.com/jorgegonzalez)**
+- **[@dawidd6](https://github.com/dawidd6)**
+- **[@mstraube](https://github.com/mstraube)**
+- **[@YellowApple](https://github.com/YellowApple)**
+- **[@siiptuo](https://github.com/siiptuo)**
+- **[@Head-on-a-Stick](https://github.com/Head-on-a-Stick)**
+- **[@konimex](https://github.com/konimex)**
+
+## Operating System
+- Added support for ArchBox Linux.
+
+## General
+- Fixed output if subtitles are disabled and `prin` is used in an info function.
+- Fixed underlines not working when used with `prin`.
+- Fixed HAIKU install path. **[@YellowApple](https://github.com/YellowApple)**
+
+## Config
+- Fixed default config not found.
+- Don't set locale in config file.
+
+## Info
+
+**Memory**
+- Changed memory label to `MiB` on OS that output memory in Mebibytes.
+
+**Shell**
+- Fixed a crash when the user has `bash 3` installed.
+
+**Packages**
+- Added support for Chromebrew.
+
+**GPU**
+- [Linux] Display detailed information about Intel GPUs. **[@SomaUlte](https://github.com/SomaUlte)**
+
+**Color Blocks**
+- Fixed issue with `color_blocks="off"` adding an extra newline to the output.
+
+**Song**
+- Don't print `$song` if it's empty and `song_shorthand` is on. **[@mstraube](https://github.com/mstraube)**
+- Fixed `mpd` detection when `mpd` is on a different host. **[@dawidd6](https://github.com/dawidd6)**
+- Use `get_song_dbus` for Audacious. **[@mstraube](https://github.com/mstraube)**
+
+**Terminal Font**
+- [Alacritty] Fixed font detection. **[@siiptuo](https://github.com/siiptuo)**
+
+## Images
+- [iTerm2] Fixed issue with line-breaks printing spaces over the image. **[@jorgegonzalez](https://github.com/jorgegonzalez)**
+- Fixed issue with images not working in Terminology.
+- Fixed issue when `image_source` was set to `wall`.
+- [w3m-img] Fixed issues with `w3m-img` and `tmux`.
+
+## Ascii
+- [Windows 10] Fixed `ascii_distro` not working.
+- Fixed a bug where the backend is `ascii` but the image_source is an image file.
+- Fixed custom ascii files not working.
+- Removed extra backslashes from OpenBSD ascii art. **[@Head-on-a-Stick](https://github.com/Head-on-a-Stick)**
+
+## Scrot
+- Added message to let users know that a screenshot was taken.
+
+
+## [3.0] - 2017-01-23
+
+This is another large release containing over `550` commits from 7 contributors. Due to the size and large amount of changes made this release expect at least one minor release to fix any bugs that come up.
+
+The version number has been bumped to `3.0` due to the large amount of breaking changes introduced this update. I've added backwards compatibility for all of the new changes but there may still be some breakage. I highly recommend starting with a new config to avoid any issues that may arise.
+
+Neofetch now supports displaying images using `catimg`, `libcaca` and `jp2a`. See this wiki page for screenshots. https://github.com/dylanaraps/neofetch/wiki/Image-Backends
+
+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)**
+- **[@gavinhungry](https://github.com/gavinhungry)**
+
+## 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)
+
+## Collaborators
+
+I have given collaborator access to both **[@konimex](https://github.com/konimex)** and **[@iandrewt](https://github.com/iandrewt)**. In short this allows them to push directly to the master branch of the repo, manage the issue tracker and also merge pull requests. They've been a huge help the past year so this made sense to me.
+
+## OS
+- Added support for AIX.
+- Added support for AntiX.
+- Added support for GNU/kFreeBSD.
+- Added support for Gentoo FreeBSD.
+- Added support for GrombyangOS.
+- Added support for Joyent SmartOS.
+- Added support for Mer.
+- Added support for MINIX.
+- Added support for MX.
+- Added support for Open Source Media Center (OSMC).
+- Added support for SalentOS.
+- Added support for TrueOS.
+- Added support for Windows (MSYS2).
+
+## General
+- The default config file is now installed to `/etc/neofetch/config` and acts as a system-wide config file for Neofetch. Editing this file will make the changes available to all users on the system. Those packaging Neofetch **without** using the Makefile will need to make changes to support this.
+- The Makefile was rewritten to remove GNU-isms.
+- Removed executable permission from config files. BASH can source them even if they're un-executable.
+- 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
+- Neofetch now supports relative path values when specifying the location to images, ascii files and config files.
+ - For example, `neofetch --w3m Pictures/Wallpapers/10.jpg` and `neofetch --w3m 10.jpg` now work.
+- Optimize usage of `get_de()`, `get_wm()` and `get_term().
+ - We were calling these multiple times, we now only run them once and check to see if they were run previously.
+- Optimize info caching, only check for cache files in functions that use caching.
+- 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.
+- Fixed artifacts when using line-breaks in TTYs.
+- All errors are now sent to `stderr`.
+- Renamed `XFCE` --> `Xfce`. **[@gavinhungry](https://github.com/gavinhungry)**
+- Cleanup `main()`.
+- Renamed `old_flags()` --> `old_options()`.
+
+## 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.
+
+**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.
+- 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.
+
+**Resolution**
+- [Windows] Declare variables locally to fix conflicts in other functions.
+
+**~~Birthday~~ Install Date**
+- Renamed `get_birthday()` -- > `get_install_date()`
+- Removed all `date` command 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**
+- 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)**
+- [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)**
+
+**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)**
+- Added support for Pantheon Terminal. **[@mstraube](https://github.com/mstraube)**
+- Added support for deepin-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.
+- All of the image/ascii backend handling was rewritten. Backend and Image/File/Directory selection is universal now and should make usage easier.
+ - Added `catimg` backend.
+ - Added `caca` backend.
+ - Added `jp2a` backend.
+ - `--image` has been replaced with `--backend`.
+ - `--backend` takes `ascii`, `caca`, `catimg`, `jp2a`, `iterm2`, `off`, `tycat`, `w3m`.
+ - Shortcut flags were added for easy picking of backends.
+ - Each flag can take a file, image or directory as an argument.
+ - For example: `neofetch --w3m /path/to/img.jpg` `neofetch --ascii /path/to/file`
+ - `--w3m`
+ - `--iterm2`
+ - `--tycat`
+ - `--ascii`
+ - `--off`
+ - `--catimg`
+ - `--caca`
+ - `--jp2a`
+ - All image and ascii file selection has been replaced with the universal `--source`.
+ - The value of `--source` can be any of the following:
+ - `auto`, `ascii`, `wallpaper`, `/path/to/img`, `/path/to/ascii`, `/path/to/dir/`.
+- Fixed bugs with image shuffle mode.
+
+## 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.
+
+
+## [2.0.2] - 2016-12-07
+
+This minor release fixes some issues related to new features added in 2.0. These issues weren't picked up in the time between 2.0 and 2.1 and another minor release is needed due to the Packages issue being rather important.
+
+These issues were fixed by reverting the GPU caching and Packages optimizations. These issues occurred because not enough testing was done before these were implemented in master. In the future I'll take more care with testing these larger changes before they hit the master branch and I apologize for there being yet another release in one week.
+
+I also want to apologize to those packaging Neofetch for this unexpected release.
+
+## Info
+
+**Packages**
+- Fixed issue where package output was off by one.
+
+**GPU**
+- Fixed bug with `--gpu_brand` not working.
+
+**Theme**
+- [Cinnamon] Fixed incorrect information.
+
+
+## [2.0.1] - 2016-12-06
+
+This release of Neofetch fixes some important bugs that were found after 2.0 was release. This includes: Detection issues on CentOS and Linux Mint systems, Incorrect Memory usage on BSD, Linux GPU detection issues and more.
+
+This release also includes a rewrite of the screenshot functions. You no longer have to set the program to use in your config. Neofetch now automatically finds and uses whatever screenshot tool is available on your machine.
+
+See the screenshot section below for more info.
+
+The `get_packages()` function was optimized. Neofetch's packages function works by detecting which package managers are installed on your system and then using a sum of those as the packages output.
+
+Previously the function would call `wc -l` for every package manager, instead we now call `wc -l` only once at the end of the function.
+
+Thanks for reporting these bugs and also suggesting these features. Don't be shy, report any bugs, annoyances or etc with Neofetch and I'll happily help you out.
+
+Thanks to **[@konimex](https://github.com/konimex)** for all of his contributions this release. :)
+
+## Contributors
+- **[@konimex](https://github.com/konimex)**
+
+## General
+- Use `$kernel_name` instead of `$distro` in some functions. **[@konimex](https://github.com/konimex)**
+
+## Info
+
+**Distro**
+- Added support for Apricity OS.
+- Added support for GoboLinux. **[@konimex](https://github.com/konimex)**
+- Added support for SwagArch.
+- Added support for AOSC OS.
+- Added support for Parrot Security.
+- Fixed bug that caused Linux Mint systems to be identified as Ubuntu.
+- Fixed bug that caused CentOS systems to not be detected.
+
+**Memory**
+- [BSD] Fixed high memory output.
+
+**GPU**
+- [Linux] Fixed bug where sound card was detected as GPU.
+
+**Packages**
+- Only call `wc -l` once at the end of the function instead of calling it once per package manager.
+
+**Desktop Environment**
+- Show Cinnamon version.
+
+## Image
+- Changed default image mode to `ascii`.
+ - See: [Images in the terminal](https://github.com/dylanaraps/neofetch/wiki/Images-in-the-terminal#enabling-image-mode)
+
+## Wallpaper
+- Rewrote wallpaper function.
+- Prioritize DE wallpaper setters before falling back to `feh`/`nitrogen`.
+- Added support for XFCE's wallpaper setter.
+- Added support for Solaris and GNU Hurd. **[@konimex](https://github.com/konimex)**
+
+## Ascii
+
+![ubuntu](https://u.teknik.io/zILeY.png)
+
Old Ubuntu Logo vs New Ubuntu Logo
+- Updated Ubuntu logo to the latest version.
+ - You can use the old logo by launching neofetch with `--ascii_distro ubuntu_old` or by changing `$ascii_distro` to `ubuntu_old` in your config file.
+- `--ascii_colors` no longer changes text colors.
+- Added ascii art for Ubuntu-Budgie.
+ - You can use the ascii art by launching Neofetch with `--ascii_distro ubuntu-budgie` or by changing `$ascii_distro` to `ubuntu-budgie` in your config file.
+- Fixed bug causing RFRemix to use the incorrect ascii art.
+
+## Screenshots
+
+Neofetch will now automatically find and use whatever screenshot tool is available on your system. The screenshot tool is no longer hardcoded and you don't have to edit your config file to specify what program to use.
+
+On Haiku and macOS, Neofetch will use the built-in tools to take screenshots. On systems with an X server Neofetch will look for and use the following programs: `scrot`, `maim`, `import (imagemagick)`, `imlib2_grab` and `gnome-screenshot`.
+
+The config option `scrot_cmd` and the commandline flag `--scrot_cmd` are still there for those who want to use custom flags, programs or scripts to take screenshots.
+- Automatically use whatever screenshot tool is available.
+- Added screenshot support to macOS
+- Added screenshot support to Haiku
+
+## Screenshot Upload
+- [teknik.io] Fixed images not uploading with the right filetype.
+- Changed default image upload host to `teknik.io`.
+ - teknik doesn't compress images whereas imgur does.
+ - You can change this back to imgur by using `--image_host imgur` or by editing your config file.
+
+
+## [2.0] - 2016-12-02
+
+This is the biggest release of Neofetch in a long time. 97 files were changed with 2700~ additions to 2900~ deletions. Although the changelog isn't as interesting this time majority of the script has been rewritten, restructered and cleaned up. Every function and variable name follows a proper naming scheme and a large number of bugs were fixed.
+
+Since this version of Neofetch differs so much from the previous versions expect a 2.0.1 release a few days later to fix any bugs that are found after release.
+
+The ascii file handling was rewritten, ascii art is now stored/read as plain text! All `eval` usage was removed from Neofetch, vim fold markers/comments are no longer enforced and we now run on GNU Hurd, Haiku and more.
+
+When I was rewriting parts of the script I thought to myself; Neofetch is using the bash shebang and does depend on bash so why not take full advantage of the features bash has to offer? All tests were changed from `[` to `[[`, arithmetic tests now use `(())` and C style for loops are used where possible.
+
+All of the config file documentation was rewritten and multiple wiki pages were created to hopefully make using/configuring Neofetch easier than ever before. You can see the wiki here: [Neofetch Wiki](https://github.com/dylanaraps/neofetch/wiki)
+
+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 Neofetch **will** include backwards compatibility with the old config file but I'd like to remove this stuff in ~~2.1~~ 3.0. 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 all of the contributors this time around, you guys are a big help and I really appreciate your work towards making Neofetch better and better each release. :)
+
+## Contributors
+- **[@konimex](https://github.com/konimex)**
+- **[@TonCherAmi](https://github.com/TonCherAmi)**
+- **[@JorgeGonzalez](https://github.com/JorgeGonzalez)**
+- **[@iandrewt](https://github.com/iandrewt)**
+- **[@iwamatsu](https://github.com/iwamatsu)**
+- **[@Brottweiler](https://github.com/Brottweiler)**
+
+## Packages
+- Neofetch is now in Debian's official repos.
+- Neofetch is now in Ubuntu's official repos.
+
+## General
+- All functions/variables now follow the same naming scheme. `example_func_name`
+- Call `uname` once and cache the output instead of calling `uname` 4-5 times.
+- Cleaned up and rewrote large chunks of the script.
+- Convert math tests to correct syntax.
+- Fixed `--disable` and capitalized arguments.
+- Fixed issue where `bold=off` wouldn't work.
+- Fixed issue where info wasn't detected properly but the subtitle was still displayed.
+- Fixed issue where using `--disable func func` broke other args.
+- Removed all traces of `eval` from Neofetch.
+- Removed all vim fold markers and stopped enforcing folding for vim users.
+ - See [#431](https://github.com/dylanaraps/neofetch/pull/431)
+- Rewrote all of config file documentation.
+- Swap all tests from `[` to `[[`.
+
+## Operating System
+- Added support for ChaletOS.
+- Added support for DracOS.
+- Added support for GNU Hurd. **[@konimex](https://github.com/konimex)**
+- Added support for Haiku. **[@konimex](https://github.com/konimex)**
+- Added support for Korora. **[@konimex](https://github.com/konimex)**
+- Added support for Netrunner. **[@konimex](https://github.com/konimex)**
+- Added support for Pardus.
+- Added support for iPhone 7 and 7 Plus.
+
+## Ascii
+- Ascii art is no longer read as a script and is now read as plain text.
+ - See this wiki page about the new ascii art format.
+ - https://github.com/dylanaraps/neofetch/wiki/Custom-Ascii-art-file-format
+- Neofetch now displays your OS's ascii logo if your distro's logo isn't found. **[@konimex](https://github.com/konimex)**
+ - Example: [Linux] Tux is displayed if there's no distro ascii.
+- `neofetch --ascii_distro x` now sets the mode to ascii for you. You no longer have to use a combination of `--ascii` and `--ascii_distro`.
+- [Arch Linux] Changed default ascii colors.
+- [Bunsenlabs] Changed default ascii colors.
+- Fixed issue with Solarized and certain ascii art.
+- Remove all duplicates from `get_distro_colors()`.
+- Remove execution permission flag from ascii art files. **[@iwamatsu](https://github.com/iwamatsu)**
+- Rename `colors()` to `get_distro_colors()`.
+- Rename `setcolors()` to `set_colors()`.
+- Update Netrunner ascii art.
+- Added old arch ascii logo. **[@Brottweiler](https://github.com/Brottweiler)**
+ - Useable by using `--ascii_distro arch_old` or by editing the config.
+
+## Images
+- Fixed images not appearing in st.
+- Added `to_ascii()` and `to_off()`.
+ - These functions are used when falling back to different image modes.
+- Renamed `check_old_flags()` to `old_flags()` to match `old_functions()`.
+- Split `get_image()` into `get_term_size()`, `get_image_size()`, `get_image_program()` and `make_thumbnail()`.
+- Use `$XDG_CACHE_HOME` as the thumbnail dir if available.
+
+## Wallpaper
+- Added support for Cinnamon.
+
+## Bars
+- Rename all `progress_` variables to `bar_` to match the function name.
+
+## Info
+
+**Distro**
+- [Linux] Source `/etc/*-release` files instead of having a dozen separate `awk` commands.
+ - We source `/etc/os-release` before falling back to `/etc/*-release`.
+- Remove lsb_release detection.
+ - This change was made since lsb_release prints innacurate results on some distros.
+- Added fallback when distro isn't found. **[@konimex](https://github.com/konimex)**
+ - Example: `Linux (Unknown)`
+
+**Packages**
+- [Solus] If `pisi` is unavailable, use `eopkg`.
+- Added package detection for Lunar Linux. **[@konimex](https://github.com/konimex)**
+- Added package detection for TinyCore. **[@konimex](https://github.com/konimex)**
+- Remove `/usr/games` from `$PATH` to fix issues with pacman game.
+
+**GPU**
+- GPU is now cached till reboot.
+- [Linux] Prefer dedicated GPU over integrated GPU.
+
+**Terminal**
+- Added support for HyperTerm. **[@JorgeGonzalez](https://github.com/JorgeGonzalez)**
+
+**Terminal Font**
+- Added support for HyperTerm. **[@JorgeGonzalez](https://github.com/JorgeGonzalez)**
+
+**CPU**
+- [BSD] Added cpu_temp support. **[@konimex](https://github.com/konimex)**
+
+**CPU Usage**
+- [iOS] Fixed CPU usage.
+
+**Shell**
+- [bash] Simplify bash version.
+
+**Song**
+- Added support for Clementine. **[@konimex](https://github.com/konimex)**
+- Added support for GNOME Music. **[@konimex](https://github.com/konimex)**
+- Added support for Lollypop. **[@konimex](https://github.com/konimex)**
+- Added support for Pragha. **[@konimex](https://github.com/konimex)**
+
+**Public IP**
+- Cache the output of the command. **[@konimex](https://github.com/konimex)**
+- [dig] Fixed connection timed out with public_ip. **[@iandrewt](https://github.com/iandrewt)**
+
+**Resolution**
+- [MacOS] If refresh rate is empty don't append Hz.
+
+
+## [1.9.1] - 2016-11-04
+
+This is a small release which fixes various issues found in 1.9.
+
+Note: Those packaging neofetch can ignore the new file: `config/travis`
+
+## Contributors
+- **[@konimex](https://github.com/konimex)**
+- **[@fornwall](https://github.com/fornwall)**
+- **[@Head-on-a-Stick](https://github.com/Head-on-a-Stick)**
+
+## Packages
+- Neofetch is now in Termux`s repos.
+
+## General
+- [Cursor Position] Fix cursor position in URxvt when using terminal padding.
+- [Termux] Fix default ascii location. **[@konimex](https://github.com/konimex)**
+- [Termux] Fix default config location. **[@fornwall](https://github.com/fornwall)**
+- If a function fails to detect info, let the user know in verbose mode. (`-v`)
+- Removed `--test` in favor of a separate config file. Travis.ci now uses `neofetch --config travis` instead of a hacked together arg.
+
+## Operating System
+- Added support for BlankOn Linux.
+
+## Images
+- Fix division by 0 error.
+
+## Ascii
+- [Tails] Update ascii art.
+- [OpenBSD] Made ascii art thinner
+
+## Info
+
+**Prin**
+- Fix color breakage.
+- Fix bold not working.
+
+**Terminal**
+- Fix whitespace error.
+
+**Terminal Font**
+- [Termite] Fix incorrect Termite font chosen.
+- [Termite] Simplify `awk` command.
+- [xfce4-terminal] Simplify `awk` command.
+
+**Theme**
+- [Budgie] Fix incorrect GTK Theme/Icons
+
+**Window Manager Theme**
+- [Budgie (Mutter)] Don't print WM Theme.
+
+**Memory**
+- [OpenBSD] Fixed used memory usage. **[@Head-on-a-Stick](https://github.com/Head-on-a-Stick)**
+
+
+## [1.9] - 2016-11-01
+
+This change log won't cover everything that's changed. Have a look through the commit
+history for more info.
+
+There were a lot of major changes made to how things work in this release so I'm expecting
+bugs/things not working for people. Expect a 1.9.X release.
+
+I'm also looking for neofetch screenshots for the Readme, see this issue: [#405](https://github.com/dylanaraps/neofetch/issues/405)
+
+Thanks to everyone below who contributed, it's nice to see some new faces too. :)
+
+## Contributors
+- **[@konimex](https://github.com/konimex)**
+- **[@iandrewt](https://github.com/iandrewt)**
+- **[@coypoop](https://github.com/coypoop)**
+- **[@ncmprhnsbl](https://github.com/ncmprhnsbl)**
+- **[@koreacomputercenter](https://github.com/koreacomputercenter)**
+
+## General
+- Added new function called `checkoldflags` which informs users about deprecated config options.
+- Change all `OS X` references to `macOS`. **[@iandrewt](https://github.com/iandrewt)**
+- Fix corrupted text when long lines are cut-off.
+- Don't dynamically place prompt in `image=off` mode.
+- Cursor Position: Fix issues when using URxvt+Padding
+
+## Operating System
+
+![android](https://u.teknik.io/4XdJy.png)
+- Added support for Android.
+ - Dependencies:
+ - Required: `bash` and `busybox`
+ - Note: I recommend installing `termux` from the Play Store or F-Droid. Termux provides you with a fully
+ working Linux environment, doesn't require root acess and includes all dependencies.
+ - Note2: Neofetch will be packaged in `termux` thanks to **[@konimex](https://github.com/konimex)**
+ - PR [#351](https://github.com/termux/termux-packages/pull/531)
+- Added support for Bitrig. **[@konimex](https://github.com/konimex)**
+- Added support for Sparky Linux.
+- Added support for Porteus. **[@ncmprhnsbl](https://github.com/ncmprhnsbl)**
+- Added support for Red Star OS. **[@koreacomputercenter](https://github.com/koreacomputercenter)**
+
+## Packages
+- Neofetch is now in Gentoo's official repos.
+
+## Images
+
+**Fixed rendering issues in URxvt when using an XFT font.**
+
+![scrot](https://i.sli.mg/6qp9Cg.png)
+
+This was first thought to be an issue between URxvt and W3m-img and I apologize for immediately closing bug reports and dismissing comments about this.
+
+I spent yesterday trying to fix this issue and found out that launching neofetch with `--bold off`
+reduced the rendering problems. I did more digging and found out that removing all text formatting fixes the issue entirely. I later found out that adding a single unformatted character before the formatted text fixed the issue while keeping the formatting the same.
+
+I opened up this PR https://github.com/dylanaraps/neofetch/pull/358 which added options to enable a border between the image and the text to fix the issue. **[@konimex](https://github.com/konimex)** later commented informing me that we could just use a `zero-width space` to fix the issue and that we didn't need a new function/args/ugly border. doh
+
+The final fix was as simple as adding a zero-width space before the info, here's the commit.
+
+https://github.com/dylanaraps/neofetch/commit/3e9c3d648cb4c6f0d5fe5f0b96f9e29429af39d9
+
+**Removed hard dependency on `\033[14t`**
+
+Neofetch no longer requires a terminal emulator that supports `\033[14t` this means that neofetch now works in Konsole. Instead of using the escape sequence users now have three options for getting the terminal size in pixels.
+- `xdotool`
+- `xwininfo` + `xprop`
+- `xwininfo` + `xdpyinfo`
+
+Neofetch will detect whatever combination you have insalled and use these programs.
+
+Note: `\033[14t` is still supported, if images already work for you then you don't have to install anything else.
+- [w3m-img] Draw the image twice to fix rendering issues in Konsole.
+- [w3m-img] Fix cursor position when using `yoffset`.
+- [w3m-img] Add `-bg` support with the new option `--bg_color`.
+ - `neofetch --bg_color blue` will make the background behind the image blue.
+ - Note: The background color is only visible behind transparent parts of the image.
+- If the terminal width is found as `0`, fallback to ascii mode.
+
+## Ascii
+- Bold ascii art by default.
+- Fixed incorrect prompt location when using `ascii_logo_size small`.
+- Fixed incorrect colors used on light terminals.
+- Update Void Linux ascii art. **[@ncmprhnsbl](https://github.com/ncmprhnsbl)**
+- Update Solus ascii art.
+
+## Info
+
+**Distro**
+- Expanded `distro_shorthand` to macOS, BSD and Solaris. **[@konimex](https://github.com/konimex)**
+- Removed `osx_buildversion` and `osx_codename` in favour of `distro_shorthand`. **[@konimex](https://github.com/konimex)**
+
+**Desktop Environment**
+- [Windows] Added support for showing DE.
+ - Windows 8 and above: `Modern UI/Metro`
+ - Windows 7 and below: `Aero`
+
+**Window Manager**
+- [Windows] Added support for custom WMs/Shells.
+ - Neofetch now detects `blackbox`, `bugn`, `Windawesome`, `emerge` and `litestep`.
+
+**Window Manager Theme**
+- [Windows] Added support for Blackbox themes.
+
+**CPU**
+- Added `cpu_speed` which lets you hide/show the speed in the output.
+- Expanded `cpu_cores` option by adding two new values, `logical` and `physical`.
+ - `logical`: Show all virtual cores (hyperthreaded).
+ - `physical`: Only show physical cores.
+- [Linux] Added support for showing CPU temperature.
+ - Added new option called `cpu_temp`.
+ - Note: This is disabled by default and can be enabled by changing the value of `cpu_temp` in your config to `on`.
+- [macOS] Print physical cores instead of hyper-threaded cores. **[@iandrewt](https://github.com/iandrewt)**
+- [iOS] Rewrite CPU function.
+
+**GPU**
+- [iOS] Rewrite GPU function.
+- [Linux] Rewrite GPU function.
+ - Neofetch also caches the info until reboot.
+
+**Uptime**
+- Rewrote uptime function to use seconds since boot instead of the `uptime` command.
+ - Every OS/Distro now has the pretty `uptime -p` output!
+- Remove `up` from output.
+
+**Resolution**
+- [macOS] Add @2x label for retina resolutions. **[@iandrewt](https://github.com/iandrewt)**
+
+**Memory**
+- [Linux] Correctly calculate used memory.
+ - The output should now match `conky`, `htop` and etc.
+ - Source: https://github.com/KittyKatt/screenFetch/issues/386#issuecomment-249312716
+- [NetBSD] Fix memory output for sizes over 4GB. **[@coypoop](https://github.com/coypoop)**
+
+**Shell**
+- Hide shell path by default.
+- Show shell version by default.
+
+**Battery**
+- [Linux] Rewrote and simplified battery function.
+- Removed `battery_shorthand`
+- Removed `battery_num`
+
+**Theme Font**
+- [XFCE] Fixed incorrect font output.
+
+**Color Blocks**
+- Fixed `block_width` not working.
+- Fixed `% s` appearing in color blocks when neofetch is run from `tty`
+- Fixed `block_width` being off by one. A value of `2` made the blocks `3` wide instead of `2` wide.
+
+**Terminal and Terminal Font**
+- [Linux] Use `/proc/$PPID/comm` instead of parsing `ps`.
+- Uppercase first letter of `termfont` output.
+- Don't print broken output of busybox's `ps`.
+- Remove path from output.
+
+**Song**
+- [macOS] Fix iTunes automatically opening. **[@iandrewt](https://github.com/iandrewt)**
+- Added support for Audacious. **[@ncmprhnsbl](https://github.com/ncmprhnsbl)**
+- Rewrote song function, it's now much faster/cleaner.
+
+
+## [1.8.1] - 2016-10-04
+
+This release fixes various bugs found in 1.8.
+
+**General**
+- Fixed issues with single args (`-s` `-su`) being treated as values for other args.
+
+## Info
+
+**GPU**
+- Added `gpu_brand` to enable/disable showing GPU brand in output. (AMD/NVIDIA/Intel)
+
+**DE**
+- Added Cinnamon version number to output.
+
+**WM Theme**
+- Fix GNOME showing wrong WM Theme.
+
+**Battery**
+- Fixed battery not appearing when set to `all`.
+
+**Terminal Font**
+- [Termite] Ignore lines starting with `;`.
+
+**Progress Bars**
+- Fixed progress bars displaying incorrectly in image mode.
+
+## Screenshot
+- Added support for uploading screenshots to Imgur and Teknik.
+ - Adds two new identical flags `--upload` and `-su`.
+- Changed default screenshot name so that it works on Windows.
+
+## Images
+
+**General**
+- Added a tiny delay before running w3m-img which suprisingly fixed all flickering issues in VTE based terminals. See [#349](https://github.com/dylanaraps/neofetch/pull/349)
+
+**Wallpaper**
+- Fix wallpapers with spaces in the filename from not showing up.
+
+## Ascii
+- Added logo mode which only displays the ascii art.
+ - Adds two new identical flags `--logo` and `-L`.
+
+
+## [1.8] - 2016-10-02
+
+This version of neofetch is vastly different from the previous versions and this
+changelog won't cover everything that's changed. Have a look through the commit
+history for more info.
+
+There were a lot of major changes to how things work in this release so I'm expecting
+bugs/things not working for people. Depending on what comes up we my release a few 1.8.X
+versions.
+
+This changelog is a bit of a mess this time around and I apologize but it should at least
+get the message across.
+
+Android support didn't make it into this release as it requires testing on more devices.
+If you've got a device running android and would like to help test out the branch, check
+out the open PR here: [#322](https://github.com/dylanaraps/neofetch/pull/322)
+
+This release also saw a lot more contributors which makes me really happy. Thanks to those
+below for helping out. :)
+
+### Contributors
+- **[@hashhar](https://github.com/hashhar)**
+- **[@williamkray](https://github.com/williamkray)**
+- **[@dar-irl](https://github.com/dar-irl)**
+- **[@gabe565](https://github.com/gabe565)**
+- **[@maddcoder](https://github.com/maddcoder)**
+- **[@iandrewt](https://github.com/iandrewt)**
+- **[@aranega](https://github.com/aranega)**
+- **[@vendion](https://github.com/vendion)**
+- **[@konimex](https://github.com/konimex)**
+- **[@undrskr](https://github.com/undrskr)**
+
+### General
+- Added `--version` to print the neofetch version.
+- Fix issue when title and background were both color `7`.
+- Fix issue with incorrect text color when `barinfo` is set.
+- Fixed various Travis.ci bugs.
+- Fix lint errors.
+- Moved all whitespace trimming to a dedicated function.
+ - Neofetch will no longer have any whitespace issues in the output.
+ - See [trim()](https://github.com/dylanaraps/neofetch/commit/d3c87cdaacf1ea9fbf245146c910dc53b49dba08#diff-e863270127ca6116fd30e708cdc582fcR2789)
+- Quote all variable/command substitutions.
+- Removed `line_wrap` as having it set to `on` broke the output.
+- Removed `stdout` mode since it's been broken for a while now and I don't see the
+ point in fixing it.
+- Removed in-script config in favor of sourcing the default user config.
+- Remove all instances of `! -z` since they're pointless.
+- Remove all `bc` usage by simplifying math.
+- Suppress `getconfig` and `getscriptdir` errors.
+- Suppress `xprop` errors since it's now an optional dependency.
+- The prompt is now dynamically set in image mode instead of being anchored to the
+ bottom of the window. See [#279](https://github.com/dylanaraps/neofetch/pull/279) and [#299](https://github.com/dylanaraps/neofetch/pull/299) for examples.
+- The title at the top is now much more colorful.
+- Moved commands near the bottom of the script to a new function called `main`.
+- Use `read -s` instead of `stty -echo` and `stty +echo`.
+- Use faster `$(())` syntax for index variables.
+- `-v` now shows where the config files were sourced from.
+- Cleanup
+- Neofetch no longer clears the screen when run in ascii or image=off modes.
+ - You can use the old behavior by aliasing `clear && neofetch` to `neofetch`.
+
+### OS
+- Added support for Windows 10 Linux subsystem. **[@konimex](https://github.com/konimex)**
+- Added support for GuixSD. **[@konimex](https://github.com/konimex)**
+- Added support for Devuan Linux.
+- Added support for GalliumOS.
+- Added support for Openwrt.
+- Added support for PacBSD. **[@vendion](https://github.com/vendion)**
+- Added support for Rosa.
+- Added support for Solaris (Oracle / OpenIndiana). **[@konimex](https://github.com/konimex)**
+- Added support for macOS Sierra. **[@iandrewt](https://github.com/iandrewt)**
+- Fixed various iOS related issues.
+
+### Packages
+- Added Cydia package for iOS.
+ - See https://github.com/dylanaraps/neofetch#ios-1
+
+### Info
+
+**Terminal and Terminal Font**
+
+![img](https://ipfs.pics/ipfs/QmR39ScLi56Yt73pA3YWri9ayatN6mpwSTEmM8RVdeRsB1)
+- Added `term` function to display current terminal emulator. [1]
+- Added `termfont` function to display current terminal font. [2]
+
+[1] Both of these functions are enabled by default.
+[2] See this wiki page for more info about the functions: [Link](https://github.com/dylanaraps/neofetch/wiki/Terminal-and-Terminal-Font-detection)
+
+**Model**
+- Added `model` a new function which displays your device's product vendor/name.
+
+![Mode](https://ipfs.pics/ipfs/Qmcy2o5xZCELxroNLHAhY96ZsrwBFR86NGDCu5e2UPVn4b)
+
+**Distro**
+- Added `distro_shorthand` **[@konimex](https://github.com/konimex)**
+
+**Title**
+- Added additional fallback which gets the current username from `$HOME`.
+
+**Color Blocks**
+- Added `--block_height` / `$block_height` to change the number of lines high each
+ block will be.
+
+![Big Blocks](https://ipfs.pics/ipfs/QmZpR8ukZNfGXkhXjTwAy3eWVRCeHdrurhgAdV5CSiTVvR)
+
+**Resolution**
+- [Windows] Fix resolution on Windows 10. **[@dar-irl](https://github.com/dar-irl)**
+- [Mac OS X] Hide refresh rate if `0`. **[@iandrewt](https://github.com/iandrewt)**
+- Fixed `xrandr` output on systems not using gawk.
+- [Linux / BSD] Shortened refresh rate output.
+
+**Shell**
+- Show `fish` shell version. **[@maddcoder](https://github.com/maddcoder)**
+
+**Song**
+- Added support for Deadbeef. **[@konimex](https://github.com/konimex)**
+- Added support for Amarok. **[@konimex](https://github.com/konimex)**
+- Added support for Banshee. **[@konimex](https://github.com/konimex)**
+- Added support for Rhythmbox. **[@konimex](https://github.com/konimex)**
+- [Cmus] Prevent `tag artistsort` from showing up in song title. **[@williamkray](https://github.com/williamkray)**
+- [Cmus] Fix order of music tags. **[@iandrewt](https://github.com/iandrewt)**
+- [Cmus] The function now works on both OS X and Linux.
+- [iTunes] Fix song not displaying. **[@iandrewt](https://github.com/iandrewt)**
+
+**CPU**
+- Simplify CPU Core command.
+
+**CPU Usage**
+- Fixed broken CPU usage output on BSD and Windows.
+- Fixed misleading output on Linux / Mac OS X.
+- Moved CPU Usage to its own dedicated function.
+
+### Image
+
+![terminology](https://ipfs.pics/ipfs/QmbVEUREBg4hMG22WrQ2bkt2sZZzyTEP5EEXmHRw7MHD6A)
+- Added image support for terminology with `tycat`. **[@aranega](https://github.com/aranega)** [1]
+- Fixed issues with lines getting drawn through images. See [#296](https://github.com/dylanaraps/neofetch/pull/296)
+- Added `--crop_mode none` / `crop_mode=none` to disable cropping the images.
+- Added `--size none` / `size=none` to disable resizing / cropping the images.
+- Removed `image_position`
+- `--image off` now behaves like the other image modes.
+
+[1] `tycat` is a terminology builtin that works similarly to w3m-img. Those using terminology
+now have working image support.
+
+##### Shuffle mode
+- Fixed directory going out of bounds causing a fallback to ascii mode. **[@gabe565](https://github.com/gabe565)**
+- Simplified shuffle function.
+- Path no longer requires a `/` at the end. **[@aranega](https://github.com/aranega)**
+
+### Ascii
+- Add `ascii_bold` which allows you to bold the ascii art.
+- Added `--ascii_distro mac` as a shorter way of using the OS X ascii.
+- Added missing `$ascii_distro` config option.
+- Better `Ubuntu-GNOME` ascii art. **[@hashhar](https://github.com/hashhar)**
+- Custom ascii files (`--ascii path/to/ascii_file`) now follow the same format as the
+ distro ascii files. See this wiki page that explains the syntax. [Link](https://github.com/dylanaraps/neofetch/wiki/Custom-Ascii-art-file-format)
+- Fix a color issue with Debian's ascii logo.
+- Fix an error with an unescaped char in Windows' ascii art.
+- Use a pure bash solution to getting ascii size.
+- Updated Solus ascii art to match new logo. **[@undrskr](https://github.com/undrskr)**
+
+
+## [1.7] - 2016-05-14
+
+Hello, sorry this release took so long. I've been extremely busy with uni and
+haven't had as much time to work on neofetch.
+
+As always, check the `Following HEAD` wiki page for all breaking changes
+this release.
+
+I'm also looking for some new Readme screenshots, see this github issue: **https://github.com/dylanaraps/neofetch/issues/245**
+
+### Contributers
+
+Thanks to the following people for contributing this release.
+- **[@dawidd6](https://github.com/dawidd6)**
+- **[@tudurom](https://github.com/tudurom)**
+- **[@iandrewt](https://github.com/iandrewt)**
+
+### General
+- Made it easier to get verbose logs.
+- Added issue template for github.
+- New repo for Crux. **[@tudurom](https://github.com/tudurom)**
+- Added release badge to readme. **[@dawidd6](https://github.com/dawidd6)**
+- Updated man page and usage with newest flags.
+- Font is now enabled by default to match Screenfetch's default config.
+- Fixed `bold` option not working.
+
+### OS / Distro Support
+- Added support for Kogaion Linux.
+- Added support for Apple iOS. **[@iandrewt](https://github.com/iandrewt)**
+ - Neofetch should now work on your iPhone, iPod and iPad.
+- Added support for DragonflyBSD.
+- Added support for PCBSD.
+
+![iOS screenshot](https://ipfs.pics/ipfs/QmYmPhwpFrxwySW2phdxH1TyQ6tCgCnxtYtbEEe3RY5TwZ)
+
+### Error Messages
+
+Neofetch now supports displaying error messages and saving a verbose log for
+troubleshooting.
+
+![log](https://ipfs.pics/ipfs/QmeTWGKozY79zcxbrgXueyTRfQcTUe7ZmDqLv4ASgJB4G4)
+- Added `-v` to print error messages to stdout.
+- Added `-vv` to print a verbose log to stdout. [1]
+
+[1] Use `neofetch -vv 2> file` to save a verbose log for bug reporting.
+
+### Info
+- Rewrote most BSD info functions, they're now much smaller and work on more
+ BSD distros.
+
+**prin**
+- Format changes to fix issues with colons in string. This change also makes
+ `prin` use the same args as `info`.
+
+``` sh
+# OLD Format
+prin "Subtitle: Text goes here"
+
+# NEW Format
+prin "Subtitle" "Text goes here"
+```
+
+**Title**
+- Made title faster by using `$HOSTNAME` when available.
+
+**Underline**
+- Fixed bug with `--underline on/off` not working.
+- Underlining is no longer hardcoded to title length meaning you can now
+ underline any part of the output and the length will match.
+- `$underline` was renamed to `$underline_enabled`.
+
+``` sh
+# OLD Variable
+underline="on"
+
+# NEW Variable
+underline_enabled="on"
+```
+
+**Distro**
+- Fix arch issues with ARM cpus.
+- We now use `uname -m` to get the arch instead of hardcoding `x86`.
+- Moved distro detection to a function called `getdistro`.
+- Fixed issue with `ascii_distro` not working.
+
+**CPU**
+- Fixed issues when cpu speed was < 1Ghz
+- Cleanup of CPU function.
+- Don't print `Dual-Core` or `Quad-Core` in CPU output.
+
+**GPU**
+- [Linux] More GPU substitutions for AMD cards.
+- Added BSD support using `glxinfo`.
+
+**Memory**
+- [Linux / Windows] Use `memavail` if available for a more accurate output.
+
+**Packages**
+- Package count now works when the user has multiple package managers installed.
+ For example, if the user has both `dpkg` and `pacman` installed the function will
+ add up the packages from both package managers to get a grand total. (`dpkg pkgs` + `pacman pkgs`)
+
+**Uptime**
+- Fixed various issues with OS X and BSD.
+
+**Desktop Environment**
+- [ Linux ] Fallback to using `xprop` if `$XDG_CURRENT_DESKTOP` is empty.
+- Use `$de` instead of `$XDG_CURRENT_DESKTOP` for wallpaper and theme detection.
+- Fixed xprop bug with DE detection when X wasn't running.
+- Don't assume that user is using MATE if marco wm is detected.
+
+**Window Manager Theme**
+- Fixed bug when `$de` was unset.
+
+**Color Blocks**
+- Fixed bug when the blocks wrap a line causing a large white strip to appear.
+
+### Ascii
+- Added KDE neon ascii art.
+- Added small OpenBSD ascii art.
+ - Credit goes to ufetch.
+- Reduced the size of NetBSD's ascii art.
+- [Windows 8/8.1] Use modern windows ascii art.
+
+### Colors
+- Fixed bug with `--colors` not working with all 256 terminal colors.
+- `--colors 7` now uses the color white. [1]
+- `--colors fg` now uses the foreground color. [1]
+
+[1] Neofetch tried to be smart before by assuming that the foreground color
+would be white or black. This caused issues for those setting the foreground
+color to red or etc. This change adds a new value for `--colors` and `colors=()`
+called `fg` which will set the color to your foreground color.
+
+### Progress Bars
+- The default progress bar look was changed to `[=====-----]` instead of `━━━━━━━━━━`
+ fix issues with older systems.
+- You can now enable/disable a border around the progress bars with `progress_border`.
+
+``` sh
+# $progress_border on
+[=====-----]
+
+# $progress_border off
+=====-----
+```
+- You can now individually set the progress bar characters by using
+ `progress_char_elapsed` and `progress_char_total`. This means that you can
+ have a seperate character for the elapsed and total portions of the bar.
+
+``` sh
+# Examples with $progress_border on
+
+# Elapsed: =
+# Total: -
+[=====-----]
+
+# Elapsed: .
+# Total: " "
+[..... ]
+
+# Elapsed: /
+# Total: " "
+[///// ]
+```
+
+
+## [1.6] - 2016-04-01
+
+# Neofetch 1.6
+
+Another ~~week~~ another release of Neofetch.
+
+This release focused on cleanup, bug fixes and optimization. Neofetch
+is now much much faster than last release and more bug free than ever
+before!
+
+This release surprisingly didn't break much at all, see the latest entry in
+the wiki page `Following HEAD`.
+
+https://github.com/dylanaraps/neofetch/wiki/Following-HEAD
+
+![scrot](https://ipfs.pics/ipfs/QmTD6cRmYfLdrvvyLfGdUfBDCzE5uYNsRpLUx7vLUFkYxM)
+
+### Contributors
+
+Thanks to the following people for contributing this release.
+- **[@iandrewt](https://github.com/iandrewt)**
+- **[@dawidd6](https://github.com/dawidd6)**
+- **[@onodera-punpun](https://github.com/onodera-punpun)**
+- **[@onespaceman](https://github.com/onespaceman)**
+- **[@firstEncounter](https://github.com/firstEncounter)**
+- **[@konimex](https://github.com/konimex)**
+
+### General
+- Added Travis CI support.
+- Added `--test` which is meant for testing and prints all functions.
+- Cleanup of Distro, Uptime, Memory and CPU functions.
+- We now use a more reliable white-space trimming substitution for CPU/GPU etc.
+- Use `stty` instead of `read -s` to fix an issue with escape sequences
+ appearing in the output.
+- Line wrap is now disabled by default.
+- Implement base support for caching specific info. This will eventually
+ allow us to speed up the script by caching info that won't change for a
+ long period of time like the CPU/GPU. [1]
+- Fixed a locale issue when `LC_ALL` is unset on the user's system.
+- Change all usage of `$HOME/.config` to `$XDG_CONFIG_HOME` with a fallback to `$HOME/.config`.
+
+[1] You can clear the cache with `--clean`.
+
+### Colors
+
+![vs](https://ipfs.pics/ipfs/QmNVw4zm78tgBGdhDJ1FZ1aktpEtVapVtNWWMMKh5aitrZ)
+
+
Neofetch 1.5 vs Neofetch 1.6
+ +Neofetch now works with bright color schemes and uses the foreground color instead of hard-coding white.
+ +