{"id":20125901,"url":"https://github.com/robole/fetching","last_synced_at":"2025-05-06T17:34:55.016Z","repository":{"id":109473420,"uuid":"373183275","full_name":"robole/fetching","owner":"robole","description":"A collection of *fetching* unicode art for the terminal.","archived":false,"fork":false,"pushed_at":"2024-04-26T11:26:46.000Z","size":1504,"stargazers_count":51,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-04-26T12:35:06.466Z","etag":null,"topics":["abstract-art","art","neofetch","pfetch","pixel-art","retro-games","sprite-art","terminal-app","terminal-based","ufetch"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robole.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":"funding.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"ko_fi":"roboleary"}},"created_at":"2021-06-02T13:45:15.000Z","updated_at":"2024-04-26T11:26:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"58ab0763-fa6b-4ddf-9f97-8783bc677217","html_url":"https://github.com/robole/fetching","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robole%2Ffetching","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robole%2Ffetching/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robole%2Ffetching/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robole%2Ffetching/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robole","download_url":"https://codeload.github.com/robole/fetching/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224517379,"owners_count":17324407,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["abstract-art","art","neofetch","pfetch","pixel-art","retro-games","sprite-art","terminal-app","terminal-based","ufetch"],"created_at":"2024-11-13T20:11:41.175Z","updated_at":"2024-11-13T20:11:41.842Z","avatar_url":"https://github.com/robole.png","language":"Shell","funding_links":["https://ko-fi.com/roboleary"],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n    \u003cimg align=\"center\" src=\"img/logo.webp\" width=\"240px\" alt=\"Fetching logo\"\u003e\n  \u003cbr\u003e\n\t\u003cbr\u003e\n\tFetching\n\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\u003cstrong\u003eA collection of \u003ci\u003efetching\u003c/i\u003e unicode art for the terminal.\u003c/strong\u003e\u003c/p\u003e\n\n\u003e You have to be in a state of play to design. If you're not in a state of play, you can't make anything.\n\u003e\n\u003e \\- Paula Scher\n\nThe goal is to add a touch of beauty to your terminal, and trigger a sense of play.\n\n![mario example](img/mario-mytheme.png)\n\nThe art is **colored according to your terminal color theme**. The output can have a different personality depending on your color theme.\n\n\u003cimg src=\"img/mario-colors.png\" alt=\"4 examples side-by-side of how the mario-xs image script using different color themes.\"\u003e\n\nThe included image scripts are **responsive to the terminal window**. This prevents distorted output in the random and slideshow modes. 🕶️\n\n![garbled output](img/garbled.png)\n\nThere are **22 image scripts included** inspired by:\n\n- abstract art, particularly the [De Stijl movement](https://en.wikipedia.org/wiki/De_Stijl) with its simplified forms and limited palette\n\n- street art\n\n  ![obey by invader](img/obey.png)\n\n- computer games, particularly from the 1980's and 1990's\n- star wars\n\nI have a list of more images I would like to add (in *todo.md*). I will work through this when the mood strikes me!\n\n## Installation\n\n```bash\ngit clone https://github.com/robole/fetching\ncd fetching\nbash install.sh\n```\n\n \u003cu\u003eUsage\u003c/u\u003e: `bash install.sh [OPTION]`\n\n|  OPTIONS:           | |\n|:--------------------|:-------------|\n|-d, --dest           | Specify destination directory (Default: `$HOME/.local/bin`)|\n|-h, --help           | Show this help|\n\n\u003e Note: The default installation location may not be on your [`PATH`](https://opensource.com/article/17/6/set-path-linux). You can run fetching from any folder on your system, all this script does is move the files to a \"sane\" executable location.\n\nIf you want to uninstall, run `bash uninstall.sh` with the same destination directory that you provided on installation.\n\n## Usage\n\n\u003cu\u003eUsage\u003c/u\u003e: `fetching [OPTION] [SCRIPT NAME/INDEX/NUMBER OF SECONDS]`\n\n|  OPTIONS:           | |\n|:--------------------|:-------------|\n| -h, --help, help|Print the help page.  |\n| -l, --list, list    | List all available scripts.|\n| -r, --random, random | Show a random image. It only picks image that fit within the terminal window.|\n| -e, --exec, exec     | Show an image by SCRIPT NAME or INDEX. |\n| -s, --slideshow, slideshow |\tRun a slideshow showing a new image every NUMBER OF SECONDS. It is responsive to the terminal width.|\n| -w, --width, width | Show the terminal width. It is shown as a size e.g 'xs' for extra small,and as a width in columns. This can be used to grade the size of the output of your scripts.|\n\nThe most common scenarios are:\n1. The command `fetching -l` will show you all the available images to show (scripts to run). You can run an image by index: `fetching -e 4` to show the 4th image from the list, or by name `fetching -e mario-xs`.\n1. I put the following command `fetching -r` in my `.bashrc` and `.zshrc` files to show a random image every time I open a new terminal.\n1. If you want to run a slideshow that cycles through images every 3 seconds, you can run `fetching -s 3`.\n  ![slideshow](img/slideshow.gif)\n\n## Contribute\n\nIf you have a suggestion, find a bug, or have made some image scripts that you would like to share (see [*Make your own art* section](#make-your-own-art)), feel free to open an issue.\n\nI am bit fussy about what image scripts I would include, so it's prob best to ask before you make a PR.\n\n## Appreciate\n\nYou can show your appreciation by:\n1. [Buying me a coffee or sponsoring me](https://ko-fi.com/roboleary)\n1. Starring the repo 🌟.\n\nThis will **help other people find this** and will **offer me encouragement** to make more.\n\nThank you! 🙏\n\n## Make your own art\n\nYou can use the `template` script in the root folder to get started quickly on your own creation.\n\nThere are approxmiately 143,859 unicode characters. You can use any of those, search through [the list](https://en.wikipedia.org/wiki/List_of_Unicode_characters)) to find different ones!\n\nI mostly used the [Block Elements character set](https://en.wikipedia.org/wiki/Block_Elements) (as below) in my art, but I am interested to try out more.\n\n```\n█ ▉ ▊ ▋ ▌ ▍ ▎ ▏▐ ▕ ▇ ▆ ▅ ▄ ▃ ▂ ▁  ■ ▄ ▀  ▬ ▓ ▒ ░ \n```\n\nI included a wider selection of symbols as a comment in `template` to get you started.\n\nThe script has the color variables to set colors for the background and foreground. You can use these together with `cat` to create your own masterpiece.\n\nFor example, this code:\n\n![pacman-right-xs code](img/pacman-right-xs-code.png)\n\nproduces this output:\n\n![pacman-right-xs output](img/pacman-right-xs-output.png)\n\nThe `rt` variable is used to reset the current color to the default text color. \u003cu\u003eYou should use always use `rt` at the end of your output text\u003c/u\u003e, so it doesn't affect the text in your terminal after the script is run!\n\nYou will notice that all image scripts have a *naming convention*. **The size is added as a postfix to enable the responsive behaviour** e.g. `mario-xs`. To find the width of the output, run your image script and reduce the width of the terminal until the output becomes distorted. You can run the command `fetching -w`to see what the current terminal size is. Set the name of the script based on this. Ensure that the output width does not exceed the range of that size. The sizes are: xs, s, m, l, and xl. I will see if I can do something to automate this process.\n\n## Rendering differences between terminals\n\nI noticed that some terminals show the unicode output from the script with gaps. You can see Alacritty previously did this (bottom left in screenshot below).\n\n![terminal rendering differences](img/terminal-diff.png)\n\nI am not sure why it is. It is specific to the terminal app.\n\nGenerally, I would **recommend using a monospace font** for best results.\n\n## Credit\n\n- The original idea probably came from [this discussion on crunchbang](https://crunchbang.org/forums/viewtopic.php?id=13645).\n- Derek Taylor's [Shell Color Scripts](https://gitlab.com/dwt1/shell-color-scripts) was a source of inspiration for a few scripts.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobole%2Ffetching","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobole%2Ffetching","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobole%2Ffetching/lists"}