2016-02-27 17:44:45 -07:00
# Neofetch
2015-12-30 03:20:53 -07:00
2016-02-14 06:04:55 -07:00
[![Gitter ](https://badges.gitter.im/dylanaraps/fetch.svg )](https://gitter.im/dylanaraps/fetch?utm_source=badge& utm_medium=badge& utm_campaign=pr-badge)
2016-01-15 16:18:50 -07:00
This is the home of my fetch script! This script gathers info < br / >
2016-01-29 20:31:40 -07:00
about your system and prints it to the terminal next to an image, < br \>
your distro's logo or any ascii art of your choice!
2015-12-30 03:18:17 -07:00
2016-02-24 14:00:44 -07:00
![1 ](https://ipfs.pics/ipfs/QmZFLzjhASmCVmMwfLFfnRgEYc74T3JAkFJugQnaRoobAS )
2015-12-30 03:18:17 -07:00
2016-01-20 02:40:17 -07:00
<!-- Table of Contents {{{ -->
## Table of Contents
2016-01-30 16:19:22 -07:00
- [Screenshots ](#screenshots )
2016-01-29 21:34:34 -07:00
- [Features ](#features )
2016-01-20 02:40:17 -07:00
- [Dependencies ](#dependencies )
- [Installation ](#installation )
2016-03-09 04:54:58 -07:00
- [Arch Linux ](#arch )
- [Gentoo / Funtoo ](#gentoo--funtoo )
- [CRUX ](#crux )
- [Debian / Ubuntu ](#debian--ubuntu )
2016-03-11 01:03:28 -07:00
- [Fedora ](#fedora )
2016-03-11 03:30:22 -07:00
- [RHEL / CentOS ](#rhel--centos )
2016-03-11 01:41:42 -07:00
- [Mac OS X ](#mac-os-x )
2016-03-09 04:54:58 -07:00
- [Others ](#others )
2016-01-20 02:40:17 -07:00
- [Post Install ](#post-install )
- [Usage ](#usage )
- [Frequently Asked Questions ](#frequently-asked-questions )
- [Issues and Workarounds ](#issues-and-workarounds )
- [Thanks ](#thanks )
<!-- }}} -->
2016-01-30 16:19:22 -07:00
<!-- Screenshots {{{ -->
## Screenshots
2016-02-17 15:57:48 -07:00
![Linux ](https://u.teknik.io/sW22K.png )
2016-01-30 16:19:22 -07:00
![Windows ](https://i.imgur.com/oVv5gHn.png )
![Mac OS X ](http://i.imgur.com/KEi9EEi.png )
2016-02-18 09:36:30 -07:00
![Linux ](https://ipfs.pics/ipfs/QmbqDatmoA9zyxBSXXsgj21XxaTvc5jsmvhWNccTeJVeUC )
2016-01-30 16:19:22 -07:00
<!-- }}} -->
2016-01-29 21:34:34 -07:00
<!-- Features {{{ -->
## Features
2016-02-12 04:57:45 -07:00
- Supports **Linux** , **Mac OS X** , **BSD (FreeBSD, OpenBSD & NetBSD)** and **Windows** (Cygwin)
2016-01-29 21:34:34 -07:00
- Display a **full color image** , a file containing **ascii art** or your **distro's logo** in ascii next to the info.
- The script is **fast** . We use bash builtins wherever possible and only spawn external processes when necessary.
- Take a screenshot of your desktop on script finish.
- Customize **which** info is displayed, **where** it's displayed and **when** it's displayed.
2016-02-27 17:44:45 -07:00
- See this ** [wiki page ](https://github.com/dylanaraps/neofetch/wiki/Customizing-Info )**
2016-01-29 21:34:34 -07:00
<!-- }}} -->
2016-01-05 15:59:56 -07:00
<!-- Dependences {{{ -->
2015-12-31 15:36:26 -07:00
## Dependencies
2015-12-30 03:18:17 -07:00
2016-02-02 21:25:17 -07:00
### Required dependencies:
2015-12-30 17:21:10 -07:00
2016-02-23 15:30:39 -07:00
- `Bash 3.0+`
2016-03-09 04:43:52 -07:00
- Alpine Linux: You also need `ncurses` .
2016-02-19 03:44:15 -07:00
- `xprop` \[1\]
2016-02-16 00:01:40 -07:00
- `procps-ng`
2016-02-02 21:25:17 -07:00
- Not required on OS X
2016-01-17 18:55:38 -07:00
2016-01-27 15:14:02 -07:00
2016-01-22 00:04:53 -07:00
### Optional dependencies:
2016-01-17 18:55:38 -07:00
2016-02-19 03:44:15 -07:00
- Displaying images: `w3m-img` \[2\] \[3\] or `iTerm2` \[4\]
2016-02-02 21:25:17 -07:00
- Thumbnail creation: `imagemagick`
2016-01-27 15:14:02 -07:00
2016-02-02 21:25:17 -07:00
##### Linux / BSD
2016-01-17 18:55:38 -07:00
2016-02-02 21:25:17 -07:00
- Wallpaper: `feh` , `nitrogen` or `gsettings`
- Current Song: `mpc` or `cmus`
- Resolution: `xorg-xdpyinfo`
2016-02-19 03:44:15 -07:00
- Screenshot: `scrot` \[5\]
2015-12-30 03:18:17 -07:00
2016-02-03 00:55:00 -07:00
2016-02-27 17:44:45 -07:00
\[1\] See ** [#79 ](https://github.com/dylanaraps/neofetch/issues/79 )** about why this is now a required dependency.
2016-02-19 03:44:15 -07:00
\[2\] `w3m-img` is sometimes bundled together with `w3m` .
2016-02-03 00:55:00 -07:00
2016-02-19 03:44:15 -07:00
\[3\] Image support only works in certain terminal emulators. The script will fallback to ascii mode on< br \>
terminal emulators that don't support the xterm escape sequences we're using for image sizing.
\[4\] You can enable the `iTerm2` image backend by using the launch flag `--image_backend iterm2` or by< br \>
changing the config option `$image_backend` to `iterm2` .
2016-01-17 18:55:38 -07:00
2016-02-19 03:44:15 -07:00
\[5\] You can use the launch flag `--scrot_cmd` or change the config option `$scrot_cmd` to your screenshot< br \>
2016-02-27 17:44:45 -07:00
program's cmd and neofetch will use it instead of scrot.
2016-01-17 18:55:38 -07:00
2015-12-31 15:36:26 -07:00
2015-12-31 15:33:08 -07:00
<!-- }}} -->
2015-12-30 03:18:17 -07:00
2015-12-31 15:33:08 -07:00
2016-01-08 19:27:37 -07:00
<!-- Installation {{{ -->
## Installation
2016-02-27 17:44:45 -07:00
Those using a git version of neofetch should check this page after< br \>
2016-02-16 15:41:52 -07:00
updating, this page lists any breaking changes that were made and< br \>
how you can workaround them.
2016-02-27 17:44:45 -07:00
https://github.com/dylanaraps/neofetch/wiki/Following-HEAD
2016-01-08 19:27:37 -07:00
2016-03-09 04:54:58 -07:00
- [Arch Linux ](#arch )
- [Gentoo / Funtoo ](#gentoo--funtoo )
- [CRUX ](#crux )
- [Debian / Ubuntu ](#debian--ubuntu )
2016-03-11 01:40:13 -07:00
- [Fedora ](#fedora )
2016-03-11 03:30:22 -07:00
- [RHEL / CentOS ](#rhel--centos )
2016-03-09 15:00:32 -07:00
- [Mac OS X ](#mac-os-x )
2016-03-09 04:54:58 -07:00
- [Others ](#others )
2016-01-08 19:27:37 -07:00
### Arch
2016-03-11 23:33:07 -07:00
1. Install ** [neofetch ](https://aur.archlinux.org/packages/neofetch/ )** or ** [neofetch-git ](https://aur.archlinux.org/packages/neofetch-git/ )** from the aur.
2016-01-08 19:27:37 -07:00
2016-01-28 18:13:48 -07:00
### Gentoo / Funtoo
1. Add the 3rd party repo
- `layman -o https://gist.githubusercontent.com/z1lt0id/24d45b15800b98975260/raw/2fdf6645cdc3c1ca0b0af83a7bf8f86598e386ae/fs0ciety.xml -f -a fs0ciety`
2. Sync the repos
- `layman -S`
3. To enable w3m and scrot support, enable the appropriate flags.
2016-02-27 22:48:50 -07:00
- `echo "x11-apps/neofetch" >> /etc/portage/package.use`
2016-01-28 18:13:48 -07:00
4. Install the package
2016-02-27 22:48:50 -07:00
- `emerge -a x11-apps/neofetch`
2016-01-28 18:13:48 -07:00
2016-02-17 15:57:48 -07:00
2016-02-17 06:54:25 -07:00
### CRUX
1. Install git and the git ports(8) driver
- `sudo prt-get depinst git`
2. Add the 3rd party repo
2016-03-04 19:18:30 -07:00
- `sudo wget -O /etc/ports/arcetera.git https://arcetera.moe/sync`
2016-02-17 06:54:25 -07:00
3. Sync the repos
- `sudo ports -u`
4. Install the package
2016-02-27 22:48:50 -07:00
- `sudo prt-get depinst neofetch`
2016-01-28 18:13:48 -07:00
2016-03-11 01:40:13 -07:00
2016-02-28 02:05:07 -07:00
### Debian / Ubuntu
1. Add the 3rd party repo
2016-02-28 03:08:52 -07:00
- `echo "deb http://dl.bintray.com/dawidd6/neofetch jessie main" | sudo tee -a /etc/apt/sources.list`
2016-02-28 02:05:07 -07:00
2. If you don't have curl, install it with this command
- `sudo apt-get install curl`
3. Add public key and update your repos
- `curl -L https://bintray.com/user/downloadSubjectPublicKey?username=bintray -o Release-neofetch.key && sudo apt-key add Release-neofetch.key && rm Release-neofetch.key && sudo apt-get update`
4. Install the package
- `sudo apt-get install neofetch`
2016-03-11 01:40:13 -07:00
2016-03-11 01:03:28 -07:00
### Fedora
1. Make sure you have installed `dnf-plugins-core`
- `sudo dnf install dnf-plugins-core`
2. Enable COPR repository
- `sudo dnf copr enable konimex/neofetch`
3. Install the package
- `sudo dnf install neofetch`
2016-03-09 04:54:58 -07:00
2016-03-11 03:30:22 -07:00
### RHEL / CentOS
1. Change your working directory to `/etc/yum.repos.d`
- `cd /etc/yum.repos.d`
2. Fetch the repo file
- `wget https://copr.fedorainfracloud.org/coprs/konimex/neofetch/repo/epel-7/konimex-neofetch-epel-7.repo`
3. Install the package
- `sudo yum install neofetch`
2016-03-11 01:40:13 -07:00
2016-03-11 01:41:42 -07:00
### Mac OS X
1. Install `neofetch` with Homebrew
- `brew install neofetch`
2016-01-08 19:27:37 -07:00
### Others
2016-02-27 17:44:45 -07:00
1. Download the latest source at https://github.com/dylanaraps/neofetch
2016-01-30 03:18:30 -07:00
2. Run `make install` inside the script directory to install the script.
2016-02-23 17:18:33 -07:00
- **El Capitan**: `PREFIX=/usr/local make install`
2016-01-30 03:18:30 -07:00
2016-02-27 17:44:45 -07:00
**NOTE:** Neofetch can be uninstalled easily using `make uninstall` .
2016-01-30 03:18:30 -07:00
2016-02-27 17:44:45 -07:00
**NOTE:** Neofetch can also be run from any directory like a normal script,< br \>
2016-02-02 21:25:17 -07:00
you'll just be missing the ascii distro logos and automatic config file creation.
2016-01-08 19:27:37 -07:00
<!-- }}} -->
2016-01-17 18:43:06 -07:00
<!-- Post Install {{{ -->
2015-12-31 15:36:26 -07:00
2016-01-29 20:31:40 -07:00
2016-01-17 18:43:06 -07:00
## Post Install
2015-12-31 15:36:26 -07:00
2016-01-30 22:40:21 -07:00
2016-01-29 20:31:40 -07:00
#### Using the config file
2016-02-27 17:44:45 -07:00
Neofetch will by default create a config file at `$HOME/.config/neofetch/config` and this file< br \>
2016-01-29 20:31:40 -07:00
contains all of the script's options/settings. The config file allows you to keep your< br \>
customizations between script versions and allows you to easily share your customizations< br \>
with other people.
You can launch the script without a config file by using the flag `--config none` and you can< br \>
specify a custom config location using `--config path/to/config` .
2015-12-30 03:18:17 -07:00
2016-01-30 22:40:21 -07:00
#### Setting the prompt height
If your shell prompt's height is greater than 1 line high, you'll need to change a config< br \>
option to avoid issues with the top lines in the script output getting cut off. Set the variable< br \>
`$prompt_height` to your shell prompt's height in lines or use the launch flag `--prompt_height` .
2016-01-21 04:33:05 -07:00
#### Customizing what info gets displayed
2016-01-30 21:05:12 -07:00
In the config file there's a function that allows you to customize all of the info that< br \>
gets displayed.
2016-01-21 04:33:05 -07:00
Here's what you can do:
- Add new info lines
- Change the ordering of the info
- Remove unwanted info lines
- Use bash syntax to control when info gets displayed
See this wiki page that goes more in-depth about it:
https://github.com/dylanaraps/fetch/wiki/Customizing-Info
#### Customizing the script using a custom alias
2016-01-31 04:01:04 -07:00
If you don't want to use the config file you can customize almost everything using launch flags!
2016-01-17 18:43:06 -07:00
Here's what my fetch alias looks like:
```sh
alias fetch2="fetch \
--block_range 1 8 \
--line_wrap off \
--bold off \
--uptime_shorthand on \
--gtk_shorthand on \
--colors 4 1 8 8 8 7 \
"
```
<!-- }}} -->
<!-- Usage {{{ -->
## Usage
2015-12-30 04:40:58 -07:00
2016-02-02 21:25:17 -07:00
usage: fetch --option "value" --option "value"
2016-01-17 19:02:35 -07:00
Info:
2016-02-03 01:15:42 -07:00
--disable infoname Allows you to disable an info line from appearing
in the output.
NOTE: You can supply multiple args. eg.
'fetch --disable cpu gpu disk shell'
--osx_buildversion on/off Hide/Show Mac OS X build version.
--os_arch on/off Hide/Show Windows architecture.
--speed_type type Change the type of cpu speed to display.
Possible values: current, min, max, bios,
scaling_current, scaling_min, scaling_max
NOTE: This only support Linux with cpufreq.
2016-03-10 14:49:01 -07:00
--cpu_shorthand type Shorten the output of CPU
2016-03-10 16:33:37 -07:00
Possible values: name, speed, tiny, on, off
2016-02-03 01:15:42 -07:00
--kernel_shorthand on/off Shorten the output of kernel
--uptime_shorthand on/off Shorten the output of uptime (tiny, on, off)
2016-03-11 02:48:06 -07:00
--gpu_shorthand on/off Shorten the output of GPU (tiny, on, off)
2016-02-03 01:15:42 -07:00
--gtk_shorthand on/off Shorten output of gtk theme/icons
--gtk2 on/off Enable/Disable gtk2 theme/icons output
--gtk3 on/off Enable/Disable gtk3 theme/icons output
--shell_path on/off Enable/Disable showing \$SHELL path
--shell_version on/off Enable/Disable showing \$SHELL version
--battery_num num Which battery to display, default value is 'all'
--battery_shorthand on/off Whether or not each battery gets its own line/title
2016-02-08 23:26:44 -07:00
--ip_host url Url to ping for public IP
2016-02-18 17:26:24 -07:00
--song_shorthand on/off Print the Artist/Title on seperate lines
2016-02-03 01:15:42 -07:00
--birthday_shorthand on/off Shorten the output of birthday
2016-02-06 22:41:34 -07:00
--birthday_time on/off Enable/Disable showing the time in birthday output
2016-03-05 15:56:46 -07:00
--birthday_format format Format the birthday output. (Uses 'date' cmd format)
2016-01-18 19:49:30 -07:00
2016-01-17 19:02:35 -07:00
Text Formatting:
2016-03-04 15:30:53 -07:00
--colors x x x x x x Changes the text colors in this order:
title, @, underline, subtitle, colon, info
--underline_char char Character to use when underlining title
2016-02-03 01:15:42 -07:00
--line_wrap on/off Enable/Disable line wrapping
--bold on/off Enable/Disable bold text
--prompt_height num Set this to your prompt height to fix issues with
the text going off screen at the top
2016-01-17 19:02:35 -07:00
Color Blocks:
2016-02-03 01:15:42 -07:00
--color_blocks on/off Enable/Disable the color blocks
--block_width num Width of color blocks
--block_range start end Range of colors to print as blocks
2016-01-17 19:02:35 -07:00
Image:
2016-02-03 01:15:42 -07:00
--image type Image source. Where and what image we display.
Possible values: wall, shuffle, ascii,
/path/to/img, off
2016-02-23 18:19:55 -07:00
--size 20px | --size 20% Size to make the image, takes pixels or a percentage.
2016-02-03 01:15:42 -07:00
--image_backend w3m/iterm2 Which program to use to draw images.
--shuffle_dir path/to/dir Which directory to shuffle for an image.
--image_position left/right Where to display the image: (Left/Right)
--crop_mode mode Which crop mode to use
Takes the values: normal, fit, fill
--crop_offset value Change the crop offset for normal mode.
Possible values: northwest, north, northeast,
west, center, east, southwest, south, southeast
--xoffset px How close the image will be to the left edge of the
window. This only works with w3m.
--yoffset px How close the image will be to the top edge of the
window. This only works with w3m.
--gap num Gap between image and text.
NOTE: --gap can take a negative value which will
move the text closer to the left side.
--clean Remove all cropped images
2016-01-17 19:02:35 -07:00
2016-01-27 04:33:22 -07:00
Ascii:
2016-02-03 01:15:42 -07:00
--ascii value Where to get the ascii from, Possible values:
distro, /path/to/ascii
2016-03-05 15:08:59 -07:00
--ascii_colors x x x x x x Colors to print the ascii art
2016-02-03 01:15:42 -07:00
--ascii_distro distro Which Distro\'s ascii art to print
2016-01-27 04:33:22 -07:00
2016-02-05 16:49:06 -07:00
Stdout:
--stdout info info Launch fetch in stdout mode which prints the info
in a plain-text format that you can use with
lemonbar etc.
2016-02-06 16:03:49 -07:00
--stdout_separator string String to use as a separator in stdout mode.
2016-02-05 16:49:06 -07:00
2016-01-17 19:02:35 -07:00
Screenshot:
2016-02-03 01:15:42 -07:00
--scrot /path/to/img Take a screenshot, if path is left empty the screen-
shot function will use \$scrot_dir and \$scrot_name.
--scrot_cmd cmd Screenshot program to launch
2016-01-17 19:02:35 -07:00
Other:
2016-02-03 01:15:42 -07:00
--config /path/to/config Specify a path to a custom config file
--config none Launch the script without a config file
--help Print this text and exit
2015-12-30 03:18:17 -07:00
2015-12-31 15:36:26 -07:00
2015-12-31 15:33:08 -07:00
<!-- }}} -->
2015-12-30 03:18:17 -07:00
2016-01-20 02:40:17 -07:00
<!-- Frequently Asked Questions {{{ -->
## Frequently Asked Questions
2016-01-28 02:11:18 -07:00
#### How do I enable screenfetch mode?
2016-03-10 01:21:22 -07:00
Launching the script with `--ascii` or setting `ascii="distro"` and `image="ascii"` < br \>
2016-02-04 00:22:52 -07:00
inside the config file will launch the script in "screenfetch mode". The script will< br \>
display your distro's ascii next to the info, exactly like screenfetch.
2016-03-10 01:21:22 -07:00
**NOTE:** If you **don't** have `w3m-img` or `imagemagick` installed screenfetch mode will be< br \>
2016-02-04 00:22:52 -07:00
used automatically
2016-01-28 02:11:18 -07:00
2016-01-31 03:06:07 -07:00
![arch ](http://i.imgur.com/uCMjgf6.png )
2016-01-28 02:11:18 -07:00
2016-02-27 17:44:45 -07:00
#### Why doesn't Neofetch support my wallpaper setter?
2016-01-20 02:40:17 -07:00
2016-02-04 00:22:52 -07:00
It's hard to add support for other wallpaper setters as they don't provide a way of < br \>
getting the current wallpaper from the cli.
2016-01-20 02:40:17 -07:00
2016-02-04 00:22:52 -07:00
If your wallpaper setter **does** provide a way of getting the current wallpaper or you< br \>
know where it's stored then adding support won't be a problem!< br \>
2016-01-20 02:40:17 -07:00
<!-- }}} -->
2016-01-17 14:26:39 -07:00
<!-- Issues and Workarounds {{{ -->
## Issues and Workarounds
2016-02-02 21:27:09 -07:00
#### The text is too long for my terminal window and wraps to the next line
2016-01-17 14:26:39 -07:00
There are a few ways to fix this.
2016-01-25 15:35:12 -07:00
* Disable line wrapping with `line_wrap=off` in the script or with the launch flag `--line_wrap off`
2016-01-17 14:26:39 -07:00
* The uptime and gtk info lines each have a shorthand option that makes their output smaller. You can < br \>
enable them by changing these variables or using these flags.
```sh
2016-01-31 03:06:07 -07:00
# Config options
2016-01-22 00:04:53 -07:00
uptime_shorthand="on"
gtk_shorthand="on"
gpu_shorthand="on"
2016-01-30 21:08:12 -07:00
birthday_shorthand="on"
2016-01-17 14:26:39 -07:00
# Launch flags
--uptime_shorthand on
--gtk_shorthand on
2016-01-20 23:23:29 -07:00
--gpu_shorthand on
2016-01-30 21:08:12 -07:00
--birthday_shorthand on
2016-01-17 14:26:39 -07:00
```
2016-01-29 20:31:40 -07:00
* Edit the config to make the subtitles shorter
2016-01-17 14:26:39 -07:00
* Resizing the terminal so that the lines don't wrap.
2016-01-23 14:40:01 -07:00
#### The text is pushed over too far to the right
The easiest way to fix this is to change the value of `--gap` or `$gap` < br \>
to a negative value. For example `--gap -10` will move the text 10 spaces to the left.
2016-01-19 15:29:08 -07:00
#### getgpu doesn't show my exact video card name
2016-01-20 18:25:36 -07:00
If your `lspci | grep "VGA"` output looks like this:
2016-01-19 15:29:08 -07:00
```
01:00.0 VGA compatible controller: NVIDIA Corporation Device 1401 (rev a1)
```
Instead of this:
```
01:00.0 VGA compatible controller: NVIDIA Corporation GM206 [GeForce GTX 960] (rev a1)
```
Then you're affected by the issue.
This is caused by your `/usr/share/misc/pci.ids\*` files being outdated and you can fix it< br \>
by running this command as root.
```
sudo update-pciids
```
2016-01-17 14:26:39 -07:00
<!-- }}} -->
2016-01-08 19:27:37 -07:00
<!-- Thanks {{{ -->
2016-01-17 14:26:39 -07:00
## Thanks
2016-01-03 21:50:52 -07:00
Thanks to:
2016-02-23 07:33:25 -07:00
- [Screenfetch ](https://github.com/KittyKatt/screenFetch ):
2016-01-28 02:32:07 -07:00
- I've used some snippets as a base for a few functions in this script.
2016-03-10 01:21:22 -07:00
- Most of the ascii art.
2016-02-27 19:19:45 -07:00
- [ufetch ](https://github.com/jschx/ufetch ): Tiny ascii logos
2016-02-23 18:13:55 -07:00
- [@metakirby5 ](https://github.com/metakirby5 ): Providing great feedback as well as ideas for the script.
2016-02-23 07:33:25 -07:00
- [@jrgz ](https://github.com/jrgz ): Helping me test the Mac OS X version.
- [@mclado ](https://github.com/mclado ): Helping me with Max OS X testing
- [@xDemonessx ](https://github.com/xDemonessx ): Helping me test the Windows version.
- [@tudurom ](https://github.com/tudurom ): Helping me test **everything** .
2016-02-05 17:15:49 -07:00
- Everyone else who has helped test the script, given feedback or reported bugs.
2016-01-30 21:08:12 -07:00
2016-01-08 19:27:37 -07:00
<!-- }}} -->