docs(readme): add configuration documentation

Swadhin Biswas committed 7 months ago
29f7569
1 parent 3445393
commit 29f7569
1 file changed
+100 -0
Showing 1 changed file+100-0
▼README.md
+100-0
98
98
- [Usage](#usage)
99
99
- [Image Backends](#image-backends)
100
100
- [How Smart Image Fetching Works](#how-smart-image-fetching-works)
101
+- [Advanced Features](#advanced-features)
102
+- [Information Displayed](#information-displayed)
103
+- [Supported Distributions](#supported-distributions)
104
+- [Comparison with Neofetch](#comparison-with-neofetch)
105
+- [Dependencies](#dependencies)
106
+- [Uninstalling](#uninstalling)
107
+- [Contributing](#contributing)
108
+- [Star History](#star-history)
109
+- [License](#license)
110
+
111
+---
112
+
113
+## Features
114
+
115
+> **Why FetchX over neofetch?** Neofetch is [no longer maintained](https://github.com/dylanaraps/neofetch/issues/2691). FetchX is a modern, actively developed replacement written in Rust — 10x faster, with image support and smart caching built in.
116
+
117
+- **Blazing Fast** — Parallel info detection across 8 threads, finishes in ~10-50ms (vs neofetch's ~200-500ms)
118
+- **Tiny Binary** — ~1.8 MB stripped, LTO-optimized — no Python, no Bash, no runtime deps
119
+- **TOML Config** — Clean `~/.config/fetchx/config.toml` with 35+ options (no scripting needed)
120
+- **5 Image Backends** — Kitty graphics protocol, Sixel, Chafa, w3m, iTerm2
121
+- **Smart Image Caching** — Auto-downloads random images from API, shows instantly with zero delay, new image every run
122
+- **60+ Distro Logos** — ASCII art with `{c1}`-`{c6}` color placeholders
123
+- **Nerd Font Icons** — Optional icons for every info label (requires [Nerd Font](https://www.nerdfonts.com/))
124
+- **Progress Bars** — Visual bars for memory and disk usage `[███████░░░░]`
125
+- **Emoji Mode** — Fun emoji art alternative to ASCII logos
126
+- **JSON Output** — Machine-readable `--json` flag for scripting & automation
127
+- **Custom ASCII Art** — Load your own art from any text file
128
+- **256-Color Support** — Full terminal color palette
129
+- **Terminal-Width Aware** — Lines truncate cleanly, never wraps
130
+- **Interactive Image Picker** — Browse & select images with fzf
131
+- **Daemon Mode** — Background service for Waybar/Polybar/status bar integration
132
+- **Drop-in neofetch replacement** — `alias neofetch='fetchx'` and you're done
133
+
134
+---
135
+
136
+## Installation
137
+
138
+### Quick Install (Recommended)
139
+
140
+One-liner that clones, builds, installs, and sets up aliases:
141
+
142
+```bash
143
+curl -fsSL https://raw.githubusercontent.com/swadhinbiswas/fetchx/main/install.sh | bash
144
+```
145
+
146
+Or with wget:
147
+
148
+```bash
149
+wget -qO- https://raw.githubusercontent.com/swadhinbiswas/fetchx/main/install.sh | bash
150
+```
151
+
152
+**Install script options:**
153
+
154
+```bash
155
+./install.sh # Install to ~/.local/bin (default)
156
+./install.sh --system # Install to /usr/local/bin (requires sudo)
157
+./install.sh --prefix=/opt # Custom prefix
158
+./install.sh --no-alias # Skip shell alias setup
159
+./install.sh --uninstall # Remove FetchX completely
160
+```
161
+
162
+### From Source (Manual)
163
+
164
+**Prerequisites:** [Rust toolchain](https://rustup.rs/) (rustc + cargo)
165
+
166
+```bash
167
+# Install Rust (if not already installed)
168
+curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
169
+source ~/.cargo/env
170
+
171
+# Clone and build
172
+git clone https://github.com/swadhinbiswas/fetchx.git
173
+cd fetchx/fetchx
174
+
175
+# Build optimized release binary
176
+cargo build --release
177
+
178
+# Install to user directory (no sudo needed)
179
+mkdir -p ~/.local/bin
180
+install -m 755 target/release/fetchx ~/.local/bin/fetchx
181
+
182
+# Make sure ~/.local/bin is in your PATH (see Shell Setup below)
183
+```
184
+
185
+**System-wide install (requires sudo):**
186
+
187
+```bash
188
+sudo install -m 755 target/release/fetchx /usr/local/bin/fetchx
189
+```
190
+
191
+### With Make
192
+
193
+```bash
194
+git clone https://github.com/swadhinbiswas/fetchx.git
195
+cd fetchx/fetchx
196
+make # Build
197
+sudo make install # Install to /usr/local/bin
198
+# or
199
+make PREFIX=~/.local install # Install to ~/.local/bin
200
+```
101
201