Giter Club home page Giter Club logo

neofetch's Introduction

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.

neofetch's People

Contributors

aidanharris avatar armstrongj avatar bgkillas avatar carlschwan avatar chrisweeksnz avatar crestwave avatar dawidd6 avatar dritter avatar dylanaraps avatar fr1tzbot avatar iandrewt avatar jadematrix avatar jkhsjdhjs avatar jorgegonzalez avatar kidonng avatar konimex avatar l1kwidus avatar ler0ever avatar michaelstraube avatar mindtooth avatar mitchweaver avatar rage311 avatar robertwolter avatar rxhanson avatar szfcbr avatar tudurom avatar vendion avatar xpmo avatar xynxynxyn avatar yuki-kurosawa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

neofetch's Issues

Exiting cleanly

Heyo, I'm suggesting a few improvements for exiting the script cleanly. I haven't run the script on Linux, but on FreeBSD it doesn't exit well, and the prompt overlays the first line. Maybe it's my terminal (xfce term).

Anyway, it quits a lot more nicely if you add

# Control-C clears screen
trap 'clear; exit;' 2

towards the top, and

# Pause at end, clear on keypress
read -n1 -s
clear

at the end.

I'm probably doing this wrong, because I have next to no github experience. sorry.

Battery usage support

Hi guys,

I'm currently working on adding support for the new battery function to the
other OS we support. I don't own anything with a battery so I'll need some help
testing.

Here's the TODO for the battery function:

  • Add support for all platforms
    • The only OS without support are the BSDs as we have no one to help test.
    • I'll be getting a laptop soon so support will come eventually.
  • Add an option to only print the first battery or X number of batteries.
  • Add an option to print all batteries on a single line.

Image disappears with on resize / focus with Terminator

Continuing on issue #18, the problem also comes from the WM I am using (i3-gaps). When running

fetch

or

fetch --clean

in the focused terminal, the image disappears.
Running

terminator -e "fetch --clean;read"

open a new terminal where everything is correctly displayed. When focusing that terminal, everything is still displayed. When moving the focus to another window, the image disappears and never comes back.

Installation doesn't work on OS X El Capitan

After cloning the repo and running "make install" a "Operation not permitted" message is shown:

cpressland@cpressland-mbp ~/git/fetch (master)$ make install
install -m755 -d /usr/bin
install: chmod 755 /usr/bin: Operation not permitted
install -m755 -d /usr/share/fetch/ascii/distro
install: mkdir /usr/share/fetch: Operation not permitted
make: *** [install] Error 71

I'm fairly sure this is as a result of the 'rootless' functionality of El Capitan, documented here and here

Bug in window manager recognition

This is a strange case here. I have a script called wm that executes bspwm for infinite times unless the exit code is 1. I use it for live reloading bspwm. Because of this, fetch says my window manager is called Wm.

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.

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.

GPU support.

An experimental version of GPU support is currently in master.

Here's the status for GPU support:

  • Linux
  • Mac OS X
  • FreeBSD
  • OpenBSD
    • We could've used pciutils to get lspci functionality on OpenBSD but it turns out that it requires root.
  • NetBSD
    • No clue on this one, I haven't been able to find a way to get gpu.
  • Windows

Adding support for OpenBSD and NetBSD is impossible at this point as I can't find a way to get the gpu name without needing root privileges.

Troubleshooting

All OS:

I'll need to see a screenshot of fetch.

Linux:

I'll need to see the output of this command:

lspci | grep  "VGA"

If the command above prints something vague instead of your gpu, your pci.ids files may be outdated. See this part of the readme on how to update them.

https://github.com/dylanaraps/fetch#getgpu-doesnt-show-my-exact-video-card-name

Mac OS X:

I'll need to see the output of this command:

system_profiler SPDisplaysDataType | awk -F': ' '/^\ *Chipset Model:/ {printf $2}'

FreeBSD:

I'll need to see the output of this command:

pciconf -lv 2>/dev/null | grep -B 4 "VGA"

Windows:

I'll need to see the output of this command:

wmic path Win32_VideoController get caption

Default image thumbnail directory.

The script currently defaults to storing the image thumbnails in $HOME/.fetchimages. Is this an ok place to be storing the thumbnails by default or should we store them somewhere else?

Readme Screenshots

I want to add some screenshots to the readme that aren't mine. Post some scrots below and I'll pick the best ones to put in the readme!

Syntax Error on OS X

I just tried fetch on OS X El Capitan (10.11.2) and received the following error:

~/bin/fetch: line 1095: syntax error near unexpected token `&'
~/bin/fetch: line 1095: `            ;;&'

I tried removing the ampersand, but that resulted in some kind of infinite loop. Can I do anything else to help pinpoint the problem?

*BSD Support

*BSD Support

This issue is to report what works and doesn't work with the script on OpenBSD. This is a checklist of BSD distros and whether or not the script works/supports them.

  • FreeBSD
  • OpenBSD
  • NetBSD
  • DragonFlyBSD
    • I'm having trouble getting this to work in a virtual machine.
  • PC-BSD
    • This will take me 3 hours to download so don't expect it soon.

If you're running any of the unchecked distros above I'd love it if you could test out the newest master.

NOTE: If there's no interest for any of the unchecked distros I won't be in any sort of rush to add support for them.

Fetch doesn't display an image in MATE Terminal.

Using Ubuntu Mate 15.10. w3m (0.5.3+git20150811) and imagemagick (6.8.8.9) are installed from the repos.

When using Fetch with the --image option, providing either my personal wallpaper or a system one (tried /usr/share/backgrounds/warty-final-ubuntu.png), it doesn't display it, it still shows the distro ASCII logo.

Recognising 3D controller GPUs

Multi GPU systems like laptops using nvidia optimus label the integrated GPU as the VGA device and the dedicated one as 3D controller:
$ lspci | grep 3D
01:00.0 3D controller: NVIDIA Corporation GK107M [GeForce GT 750M] (rev a1)

using lspci | grep -F "VGA|3D" should list every GPU. On the other hand I'm not sure about the formatting... Please update :)

[OS X] How much RAM is available & small things

So let me explain you what I wanted to say yesterday on /r/.
OS X -> there is always max RAM consumption. Using your script, it clearly says only available RAM (which works nice on all kinds of unixes) - except here. A lot of that "used" ram can be used as free, because it is actually free. You actually have to check for RAM pressure here on OS X. I am bad in expressing those things in english; thats why I like you to view picture below and try to understand what I actually wanted to say, for example using screenfetch.

http://imgur.com/9DvgnpG

I also made red dot at shell because of version (which are you already going to implement) and green arrow because I don't know if this gap is supposed to be here or is it a bug.

Also, what I would like to have here (disable by default, enabled via flagz):

  • Terminal app: like Apple Terminal or iTerm.
  • Batery status: like 50% or 100%
  • IP address: like xxx.xxx.xxx.xxx

Add asciiart support

Hello,

I made a small script to print ascii art with term color. You can see it here.
It could be a nice add to fetch. What do you think?

Cheers,

Wrong window manager display

Hi, me again. After the wmctrl dependency dropped, i had a little problem about my WM info.
It showed this:

2016-01-03-122750_666x203_scrot

But i manage to get the correct wm by changing

     windowmanager="${xinitrc/-session/}"

to

    windowmanager="${XDG_CURRENT_DESKTOP}"

I think this is an easier solution than reading .xinitrc, because some people may not have their wm info in their .xinitrc and it can show wrong results in info column. After the fix i applied, this was the output:

2016-01-03-123052_666x204_scrot

Hope this helps.

Add Raspberry PI support on Raspbian!

Basics from making another $os to uname to fixing all current commands to work on it!

Also time to create new ascii image to display it there!

And so on...

Somehow use ($COLUMNS / $LINES) which will allow us to drop tput.

I've doubled script speed by reducing tput usage to just tput lines and tput cols. We could remove tput altogether (This means dropping ncurses) if we can somehow find a quick and reliable way to get the values of these shell variables directly.

Scripts can't read these variables as they're shell variables and not environment variables. Here are the current ways I've found to set these variables in a script:

  • eval $(resize) (Slow on vte based terminals)
  • Sending the signal WINCH to the shell (I couldn't get this to work but I came across it multiple times when searching)

Any ideas?

Add a config file

It would be a great idea to make fetch just some kind of framework used in conjunction with "theme" files. The theme files should describe the order of different components, align and other component options. There should be a default theme file for the current style and different components implemented in their own files.

I know bash at a basic level therefore I can't help :(

IP Address support

I'm working on implementing support for showing your Local IP
address and your Public IP address in fetch.

I'm working on it inside a new branch called ip. Windows and
Linux support is done for the Local IP function.

For those wanting to test, checkout the ip branch and add these
lines to your printinfo function in your config:

info "Local IP" localip
info "Public IP" publicip

NOTE: The public IP features requires an internet connection
as we ping a website for the public IP.

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

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

  • Arch based distros
  • Ubuntu based distros
  • Fedora
  • Gentoo / Funtoo
  • openSUSE
  • Puppy Linux (Quirky Werewolf)
  • Mageia Linux
  • Raspbian
  • PCLinuxOS
  • Zorin OS
  • Tails
  • BLAG
  • Void Linux
  • Solus
  • NixOS
  • Chakra
  • OpenMandriva
  • LMDE
  • gNewSense
  • KaOS
  • Sabayon
  • 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.

  • FreeBSD
  • OpenBSD
    • We're missing Battery support.
  • 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

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.

iTerm2 Image support

iTerm2 image rendering is now in Master, it's untested as I don't have any OS X devices. To enable it change image_backend to iterm2 in the script, like so:

image_backend="iterm2"

or use the launch flag --image_backend iterm2

Thanks!

[OS X] Multiple monitor resolutions

Not sure on non-OSX systems, but on OSX systems if you are running multiple monitors, the function will output the resolutions on to two lines, thus trying to print over a small part of the image display.

Therefore these output lines should probably be printed in to one line by slightly adjusting the following line under the getresolution() function

        "Mac OS X")
            resolution=$(system_profiler SPDisplaysDataType |\
                        awk '/Resolution:/ {printf $2"x"$4" "}')
        ;;

all i did was to change print to printf - this combines the output with a space on to one line only

Aur Package

I'll be adding the script to the AUR soon, In the meantime here's a PKGBUILD that works:

pkgname=fetch-git
_pkgname=fetch
pkgrel=1
pkgdesc="CLI script to show your system's info and display an image using w3m."
arch=('any')
url="https://github.com/dylanaraps/fetch"
license=('GPL')
provides=($_pkgname)
conflicts=($_pkgname)
depends=('bash')
optdepends=(
    'ncurses: (tput) Dynamic image sizing / padding'
    'w3m: Display Images'
    'imagemagick: Image cropping / Thumbnail creation'
    'feh: Wallpaper Displau'
    'mpc: Current Song Displau'
    'xorg-xdpyinfo: Resolution Detection'
    'wmctrl: Accurate window manager detection'
)
makedepends=('git')
source=("$pkgname::git+https://github.com/dylanaraps/fetch.git")
md5sums=('SKIP')

pkgver() {
  cd $pkgname
  git describe --tags --long | sed -r -e 's,^[^0-9]*,,;s,([^-]*-g),r\1,;s,[-_],.,g'
}

package() {
  cd $pkgname
  install -Dm755 "fetch" "$pkgdir/usr/bin/fetch"
}

Gitter Chat

Hey guys.

I've created a gitter chatroom for fetch so that we can move
the smaller talk out of the issues etc. :)

The chatroom is live and you can use your github account
to comment.

https://gitter.im/dylanaraps/fetch

Blank Output on OSX

Like literally nothing.

It just gets stuck like this:

this

No output in regular terminal.app or iterm, when run from bash or fish. This is on OSX beta, but I doubt that would make a difference.

Update the PKGBUILD to install ascii art to `/usr/share/fetch/`

The new distro ascii art doesn't work with the current PKGBUILD. We need to install the ascii folder and all its contents to /usr/share/fetch so that the script has a standard place to look for them.

I've had a go at adding this myself and I'm stuck, It's probably because I'm half asleep and it's 3 AM. I'll get around to doing this tomorrow but if anyone wants to do it in the meantime, go ahead!

The current PKGBUILD is here:

https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=fetch-git

OSX with ZSH: parse error

Using ZSH 5.2 on OSX 10.11.2, I get the following error when running ./fetchi:1184: parse error near '&'. Looking at line line 1184 it seems the shell doesn't like the amperstand after the double semicolens to end the case statement.

Disk Support

An experimental version of Disk support is currently in master.

You can enable it by uncommenting this in the info function at the top of the script

info "Disk" disk

Here's the status for Disk support:

  • Linux
  • Mac OS X
  • FreeBSD
  • OpenBSD
    • Missing the launch flag needed to get total
  • NetBSD
    • Missing the launch flag needed to get total
  • Windows

Adding support for OpenBSD and NetBSD is impossible at this point as I can't find a way to get the disk total since the launch flag I'm using for all other OS doesn't exist.

If you have an idea on how to get the total disk space of all disks on OpenBSD or NetBSD
then open a new issue or send a PR.

Issues with image, packages, theme, cpu speed and gpu on Elementary OS

I've encountered several discrepancies compared to screenfetch on Elementary OS. (All dependencies are installed)

screenshot from 2016-01-23 14 07 53
screenshot from 2016-01-23 14 03 48
screenshot from 2016-01-23 14 12 02

So to sum it up, background image isn't being displayed, packages aren't being displayed, the WM theme isn't being displayed, the CPU speeds don't match (should be 1.9GHz), and it only shows the integrated graphics.

Packages is easily fixed by including "elementary"* with "Ubuntu"* | "Mint"* | "Debian"* | "Kali Linux"* | "Deepin Linux"*.

For the other parts I don't have any quick fixes sadly.

Add a Makefile

The script has gone from being a single file to being a bunch of files which makes manual installation a little tricker for people. I propose that we add a Makefile to the script that installs the ascii art and default config to /usr/share/fetch/ and installs the script itself to ${prefix}/bin.

I've already finished creating the Makefile and it works great, I just want to know what you guys think about it before pushing this to master.

PREFIX        ?=  usr
RM            ?=  rm -f
INSTALL_DIR   ?=  install -m755 -d
INSTALL_PROG  ?=  install -m755 -D
INSTALL_FILE  ?=  install -m644 -D

all:
    @echo Run \'make install\' to install Fetch

install:
    $(INSTALL_DIR) $(DESTDIR)/$(PREFIX)/bin
    $(INSTALL_DIR) $(DESTDIR)/usr/share/fetch/ascii/distro
    $(INSTALL_PROG) fetch $(DESTDIR)/$(PREFIX)/bin/fetch
    $(INSTALL_PROG) config $(DESTDIR)/usr/share/fetch/config
    $(INSTALL_PROG) ascii/distro/* $(DESTDIR)/usr/share/fetch/ascii/distro

uninstall:
    $(RM) $(DESTDIR)/$(PREFIX)/bin/fetch

Typo in help output

Noticed the following typo when you output all the args
--birthday_time on/ff

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.