Convert Figma logo to code with AI

KittyKatt logoscreenFetch

Fetches system/theme information in terminal for Linux desktop screenshots.

3,840
454
3,840
162

Top Related Projects

21,911

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

16,285

z - jump around

10,757

Linux/OSX/FreeBSD resource monitor

172,325

🙃 A delightful community-driven (with 2,300+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, python, etc), 140+ themes to spice up your morning, and an auto-update tool that makes it easy to keep up with the latest updates from the community.

A Zsh theme

108,598

Display and control your Android device

Quick Overview

screenFetch is a command-line system information tool that displays information about the user's operating system, hardware, and other system details. It is designed to be a simple and easy-to-use tool for quickly gathering and displaying system information.

Pros

  • Cross-platform compatibility: screenFetch supports a wide range of operating systems, including Linux, macOS, and Windows.
  • Customizable output: Users can customize the output of screenFetch to display only the information they need.
  • Easy to use: screenFetch is a simple command-line tool that requires minimal setup or configuration.
  • Open-source: screenFetch is an open-source project, allowing users to contribute to its development and customization.

Cons

  • Limited functionality: While screenFetch provides a lot of useful information, it may not be as comprehensive as some other system information tools.
  • Dependency on external tools: screenFetch relies on several external tools (e.g., lsb_release, uname, lspci) to gather system information, which may not be available on all systems.
  • Potential performance impact: Depending on the system, running screenFetch may have a slight performance impact due to the amount of information it gathers.
  • Outdated documentation: The project's documentation may not always be up-to-date with the latest features and changes.

Code Examples

N/A (screenFetch is not a code library)

Getting Started

To get started with screenFetch, follow these steps:

  1. Install screenFetch on your system. The installation process varies depending on your operating system:

    • Linux: Most Linux distributions have screenFetch available in their package repositories. You can install it using your package manager, e.g., sudo apt-get install screenfetch (Ubuntu/Debian), sudo yum install screenfetch (CentOS/RHEL), or sudo pacman -S screenfetch (Arch Linux).
    • macOS: You can install screenFetch using a package manager like Homebrew (brew install screenfetch) or MacPorts (port install screenfetch).
    • Windows: There is no official Windows version of screenFetch, but you can use a similar tool like Neofetch or Sysinfo.
  2. Once installed, you can run screenFetch by simply typing screenfetch in your terminal or command prompt.

  3. By default, screenFetch will display a comprehensive set of system information, including the operating system, kernel version, desktop environment, CPU, memory, and more.

  4. If you want to customize the output, you can use various command-line options. For example, to display only the operating system information, you can use screenfetch -O. You can find a full list of available options by running screenfetch --help.

That's it! screenFetch is a straightforward tool that can quickly provide you with detailed system information without the need for complex setup or configuration.

Competitor Comparisons

21,911

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

Pros of neofetch

  • Faster execution time due to being written in Bash
  • More customizable output with config file support
  • Actively maintained with frequent updates

Cons of neofetch

  • Lacks some advanced features present in screenFetch
  • May have compatibility issues with older systems

Code Comparison

screenFetch (Python):

def detectdistro():
    if os.path.exists("/etc/os-release"):
        with open("/etc/os-release", "r") as f:
            for line in f:
                if line.startswith("ID="):
                    return line.split("=")[1].strip().lower()

neofetch (Bash):

get_distro() {
    [[ -f /etc/os-release ]] && {
        . /etc/os-release
        distro="$ID"
    }
    [[ -z "$distro" ]] && distro="$(uname -s)"
    echo "${distro^}"
}

Both projects aim to display system information in a visually appealing way. screenFetch, written in Python, offers more advanced features but may be slower. neofetch, written in Bash, provides faster execution and better customization options. neofetch is actively maintained, while screenFetch has seen less frequent updates. The code comparison shows how both projects approach distro detection, with neofetch using a more concise Bash implementation.

16,285

z - jump around

Pros of z

  • Focuses on efficient directory navigation, enhancing productivity
  • Lightweight and fast, with minimal system resource usage
  • Learns and adapts to user behavior over time

Cons of z

  • Limited to directory navigation, lacks system information display
  • Requires initial setup and usage time to build directory database
  • May not be as visually appealing or informative for system showcasing

Code Comparison

z:

z foo       # cd to most frecent dir matching foo
z foo bar   # cd to most frecent dir matching foo and bar
z -r foo    # cd to highest ranked dir matching foo

screenFetch:

screenfetch
screenfetch -n
screenfetch -N
screenfetch -D 'Distribution Name'

Summary

z and screenFetch serve different purposes. z is a powerful tool for efficient directory navigation, learning from user behavior to quickly access frequently used directories. It's lightweight and fast but limited in scope.

screenFetch, on the other hand, is designed to display system information and create ASCII art logos of operating systems. It's more visually oriented and provides a comprehensive overview of system specs, making it ideal for showcasing or quickly checking system details.

While z enhances productivity in navigating the file system, screenFetch is better suited for system information display and creating visually appealing system summaries. The choice between the two depends on the user's specific needs: efficient navigation versus system information display.

10,757

Linux/OSX/FreeBSD resource monitor

Pros of bashtop

  • More comprehensive system monitoring with real-time updates
  • Interactive interface with mouse support
  • Customizable color schemes and layout options

Cons of bashtop

  • Higher system resource usage due to more intensive monitoring
  • Steeper learning curve for configuration and customization
  • Requires newer Bash version (4.4+) for full functionality

Code comparison

screenFetch (ASCII art generation):

ascii_distro() {
    case ${distro} in
        "Arch Linux"|"Arch"|"arch")
            if [[ ${ascii_distro} == "auto" ]]; then
                ascii_distro="arch"
            fi
        ;;
    esac
}

bashtop (Process monitoring):

get_proc_list() {
    local pids=($(ls /proc | grep -E '^[0-9]+$'))
    for pid in "${pids[@]}"; do
        [[ -f "/proc/$pid/stat" ]] && read_proc "$pid"
    done
}

Both projects are written in Bash, but bashtop focuses on system monitoring and resource management, while screenFetch primarily generates system information and ASCII art. bashtop offers a more interactive and visually appealing interface, while screenFetch is lighter and faster for quick system information retrieval.

172,325

🙃 A delightful community-driven (with 2,300+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, python, etc), 140+ themes to spice up your morning, and an auto-update tool that makes it easy to keep up with the latest updates from the community.

Pros of Oh My Zsh

  • Extensive plugin ecosystem for enhanced functionality
  • Customizable themes for a personalized shell experience
  • Active community and frequent updates

Cons of Oh My Zsh

  • Can slow down shell startup time, especially with many plugins
  • More complex configuration compared to screenFetch
  • Requires Zsh shell, which may not be default on all systems

Code Comparison

screenFetch (bash):

#!/usr/bin/env bash
# Fetch system information
distro=$(lsb_release -si)
version=$(lsb_release -sr)
echo "$distro $version"

Oh My Zsh (zsh):

# ~/.zshrc
ZSH_THEME="robbyrussell"
plugins=(git docker kubectl)
source $ZSH/oh-my-zsh.sh

Summary

screenFetch is a lightweight system information script, while Oh My Zsh is a comprehensive Zsh configuration framework. screenFetch focuses on displaying system details, whereas Oh My Zsh enhances the overall shell experience with themes and plugins. screenFetch is simpler to use and works with bash, while Oh My Zsh offers more customization but requires Zsh and may impact performance.

A Zsh theme

Pros of powerlevel10k

  • Highly customizable and feature-rich Zsh theme
  • Extremely fast and responsive, even on slow systems
  • Supports a wide range of prompt segments and icons

Cons of powerlevel10k

  • More complex setup and configuration process
  • Requires a Powerline-compatible font for full functionality
  • May be overwhelming for users who prefer simpler prompts

Code Comparison

screenFetch (bash):

#!/bin/bash
# Fetch system information
distro=$(lsb_release -si)
kernel=$(uname -r)
uptime=$(uptime -p)
echo "OS: $distro"
echo "Kernel: $kernel"

powerlevel10k (zsh):

# .zshrc configuration
source ~/powerlevel10k/powerlevel10k.zsh-theme
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icon dir vcs)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status time)
POWERLEVEL9K_MODE='nerdfont-complete'

While screenFetch is a simple system information fetching tool, powerlevel10k is a highly customizable Zsh theme that provides a rich and interactive command-line experience. screenFetch is easier to use out of the box, while powerlevel10k offers more advanced features and customization options for power users.

108,598

Display and control your Android device

Pros of scrcpy

  • Provides real-time screen mirroring and control of Android devices
  • Supports high-performance video encoding and low-latency streaming
  • Cross-platform compatibility (Windows, macOS, Linux)

Cons of scrcpy

  • Limited to Android devices only
  • Requires USB debugging or wireless debugging to be enabled on the device
  • May have compatibility issues with some Android versions or device manufacturers

Code Comparison

screenFetch (Bash):

distro="$(uname -s)"
if [[ "${distro}" == "Darwin" ]]; then
    distro="macOS"
elif [[ "${distro}" == "Linux" ]]; then
    distro=$(awk -F= '/^NAME/{print $2}' /etc/os-release)
fi

scrcpy (C):

static void screen_init_render(struct screen *screen) {
    SDL_RendererInfo renderer_info;
    if (SDL_GetRendererInfo(screen->renderer, &renderer_info)) {
        LOGW("Could not get renderer info");
        return;
    }
}

Summary

screenFetch is a Bash script that displays system information and ASCII art, while scrcpy is a C-based application for Android device screen mirroring and control. screenFetch is lightweight and works on various Unix-like systems, whereas scrcpy offers real-time interaction with Android devices but has more specific requirements and limitations.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

screenFetch - The Bash Screenshot Information Tool

What is screenFetch?

screenFetch is a "Bash Screenshot Information Tool". This handy Bash script can be used to generate one of those nifty terminal theme information + ASCII distribution logos you see in everyone's screenshots nowadays. It will auto-detect your distribution and display an ASCII version of that distribution's logo and some valuable information to the right. There are options to specify no ASCII art, colors, taking a screenshot upon displaying info, and even customizing the screenshot command! This script is very easy to add to and can easily be extended.

How do I get screenFetch?

Please see Installation.

Running screenfetch

To run screenFetch, open a terminal of some sort and type in the command screenfetch or wherever you saved the script to. This will generate an ASCII logo with the information printed to the side of the logo. There are some options that may be specified on the command line, and those are shown below or by executing screenfetch -h:

  -v                 Verbose output.
  -o 'OPTIONS'       Allows for setting script variables on the
                     command line. Must be in the following format...
                     'OPTION1="OPTIONARG1";OPTION2="OPTIONARG2"'
  -d '+var;-var;var' Allows for setting what information is displayed
                     on the command line. You can add displays with +var,var. You
                     can delete displays with -var,var. Setting without + or - will
                     set display to that explicit combination. Add and delete statements
                     may be used in conjunction by placing a ; between them as so:
                     +var,var,var;-var,var.
  -n                 Do not display ASCII distribution logo.
  -N                 Strip all color from output.
  -w                 Wrap long lines.
  -t                 Truncate output based on terminal width (Experimental!).
  -p                 Output in portrait mode, with logo above info.
  -s [-u IMGHOST]    Using this flag tells the script that you want it
                     to take a screenshot. Use the -m flag if you would like
                     to move it to a new location afterwards.
  -c string          You may change the outputted colors with -c. The format is
                     as follows: [0-9][0-9],[0-9][0-9]. The first argument controls the
                     ASCII logo colors and the label colors. The second argument
                     controls the colors of the information found. One argument may be
                     used without the other.
  -a 'PATH'          You can specify a custom ASCII art by passing the path
                     to a Bash script, defining `startline` and `fulloutput`
                     variables, and optionally `labelcolor` and `textcolor`.
                     See the `asciiText` function in the source code for more
                     information on the variables format.
  -S 'COMMAND'       Here you can specify a custom screenshot command for
                     the script to execute. Surrounding quotes are required.
  -D 'DISTRO'        Here you can specify your distribution for the script
                     to use. Surrounding quotes are required.
  -A 'DISTRO'        Here you can specify the distribution art that you want
                     displayed. This is for when you want your distro
                     detected but want to display a different logo.
  -E                 Suppress output of errors.
  -C                 Add custom (extra) lines.
                     For example:
                           screenfetch -C 'IP WAN=192.168.0.12,IP BRIDGED=10.1.1.10'
                     ... will add two extra lines:
                           IP WAN: 192.168.0.12
                           IP BRIDGED: 10.1.1.10
  -V, --version      Display current script version.
  -h, --help         Display this help.

Contact Me

If you would like to suggest something new, inform me of an issue in the script, become part of the project, or talk to me about anything else, you can either email me at screenfetch@kittykatt.co or you can connect to Rizon and reach me at irc://irc.rizon.net/screenFetch