🖼️ A command-line system information tool written in bash 3.2+

logo

A command-line system information tool written in bash 3.2+

Packaging status

neofetch

Neofetch is a command-line system information tool written in bash 3.2+. Neofetch displays information about your operating system, software and hardware in an aesthetic and visually pleasing way.

The overall purpose of Neofetch is to be used in screen-shots of your system. Neofetch shows the information other people want to see. There are other tools available for proper system statistic/diagnostics.

The information by default is displayed alongside your operating system's logo. You can further configure Neofetch to instead use an image, a custom ASCII file, your wallpaper or nothing at all.

neofetch

You can further configure Neofetch to display exactly what you want it to. Through the use of command-line flags and the configuration file you can change existing information outputs or add your own custom ones.

Neofetch supports almost 150 different operating systems. From Linux to Windows, all the way to more obscure operating systems like Minix, AIX and Haiku. If your favourite operating system is unsupported: Open up an issue and support will be added.

More: [Dependencies] [Installation] [Wiki]

Owner
dylan
23, self taught, creator of @kisslinux
dylan
Comments
  • Package Update Thread

    Package Update Thread

    Those maintaining packages for Neofetch can post updates here.

    Packages:

    Packaging status

    Third-Party Packages:

    | Distro | Type | Maintainer | URL | Latest Release | | --- | --- | --- | --- | --- | | Crux | Port | @6c37 | neofetch-git | Yes (Git) | | Debian | Repo | @dawidd6 | https://bintray.com/dawidd6/neofetch/neofetch | Yes | | Fedora | COPR | @konimex | (see RHEL/CentOS) | Yes | | Mageia | COPR | @konimex | (see RHEL/CentOS) | Yes | | RHEL/CentOS | COPR | @konimex | http://copr.fedorainfracloud.org/coprs/konimex/neofetch/ | Yes | | Ubuntu | PPA | @dawidd6 | https://launchpad.net/~dawidd0811/+archive/ubuntu/neofetch/ | | | Ubuntu Daily | PPA | @dawidd6 | https://launchpad.net/~dawidd0811/+archive/ubuntu/neofetch-daily | Yes (Git) |

    Coming Soon, Official Packages:

    | Distro | Type | URL | | --- | --- | --- |

  • TODO

    TODO

    Battery

    • [ ] Multi-battery support for Windows and BSD.
    • [ ] State support for multiple batteries.

    Disk

    • [ ] OpenBSD and NetBSD support.
    • [ ] Print disk models

    Testing

    • [ ] Test neofetch on Qubes OS.

    OS

    • [ ] [ Puppy Linux ] Package count.
  • Script does not show information on OS X

    Script does not show information on OS X

    When I run the script, everything is properly formatted, but no information is printed for most items.

    Missing:

    • OS information
    • Uptime
    • Packages
    • Window Manager
    • CPU
    • Memory
    • Song (I assume because of the mpc dependency)
    • Image (also probably because of missing dependencies)

    Color blocks print successfully.

    Here's a picture: http://imgur.com/2i9zujy

    Terminal is iTerm2 (script runs the same on the default Terminal app) and I'm running OS X 10.11.2

  • Split some functionality into their own files

    Split some functionality into their own files

    Let's say I want to write in my panel script a function to display the time when the battery will be fully charged. Let's say fetch can display that. Instead of looking through fetch's huge script just for a little function, if the function would have its own script, then I could call the script directly. I say there should be a number of little scripts for hostname, remaining battery, RAM etc. that should work on Linux, Mac, BSD and Windows. Fetch will call these functions from their files, while I can use one of the files in my bar script.

    Solution: extract fetch's functionality in small scripts that should only print to stdout the desired information. For example, the fetch_battery script should only print "92".

    Sound good enough? If yes, I will do it and I will self-assign this issue.

  • Operating system support

    Operating system support

    This issue will serve as a list of Operating systems and distros that fetch has been confirmed to work on.

    Fetch has been confirmed to work on these Operating systems:

    Linux

    • [X] Arch based distros
    • [X] Ubuntu based distros
    • [X] Fedora
    • [X] Gentoo / Funtoo
    • [X] openSUSE
    • [X] Puppy Linux (Quirky Werewolf)
    • [X] Mageia Linux
    • [X] Raspbian
    • [X] PCLinuxOS
    • [X] Zorin OS
    • [X] Tails
    • [X] BLAG
    • [X] Void Linux
    • [X] Solus
    • [X] NixOS
    • [X] Chakra
    • [X] OpenMandriva
    • [X] LMDE
    • [X] gNewSense
    • [X] KaOS
    • [X] Sabayon
    • [X] Frugalware

    The support is there for more distros they just haven't been tested or confirmed to be working by anyone.

    Windows (Cygwin) We're missing Resolution support for all windows versions.

    Mac OS X Everything should work.

    BSD We're missing Disk and GPU support for all BSD flavours.

    • [X] FreeBSD
    • [X] OpenBSD
      • We're missing Battery support.
    • [X] NetBSD
      • We're missing Battery support.

    For those wanting to help, here are the remaining distros that need support/testing before we're at support parity with screenfetch.

    • Slackware
    • Scientific Linux
    • Chapeau
    • deepin
  • Displaying image in macOS with iTerm2

    Displaying image in macOS with iTerm2

    Description

    I'm attempting to display a png with neofetch. I'm using iterm2 I've verified iterm2 images work using imagecat from https://www.iterm2.com/documentation-images.html. I've also checked that the path in my config is valid.

    Neofetch version

    5.0.1

    Screenshot

    https://imgur.com/a/TSmtTpX

    Config file

    https://pastebin.com/udfrSA0c

    Verbose log

    https://pastebin.com/dRfE25wi

  • Packaging Fetch for other Distros

    Packaging Fetch for other Distros

    I'd love to see fetch packaged for other distros and operating systems.

    Fetch is currently packaged for these distros:

    | Distro | Type | Maintainer | URL | | --- | --- | --- | --- | | Arch Linux | aur | @dylanaraps | neofetch, neofetch-git | | Gentoo/Funtoo | ebuild | @z1lt0id | | | Crux | port | @ix | | | Debian/Ubuntu | repo | @dawidd6 | | | Fedora | repo | @konimex | | | RHEL/CentOS | repo | @konimex | | | Void Linux | repo | @konimex | | | Mac OS X | homebrew | @iandrewt | |

    I don't have any experience in creating packages for other distros so any help is appreciated.

  • Snappy package

    Snappy package

    I'm trying to make a snappy package, I'm not a developer but want to give this a go anyway and any help is appreciated.

    The snapcraft.yaml I have made is as follows (you save this file in a folder, then run snapcraft prime in the folder, then sudo snap try prime/ --devmode to test Devmode or sudo snap try prime/ to test Strict. Then use sudo snap connect neofetch:hardware-observe core:hardware-observe so that the Model entry works. You can then use neofetch in Terminal or snap run neofetch to ensure you're running the snap you just built. To update, just change the source to the new release and run snapcraft again, or you can even point the URL to the GitHub repo (and change grade to devel) and you can update it every now and then so it's using the new master code):

    name: neofetch
    version: 3.1.0
    summary: Neofetch
    description: A fast, highly customizable system info script
    confinement: strict
    grade: stable
    apps:
      neofetch:
    #  Export LC_ALL to workaround [LP: #1576411] (still get an error with this workaround though)
        command: env LC_ALL=C.UTF-8 $SNAP/neofetch
        plugs:
          - hardware-observe
    
    parts:
      neofetch:
        plugin: dump
        source: https://github.com/dylanaraps/neofetch.git
        source-tag: 3.1.0
        stage-packages:
          - w3m
          - imagemagick
          - cmus
          - feh
          - mpc
          - nitrogen
          - scrot
          - x11-utils
          - moc
        after:
    #     wimpress said this would help with Themes and Fonts but it doesn't seem to do so
          - desktop-glib-only
    

    We may not need all the stage-packages, they are just the suggests from the Debian package which I thought I'd add to see if it would get more of Neofetch working, we should probably remove them one-by-one and see if doing that removes any functionality (I'm assuming we don't need to install Bash?!). I think the dependencies are included in the snap, so doing so would bring down the file size (with those stage-packages it is 63.7 MB, without them it is 65.5 KB). Also note that we need to confine the snap. If I don't give it any interfaces, we get the following from snap run neofetch: strict with stage-packages

    In devmode, where the snap isn't confined: With stage-packages: devmode with stage-packages Without stage-packages: devmode without stage-packages

    We're losing Model, Theme and Icons when we confine the snap.

    We can also see from this that we're losing Resolution and WM without stage-packages.

    However, when I use usr/bin/neofetch to load the PPA package version of Neofetch...: ppa package

    We get Packages, WM Theme and GPU. The most important of these is probably GPU (since this is a snap, do we need to know how many Debs are installed? Or maybe we need a new feature which can detect Deb and snap packages when snapd is on the system).

    Also, it's meant to say what the wallpaper is and what music is playing? That doesn't seem to work for the PPA Deb package either for me (not when playing music in Rhythmbox), so that's not a fault in the snap I don't think. What other features in Neofetch are there which should be supported by the snap? I've only tried running neofetch so far, with the Deb and with the snap.

    Any thoughts?

    Btw, justification for making a snap package, it's like a PPA in that it can be updated to the latest version on any Ubuntu system, except there's no risk of dependency hell because dependencies can be included if Ubuntu Core doesn't provide the necessary versions. It's confined (more secure) and simpler (once we've made the first working snap anyway) and you can install it with just one command (once we've uploaded it to the store). It also works on any distro with snapd installed.

    Thanks @dylanaraps for trying to get your program working on as many platforms as possible and for encouraging me to open this issue!

    Ubuntu 16.10

  • AIX as supported OS request

    AIX as supported OS request

    bash-4.4$ ./neofetch Unknown OS detected: 'AIX', aborting... Open an issue on GitHub to add support for your OS. bash-4.4$

    Hello,

    I use AIX daily and your tool may be of use to me. If you require any specific AIX assistance, please ask.

    Bob

  • Windows Support

    Windows Support

    using getos, we can add:

        "Windows")
            distro="$(systeminfo | sed -n 's/^OS Name:[[:blank:]]*//p')"
    

    to print the version. Uptime and other statistics can then further be added from the flag by default.

  • '\033[14t' not printing terminal size.

    '\033[14t' not printing terminal size.

    I will change the image in Neofetch,whether in this line for change image? Image Source --image wall, ascii,path/to/image, /path/to/dir, off image="wall"

  • added RhaymOS distro

    added RhaymOS distro

    Description

    RhaymOS, new Linux distrubition based on Arch made by me, it gives you a GUI installer and a beautiful UI powered by BSPWM

    Features

    Added new distro that I'm building

  • feat: display editor setting

    feat: display editor setting

    Screenshot at 2022-12-28 17-31-19

    Display the configured editor, version and path using the $EDITOR environment variable similar to the way the shell version is displayed from the $SHELL variable.

    fixes: #2270

    TODO

    • [x] Manpage
  • [feat] display editor of choice if the $EDITOR variable is set

    [feat] display editor of choice if the $EDITOR variable is set

    Description

    On many systems the $EDITOR and/or $VISUAL variables will contain the users editor of choice for editing text. Vim, Emacs and Nano are popular choices, but there are many others too. It would be a welcome addition to neofetch to be able to display the configured editor in a similar way to how the shell is displayed, given that the choice of editor is a matter of personal taste similar to many other settings displayed by neofetch.

  • Missing distro: UwUntu

    Missing distro: UwUntu

    Description

    If you're suggesting a new feature then just a description will suffice.

    • [ ] Does this issue still occur in the master branch? (Required if issue)

    Uwuntu should be added

    Neofetch version

    Screenshot

    Config file

    Verbose log

    1. Run neofetch -vv 2> neofetchlog
    2. Upload the contents of neofetchlog to pastebin, gist or equivalent.
  • Feature Request: support multiple screens

    Feature Request: support multiple screens

    Description

    The current version of neofetch does not support multiple screens. It displays the resolution of the main screen, only.

    • [ ] Does this issue still occur in the master branch? (Required if issue) It is fixed in the master branch, but not in the latest release, hence I reported this for documentation.

    Please be aware that the model of my laptop is lost in the master branch:

    • 7.1.0: Host: 20VX000KGE ThinkPad P14s Gen 2i
    • master: Host: LENOVO 20VX000KGE

    I would recommend the following for host: LENOVO ThinkPad P14s Gen 2i (20VX000KGE).

    Neofetch version

    7.1.0

    Screenshot

    Release: image

    Master: image

    Config file

    Verbose log

    1. Run [neofetch.log](https://github.com/dylanaraps/neofetch/files/10307064/neofetch.log)
    2. Upload the contents of neofetchlog to pastebin, gist or equivalent.

    neofetch_master.log neofetch.log

Gofetch is a pretty command-line "Go and System information" tool written in Go
Gofetch is a pretty command-line

GoFetch Show off your Go information with this cool command-line tool! Report Bug || Request Feature Table of Contents About the Project Built With Ge

Nov 1, 2022
argv - Go library to split command line string as arguments array using the bash syntax.

Argv Argv is a library for Go to split command line string into arguments array. Documentation Documentation can be found at Godoc Example func TestAr

Nov 19, 2022
A command line tool that builds and (re)starts your web application everytime you save a Go or template fileA command line tool that builds and (re)starts your web application everytime you save a Go or template file

# Fresh Fresh is a command line tool that builds and (re)starts your web application everytime you save a Go or template file. If the web framework yo

Nov 22, 2021
Command line tool to show the weather information of your city

go-weather when you type weather <city>, it will show you the weather of the city you input. Useful API comes from openweathermap.org. You can registe

Nov 5, 2021
Command line tool for searching Pokémon information
Command line tool for searching Pokémon information

Pokesearch Command line tool for searching Pokemon information. Work in progress To-do Usage details Finish README.md Research release details Command

Jan 27, 2022
An open-source GitLab command line tool bringing GitLab's cool features to your command line
An open-source GitLab command line tool bringing GitLab's cool features to your command line

GLab is an open source GitLab CLI tool bringing GitLab to your terminal next to where you are already working with git and your code without switching

Dec 30, 2022
A command line tool to prompt for a value to be included in another command line.

readval is a command line tool which is designed for one specific purpose—to prompt for a value to be included in another command line. readval prints

Dec 22, 2021
Contextual information about your git projects, right on the command-line
Contextual information about your git projects, right on the command-line

gitty gitty is a smart little CLI helper for git projects, that shows you all the relevant issues, pull requests and changes at a quick glance. It cur

Jan 8, 2023
fofax is a fofa query tool written in go, positioned as a command-line tool and characterized by simplicity and speed.
fofax is a fofa query tool written in go, positioned as a command-line tool and characterized by simplicity and speed.

fofaX 0x00 Introduction fofax is a fofa query tool written in go, positioned as

Jan 8, 2023
Command Line Alias Manager and Plugin System - Written in Golang
Command Line Alias Manager and Plugin System - Written in Golang

aly - Command Line Alias Manager and Packager Aly offers the simplest way to manage, share, and obtain command line aliases! Warning: This project is

Jun 16, 2022
cod is a completion daemon for bash/fish/zsh

Cod is a completion daemon for {bash,fish,zsh}. It detects usage of --help commands parses their output and generates auto-completions for your shell.

Dec 25, 2022
Go-Suit is a very very wacky version of a bash terminal but in go, however with a little twitst

Go-Suit Go-Suit is a very very wacky version of a bash terminal but in go, however with a little twitst languages -> Go-Lang packages Third Party -> g

May 19, 2022
git-xargs is a command-line tool (CLI) for making updates across multiple Github repositories with a single command.
git-xargs is a command-line tool (CLI) for making updates across multiple Github repositories with a single command.

Table of contents Introduction Reference Contributing Introduction Overview git-xargs is a command-line tool (CLI) for making updates across multiple

Dec 31, 2022
git-xargs is a command-line tool (CLI) for making updates across multiple GitHub repositories with a single command
git-xargs is a command-line tool (CLI) for making updates across multiple GitHub repositories with a single command

git-xargs is a command-line tool (CLI) for making updates across multiple GitHub repositories with a single command. You give git-xargs:

Feb 5, 2022
A command line tool for simplified docker volume command built with go

dockervol A command line tool for simplified docker volume command built with go. Features: Remove anonymous volume (beta) Remove volume by matching n

Dec 18, 2021
Command line tool for Google Cloud Datastore, written in Go
Command line tool for Google Cloud Datastore, written in Go

dsio dsio is a command line tool for Google Cloud Datastore. This tool is under development. Please use in your own risk. Features Bulk upsert entitie

Feb 8, 2022
A tool to enumerate all the command-line arguments used to start a Linux process written in Go.
A tool to enumerate all the command-line arguments used to start a Linux process written in Go.

ranwith A tool to enumerate all the command-line arguments used to start a Linux process written in Go. ranwith uses the Linux /proc directory to obta

Jun 30, 2022
F2 is a cross-platform command-line tool for batch renaming files and directories quickly and safely. Written in Go!
F2 is a cross-platform command-line tool for batch renaming files and directories quickly and safely. Written in Go!

F2 is a cross-platform command-line tool for batch renaming files and directories quickly and safely.

Dec 31, 2022
Nebula Diagnosis CLI Tool is an information diagnosis cli tool for the nebula service and the node to which the service belongs.

Nebula Diagnosis CLI Tool is an information diagnosis cli tool for the nebula service and the node to which the service belongs.

Jan 12, 2022