# fetch This is the home of my fetch script! This script gathers info <br /> 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!  <!-- Table of Contents {{{ --> ## Table of Contents - [Screenshots](#screenshots) - [Features](#features) - [Dependencies](#dependencies) - [Installation](#installation) - [Post Install](#post-install) - [Usage](#usage) - [Frequently Asked Questions](#frequently-asked-questions) - [Issues and Workarounds](#issues-and-workarounds) - [Thanks](#thanks) <!-- }}} --> <!-- Screenshots {{{ --> ## Screenshots     <!-- }}} --> <!-- Features {{{ --> ## Features - Supports **Linux**, **Mac OS X**, **BSD** and **Windows** (Cygwin) - 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. - See this **[wiki page](https://github.com/dylanaraps/fetch/wiki/Customizing-Info)** <!-- }}} --> <!-- Dependences {{{ --> ## Dependencies ### Required dependencies: **All OS:** - `Bash 4.0+` **Linux / BSD / Windows:** - Uptime detection: `procps` or `procps-ng` ### Optional dependencies: **NOTE:** If `w3m` or `Imagemagick` aren't found then image support will be disabled. **All OS:** - Displaying Images: `w3m-img` or `iTerm2` - `w3m-img` is sometimes bundled together with `w3m`. (Arch) - **Note:** To enable iTerm2 mode, you need to change `$image_backend` to `iterm2` or use the launch flag `--image_backend iterm2`. - Image Cropping, Resizing etc: `ImageMagick` - More accurate window manager detection: `wmctrl` **Linux / BSD:** - Display Wallpaper: `feh`, `nitrogen` or `gsettings` - Current Song: `mpc` or `cmus` - Resolution Detection: `xorg-xdpyinfo` - Take a screenshot on script finish: `scrot` - You can change this to another program with `--scrot_cmd` and `$scrot_cmd`. <!-- }}} --> <!-- Installation {{{ --> ## Installation ### Arch 1. Install **[fetch-git](https://aur.archlinux.org/packages/fetch-git/)** from the aur. ### 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. - `echo "x11-apps/fetch" >> /etc/portage/package.use` 4. Install the package - `emerge -a x11-apps/fetch` ### Others 1. Download the latest source at https://github.com/dylanaraps/fetch 2. Run `make install` inside the script directory to install the script. **NOTE:** Fetch can be uninstalled easily using `make uninstall`. **NOTE:** Fetch can also be run from any directory like a normal script,<br \> you'll just be missing the ascii distro logos and config file functionality. <!-- }}} --> <!-- Post Install {{{ --> ## Post Install #### Using the config file Fetch will by default create a config file at `$HOME/.config/fetch/config` and this file<br \> 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`. #### Sizing the image correctly **NOTE:** For the images to be sized correctly you need to set the `$font_width` variable.<br \> If you don't know your font width in pixels keep trying values until the image is sized correctly. You can also use the launch flag `--font_width` to set it on the fly. #### Customizing what info gets displayed In the config file there's a function that allows you to customize all of the info that<br \> gets displayed. 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 If you don't want to use the confog file you can customize almost everything using launch flags! 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 usage: ${0##*/} --option "value" Info: --osx_buildversion Hide/Show Mac OS X build version. --speed_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. --kernel_shorthand Shorten the output of kernel --uptime_shorthand Shorten the output of uptime (tiny, on, off) --gpu_shorthand on/off Shorten the output of GPU --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 --birthday_shorthand Shorten the output of birthday --birthday_time Enable/Disable showing the time in birthday output Text Colors: --colors 1 2 3 4 5 6 Change the color of text (title, @, subtitle, colon, underline, info) --title_color num Change the color of the title --at_color num Change the color of "@" in title --subtitle_color num Change the color of the subtitle --colon_color num Change the color of the colons --underline_color num Change the color of the underlines --info_color num Change the color of the info Text Formatting: --underline_char char Character to use when underlineing title --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 Color Blocks: --color_blocks on/off Enable/Disable the color blocks --block_width num Width of color blocks --block_range start end --v Range of colors to print as blocks Image: --image Image source. Where and what image we display. Possible values: wall, shuffle, ascii, /path/to/img, off --image_backend Which program to use to draw images. --shuffle_dir Which directory to shuffle for an image. --font_width px Used to automatically size the image --image_position Where to display the image: (Left/Right) --split_size num Width of img/text splits A value of 2 makes each split half the terminal width and etc --crop_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 NOTE: This only works with w3m --yoffset px How close the image will be to the top edge of the window NOTE: This only works with w3m --gap num Gap between image and text right side to the top edge of the window NOTE: --gap can take a negative value which will move the text closer to the left side. --clean Remove all cropped images Ascii: --ascii Where to get the ascii from, Possible values: distro, /path/to/ascii --ascii_color Color to print the ascii art --ascii_distro distro Which Distro\'s ascii art to print Screenshot: --scrot /path/to/img Take a screenshot, if path is left empty the screenshot function will use \$scrot_dir and \$scrot_name. --scrot_cmd Screenshot program to launch Other: --config Specify a path to a custom config file --config none Launch the script without a config file --help Print this text and exit <!-- }}} --> <!-- Frequently Asked Questions {{{ --> ## Frequently Asked Questions #### How do I enable screenfetch mode? Launching the script with `--ascii distro` or setting `ascii="distro"` and `image="ascii"` <br \> inside the script will launch the script in "screenfetch mode". The script will display your<br \> distro's ascii next to the info, exactly like screenfetch.  #### Why doesn't fetch support my wallpaper setter? It's hard to add support for other wallpaper setters as<br \> they don't provide a way of getting the current wallpaper from the cli. If your wallpaper setter **does** provide a way of getting the current wallpaper<br \> or you know where it's stored then adding support won't be a problem!<br \> <!-- }}} --> <!-- Issues and Workarounds {{{ --> ## Issues and Workarounds #### The text is too long for my terminal window and wraps to the next line causing the image to not render correctly. There are a few ways to fix this. * Disable line wrapping with `line_wrap=off` in the script or with the launch flag `--line_wrap off` * 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 # In script options uptime_shorthand="on" gtk_shorthand="on" gpu_shorthand="on" birthday_shorthand="on" # Launch flags --uptime_shorthand on --gtk_shorthand on --gpu_shorthand on --birthday_shorthand on ``` * Edit the config to make the subtitles shorter * Resizing the terminal so that the lines don't wrap. #### 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. #### getgpu doesn't show my exact video card name If your `lspci | grep "VGA"` output looks like this: ``` 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 ``` <!-- }}} --> <!-- Thanks {{{ --> ## Thanks Thanks to: - metakirby5: Providing great feedback as well as ideas for the script. - Screenfetch: - I've used some snippets as a base for a few functions in this script. - I've used the ascii art from here. - @jrgz: Helping me test the Mac OS X version. - @xDemonessx: Helping me test the Windows version. - Everyone else who has helped test the script and given feedback. <!-- }}} -->