getquotes is a powerful command-line tool written in Rust that fetches and displays inspirational quotes directly from Wikiquote. Whether you're looking for motivation, wisdom, or just a quick pick-me-up, GetQuotes has got you covered. ๐
- ๐ Features
- ๐ฅ Installation
- ๐งญ Configuration
- ๐ก Usage
- ๐ค Contributing
- ๐ License
- ๐ Acknowledgments
- ๐ Show Your Support
- Fetch Quotes: Get random quotes from Wikiquote. ๐
- Custom Authors: Specify authors to fetch quotes from. ๐๏ธ
- Rainbow Mode: Display quotes with a real rainbow gradient. ๐
- Offline Mode: Use cached quotes when offline. ๐ด
- Configurable: Customize colors, gradients, text styles, layout, log file, and more via a TOML configuration file. ๐ ๏ธ
- Lightweight: Fast and efficient, written in Rust. โก
| Repository | Command To Install | Version |
|---|---|---|
| Crates.io | cargo install getquotes |
|
| AUR | yay -S getquotes |
|
| AUR (Git) | yay -S getquotes-git |
|
| Homebrew | brew install MuntasirSZN/programs/getquotes |
Note
You can install getquotes from the AUR using yay or paru, or any other AUR helper.
You can clone the repository and build it from source:
git clone https://github.com/MuntasirSZN/getquotes.git
cd getquotes
cargo build --releaseThen, copy the binary to your PATH:
cp target/release/getquotes /usr/local/binManpages are included in the repository and can be installed using:
sudo cp man/getquotes.1 /usr/share/man/man1
sudo mandb # To update the manpage databaseIf you are on windows, you can use the ps1xml file, which is a like a manpage for windows powershell. Use the Get-Help command to view the manpage.
copy .\man\getquotes.ps1xml $env:PSModulePath\getquotes.ps1xml
Get-Help getquotesImportant
If you are building for android from source, you need the Android NDK installed and the ANDROID_NDK_HOME environment variable set to the NDK path.
getquotes can be configured using a TOML configuration file. The configuration file schema is generated from Rust types with schemars and written to config/config.schema.json. You can use this schema in editors powered by Taplo or Tombi. Add this at the top of your config file:
#:schema https://raw.githubusercontent.com/MuntasirSZN/getquotes/refs/heads/main/config/config.schema.jsonHere's an example of a configuration file:
# List of authors to fetch quotes from
authors = [
"Albert Einstein",
"Isaac Newton"
]
# Theme color supports hex, rgb/rgba, hsl, or CSS-inspired gradients
theme_color = "conic-gradient(from 90deg, #FF5733, hsl(45, 100%, 50%), rgb(0, 170, 255))"
# Extra styling for the quote text
quote_style = "bold"
# Styling for the author line
author_style = "italic,green"
# Optional styling for nested quotes inside the quote text
nested_quote_style = "underline"
# Maximum number of attempts to fetch a quote
max_tries = 50
# Log file path
log_file = "custom_getquotes.log"
# Enable rainbow mode for a true rainbow gradient
rainbow_mode = false
# Output layout: "default" or "box"
layout = "default"
# Box corner style when layout = "box": "pointy" or "rounded"
box_corners = "pointy"- authors: An array of author names to fetch quotes from. At least one author must be specified.
- theme_color: The base quote color. Supports hex,
rgb(...),rgba(...),hsl(...), and CSS-inspired gradient functions such aslinear-gradient(...),radial-gradient(...),conic-gradient(...), and repeating variants. - quote_style: Comma-separated quote styling tokens such as
bold,italic,underline,strikethrough, colors, or gradients. - author_style: Comma-separated styling tokens for the author line.
- nested_quote_style: Optional styling applied to quotes found inside the main quote text.
- max_tries: The maximum number of attempts to find a quote (between 1 and 100, default is 30).
- log_file: The path to the log file (default is "getquotes.log").
- rainbow_mode: Overrides the quote color with a rainbow gradient.
- layout:
defaultkeeps the current layout, whileboxrenders the quote and author inside a box. - box_corners: Chooses
pointy(+,|,-) orrounded(โญ,โฎ,โฐ,โฏ,โ,โ) corners for box layout.
A simple cli tool to get quotes in your terminal using WikiQuotes
Usage: getquotes [OPTIONS]
Options:
-a, --authors <AUTHORS> Specify a list of authors to fetch quotes from
-t, --theme-color <THEME_COLOR> Set the theme color for the displayed quotes
-m, --max-tries <MAX_TRIES> Set the maximum number of tries to fetch a quote
-l, --log-file <LOG_FILE> Specify the log file path
-r, --rainbow-mode [<RAINBOW_MODE>]
Enable rainbow mode for gradient rainbow quote colors
-i, --init-cache Initialize the quote cache for offline mode
-o, --offline Run in offline mode, using cached quotes
-v, --version Print version information
-C, --config <CONFIG> Use a custom TOML configuration file
-c, --completion <COMPLETION> Generate shell completion script [possible values: bash, elvish, fish, powershell, zsh, nushell]
-h, --help Print help
MuntasirSZN <muntasir.joypurhat@gmail.com>
We welcome contributions from the community! If you'd like to contribute, please follow these steps:
- Fork the repository. ๐ด
- Create a new branch. ๐ฟ
- Make your changes. โ๏ธ
- Submit a pull request. ๐
Please make sure to follow our Code of Conduct and Contribution Guidelines.
The configuration schema file is config/config.schema.json, generated from Config via schemars.
If you change configuration fields, run:
cargo run --bin generate_config_schemaThis project is licensed under the MIT License - see the LICENSE file for details.
- Wikiquote: For providing the quotes. ๐
- Rust Community: For the amazing ecosystem and tools. ๐ฆ
- Inspiration: This project was inspired by the need for a simple, daily dose of inspiration. ๐
If you find this project useful, please give it a โญ๏ธ on GitHub!