screenfetch
Display system information and distribution logo
TLDR
Start screenfetch
Take a screenshot (requires 'scrot')
Specify distribution logo
Specify distribution logo and text
Strip all color
SYNOPSIS
screenfetch [OPTIONS]
screenfetch is executed without arguments to display default system information. Various options can be supplied to customize the output, control screenshot functionality, or specify data manually.
PARAMETERS
-h, --help
Show the help message and exit.
-v, --version
Show the version information and exit.
-V, --verbose
Enable verbose output for debugging.
-s, --screenshot
Take a screenshot after displaying system information.
--display <display_name>
Specify an X display to use for screenshot capture.
-o, --output <file_path>
Specify the output file path for the screenshot.
-d, --dry-run
Perform a dry run without actually taking a screenshot.
-u, --upload
Upload the taken screenshot to Imgur.
-c, --color-range <num>
Change the color range for the output (0-15).
-n, --no-color
Disable all ANSI colors in the output.
-N, --no-logo
Disable the ASCII distribution logo.
-L, --logo-only
Only display the ASCII logo without system information.
-r, --logo-on-right
Place the ASCII logo on the right side of the output.
-t, --tune
Tune the output to fit the terminal width.
-w, --no-wrap
Disable text wrapping for the output.
-p, --pipe
Format output for piping (no colors, logo, or headers).
-a, --autodetect
Attempt to autodetect all information, even if it's slow.
-i, --show-items <item1,item2>
Only show specified comma-separated items.
-I, --hide-items <item1,item2>
Hide specified comma-separated items.
-C, --config
Generate a configuration file (~/.screenfetchrc).
-U, --update
Update screenfetch from the latest git commit (requires git).
-O, --os <string>
Manually specify the operating system.
-K, --kernel <string>
Manually specify the kernel version.
-M, --uptime <string>
Manually specify the system uptime.
-P, --packages <string>
Manually specify the package count.
-S, --shell <string>
Manually specify the shell.
-R, --resolution <string>
Manually specify the screen resolution.
--desktop-environment <string>
Manually specify the desktop environment.
-W, --window-manager <string>
Manually specify the window manager.
-T, --theme <string>
Manually specify the GTK theme.
-X, --icons <string>
Manually specify the GTK icon theme.
-F, --font <string>
Manually specify the GTK font.
--cpu <string>
Manually specify the CPU information.
--gpu <string>
Manually specify the GPU information.
--memory <string>
Manually specify the memory information.
--disable-ssh
Disable SSH detection, useful for faster startup on SSH connections.
DESCRIPTION
screenfetch is a command-line tool designed to display system information in an aesthetic and easily shareable format. It gathers details such as the operating system, kernel, uptime, installed packages, shell, resolution, desktop environment, window manager, GTK theme, icons, font, CPU, GPU, and memory usage. This information is presented alongside a large ASCII art logo of the detected Linux distribution or operating system. Popular among Linux users for showcasing their desktop environments, screenfetch is frequently used in screenshots shared on communities like r/unixporn. Its primary appeal lies in its ability to quickly summarize system specifications in a visually engaging manner.
CAVEATS
screenfetch relies on various external commands and system files to gather information, and its accuracy can depend on their presence and correct functioning. The screenshot feature specifically requires tools like scrot to be installed. While screenfetch was widely popular, its development has slowed significantly, leading to neofetch being a more actively maintained and feature-rich alternative for similar functionality. Users might find screenfetch less performant or less accurate on very new or obscure distributions compared to neofetch.
CONFIGURATION FILE
screenfetch supports a user-specific configuration file located at ~/.screenfetchrc. This file allows users to set default options, customize information display, and manage various settings persistent across sessions without needing to specify command-line arguments every time. It can be generated using the --config option.
SCREENSHOT DEPENDENCIES
The built-in screenshot functionality (-s) of screenfetch is not self-contained. It typically relies on external command-line screenshot utilities like scrot (for X11) or other similar tools being installed on the system. Without these dependencies, the screenshot feature will not work.
HISTORY
screenfetch emerged as a popular command-line utility in the Linux community, particularly within desktop customization scenes like r/unixporn. Developed primarily by Zane Bitter (KittyKatt), it gained traction for its ability to generate visually appealing system information alongside ASCII art distribution logos, making it ideal for sharing system configurations in screenshots. Its peak popularity was arguably in the mid-2010s. However, as its development became less active, a new tool called neofetch emerged, offering similar functionality with more features, better maintainability, and broader distribution support. While screenfetch remains functional, neofetch has largely superseded it as the go-to tool for this specific use case.
SEE ALSO
neofetch(1), htop(1), uname(1), lsb_release(1), scrot(1)