https://github.com/David17c/Dfetch
A lightweight system information tool focused on clean output
https://github.com/David17c/Dfetch
cli dfetch
Last synced: 6 days ago
JSON representation
A lightweight system information tool focused on clean output
- Host: GitHub
- URL: https://github.com/David17c/Dfetch
- Owner: David17c
- License: mit
- Created: 2026-05-18T18:07:58.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-06-29T08:07:11.000Z (6 days ago)
- Last Synced: 2026-06-29T10:09:07.031Z (6 days ago)
- Topics: cli, dfetch
- Language: Go
- Homepage:
- Size: 9.36 MB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-fetch - dfetch - A clean and practical system information tool. `Go` (Operation System / GNU/Linux Only)
README
# Dfetch
Dfetch is a lightweight system information tool focused on clean output, fast startup times, and simple configuration. It provides useful system details without the complexity of heavily customizable alternatives.
## Why use this?
Dfetch is designed for those who want a simple system information tool with sensible defaults, clean output, and fast startup times. Rather than prioritizing extensive customization, Dfetch focuses on being lightweight, easy to configure, and pleasant to use.
## Features
- Fast startup time
- Simple configuration file
- Useful, clutter-free system information
- Custom ASCII art support
- Configurable modules
- No external dependencies
- Clean default look
## Installation
To install Dfetch, visit [the releases page](https://github.com/David17c/Dfetch/releases) and either download the package for your operating system, download a prebuilt binary, or build Dfetch from source.
## Customization
`~/.config/Dfetch/Dfetch.conf`
```
// Lines starting with `//` are comments and are ignored by Dfetch.
// In the modules section, you can change which information is displayed and in what order.
// Insert empty lines in the modules block to get empty lines in the final output.
modules {
userinfo
os
host
kernel
uptime
shell
terminal
de
packages
cpu
ram
swap
disk
motherboard
local_ip
// battery
// time
// date
}
custom_ascii: default
// Set a custom ASCII logo by providing the path to a text file containing it.
accent_color: default
// Color used for the information labels.
// Available colors:
// black, red, green, yellow, blue,
// magenta, cyan, white,
// bright_black, bright_red,
// bright_green, bright_yellow,
// bright_blue, bright_magenta,
// bright_cyan, bright_white
```
## Supported Linux distributions
| Distribution | Status |
|--------------|--------|
| Arch | Tested |
| Artix | Untested |
| Bazzite | Tested |
| CachyOS | Tested |
| Debian | Tested |
| EndeavourOS | Tested |
| Fedora | Tested |
| Linux Mint | Tested |
| Manjaro | Tested |
| NixOS | Untested |
| OpenSUSE Leap | Tested |
| OpenSUSE Tumbleweed | Tested |
| Pop!_OS | Tested |
| Ubuntu | Tested |
| Zorin OS | Tested |
If your favorite distribution isn't listed, it may still be supported. This table only includes distributions that have built-in ASCII art.
Most of the listed distributions have been tested, but bugs may still exist. Since Dfetch isn't continuously tested on every supported distribution, some issues may go unnoticed.
## How to make a custom ascii art
Save your ASCII art in a text file. It should look something like this.
```
...-:::::-...
.-MMMMMMMMMMMMMMM-.
.-MMMM`..-:::::::-..`MMMM-.
.:MMMM.:MMMMMMMMMMMMMMM:.MMMM:.
-MMM-M---MMMMMMMMMMMMMMMMMMM.MMM-
:MMM:MM` :MMMM:....::-...-MMMM:MMM:
:MMM:MMM` :MM:` `` `` `:MMM:MMM:
.MMM.MMMM` :MM. -MM. .MM- `MMMM.MMM.
:MMM:MMMM` :MM. -MM- .MM: `MMMM-MMM:
:MMM:MMMM` :MM. -MM- .MM: `MMMM:MMM:
:MMM:MMMM` :MM. -MM- .MM: `MMMM-MMM:
.MMM.MMMM` :MM:--:MM:--:MM: `MMMM.MMM.
:MMM:MMM- `-MMMMMMMMMMMM-` -MMM-MMM:
:MMM:MMM:` `:MMM:MMM:
.MMM.MMMM:--------------:MMMM.MMM.
'-MMMM.-MMMMMMMMMMMMMMM-.MMMM-'
'.-MMMM``--:::::--``MMMM-.'
'-MMMMMMMMMMMMM-'
``-:::::-``
```
You can then optionally add colors by using color tags. For a list of supported colors look at the default config file.
```
${bright_white}...-:::::-...
${bright_white} .-MMMMMMMMMMMMMMM-.
${bright_white} .-MMMM${green}`..-:::::::-..`${bright_white}MMMM-.
${bright_white} .:MMMM${green}.:MMMMMMMMMMMMMMM:.${bright_white}MMMM:.
${bright_white} -MMM${green}-M---MMMMMMMMMMMMMMMMMMM.${bright_white}MMM-
${bright_white} :MMM${green}:MM` :MMMM:....::-...-MMMM:${bright_white}MMM:
${bright_white} :MMM${green}:MMM` :MM:` `` `` `:MMM:${bright_white}MMM:
${bright_white}.MMM${green}.MMMM` :MM. -MM. .MM- `MMMM.${bright_white}MMM.
${bright_white}:MMM${green}:MMMM` :MM. -MM- .MM: `MMMM-${bright_white}MMM:
${bright_white}:MMM${green}:MMMM` :MM. -MM- .MM: `MMMM:${bright_white}MMM:
${bright_white}:MMM${green}:MMMM` :MM. -MM- .MM: `MMMM-${bright_white}MMM:
${bright_white}.MMM${green}.MMMM` :MM:--:MM:--:MM: `MMMM.${bright_white}MMM.
${bright_white} :MMM${green}:MMM- `-MMMMMMMMMMMM-` -MMM-${bright_white}MMM:
${bright_white} :MMM${green}:MMM:` `:MMM:${bright_white}MMM:
${bright_white} .MMM${green}.MMMM:--------------:MMMM.${bright_white}MMM.
${bright_white} '-MMMM${green}.-MMMMMMMMMMMMMMM-.${bright_white}MMMM-'
${bright_white} '.-MMMM${green}``--:::::--``${bright_white}MMMM-.'
${bright_white} '-MMMMMMMMMMMMM-'
${bright_white} ``-:::::-``
accent_color: green
```
At the bottom of the file add an accent color: `accent_color: COLOR`. This is the color given to the info module labels.
In your config file, set: `custom_ascii: PATH_TO_FILE`. Dfetch should now be using your ASCII art.