Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/golota60/yayfetch
π§ Node.js multi-platform screenfetch
https://github.com/golota60/yayfetch
aesthetics cli command-line command-line-tool fetch javascript linux macos neofetch osinfo pfetch screenfetch system-information systeminfo terminal typescript unixporn windows
Last synced: about 2 months ago
JSON representation
π§ Node.js multi-platform screenfetch
- Host: GitHub
- URL: https://github.com/golota60/yayfetch
- Owner: golota60
- License: mit
- Created: 2019-11-08T18:02:57.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-12-19T18:06:05.000Z (about 1 year ago)
- Last Synced: 2024-09-16T23:28:37.977Z (3 months ago)
- Topics: aesthetics, cli, command-line, command-line-tool, fetch, javascript, linux, macos, neofetch, osinfo, pfetch, screenfetch, system-information, systeminfo, terminal, typescript, unixporn, windows
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/yayfetch
- Size: 6.27 MB
- Stars: 22
- Watchers: 3
- Forks: 0
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
Yayfetch
π§Multi-platform customizable screenfetch toolπ§
Yayfetch is a tool similar to screenfetch, it just displays info about your computer in a prettified format - except you can use it on a non-linux machine via npx, thanks to the wonders of node
## Usage
Yayfetch works both with `npx` and `bunx`
- npm - `npx yayfetch`
- bun -`bunx yayfetch`
_or_ install it globally:
`bun install --global yayfetch`/`npm install -g yayfetch` and then just call `yayfetch`!
## Flag-defined features
`-p` or `--pick` - first asks you what information you want to display, then displays it
`-c ` or `--color ` - allows to specify in which color the data will be shown in predefined colors. Cannot be used with --rgb flag. Available predefined colors:
`pink`(default), `orange`, `green`, `white`, `black`, `red`, `blue`, `yellow`, `violet`, `rainbow``--rgb r,g,b` - specify RGB values in which data will be shown. Cannot be used with -c(--color) flag. Example `npx yayfetch --rgb 125,25,78`
`--no-logo` - prints data without ASCII art
`--custom-lines {[key]: value, [key2]: value2, ...}` - object with {[key]: value} string pairs separated by spaces ex.
`'{"Funny:": "joke", "exampleline:": "examplevalue"}'`. This is being parsed using JSON.parse, so if you encounter any problem, make sure that string you provided can be parsed by it.`--no-colored-boxes` - hides the colored boxes underneath the information.
`-h` or `--help` - shows available flags.
`--config ` - specify a file path to a custom config. See [here](#example-config)
## Config-specific features
Some more advanced features are almost impossible to implement through flags(to be quite honest, some are already pushing it e.g. `--custom-lines`).
- ### Custom ASCIIs
To customize the ASCIIs just define `"ascii"` line in the config. It should be an `Array` with path(s) to the ASCII(s).
Example:
```json
{
"ascii": ["./path/to/file.txt", "./path/to/2nd/file.txt"]
}
```- ### Custom images
You can also defined iamges instead of ASCIIs, by defining `images` field. Note that this flag is mutually exclusive with `ascii` flag.
Uses [terminal-image](https://github.com/sindresorhus/terminal-image) underneath, so refer to it when specifying `options`.```ts
interface ImageOptions {
path: string;
options?: {
width?: string | number | undefined;
height?: string | number | undefined;
preserveAspectRatio?: boolean | undefined;
};
}
```Example:
```json
{
"image": {
"path": "./path/to/file.img",
"options": { "preserveAspectRatio": false }
}
}
```- ### Line Animations
Output can be animated by `line-animations` flag in the config file. It should be an `AnimationOptions` object.
```ts
type Animations = 'colors' | 'flowing-rainbow';
interface AnimationOptions {
type: Animations; // Animations - applied per column basis
msFrequency: number; // How fast should the animation be
}
```**Note: Printing to stdout is not performant, so it may not work well with less performant console environments**
Example:
```json
{
"line-animations": {
"type": "flowing-rainbow",
"msFrequency": 150
}
}
```## Example config
You can specify options through a file and use them by using `--config `. Config file should contain a JSON object with keys representing flags.
Note that every flag with a prefix of `--no-` just negates the flag that is on by default. For example CLI flag `--no-colored-boxes` negates `colored-boxes` flag, which is `true` by default. This is important for creating a config, because if you want to invoke `--no-colored-boxes` through config, you would provide a `"colored-boxes": false` in JSON object.
Example config:
```
{
"color": "blue",
"colored-boxes": false,
"logo": false,
"custom-lines": {"Funny:": "joke", "exampleline:": "examplevalue"}
}
```## It doesn't work!
If it doesn't work for you make sure that you have the newest node(it's developed using node 18.18.0).
If you came here because of the `'Error - check https://www.npmjs.com/package/yayfetch for more'` error, then most likely the software just can't detect the information. Why? Because of the system you use. It may not work when:
1. You're using linux subsystem for windows
2. Your system is within virtual machine