Commit 8c667997 authored by Roman Alifanov's avatar Roman Alifanov

Rewrite neofetch in ContenT, rename to ctfetch

- Full rewrite from monolithic bash to ContenT OOP (.ct files in src/) - 272 ASCII logos as individual class files (src/logos/) - Dynamic logo loading via reflect.create() - Add Ximper Linux support (distro detection, ASCII logo) - Add cargo package manager, Cassette player, Hyprland WM - Apply patches from fiersik@ (origin/ximper) - Rename project to ctfetch - Update README, Makefile, manpage, license
parent ccd5d9f5
# How to Contribute
<!-- vim-markdown-toc GFM -->
* [Coding Conventions](#coding-conventions)
* [ShellCheck](#shellcheck)
* [No no's](#no-nos)
* [If Statements](#if-statements)
* [Case Statements](#case-statements)
* [Making changes to Neofetch](#making-changes-to-neofetch)
* [Adding support for a new Operating System / Distribution.](#adding-support-for-a-new-operating-system--distribution)
<!-- vim-markdown-toc -->
## Coding Conventions
- Use `bash` built-ins wherever possible.
- Try not to pipe (`|`) at all.
- Limit usage of external commands `$(cmd)`.
- Indent 4 spaces.
- Use [snake_case](https://en.wikipedia.org/wiki/Snake_case) for function
and variable names.
- Keep lines below `100` characters long.
- Use `[[ ]]` for tests.
- Quote **EVERYTHING**.
### ShellCheck
For your contribution to be accepted, your changes need to pass
ShellCheck.
```sh
shellcheck neofetch
```
**Note**: If you have trouble installing ShellCheck. You can open a pull
request on the repo and our Travis.ci hook will run ShellCheck for you.
### No no's
- Don’t use GNU conventions in commands.
- Use POSIX arguments and flags.
- Don’t use `cut`.
- Use `bash`'s built-in [parameter expansion](http://wiki.bash-hackers.org/syntax/pe).
- Don’t use `echo`.
- Use `printf "%s\n"`
- Don’t use `bc`.
- Don’t use `sed`.
- Use `bash`'s built-in [parameter expansion](http://wiki.bash-hackers.org/syntax/pe).
- Don’t use `cat`.
- Use `bash`'s built-in syntax (`file="$(< /path/to/file.txt)")`).
- Don’t use `grep "pattern" | awk '{ printf }'`.
- Use `awk '/pattern/ { printf }'`
- Don’t use `wc`.
- Use `${#var}` or `${#arr[@]}`.
### If Statements
If the test only has one command inside of it; use the compact test
syntax. Otherwise the normal `if`/`fi` is just fine.
```sh
# Bad
if [[ "$var" ]]; then
printf "%s\n" "$var"
fi
# Good
[[ "$var" ]] && printf "%s\n" "$var"
# Also good (Use this for longer lines).
[[ "$var" ]] && \
printf "%s\n" "$var"
```
### Case Statements
Case statements need to be formatted in a specific way.
```sh
# Good example (Notice the indentation).
case "$var" in
1) printf "%s\n" 1 ;;
2)
printf "%s\n" "1"
printf "%s\n" "2"
;;
*)
printf "%s\n" "1"
printf "%s\n" "2"
printf "%s\n" "3"
;;
esac
```
## Making changes to Neofetch
### Adding support for a new Operating System / Distribution.
Adding support for a new OS/Distro requires adding the Name, Logo and
Colors of the OS/Distro to the `get_distro_ascii()` function.
The function is located right at the bottom of the script, one function
above `main()`. Inside this function you’ll find an alphabetical list of
each OS/Distro.
Find the spot in the list your new OS/Distro fits into and start
implementing your changes.
If your OS/Distro requires changes to the actual information gathering
functions then you can make these changes in the `get_*` functions.
**Syntax**:
- You have to escape back-slashes (`\`). (eg `\\`)
- You can use `${c1}` to `${c6}`to color the ascii.
- These are evaluated *after* we read the file.
**Example**:
```sh
"CRUX"*)
set_colors 4 5 7 6
read -rd '' ascii_data <<'EOF'
${c1} odddd
oddxkkkxxdoo
ddcoddxxxdoool
xdclodod olol
xoc xdd olol
xdc ${c2}k00${c1}Okdlol
xxd${c2}kOKKKOkd${c1}ldd
xdco${c2}xOkdlo${c1}dldd
ddc:cl${c2}lll${c1}oooodo
odxxdd${c3}xkO000kx${c1}ooxdo
oxdd${c3}x0NMMMMMMWW0od${c1}kkxo
oooxd${c3}0WMMMMMMMMMW0o${c1}dxkx
docldkXW${c3}MMMMMMMWWN${c1}Odolco
xx${c2}dx${c1}kxxOKN${c3}WMMWN${c1}0xdoxo::c
${c2}xOkkO${c1}0oo${c3}odOW${c2}WW${c1}XkdodOxc:l
${c2}dkkkxkkk${c3}OKX${c2}NNNX0Oxx${c1}xc:cd
${c2} odxxdx${c3}xllod${c2}ddooxx${c1}dc:ldo
${c2} lodd${c1}dolccc${c2}ccox${c1}xoloo
EOF
;;
```
The MIT License (MIT)
Copyright (c) 2015-2021 Dylan Araps
Copyright (c) 2026 Roman Alifanov
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
......
PREFIX = /usr
MANDIR = $(PREFIX)/share/man
OUT = ctfetch.sh
all:
@echo Run \'make install\' to install Neofetch.
all: build
install:
build:
content build src/ -o $(OUT)
install: build
@mkdir -p $(DESTDIR)$(PREFIX)/bin
@mkdir -p $(DESTDIR)$(MANDIR)/man1
@cp -p neofetch $(DESTDIR)$(PREFIX)/bin/neofetch
@cp -p neofetch.1 $(DESTDIR)$(MANDIR)/man1
@chmod 755 $(DESTDIR)$(PREFIX)/bin/neofetch
@cp -p $(OUT) $(DESTDIR)$(PREFIX)/bin/ctfetch
@cp -p ctfetch.1 $(DESTDIR)$(MANDIR)/man1
@chmod 755 $(DESTDIR)$(PREFIX)/bin/ctfetch
uninstall:
@rm -rf $(DESTDIR)$(PREFIX)/bin/neofetch
@rm -rf $(DESTDIR)$(MANDIR)/man1/neofetch.1*
@rm -rf $(DESTDIR)$(PREFIX)/bin/ctfetch
@rm -rf $(DESTDIR)$(MANDIR)/man1/ctfetch.1*
clean:
@rm -f $(OUT)
<h3 align="center"><img src="https://i.imgur.com/ZQI2EYz.png" alt="logo" height="100px"></h3>
<p align="center">A command-line system information tool written in bash 3.2+</p>
<p align="center">A command-line system information tool rewritten in <a href="https://gitlab.eterfund.ru/ximperlinux/ContenT">ContenT</a></p>
<p align="center">
<a href="./LICENSE.md"><img src="https://img.shields.io/badge/license-MIT-blue.svg"></a>
<a href="https://github.com/dylanaraps/neofetch/releases"><img src="https://img.shields.io/github/release/dylanaraps/neofetch.svg"></a>
<a href="https://repology.org/metapackage/neofetch"><img src="https://repology.org/badge/tiny-repos/neofetch.svg" alt="Packaging status"></a>
</p>
This is a fork of [neofetch](https://github.com/dylanaraps/neofetch) rewritten in [ContenT](https://gitlab.eterfund.ru/ximperlinux/ContenT) with an OOP architecture. The source code in `src/` compiles into a single bash script.
**What's different from the original:**
- Codebase split into classes and modules instead of a monolithic 11,000+ line bash script
- 272 ASCII logos moved into individual class files (`src/logos/`)
- Dynamic logo loading via `reflect.create()` — no giant switch/case blocks
- Added Ximper Linux support (distro detection, ASCII logo)
- Added cargo package manager, Cassette player, Hyprland WM
**Building and running:**
```bash
make # build ctfetch.sh from src/
make install # install to /usr/bin/ctfetch
```
<img src="https://i.imgur.com/GFmC5Ad.png" alt="neofetch" align="right" height="240px">
Neofetch is a command-line system information tool written in `bash 3.2+`. Neofetch displays information about your operating system, software and hardware in an aesthetic and visually pleasing way.
......
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.3.
.TH NEOFETCH "1" "April 2021" "Neofetch 7.1.0" "User Commands"
.TH CTFETCH "1" "February 2026" "ctfetch 7.1.0-ct" "User Commands"
.SH NAME
Neofetch \- A fast, highly customizable system info script
ctfetch \- A fast, highly customizable system info script (neofetch rewritten in ContenT)
.SH SYNOPSIS
.B neofetch
.B ctfetch
\fI\,func_name --option "value" --option "value"\/\fR
.SH DESCRIPTION
Neofetch is a CLI system information tool written in BASH. Neofetch
......@@ -18,17 +18,17 @@ func_name
Specify a function name (second part of info() from config) to
quickly display only that function's information.
.IP
Example: neofetch uptime \fB\-\-uptime_shorthand\fR tiny
Example: ctfetch uptime \fB\-\-uptime_shorthand\fR tiny
.IP
Example: neofetch uptime disk wm memory
Example: ctfetch uptime disk wm memory
.IP
This can be used in bars and scripts like so:
.IP
memory="$(neofetch memory)"; memory="${memory##*: }"
memory="$(ctfetch memory)"; memory="${memory##*: }"
.IP
For multiple outputs at once (each line of info in an array):
.IP
IFS=$'\en' read \fB\-d\fR "" \fB\-ra\fR info < <(neofetch memory uptime wm)
IFS=$'\en' read \fB\-d\fR "" \fB\-ra\fR info < <(ctfetch memory uptime wm)
.IP
info=("${info[@]##*: }")
.TP
......@@ -38,7 +38,7 @@ in the output. 'infoname' is the function name from the
\&'print_info()' function inside the config file.
For example: 'info "Memory" memory' would be '\-\-disable memory'
.IP
NOTE: You can supply multiple args. eg. 'neofetch \fB\-\-disable\fR cpu gpu'
NOTE: You can supply multiple args. eg. 'ctfetch \fB\-\-disable\fR cpu gpu'
.TP
\fB\-\-title_fqdn\fR on/off
Hide/Show Fully Qualified Domain Name in title.
......@@ -244,7 +244,7 @@ Possible values: 'auto', 'ascii', 'wallpaper', '/path/to/img',
\fB\-\-ascii\fR source
Shortcut to use 'ascii' backend.
.IP
NEW: neofetch \fB\-\-ascii\fR "$(fortune | cowsay \fB\-W\fR 30)"
NEW: ctfetch \fB\-\-ascii\fR "$(fortune | cowsay \fB\-W\fR 30)"
.TP
\fB\-\-caca\fR source
Shortcut to use 'caca' backend.
......@@ -416,7 +416,7 @@ Turn off all colors and disables any ASCII/image backend.
Print this text and exit
.TP
\fB\-\-version\fR
Show neofetch version
Show ctfetch version
.TP
\fB\-v\fR
Display error messages.
......@@ -426,6 +426,6 @@ Display a verbose log for error reporting.
.SS "DEVELOPER:"
.TP
\fB\-\-gen\-man\fR
Generate a manpage for Neofetch in your PWD. (Requires GNU help2man)
Generate a manpage for ctfetch in your PWD. (Requires GNU help2man)
.SH "REPORTING BUGS"
Report bugs to https://github.com/dylanaraps/neofetch/issues
This source diff could not be displayed because it is too large. You can view the blob instead.
# neofetch-ct: ascii.ct
# AsciiArt class — loads and displays ASCII art logos
class AsciiArt {
ascii_data = ""
colors_str = ""
distro_name = ""
func load (distro, cfg: Config, display: Display) {
this.distro_name = distro
ascii_distro = distro
if cfg.ascii_distro != "auto" {
ascii_distro = cfg.ascii_distro
}
distro_lower = ascii_distro.lower ()
distro_lower = trim (distro_lower)
logo = this.match_distro (distro_lower)
this.load_art (logo, display, cfg)
}
func match_distro (d) {
# Data-driven distro→logo mapping. Order matters: specific before general.
# Format: "pattern>logo" per entry, "|" separator.
# If no ">", pattern = logo name.
map = "aix|aperio gnu/linux>aperio_gnu_linux|hash|almalinux"
map = map .. "|alpine_small|alpine|alter|amazon|anarchy"
map = map .. "|android_small|android|instantos|antergos|antix"
map = map .. "|aosc os/retro>aosc_os_retro|aosc os>aosc_os|apricity"
map = map .. "|archcraft|arcolinux_small|arcolinux"
map = map .. "|arch_small|arch_old|archbox|archlabs|archstrike"
map = map .. "|xferience|archmerge|arch"
map = map .. "|artix_small|artix|arya|asteroidos"
map = map .. "|bedrock|bitrig|blackarch|blag|blankon|bluelight"
map = map .. "|bodhi|bonsai|bsd|bunsenlabs|calculate|carbs"
map = map .. "|cbl-mariner>cbl_mariner|celos|centos_small|centos"
map = map .. "|chakra|chaletos|chapeau|chrom"
map = map .. "|cleanjaro_small|cleanjaro|clearos"
map = map .. "|clear linux os>clear_linux_os|clear_linux>clear_linux_os"
map = map .. "|clover|condres"
map = map .. "|container linux by coreos>container_linux_by_coreos"
map = map .. "|container_linux>container_linux_by_coreos"
map = map .. "|crux_small|crux|crystal linux>crystal_linux"
map = map .. "|cucumber|cyberos|dahlia"
map = map .. "|debian_small|debian|deepin|desaos|devuan|dracos|darkos|itc"
map = map .. "|dragonfly_old|dragonfly_small|dragonfly|drauger"
map = map .. "|elementary_small|elementary|endeavouros|endless"
map = map .. "|eurolinux|exherbo"
map = map .. "|fedora_small|fedora_old|rfremix>fedora_old|fedora|feren"
map = map .. "|freebsd_small|freebsd|hardenedbsd>freebsd"
map = map .. "|freemint|frugalware|funtoo|galliumos|garuda"
map = map .. "|gentoo_small|gentoo|pentoo|glaucus|gnewsense"
map = map .. "|gnome|gnu|gobolinux|grombyang"
map = map .. "|guix_small|guix|haiku_small|haiku"
map = map .. "|huayra|hydroos|hyperbola_small|hyperbola"
map = map .. "|iglunix|iglu>iglunix"
map = map .. "|januslinux|janus>januslinux"
map = map .. "|ataraxia linux>januslinux|ataraxia>januslinux"
map = map .. "|kaisen|kali|kaos|kde|kibojoe|kogaion|korora|kslinux"
map = map .. "|kubuntu|lede|laxeros|libreelec|ximper|linux"
map = map .. "|linuxlite_small|linux lite>linux_lite|linux_lite>linux_lite"
map = map .. "|lmde|lubuntu|lunar"
map = map .. "|mac|_small>mac|mac>mac_2|darwin>mac_2"
map = map .. "|mageia_small|mageia|magpieos"
map = map .. "|mandriva|mandrake>mandriva|manjaro_small|manjaro"
map = map .. "|tearch|maui|mer|minix"
map = map .. "|linuxmint_small"
map = map .. "|linux mint old>linux_mint_old|linuxmintold>linux_mint_old"
map = map .. "|mint_old>linux_mint_old"
map = map .. "|linux mint>linux_mint|linuxmint>linux_mint|mint>linux_mint"
map = map .. "|live raizo>live_raizo|live_raizo"
map = map .. "|mx_small|mx|namib|neptune"
map = map .. "|netbsd_small|netbsd|netrunner|nitrux"
map = map .. "|nixos_small|nixos_old|nixos|nurunner|nutyx|obrevenge"
map = map .. "|openbsd_small|openbsd|openeuler|openindiana"
map = map .. "|openmamba|openmandriva|openstage|openwrt"
map = map .. "|open source media center>open_source_media_center"
map = map .. "|osmc>open_source_media_center"
map = map .. "|oracle|os elbrus>os_elbrus|pacbsd"
map = map .. "|parabola_small|parabola|pardus|parrot|parsix"
map = map .. "|pcbsd|trueos>pcbsd|pclinuxos|pengwin|peppermint|pisi"
map = map .. "|pnm linux>pnm_linux|whpnm linux>pnm_linux"
map = map .. "|popos_small|pop_os_small>popos_small"
map = map .. "|pop!_os>pop_os|popos>pop_os|pop_os"
map = map .. "|porteus|postmarketos_small|postmarketos"
map = map .. "|puffos|proxmox"
map = map .. "|puppy|quirky werewolf>puppy|precise puppy>puppy"
map = map .. "|pureos_small|pureos|qubes|qubyt|quibian|radix"
map = map .. "|raspbian_small|raspbian"
map = map .. "|reborn os>reborn_os|reborn>reborn_os"
map = map .. "|red star>red_star|redstar>red_star|redcore"
map = map .. "|redhat_old|rhel_old>redhat_old"
map = map .. "|redhat|red hat>redhat|rhel>redhat"
map = map .. "|refracted devuan>refracted_devuan|refracted_devuan"
map = map .. "|regata|regolith|rocky_small|rocky|rosa"
map = map .. "|sabotage|sabayon|sailfish|salentos|scientific"
map = map .. "|septor|serene|sharklinux|siduction"
map = map .. "|slackware_small|slackware|slitaz|smartos|skiffos|solus"
map = map .. "|source mage>source_mage|source_mage|sparky|star|steamos"
map = map .. "|sunos_small|solaris_small>sunos_small|sunos|solaris>sunos"
map = map .. "|opensuse leap>opensuse_leap|opensuse_leap|t2"
map = map .. "|opensuse tumbleweed>opensuse_tumbleweed|opensuse_tumbleweed"
map = map .. "|opensuse_small|suse_small>opensuse_small"
map = map .. "|opensuse|open suse>opensuse|suse>opensuse"
map = map .. "|swagarch|tails|trisquel"
map = map .. "|ubuntu cinnamon>ubuntu_cinnamon|ubuntu-cinnamon>ubuntu_cinnamon"
map = map .. "|ubuntu budgie>ubuntu_budgie|ubuntu-budgie>ubuntu_budgie"
map = map .. "|ubuntu-gnome>ubuntu_gnome"
map = map .. "|ubuntu mate>ubuntu_mate|ubuntu-mate>ubuntu_mate"
map = map .. "|ubuntu_old"
map = map .. "|ubuntu studio>ubuntu_studio|ubuntu-studio>ubuntu_studio"
map = map .. "|ubuntu_small|ubuntu|i3buntu>ubuntu"
map = map .. "|univention|venom|void_small|void|vnux"
map = map .. "|langitketujuh|semc|obarun"
map = map .. "|windows 11>windows_11|windows11>windows_11"
map = map .. "|windows 10>windows_10|windows10>windows_10|windows8>windows_10"
map = map .. "|windows|xubuntu|irix|zorin"
entries = map.split ("|")
i = 0
while i < entries.len () {
entry = entries.get (i)
parts = entry.split (">")
pattern = parts.get (0)
if parts.len () >= 2 {
logo = parts.get (1)
} else {
logo = pattern
}
if d.contains (pattern) {
return logo
}
i = i + 1
}
return "linux"
}
func load_art (logo, display: Display, cfg: Config) {
# Dynamic logo loading via reflect
class_name = "Logo_" .. logo
logo_obj = reflect.create (class_name)
logo_colors = reflect.get (logo_obj, "colors")
# Fallback to linux if class not found (empty colors means reflect failed)
if logo_colors == "" {
logo_obj = reflect.create ("Logo_linux")
logo_colors = reflect.get (logo_obj, "colors")
}
# 1. Set colors from logo class
this.colors_str = logo_colors
# 2. Apply colors
this.apply_colors (display, cfg)
c1 = display.c1
c2 = display.c2
c3 = display.c3
c4 = display.c4
c5 = display.c5
c6 = display.c6
# 3. Get art template and replace color placeholders
# \{c1\} produces literal {c1} in the compiled shell
art = reflect.get (logo_obj, "art")
art = art.replace ("\{c1\}", c1)
art = art.replace ("\{c2\}", c2)
art = art.replace ("\{c3\}", c3)
art = art.replace ("\{c4\}", c4)
art = art.replace ("\{c5\}", c5)
art = art.replace ("\{c6\}", c6)
this.ascii_data = art
}
func apply_colors (display: Display, cfg: Config) {
# Parse colors_str "c1 c2 c3 c4 c5 c6"
parts = this.colors_str.split (" ")
c1_code = "7"
c2_code = "7"
c3_code = "7"
c4_code = "7"
c5_code = "7"
c6_code = "7"
if parts.len () >= 1 { c1_code = parts.get (0) }
if parts.len () >= 2 { c2_code = parts.get (1) }
if parts.len () >= 3 { c3_code = parts.get (2) }
if parts.len () >= 4 { c4_code = parts.get (3) }
if parts.len () >= 5 { c5_code = parts.get (4) }
if parts.len () >= 6 { c6_code = parts.get (5) }
display.set_colors (c1_code, c2_code, c3_code, c4_code, c5_code, c6_code)
display.set_text_colors (cfg, c1_code, c2_code)
}
func print_ascii (display: Display) {
# Print each line of ASCII art alongside info lines
# This is done in main.ct by interleaving ascii and info lines
art = this.ascii_data
print (art)
}
func get_ascii_width () {
# Calculate the max width of the ASCII art (for text padding)
width = printf ("%s", this.ascii_data) | sed ("s/\\\\e\\[[0-9;]*m//g") | awk ("\{ if (length > max) max = length \} END \{ print max \}")
return trim (width)
}
}
# neofetch-ct: config.ct
# Configuration class with all default settings
class Config {
# Version
version = "7.1.0-ct"
# Title
title_fqdn = "off"
# Kernel
kernel_shorthand = "on"
# Distro
distro_shorthand = "off"
os_arch = "on"
# Uptime
uptime_shorthand = "on"
# Memory
memory_percent = "off"
memory_unit = "mib"
# Packages
package_managers = "on"
# Shell
shell_path = "off"
shell_version = "on"
# CPU
speed_type = "bios_limit"
speed_shorthand = "off"
cpu_brand = "on"
cpu_speed = "on"
cpu_cores = "logical"
cpu_temp = "off"
# GPU
gpu_brand = "on"
gpu_type = "all"
# Resolution
refresh_rate = "off"
# GTK Theme / Icons / Font
gtk_shorthand = "off"
gtk2 = "on"
gtk3 = "on"
# IP
public_ip_host = "http://ident.me"
public_ip_timeout = "2"
# Desktop Environment
de_version = "on"
# Disk
disk_subtitle = "mount"
disk_percent = "on"
# Song
music_player = "auto"
song_format = "%artist% - %album% - %title%"
song_shorthand = "off"
# Text Colors
color_text = "on"
# Text Options
bold = "on"
underline_enabled = "on"
underline_char = "-"
separator = ":"
# Color Blocks
block_range_start = "0"
block_range_end = "15"
color_blocks = "on"
block_width = "3"
block_height = "1"
col_offset = "auto"
# Progress Bars
bar_char_elapsed = "-"
bar_char_total = "="
bar_border = "on"
bar_length = "15"
bar_color_elapsed = "distro"
bar_color_total = "distro"
# Info display
memory_display = "off"
battery_display = "off"
disk_display = "off"
# Backend Settings
image_backend = "ascii"
image_source = "auto"
# Ascii Options
ascii_distro = "auto"
ascii_bold = "on"
# Image Options
image_loop = "off"
crop_mode = "normal"
crop_offset = "center"
image_size = "auto"
catimg_size = "2"
gap = "3"
yoffset = "0"
xoffset = "0"
background_color = ""
# Misc
stdout = "off"
verbose = "off"
# Internal state
ascii_data = ""
info_height = "0"
text_padding = ""
construct () {
}
}
This diff is collapsed. Click to expand it.
# neofetch-ct: display.ct
# Display class — formatted output of info lines, colors, bars, color blocks
class Display {
info_height = 0
text_padding = ""
last_length = 0
info_buffer = ""
buffer_mode = "off"
# ANSI escape
reset = "\\e[0m"
zws = "\\u200D"
# Color state
title_color = ""
at_color = ""
underline_color = ""
subtitle_color = ""
colon_color = ""
info_color = ""
# ASCII colors
c1 = ""
c2 = ""
c3 = ""
c4 = ""
c5 = ""
c6 = ""
# Bold
bold_str = ""
ascii_bold_str = ""
construct () {
}
func color (code) {
result = ""
when code {
"0" { result = "\\e[30m" }
"1" { result = "\\e[31m" }
"2" { result = "\\e[32m" }
"3" { result = "\\e[33m" }
"4" { result = "\\e[34m" }
"5" { result = "\\e[35m" }
"6" { result = "\\e[36m" }
"7" { result = "{this.reset}\\e[37m" }
"fg" { result = "{this.reset}\\e[37m" }
else {
result = "\\e[38;5;{code}m"
}
}
return result
}
func set_bold (cfg: Config) {
if cfg.bold == "on" {
this.bold_str = "\\e[1m"
} else {
this.bold_str = ""
}
if cfg.ascii_bold == "on" {
this.ascii_bold_str = "\\e[1m"
} else {
this.ascii_bold_str = ""
}
}
func set_colors (c1_code, c2_code, c3_code, c4_code, c5_code, c6_code) {
this.c1 = this.color (c1_code) .. this.ascii_bold_str
this.c2 = this.color (c2_code) .. this.ascii_bold_str
this.c3 = this.color (c3_code) .. this.ascii_bold_str
this.c4 = this.color (c4_code) .. this.ascii_bold_str
this.c5 = this.color (c5_code) .. this.ascii_bold_str
this.c6 = this.color (c6_code) .. this.ascii_bold_str
}
func set_text_colors (cfg: Config, c1_code, c2_code) {
if cfg.color_text != "off" {
this.title_color = this.color (c1_code)
this.at_color = this.reset
this.underline_color = this.reset
this.subtitle_color = this.color (c2_code)
this.colon_color = this.reset
this.info_color = this.reset
if c1_code == "8" {
this.title_color = this.reset
}
if c2_code == "8" {
this.subtitle_color = this.reset
}
if c2_code == "7" {
this.subtitle_color = this.color (c1_code)
}
if c1_code == "7" {
this.title_color = this.reset
}
}
}
func _output (line_str) {
if this.buffer_mode == "on" {
if this.info_buffer == "" {
this.info_buffer = line_str
} else {
this.info_buffer = this.info_buffer .. "\\n" .. line_str
}
} else {
print (line_str)
}
}
func prin (subtitle, value, cfg: Config) {
line = ""
if subtitle != "" && value != "" {
line = "{this.subtitle_color}{this.bold_str}{subtitle}{this.reset}{this.colon_color}{cfg.separator}{this.info_color} {value}"
} else if value != "" {
line = "{this.info_color}{value}"
} else if subtitle != "" {
line = "{this.info_color}{subtitle}"
} else {
return
}
if this.text_padding != "" {
this._output ("\\e[{this.text_padding}C{this.zws}{line}{this.reset} ")
} else {
this._output ("{this.zws}{line}{this.reset} ")
}
this.info_height = this.info_height + 1
}
func print_title (user, hostname, cfg: Config) {
title_line = "{this.title_color}{this.bold_str}{user}{this.at_color}@{this.title_color}{this.bold_str}{hostname}"
if this.text_padding != "" {
this._output ("\\e[{this.text_padding}C{this.zws}{title_line}{this.reset} ")
} else {
this._output ("{this.zws}{title_line}{this.reset} ")
}
this.info_height = this.info_height + 1
}
func print_underline (cfg: Config) {
if cfg.underline_enabled == "on" {
# Build underline string natively
underline_str = ""
for _ui in range (0, this.last_length) {
underline_str = underline_str .. cfg.underline_char
}
if this.text_padding != "" {
this._output ("\\e[{this.text_padding}C{this.zws}{this.underline_color}{underline_str}{this.reset} ")
} else {
this._output ("{this.zws}{this.underline_color}{underline_str}{this.reset} ")
}
}
this.info_height = this.info_height + 1
}
func print_line_break () {
this._output ("")
this.info_height = this.info_height + 1
}
func print_cols (cfg: Config) {
if cfg.color_blocks != "on" {
return
}
# Build block width string natively
block_width_str = ""
for _bw in range (0, cfg.block_width) {
block_width_str = block_width_str .. " "
}
start = cfg.block_range_start
end_val = cfg.block_range_end
blocks = ""
blocks2 = ""
end_plus = end_val + 1
for i in range (start, end_plus) {
if i <= 7 {
blocks = blocks .. "\\e[3{i}m\\e[4{i}m{block_width_str}"
} else {
blocks2 = blocks2 .. "\\e[38;5;{i}m\\e[48;5;{i}m{block_width_str}"
}
}
# Print block rows
block_h = cfg.block_height
for h in range (0, block_h) {
if blocks != "" {
if this.text_padding != "" {
this._output ("\\e[{this.text_padding}C{this.zws}{blocks}{this.reset}")
} else {
this._output ("{this.zws}{blocks}{this.reset}")
}
}
if blocks2 != "" {
if this.text_padding != "" {
this._output ("\\e[{this.text_padding}C{this.zws}{blocks2}{this.reset}")
} else {
this._output ("{this.zws}{blocks2}{this.reset}")
}
}
}
# Update info height
if end_val > 7 {
this.info_height = this.info_height + block_h + 2
} else {
this.info_height = this.info_height + block_h + 1
}
}
func bar (value, total, cfg: Config) {
elapsed = value * cfg.bar_length / total
remaining = cfg.bar_length - elapsed
elapsed_str = ""
for _be in range (0, elapsed) {
elapsed_str = elapsed_str .. cfg.bar_char_elapsed
}
remaining_str = ""
for _br in range (0, remaining) {
remaining_str = remaining_str .. cfg.bar_char_total
}
result = ""
if cfg.bar_border == "on" {
result = "[{elapsed_str}{remaining_str}]"
} else {
result = "{elapsed_str}{remaining_str}"
}
return result
}
func stdout_mode () {
this.reset = ""
this.bold_str = ""
this.ascii_bold_str = ""
this.title_color = ""
this.at_color = ""
this.underline_color = ""
this.subtitle_color = ""
this.colon_color = ""
this.info_color = ""
this.c1 = ""
this.c2 = ""
this.c3 = ""
this.c4 = ""
this.c5 = ""
this.c6 = ""
this.text_padding = ""
this.zws = ""
}
}
# neofetch-ct: image.ct
# ImageBackend class — handles image display (w3m, kitty, sixel, etc.)
class ImageBackend {
image = ""
image_size_val = ""
width = "0"
height = "0"
term_width = "0"
term_height = "0"
font_width = "0"
font_height = "0"
w3m_img_path = ""
thumbnail_dir = ""
func init (cfg: Config) {
backend = cfg.image_backend
if backend == "ascii" || backend == "off" {
return
}
# Resolve image source
this.image = cfg.image_source
if this.image == "auto" || this.image == "" {
this.image = ""
return
}
# Setup thumbnail dir
xdg_cache = env.XDG_CACHE_HOME
home = env.HOME
if xdg_cache == "" {
xdg_cache = home .. "/.cache"
}
this.thumbnail_dir = xdg_cache .. "/thumbnails/neofetch"
fs.mkdir (this.thumbnail_dir)
# Get w3m img path if needed
if backend == "w3m" {
this.find_w3m ()
}
# Get window size and calculate image dimensions
this.get_window_size (cfg)
this.get_image_size (cfg)
}
func find_w3m () {
_w3m_path = sh ("-c", "for p in /usr/lib/w3m/w3mimgdisplay /usr/libexec/w3m/w3mimgdisplay /usr/lib64/w3m/w3mimgdisplay /usr/local/lib/w3m/w3mimgdisplay; do [ -x \"$p\" ] && echo \"$p\" && break; done")
this.w3m_img_path = trim (_w3m_path)
}
func get_window_size (cfg: Config) {
# Try escape sequence approach via stty
_ws_size = sh ("-c", "stty size 2>/dev/null || true")
_ws_size = trim (_ws_size)
if _ws_size != "" {
_ws_parts = _ws_size.split (" ")
if _ws_parts.len () >= 2 {
lines = _ws_parts.get (0)
columns = _ws_parts.get (1)
}
}
# Try xdotool for pixel dimensions
_ws_display = env.DISPLAY
if _ws_display != "" {
if has_cmd ("xdotool") != "" {
_ws_geom = sh ("-c", "xdotool getactivewindow getwindowgeometry --shell 2>/dev/null | grep -E 'WIDTH|HEIGHT' || true")
_ws_tw = echo (_ws_geom) | grep ("WIDTH") | cut ("-d=", "-f2")
_ws_th = echo (_ws_geom) | grep ("HEIGHT") | cut ("-d=", "-f2")
this.term_width = trim (_ws_tw)
this.term_height = trim (_ws_th)
}
}
}
func get_image_size (cfg: Config) {
# Get terminal size in cells
_is_size = sh ("-c", "stty size 2>/dev/null || true")
_is_parts = _is_size.split (" ")
_is_lines = "24"
_is_columns = "80"
if _is_parts.len () >= 2 {
_is_lines = _is_parts.get (0)
_is_columns = _is_parts.get (1)
}
_is_tw = this.term_width
_is_th = this.term_height
if _is_tw == "" || _is_tw == "0" {
_is_tw = "800"
}
if _is_th == "" || _is_th == "0" {
_is_th = "600"
}
# Font size — native arithmetic
this.font_width = _is_tw / _is_columns
this.font_height = _is_th / _is_lines
if this.font_width == "0" { this.font_width = "8" }
if this.font_height == "0" { this.font_height = "16" }
when cfg.image_size {
"auto" {
this.width = _is_columns * this.font_width / 2
this.height = this.width
}
"none" {
this.width = _is_tw
this.height = _is_th
}
else {
_is_clean = cfg.image_size.replace ("px", "")
this.width = _is_clean
this.height = _is_clean
}
}
}
func make_thumbnail (cfg: Config) {
if this.image == "" {
return
}
fs.mkdir (this.thumbnail_dir)
_mk_name_raw = cfg.crop_mode .. "-" .. cfg.crop_offset .. "-" .. this.width .. "-" .. this.height .. "-" .. this.image
img_name = _mk_name_raw.replace ("/", "_")
img_name = trim (img_name)
thumb_path = this.thumbnail_dir .. "/" .. img_name .. ".jpg"
if !fs.exists (thumb_path) {
_mk_img = this.image
_mk_size = this.width .. "x" .. this.height
_mk_crop_size = this.width .. "x" .. this.height .. "+0+0"
_mk_fill_size = this.width .. "x" .. this.height .. "^"
when cfg.crop_mode {
"fit" {
sh ("-c", "convert -background none \"{_mk_img}\" -trim +repage -scale \"{_mk_size}\" \"{thumb_path}\" 2>/dev/null || true")
}
"fill" {
sh ("-c", "convert -background none \"{_mk_img}\" -trim +repage -scale \"{_mk_fill_size}\" -extent \"{_mk_size}\" \"{thumb_path}\" 2>/dev/null || true")
}
"none" {
cp (_mk_img, thumb_path)
}
else {
_mk_grav = cfg.crop_offset
sh ("-c", "convert -background none \"{_mk_img}\" -strip -gravity \"{_mk_grav}\" -crop \"{_mk_crop_size}\" -scale \"{_mk_size}\" \"{thumb_path}\" 2>/dev/null || true")
}
}
}
this.image = thumb_path
}
func display (cfg: Config) {
if this.image == "" {
return
}
fw = this.font_width
fh = this.font_height
w = this.width
h = this.height
img = this.image
xoff = cfg.xoffset
yoff = cfg.yoffset
# Pre-compute cell dimensions — native arithmetic
_d_cw = w / fw
_d_ch = h / fh
when cfg.image_backend {
"kitty" {
_kit_place = _d_cw .. "x" .. _d_ch .. "@" .. xoff .. "x" .. yoff
kitty ("+kitten", "icat", "--align", "left", "--place", _kit_place, img)
}
"sixel" {
img2sixel ("-w", w, "-h", h, img)
}
"catimg" {
_d_catimg_w = w * cfg.catimg_size / fw
catimg ("-w", _d_catimg_w, "-r", cfg.catimg_size, img)
}
"chafa" {
_chafa_size = _d_cw .. "x" .. _d_ch
chafa ("--stretch", "--size=" .. _chafa_size, img)
}
"jp2a" {
jp2a ("--colors", "--width=" .. _d_cw, "--height=" .. _d_ch, img)
}
"pixterm" {
pixterm ("-tc", _d_cw, "-tr", _d_ch, img)
}
"viu" {
viu ("-t", "-w", _d_cw, "-h", _d_ch, img)
}
"w3m" {
_d_w3m_path = this.w3m_img_path
if _d_w3m_path != "" {
_w3m_coords = "0;1;" .. xoff .. ";" .. yoff .. ";" .. w .. ";" .. h .. ";;;;;" .. img
sh ("-c", "printf '%b\\n%s;\\n%s\\n' \"{_w3m_coords}\" 3 4 | \"{_d_w3m_path}\" -bg \"{cfg.background_color}\" 2>/dev/null || true")
}
}
"caca" {
img2txt ("-W", _d_cw, "-H", _d_ch, "--gamma=0.6", img)
}
"iterm2" {
sh ("-c", "printf '\\e]1337;File=width=%spx;height=%spx;inline=1:%s\\a\\n' \"{w}\" \"{h}\" \"$(base64 < \"{img}\")\" 2>/dev/null || true")
}
"tycat" {
_tycat_size = w .. "x" .. h
tycat ("-g", _tycat_size, img)
}
}
}
func get_text_padding (cfg: Config) {
if cfg.image_backend == "ascii" || cfg.image_backend == "off" {
return "0"
}
if this.image == "" || this.width == "0" {
return "0"
}
_gtp_pad = (this.width + cfg.xoffset) / this.font_width + cfg.gap
return _gtp_pad
}
}
# neofetch-ct: info.ct
# SystemInfo class collects all system information via detectors
class SystemInfo {
# OS info
os = ""
distro = ""
kernel = ""
model = ""
# Hardware
cpu = ""
gpu = ""
memory = ""
disk = ""
battery = ""
# Desktop
de = ""
de_version = ""
wm = ""
wm_theme = ""
theme = ""
icons = ""
font = ""
term = ""
term_font = ""
resolution = ""
# Network
local_ip = ""
public_ip = ""
# Misc
uptime = ""
packages = ""
shell = ""
song = ""
users = ""
locale = ""
gpu_driver = ""
# Title
title = ""
hostname = ""
user = ""
# Internal
kernel_name = ""
kernel_version = ""
kernel_machine = ""
func detect_title (cfg: Config) {
this.user = env.USER
if this.user == "" {
this.user = whoami ()
}
this.user = trim (this.user)
if cfg.title_fqdn == "on" {
this.hostname = hostname ("-f")
} else {
this.hostname = hostname ()
}
this.hostname = trim (this.hostname)
this.title = this.user .. "@" .. this.hostname
}
func detect_all (cfg: Config) {
# OS detection
os_det = new OsDetector ()
os_det.cache_uname ()
this.os = os_det.detect ()
this.kernel_name = os_det.kernel_name
this.kernel_version = os_det.kernel_version
this.kernel_machine = os_det.kernel_machine
this.distro = os_det.detect_distro (cfg)
# Title
this.detect_title (cfg)
# Hardware
hw_det = new HardwareDetector ()
this.model = hw_det.detect_model (this.os, this.kernel_name)
this.cpu = hw_det.detect_cpu (this.os, this.kernel_machine, cfg)
this.gpu = hw_det.detect_gpu (this.os, this.kernel_name, cfg)
this.memory = hw_det.detect_memory (this.os, this.kernel_name, cfg)
this.disk = hw_det.detect_disk (this.os, cfg)
this.battery = hw_det.detect_battery (this.os)
# Desktop
desk_det = new DesktopDetector ()
this.de = desk_det.detect_de (this.os)
this.de_version = desk_det.detect_de_version (this.de)
this.wm = desk_det.detect_wm (this.os, this.kernel_name)
this.wm_theme = desk_det.detect_wm_theme (this.wm, this.de)
this.theme = desk_det.detect_theme (this.os, this.de, cfg)
this.icons = desk_det.detect_icons (this.os, this.de, cfg)
this.term = desk_det.detect_term ()
this.term_font = desk_det.detect_term_font (this.term)
this.resolution = desk_det.detect_resolution (this.os)
this.font = desk_det.detect_font (this.os, this.de)
# Network
net_det = new NetworkDetector ()
this.local_ip = net_det.detect_local_ip (this.os)
this.public_ip = net_det.detect_public_ip (cfg)
# Misc
misc_det = new MiscDetector ()
this.kernel = misc_det.detect_kernel (this.os, this.kernel_name, this.kernel_version, cfg)
this.uptime = misc_det.detect_uptime (this.os, cfg)
this.packages = misc_det.detect_packages (this.os, this.kernel_name, cfg)
this.shell = misc_det.detect_shell (cfg)
this.song = misc_det.detect_song (this.os, cfg)
this.users = misc_det.detect_users ()
this.locale = misc_det.detect_locale ()
this.gpu_driver = misc_det.detect_gpu_driver (this.os)
}
func get_de_string (cfg: Config) {
result = this.de
if cfg.de_version == "on" && this.de_version != "" {
result = result .. " " .. this.de_version
}
return result
}
}
# Logo: AIX
class Logo_aix {
colors = "2 7 7 7 7 7"
art = "\{c1\} `:+ssssossossss+-`
.oys///oyhddddhyo///sy+.
/yo:+hNNNNNNNNNNNNNNNNh+:oy/
:h/:yNNNNNNNNNNNNNNNNNNNNNNy-+h:
`ys.yNNNNNNNNNNNNNNNNNNNNNNNNNNy.ys
`h+-mNNNNNNNNNNNNNNNNNNNNNNNNNNNNm-oh
h+-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.oy
/d`mNNNNNNN/::mNNNd::m+:/dNNNo::dNNNd`m:
h//NNNNNNN: . .NNNh mNo od. -dNNNNN:+y
N.sNNNNNN+ -N/ -NNh mNNd. sNNNNNNNo-m
N.sNNNNNs +oo /Nh mNNs` ` /mNNNNNNo-m
h//NNNNh ossss` +h md- .hm/ `sNNNNN:+y
:d`mNNN+/yNNNNNd//y//h//oNNNNy//sNNNd`m-
yo-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNm.ss
`h+-mNNNNNNNNNNNNNNNNNNNNNNNNNNNNm-oy
sy.yNNNNNNNNNNNNNNNNNNNNNNNNNNs.yo
:h+-yNNNNNNNNNNNNNNNNNNNNNNs-oh-
:ys:/yNNNNNNNNNNNNNNNmy/:sy:
.+ys///osyhhhhys+///sy+.
-/osssossossso/-"
}
# Logo: AlmaLinux
class Logo_almalinux {
colors = "1 3 4 2 6 6"
art = "\{c1\} 'c:.
\{c1\} lkkkx, .. \{c2\}.. ,cc,
\{c1\} okkkk:ckkx' \{c2\}.lxkkx.okkkkd
\{c1\} .:llcokkx' \{c2\}:kkkxkko:xkkd,
\{c1\} .xkkkkdood: \{c2\};kx, .lkxlll;
\{c1\} xkkx. \{c2\}xk' xkkkkk:
\{c1\} 'xkx. \{c2\}xd .....,.
\{c3\} .. \{c1\}:xkl' \{c2\}:c ..''..
\{c3\} .dkx' \{c1\}.:ldl:'. \{c2\}' \{c4\}':lollldkkxo;
\{c3\} .''lkkko' \{c4\}ckkkx.
\{c3\}'xkkkd:kkd. .. \{c5\};' \{c4\}:kkxo.
\{c3\},xkkkd;kk' ,d; \{c5\}ld. \{c4\}':dkd::cc,
\{c3\} .,,.;xkko'.';lxo. \{c5\}dx, \{c4\}:kkk'xkkkkc
\{c3\} 'dkkkkkxo:. \{c5\};kx \{c4\}.kkk:;xkkd.
\{c3\} ..... \{c5\}.;dk:. \{c5\}lkk. \{c4\}:;,
\{c5\}:kkkkkkkdoxkkx
,c,,;;;:xkkd.
;kkkkl...
;kkkkl
,od;"
}
# Logo: Alpine
class Logo_alpine {
colors = "4 5 7 6 6 6"
art = "\{c1\} .hddddddddddddddddddddddh.
:dddddddddddddddddddddddddd:
/dddddddddddddddddddddddddddd/
+dddddddddddddddddddddddddddddd+
`sdddddddddddddddddddddddddddddddds`
`ydddddddddddd++hdddddddddddddddddddy`
.hddddddddddd+` `+ddddh:-sdddddddddddh.
hdddddddddd+` `+y: .sddddddddddh
ddddddddh+` `//` `.` -sddddddddd
ddddddh+` `/hddh/` `:s- -sddddddd
ddddh+` `/+/dddddh/` `+s- -sddddd
ddd+` `/o` :dddddddh/` `oy- .yddd
hdddyo+ohddyosdddddddddho+oydddy++ohdddh
.hddddddddddddddddddddddddddddddddddddh.
`yddddddddddddddddddddddddddddddddddy`
`sdddddddddddddddddddddddddddddddds`
+dddddddddddddddddddddddddddddd+
/dddddddddddddddddddddddddddd/
:dddddddddddddddddddddddddd:
.hddddddddddddddddddddddh."
}
# Logo: alpine_small
class Logo_alpine_small {
colors = "4 7 7 7 7 7"
art = "\{c1\} /\\\\ /\\\\
/\{c2\}/ \{c1\}\\\\ \\\\
/\{c2\}/ \{c1\}\\\\ \\\\
/\{c2\}// \{c1\}\\\\ \\\\
\{c2\}// \{c1\}\\\\ \\\\
\\\\"
}
# Logo: Alter
class Logo_alter {
colors = "6 6 6 6 6 6"
art = "\{c1\} %,
^WWWw
'wwwwww
!wwwwwwww
#`wwwwwwwww
@wwwwwwwwwwww
wwwwwwwwwwwwwww
wwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwww,
w~1i.wwwwwwwwwwwwwwwww,
3~:~1lli.wwwwwwwwwwwwwwww.
:~~:~?ttttzwwwwwwwwwwwwwwww
#<~:~~~~?llllltO-.wwwwwwwwwww
#~:~~:~:~~?ltlltlttO-.wwwwwwwww
@~:~~:~:~:~~(zttlltltlOda.wwwwwww
@~:~~: ~:~~:~:(zltlltlO a,wwwwww
8~~:~~:~~~~:~~~~_1ltltu ,www
5~~:~~:~~:~~:~~:~~~_1ltq N,,
g~:~~:~~~:~~:~~:~:~~~~1q N,"
}
# Logo: Amazon
class Logo_amazon {
colors = "3 7 7 7 7 7"
art = "\{c1\} `-/oydNNdyo:.`
`.:+shmMMMMMMMMMMMMMMmhs+:.`
-+hNNMMMMMMMMMMMMMMMMMMMMMMNNho-
.`` -/+shmNNMMMMMMNNmhs+/- ``.
dNmhs+:. `.:/oo/:.` .:+shmNd
dMMMMMMMNdhs+:.. ..:+shdNMMMMMMMd
dMMMMMMMMMMMMMMNds odNMMMMMMMMMMMMMMd
dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
.:+ydNMMMMMMMMMMMh yMMMMMMMMMMMNdy+:.
`.:+shNMMMMMh yMMMMMNhs+:``
`-+shy shs+:`"
}
# Logo: Anarchy
class Logo_anarchy {
colors = "7 4 4 4 4 4"
art = " \{c2\}..\{c1\}
\{c2\}..\{c1\}
\{c2\}:..\{c1\}
\{c2\}:+++.\{c1\}
.:::++\{c2\}++++\{c1\}+::.
.:+######\{c2\}++++\{c1\}######+:.
.+#########\{c2\}+++++\{c1\}##########:.
.+##########\{c2\}+++++++\{c1\}##\{c2\}+\{c1\}#########+.
+###########\{c2\}+++++++++\{c1\}############:
+##########\{c2\}++++++\{c1\}#\{c2\}++++\{c1\}#\{c2\}+\{c1\}###########+
+###########\{c2\}+++++\{c1\}###\{c2\}++++\{c1\}#\{c2\}+\{c1\}###########+
:##########\{c2\}+\{c1\}#\{c2\}++++\{c1\}####\{c2\}++++\{c1\}#\{c2\}+\{c1\}############:
###########\{c2\}+++++\{c1\}#####\{c2\}+++++\{c1\}#\{c2\}+\{c1\}###\{c2\}++\{c1\}######+
.##########\{c2\}++++++\{c1\}#####\{c2\}++++++++++++\{c1\}#######.
.##########\{c2\}+++++++++++++++++++\{c1\}###########.
#####\{c2\}++++++++++++++\{c1\}###\{c2\}++++++++\{c1\}#########+
:###\{c2\}++++++++++\{c1\}#########\{c2\}+++++++\{c1\}#########:
+######\{c2\}+++++\{c1\}##########\{c2\}++++++++\{c1\}#######+
+####\{c2\}+++++\{c1\}###########\{c2\}+++++++++\{c1\}#####+
:##\{c2\}++++++\{c1\}############\{c2\}++++++++++\{c1\}##:
.\{c2\}++++++\{c1\}#############\{c2\}++++++++++\{c1\}+.
:\{c2\}++++\{c1\}###############\{c2\}+++++++\{c1\}::
.\{c2\}++. .:+\{c1\}##############\{c2\}+++++++\{c1\}..
\{c2\}.:.\{c1\} ..::++++++::..:\{c2\}++++\{c1\}+.
\{c2\}.\{c1\} \{c2\}.:+++\{c1\}.
\{c2\}.:\{c1\}:
\{c2\}..\{c1\}
\{c2\}..\{c1\}"
}
# Logo: Android
class Logo_android {
colors = "2 7 7 7 7 7"
art = "\{c1\} -o o-
+hydNNNNdyh+
+mMMMMMMMMMMMMm+
`dMM\{c2\}m:\{c1\}NMMMMMMN\{c2\}:m\{c1\}MMd`
hMMMMMMMMMMMMMMMMMMh
.. yyyyyyyyyyyyyyyyyyyy ..
.mMMm`MMMMMMMMMMMMMMMMMMMM`mMMm.
:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:
:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:
:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:
:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:
-MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM-
+yy+ MMMMMMMMMMMMMMMMMMMM +yy+
mMMMMMMMMMMMMMMMMMMm
`/++MMMMh++hMMMM++/`
MMMMo oMMMM
MMMMo oMMMM
oNMm- -mMNs"
}
# Logo: android_small
class Logo_android_small {
colors = "2 7 7 7 7 7"
art = "\{c1\} ;, ,;
';,.-----.,;'
,' ',
/ O O \\\\
| |
'-----------------'"
}
# Logo: Antergos
class Logo_antergos {
colors = "4 6 6 6 6 6"
art = "\{c2\} `.-/::/-``
.-/osssssssso/.
:osyysssssssyyys+-
`.+yyyysssssssssyyyyy+.
`/syyyyyssssssssssyyyyys-`
`/yhyyyyysss\{c1\}++\{c2\}ssosyyyyhhy/`
.ohhhyyyys\{c1\}o++/+o\{c2\}so\{c1\}+\{c2\}syy\{c1\}+\{c2\}shhhho.
.shhhhys\{c1\}oo++//+\{c2\}sss\{c1\}+++\{c2\}yyy\{c1\}+s\{c2\}hhhhs.
-yhhhhs\{c1\}+++++++o\{c2\}ssso\{c1\}+++\{c2\}yyy\{c1\}s+o\{c2\}hhddy:
-yddhhy\{c1\}o+++++o\{c2\}syyss\{c1\}++++\{c2\}yyy\{c1\}yooy\{c2\}hdddy-
.yddddhs\{c1\}o++o\{c2\}syyyyys\{c1\}+++++\{c2\}yyhh\{c1\}sos\{c2\}hddddy`
`odddddhyosyhyyyyyy\{c1\}++++++\{c2\}yhhhyosddddddo
.dmdddddhhhhhhhyyyo\{c1\}+++++\{c2\}shhhhhohddddmmh.
ddmmdddddhhhhhhhso\{c1\}++++++\{c2\}yhhhhhhdddddmmdy
dmmmdddddddhhhyso\{c1\}++++++\{c2\}shhhhhddddddmmmmh
-dmmmdddddddhhys\{c1\}o++++o\{c2\}shhhhdddddddmmmmd-
.smmmmddddddddhhhhhhhhhdddddddddmmmms.
`+ydmmmdddddddddddddddddddmmmmdy/.
`.:+ooyyddddddddddddyyso+:.`"
}
# Logo: antiX
class Logo_antix {
colors = "1 7 3 3 3 3"
art = "\{c1\}
\\
, - ~ ^ ~ - \\ /
, ' \\ ' , /
, \\ '/
, \\ / ,
,___, \\/ ,
/ | _ _ _|_ o /\\ ,
|, | / |/ | | | / \\ ,
\\,_/\\_/ | |_/|_/|_/_/ \\,
, / ,\\
, / , ' \\
' - , _ _ _ , '"
}
# Logo: AOSC OS
class Logo_aosc_os {
colors = "4 7 1 1 1 1"
art = "\{c2\} .:+syhhhhys+:.
.ohNMMMMMMMMMMMMMMNho.
`+mMMMMMMMMMMmdmNMMMMMMMMm+`
+NMMMMMMMMMMMM/ `./smMMMMMN+
.mMMMMMMMMMMMMMMo -yMMMMMm.
:NMMMMMMMMMMMMMMMs .hMMMMN:
.NMMMMhmMMMMMMMMMMm+/- oMMMMN.
dMMMMs ./ymMMMMMMMMMMNy. sMMMMd
-MMMMN` oMMMMMMMMMMMN: `NMMMM-
/MMMMh NMMMMMMMMMMMMm hMMMM/
/MMMMh NMMMMMMMMMMMMm hMMMM/
-MMMMN` :MMMMMMMMMMMMy. `NMMMM-
dMMMMs .yNMMMMMMMMMMMNy/. sMMMMd
.NMMMMo -/+sMMMMMMMMMMMmMMMMN.
:NMMMMh. .MMMMMMMMMMMMMMMN:
.mMMMMMy- NMMMMMMMMMMMMMm.
+NMMMMMms/.` mMMMMMMMMMMMN+
`+mMMMMMMMMNmddMMMMMMMMMMm+`
.ohNMMMMMMMMMMMMMMNho.
.:+syhhhhys+:."
}
# Logo: AOSC OS/Retro
class Logo_aosc_os_retro {
colors = "4 7 1 3 3 3"
art = "\{c2\} .........
...................
.....................\{c1\}################\{c2\}
.............. ....\{c1\}################\{c2\}
.............. ...\{c1\}################\{c2\}
............. ..\{c1\}****************\{c2\}
............ . .\{c1\}****************\{c2\}
........... ... \{c1\}................\{c2\}
.......... ..... \{c1\}...............\{c2\}
......... ....... ...
.\{c3\}...... \{c2\}.
\{c3\}..... .....\{c2\}.... \{c4\}...........
\{c3\}.... ......\{c2\}. \{c4\}...........
\{c3\}... ....... \{c4\}...........
\{c3\}................ \{c4\}***********
\{c3\}................ \{c4\}###########
\{c3\}****************
\{c3\}################"
}
# Logo: Aperio GNU/Linux
class Logo_aperio_gnu_linux {
colors = "255 255 255 255 255 255"
art = "\{c2\}
_.._ _ ._.. _
(_][_)(/,[ |(_)
| GNU/Linux"
}
# Logo: Apricity
class Logo_apricity {
colors = "4 7 1 1 1 1"
art = "\{c2\} ./o-
``...`` `:. -/:
`-+ymNMMMMMNmho-` :sdNNm/
`+dMMMMMMMMMMMMMMMmo` sh:.:::-
/mMMMMMMMMMMMMMMMMMMMm/`sNd/
oMMMMMMMMMMMMMMMMMMMMMMMs -`
:MMMMMMMMMMMMMMMMMMMMMMMMM/
NMMMMMMMMMMMMMMMMMMMMMMMMMd
MMMMMMMmdmMMMMMMMMMMMMMMMMd
MMMMMMy` .mMMMMMMMMMMMmho:`
MMMMMMNo/sMMMMMMMNdy+-.`-/
MMMMMMMMMMMMNdy+:.`.:ohmm:
MMMMMMMmhs+-.`.:+ymNMMMy.
MMMMMM/`.-/ohmNMMMMMMy-
MMMMMMNmNNMMMMMMMMmo.
MMMMMMMMMMMMMMMms:`
MMMMMMMMMMNds/.
dhhyys+/-`"
}
# Logo: Arch
class Logo_arch {
colors = "6 6 7 1 1 1"
art = "\{c1\} -`
.o+`
`ooo/
`+oooo:
`+oooooo:
-+oooooo+:
`/:-:++oooo+:
`/++++/+++++++:
`/++++++++++++++:
`/+++o\{c2\}oooooooo\{c1\}oooo/`
\{c2\} \{c1\}./\{c2\}ooosssso++osssssso\{c1\}+`
\{c2\} .oossssso-````/ossssss+`
-osssssso. :ssssssso.
:osssssss/ osssso+++.
/ossssssss/ +ssssooo/-
`/ossssso+/:- -:/+osssso+-
`+sso+:-` `.-/+oso:
`++:. `-/+/
.` `/"
}
# Logo: arch_old
class Logo_arch_old {
colors = "6 7 1 1 1 1"
art = "\{c1\} __
_=(SDGJT=_
_GTDJHGGFCVS)
,GTDJGGDTDFBGX0
\{c1\} JDJDIJHRORVFSBSVL\{c2\}-=+=,_
\{c1\} IJFDUFHJNXIXCDXDSV,\{c2\} \"DEBL
\{c1\} [LKDSDJTDU=OUSCSBFLD.\{c2\} '?ZWX,
\{c1\} ,LMDSDSWH' `DCBOSI\{c2\} DRDS],
\{c1\} SDDFDFH' !YEWD,\{c2\} )HDROD
\{c1\} !KMDOCG &GSU|\{c2\}\\_GFHRGO\\'
\{c1\} HKLSGP'\{c2\} __\{c1\}\\TKM0\{c2\}\\GHRBV)'
\{c1\}JSNRVW'\{c2\} __+MNAEC\{c1\}\\IOI,\{c2\}\\BN'
\{c1\}HELK['\{c2\} __,=OFFXCBGHC\{c1\}\\FD)
\{c1\}?KGHE \{c2\}\\_-#DASDFLSV='\{c1\} 'EF
'EHTI !H
`0F' '!"
}
# Logo: arch_small
class Logo_arch_small {
colors = "6 7 1 1 1 1"
art = "\{c1\} /\\\\
/ \\\\
/\\\\ \\\\
\{c2\} / \\\\
/ ,, \\\\
/ | | -\\\\
/_-'' ''-_\\\\"
}
# Logo: ArchBox
class Logo_archbox {
colors = "2 7 1 1 1 1"
art = "\{c1\} ...:+oh/:::..
..-/oshhhhhh` `::::-.
.:/ohhhhhhhhhhhh` `-::::.
.+shhhhhhhhhhhhhhhhh` `.::-.
/`-:+shhhhhhhhhhhhhh` .-/+shh
/ .:/ohhhhhhhhh` .:/ohhhhhhhh
/ `-:+shhh` ..:+shhhhhhhhhhhh
/ .:ohhhhhhhhhhhhhhhhhhh
/ `hhhhhhhhhhhhhhhhhhhh
/ `hhhhhhhhhhhhhhhhhhhh
/ `hhhhhhhhhhhhhhhhhhhh
/ `hhhhhhhhhhhhhhhhhhhh
/ .+o+ `hhhhhhhhhhhhhhhhhhhh
/ -hhhhh `hhhhhhhhhhhhhhhhhhhh
/ ohhhhho `hhhhhhhhhhhhhhhhhhhh
/:::+`hhhhoos` `hhhhhhhhhhhhhhhhhs+`
`--/:` /: `hhhhhhhhhhhho/-
-/:. `hhhhhhs+:-`
::::/ho/-`"
}
# Logo: Archcraft
class Logo_archcraft {
colors = "6 6 7 1 1 1"
art = "\{c1\} -m:
:NMM+ .+
+MMMMMo -NMy
sMMMMMMMy -MMMMh`
yMMMMMMMMMd` oMMMMd`
`dMMMMMMMMMMMm. /MMMMm-
.mMMMMMm-dMMMMMN- :NMMMN:
-NMMMMMd` yMMMMMN: .mMMMM/
:NMMMMMy sMMMMMM+ `dMMMMo
+MMMMMMs +MMMMMMs `hMMMMy
oMMMMMMMds- :NMMMMMy sMMMMh`
yMMMMMNoydMMmo` -NMMMMMd` +MMMMd.
`dMMMMMN- `:yNNs` .mMMMMMm. /MMMMm-
.mMMMMMm. :hN/ `dMMMMMN- -NMMMN:
-NMMMMMd` -hh` `yMMMMMN: .mMMMM/
:NMMMMMy `s` :h. oMMMMMM+ `-----
+MMMMMMo .dMm. `o. +MMMMMMo
sMMMMMM+ .mMMMN: :` :NMMMMMy"
}
# Logo: ARCHlabs
class Logo_archlabs {
colors = "6 6 7 1 1 1"
art = "\{c1\} 'c'
'kKk,
.dKKKx.
.oKXKXKd.
.l0XXXXKKo.
c0KXXXXKX0l.
:0XKKOxxOKX0l.
:OXKOc. .c0XX0l.
:OK0o. \{c4\}...\{c1\}'dKKX0l.
:OX0c \{c4\};xOx'\{c1\}'dKXX0l.
:0KKo.\{c4\}.o0XXKd'.\{c1\}lKXX0l.
c0XKd.\{c4\}.oKXXXXKd..\{c1\}oKKX0l.
.c0XKk;\{c4\}.l0K0OO0XKd..\{c1\}oKXXKo.
.l0XXXk:\{c4\},dKx,.'l0XKo.\{c1\}.kXXXKo.
.o0XXXX0d,\{c4\}:x; .oKKx'\{c1\}.dXKXXKd.
.oKXXXXKK0c.\{c4\};. :00c'\{c1\}cOXXXXXKd.
.dKXXXXXXXXk,\{c4\}. cKx'\{c1\}'xKXXXXXXKx'
'xKXXXXK0kdl:. \{c4\}.ok; \{c1\}.cdk0KKXXXKx'
'xKK0koc,.. \{c4\}'c, \{c1\} ..,cok0KKk,
,xko:'. \{c4\}.. \{c1\} .':okx;
.,'. .',."
}
# Logo: ArchMerge
class Logo_archmerge {
colors = "6 6 7 1 1 1"
art = "\{c1\} y:
sMN-
+MMMm`
/MMMMMd`
:NMMMMMMy
-NMMMMMMMMs
.NMMMMMMMMMM+
.mMMMMMMMMMMMM+
oNMMMMMMMMMMMMM+
`+:-+NMMMMMMMMMMMM+
.sNMNhNMMMMMMMMMMMM/
`hho/sNMMMMMMMMMMMMMMM/
`.`omMMmMMMMMMMMMMMMMMMM+
.mMNdshMMMMd+::oNMMMMMMMMMo
.mMMMMMMMMM+ `yMMMMMMMMMs
.NMMMMMMMMM/ yMMMMMMMMMy
-NMMMMMMMMMh `mNMMMMMMMMd`
/NMMMNds+:.` `-/oymMMMm.
+Mmy/. `:smN:
/+. -o."
}
# Logo: ArchStrike
class Logo_archstrike {
colors = "8 6 6 6 6 6"
art = "\{c1\}                   *   
                  **.
                 ****
                ******
                *******
              ** *******
             **** *******
            \{c1\}****\{c2\}_____\{c1\}***\{c2\}/\{c1\}*
           ***\{c2\}/\{c1\}*******\{c2\}//\{c1\}***
          **\{c2\}/\{c1\}********\{c2\}///\{c1\}*\{c2\}/\{c1\}**
         **\{c2\}/\{c1\}*******\{c2\}////\{c1\}***\{c2\}/\{c1\}**
        **\{c2\}/\{c1\}****\{c2\}//////.,\{c1\}****\{c2\}/\{c1\}**
       ***\{c2\}/\{c1\}*****\{c2\}/////////\{c1\}**\{c2\}/\{c1\}***
      ****\{c2\}/\{c1\}****    \{c2\}/////\{c1\}***\{c2\}/\{c1\}****
     ******\{c2\}/\{c1\}*** \{c2\}////   \{c1\}**\{c2\}/\{c1\}******
    ********\{c2\}/\{c1\}* \{c2\}///      \{c1\}*\{c2\}/\{c1\}********
  ,******     \{c2\}// ______ /    \{c1\}******,"
}
# Logo: ArcoLinux
class Logo_arcolinux {
colors = "7 4 4 4 4 4"
art = "\{c2\} /-
ooo:
yoooo/
yooooooo
yooooooooo
yooooooooooo
.yooooooooooooo
.oooooooooooooooo
.oooooooarcoooooooo
.ooooooooo-oooooooooo
.ooooooooo- oooooooooo
:ooooooooo. :ooooooooo
:ooooooooo. :ooooooooo
:oooarcooo .oooarcooo
:ooooooooy .ooooooooo
:ooooooooo \{c1\}/ooooooooooooooooooo\{c2\}
:ooooooooo \{c1\}.-ooooooooooooooooo.\{c2\}
ooooooooo- \{c1\}-ooooooooooooo.\{c2\}
ooooooooo- \{c1\}.-oooooooooo.\{c2\}
ooooooooo. \{c1\}-ooooooooo\{c2\}"
}
# Logo: arcolinux_small
class Logo_arcolinux_small {
colors = "7 4 4 4 4 4"
art = "\{c2\} A
ooo
ooooo
ooooooo
ooooooooo
ooooo ooooo
ooooo ooooo
ooooo ooooo
ooooo \{c1\}<oooooooo>\{c2\}
ooooo \{c1\}<oooooo>\{c2\}
ooooo \{c1\}<oooo>\{c2\}"
}
# Logo: Artix
class Logo_artix {
colors = "6 6 7 1 1 1"
art = "\{c1\} '
'o'
'ooo'
'ooxoo'
'ooxxxoo'
'oookkxxoo'
'oiioxkkxxoo'
':;:iiiioxxxoo'
`'.;::ioxxoo'
'-. `':;jiooo'
'oooio-.. `'i:io'
'ooooxxxxoio:,. `'-;'
'ooooxxxxxkkxoooIi:-. `'
'ooooxxxxxkkkkxoiiiiiji'
'ooooxxxxxkxxoiiii:'` .i'
'ooooxxxxxoi:::'` .;ioxo'
'ooooxooi::'` .:iiixkxxo'
'ooooi:'` `'';ioxxo'
'i:'` '':io'
'` `'"
}
# Logo: artix_small
class Logo_artix_small {
colors = "6 6 7 1 1 1"
art = "\{c1\} /\\\\
/ \\\\
/`'.,\\\\
/ ',
/ ,`\\\\
/ ,.'`. \\\\
/.,'` `'.\\\\"
}
# Logo: Arya
class Logo_arya {
colors = "2 1 1 1 1 1"
art = "\{c1\} `oyyy/\{c2\}-yyyyyy+
\{c1\} -syyyy/\{c2\}-yyyyyy+
\{c1\} .syyyyy/\{c2\}-yyyyyy+
\{c1\} :yyyyyy/\{c2\}-yyyyyy+
\{c1\} `/ :yyyyyy/\{c2\}-yyyyyy+
\{c1\} .+s :yyyyyy/\{c2\}-yyyyyy+
\{c1\} .oys :yyyyyy/\{c2\}-yyyyyy+
\{c1\} -oyys :yyyyyy/\{c2\}-yyyyyy+
\{c1\} :syyys :yyyyyy/\{c2\}-yyyyyy+
\{c1\} /syyyys :yyyyyy/\{c2\}-yyyyyy+
\{c1\} +yyyyyys :yyyyyy/\{c2\}-yyyyyy+
\{c1\} .oyyyyyyo. :yyyyyy/\{c2\}-yyyyyy+ ---------
\{c1\} .syyyyyy+` :yyyyyy/\{c2\}-yyyyy+-+syyyyyyyy
\{c1\} -syyyyyy/ :yyyyyy/\{c2\}-yyys:.syyyyyyyyyy
\{c1\}:syyyyyy/ :yyyyyy/\{c2\}-yyo.:syyyyyyyyyyy"
}
# Logo: AsteroidOS
class Logo_asteroidos {
colors = "160 208 202 214 214 214"
art = "\{c1\} ***
\{c1\} *****
\{c1\} **********
\{c1\} ***************
\{c1\} *///****////****////.
\{c2\} (/////// /////// ///////(
\{c2\} /(((((//* //, //((((((.
\{c2\} ((((((((((( ((( ((((((((
\{c2\} *((((((((((((((((((((((( ((((((((
\{c3\} (((((#(((((((#((((( ((#(((((
\{c3\} (#(#(#####(#(#, ####(#(#
\{c3\} ######### ########
\{c3\} /######## ########
\{c4\} #######%#######
\{c4\} (#%%%%%%%#
\{c4\} %%%%%
\{c4\} %%%"
}
# Logo: Bedrock
class Logo_bedrock {
colors = "8 7 7 7 7 7"
art = "\{c1\}--------------------------------------
--------------------------------------
--------------------------------------
---\{c2\}\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\{c1\}-----------------------
----\{c2\}\\\\\\\\\\\\ \\\\\\\\\\\\\{c1\}----------------------
-----\{c2\}\\\\\\\\\\\\ \\\\\\\\\\\\\{c1\}---------------------
------\{c2\}\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\{c1\}------
-------\{c2\}\\\\\\\\\\\\ \\\\\\\\\\\\\{c1\}-----
--------\{c2\}\\\\\\\\\\\\ \\\\\\\\\\\\\{c1\}----
---------\{c2\}\\\\\\\\\\\\ ______ \\\\\\\\\\\\\{c1\}---
----------\{c2\}\\\\\\\\\\\\ ///\{c1\}---
-----------\{c2\}\\\\\\\\\\\\ ///\{c1\}----
------------\{c2\}\\\\\\\\\\\\ ///\{c1\}-----
-------------\{c2\}\\\\\\\\\\\\////////////////\{c1\}------
--------------------------------------
--------------------------------------
--------------------------------------"
}
# Logo: Bitrig
class Logo_bitrig {
colors = "2 7 7 7 7 7"
art = "\{c1\} `hMMMMN+
-MMo-dMd`
oMN- oMN`
yMd /NM:
.mMmyyhMMs
:NMMMhsmMh
+MNhNNoyMm-
hMd.-hMNMN:
mMmsssmMMMo
.MMdyyhNMMMd
oMN.`/dMddMN`
yMm/hNm+./MM/
.dMMMmo.``.NMo
:NMMMNmmmmmMMh
/MN/-------oNN:
hMd. .dMh
sm/ /ms"
}
# Logo: BlackArch
class Logo_blackarch {
colors = "1 1 0 1 1 1"
art = "\{c3\} 00
11
====\{c1\}
.\{c3\}//\{c1\}
`o\{c3\}//\{c1\}:
`+o\{c3\}//\{c1\}o:
`+oo\{c3\}//\{c1\}oo:
-+oo\{c3\}//\{c1\}oo+:
`/:-:+\{c3\}//\{c1\}ooo+:
`/+++++\{c3\}//\{c1\}+++++:
`/++++++\{c3\}//\{c1\}++++++:
`/+++o\{c2\}ooo\{c3\}//\{c2\}ooo\{c1\}oooo/`
\{c2\} \{c1\}./\{c2\}ooosssso\{c3\}//\{c2\}osssssso\{c1\}+`
\{c2\} .oossssso-`\{c3\}//\{c1\}`/ossssss+`
-osssssso. \{c3\}//\{c1\} :ssssssso.
:osssssss/ \{c3\}//\{c1\} osssso+++.
/ossssssss/ \{c3\}//\{c1\} +ssssooo/-
`/ossssso+/:- \{c3\}//\{c1\} -:/+osssso+-
`+sso+:-` \{c3\}//\{c1\} `.-/+oso:
`++:. \{c3\}//\{c1\} `-/+/
.` \{c3\}/\{c1\} `/"
}
# Logo: BLAG
class Logo_blag {
colors = "5 7 7 7 7 7"
art = "\{c1\} d
,MK:
xMMMX:
.NMMMMMX;
lMMMMMMMM0clodkO0KXWW:
KMMMMMMMMMMMMMMMMMMX'
.;d0NMMMMMMMMMMMMMMMMMMK.
.;dONMMMMMMMMMMMMMMMMMMMMMMx
'dKMMMMMMMMMMMMMMMMMMMMMMMMl
.:xKWMMMMMMMMMMMMMMMMMMM0.
.:xNMMMMMMMMMMMMMMMMMK.
lMMMMMMMMMMMMMMMMMMK.
,MMMMMMMMWkOXWMMMMMM0
.NMMMMMNd. `':ldko
OMMMK:
oWk,
;:"
}
# Logo: BlankOn
class Logo_blankon {
colors = "1 7 3 3 3 3"
art = "\{c2\} `./ohdNMMMMNmho+.` \{c1\} .+oo:`
\{c2\} -smMMMMMMMMMMMMMMMMmy-` \{c1\}`yyyyy+
\{c2\} `:dMMMMMMMMMMMMMMMMMMMMMMd/` \{c1\}`yyyyys
\{c2\} .hMMMMMMMNmhso/++symNMMMMMMMh- \{c1\}`yyyyys
\{c2\} -mMMMMMMms-` -omMMMMMMN-\{c1\}.yyyyys
\{c2\}.mMMMMMMy. .yMMMMMMm:\{c1\}yyyyys
\{c2\}sMMMMMMy `sMMMMMMh\{c1\}yyyyys
\{c2\}NMMMMMN: .NMMMMMN\{c1\}yyyyys
\{c2\}MMMMMMm. NMMMMMN\{c1\}yyyyys
\{c2\}hMMMMMM+ /MMMMMMN\{c1\}yyyyys
\{c2\}:NMMMMMN: :mMMMMMM+\{c1\}yyyyys
\{c2\} oMMMMMMNs- .sNMMMMMMs.\{c1\}yyyyys
\{c2\} +MMMMMMMNho:.` `.:ohNMMMMMMNo \{c1\}`yyyyys
\{c2\} -hMMMMMMMMNNNmmNNNMMMMMMMMh- \{c1\}`yyyyys
\{c2\} :yNMMMMMMMMMMMMMMMMMMNy:` \{c1\}`yyyyys
\{c2\} .:sdNMMMMMMMMMMNds/. \{c1\}`yyyyyo
\{c2\} `.:/++++/:.` \{c1\}:oys+."
}
# Logo: BlueLight
class Logo_bluelight {
colors = "7 4 4 4 4 4"
art = "\{c1\} oMMNMMMMMMMMMMMMMMMMMMMMMM
oMMMMMMMMMMMMMMMMMMMMMMMMM
oMMMMMMMMMMMMMMMMMMMMMMMMM
oMMMMMMMMMMMMMMMMMMMMMMMMM
-+++++++++++++++++++++++mM\{c2\}
```````````````````````..\{c1\}dM\{c2\}
```````````````````````....\{c1\}dM\{c2\}
```````````````````````......\{c1\}dM\{c2\}
```````````````````````........\{c1\}dM\{c2\}
```````````````````````..........\{c1\}dM\{c2\}
```````````````````````............\{c1\}dM\{c2\}
.::::::::::::::::::::::-..............\{c1\}dM\{c2\}
`-+yyyyyyyyyyyyyyyyyyyo............\{c1\}+mMM\{c2\}
-+yyyyyyyyyyyyyyyyo..........\{c1\}+mMMMM\{c2\}
./syyyyyyyyyyyyo........\{c1\}+mMMMMMM\{c2\}
./oyyyyyyyyyo......\{c1\}+mMMMMMMMM\{c2\}
omdyyyyyyo....\{c1\}+mMMMMMMMMMM\{c2\}
\{c1\}oMMM\{c2\}mdhyyo..\{c1\}+mMMMMMMMMMMMM
oNNNNNNm\{c2\}dso\{c1\}mMMMMMMMMMMMMMM"
}
# Logo: Bodhi
class Logo_bodhi {
colors = "7 11 2 2 2 2"
art = "\{c1\}| \{c2\},,mmKKKKKKKKWm,,
\{c1\}' \{c2\},aKKP\{c1\}LL**********|L*\{c2\}TKp,
\{c1\}t \{c2\}aKP\{c1\}L**``` ```**L\{c2\}*Kp
IX\{c1\}EL\{c3\}L,wwww, \{c1\}``*||\{c2\}Kp
,#P\{c1\}L|\{c3\}KKKpPP@IPPTKmw, \{c1\}`*||\{c2\}K
,K\{c1\}LL*\{c3\}\{KKKKKKPPb\$KPhpKKPKp \{c1\}`||\{c2\}K
#\{c1\}PL \{c3\}!KKKKKKPhKPPP\$KKEhKKKKp \{c1\}`||\{c2\}K
!H\{c1\}L* \{c3\}1KKKKKKKphKbPKKKKKK\$KKp \{c1\}`|I\{c2\}W
\$\{c1\}bL \{c3\}KKKKKKKKBQKhKbKKKKKKKK \{c1\}|I\{c2\}N
\$\{c1\}bL \{c3\}!KKKKKKKKKKNKKKKKKKPP` \{c1\}|I\{c2\}b
TH\{c1\}L* \{c3\}TKKKKKK##KKKN@KKKK^ \{c1\}|I\{c2\}M
K@\{c1\}L \{c3\}*KKKKKKKKKKKEKE5 \{c1\}||\{c2\}K
`NL\{c1\}L \{c3\}`KKKKKKKKKK\"```|L \{c1\}||\{c2\}#P
`K@\{c1\}LL \{c3\}`\"**\"` \{c1\}'. :||\{c2\}#P
Yp\{c1\}LL \{c1\}' |L\{c2\}\$M`
`Tp\{c1\}pLL, ,|||\{c2\}p'L
\"Kpp\{c1\}LL++,., ,,|||\$\{c2\}#K* \{c1\}'.
\{c2\}`\"MKWpppppppp#KM\"` \{c1\}`h,"
}
# Logo: bonsai
class Logo_bonsai {
colors = "6 2 3 3 3 3"
art = "\{c2\} ,####,
\{c2\}#######, \{c2\},#####,
\{c2\}#####',# \{c2\}'######
\{c2\}''###'\{c3\}';,,,'\{c2\}###'
\{c3\} ,; ''''
\{c3\} ;;; \{c2\},#####,
\{c3\} ;;;' ,,;\{c2\};;###
\{c3\} ';;;;''\{c2\}'####'
\{c3\} ;;;
\{c3\} ,.;;';'',,,
\{c3\} ' '
\{c1\} #
# O
##, ,##,',##, ,## ,#, ,
# # # # #''# #,, # # #
'#' '##' # # ,,# '##;, #"
}
# Logo: BSD
class Logo_bsd {
colors = "1 7 4 3 6 6"
art = "\{c1\} , ,
/( )`
\\ \\___ / |
/- _ `-/ '
(\{c2\}/\\/ \\ \{c1\}\\ /\\
\{c2\}/ / | ` \{c1\}\\
\{c3\}O O \{c2\}) \{c1\}/ |
\{c2\}`-^--'\{c1\}`< '
(_.) _ ) /
`.___/` /
`-----' /
\{c4\}<----. __ / __ \\
\{c4\}<----|====\{c1\}O)))\{c4\}==\{c1\}) \\) /\{c4\}====|
<----' \{c1\}`--' `.__,' \\
| |
\\ / /\\
\{c5\}______\{c1\}( (_ / \\______/
\{c5\},' ,-----' |
`--\{__________)"
}
# Logo: BunsenLabs
class Logo_bunsenlabs {
colors = "7 7 7 7 7 7"
art = "\{c1\} `++
-yMMs
`yMMMMN`
-NMMMMMMm.
:MMMMMMMMMN-
.NMMMMMMMMMMM/
yMMMMMMMMMMMMM/
`MMMMMMNMMMMMMMN.
-MMMMN+ /mMMMMMMy
-MMMm` `dMMMMMM
`MMN. .NMMMMM.
hMy yMMMMM`
-Mo +MMMMN
/o +MMMMs
+MMMN`
hMMM:
`NMM/
+MN:
mh.
-/"
}
# Logo: Calculate
class Logo_calculate {
colors = "7 3 3 3 3 3"
art = "\{c1\} ......
,,+++++++,.
.,,,....,,,\{c2\}+**+,,.\{c1\}
............,\{c2\}++++,,,\{c1\}
...............
......,,,........
.....+*#####+,,,*+.
.....,*###############,..,,,,,,..
......,*#################*..,,,,,..,,,..
.,,....*####################+***+,,,,...,++,
.,,..,..*#####################*,
,+,.+*..*#######################.
,+,,+*+..,########################*
.,++++++. ..+##**###################+
..... ..+##***#################*.
.,.*#*****##############*.
..,,*********#####****+.
\{c2\}.,++*****+++\{c1\}*****************\{c2\}+++++,.\{c1\}
\{c2\},++++++**+++++\{c1\}***********\{c2\}+++++++++,\{c1\}
\{c2\}.,,,,++++,.. .,,,,,.....,+++,.,,\{c1\}"
}
# Logo: Carbs
class Logo_carbs {
colors = "4 5 4 4 4 4"
art = "\{c2\} ..........
..,;:ccccccc:;'..
..,clllc:;;;;;:cllc,.
.,cllc,... ..';;'.
.;lol;.. ..
.,lol;.
.coo:.
.'lol,.
.,lol,.
.,lol,.
'col;.
.:ooc'.
.'col:.
.'cllc'.. .''.
..:lolc,'.......',cll,.
..;cllllccccclllc;'.
...',;;;;;;,,...
....."
}
# Logo: CBL-Mariner
class Logo_cbl_mariner {
colors = "6 6 6 6 6 6"
art = "\{c1\} .
:- .
:==. .=:
:===: -==:
:-===: .====:
:-====- -=====:
-====== :=======:
-======. .=========:
-======: -==========.
-======- -===========.
:======- :===========.
:=======. .-==========.
:=======: -==========.
:=======- :==========.
:=======- .-========-
:--------. :========-
..:::--=========-
..::---================-=-"
}
# Logo: CelOS
class Logo_celos {
colors = "4 6 0 5 5 5"
art = "
\{c4\} .,cmmmmmmmmmmmc,.
.,cmMMMMMMMMMMMMMMMMMMMMmc.
.cMMMMMMMMMMMMMMMMMMMMMMMMMMMmc.
.cMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMc.
,:MMM \{c3\}####################################\{c4\}
cMMMMMMmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmc.
.MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM.
.MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMc
\"******************************MMMMMMMMMMMMMc:
\{c3\}#################################### \{c4\}MMMMMMMMMMMMMc
\"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM:
\"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\"
'MMMMMMMMM*******************************:
\\\"MMMMMM \{c3\}#####################################
\{c4\}`:MMMMMMmmmmmmmmmmmmmmmmmmmmmmmmmmmmm;
`\"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\"
`\":MMMMMMMMMMMMMMMMMMMMMMMMM;'
`\":MMMMMMMMMMMMMMMMMMM:\"
\"************\""
}
# Logo: CentOS
class Logo_centos {
colors = "3 2 4 5 7 7"
art = "\{c1\} ..
.PLTJ.
<><><><>
\{c2\}KKSSV' 4KKK \{c1\}LJ\{c4\} KKKL.'VSSKK
\{c2\}KKV' 4KKKKK \{c1\}LJ\{c4\} KKKKAL 'VKK
\{c2\}V' ' 'VKKKK \{c1\}LJ\{c4\} KKKKV' ' 'V
\{c2\}.4MA.' 'VKK \{c1\}LJ\{c4\} KKV' '.4Mb.
\{c4\} . \{c2\}KKKKKA.' 'V \{c1\}LJ\{c4\} V' '.4KKKKK \{c3\}.
\{c4\} .4D \{c2\}KKKKKKKA.'' \{c1\}LJ\{c4\} ''.4KKKKKKK \{c3\}FA.
\{c4\}<QDD ++++++++++++ \{c3\}++++++++++++ GFD>
\{c4\} 'VD \{c3\}KKKKKKKK'.. \{c2\}LJ \{c1\}..'KKKKKKKK \{c3\}FV
\{c4\} ' \{c3\}VKKKKK'. .4 \{c2\}LJ \{c1\}K. .'KKKKKV \{c3\}'
\{c3\} 'VK'. .4KK \{c2\}LJ \{c1\}KKA. .'KV'
\{c3\}A. . .4KKKK \{c2\}LJ \{c1\}KKKKA. . .4
\{c3\}KKA. 'KKKKK \{c2\}LJ \{c1\}KKKKK' .4KK
\{c3\}KKSSA. VKKK \{c2\}LJ \{c1\}KKKV .4SSKK
\{c2\} <><><><>
'MKKM'
''"
}
# Logo: centos_small
class Logo_centos_small {
colors = "3 2 4 5 7 7"
art = "\{c2\} ____\{c1\}^\{c4\}____
\{c2\} |\\\\ \{c1\}|\{c4\} /|
\{c2\} | \\\\ \{c1\}|\{c4\} / |
\{c4\}<---- \{c3\}---->
\{c3\} | / \{c2\}|\{c1\} \\\\ |
\{c3\} |/__\{c2\}|\{c1\}__\\\\|
\{c2\} v"
}
# Logo: Chakra
class Logo_chakra {
colors = "4 5 7 6 6 6"
art = "\{c1\} _ _ _ \"kkkkkkkk.
,kkkkkkkk., 'kkkkkkkkk,
,kkkkkkkkkkkk., 'kkkkkkkkk.
,kkkkkkkkkkkkkkkk,'kkkkkkkk,
,kkkkkkkkkkkkkkkkkkk'kkkkkkk.
\"''\"''',;::,,\"''kkk''kkkkk; __
,kkkkkkkkkk, \"k''kkkkk' ,kkkk
,kkkkkkk' ., ' .: 'kkkk',kkkkkk
,kkkkkkkk'.k' , ,kkkk;kkkkkkkkk
,kkkkkkkk';kk 'k \"'k',kkkkkkkkkkkk
.kkkkkkkkk.kkkk.'kkkkkkkkkkkkkkkkkk'
;kkkkkkkk''kkkkkk;'kkkkkkkkkkkkk''
'kkkkkkk; 'kkkkkkkk.,\"\"''\"''\"\"
''kkkk; 'kkkkkkkkkk.,
';' 'kkkkkkkkkkkk.,
';kkkkkkkkkk'
';kkkkkk'
\"''\""
}
# Logo: ChaletOS
class Logo_chaletos {
colors = "4 7 1 1 1 1"
art = "\{c1\} `.//+osso+/:``
`/sdNNmhyssssydmNNdo:`
:hNmy+-` .-+hNNs-
/mMh/` `+:` `+dMd:
.hMd- -sNNMNo. /yyy /mMs`
-NM+ `/dMd/--omNh::dMM `yMd`
.NN+ .sNNs:/dMNy:/hNmo/s yMd`
hMs `/hNd+-smMMMMMMd+:omNy- `dMo
:NM. .omMy:/hNMMMMMMMMMMNy:/hMd+` :Md`
/Md` `sm+.omMMMMMMMMMMMMMMMMd/-sm+ .MN:
/Md` MMMMMMMMMMMMMMMMMMMN .MN:
:NN. MMMMMMm....--NMMMMMN -Mm.
`dMo MMMMMMd mMMMMMN hMs
-MN: MMMMMMd mMMMMMN oMm`
:NM: MMMMMMd mMMMMMN +Mm-
-mMy. mmmmmmh dmmmmmh -hMh.
oNNs- :yMm/
.+mMdo:` `:smMd/`
-ohNNmhsoo++osshmNNh+.
`./+syyhhyys+:``"
}
# Logo: Chapeau
class Logo_chapeau {
colors = "2 7 7 7 7 7"
art = "\{c1\} .-/-.
////////.
////////\{c2\}y+\{c1\}//.
////////\{c2\}mMN\{c1\}/////.
////////\{c2\}mMN+\{c1\}////////.
////////////////////////.
/////////+\{c2\}shhddhyo\{c1\}+////////.
////////\{c2\}ymMNmdhhdmNNdo\{c1\}///////.
///////+\{c2\}mMms\{c1\}////////\{c2\}hNMh\{c1\}///////.
///////\{c2\}NMm+\{c1\}//////////\{c2\}sMMh\{c1\}///////
//////\{c2\}oMMNmmmmmmmmmmmmMMm\{c1\}///////
//////\{c2\}+MMmssssssssssssss+\{c1\}///////
`//////\{c2\}yMMy\{c1\}////////////////////
`//////\{c2\}smMNhso++oydNm\{c1\}////////
`///////\{c2\}ohmNMMMNNdy+\{c1\}///////
`//////////\{c2\}++\{c1\}//////////
`////////////////.
-////////-"
}
# Logo: Chrom
class Logo_chrom {
colors = "2 1 3 4 7 7"
art = "\{c2\} .,:loool:,.
.,coooooooooooooc,.
.,lllllllllllllllllllll,.
;ccccccccccccccccccccccccc;
\{c1\} '\{c2\}ccccccccccccccccccccccccccccc.
\{c1\} ,oo\{c2\}c::::::::okO\{c5\}000\{c3\}0OOkkkkkkkkkkk:
\{c1\}.ooool\{c2\};;;;:x\{c5\}K0\{c4\}kxxxxxk\{c5\}0X\{c3\}K0000000000.
\{c1\}:oooool\{c2\};,;O\{c5\}K\{c4\}ddddddddddd\{c5\}KX\{c3\}000000000d
\{c1\}lllllool\{c2\};l\{c5\}N\{c4\}dllllllllllld\{c5\}N\{c3\}K000000000
\{c1\}lllllllll\{c2\}o\{c5\}M\{c4\}dccccccccccco\{c5\}W\{c3\}K000000000
\{c1\};cllllllllX\{c5\}X\{c4\}c:::::::::c\{c5\}0X\{c3\}000000000d
\{c1\}.ccccllllllO\{c5\}Nk\{c4\}c;,,,;cx\{c5\}KK\{c3\}0000000000.
\{c1\} .cccccclllllxOO\{c5\}OOO\{c1\}Okx\{c3\}O0000000000;
\{c1\} .:ccccccccllllllllo\{c3\}O0000000OOO,
\{c1\} ,:ccccccccclllcd\{c3\}0000OOOOOOl.
\{c1\} '::ccccccccc\{c3\}dOOOOOOOkx:.
\{c1\} ..,::cccc\{c3\}xOOOkkko;.
\{c1\} ..,:\{c3\}dOkxl:."
}
# Logo: Cleanjaro
class Logo_cleanjaro {
colors = "7 7 7 7 7 7"
art = "\{c1\}███████▌ ████████████████
███████▌ ████████████████
███████▌ ████████████████
███████▌
███████▌
███████▌
███████▌
███████▌
█████████████████████████
█████████████████████████
█████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
}
# Logo: cleanjaro_small
class Logo_cleanjaro_small {
colors = "7 7 7 7 7 7"
art = "\{c1\}█████ ██████████
█████ ██████████
█████
█████
█████
████████████████
████████████████"
}
# Logo: Clear Linux OS
class Logo_clear_linux_os {
colors = "4 3 7 6 6 6"
art = "\{c1\} BBB
BBBBBBBBB
BBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBB BBB
BBBBBBBB\{c2\}YYYYY
\{c1\} BBBBBBBB\{c2\}YYYYYY
\{c1\} BBBBBBBB\{c2\}YYYYYYY
\{c1\} BBBBBBBBB\{c2\}YYYYY\{c3\}W
\{c4\} GG\{c1\}BBBBBBBY\{c2\}YYYY\{c3\}WWW
\{c4\} GGG\{c1\}BBBBBBB\{c2\}YY\{c3\}WWWWWWWW
\{c4\} GGGGGG\{c1\}BBBBBB\{c3\}WWWWWWWW
\{c4\} GGGGGGGG\{c1\}BBBB\{c3\}WWWWWWWW
\{c4\}GGGGGGGGGGG\{c1\}BBB\{c3\}WWWWWWW
\{c4\}GGGGGGGGGGGGG\{c1\}B\{c3\}WWWWWW
\{c4\}GGGGGGGG\{c3\}WWWWWWWWWWW
\{c4\}GG\{c3\}WWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWW
WWWWWWWWWW
WWW"
}
# Logo: ClearOS
class Logo_clearos {
colors = "2 2 2 2 2 2"
art = "\{c1\} `.--::::::--.`
.-:////////////////:-.
`-////////////////////////-`
-////////////////////////////-
`//////////////-..-//////////////`
./////////////: ://///////////.
`//////:..-////: :////-..-//////`
://////` -///:.``.:///-` ://///:
`///////:. -////////-` `:///////`
.//:--////:. -////-` `:////--://.
./: .////:. --` `:////- :/.
`//-` .////:. `:////- `-//`
:///-` .////:. `:////- `-///:
`/////-` -///: :///- `-/////`
`//////- `///: :///` .//////`
`:////: `///: :///` -////:`
.://: `///: :///` -//:.
.:: `///: :///` -:.
`///: :///`
`... ...`"
}
# Logo: Clover
class Logo_clover {
colors = "2 6 6 6 6 6"
art = "\{c1\} `omo``omo`
`oNMMMNNMMMNo`
`oNMMMMMMMMMMMMNo`
oNMMMMMMMMMMMMMMMMNo
`sNMMMMMMMMMMMMMMNs`
`omo` `sNMMMMMMMMMMNs` `omo`
`oNMMMNo` `sNMMMMMMNs` `oNMMMNo`
`oNMMMMMMMNo` `oNMMNs` `oNMMMMMMMNo`
oNMMMMMMMMMMMNo` `sy` `oNMMMMMMMMMMMNo
`sNMMMMMMMMMMMMNo.\{c2\}oNNs\{c1\}.oNMMMMMMMMMMMMNs`
`oNMMMMMMMMMMMMNs.\{c2\}oNNs\{c1\}.oNMMMMMMMMMMMMNo`
oNMMMMMMMMMMMNs` `sy` `oNMMMMMMMMMMMNo
`oNMMMMMMMNs` `oNMMNo` `oNMMMMMMMNs`
`oNMMMNs` `sNMMMMMMNs` `oNMMMNs`
`oNs` `sNMMMMMMMMMMNs` `oNs`
`sNMMMMMMMMMMMMMMNs`
+NMMMMMMMMMMMMMMMMNo
`oNMMMMMMMMMMMMNo`
`oNMMMNNMMMNs`
`omo``oNs`"
}
# Logo: Condres
class Logo_condres {
colors = "2 3 6 6 6 6"
art = "\{c1\}syyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+\{c3\}.+.
\{c1\}`oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+\{c3\}:++.
\{c2\}/o\{c1\}+oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/\{c3\}oo++.
\{c2\}/y+\{c1\}syyyyyyyyyyyyyyyyyyyyyyyyyyyyy\{c3\}+ooo++.
\{c2\}/hy+\{c1\}oyyyhhhhhhhhhhhhhhyyyyyyyyy\{c3\}+oo+++++.
\{c2\}/hhh+\{c1\}shhhhhdddddhhhhhhhyyyyyyy\{c3\}+oo++++++.
\{c2\}/hhdd+\{c1\}oddddddddddddhhhhhyyyys\{c3\}+oo+++++++.
\{c2\}/hhddd+\{c1\}odmmmdddddddhhhhyyyy\{c3\}+ooo++++++++.
\{c2\}/hhdddmo\{c1\}odmmmdddddhhhhhyyy\{c3\}+oooo++++++++.
\{c2\}/hdddmmms\{c1\}/dmdddddhhhhyyys\{c3\}+oooo+++++++++.
\{c2\}/hddddmmmy\{c1\}/hdddhhhhyyyyo\{c3\}+oooo++++++++++:
\{c2\}/hhdddmmmmy\{c1\}:yhhhhyyyyy+\{c3\}+oooo+++++++++++:
\{c2\}/hhddddddddy\{c1\}-syyyyyys+\{c3\}ooooo++++++++++++:
\{c2\}/hhhddddddddy\{c1\}-+yyyy+\{c3\}/ooooo+++++++++++++:
\{c2\}/hhhhhdddddhhy\{c1\}./yo:\{c3\}+oooooo+++++++++++++/
\{c2\}/hhhhhhhhhhhhhy\{c1\}:-.\{c3\}+sooooo+++++++++++///:
\{c2\}:sssssssssssso++\{c1\}\{c3\}`:/:--------.````````"
}
# Logo: Container Linux by CoreOS
class Logo_container_linux_by_coreos {
colors = "4 7 1 1 1 1"
art = "\{c1\} .....
.';:cccccccc:;'.
':ccccclc\{c3\}lllllllll\{c1\}cc:.
.;cccccccc\{c3\}lllllllllllllll\{c1\}c,
;clllccccc\{c3\}llllllllllllllllll\{c1\}c,
.cllclccccc\{c3\}lllll\{c2\}lll\{c3\}llllllllllll\{c1\}c:
ccclclcccc\{c3\}cllll\{c2\}kWMMNKk\{c3\}llllllllll\{c1\}c:
:ccclclcccc\{c3\}llll\{c2\}oWMMMMMMWO\{c3\}lllllllll\{c1\}c,
.ccllllllccc\{c3\}clll\{c2\}OMMMMMMMMM0\{c3\}lllllllll\{c1\}c
.lllllclcccc\{c3\}llll\{c2\}KMMMMMMMMMMo\{c3\}llllllll\{c1\}c.
.lllllllcccc\{c3\}clll\{c2\}KMMMMMMMMN0\{c3\}lllllllll\{c1\}c.
.cclllllcccc\{c3\}lllld\{c2\}xkkxxdo\{c3\}llllllllllc\{c1\}lc
:cccllllllcccc\{c3\}lllccllllcclccc\{c1\}cccccc;
.ccclllllllcccccccc\{c3\}lll\{c1\}ccccclccccccc
.cllllllllllclcccclccclccllllcllc
:cllllllllccclcllllllllllllcc;
.cccccccccccccclcccccccccc:.
.;cccclccccccllllllccc,.
.';ccccclllccc:;..
....."
}
# Logo: CRUX
class Logo_crux {
colors = "4 5 7 6 6 6"
art = "\{c1\} odddd
oddxkkkxxdoo
ddcoddxxxdoool
xdclodod olol
xoc xdd olol
xdc \{c2\}k00\{c1\}Okdlol
xxd\{c2\}kOKKKOkd\{c1\}ldd
xdco\{c2\}xOkdlo\{c1\}dldd
ddc:cl\{c2\}lll\{c1\}oooodo
odxxdd\{c3\}xkO000kx\{c1\}ooxdo
oxdd\{c3\}x0NMMMMMMWW0od\{c1\}kkxo
oooxd\{c3\}0WMMMMMMMMMW0o\{c1\}dxkx
docldkXW\{c3\}MMMMMMMWWN\{c1\}Odolco
xx\{c2\}dx\{c1\}kxxOKN\{c3\}WMMWN\{c1\}0xdoxo::c
\{c2\}xOkkO\{c1\}0oo\{c3\}odOW\{c2\}WW\{c1\}XkdodOxc:l
\{c2\}dkkkxkkk\{c3\}OKX\{c2\}NNNX0Oxx\{c1\}xc:cd
\{c2\} odxxdx\{c3\}xllod\{c2\}ddooxx\{c1\}dc:ldo
\{c2\} lodd\{c1\}dolccc\{c2\}ccox\{c1\}xoloo"
}
# Logo: crux_small
class Logo_crux_small {
colors = "4 5 7 6 6 6"
art = "\{c1\} ___
(\{c3\}.· \{c1\}|
(\{c2\}<> \{c1\}|
/ \{c3\}__ \{c1\}\\\\
( \{c3\}/ \\\\ \{c1\}/|
\{c2\}_\{c1\}/\\\\ \{c3\}__)\{c1\}/\{c2\}_\{c1\})
\{c2\}\\/\{c1\}-____\{c2\}\\/"
}
# Logo: Crystal Linux
class Logo_crystal_linux {
colors = "13 5 5 5 5 5"
art = "\{c1\} mysssym
\{c1\} mysssym
\{c1\} mysssym
\{c1\} mysssym
\{c1\} mysssyd
\{c1\} mysssyd N
\{c1\} mysssyd mysym
\{c1\} mysssyd dysssym
\{c1\} mysssyd dysssym
\{c1\} mysssyd dysssym
\{c1\} mysssyd dysssym
\{c1\} mysssyd dysssym
\{c1\} mysssyd dysssym
\{c1\} mysym dysssym
\{c1\} N dysssym
\{c1\} dysssym
\{c1\} dysssym
\{c1\} dysssym
\{c1\} dysssym
\{c1\} dysssym"
}
# Logo: Cucumber
class Logo_cucumber {
colors = "2 3 3 3 3 3"
art = "\{c1\} `.-://++++++//:-.`
`:/+//\{c2\}::--------\{c1\}:://+/:`
-++/:\{c2\}----..........----\{c1\}:/++-
.++:\{c2\}---...........-......---\{c1\}:++.
/+:\{c2\}---....-::/:/--//:::-....---\{c1\}:+/
`++:\{c2\}--.....:---::/--/::---:.....--\{c1\}:++`
/+:\{c2\}--.....--.--::::-/::--.--.....--\{c1\}:+/
-o:\{c2\}--.......-:::://--/:::::-.......--\{c1\}:o-
/+:\{c2\}--...-:-::---:::..:::---:--:-...--\{c1\}:+/
o/:\{c2\}-...-:.:.-/:::......::/:.--.:-...-\{c1\}:/o
o/\{c2\}--...::-:/::/:-......-::::::-/-...-\{c1\}:/o
/+:\{c2\}--..-/:/:::--:::..:::--::////-..--\{c1\}:+/
-o:\{c2\}--...----::/:::/--/:::::-----...--\{c1\}:o-
/+:\{c2\}--....://:::.:/--/:.::://:....--\{c1\}:+/
`++:\{c2\}--...-:::.--.:..:.--.:/:-...--\{c1\}:++`
/+:\{c2\}---....----:-..-:----....---\{c1\}:+/
.++:\{c2\}---..................---\{c1\}:++.
-/+/:\{c2\}----..........----\{c1\}:/+/-
`:/+//\{c2\}::--------:::\{c1\}/+/:`
`.-://++++++//:-.`"
}
# Logo: CyberOS
class Logo_cyberos {
colors = "50 32 57 57 57 57"
art = "\{c3\} !M\$EEEEEEEEEEEP
.MMMMM000000Nr.
\{c3\}&MMMMMM\{c2\}MMMMMMMMMMMMM9
\{c3\}~MMM\{c1\}MMMM\{c2\}MMMMMMMMMMMMC
\{c1\}\" \{c3\}M\{c1\}MMMMMMM\{c2\}MMMMMMMMMMs
\{c1\}iM\{c2\}MMM&&\{c1\}MMMMMMMM\{c2\}MMMMMMMM\\\\
\{c1\}BMMM\{c2\}MMMMM\{c1\}MMMMMMM\{c2\}MMMMMM\{c3\}\"
\{c1\}9MMMMM\{c2\}MMMMMMM\{c1\}MMMM\{c2\}MMMM\{c3\}MMMf-
\{c2\}sMMMMMMMM\{c1\}MM\{c2\}M\{c3\}MMMMMMMMM3_
\{c2\}+ffffffff\{c1\}P\{c3\}MMMMMMMMMMMM0
\{c2\}CMMMMMMMMMMM
\}MMMMMMMMM
~MMMMMMM
\"RMMMM
.PMB"
}
# Logo: dahlia
class Logo_dahlia {
colors = "1 7 3 3 3 3"
art = "\{c1\}
.#.
*%@@@%*
.,,,,,(&@@@@@@@&/,,,,,.
,#@@@@@@@@@@@@@@@@@@@@@#.
,#@@@@@@@&#///#&@@@@@@@#.
,/%&@@@@@%/, .,(%@@@@@&#/.
*#&@@@@@@#,. .*#@@@@@@&#,
.&@@@@@@@@@( .(@@@@@@@@@&&.
#@@@@@@@@@@( )@@@@@@@@@@@#
°@@@@@@@@@@( .(@@@@@@@@@@@°
*%@@@@@@@(. ,#@@@@@@@%*
,(&@@@@@@%*. ./%@@@@@@%(,
,#@@@@@@@&(***(&@@@@@@@#.
,#@@@@@@@@@@@@@@@@@@@@@#.
,*****#&@@@@@@@&(*****,
,/%@@@%/.
,#,"
}
# Logo: DarkOs
class Logo_darkos {
colors = "1 6 5 3 2 2"
art = "
\{c3\}⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠢⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
\{c1\}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣶⠋⡆⢹⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
\{c5\}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡆⢀⣤⢛⠛⣠⣿⠀⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
\{c6\}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣶⣿⠟⣡⠊⣠⣾⣿⠃⣠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
\{c2\}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣯⣿⠀⠊⣤⣿⣿⣿⠃⣴⣧⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
\{c1\}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣶⣿⣿⡟⣠⣶⣿⣿⣿⢋⣤⠿⠛⠉⢁⣭⣽⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
\{c4\} ⠀⠀⠀⠀⠀⠀ ⠀⣠⠖⡭⢉⣿⣯⣿⣯⣿⣿⣿⣟⣧⠛⢉⣤⣶⣾⣿⣿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
\{c5\}⠀⠀⠀⠀⠀⠀⠀⠀⣴⣫⠓⢱⣯⣿⢿⠋⠛⢛⠟⠯⠶⢟⣿⣯⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
\{c2\}⠀⠀⠀⠀⠀⠀⢀⡮⢁⣴⣿⣿⣿⠖⣠⠐⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠛⠛⠛⢿⣶⣄⠀⠀⠀⠀⠀⠀⠀
\{c3\}⠀⠀⠀⠀⢀⣤⣷⣿⣿⠿⢛⣭⠒⠉⠀⠀⠀⣀⣀⣄⣤⣤⣴⣶⣶⣶⣿⣿⣿⣿⣿⠿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀
\{c1\}⠀⢀⣶⠏⠟⠝⠉⢀⣤⣿⣿⣶⣾⣿⣿⣿⣿⣿⣿⣟⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
\{c6\}⢴⣯⣤⣶⣿⣿⣿⣿⣿⡿⣿⣯⠉⠉⠉⠉⠀⠀⠀⠈⣿⡀⣟⣿⣿⢿⣿⣿⣿⣿⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
\{c5\}⠀⠀⠀⠉⠛⣿⣧⠀⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠃⣿⣿⣯⣿⣦⡀⠀⠉⠻⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀
\{c3\}⠀⠀⠀⠀⠀⠀⠉⢿⣮⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⠀⣯⠉⠉⠛⢿⣿⣷⣄⠀⠈⢻⣆⠀⠀⠀⠀⠀⠀⠀⠀
\{c2\}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠢⠀⠀⠀⠀⠀⠀⠀⢀⢡⠃⣾⣿⣿⣦⠀⠀⠀⠙⢿⣿⣤⠀⠙⣄⠀⠀⠀⠀⠀⠀⠀
\{c6\}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢋⡟⢠⣿⣿⣿⠋⢿⣄⠀⠀⠀⠈⡄⠙⣶⣈⡄⠀⠀⠀⠀⠀⠀
\{c1\}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠚⢲⣿⠀⣾⣿⣿⠁⠀⠀⠉⢷⡀⠀⠀⣇⠀⠀⠈⠻⡀⠀⠀⠀⠀⠀
\{c4\}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢢⣀⣿⡏⠀⣿⡿⠀⠀⠀⠀⠀⠀⠙⣦⠀⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
\{c3\}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠿⣧⣾⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣮⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
\{c5\}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀"
}
# Logo: Debian
class Logo_debian {
colors = "1 7 3 3 3 3"
art = "\{c2\} _,met\$\$\$\$\$gg.
,g\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$P.
,g\$\$P\" \"\"\"Y\$\$.\".
,\$\$P' `\$\$\$.
',\$\$P ,ggs. `\$\$b:
`d\$\$' ,\$P\"' \{c1\}.\{c2\} \$\$\$
\$\$P d\$' \{c1\},\{c2\} \$\$P
\$\$: \$\$. \{c1\}-\{c2\} ,d\$\$'
\$\$; Y\$b._ _,d\$P'
Y\$\$. \{c1\}`.\{c2\}`\"Y\$\$\$\$P\"'
\{c2\} `\$\$b \{c1\}\"-.__
\{c2\} `Y\$\$
`Y\$\$.
`\$\$b.
`Y\$\$b.
`\"Y\$b._
`\"\"\""
}
# Logo: debian_small
class Logo_debian_small {
colors = "1 7 3 3 3 3"
art = "\{c1\} _____
/ __ \\\\
| / |
| \\\\___-
-_
--_"
}
# Logo: Deepin
class Logo_deepin {
colors = "2 7 7 7 7 7"
art = "\{c1\} ............
.';;;;;. .,;,.
.,;;;;;;;. ';;;;;;;.
.;::::::::' .,::;;,''''',.
,'.:::::::: .;;'. ';
;' 'cccccc, ,' :: '.. .:
,, :ccccc. ;: .c, '' :. ,;
.l. cllll' ., .lc :; .l' l.
.c :lllc ;cl: .l' .ll. :'
.l 'looc. . ,o: 'oo' c,
.o. .:ool::coc' .ooo' o.
:: ..... .;dddo ;c
l:... .';lddddo. ,o
lxxxxxdoolllodxxxxxxxxxc :l
,dxxxxxxxxxxxxxxxxxxl. 'o,
,dkkkkkkkkkkkkko;. .;o;
.;okkkkkdl;. .,cl:.
.,:cccccccc:,."
}
# Logo: DesaOS
class Logo_desaos {
colors = "2 7 7 7 7 7"
art = "\{c1\}███████████████████████
███████████████████████
███████████████████████
███████████████████████
████████ ███████
████████ ███████
████████ ███████
████████ ███████
████████ ███████
████████ ███████
████████ ███████
██████████████████████████████
██████████████████████████████
████████████████████████
████████████████████████
████████████████████████"
}
# Logo: Devuan
class Logo_devuan {
colors = "5 7 7 7 7 7"
art = "\{c1\} ..,,;;;::;,..
`':ddd;:,.
`'dPPd:,.
`:b\$\$b`.
'P\$\$\$d`
.\$\$\$\$\$`
;\$\$\$\$\$P
.:P\$\$\$\$\$\$`
.,:b\$\$\$\$\$\$\$;'
.,:dP\$\$\$\$\$\$\$\$b:'
.,:;db\$\$\$\$\$\$\$\$\$\$Pd'`
,db\$\$\$\$\$\$\$\$\$\$\$\$\$\$b:'`
:\$\$\$\$\$\$\$\$\$\$\$\$b:'`
`\$\$\$\$\$bd:''`
`'''`"
}
# Logo: DracOS
class Logo_dracos {
colors = "1 7 3 3 3 3"
art = "\{c1\} `-:/-
-os:
-os/`
:sy+-`
`/yyyy+.
`+yyyyo-
`/yyyys:
`:osssoooo++- +yyyyyy/`
./yyyyyyo yo`:syyyy+.
-oyyy+ +- :yyyyyo-
`:sy: `. `/yyyyys:
./o/.` .oyyso+oo:`
:+oo+//::::///:-.` `.`"
}
# Logo: DragonFly
class Logo_dragonfly {
colors = "1 7 3 3 3 3"
art = "\{c2\},--, \{c1\}| \{c2\},--,
\{c2\}| `-, \{c1\},^, \{c2\},-' |
\{c2\} `, `-, \{c3\}(/ \\) \{c2\},-' ,'
\{c2\} `-, `-,\{c1\}/ \\\{c2\},-' ,-'
\{c2\} `------\{c1\}( )\{c2\}------'
\{c2\} ,----------\{c1\}( )\{c2\}----------,
\{c2\} | _,-\{c1\}( )\{c2\}-,_ |
\{c2\} `-,__,-' \{c1\}\\ /\{c2\} `-,__,-'
\{c1\} | |
| |
| |
| |
| |
| |
`|'"
}
# Logo: dragonfly_old
class Logo_dragonfly_old {
colors = "1 7 3 3 3 3"
art = " \{c1\} .-.
\{c3\} ()\{c1\}I\{c3\}()
\{c1\} \"==.__:-:__.==\"
\"==.__/~|~\\__.==\"
\"==._( Y )_.==\"
\{c2\}.-'~~\"\"~=--...,__\{c1\}\\/|\\/\{c2\}__,...--=~\"\"~~'-.
( ..=\{c1\}\\\\=\{c1\}/\{c2\}=.. )
`'-. ,.-\"`;\{c1\}/=\\\\\{c2\};\"-.,_ .-'`
`~\"-=-~` .-~` \{c1\}|=|\{c2\} `~-. `~-=-\"~`
.-~` /\{c1\}|=|\{c2\}\\ `~-.
.~` / \{c1\}|=|\{c2\} \\ `~.
.-~` .' \{c1\}|=|\{c2\} `. `~-.
(` _,.-=\"` \{c1\} |=|\{c2\} `\"=-.,_ `)
`~\"~\"` \{c1\} |=|\{c2\} `\"~\"~`
\{c1\} /=\\\\
\\\\=/
^"
}
# Logo: dragonfly_small
class Logo_dragonfly_small {
colors = "1 7 3 3 3 3"
art = "\{c2\} ,\{c1\}_\{c2\},
('-_\{c1\}|\{c2\}_-')
>--\{c1\}|\{c2\}--<
(_-'\{c1\}|\{c2\}'-_)
\{c1\}|
|
|"
}
# Logo: Drauger
class Logo_drauger {
colors = "1 7 7 7 7 7"
art = "\{c1\} -``-
`:+``+:`
`/++``++/.
.++/. ./++.
:++/` `/++:
`/++: :++/`
./+/- -/+/.
-++/. ./++-
:++:` `:++:
`/++- -++/`
./++. ./+/.
-++/` `/++-
:++:` `:++:
`/++- -++/`
.:-.`..............................`.-:.
`.-/++++++++++++++++++++++++++++++++/-.`"
}
# Logo: Elementary
class Logo_elementary {
colors = "4 7 1 1 1 1"
art = "\{c2\} eeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeee
eeeee eeeeeeeeeeee eeeee
eeee eeeee eee eeee
eeee eeee eee eeee
eee eee eee eee
eee eee eee eee
ee eee eeee eeee
ee eee eeeee eeeeee
ee eee eeeee eeeee ee
eee eeee eeeeee eeeee eee
eee eeeeeeeeee eeeeee eee
eeeeeeeeeeeeeeeeeeeeeeee eeeee
eeeeeeee eeeeeeeeeeee eeee
eeeee eeeee
eeeeeee eeeeeee
eeeeeeeeeeeeeeeee"
}
# Logo: elementary_small
class Logo_elementary_small {
colors = "4 7 1 1 1 1"
art = "\{c2\} _______
/ ____ \\\\
/ | / /\\\\
|__\\\\ / / |
\\\\ /__/ /
\\\\_______/"
}
# Logo: EndeavourOS
class Logo_endeavouros {
colors = "1 5 4 4 4 4"
art = "\{c1\} ./\{c2\}o\{c3\}.
\{c1\} ./\{c2\}sssso\{c3\}-
\{c1\} `:\{c2\}osssssss+\{c3\}-
\{c1\} `:+\{c2\}sssssssssso\{c3\}/.
\{c1\} `-/o\{c2\}ssssssssssssso\{c3\}/.
\{c1\} `-/+\{c2\}sssssssssssssssso\{c3\}+:`
\{c1\} `-:/+\{c2\}sssssssssssssssssso\{c3\}+/.
\{c1\} `.://o\{c2\}sssssssssssssssssssso\{c3\}++-
\{c1\} .://+\{c2\}ssssssssssssssssssssssso\{c3\}++:
\{c1\} .:///o\{c2\}ssssssssssssssssssssssssso\{c3\}++:
\{c1\} `:////\{c2\}ssssssssssssssssssssssssssso\{c3\}+++.
\{c1\}`-////+\{c2\}ssssssssssssssssssssssssssso\{c3\}++++-
\{c1\} `..-+\{c2\}oosssssssssssssssssssssssso\{c3\}+++++/`
./++++++++++++++++++++++++++++++/:.
`:::::::::::::::::::::::::------``"
}
# Logo: Endless
class Logo_endless {
colors = "1 7 7 7 7 7"
art = "\{c1\} `:+yhmNMMMMNmhy+:`
-odMMNhso//////oshNMMdo-
/dMMh+. .+hMMd/
/mMNo` `oNMm:
`yMMo` `oMMy`
`dMN- -NMd`
hMN. .NMh
/MM/ -os` /MM/
dMm `smNmmhs/- `:sNMd+ `` mMd
MMy oMd--:+yMMMMMNo.:ohmMMMNy` yMM
MMy -NNyyhmMNh+oNMMMMMy:. dMo yMM
dMm `/++/-``/yNNh+/sdNMNddMm- mMd
/MM/ `dNy: `-::- /MM/
hMN. .NMh
`dMN- -NMd`
`yMMo` `oMMy`
/mMNo` `oNMm/
/dMMh+. .+hMMd/
-odMMNhso//////oshNMMdo-
`:+yhmNMMMMNmhy+:`"
}
# Logo: EuroLinux
class Logo_eurolinux {
colors = "4 7 7 7 7 7"
art = "\{c1\} __
-wwwWWWWWWWWWwww-
-WWWWWWWWWWWWWWWWWWw-
\\WWWWWWWWWWWWWWWWWWW-
_Ww `WWWWWWWWWWWWWWWWWWWw
-W\{c2\}E\{c1\}Www -WWWWWWWWW-
_WW\{c2\}U\{c1\}WWWW- _WWWWWWWW
_WW\{c2\}R\{c1\}WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW-
wWW\{c2\}O\{c1\}WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWW\{c2\}L\{c1\}WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWw
WWW\{c2\}I\{c1\}WWWWWWWWWWWWWWWWWWWWWWWWWWWWww-
wWW\{c2\}N\{c1\}WWWWw
WW\{c2\}U\{c1\}WWWWWWw
wW\{c2\}X\{c1\}WWWWWWWWww
wWWWWWWWWWWWWWWWw
wWWWWWWWWWWWWWWWw
WWWWWWWWWWWWWw
wWWWWWWWw"
}
# Logo: Exherbo
class Logo_exherbo {
colors = "4 7 1 1 1 1"
art = "\{c2\} ,
OXo.
NXdX0: .cok0KXNNXXK0ko:.
KX '0XdKMMK;.xMMMk, .0MMMMMXx; ...
'NO..xWkMMx kMMM cMMMMMX,NMWOxOXd.
cNMk NK .oXM. OMMMMO. 0MMNo kW.
lMc o: ., .oKNk; ;NMMWlxW'
;Mc .. .,,' .0M\{c1\}g;\{c2\}WMN'dWMMMMMMO
XX ,WMMMMW. cM\{c1\}cfli\{c2\}WMKlo. .kMk
.Mo .WM\{c1\}GD\{c2\}MW. XM\{c1\}WO0\{c2\}MMk oMl
,M: ,XMMWx::,''oOK0x; NM.
'Ml ,kNKOxxxxxkkO0XXKOd:. oMk
NK .0Nxc\{c3\}:::::::::::::::\{c2\}fkKNk, .MW
,Mo .NXc\{c3\}::\{c2\}qXWXb\{c3\}::::::::::\{c2\}oo\{c3\}::\{c2\}lNK. .MW
;Wo oMd\{c3\}:::\{c2\}oNMNP\{c3\}::::::::\{c2\}oWMMMx\{c3\}:\{c2\}c0M; lMO
'NO;W0c\{c3\}:::::::::::::::\{c2\}dMMMMO\{c3\}::\{c2\}lMk .WM'
xWONXdc\{c3\}::::::::::::::\{c2\}oOOo\{c3\}::\{c2\}lXN. ,WMd
'KWWNXXK0Okxxo,\{c3\}:::::::\{c2\},lkKNo xMMO
:XMNxl,';:lodxkOO000Oxc. .oWMMo
'dXMMXkl;,. .,o0MMNo'
':d0XWMMMMWNNNNMMMNOl'
':okKXWNKkl'"
}
# Logo: Fedora
class Logo_fedora {
colors = "12 7 7 7 7 7"
art = "\{c1\} .',;::::;,'.
.';:cccccccccccc:;,.
.;cccccccccccccccccccccc;.
.:cccccccccccccccccccccccccc:.
.;ccccccccccccc;\{c2\}.:dddl:.\{c1\};ccccccc;.
.:ccccccccccccc;\{c2\}OWMKOOXMWd\{c1\};ccccccc:.
.:ccccccccccccc;\{c2\}KMMc\{c1\};cc;\{c2\}xMMc\{c1\};ccccccc:.
,cccccccccccccc;\{c2\}MMM.\{c1\};cc;\{c2\};WW:\{c1\};cccccccc,
:cccccccccccccc;\{c2\}MMM.\{c1\};cccccccccccccccc:
:ccccccc;\{c2\}oxOOOo\{c1\};\{c2\}MMM0OOk.\{c1\};cccccccccccc:
cccccc;\{c2\}0MMKxdd:\{c1\};\{c2\}MMMkddc.\{c1\};cccccccccccc;
ccccc;\{c2\}XM0'\{c1\};cccc;\{c2\}MMM.\{c1\};cccccccccccccccc'
ccccc;\{c2\}MMo\{c1\};ccccc;\{c2\}MMW.\{c1\};ccccccccccccccc;
ccccc;\{c2\}0MNc.\{c1\}ccc\{c2\}.xMMd\{c1\};ccccccccccccccc;
cccccc;\{c2\}dNMWXXXWM0:\{c1\};cccccccccccccc:,
cccccccc;\{c2\}.:odl:.\{c1\};cccccccccccccc:,.
:cccccccccccccccccccccccccccc:'.
.:cccccccccccccccccccccc:;,..
'::cccccccccccccc::;,."
}
# Logo: Fedora_old
class Logo_fedora_old {
colors = "4 7 1 1 1 1"
art = "\{c1\} /:-------------:\\\\
:-------------------::
:-----------\{c2\}/shhOHbmp\{c1\}---:\\\\
/-----------\{c2\}omMMMNNNMMD \{c1\}---:
:-----------\{c2\}sMMMMNMNMP\{c1\}. ---:
:-----------\{c2\}:MMMdP\{c1\}------- ---\\\\
,------------\{c2\}:MMMd\{c1\}-------- ---:
:------------\{c2\}:MMMd\{c1\}------- .---:
:---- \{c2\}oNMMMMMMMMMNho\{c1\} .----:
:-- .\{c2\}+shhhMMMmhhy++\{c1\} .------/
:- -------\{c2\}:MMMd\{c1\}--------------:
:- --------\{c2\}/MMMd\{c1\}-------------;
:- ------\{c2\}/hMMMy\{c1\}------------:
:--\{c2\} :dMNdhhdNMMNo\{c1\}------------;
:---\{c2\}:sdNMMMMNds:\{c1\}------------:
:------\{c2\}:://:\{c1\}-------------::
:---------------------://"
}
# Logo: fedora_small
class Logo_fedora_small {
colors = "12 12 12 12 12 12"
art = "\{c1\} ,'''''.
| ,. |
| | '_'
,....| |..
.' ,_;| ..'
| | | |
| ',_,' |
'. ,'
'''''"
}
# Logo: Feren
class Logo_feren {
colors = "4 7 1 1 1 1"
art = "\{c1\} `----------`
:+ooooooooo+.
-o+oooooooooo+-
..`/+++++++++++/...`````````````````
.++++++++++++++++++++++++++/////-
++++++++++++++++++++++++++++++++//:`
-++++++++++++++++++++++++++++++/-`
++++++++++++++++++++++++++++:.
-++++++++++++++++++++++++/.
+++++++++++++++++++++/-`
-++++++++++++++++++//-`
.:+++++++++++++//////-
.:++++++++//////////-
`-++++++---:::://///.
`.:///+++. `
`........."
}
# Logo: FreeBSD
class Logo_freebsd {
colors = "7 7 7 7 7 7"
art = " \{c2\}``` \{c1\}`
\{c2\}` `.....---...\{c1\}....--.``` -/
\{c2\}+o .--` \{c1\}/y:` +.
\{c2\} yo`:. \{c1\}:o `+-
\{c2\}y/ \{c1\}-/` -o/
\{c2\}.- \{c1\}::/sy+:.
\{c2\}/ \{c1\}`-- /
\{c2\}`: \{c1\}:`
\{c2\}`: \{c1\}:`
\{c2\}/ \{c1\}/
\{c2\}.- \{c1\}-.
\{c2\}-- \{c1\}-.
\{c2\}`:` \{c1\}`:`
.-- `--.
.---.....----."
}
# Logo: freebsd_small
class Logo_freebsd_small {
colors = "1 7 3 3 3 3"
art = "\{c1\}/\\\\,-'''''-,/\\\\
\\\\_) (_/
| |
| |
; ;
'-_____-'"
}
# Logo: FreeMiNT
class Logo_freemint {
colors = "7 7 7 7 7 7"
art = "\{c1\} ##
## #########
#### ##
#### #### ##
#### #### ## ##
#### #### ## ##
#### #### ## ## ##
#### ######
###### ## ## ####
#### ################
#### ## ####
## #### ######
## ## #### ####
## ## ## ## ## ####
#### ## ## ##"
}
# Logo: Frugalware
class Logo_frugalware {
colors = "4 7 1 1 1 1"
art = "\{c1\} `++/::-.`
/o+++++++++/::-.`
`o+++++++++++++++o++/::-.`
/+++++++++++++++++++++++oo++/:-.``
.o+ooooooooooooooooooosssssssso++oo++/:-`
++osoooooooooooosssssssssssssyyo+++++++o:
-o+ssoooooooooooosssssssssssssyyo+++++++s`
o++ssoooooo++++++++++++++sssyyyyo++++++o:
:o++ssoooooo\{c2\}/-------------\{c1\}+syyyyyo+++++oo
`o+++ssoooooo\{c2\}/-----\{c1\}+++++ooosyyyyyyo++++os:
/o+++ssoooooo\{c2\}/-----\{c1\}ooooooosyyyyyyyo+oooss
.o++++ssooooos\{c2\}/------------\{c1\}syyyyyyhsosssy-
++++++ssooooss\{c2\}/-----\{c1\}+++++ooyyhhhhhdssssso
-s+++++syssssss\{c2\}/-----\{c1\}yyhhhhhhhhhhhddssssy.
sooooooyhyyyyyh\{c2\}/-----\{c1\}hhhhhhhhhhhddddyssy+
:yooooooyhyyyhhhyyyyyyhhhhhhhhhhdddddyssy`
yoooooooyhyyhhhhhhhhhhhhhhhhhhhddddddysy/
-ysooooooydhhhhhhhhhhhddddddddddddddddssy
.-:/+osssyyyysyyyyyyyyyyyyyyyyyyyyyyssy:
``.-/+oosysssssssssssssssssssssss
``.:/+osyysssssssssssssh.
`-:/+osyyssssyo
.-:+++`"
}
# Logo: Funtoo
class Logo_funtoo {
colors = "5 7 7 7 7 7"
art = "\{c1\} .dKXXd .
:XXl;:. .OXo
.'OXO'' .''''''''''''''''''''':XNd..'oco.lco,
xXXXXXX, cXXXNNNXXXXNNXXXXXXXXNNNNKOOK; d0O .k
kXX xXo KNNN0 KNN. 'xXNo :c; 'cc.
kXX xNo KNNN0 KNN. :xxxx. 'NNo
kXX xNo loooc KNN. oNNNN. 'NNo
kXX xN0:. KNN' oNNNX' ,XNk
kXX xNNXNNNNNNNNXNNNNNNNNXNNOxXNX0Xl
... ......................... .;cc;."
}
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment