Compare commits
86 Commits
1.4.2
...
neofetch-7.3.4
| Author | SHA1 | Date | |
|---|---|---|---|
| 673d995618 | |||
| 1097435501 | |||
| 78f4f061f4 | |||
| f909b3c3b8 | |||
| b4944599c5 | |||
| 21cffcc4f4 | |||
| 8d9d4407a3 | |||
| 0e93f5484f | |||
| f9c7c570a1 | |||
| 6f443a23a6 | |||
| ed3bb65824 | |||
| 3770e58e66 | |||
| e0d7c4885a | |||
| e5a7eb2d24 | |||
| ece7cb1f8f | |||
| 43aecc70fe | |||
| f93315a7ad | |||
| cde4914c19 | |||
| e8c7266671 | |||
| bce73f6836 | |||
| 5012c996f2 | |||
| c00568d413 | |||
| d56f083dbc | |||
| b7f6e4f306 | |||
| 619c9d2224 | |||
| d57463b0d3 | |||
| ca13eb22e7 | |||
| a52c49380d | |||
| ba2001cc64 | |||
| e07895c614 | |||
| 3d6427b936 | |||
| 943c3025e5 | |||
| 67cf02c964 | |||
| 8616ff0504 | |||
| dde9443ec7 | |||
| b6f0a80bb1 | |||
| a758b4ba04 | |||
| 700f651378 | |||
| 77614b635f | |||
| fdd3ef970d | |||
| e49ed7d080 | |||
| a1149ab68b | |||
| 6390ed10c4 | |||
| 810b380e47 | |||
| 1274e977c3 | |||
| 38fb44cb8e | |||
| 90c94044f4 | |||
| 5bf7fbf2b4 | |||
| 23a1b10467 | |||
| 0dae7ca3f9 | |||
| e23eb980d3 | |||
| 7171494e95 | |||
| c00848fd79 | |||
| 717ff369c0 | |||
| ff44ea6185 | |||
| 969a7c668c | |||
| bd5d76167e | |||
| f57ad70a20 | |||
| a3da5b6c59 | |||
| 3cbb20c899 | |||
| 0a9ac6a351 | |||
| 75ed187e72 | |||
| cd4849f0b8 | |||
| 0960024e71 | |||
| 7411ec87e7 | |||
| d8f49a2ea2 | |||
| 101d798c0a | |||
| 330de73df3 | |||
| 4e11d21401 | |||
| cb5635908f | |||
| fbbe3b1c93 | |||
| 774598fcb3 | |||
| 8abfb0c876 | |||
| 7a6628d387 | |||
| 09185e5a41 | |||
| 6efd890526 | |||
| 05cf31fc14 | |||
| 220b528c72 | |||
| 038d976b39 | |||
| 60609dfb7e | |||
| 610e06fcd9 | |||
| 49003c859f | |||
| 10bf2fce08 | |||
| 8a091f4d01 | |||
| 10b331052d | |||
| 8751faab2e |
@@ -2,7 +2,7 @@
|
||||
|
||||
neofetch with pride flags <3
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/22280294/162614541-af2b4660-f1f7-4287-b978-1aa2266ac70f.png" width="60%">
|
||||
<img alt="screenshot" src="https://user-images.githubusercontent.com/22280294/197708447-ddee6db2-1017-48f2-b507-8ddf85acef0d.png">
|
||||
|
||||
### Running Updated Original Neofetch
|
||||
|
||||
@@ -10,7 +10,8 @@ This repo also serves as an updated version of the original `neofetch` since the
|
||||
|
||||
* Method 1: `pip install hyfetch` then run `neowofetch`
|
||||
* Method 2: `npx neowofetch`
|
||||
* Method 3: `bash <(curl -sL neowofetch.hydev.org)`
|
||||
* Method 3: `P="$HOME/.local/bin/neowofetch" curl -L nf.hydev.org -o $P && chmod +x $P`
|
||||
* Method 4: Run without install `bash <(curl -sL nf.hydev.org)`
|
||||
|
||||
|
||||
## Installation
|
||||
@@ -27,7 +28,7 @@ pip install hyfetch
|
||||
|
||||
Currently, these distributions have existing packages for HyFetch:
|
||||
|
||||
* ArchLinux: `yay -S hyfetch` (Thanks to [@Aleksana](https://github.com/Aleksanaa))
|
||||
* Arch Linux: `paru -S hyfetch` or `yay -S hyfetch` (Thanks to [@Aleksana](https://github.com/Aleksanaa))
|
||||
* Nix: `nix-env -i hyfetch` (Thanks to [@YisuiDenghua](https://github.com/YisuiDenghua))
|
||||
* Guix: `guix install hyfetch` (Thanks to [@WammKD](https://github.com/WammKD))
|
||||
|
||||
@@ -84,11 +85,43 @@ Updates to `neowofetch` begins with the emoji 🖼️
|
||||
|
||||
### TODO
|
||||
|
||||
* [ ] Allow left-right arrow keys for pagination
|
||||
* [ ] Implement light/dark background detection based on https://github.com/muesli/termenv
|
||||
* [ ] (Important!) Refactor flag storage & coloring to support non-stride patterns
|
||||
* [ ] Config menu: Allow left-right arrow keys for pagination
|
||||
|
||||
<!-- CHANGELOG STARTS HERE --->
|
||||
|
||||
### 1.4.4
|
||||
|
||||
Note: You can install the latest nightly version by using:
|
||||
|
||||
```sh
|
||||
pip install git+https://github.com/hykilpikonna/hyfetch.git@master
|
||||
```
|
||||
|
||||
* 🌈 Fix Python 3.11 compatibility (#35)
|
||||
* 🌈 Fix many overflow problems when screen is too small
|
||||
* 🖼️ Distro - Add Enso ([dylanaraps#2233](https://github.com/dylanaraps/neofetch/pull/2233))
|
||||
* 🖼️ Memory - Optimize and fix memory unit conversion ([dylanaraps#2225](https://github.com/dylanaraps/neofetch/pull/2225))
|
||||
* 🖼️ DE - Add dwl window manager ([dylanaraps#2234](https://github.com/dylanaraps/neofetch/pull/2234))
|
||||
* 🖼️ DE - Fix XDG session detection for X11 ([dylanaraps#2232](https://github.com/dylanaraps/neofetch/pull/2232))
|
||||
* 🖼️ CPU - Fix model detection for loongson (#34)
|
||||
|
||||
### 1.4.3
|
||||
|
||||
* 🌈 **Auto detect terminal background color & rgb support**
|
||||
* 🌈 **Optimize experience on light-themed terminals**
|
||||
* 🌈 Fix bugs with lightness and light-mode config not applying
|
||||
* 🌈 Fix color alignment for distros with first color ≠ `${c1}` (e.g. Ubuntu Budgie)
|
||||
* 🌈 Add unlabeled flags (#25)
|
||||
* 🌈 Add gender nonconforming & femboy & tomboy flags (#32)
|
||||
* 🌈 Fix jailbreak iOS shell `killed: 9` issue caused by ld signature check.
|
||||
* 🖼️ Distro - Add garuda_small ([dylanaraps#2215](https://github.com/dylanaraps/neofetch/pull/2215))
|
||||
* 🖼️ Distro - Add Cobalt Linux ([dylanaraps#2213](https://github.com/dylanaraps/neofetch/pull/2213))
|
||||
* 🖼️ Distro - Add VanillaOS ([dylanaraps#2222](https://github.com/dylanaraps/neofetch/pull/2222))
|
||||
* 🖼️ Distro - Surround macOS build number in parentheses (#28)
|
||||
* 🖼️ Misc - Auto select stdout mode based on tty detection (#31)
|
||||
* 🖼️ Bug Fix - Fix cols coloring reset for bash 3.2 (#24)
|
||||
|
||||
### 1.4.2
|
||||
|
||||
* 🌈 Detailed runnning/contributing instructions in README.md (#21)
|
||||
|
||||
+32
-11
@@ -1,8 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import colorsys
|
||||
from typing import NamedTuple, Callable, Optional
|
||||
|
||||
from dataclasses import dataclass, astuple
|
||||
from typing_extensions import Literal
|
||||
|
||||
from .constants import GLOBAL_CFG
|
||||
@@ -84,11 +83,28 @@ def redistribute_rgb(r: int, g: int, b: int) -> tuple[int, int, int]:
|
||||
return int(gray + x * r), int(gray + x * g), int(gray + x * b)
|
||||
|
||||
|
||||
class RGB(NamedTuple):
|
||||
@dataclass(unsafe_hash=True)
|
||||
class HSL:
|
||||
h: float
|
||||
s: float
|
||||
l: float
|
||||
|
||||
def __iter__(self):
|
||||
return iter(astuple(self))
|
||||
|
||||
def rgb(self) -> RGB:
|
||||
return RGB(*[round(v * 255.0) for v in colorsys.hls_to_rgb(self.h, self.l, self.s)])
|
||||
|
||||
|
||||
@dataclass(unsafe_hash=True)
|
||||
class RGB:
|
||||
r: int
|
||||
g: int
|
||||
b: int
|
||||
|
||||
def __iter__(self):
|
||||
return iter(astuple(self))
|
||||
|
||||
@classmethod
|
||||
def from_hex(cls, hex: str) -> "RGB":
|
||||
"""
|
||||
@@ -100,9 +116,7 @@ class RGB(NamedTuple):
|
||||
:param hex: Hex color code
|
||||
:return: RGB object
|
||||
"""
|
||||
while hex.startswith('#'):
|
||||
hex = hex[1:]
|
||||
|
||||
hex = hex.lstrip("#")
|
||||
r = int(hex[0:2], 16)
|
||||
g = int(hex[2:4], 16)
|
||||
b = int(hex[4:6], 16)
|
||||
@@ -177,6 +191,10 @@ class RGB(NamedTuple):
|
||||
"""
|
||||
return RGB(*redistribute_rgb(*[v * multiplier for v in self]))
|
||||
|
||||
def hsl(self) -> HSL:
|
||||
h, l, s = colorsys.rgb_to_hls(*[v / 255.0 for v in self])
|
||||
return HSL(h, s, l)
|
||||
|
||||
def set_light(self, light: float, at_least: bool | None = None, at_most: bool | None = None) -> 'RGB':
|
||||
"""
|
||||
Set HSL lightness value
|
||||
@@ -187,16 +205,19 @@ class RGB(NamedTuple):
|
||||
:return: New color (original isn't modified)
|
||||
"""
|
||||
# Convert to HSL
|
||||
h, l, s = colorsys.rgb_to_hls(*[v / 255.0 for v in self])
|
||||
hsl = self.hsl()
|
||||
|
||||
# Modify light value
|
||||
if at_least is None and at_most is None:
|
||||
l = light
|
||||
hsl.l = light
|
||||
else:
|
||||
if at_most:
|
||||
l = min(l, light)
|
||||
hsl.l = min(hsl.l, light)
|
||||
if at_least:
|
||||
l = max(l, light)
|
||||
hsl.l = max(hsl.l, light)
|
||||
|
||||
# Convert back to RGB
|
||||
return RGB(*[round(v * 255.0) for v in colorsys.hls_to_rgb(h, l, s)])
|
||||
return hsl.rgb()
|
||||
|
||||
def is_light(self):
|
||||
return self.hsl().l > 0.5
|
||||
|
||||
@@ -7,7 +7,7 @@ from pathlib import Path
|
||||
from typing_extensions import Literal
|
||||
|
||||
CONFIG_PATH = Path.home() / '.config/hyfetch.json'
|
||||
VERSION = '1.4.2'
|
||||
VERSION = '1.4.4'
|
||||
|
||||
|
||||
TEST_ASCII = r"""
|
||||
|
||||
+94
-72
@@ -4,13 +4,14 @@ from __future__ import annotations
|
||||
import argparse
|
||||
import json
|
||||
import random
|
||||
import re
|
||||
from itertools import permutations
|
||||
import traceback
|
||||
from typing import Iterable
|
||||
from itertools import permutations
|
||||
from math import ceil
|
||||
from typing import Iterable
|
||||
|
||||
from .color_util import printc, color, clear_screen
|
||||
from . import termenv
|
||||
from .color_scale import Scale
|
||||
from .color_util import printc, color, clear_screen, AnsiMode
|
||||
from .constants import *
|
||||
from .models import Config
|
||||
from .neofetch_util import *
|
||||
@@ -85,11 +86,28 @@ def create_config() -> Config:
|
||||
|
||||
:return: Config object (automatically stored)
|
||||
"""
|
||||
# Detect terminal environment
|
||||
det_bg = termenv.get_background_color()
|
||||
det_ansi = termenv.detect_ansi_mode()
|
||||
|
||||
asc = get_distro_ascii()
|
||||
asc_width, asc_lines = ascii_size(asc)
|
||||
title = 'Welcome to &b&lhy&f&lfetch&r! Let\'s set up some colors first.'
|
||||
logo = color("&b&lhyfetch&r" if det_bg is None or det_bg.is_light() else "&b&lhy&f&lfetch&r")
|
||||
title = f'Welcome to {logo} Let\'s set up some colors first.'
|
||||
clear_screen(title)
|
||||
|
||||
option_counter = 1
|
||||
|
||||
def update_title(k: str, v: str):
|
||||
nonlocal title, option_counter
|
||||
if not k.endswith(":"):
|
||||
k += ':'
|
||||
title += f"\n&e{option_counter}. {k.ljust(30)} &r{v}"
|
||||
option_counter += 1
|
||||
|
||||
def print_title_prompt(prompt: str):
|
||||
printc(f'&a{option_counter}. {prompt}')
|
||||
|
||||
##############################
|
||||
# 0. Check term size
|
||||
try:
|
||||
@@ -104,11 +122,12 @@ def create_config() -> Config:
|
||||
|
||||
##############################
|
||||
# 1. Select color system
|
||||
clear_screen(title)
|
||||
term_len, term_lines = term_size()
|
||||
try:
|
||||
# Demonstrate RGB with a gradient. This requires numpy
|
||||
from .color_scale import Scale
|
||||
def select_color_system():
|
||||
if det_ansi == 'rgb':
|
||||
return 'rgb', 'Detected color mode'
|
||||
|
||||
clear_screen(title)
|
||||
term_len, term_lines = term_size()
|
||||
|
||||
scale2 = Scale(['#12c2e9', '#c471ed', '#f7797d'])
|
||||
_8bit = [scale2(i / term_len).to_ansi_8bit(False) for i in range(term_len)]
|
||||
@@ -118,28 +137,32 @@ def create_config() -> Config:
|
||||
printc('&f' + ''.join(c + t for c, t in zip(_rgb, 'RGB Color Testing'.center(term_len))))
|
||||
|
||||
print()
|
||||
printc(f'&a1. Which &bcolor system &ado you want to use?')
|
||||
print_title_prompt('Which &bcolor system &ado you want to use?')
|
||||
printc(f'(If you can\'t see colors under "RGB Color Testing", please choose 8bit)')
|
||||
print()
|
||||
color_system = literal_input('Your choice?', ['8bit', 'rgb'], 'rgb')
|
||||
|
||||
except ModuleNotFoundError:
|
||||
# Numpy not found, skip gradient test, use fallback
|
||||
color_system = literal_input('Which &acolor &bsystem &rdo you want to use?',
|
||||
['8bit', 'rgb'], 'rgb')
|
||||
return literal_input('Your choice?', ['8bit', 'rgb'], 'rgb'), 'Selected color mode'
|
||||
|
||||
# Override global color mode
|
||||
color_system, ttl = select_color_system()
|
||||
GLOBAL_CFG.color_mode = color_system
|
||||
title += f'\n&e1. Selected color mode: &r{color_system}'
|
||||
update_title(ttl, color_system)
|
||||
|
||||
##############################
|
||||
# 2. Select light/dark mode
|
||||
clear_screen(title)
|
||||
light_dark = literal_input(f'2. Is your terminal in &gf(#85e7e9)light mode&r or &gf(#c471ed)dark mode&r?',
|
||||
['light', 'dark'], 'dark')
|
||||
is_light = light_dark == 'light'
|
||||
def select_light_dark():
|
||||
if det_bg is not None:
|
||||
return det_bg.is_light(), 'Detected background color'
|
||||
|
||||
clear_screen(title)
|
||||
inp = literal_input(f'2. Is your terminal in &blight mode&r or &4dark mode&r?',
|
||||
['light', 'dark'], 'dark')
|
||||
return inp == 'light', 'Selected background color'
|
||||
|
||||
is_light, ttl = select_light_dark()
|
||||
light_dark = 'light' if is_light else 'dark'
|
||||
GLOBAL_CFG.is_light = is_light
|
||||
title += f'\n&e2. Light/Dark: &r{light_dark}'
|
||||
update_title(ttl, light_dark)
|
||||
|
||||
##############################
|
||||
# 3. Choose preset
|
||||
@@ -168,7 +191,7 @@ def create_config() -> Config:
|
||||
|
||||
def print_flag_page(page: list[list[list[str]]], page_num: int):
|
||||
clear_screen(title)
|
||||
printc('&a3. Let\'s choose a flag!')
|
||||
print_title_prompt("Let's choose a flag!")
|
||||
printc('Available flag presets:')
|
||||
print(f'Page: {page_num + 1} of {num_pages}')
|
||||
print()
|
||||
@@ -198,45 +221,48 @@ def create_config() -> Config:
|
||||
page -= 1
|
||||
else:
|
||||
_prs = PRESETS[preset]
|
||||
title += f'\n&e3. Selected flag: &r{_prs.color_text(preset)}'
|
||||
update_title('Selected flag', _prs.set_light_dl_def(light_dark).color_text(preset))
|
||||
break
|
||||
|
||||
#############################
|
||||
# 4. Dim/lighten colors
|
||||
clear_screen(title)
|
||||
printc(f'&a4. Let\'s adjust the color brightness!')
|
||||
printc(f'The colors might be a little bit too {"bright" if is_light else "dark"} for {light_dark} mode.')
|
||||
print()
|
||||
|
||||
# Print cats
|
||||
num_cols = term_size()[0] // (TEST_ASCII_WIDTH + 2)
|
||||
ratios = [col / (num_cols - 1) for col in range(num_cols)]
|
||||
ratios = [(r * 0.4 + 0.1) if is_light else (r * 0.4 + 0.5) for r in ratios]
|
||||
lines = [ColorAlignment('horizontal').recolor_ascii(TEST_ASCII.replace(
|
||||
'{txt}', f'{r * 100:.0f}%'.center(5)), _prs.set_light_dl(r, light_dark)).split('\n') for r in ratios]
|
||||
[printc(' '.join(line)) for line in zip(*lines)]
|
||||
|
||||
while True:
|
||||
def select_lightness():
|
||||
clear_screen(title)
|
||||
print_title_prompt("Let's adjust the color brightness!")
|
||||
printc(f'The colors might be a little bit too {"bright" if is_light else "dark"} for {light_dark} mode.')
|
||||
print()
|
||||
printc(f'Which brightness level look the best? (Default: left blank = {GLOBAL_CFG.default_lightness(light_dark):.2f} for {light_dark} mode)')
|
||||
lightness = input('> ').strip().lower() or None
|
||||
|
||||
# Parse lightness
|
||||
if not lightness or lightness in ['unset', 'none']:
|
||||
lightness = None
|
||||
break
|
||||
# Print cats
|
||||
num_cols = (term_size()[0] // (TEST_ASCII_WIDTH + 2)) or 1
|
||||
mn, mx = 0.15, 0.85
|
||||
ratios = [col / num_cols for col in range(num_cols)]
|
||||
ratios = [(r * (mx - mn) / 2 + mn) if is_light else ((r * (mx - mn) + (mx + mn)) / 2) for r in ratios]
|
||||
lines = [ColorAlignment('horizontal').recolor_ascii(TEST_ASCII.replace(
|
||||
'{txt}', f'{r * 100:.0f}%'.center(5)), _prs.set_light_dl(r, light_dark)).split('\n') for r in ratios]
|
||||
[printc(' '.join(line)) for line in zip(*lines)]
|
||||
|
||||
try:
|
||||
lightness = int(lightness[:-1]) / 100 if lightness.endswith('%') else float(lightness)
|
||||
assert 0 <= lightness <= 1
|
||||
break
|
||||
def_lightness = GLOBAL_CFG.default_lightness(light_dark)
|
||||
|
||||
except Exception:
|
||||
printc('&cUnable to parse lightness value, please input it as a decimal or percentage (e.g. 0.5 or 50%)')
|
||||
while True:
|
||||
print()
|
||||
printc(f'Which brightness level looks the best? (Default: {def_lightness * 100:.0f}% for {light_dark} mode)')
|
||||
lightness = input('> ').strip().lower() or None
|
||||
|
||||
if lightness:
|
||||
_prs = _prs.set_light_dl(lightness, light_dark)
|
||||
title += f'\n&e4. Brightness: &r{f"{lightness:.2f}" if lightness else "unset"}'
|
||||
# Parse lightness
|
||||
if not lightness or lightness in ['unset', 'none']:
|
||||
return def_lightness
|
||||
|
||||
try:
|
||||
lightness = int(lightness[:-1]) / 100 if lightness.endswith('%') else float(lightness)
|
||||
assert 0 <= lightness <= 1
|
||||
return lightness
|
||||
|
||||
except Exception:
|
||||
printc('&cUnable to parse lightness value, please input it as a decimal or percentage (e.g. 0.5 or 50%)')
|
||||
|
||||
lightness = select_lightness()
|
||||
_prs = _prs.set_light_dl(lightness, light_dark)
|
||||
update_title('Selected Brightness', f"{lightness:.2f}")
|
||||
|
||||
#############################
|
||||
# 5. Color arrangement
|
||||
@@ -244,7 +270,7 @@ def create_config() -> Config:
|
||||
fore_back = get_fore_back()
|
||||
|
||||
# Calculate amount of row/column that can be displayed on screen
|
||||
ascii_per_row = term_size()[0] // (asc_width + 2)
|
||||
ascii_per_row = max(1, term_size()[0] // (asc_width + 2))
|
||||
ascii_rows = max(1, (term_size()[1] - 8) // asc_lines)
|
||||
|
||||
# Displays horizontal and vertical arrangements in the first iteration, but hide them in
|
||||
@@ -261,16 +287,16 @@ def create_config() -> Config:
|
||||
|
||||
# Random color schemes
|
||||
pis = list(range(len(_prs.unique_colors().colors)))
|
||||
slots = len(set(re.findall('(?<=\\${c)[0-9](?=})', asc)))
|
||||
while len(pis) < slots:
|
||||
slots = list(set(re.findall('(?<=\\${c)[0-9](?=})', asc)))
|
||||
while len(pis) < len(slots):
|
||||
pis += pis
|
||||
perm = {p[:slots] for p in permutations(pis)}
|
||||
random_count = ascii_per_row * ascii_rows - len(arrangements)
|
||||
perm = {p[:len(slots)] for p in permutations(pis)}
|
||||
random_count = max(0, ascii_per_row * ascii_rows - len(arrangements))
|
||||
if random_count > len(perm):
|
||||
choices = perm
|
||||
else:
|
||||
choices = random.sample(perm, random_count)
|
||||
choices = [{i + 1: n for i, n in enumerate(c)} for c in choices]
|
||||
choices = random.sample(sorted(perm), random_count)
|
||||
choices = [{slots[i]: n for i, n in enumerate(c)} for c in choices]
|
||||
arrangements += [(f'random{i}', ColorAlignment('custom', r)) for i, r in enumerate(choices)]
|
||||
asciis = [[*ca.recolor_ascii(asc, _prs).split('\n'), k.center(asc_width)] for k, ca in arrangements]
|
||||
|
||||
@@ -282,7 +308,7 @@ def create_config() -> Config:
|
||||
[printc(' '.join(line)) for line in zip(*current)]
|
||||
print()
|
||||
|
||||
printc(f'&a5. Let\'s choose a color arrangement!')
|
||||
print_title_prompt("Let's choose a color arrangement!")
|
||||
printc(f'You can choose standard horizontal or vertical alignment, or use one of the random color schemes.')
|
||||
print('You can type "roll" to randomize again.')
|
||||
print()
|
||||
@@ -302,7 +328,7 @@ def create_config() -> Config:
|
||||
|
||||
break
|
||||
|
||||
title += f'\n&e5. Color Alignment: &r{color_alignment}'
|
||||
update_title('Color alignment', color_alignment)
|
||||
|
||||
# Create config
|
||||
clear_screen(title)
|
||||
@@ -361,12 +387,8 @@ def run():
|
||||
print(get_distro_ascii())
|
||||
return
|
||||
|
||||
# Load config
|
||||
config = check_config()
|
||||
|
||||
# Reset config
|
||||
if args.config:
|
||||
config = create_config()
|
||||
# Load config or create config
|
||||
config = create_config() if args.config else check_config()
|
||||
|
||||
# Param overwrite config
|
||||
if args.preset:
|
||||
@@ -381,13 +403,13 @@ def run():
|
||||
# Get preset
|
||||
preset = PRESETS.get(config.preset)
|
||||
|
||||
# Lighten
|
||||
# Lighten (args > config)
|
||||
if args.scale:
|
||||
preset = preset.lighten(args.scale)
|
||||
if args.light:
|
||||
elif args.light:
|
||||
preset = preset.set_light_raw(args.light)
|
||||
if config.lightness:
|
||||
preset = preset.set_light_dl(config.lightness)
|
||||
else:
|
||||
preset = preset.set_light_dl(config.lightness or GLOBAL_CFG.default_lightness())
|
||||
|
||||
# Run
|
||||
try:
|
||||
|
||||
+2
-4
@@ -1,8 +1,6 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
|
||||
from typing_extensions import Literal
|
||||
from dataclasses import dataclass, field
|
||||
|
||||
from .color_util import AnsiMode, LightDark
|
||||
from .constants import CONFIG_PATH
|
||||
@@ -16,7 +14,7 @@ class Config:
|
||||
mode: AnsiMode
|
||||
light_dark: LightDark = 'dark'
|
||||
lightness: float | None = None
|
||||
color_align: ColorAlignment = ColorAlignment('horizontal')
|
||||
color_align: ColorAlignment = field(default_factory=lambda: ColorAlignment('horizontal'))
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, d: dict):
|
||||
|
||||
@@ -206,7 +206,7 @@ def run_command(args: str, pipe: bool = False) -> str | None:
|
||||
Run neofetch command
|
||||
"""
|
||||
if platform.system() != 'Windows':
|
||||
full_cmd = shlex.split(f'{get_command_path()} {args}')
|
||||
full_cmd = shlex.split(f'/usr/bin/env bash {get_command_path()} {args}')
|
||||
|
||||
else:
|
||||
cmd = get_command_path().replace("\\", "/").replace("C:/", "/c/")
|
||||
@@ -288,8 +288,9 @@ def get_fore_back(distro: str | None = None) -> tuple[int, int] | None:
|
||||
distro = GLOBAL_CFG.override_distro
|
||||
if not distro:
|
||||
distro = get_distro_name().lower()
|
||||
distro = distro.lower().replace(' ', '-')
|
||||
for k, v in fore_back.items():
|
||||
if distro.startswith(k.lower()):
|
||||
if distro == k.lower():
|
||||
return v
|
||||
return None
|
||||
|
||||
@@ -298,5 +299,13 @@ def get_fore_back(distro: str | None = None) -> tuple[int, int] | None:
|
||||
fore_back = {
|
||||
'fedora': (2, 1),
|
||||
'ubuntu': (2, 1),
|
||||
'kubuntu': (2, 1),
|
||||
'lubuntu': (2, 1),
|
||||
'xubuntu': (2, 1),
|
||||
'ubuntu-cinnamon': (2, 1),
|
||||
'ubuntu-kylin': (2, 1),
|
||||
'ubuntu-mate': (2, 1),
|
||||
'ubuntu-studio': (2, 1),
|
||||
'ubuntu-sway': (2, 1),
|
||||
}
|
||||
|
||||
|
||||
+62
-1
@@ -112,7 +112,7 @@ class ColorProfile:
|
||||
"""
|
||||
return ColorProfile([c.set_light(light, at_least, at_most) for c in self.colors])
|
||||
|
||||
def set_light_dl(self, light: float, term: LightDark = GLOBAL_CFG.light_dark()):
|
||||
def set_light_dl(self, light: float, term: LightDark | None = None):
|
||||
"""
|
||||
Set HSL lightness value with respect to dark/light terminals
|
||||
|
||||
@@ -120,6 +120,7 @@ class ColorProfile:
|
||||
:param term: Terminal color (can be "dark" or "light")
|
||||
:return: New color profile (original isn't modified)
|
||||
"""
|
||||
term = term or GLOBAL_CFG.light_dark()
|
||||
assert term.lower() in ['light', 'dark']
|
||||
at_least, at_most = (True, None) if term.lower() == 'dark' else (None, True)
|
||||
return self.set_light_raw(light, at_least, at_most)
|
||||
@@ -532,4 +533,64 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
"#F39FCE",
|
||||
"#EA7BB3",
|
||||
]),
|
||||
|
||||
'unlabeled1': ColorProfile([
|
||||
'#EAF8E4',
|
||||
'#FDFDFB',
|
||||
'#E1EFF7',
|
||||
'#F4E2C4'
|
||||
]),
|
||||
|
||||
'unlabeled2': ColorProfile([
|
||||
'#250548',
|
||||
'#FFFFFF',
|
||||
'#F7DCDA',
|
||||
'#EC9BEE',
|
||||
'#9541FA',
|
||||
'#7D2557'
|
||||
]),
|
||||
|
||||
'gendernonconforming1': ColorProfile(
|
||||
ColorProfile([
|
||||
'#50284d',
|
||||
'#96467b',
|
||||
'#5c96f7',
|
||||
'#ffe6f7',
|
||||
'#5c96f7',
|
||||
'#96467b',
|
||||
'#50284d'
|
||||
]).with_weights([
|
||||
4,1,1,1,1,1,4
|
||||
])
|
||||
),
|
||||
|
||||
'gendernonconforming2': ColorProfile([
|
||||
'#50284d',
|
||||
'#96467b',
|
||||
'#5c96f7',
|
||||
'#ffe6f7',
|
||||
'#5c96f7',
|
||||
'#96467b',
|
||||
'#50284d'
|
||||
]),
|
||||
|
||||
'femboy': ColorProfile([
|
||||
"#d260a5",
|
||||
"#e4afcd",
|
||||
"#fefefe",
|
||||
"#57cef8",
|
||||
"#fefefe",
|
||||
"#e4afcd",
|
||||
"#d260a5"
|
||||
]),
|
||||
|
||||
'tomboy': ColorProfile([
|
||||
"#2f3fb9",
|
||||
"#613a03",
|
||||
"#fefefe",
|
||||
"#f1a9b7",
|
||||
"#fefefe",
|
||||
"#613a03",
|
||||
"#2f3fb9"
|
||||
]),
|
||||
}
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import platform
|
||||
import signal
|
||||
import sys
|
||||
import termios
|
||||
import tty
|
||||
from select import select
|
||||
|
||||
from .color_util import RGB, AnsiMode
|
||||
|
||||
|
||||
class OSCException(Exception):
|
||||
pass
|
||||
|
||||
|
||||
def unix_detect_ansi_mode() -> AnsiMode | None:
|
||||
"""
|
||||
Translated from Termenv's ColorProfile():
|
||||
https://github.com/muesli/termenv/blob/42ca574de3e99a262e1724d2fb8daa1aea68a5b9/termenv_unix.go#L23
|
||||
|
||||
:return: Ansi mode
|
||||
"""
|
||||
if not sys.stdout.isatty():
|
||||
return 'ansi'
|
||||
|
||||
term = os.environ.get('TERM')
|
||||
color_term = os.environ.get('COLORTERM')
|
||||
|
||||
if color_term == 'truecolor' or color_term == '24bit':
|
||||
if term.startswith('screen') and os.environ.get('TERM_PROGRAM') != 'tmux':
|
||||
return '8bit'
|
||||
return 'rgb'
|
||||
|
||||
elif color_term == 'true' or color_term == 'yes':
|
||||
return '8bit'
|
||||
|
||||
if term == 'xterm-kitty':
|
||||
return 'rgb'
|
||||
elif term == 'linux':
|
||||
return 'ansi'
|
||||
|
||||
if '256color' in term:
|
||||
return 'rgb'
|
||||
if 'color' in term:
|
||||
return '8bit'
|
||||
if 'ansi' in term:
|
||||
return 'ansi'
|
||||
|
||||
return None
|
||||
|
||||
|
||||
def windows_detect_ansi_mode() -> AnsiMode | None:
|
||||
"""
|
||||
Translated from Termenv's ColorProfile():
|
||||
https://github.com/muesli/termenv/blob/42ca574de3e99a262e1724d2fb8daa1aea68a5b9/termenv_windows.go#L13
|
||||
|
||||
:return: Ansi mode
|
||||
"""
|
||||
if not sys.stdout.isatty():
|
||||
return 'ansi'
|
||||
|
||||
if os.environ.get("ConEmuANSI") == "ON":
|
||||
return 'rgb'
|
||||
|
||||
release, _, build = map(int, platform.version().split('.'))
|
||||
if build < 10586 or release < 10:
|
||||
# No ANSI support before Windows 10 build 10586.
|
||||
if os.environ.get('ANSICON'):
|
||||
conv = os.environ.get('ANSICON_VER')
|
||||
if int(conv) < 181:
|
||||
return 'ansi'
|
||||
return '8bit'
|
||||
return 'ansi'
|
||||
|
||||
if build < 14931:
|
||||
# No true color support before build 14931.
|
||||
return '8bit'
|
||||
|
||||
return 'rgb'
|
||||
|
||||
|
||||
def detect_ansi_mode() -> AnsiMode | None:
|
||||
system = platform.system().lower()
|
||||
if system.startswith("linux") or system.startswith("darwin"):
|
||||
return unix_detect_ansi_mode()
|
||||
if system.startswith("windows"):
|
||||
return windows_detect_ansi_mode()
|
||||
return None
|
||||
|
||||
|
||||
def unix_read_osc(seq: int) -> str:
|
||||
# screen/tmux can't support OSC, because they can be connected to multiple
|
||||
# terminals concurrently.
|
||||
term = os.environ.get('TERM')
|
||||
if term.startswith("screen") or term.startswith("tmux"):
|
||||
raise OSCException("Screen/tmux not supported")
|
||||
|
||||
t = sys.stdout
|
||||
if not t.isatty():
|
||||
raise OSCException("Not a tty")
|
||||
|
||||
fd = sys.stdin.fileno()
|
||||
|
||||
# Set raw mode
|
||||
settings = termios.tcgetattr(fd)
|
||||
tty.setraw(sys.stdin.fileno())
|
||||
|
||||
# first, send OSC query, which is ignored by terminal which do not support it
|
||||
t.write(f"\x1b]{seq};?\x1b\\")
|
||||
t.flush()
|
||||
|
||||
# stdin response timeout should be higher for ssh sessions
|
||||
timeout = 0.05 if (os.environ.get('SSH_TTY') or os.environ.get('SSH_SESSION')) is None else 0.5
|
||||
|
||||
# Wait for input to appear
|
||||
if not select([sys.stdin], [], [], timeout)[0]:
|
||||
raise OSCException("No response received")
|
||||
|
||||
# Read until termination, or if it doesn't terminate, read until 1 second passes
|
||||
def handler(signum, frame):
|
||||
raise IOError()
|
||||
signal.signal(signal.SIGALRM, handler)
|
||||
signal.setitimer(signal.ITIMER_REAL, timeout, 1)
|
||||
code = ""
|
||||
try:
|
||||
for _ in range(28):
|
||||
code += sys.stdin.read(1)
|
||||
|
||||
# Terminate with sequence terminator [\ or bell ^G
|
||||
if code.endswith('\x1b\\') or code.endswith('\a'):
|
||||
break
|
||||
signal.alarm(0)
|
||||
except IOError:
|
||||
pass
|
||||
|
||||
# Reset terminal back to normal mode (previously set to raw mode)
|
||||
termios.tcsetattr(fd, termios.TCSADRAIN, settings)
|
||||
|
||||
# Validate output
|
||||
if not code:
|
||||
raise OSCException("No response received")
|
||||
|
||||
start = f"\x1b]{seq};"
|
||||
if not code.startswith(start):
|
||||
raise OSCException("Received response is not an OSC response")
|
||||
|
||||
# Strip starting code and termination code
|
||||
code = code.lstrip(start).rstrip("\x1b\\").rstrip('\a')
|
||||
|
||||
return code
|
||||
|
||||
|
||||
def get_background_color() -> RGB | None:
|
||||
try:
|
||||
osc = unix_read_osc(11).lstrip("rgb:")
|
||||
return RGB.from_hex(''.join([v[:2] for v in osc.split('/')]))
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
version=7.3.2
|
||||
version=7.3.4
|
||||
|
||||
# Fallback to a value of '5' for shells which support bash
|
||||
# but do not set the 'BASH_' shell variables (osh).
|
||||
@@ -179,7 +179,7 @@ memory_percent="on"
|
||||
# Change memory output unit.
|
||||
#
|
||||
# Default: 'mib'
|
||||
# Values: 'kib', 'mib', 'gib'
|
||||
# Values: 'kib', 'mib', 'gib', 'tib'
|
||||
# Flag: --memory_unit
|
||||
#
|
||||
# Example:
|
||||
@@ -188,6 +188,12 @@ memory_percent="on"
|
||||
# gib: ' 0.98GiB / 6.79GiB'
|
||||
memory_unit="gib"
|
||||
|
||||
# Change memory output precision.
|
||||
#
|
||||
# Default: '2'
|
||||
# Values: integer ≥ 0
|
||||
# Flag: --memory_precision
|
||||
mem_precision=2
|
||||
|
||||
# Packages
|
||||
|
||||
@@ -803,35 +809,36 @@ image_source="auto"
|
||||
# ArcoLinux, Artix, Arya, Asahi, AsteroidOS, astOS, Bedrock, BigLinux, Bitrig, BlackArch,
|
||||
# blackPanther, BLAG, BlankOn, BlueLight, Bodhi, bonsai, BSD, BunsenLabs, Cachy OS, Calculate,
|
||||
# CalinixOS, Carbs, CBL-Mariner, CelOS, Center, CentOS, Chakra, ChaletOS, Chapeau, ChonkySealOS,
|
||||
# Chrom, Cleanjaro, Clear Linux OS, ClearOS, Clover, Condres, Container Linux by CoreOS, CRUX,
|
||||
# Crystal Linux, Cucumber, CutefishOS, CyberOS, dahlia, DarkOs, Darwin, Debian, Deepin, DesaOS,
|
||||
# Devuan, DietPi, DracOS, DragonFly, Drauger, Droidian, Elementary, Elive, EncryptOS, EndeavourOS,
|
||||
# Endless, EuroLinux, Exherbo, Exodia Predator OS, Fedora, Feren, Finnix, FreeBSD, FreeMiNT,
|
||||
# Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, GhostBSD, glaucus, gNewSense, GNOME, GNU,
|
||||
# GoboLinux, GrapheneOS, Grombyang, Guix, Haiku, HamoniKR, HarDClanZ, Hash, Huayra, HydroOS,
|
||||
# Hyperbola, iglunix, instantOS, IRIX, Itc, januslinux, Kaisen, Kali, KaOS, KDE, Kibojoe, Kogaion,
|
||||
# Korora, KrassOS, KSLinux, Kubuntu, LangitKetujuh, LaxerOS, LEDE, LibreELEC, Linspire, Linux, Linux
|
||||
# Lite, Linux Mint, Linux Mint Old, Live Raizo, LMDE, Lubuntu, Lunar, mac, Mageia, MagpieOS,
|
||||
# Mandriva, Manjaro, MassOS, MatuusOS, Maui, Mer, Minix, MIRACLE LINUX, MX, Namib, Neptune, NetBSD,
|
||||
# Netrunner, Nitrux, NixOS, NomadBSD, Nurunner, NuTyX, Obarun, OBRevenge, OmniOS, Open Source Media
|
||||
# Center, OpenBSD, openEuler, OpenIndiana, openmamba, OpenMandriva, OpenStage, openSUSE, openSUSE
|
||||
# Leap, openSUSE Tumbleweed, OpenWrt, OPNsense, Oracle, orchid, OS Elbrus, PacBSD, Parabola, parch,
|
||||
# Pardus, Parrot, Parsix, PCBSD, PCLinuxOS, pearOS, Pengwin, Pentoo, Peppermint, Pisi, PNM Linux,
|
||||
# Pop!_OS, Porteus, PostMarketOS, Profelis SambaBOX, Proxmox, PuffOS, Puppy, PureOS, Q4OS, Qubes,
|
||||
# Qubyt, Quibian, Radix, Raspbian, ravynOS, Reborn OS, Red Star, Redcore, Redhat, Refracted Devuan,
|
||||
# Regata, Regolith, rocky, Rosa, Sabayon, sabotage, Sailfish, SalentOS, Scientific, semc, Septor,
|
||||
# Serene, SharkLinux, ShastraOS, Siduction, SkiffOS, Slackware, SliTaz, SmartOS, Soda, Solus, Source
|
||||
# Mage, Sparky, Star, SteamOS, Stock Linux, Sulin, SunOS, SwagArch, t2, Tails, TeArch, TorizonCore,
|
||||
# Trisquel, Twister, Ubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu
|
||||
# Studio, Ubuntu Sway, Ubuntu Touch, Ubuntu-GNOME, ubuntu_old02, Ultramarine Linux, Univalent,
|
||||
# Univention, Uos, uwuntu, Venom, VNux, Void, VzLinux, wii-linux-ngx, Windows, Windows 10, Windows
|
||||
# 11, XFerience, Xubuntu, yiffOS, Zorin have ascii logos.
|
||||
# Chrom, Cleanjaro, Clear Linux OS, ClearOS, Clover, Cobalt, Condres, Container Linux by CoreOS,
|
||||
# CRUX, Crystal Linux, Cucumber, CutefishOS, CyberOS, dahlia, DarkOs, Darwin, Debian, Deepin,
|
||||
# DesaOS, Devuan, DietPi, DracOS, DragonFly, Drauger, Droidian, Elementary, Elive, EncryptOS,
|
||||
# EndeavourOS, Endless, Enso, EuroLinux, Exherbo, Exodia Predator OS, Fedora, Feren, Finnix,
|
||||
# FreeBSD, FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, GhostBSD, glaucus, gNewSense,
|
||||
# GNOME, GNU, GoboLinux, GrapheneOS, Grombyang, Guix, Haiku, HamoniKR, HarDClanZ, Hash, Huayra,
|
||||
# HydroOS, Hyperbola, iglunix, instantOS, IRIX, Itc, januslinux, Kaisen, Kali, KaOS, KDE, Kibojoe,
|
||||
# Kogaion, Korora, KrassOS, KSLinux, Kubuntu, LangitKetujuh, LaxerOS, LEDE, LibreELEC, Linspire,
|
||||
# Linux, Linux Lite, Linux Mint, Linux Mint Old, Live Raizo, LMDE, Lubuntu, Lunar, mac, Mageia,
|
||||
# MagpieOS, Mandriva, Manjaro, MassOS, MatuusOS, Maui, Mer, Minix, MIRACLE LINUX, MX, Namib,
|
||||
# Neptune, NetBSD, Netrunner, Nitrux, NixOS, NomadBSD, Nurunner, NuTyX, Obarun, OBRevenge, OmniOS,
|
||||
# Open Source Media Center, OpenBSD, openEuler, OpenIndiana, openmamba, OpenMandriva, OpenStage,
|
||||
# openSUSE, openSUSE Leap, openSUSE Tumbleweed, OpenWrt, OPNsense, Oracle, orchid, OS Elbrus,
|
||||
# PacBSD, Parabola, parch, Pardus, Parrot, Parsix, PCBSD, PCLinuxOS, pearOS, Pengwin, Pentoo,
|
||||
# Peppermint, Pisi, PNM Linux, Pop!_OS, Porteus, PostMarketOS, Profelis SambaBOX, Proxmox, PuffOS,
|
||||
# Puppy, PureOS, Q4OS, Qubes, Qubyt, Quibian, Radix, Raspbian, ravynOS, Reborn OS, Red Star,
|
||||
# Redcore, Redhat, Refracted Devuan, Regata, Regolith, rocky, Rosa, Sabayon, sabotage, Sailfish,
|
||||
# SalentOS, Scientific, semc, Septor, Serene, SharkLinux, ShastraOS, Siduction, SkiffOS, Slackware,
|
||||
# SliTaz, SmartOS, Soda, Solus, Source Mage, Sparky, Star, SteamOS, Stock Linux, Sulin, SunOS,
|
||||
# SwagArch, t2, Tails, TeArch, TorizonCore, Trisquel, Twister, Ubuntu, Ubuntu Budgie, Ubuntu
|
||||
# Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Sway, Ubuntu Touch, Ubuntu-GNOME,
|
||||
# ubuntu_old02, Ultramarine Linux, Univalent, Univention, Uos, uwuntu, Vanilla, Venom, VNux, Void,
|
||||
# VzLinux, wii-linux-ngx, Windows, Windows 10, Windows 11, XFerience, Xubuntu, yiffOS, Zorin have
|
||||
# ascii logos.
|
||||
|
||||
# NOTE: arch, dragonfly, Fedora, LangitKetujuh, nixos, redhat, Ubuntu have 'old' logo variants, use
|
||||
# {distro}_old to use them.
|
||||
|
||||
# NOTE: alpine, android, aoscosretro, arch, arcolinux, artix, CalinixOS, centos, cleanjaro, crux,
|
||||
# debian, dragonfly, elementary, fedora, freebsd, gentoo, guix, haiku, hyperbola, linuxlite,
|
||||
# debian, dragonfly, elementary, fedora, freebsd, garuda, gentoo, guix, haiku, hyperbola, linuxlite,
|
||||
# linuxmint, mac, mageia, manjaro, mx, netbsd, nixos, openbsd, opensuse, orchid, parabola, popos,
|
||||
# postmarketos, pureos, Raspbian, rocky, slackware, sunos, ubuntu, void have 'small' logo variants,
|
||||
# use {distro}_small to use them.
|
||||
@@ -940,11 +947,11 @@ background_color=
|
||||
# Misc Options
|
||||
|
||||
# Stdout mode
|
||||
# Turn off all colors and disables image backend (ASCII/Image).
|
||||
# If enabled, turn off all colors and disables image backend (ASCII/Image).
|
||||
# Useful for piping into another command.
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
stdout="off"
|
||||
# Default: 'auto'
|
||||
# Values: 'auto', 'on', 'off'
|
||||
stdout="auto"
|
||||
EOF
|
||||
|
||||
# DETECT INFORMATION
|
||||
@@ -1181,6 +1188,7 @@ get_distro() {
|
||||
distro=${distro/DragonFly/DragonFlyBSD}
|
||||
|
||||
# Workarounds for some BSD based distros.
|
||||
[[ -f /etc/os-release ]] && distro=Enso
|
||||
[[ -f /etc/pcbsd-lang ]] && distro=PCBSD
|
||||
[[ -f /etc/trueos-lang ]] && distro=TrueOS
|
||||
[[ -f /etc/pacbsd-release ]] && distro=PacBSD
|
||||
@@ -1275,7 +1283,7 @@ get_distro() {
|
||||
*) codename=macOS ;;
|
||||
esac
|
||||
|
||||
distro="$codename $osx_version $osx_build"
|
||||
distro="$codename $osx_version ($osx_build)"
|
||||
|
||||
case $distro_shorthand in
|
||||
on) distro=${distro/ ${osx_build}} ;;
|
||||
@@ -2185,8 +2193,8 @@ get_de() {
|
||||
# TODO:
|
||||
# - New config option + flag: --de_display_server on/off ?
|
||||
# - Add display of X11, Arcan and anything else relevant.
|
||||
[[ $de && $WAYLAND_DISPLAY ]] &&
|
||||
de+=" (Wayland)"
|
||||
[[ $de ]] &&
|
||||
de+=" (${XDG_SESSION_TYPE})"
|
||||
|
||||
de_run=1
|
||||
}
|
||||
@@ -2213,6 +2221,7 @@ get_wm() {
|
||||
-e asc \
|
||||
-e clayland \
|
||||
-e dwc \
|
||||
-e dwl \
|
||||
-e fireplace \
|
||||
-e gnome-shell \
|
||||
-e greenfield \
|
||||
@@ -2573,9 +2582,8 @@ END
|
||||
esac
|
||||
|
||||
# If cpu is not detected on a platform-specific bases, fallback to cpuinfo method
|
||||
[[ -z "$cpu" ]] && cpu="$(awk -F '\\s*: | @' \
|
||||
'/model name|Model|uarch|Hardware|Processor|^cpu model|chip type|^cpu type/ {
|
||||
cpu=$2; if ($1 == "Hardware") exit } END { print cpu }' "$cpu_file")"
|
||||
[[ -z "$cpu" ]] && cpu="$(awk -F '\\s*: | @' '/model name|Model|uarch|Hardware|Processor|^cpu model|chip type|^cpu type/ { print $2; exit}' "$cpu_file")"
|
||||
[[ -z "$cpu" ]] && cpu="$(awk -F '\\s*: | @' '/Hardware/ {print $2; exit}' "$cpu_file")"
|
||||
|
||||
speed_dir="/sys/devices/system/cpu/cpu0/cpufreq"
|
||||
|
||||
@@ -3114,30 +3122,13 @@ get_memory() {
|
||||
;;
|
||||
|
||||
"Mac OS X" | "macOS" | "iPhone OS")
|
||||
if [[ $osx_version == 10.[4-5]* ]]; then
|
||||
mem_total="$(system_profiler SPHardwareDataType | grep Memory:)"
|
||||
mem_total="${mem_total/Memory\: /}"
|
||||
mem_total="${mem_total/ MB/}"
|
||||
|
||||
mem_used="$(vm_stat | grep Pages\ active:)"
|
||||
mem_used="${mem_used/Pages active\: /}"
|
||||
mem_used="${mem_used/\./}"
|
||||
|
||||
pages_inactive=$(vm_stat | grep "Pages inactive")
|
||||
pages_inactive=${pages_inactive/Pages inactive\: /}
|
||||
pages_inactive=${pages_inactive/\./}
|
||||
|
||||
mem_used=$((mem_used + pages_inactive))
|
||||
mem_used=$((mem_used * 4096 / 1048576))
|
||||
else
|
||||
hw_pagesize="$(sysctl -n hw.pagesize)"
|
||||
mem_total="$(($(sysctl -n hw.memsize) / 1024 / 1024))"
|
||||
pages_app="$(($(sysctl -n vm.page_pageable_internal_count) - $(sysctl -n vm.page_purgeable_count)))"
|
||||
pages_wired="$(vm_stat | awk '/ wired/ { print $4 }')"
|
||||
pages_compressed="$(vm_stat | awk '/ occupied/ { printf $5 }')"
|
||||
pages_compressed="${pages_compressed:-0}"
|
||||
mem_used="$(((pages_app + ${pages_wired//.} + ${pages_compressed//.}) * hw_pagesize / 1024 / 1024))"
|
||||
fi
|
||||
hw_pagesize="$(sysctl -n hw.pagesize)"
|
||||
mem_total="$(($(sysctl -n hw.memsize) / 1024 / 1024))"
|
||||
pages_app="$(($(sysctl -n vm.page_pageable_internal_count) - $(sysctl -n vm.page_purgeable_count)))"
|
||||
pages_wired="$(vm_stat | awk '/ wired/ { print $4 }')"
|
||||
pages_compressed="$(vm_stat | awk '/ occupied/ { printf $5 }')"
|
||||
pages_compressed="${pages_compressed:-0}"
|
||||
mem_used="$(((pages_app + ${pages_wired//.} + ${pages_compressed//.}) * hw_pagesize / 1024 / 1024))"
|
||||
;;
|
||||
|
||||
"BSD" | "MINIX" | "ravynOS")
|
||||
@@ -3228,27 +3219,51 @@ get_memory() {
|
||||
|
||||
[[ "$memory_percent" == "on" ]] && ((mem_perc=mem_used * 100 / mem_total))
|
||||
|
||||
# Creates temp variables: memory_unit_divider, memory_unit_multiplier
|
||||
memory_unit_divider=1
|
||||
memory_unit_multiplier=1
|
||||
|
||||
# Keep a copy of the original megabyte values because progress bar need them
|
||||
mu_mb="$mem_used"
|
||||
mt_mb="$mem_total"
|
||||
|
||||
case $memory_unit in
|
||||
tib)
|
||||
mem_label=TiB
|
||||
memory_unit_divider=$((1024 * 1024))
|
||||
;;
|
||||
|
||||
gib)
|
||||
mem_used=$(awk '{printf "%.1f", $1 / $2}' <<< "$mem_used 1024")
|
||||
mem_total=$(awk '{printf "%.1f", $1 / $2}' <<< "$mem_total 1024")
|
||||
mem_label=GiB
|
||||
memory_unit_divider=1024
|
||||
;;
|
||||
|
||||
kib)
|
||||
mem_used=$((mem_used * 1024))
|
||||
mem_total=$((mem_total * 1024))
|
||||
mem_label=KiB
|
||||
memory_unit_multiplier=1024
|
||||
;;
|
||||
esac
|
||||
|
||||
# Uses temp variables from above: memory_unit_divider, memory_unit_multiplier
|
||||
if test "$memory_unit_divider" -ge 1; then
|
||||
printf -v mem_used "%'.*f" \
|
||||
"${mem_precision}" \
|
||||
$((mem_used / memory_unit_divider)).$((mem_used % memory_unit_divider))
|
||||
printf -v mem_total "%'.*f" \
|
||||
"${mem_precision}" \
|
||||
$((mem_total / memory_unit_divider)).$((mem_total % memory_unit_divider))
|
||||
elif test "$memory_unit_multiplier" -ge 1; then
|
||||
mem_used=$((mem_used * memory_unit_multiplier))
|
||||
mem_total=$((mem_total * memory_unit_multiplier))
|
||||
fi
|
||||
|
||||
memory="${mem_used} ${mem_label:-MiB} / ${mem_total} ${mem_label:-MiB} ${mem_perc:+(${mem_perc}%)}"
|
||||
|
||||
# Bars.
|
||||
case $memory_display in
|
||||
"bar") memory="$(bar "${mem_used}" "${mem_total}")" ;;
|
||||
"infobar") memory="${memory} $(bar "${mem_used}" "${mem_total}")" ;;
|
||||
"barinfo") memory="$(bar "${mem_used}" "${mem_total}")${info_color} ${memory}" ;;
|
||||
"bar") memory="$(bar "${mu_mb}" "${mt_mb}")" ;;
|
||||
"infobar") memory="${memory} $(bar "${mu_mb}" "${mt_mb}")" ;;
|
||||
"barinfo") memory="$(bar "${mu_mb}" "${mt_mb}")${info_color} ${memory}" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
@@ -4656,8 +4671,13 @@ get_cols() {
|
||||
printf -v block_spaces "%${block_height}s"
|
||||
|
||||
# Convert the spaces into rows of blocks.
|
||||
[[ "$blocks" ]] && cols+="${block_spaces// /${blocks}\[mnl}"
|
||||
[[ "$blocks2" ]] && cols+="${block_spaces// /${blocks2}\[mnl}"
|
||||
if [[ $BASH_VERSION == 3* ]]; then
|
||||
[[ "$blocks" ]] && cols+="${block_spaces// /${blocks}[mnl}"
|
||||
[[ "$blocks2" ]] && cols+="${block_spaces// /${blocks2}[mnl}"
|
||||
else
|
||||
[[ "$blocks" ]] && cols+="${block_spaces// /${blocks}\[mnl}"
|
||||
[[ "$blocks2" ]] && cols+="${block_spaces// /${blocks2}\[mnl}"
|
||||
fi
|
||||
|
||||
# Determine the horizontal offset of the blocks.
|
||||
case $col_offset in
|
||||
@@ -5806,7 +5826,8 @@ INFO:
|
||||
--song_format format Print the song data in a specific format (see config file).
|
||||
--song_shorthand on/off Print the Artist/Album/Title on separate lines.
|
||||
--memory_percent on/off Display memory percentage.
|
||||
--memory_unit kib/mib/gib Memory output unit.
|
||||
--memory_unit (k/m/g/t)ib Memory output unit.
|
||||
--memory_precision integer Change memory output precision. (≥0, default=2)
|
||||
--music_player player-name Manually specify a player to use.
|
||||
Available values are listed in the config file
|
||||
|
||||
@@ -5881,47 +5902,47 @@ ASCII:
|
||||
BlackArch, blackPanther, BLAG, BlankOn, BlueLight, Bodhi, bonsai,
|
||||
BSD, BunsenLabs, Cachy OS, Calculate, CalinixOS, Carbs, CBL-Mariner,
|
||||
CelOS, Center, CentOS, Chakra, ChaletOS, Chapeau, ChonkySealOS,
|
||||
Chrom, Cleanjaro, Clear Linux OS, ClearOS, Clover, Condres,
|
||||
Chrom, Cleanjaro, Clear Linux OS, ClearOS, Clover, Cobalt, Condres,
|
||||
Container Linux by CoreOS, CRUX, Crystal Linux, Cucumber,
|
||||
CutefishOS, CyberOS, dahlia, DarkOs, Darwin, Debian, Deepin, DesaOS,
|
||||
Devuan, DietPi, DracOS, DragonFly, Drauger, Droidian, Elementary,
|
||||
Elive, EncryptOS, EndeavourOS, Endless, EuroLinux, Exherbo, Exodia
|
||||
Predator OS, Fedora, Feren, Finnix, FreeBSD, FreeMiNT, Frugalware,
|
||||
Funtoo, GalliumOS, Garuda, Gentoo, GhostBSD, glaucus, gNewSense,
|
||||
GNOME, GNU, GoboLinux, GrapheneOS, Grombyang, Guix, Haiku, HamoniKR,
|
||||
HarDClanZ, Hash, Huayra, HydroOS, Hyperbola, iglunix, instantOS,
|
||||
IRIX, Itc, januslinux, Kaisen, Kali, KaOS, KDE, Kibojoe, Kogaion,
|
||||
Korora, KrassOS, KSLinux, Kubuntu, LangitKetujuh, LaxerOS, LEDE,
|
||||
LibreELEC, Linspire, Linux, Linux Lite, Linux Mint, Linux Mint Old,
|
||||
Live Raizo, LMDE, Lubuntu, Lunar, mac, Mageia, MagpieOS, Mandriva,
|
||||
Manjaro, MassOS, MatuusOS, Maui, Mer, Minix, MIRACLE LINUX, MX,
|
||||
Namib, Neptune, NetBSD, Netrunner, Nitrux, NixOS, NomadBSD,
|
||||
Nurunner, NuTyX, Obarun, OBRevenge, OmniOS, Open Source Media
|
||||
Center, OpenBSD, openEuler, OpenIndiana, openmamba, OpenMandriva,
|
||||
OpenStage, openSUSE, openSUSE Leap, openSUSE Tumbleweed, OpenWrt,
|
||||
OPNsense, Oracle, orchid, OS Elbrus, PacBSD, Parabola, parch,
|
||||
Pardus, Parrot, Parsix, PCBSD, PCLinuxOS, pearOS, Pengwin, Pentoo,
|
||||
Peppermint, Pisi, PNM Linux, Pop!_OS, Porteus, PostMarketOS,
|
||||
Profelis SambaBOX, Proxmox, PuffOS, Puppy, PureOS, Q4OS, Qubes,
|
||||
Qubyt, Quibian, Radix, Raspbian, ravynOS, Reborn OS, Red Star,
|
||||
Redcore, Redhat, Refracted Devuan, Regata, Regolith, rocky, Rosa,
|
||||
Sabayon, sabotage, Sailfish, SalentOS, Scientific, semc, Septor,
|
||||
Serene, SharkLinux, ShastraOS, Siduction, SkiffOS, Slackware,
|
||||
SliTaz, SmartOS, Soda, Solus, Source Mage, Sparky, Star, SteamOS,
|
||||
Stock Linux, Sulin, SunOS, SwagArch, t2, Tails, TeArch, TorizonCore,
|
||||
Trisquel, Twister, Ubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu
|
||||
Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Sway, Ubuntu Touch,
|
||||
Ubuntu-GNOME, ubuntu_old02, Ultramarine Linux, Univalent,
|
||||
Univention, Uos, uwuntu, Venom, VNux, Void, VzLinux, wii-linux-ngx,
|
||||
Windows, Windows 10, Windows 11, XFerience, Xubuntu, yiffOS, Zorin
|
||||
have ascii logos.
|
||||
Elive, EncryptOS, EndeavourOS, Endless, Enso, EuroLinux, Exherbo,
|
||||
Exodia Predator OS, Fedora, Feren, Finnix, FreeBSD, FreeMiNT,
|
||||
Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, GhostBSD, glaucus,
|
||||
gNewSense, GNOME, GNU, GoboLinux, GrapheneOS, Grombyang, Guix,
|
||||
Haiku, HamoniKR, HarDClanZ, Hash, Huayra, HydroOS, Hyperbola,
|
||||
iglunix, instantOS, IRIX, Itc, januslinux, Kaisen, Kali, KaOS, KDE,
|
||||
Kibojoe, Kogaion, Korora, KrassOS, KSLinux, Kubuntu, LangitKetujuh,
|
||||
LaxerOS, LEDE, LibreELEC, Linspire, Linux, Linux Lite, Linux Mint,
|
||||
Linux Mint Old, Live Raizo, LMDE, Lubuntu, Lunar, mac, Mageia,
|
||||
MagpieOS, Mandriva, Manjaro, MassOS, MatuusOS, Maui, Mer, Minix,
|
||||
MIRACLE LINUX, MX, Namib, Neptune, NetBSD, Netrunner, Nitrux, NixOS,
|
||||
NomadBSD, Nurunner, NuTyX, Obarun, OBRevenge, OmniOS, Open Source
|
||||
Media Center, OpenBSD, openEuler, OpenIndiana, openmamba,
|
||||
OpenMandriva, OpenStage, openSUSE, openSUSE Leap, openSUSE
|
||||
Tumbleweed, OpenWrt, OPNsense, Oracle, orchid, OS Elbrus, PacBSD,
|
||||
Parabola, parch, Pardus, Parrot, Parsix, PCBSD, PCLinuxOS, pearOS,
|
||||
Pengwin, Pentoo, Peppermint, Pisi, PNM Linux, Pop!_OS, Porteus,
|
||||
PostMarketOS, Profelis SambaBOX, Proxmox, PuffOS, Puppy, PureOS,
|
||||
Q4OS, Qubes, Qubyt, Quibian, Radix, Raspbian, ravynOS, Reborn OS,
|
||||
Red Star, Redcore, Redhat, Refracted Devuan, Regata, Regolith,
|
||||
rocky, Rosa, Sabayon, sabotage, Sailfish, SalentOS, Scientific,
|
||||
semc, Septor, Serene, SharkLinux, ShastraOS, Siduction, SkiffOS,
|
||||
Slackware, SliTaz, SmartOS, Soda, Solus, Source Mage, Sparky, Star,
|
||||
SteamOS, Stock Linux, Sulin, SunOS, SwagArch, t2, Tails, TeArch,
|
||||
TorizonCore, Trisquel, Twister, Ubuntu, Ubuntu Budgie, Ubuntu
|
||||
Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Sway,
|
||||
Ubuntu Touch, Ubuntu-GNOME, ubuntu_old02, Ultramarine Linux,
|
||||
Univalent, Univention, Uos, uwuntu, Vanilla, Venom, VNux, Void,
|
||||
VzLinux, wii-linux-ngx, Windows, Windows 10, Windows 11, XFerience,
|
||||
Xubuntu, yiffOS, Zorin have ascii logos.
|
||||
|
||||
NOTE: arch, dragonfly, Fedora, LangitKetujuh, nixos, redhat, Ubuntu
|
||||
have 'old' logo variants, use {distro}_old to use them.
|
||||
|
||||
NOTE: alpine, android, aoscosretro, arch, arcolinux, artix,
|
||||
CalinixOS, centos, cleanjaro, crux, debian, dragonfly, elementary,
|
||||
fedora, freebsd, gentoo, guix, haiku, hyperbola, linuxlite,
|
||||
fedora, freebsd, garuda, gentoo, guix, haiku, hyperbola, linuxlite,
|
||||
linuxmint, mac, mageia, manjaro, mx, netbsd, nixos, openbsd,
|
||||
opensuse, orchid, parabola, popos, postmarketos, pureos, Raspbian,
|
||||
rocky, slackware, sunos, ubuntu, void have 'small' logo variants,
|
||||
@@ -5960,7 +5981,10 @@ OTHER:
|
||||
--config none Launch the script without a config file
|
||||
--no_config Don't create the user config file.
|
||||
--print_config Print the default config file to stdout.
|
||||
--stdout Turn off all colors and disables any ASCII/image backend.
|
||||
--stdout=on Turn off all colors and disables any ASCII/image backend.
|
||||
--stdout=off Enable the colored output and ASCII/image backend
|
||||
--stdout=auto Let the program decide basing on the output type (default behavior)
|
||||
--stdout Equivalent to '--stdout=on', for backward compatibility
|
||||
--help Print this text and exit
|
||||
--version Show neofetch version
|
||||
-v Display error messages.
|
||||
@@ -6022,6 +6046,7 @@ get_args() {
|
||||
"--music_player") music_player="$2" ;;
|
||||
"--memory_percent") memory_percent="$2" ;;
|
||||
"--memory_unit") memory_unit="$2" ;;
|
||||
"--memory_precision") mem_precision="$2" ;;
|
||||
"--cpu_temp")
|
||||
cpu_temp="$2"
|
||||
[[ "$cpu_temp" == "on" ]] && cpu_temp="C"
|
||||
@@ -6158,6 +6183,9 @@ get_args() {
|
||||
;;
|
||||
"--no_config") no_config="on" ;;
|
||||
"--stdout") stdout="on" ;;
|
||||
"--stdout=on") stdout="on" ;;
|
||||
"--stdout=off") stdout="off" ;;
|
||||
"--stdout=auto") stdout="auto" ;;
|
||||
"-v") verbose="on" ;;
|
||||
"--print_config") printf '%s\n' "$config"; exit ;;
|
||||
"-vv") set -x; verbose="on" ;;
|
||||
@@ -7135,6 +7163,28 @@ ${c1} '
|
||||
'` `'
|
||||
EOF
|
||||
;;
|
||||
|
||||
"Cobalt"*)
|
||||
set_colors 33 33 59 31 8
|
||||
read -rd '' ascii_data <<'EOF'
|
||||
${c1} ///
|
||||
${c1} ,//////////////
|
||||
${c1} ///////////////////////////////
|
||||
${c1} ///////////////${c5}***********${c1}//////
|
||||
////${c5}***********************${c1}/////
|
||||
/////${c5}***********************${c1}////
|
||||
//////${c5},,,,,,,,,,,,,,,,,,,,,,${c1}///
|
||||
//////${c5},,,,,,,,,,,,,,,,,,,,,,,,,${c1}/////
|
||||
/////${c5},,,,,,,,,,,,,,,,,,,,,,,,,,,,${c1}/////
|
||||
${c4} *****${c3},,,,,,,,,,,,,,,,,,,,,,,,,,,,,${c4}*****
|
||||
******${c3},,,,,,,,,,,,,,,,,,,,,,,,,,,,${c4}*****
|
||||
*******${c3},,,,,,,,,,,,,,,,,,,,,,,,,${c4}******
|
||||
*******${c3}......................${c4}*******
|
||||
******${c3}....${c4}***********************
|
||||
****************************
|
||||
*****
|
||||
EOF
|
||||
;;
|
||||
|
||||
"Arya"*)
|
||||
set_colors 2 1
|
||||
@@ -8599,6 +8649,32 @@ dMm `/++/-``/yNNh+/sdNMNddMm- mMd
|
||||
EOF
|
||||
;;
|
||||
|
||||
"Enso"*)
|
||||
set_colors 8 7
|
||||
read -rd '' ascii_data <<'EOF'
|
||||
${c1}
|
||||
.:--==--:.
|
||||
:=*#%%%%%%%#####*+-.
|
||||
.+%%%%%%%%%%%%###%%#*##*:
|
||||
.*%%%%%%%%%#+==-==++*####*##-
|
||||
=%%%%%%%#=: .-+**#***.
|
||||
*%%%%%%#- ++*#**.
|
||||
+%%%%%%+ -*+#**
|
||||
:%%%%%%* .*+**=
|
||||
*%%%%%%: --#*#
|
||||
%%%%%%% +++#.
|
||||
%%%%%%%. ++=*.
|
||||
*%%%%%%+ .-+*+
|
||||
:%%%%%%%- -:*+:
|
||||
=%%%%%%%*. :.*+-
|
||||
+%%%%%%%%*- :*=-
|
||||
=%%%%%%%%%%#+=: =+=:
|
||||
.+%%%%%%%%%%%%%. .-==:
|
||||
.=#%%%%%%%%%%= ..:--:.
|
||||
.-+#%%%%%+
|
||||
EOF
|
||||
;;
|
||||
|
||||
"EuroLinux"*)
|
||||
set_colors 4 7
|
||||
read -rd '' ascii_data <<'EOF'
|
||||
@@ -8885,6 +8961,17 @@ o/:-...................................:
|
||||
EOF
|
||||
;;
|
||||
|
||||
"garuda_small")
|
||||
set_colors 7 7 3 7 2 4
|
||||
read -rd '' ascii_data <<'EOF'
|
||||
${c3} .----.
|
||||
.' ${c6},${c3} '.
|
||||
${c4} .' ${c6}'${c3}-----|
|
||||
'${c5}. -----,
|
||||
'.____.'
|
||||
EOF
|
||||
;;
|
||||
|
||||
"Garuda"*)
|
||||
set_colors 7 7 3 7 2 4
|
||||
read -rd '' ascii_data <<'EOF'
|
||||
@@ -9720,7 +9807,7 @@ EOF
|
||||
"LMDE"*)
|
||||
set_colors 2 7
|
||||
read -rd '' ascii_data <<'EOF'
|
||||
${c2} `.-::---..
|
||||
${c2} `.-::---..
|
||||
${c1} .:++++ooooosssoo:.
|
||||
.+o++::. `.:oos+.
|
||||
${c1} :oo:.` -+oo${c2}:
|
||||
@@ -13271,6 +13358,32 @@ ${c1} | (-- | |
|
||||
EOF
|
||||
|
||||
;;
|
||||
|
||||
"Vanilla"*)
|
||||
set_colors 11 15
|
||||
read -rd '' ascii_data <<'EOF'
|
||||
${c1}
|
||||
.----:
|
||||
.-------.
|
||||
:---::----:
|
||||
.----::-----.
|
||||
......... :----::-----: ..:::-::::..
|
||||
.-----------------::------------------:
|
||||
----::-----------::----------::::---:
|
||||
-----:::--------::-------:::-------
|
||||
:------::::--::...:::::---------:
|
||||
.---------::.. ..:---------.
|
||||
.::-----::.. .::----::.
|
||||
.:------:.......:-------:
|
||||
.--------::::::::-:::-------.
|
||||
.-------::-----.:-----::------.
|
||||
-----::------: :------::-----
|
||||
:--::--------: .-------::---:
|
||||
:----------:: .:----------
|
||||
|
||||
EOF
|
||||
;;
|
||||
|
||||
|
||||
"Obarun"*)
|
||||
set_colors 6 6 7 1
|
||||
@@ -13669,6 +13782,12 @@ main() {
|
||||
get_distro
|
||||
get_bold
|
||||
get_distro_ascii
|
||||
|
||||
# check if the output is a interactive terminal
|
||||
[[ $stdout == auto ]] && {
|
||||
[[ -t 1 ]] && stdout=off || stdout=on
|
||||
}
|
||||
|
||||
[[ $stdout == on ]] && stdout
|
||||
|
||||
# Minix doesn't support these sequences.
|
||||
|
||||
+48
-36
@@ -1,7 +1,7 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
|
||||
.TH NEOFETCH "1" "October 2022" "Neofetch 7.3.2" "User Commands"
|
||||
.TH NEOFETCH "1" "November 2022" "Neofetch 7.3.4" "User Commands"
|
||||
.SH NAME
|
||||
Neofetch \- manual page for Neofetch 7.3.2
|
||||
Neofetch \- manual page for Neofetch 7.3.4
|
||||
.SH SYNOPSIS
|
||||
.B neofetch
|
||||
\fI\,func_name --option "value" --option "value"\/\fR
|
||||
@@ -164,9 +164,12 @@ Print the Artist/Album/Title on separate lines.
|
||||
\fB\-\-memory_percent\fR on/off
|
||||
Display memory percentage.
|
||||
.TP
|
||||
\fB\-\-memory_unit\fR kib/mib/gib
|
||||
\fB\-\-memory_unit\fR (k/m/g/t)ib
|
||||
Memory output unit.
|
||||
.TP
|
||||
\fB\-\-memory_precision\fR integer
|
||||
Change memory output precision. (???0, default=2)
|
||||
.TP
|
||||
\fB\-\-music_player\fR player\-name
|
||||
Manually specify a player to use.
|
||||
Available values are listed in the config file
|
||||
@@ -308,47 +311,47 @@ Artix, Arya, Asahi, AsteroidOS, astOS, Bedrock, BigLinux, Bitrig,
|
||||
BlackArch, blackPanther, BLAG, BlankOn, BlueLight, Bodhi, bonsai,
|
||||
BSD, BunsenLabs, Cachy OS, Calculate, CalinixOS, Carbs, CBL\-Mariner,
|
||||
CelOS, Center, CentOS, Chakra, ChaletOS, Chapeau, ChonkySealOS,
|
||||
Chrom, Cleanjaro, Clear Linux OS, ClearOS, Clover, Condres,
|
||||
Chrom, Cleanjaro, Clear Linux OS, ClearOS, Clover, Cobalt, Condres,
|
||||
Container Linux by CoreOS, CRUX, Crystal Linux, Cucumber,
|
||||
CutefishOS, CyberOS, dahlia, DarkOs, Darwin, Debian, Deepin, DesaOS,
|
||||
Devuan, DietPi, DracOS, DragonFly, Drauger, Droidian, Elementary,
|
||||
Elive, EncryptOS, EndeavourOS, Endless, EuroLinux, Exherbo, Exodia
|
||||
Predator OS, Fedora, Feren, Finnix, FreeBSD, FreeMiNT, Frugalware,
|
||||
Funtoo, GalliumOS, Garuda, Gentoo, GhostBSD, glaucus, gNewSense,
|
||||
GNOME, GNU, GoboLinux, GrapheneOS, Grombyang, Guix, Haiku, HamoniKR,
|
||||
HarDClanZ, Hash, Huayra, HydroOS, Hyperbola, iglunix, instantOS,
|
||||
IRIX, Itc, januslinux, Kaisen, Kali, KaOS, KDE, Kibojoe, Kogaion,
|
||||
Korora, KrassOS, KSLinux, Kubuntu, LangitKetujuh, LaxerOS, LEDE,
|
||||
LibreELEC, Linspire, Linux, Linux Lite, Linux Mint, Linux Mint Old,
|
||||
Live Raizo, LMDE, Lubuntu, Lunar, mac, Mageia, MagpieOS, Mandriva,
|
||||
Manjaro, MassOS, MatuusOS, Maui, Mer, Minix, MIRACLE LINUX, MX,
|
||||
Namib, Neptune, NetBSD, Netrunner, Nitrux, NixOS, NomadBSD,
|
||||
Nurunner, NuTyX, Obarun, OBRevenge, OmniOS, Open Source Media
|
||||
Center, OpenBSD, openEuler, OpenIndiana, openmamba, OpenMandriva,
|
||||
OpenStage, openSUSE, openSUSE Leap, openSUSE Tumbleweed, OpenWrt,
|
||||
OPNsense, Oracle, orchid, OS Elbrus, PacBSD, Parabola, parch,
|
||||
Pardus, Parrot, Parsix, PCBSD, PCLinuxOS, pearOS, Pengwin, Pentoo,
|
||||
Peppermint, Pisi, PNM Linux, Pop!_OS, Porteus, PostMarketOS,
|
||||
Profelis SambaBOX, Proxmox, PuffOS, Puppy, PureOS, Q4OS, Qubes,
|
||||
Qubyt, Quibian, Radix, Raspbian, ravynOS, Reborn OS, Red Star,
|
||||
Redcore, Redhat, Refracted Devuan, Regata, Regolith, rocky, Rosa,
|
||||
Sabayon, sabotage, Sailfish, SalentOS, Scientific, semc, Septor,
|
||||
Serene, SharkLinux, ShastraOS, Siduction, SkiffOS, Slackware,
|
||||
SliTaz, SmartOS, Soda, Solus, Source Mage, Sparky, Star, SteamOS,
|
||||
Stock Linux, Sulin, SunOS, SwagArch, t2, Tails, TeArch, TorizonCore,
|
||||
Trisquel, Twister, Ubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu
|
||||
Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Sway, Ubuntu Touch,
|
||||
Ubuntu\-GNOME, ubuntu_old02, Ultramarine Linux, Univalent,
|
||||
Univention, Uos, uwuntu, Venom, VNux, Void, VzLinux, wii\-linux\-ngx,
|
||||
Windows, Windows 10, Windows 11, XFerience, Xubuntu, yiffOS, Zorin
|
||||
have ascii logos.
|
||||
Elive, EncryptOS, EndeavourOS, Endless, Enso, EuroLinux, Exherbo,
|
||||
Exodia Predator OS, Fedora, Feren, Finnix, FreeBSD, FreeMiNT,
|
||||
Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, GhostBSD, glaucus,
|
||||
gNewSense, GNOME, GNU, GoboLinux, GrapheneOS, Grombyang, Guix,
|
||||
Haiku, HamoniKR, HarDClanZ, Hash, Huayra, HydroOS, Hyperbola,
|
||||
iglunix, instantOS, IRIX, Itc, januslinux, Kaisen, Kali, KaOS, KDE,
|
||||
Kibojoe, Kogaion, Korora, KrassOS, KSLinux, Kubuntu, LangitKetujuh,
|
||||
LaxerOS, LEDE, LibreELEC, Linspire, Linux, Linux Lite, Linux Mint,
|
||||
Linux Mint Old, Live Raizo, LMDE, Lubuntu, Lunar, mac, Mageia,
|
||||
MagpieOS, Mandriva, Manjaro, MassOS, MatuusOS, Maui, Mer, Minix,
|
||||
MIRACLE LINUX, MX, Namib, Neptune, NetBSD, Netrunner, Nitrux, NixOS,
|
||||
NomadBSD, Nurunner, NuTyX, Obarun, OBRevenge, OmniOS, Open Source
|
||||
Media Center, OpenBSD, openEuler, OpenIndiana, openmamba,
|
||||
OpenMandriva, OpenStage, openSUSE, openSUSE Leap, openSUSE
|
||||
Tumbleweed, OpenWrt, OPNsense, Oracle, orchid, OS Elbrus, PacBSD,
|
||||
Parabola, parch, Pardus, Parrot, Parsix, PCBSD, PCLinuxOS, pearOS,
|
||||
Pengwin, Pentoo, Peppermint, Pisi, PNM Linux, Pop!_OS, Porteus,
|
||||
PostMarketOS, Profelis SambaBOX, Proxmox, PuffOS, Puppy, PureOS,
|
||||
Q4OS, Qubes, Qubyt, Quibian, Radix, Raspbian, ravynOS, Reborn OS,
|
||||
Red Star, Redcore, Redhat, Refracted Devuan, Regata, Regolith,
|
||||
rocky, Rosa, Sabayon, sabotage, Sailfish, SalentOS, Scientific,
|
||||
semc, Septor, Serene, SharkLinux, ShastraOS, Siduction, SkiffOS,
|
||||
Slackware, SliTaz, SmartOS, Soda, Solus, Source Mage, Sparky, Star,
|
||||
SteamOS, Stock Linux, Sulin, SunOS, SwagArch, t2, Tails, TeArch,
|
||||
TorizonCore, Trisquel, Twister, Ubuntu, Ubuntu Budgie, Ubuntu
|
||||
Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Sway,
|
||||
Ubuntu Touch, Ubuntu\-GNOME, ubuntu_old02, Ultramarine Linux,
|
||||
Univalent, Univention, Uos, uwuntu, Vanilla, Venom, VNux, Void,
|
||||
VzLinux, wii\-linux\-ngx, Windows, Windows 10, Windows 11, XFerience,
|
||||
Xubuntu, yiffOS, Zorin have ascii logos.
|
||||
.TP
|
||||
NOTE: arch, dragonfly, Fedora, LangitKetujuh, nixos, redhat, Ubuntu
|
||||
have 'old' logo variants, use {distro}_old to use them.
|
||||
.TP
|
||||
NOTE: alpine, android, aoscosretro, arch, arcolinux, artix,
|
||||
CalinixOS, centos, cleanjaro, crux, debian, dragonfly, elementary,
|
||||
fedora, freebsd, gentoo, guix, haiku, hyperbola, linuxlite,
|
||||
fedora, freebsd, garuda, gentoo, guix, haiku, hyperbola, linuxlite,
|
||||
linuxmint, mac, mageia, manjaro, mx, netbsd, nixos, openbsd,
|
||||
opensuse, orchid, parabola, popos, postmarketos, pureos, Raspbian,
|
||||
rocky, slackware, sunos, ubuntu, void have 'small' logo variants,
|
||||
@@ -415,9 +418,18 @@ Don't create the user config file.
|
||||
\fB\-\-print_config\fR
|
||||
Print the default config file to stdout.
|
||||
.TP
|
||||
\fB\-\-stdout\fR
|
||||
\fB\-\-stdout\fR=\fI\,on\/\fR
|
||||
Turn off all colors and disables any ASCII/image backend.
|
||||
.TP
|
||||
\fB\-\-stdout\fR=\fI\,off\/\fR
|
||||
Enable the colored output and ASCII/image backend
|
||||
.TP
|
||||
\fB\-\-stdout\fR=\fI\,auto\/\fR
|
||||
Let the program decide basing on the output type (default behavior)
|
||||
.TP
|
||||
\fB\-\-stdout\fR
|
||||
Equivalent to '\-\-stdout=on', for backward compatibility
|
||||
.TP
|
||||
\fB\-\-help\fR
|
||||
Print this text and exit
|
||||
.TP
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "neowofetch",
|
||||
"version": "1.4.2",
|
||||
"version": "1.4.4",
|
||||
"description": "Updated neofetch",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -3,7 +3,7 @@ import pathlib
|
||||
|
||||
from setuptools import setup
|
||||
|
||||
import hyfetch
|
||||
import hyfetch.constants
|
||||
|
||||
# The directory containing this file
|
||||
HERE = pathlib.Path(__file__).parent
|
||||
@@ -14,7 +14,7 @@ README = (HERE / "README.md").read_text('utf-8')
|
||||
# This call to setup() does all the work
|
||||
setup(
|
||||
name="HyFetch",
|
||||
version=hyfetch.__version__,
|
||||
version=hyfetch.constants.VERSION,
|
||||
description="neofetch with flags <3",
|
||||
long_description=README,
|
||||
long_description_content_type="text/markdown",
|
||||
|
||||
Reference in New Issue
Block a user