├── LICENSE ├── Makefile ├── README.rst └── disfetch /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 veleth 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .POSIX: 2 | .SUFFIXES: 3 | 4 | PREFIX = /usr/local 5 | BINDIR = bin 6 | 7 | install: 8 | install -Dm755 disfetch $(DESTDIR)$(PREFIX)/$(BINDIR)/disfetch 9 | 10 | check: 11 | shellcheck disfetch 12 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | disfetch |lang| |aur| |nix| |alpine| 2 | ======== 3 | 4 | Yet another **\*nix** distro fetching program, but less complex. Written 5 | in **POSIX shell**. 6 | 7 | Table of contents 8 | ----------------- 9 | 10 | .. contents:: \ 11 | 12 | Some examples 13 | ------------- 14 | 15 | |screenshot 0| 16 | 17 | |screenshot 1| 18 | 19 | |screenshot 2| 20 | 21 | |screenshot 3| 22 | 23 | .. raw:: html 24 | 25 |

26 | 27 | 28 |

29 | 30 | |screenshot 4| 31 | 32 | |screenshot 5| 33 | 34 | Supported operating systems 35 | --------------------------- 36 | 37 | Here's the list of currently supported operating systems. "Supported" means having OS logo and packages layer available. Otherwise, **disfetch** will show default tux logo with no packages count. 38 | 39 | - Alpine Linux 40 | - Android 41 | - Astra Linux 42 | - ArchBang Linux 43 | - ArchLabs Linux 44 | - Arch Linux 45 | - ArcoLinux 46 | - Artix Linux 47 | - Bedrock Linux 48 | - CentOS 49 | - Debian 50 | - Elementary OS 51 | - EndeavourOS 52 | - Fedora 53 | - Garuda Linux 54 | - Gentoo Linux 55 | - Haiku OS 56 | - Kali Linux 57 | - Kubuntu 58 | - Linux Mint 59 | - lubuntu - **only packages** 60 | - Manjaro 61 | - MSYS2 62 | - MX Linux 63 | - NixOS 64 | - openSUSE 65 | - Parabola Linux-libre 66 | - postmarketOS 67 | - Qubes OS 68 | - Raspbian 69 | - Red Hat Enterprise Linux 70 | - Slackware Linux 71 | - Ubuntu 72 | - Void Linux 73 | - Zorin OS 74 | 75 | Installation 76 | ------------ 77 | 78 | .. raw:: html 79 | 80 |

81 | Packaging status 83 |

84 | 85 | - There's `a package in AUR 86 | `__. 87 | 88 | - There's `a package in MPR 89 | `__. 90 | 91 | - There's `a package in Alpine 92 | `__. 93 | 94 | - There's also `a package in Nixpkgs 95 | `__. 96 | 97 | - Grabbing the latest `release tarball 98 | `__ then running ``make install`` 99 | should be enough. 100 | 101 | Feel free to contribute, create and maintain packages for disfetch for 102 | your favorite distros. 103 | 104 | Usage 105 | ----- 106 | 107 | See ``disfetch -h``. 108 | 109 | ---- 110 | 111 | |date| 112 | 113 | .. |screenshot 0| image:: https://i.imgur.com/dO88my5.jpg 114 | .. |screenshot 1| image:: https://i.imgur.com/TTSCQhk.jpg 115 | .. |screenshot 2| image:: https://i.imgur.com/ylr0G1U.jpg 116 | .. |screenshot 3| image:: https://i.imgur.com/HmZu33J.jpg 117 | .. |screenshot 4| image:: https://i.imgur.com/vS4GmTw.jpg 118 | .. |screenshot 5| image:: https://i.imgur.com/bsxtnBf.jpg 119 | .. |lang| image:: https://img.shields.io/badge/-shell-4CAA20?style=for-the-badge&logo=windowsterminal 120 | .. |aur| image:: https://img.shields.io/aur/version/disfetch?logo=archlinux&style=for-the-badge 121 | :target: https://aur.archlinux.org/packages/disfetch/ 122 | .. |nix| image:: https://img.shields.io/badge/Nix-disfetch-4F73BC?style=for-the-badge&logo=nixos 123 | :target: https://search.nixos.org/packages?from=0&size=50&sort=relevance&query=disfetch 124 | .. |alpine| image:: https://img.shields.io/badge/dynamic/xml?color=0D597F&label=alpine&query=%2F%2Fbody%2Fdiv%2Fmain%2Fdiv[2]%2Fdiv[1]%2Fdiv[1]%2Fdiv[1]%2Ftable%2Ftr[2]%2Ftd%2Fstrong%2Fa&url=https%3A%2F%2Fpkgs.alpinelinux.org%2Fpackage%2Fedge%2Ftesting%2Fx86_64%2Fdisfetch&style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij48cGF0aCBmaWxsPSIjRThFOEU4IiBkPSJNMzg0LjAyMTQ4NDQsMzQuMjc2ODg5OEgxMjcuOTc4NTA4TDAsMjU1Ljk5OTkwODRMMTI3Ljk3ODUwOCw0NzcuNzIzMTE0aDI1Ni4wNDI5Njg4TDUxMiwyNTUuOTk5OTA4NEwzODQuMDIxNDg0NCwzNC4yNzY4ODk4eiBNMTQ3LjE2MjA2MzYsMjk1LjQwMjA5OTZsMzguODQxNTgzMy0zOC44ODI4NzM1djUzLjk0MDIxNjFDMTcyLjM3NSwzMTAuMTY2NjU2NSwxNTkuMzIwODAwOCwzMDMuOTE2OTMxMiwxNDcuMTYyMDYzNiwyOTUuNDAyMDk5NnogTTI5OS43NjczMzQsMzA1Ljk3NTU4NTljLTIzLjc0Njc5NTctMjQuNDgxMjYyMi01NC4zMjcxOTQyLTU1LjE0MTcwODQtODcuNTM0NjgzMi04OC4xNzc3MzQ0bC04OC45Mzc0NTQyLDg3Ljk3NDczMTRDMTA5LjI3NjE2ODgsMzE1LjY0Mzg1OTksODUuODc1LDMwOC43NSw2Ny40NzQyMDUsMjk1LjM2NDE2NjNMMjEyLjU5MzgxMSwxNTEuODg0NzUwNGM0NS45MTQyMTUxLDQ4LjI5NDc5OTgsOTMuNTY5NDU4LDk2LjE5MzA4NDcsMTQzLjAzNTgyNzYsMTQzLjY3ODg3ODhDMzMxLjc3MjQ5MTUsMzEyLjY2NDk3OCwzMTAuMjUsMzEzLjg3NSwyOTkuNzY3MzM0LDMwNS45NzU1ODU5eiBNMzg0LjU4MTkzOTcsMzA1Ljk3NTU4NTlsLTcxLjMxODM4OTktNzEuMDc3OTQxOWwtNy4xMTQ3NzY2LDcuMTE0NzkxOWwtMzMuMjk4NDkyNC0zMi45MzQ4MTQ1bDQwLjQzMDQxOTktNDAuNDQwMjkyNGM0My4xMDYyMzE3LDQzLjQzMTY3MTEsODUuNDYxNDI1OCw4Ni4xNzY4NDk0LDEyNy4xNjM1MTMyLDEyNi45MjYzQzQxOS44NzUsMzEwLjMxMjUsMzk3LjA2MjUsMzE1LjM3NSwzODQuNTgxOTM5NywzMDUuOTc1NTg1OXoiLz48L3N2Zz4K 125 | :target: https://pkgs.alpinelinux.org/packages?name=disfetch 126 | .. |date| date:: %d.%m.%Y 127 | -------------------------------------------------------------------------------- /disfetch: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # MIT License 4 | # 5 | # Copyright (c) 2020 veleth 6 | # 7 | # Permission is hereby granted, free of charge, to any person obtaining a copy 8 | # of this software and associated documentation files (the "Software"), to deal 9 | # in the Software without restriction, including without limitation the rights 10 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | # copies of the Software, and to permit persons to whom the Software is 12 | # furnished to do so, subject to the following conditions: 13 | # 14 | # The above copyright notice and this permission notice shall be included in all 15 | # copies or substantial portions of the Software. 16 | # 17 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | # SOFTWARE. 24 | 25 | # get variable by name stored in other variable 26 | deref() { 27 | eval echo "\$$1" 28 | } 29 | 30 | # get Nth string of a variable 31 | elem() { 32 | # shellcheck disable=SC2059 # the only way 33 | printf "$2" | sed "$1!d" 34 | } 35 | 36 | # help message 37 | help() { 38 | printf "disfetch is a CLI system information tool written in bash 39 | 40 | Usage: disfetch [options] 41 | Options: 42 | -h\t\tprint this help 43 | -l \tset distro logo 44 | -m\t\tdon't use colors and formatting 45 | -n\t\tdisable decorations, display only info 46 | \n" 47 | } 48 | 49 | # parse arguments 50 | while getopts "hl:mn" opt; do 51 | case "$opt" in 52 | h) help; exit 0;; 53 | l) LOGO="$OPTARG";; 54 | m) MONO=1;; 55 | n) INFO_ONLY=;; 56 | *) exit 1;; 57 | esac 58 | done 59 | shift $((OPTIND - 1)) 60 | 61 | ########################################### 62 | # global stuff needed everywhere # 63 | ########################################### 64 | if [ -z "$MONO" ]; then 65 | # all colors 66 | blue="\033[34m" 67 | brightblue="\033[94m" 68 | cyan="\033[36m" 69 | brightcyan="\033[96m" 70 | #black="\033[30m" unused? 71 | brightblack="\033[90m" 72 | red="\033[31m" 73 | brightred="\033[91m" 74 | yellow="\033[33m" 75 | brightyellow="\033[93m" 76 | magenta="\033[35m" 77 | brightmagenta="\033[95m" 78 | green="\033[32m" 79 | brightgreen="\033[92m" 80 | white="\033[37m" 81 | brightwhite="\033[97m" 82 | xx="\033[0m" # reset 83 | zz="\033[1m" # bold 84 | 85 | # system colors palette 86 | PALETTE="\033[37mW\033[97mE$xx 87 | \033[31mR\033[91mD$xx 88 | \033[32mG\033[92mN$xx 89 | \033[33mY\033[93mW$xx 90 | \033[34mB\033[94mE$xx 91 | \033[35mM\033[95mA$xx 92 | \033[36mC\033[96mN$xx 93 | \033[30mB\033[90mK$xx" 94 | fi 95 | 96 | ########################################### 97 | # getting needed information # 98 | ########################################### 99 | 100 | # getting hostname 101 | if [ -f /etc/hostname ]; then 102 | HOSTNAME=$(cat /etc/hostname) 103 | else 104 | HOSTNAME=$(uname -n) 105 | fi 106 | 107 | # getting OS name 108 | if [ -f /etc/os-release ]; then 109 | # shellcheck source=/dev/null 110 | OS="$(. /etc/os-release && echo "$PRETTY_NAME" | 111 | tr '[:upper:]' '[:lower:]')" 112 | elif type lsb_release >/dev/null 2>&1; then 113 | OS="$(lsb_release -si | tr '[:upper:]' '[:lower:]')" 114 | else 115 | OS="$(uname -o | tr '[:upper:]' '[:lower:]')" 116 | fi 117 | 118 | # getting kernel version 119 | # shellcheck disable=SC2034 # actually used in eval 120 | [ "$OS" != haiku ] && 121 | KERNEL="$(uname -r | tr '[:upper:]' '[:lower:]')" 122 | 123 | # getting kernel architecture 124 | # shellcheck disable=SC2034 # actually used in eval 125 | ARCH="$(uname -m | tr '[:upper:]' '[:lower:]')" 126 | 127 | # finding out if OS has uptime with prerrifying option 128 | # or hardcoding prettified uptime 129 | # shellcheck disable=SC2034 # actually used in eval 130 | UPTIME="$( 131 | if [ "$(uptime -p 2>/dev/null)" ]; then 132 | uptime -p | sed 's/up //; s/,//g' 133 | elif [ -f /proc/uptime ]; then 134 | awk '{ 135 | uptime = $1; 136 | if (uptime >= 604800) { 137 | if (uptime >= 1209600) { 138 | printf "%s weeks ", int(uptime/604800); 139 | } else { 140 | printf "1 week "; 141 | } 142 | } 143 | if (uptime >= 86400) { 144 | if (int((uptime%604800)/86400) > 0) { 145 | if (int((uptime%604800)/86400) >= 2) { 146 | printf "%s days ", int((uptime%604800)/86400); 147 | } else { 148 | printf "1 day "; 149 | } 150 | } 151 | } 152 | if (uptime >= 3600) { 153 | if (int((uptime%86400)/3600) > 0) { 154 | if (int((uptime%86400)/3600) >= 2) { 155 | printf "%s hours ", int((uptime%86400)/3600); 156 | } else { 157 | printf "1 hour "; 158 | } 159 | } 160 | } 161 | if (uptime >= 60) { 162 | if (int((uptime%3600)/60) > 0) { 163 | if (int((uptime%3600)/60) >= 2) { 164 | printf "%s minutes ", int((uptime%3600)/60); 165 | } else { 166 | printf "1 minute "; 167 | } 168 | } 169 | } 170 | if (uptime >= 1 && 59 >= uptime) { 171 | if (int(uptime%60) > 0) { 172 | if (int(uptime%60) >= 2) { 173 | printf "%s seconds", int(uptime%60); 174 | } else { 175 | printf "1 second"; 176 | } 177 | } 178 | } 179 | }' /proc/uptime | xargs 180 | else 181 | uptime | cut -f1 -d "," | sed -E -e 's/^[^,]*up *//' \ 182 | -e 's/, *[[:digit:]]* users.*//; s/min/minutes/' \ 183 | -e 's/([[:digit:]]+):0?([[:digit:]]+)/\1 hours \2 minutes/' | 184 | xargs 185 | fi 186 | )" 187 | 188 | # getting current shell name 189 | # shellcheck disable=SC2034 # actually used in eval 190 | SHELL="$(basename "$SHELL")" 191 | 192 | # getting DE and WM 193 | # trying XDG_CURRENT_DESKTOP, if it doesn't exists, use DESKTOP_SESSION 194 | # DESKTOP_SESSION is a full path so removing garbage 195 | # shellcheck disable=SC2034 # actually used in eval 196 | DESKTOP="$( 197 | if [ "$OS" != haiku ]; then 198 | de=$(echo "${XDG_CURRENT_DESKTOP:-$DESKTOP_SESSION}" | awk -F/ '{ print tolower($NF) }') 199 | if [ "$de" ] && echo "$de" | grep -Fq "none" || [ -z "$de" ]; then 200 | if [ "$WAYLAND_DISPLAY" ]; then 201 | wm="$(pgrep -lox "cage.*|cardboard|dwl|enlightenment|grefsen| 202 | |hikari|kwin|mutter|river|sway|velox|wayfire|waymonad| 203 | |weston|wio" | cut -d' ' -f2)" 204 | else 205 | # firstly getting root window id (WM) and then getting WM name, ignoring unimportant stuff 206 | # some WM do not have proper set atoms like _NET_SUPPORTING_WM_CHECK and _NET_WM_NAME 207 | # this workaround allows to detect such WM 208 | wm_id=$(xprop -root -notype _NET_SUPPORTING_WM_CHECK 2>/dev/null) && 209 | wm="$(xprop -id "${wm_id##* }" _NET_WM_NAME 2>/dev/null | 210 | awk '{ print tolower($NF) }' | xargs)" 211 | 212 | [ "$wm" ] || 213 | wm=$(ps -eo comm= | grep -m 1 -o -e "2bwm" \ 214 | -e "catwm" \ 215 | -e "dwm" \ 216 | -e "fvwm" \ 217 | -e "monsterwm" \ 218 | -e "sowm" \ 219 | -e "tinywm" \ 220 | -e "wmaker" \ 221 | -e "xmonad") 222 | fi 223 | echo "$wm" 224 | else 225 | echo "$de" 226 | fi 227 | fi 228 | )" 229 | 230 | ########################################### 231 | # defining distro logo and packages count # 232 | ########################################### 233 | # note for nixos: display only current user installed packages 234 | packages_apk() { apk info 2>/dev/null | wc -l; } 235 | packages_dpkg() { dpkg -l 2>/dev/null | grep -c "^ii"; } 236 | packages_haiku() { pkgman search -ia 2>/dev/null | 237 | awk 'FNR > 2 { print }' | wc -l; } 238 | packages_nix() { nix-store -q --requisites ~/.nix-profile 2>/dev/null | wc -l; } 239 | packages_pacman() { pacman -Qq 2>/dev/null | wc -l; } 240 | packages_rpm() { rpm -qa 2>/dev/null | wc -l; } 241 | packages_slack() { find /var/log/packages -mindepth 1 -maxdepth 1 2>/dev/null | 242 | wc -l; } 243 | packages_xbps() { xbps-query -l 2>/dev/null | wc -l; } 244 | packages_emerge() { find /var/db/pkg -mindepth 2 -maxdepth 2 2>/dev/null | 245 | wc -l; } 246 | 247 | # shellcheck disable=SC2034 # actually used in eval 248 | PACKAGES="$( 249 | case $OS in 250 | alpine*|postm*) packages_apk;; 251 | android*|astra*|*bian*|elementary*|*mint*|mx*|*ubuntu*|zorin*|kali*) 252 | packages_dpkg;; 253 | arc*|artix*|endeavour*|manjaro*|garuda*|msys2*|parabola*) 254 | packages_pacman;; 255 | fedora*|qubes*|cent*|redhat*|opensuse*) packages_rpm;; 256 | gentoo*) packages_emerge;; 257 | haiku*) packages_haiku;; 258 | nixos*) packages_nix;; 259 | slack*) packages_slack;; 260 | void*) packages_xbps;; 261 | esac 262 | )" 263 | 264 | # Bedrock linux workaround 265 | if [ "$(brl 2>/dev/null)" ]; then 266 | LOGO=bedrock 267 | OS=$(brl version | tr '[:upper:]' '[:lower:]') 268 | fi 269 | 270 | IFS= # preserve leading and trailing whitespaces 271 | case "${LOGO:-$OS}" in 272 | alpine*) 273 | motif="$blue" 274 | a="$blue" 275 | read -r LOGO <$xx $a\\\\\\\\$xx \n\ 279 | $a//$xx $zz,,,$zz<^>,$xx $a\\\\\\\\$xx\n\ 280 | $a\\\\\\\\$xx $zz$xx $zz\>$xx $a//$xx\n\ 281 | $a\\\\\\\\$xx$zz$xx $zz\\\\$xx$a//$xx \n\ 282 | $a\\\\\\\\$xx $a//$xx \n\ 283 | $a\\\\\\\\AAAAAAAAAAA//$xx \n 284 | EOF 285 | ;; 286 | android*) 287 | motif="$brightgreen" 288 | a="$green$zz" 289 | read -r LOGO <.....$xx\n\ 307 | $a'<$xx,'$a:::::::$xx',$a>'$xx \n\ 308 | $a<$xx,$a':::'$xx,$a>$xx \n\ 309 | $a<$xx,$a'$xx,$a>^<$xx,$a'$xx,$a>$xx \n\ 310 | $a<,> <,>$xx \n\ 311 | $a\` \`$xx \n 312 | EOF 313 | ;; 314 | archbang*) 315 | motif="$brightblue" 316 | a="$blue" 317 | b="$brightwhite$zz" 318 | read -r LOGO < $a<$xx $a,\\\\$xx \n\ 354 | $a/.>$xx $a<.\\\\$xx \n\ 355 | $a/>$xx $a<\\\\$xx\n 356 | EOF 357 | ;; 358 | artix*) 359 | motif="$blue" 360 | a="$brightblue$zz" 361 | b="$blue" 362 | read -r LOGO < $b,$xx \n\ 369 | $a/.b$xx${b}>\` $b\` $b\`<$a\\\\$xx\n 371 | EOF 372 | ;; 373 | bedrock*) 374 | motif="$brightblack" 375 | a="$brightblack" 376 | b="$white$zz" 377 | read -r LOGO <>>$xx$a====$xx\n\ 382 | $a=====$xx$b\\\\\\\\$xx ${a}__$xx $b\\\\\\\\$xx$a==$xx\n\ 383 | $a======$xx$b\\\\\ //$xx$a==$xx\n\ 384 | $a=======$xx$b<<<<>>$xx$a====$xx\n\ 385 | $a=================$xx\n 386 | EOF 387 | ;; 388 | cent*) 389 | motif="$brightyellow" 390 | a="$green" 391 | b="$magenta" 392 | c="$yellow" 393 | d="$blue" 394 | read -r LOGO <> << >>$xx \n\ 482 | $b<<$xx $a$zz<$xx $c\\\\\\\\$xx \n\ 483 | $b<<$xx $a$zz< I:::::::::$xx$c\\\\\\\\$xx\n\ 484 | $b<<$xx \n\ 485 | $b<<$xx $a$zz<<$xx $b<< << << <<.$xx\n\ 486 | $c\\\\\\\\$xx $a$zz\\\\\\ >> >> <<$xx $b>>$xx \n\ 487 | $c\\\\\\\\$xx $a$zz<<$xx $b>>$xx \n\ 488 | $c\\\\\\\\$xx $b\\\\\\ \\\\\\ // // //$xx \n 489 | EOF 490 | ;; 491 | gentoo*) 492 | motif="$brightmagenta" 493 | a="$magenta$zz" 494 | read -r LOGO <'-'<:; .>.$xx\n\ 527 | ${a}Y<., 'GQ:'$xx \n\ 528 | ${a}__j//$xx \n\ 529 | $a""z\\\\\\\\$xx \n\ 530 | ${a}L<'\` ,JS:.$xx \n\ 531 | ${a}U>,_,<:; '>'$xx\n\ 532 | $a;/' "\\\\'$xx \n 533 | EOF 534 | ;; 535 | manjaro*) 536 | motif="$green" 537 | a="$green" 538 | read -r LOGO < // \\\\\\\\\\\\ * \n\ 590 | <\`$a~~~~~$xx// \\\\\\\\\\\\\`$a~$xx\`> \n\ 591 | <\`$a~~~~~~$xx//$a~$xx\`> <\\\\\\\\\\\\$a~~~$xx\`>\n 592 | EOF 593 | ;; 594 | nixos*) 595 | motif="$brightblue" 596 | a="$blue$zz" 597 | b="$brightcyan" 598 | read -r LOGO <$xx $a,\`$xx \n\ 620 | $a\`,$xx $a,\`$xx \n\ 621 | $a\`'*'\`$xx \n 622 | EOF 623 | ;; 624 | parabola*) 625 | motif="$brightblue" 626 | a="$blue$zz" 627 | read -r LOGO <$xx \n\ 635 | $a,/$xx \n 636 | EOF 637 | ;; 638 | postmarket*) 639 | motif="$brightgreen" 640 | a="$green$zz" 641 | b="$brightblack" 642 | read -r LOGO <_$xx $a\\\\\\\\\\\\$xx \n\ 646 | $a///$xx $b/$xx $b\\\\$xx $a\\\\\\\\\\\\$xx \n\ 647 | $a///$xx $b/_$xx ${b}_\\\\$xx $a\KL$xx \n\ 648 | $a///$xx $a/$xx ${a}__$xx \n\ 649 | $a///__\\\\$xx $a\_____/\\\\\\\\\\\\$xx \n\ 650 | $a/=====/$xx $a/=========\\\\$xx\n 651 | EOF 652 | ;; 653 | qubes*) 654 | motif="$brightblue" 655 | a="$blue$zz" 656 | read -r LOGO <.$xx \n\ 658 | $a.<^>''<^>.$xx \n\ 659 | $a<^><$xx $a><^>$xx\n\ 660 | ${a}[:]$xx ${a}[:]$xx\n\ 661 | ${a}[:]$xx ${a}[:]$xx\n\ 662 | $a<:><$xx $a><:>$xx\n\ 663 | $a<.>..<.>>$xx \n\ 664 | $a\`<>\`$xx $a$xx\n 665 | EOF 666 | ;; 667 | raspbian*) 668 | motif="$brightred" 669 | a="$red$zz" 670 | b="$green" 671 | read -r LOGO <'-',_,,_,$xx \n\ 738 | $a\`'c'\`$xx \n 739 | EOF 740 | ;; 741 | zorin*) 742 | motif="$brightblue" 743 | a="$brightblue" 744 | read -r LOGO < <$xx${a}ZZZZ\\\\\\\\$xx\n\ 749 | $a\\\\\\\\ZZZZ$xx$zz> <$xx${a}ZZZZZZZ//$xx\n\ 750 | $zz\\\\\\\\\`\`$xx$zz\` \`\`\`\`\`\`\`//$xx \n\ 751 | $zz\\\\\\\\.............//$xx \n\ 752 | $a\\\\\\\\ZZZZZZZZZZZ//$xx \n 753 | EOF 754 | ;; 755 | *) 756 | motif="$brightyellow" 757 | a="$brightblack" 758 | b="$yellow" 759 | read -r LOGO <$xx${a}X$xx \n\ 763 | ${a}XX${xx}X${a}XXXX${xx}X${a}XX$xx \n\ 764 | ${a}XX${xx}XXXXXXXX${a}XX$xx \n\ 765 | ${a}XX${xx}XXXXXXXXXX${a}XX$xx \n\ 766 | ${b}I$xx${a}XXX${xx}XXXXXXXX${a}XXX$xx${b}I$xx\n\ 767 | ${b}IL>$xx${a}XX${xx}XXXXXX$xx${a}XX$xx${b}