Compare commits

...

211 Commits

Author SHA1 Message Date
Azalea (on HyDEV-Daisy) efb61b60f6 [U] Release v1.2.0 2022-07-30 19:40:05 -04:00
Azalea (on HyDEV-Daisy) aee6a60bf6 [U] Readme unify link format 2022-07-30 19:39:55 -04:00
Azalea (on HyDEV-Daisy) acca0f72cf [O] Readme: Replace emoji text with actual emojis for pip 2022-07-30 19:36:28 -04:00
Azalea (on HyDEV-Daisy) 1c192f1230 [U] Update usage instructions 2022-07-30 19:31:31 -04:00
Azalea (on HyDEV-Daisy) beb26c3357 [U] Update readme changelog 2022-07-30 19:08:29 -04:00
Azalea (on HyDEV-Daisy) 071ba1b002 [PR] dylanaraps/neofetch#2079 from Candygoblen123 - added Asahi Linux
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2079
Thanks to @Candygoblen123

Co-authored-by: Candygoblen123 <andrew.glaze76@gmail.com>
2022-07-30 19:01:47 -04:00
Azalea (on HyDEV-Daisy) 8262573b0c [PR] dylanaraps/neofetch#2084 from Skaldebane - Fixes #1952
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2084
Thanks to @Skaldebane

Co-authored-by: Hossam Elbadissi <skaldebane@gmail.com>
2022-07-30 18:56:39 -04:00
Azalea (on HyDEV-Daisy) 9c2e731311 [PR] dylanaraps/neofetch#2085 from BlueSkyDetector - Add support for MIRACLE LINUX
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2085
Thanks to @BlueSkyDetector

Co-authored-by: Takanori Suzuki <takanori.suzuki@miraclelinux.com>
2022-07-30 18:53:51 -04:00
Azalea (on HyDEV-Daisy) 3b5c470806 [F] Fix CenterOS misalignment
https://github.com/dylanaraps/neofetch/pull/2097
2022-07-30 18:47:54 -04:00
Azalea (on HyDEV-Daisy) e6f91a36a7 [PR] dylanaraps/neofetch#2097 from happyeggchen - Added CenterLinux (aka CenterOS) to neofetch
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2097
Thanks to @happyeggchen

Co-authored-by: tsingkwai <tsingkwai@bluelaketable>
2022-07-30 18:46:13 -04:00
Azalea (on HyDEV-Daisy) 037bff7968 [PR] dylanaraps/neofetch#2099 from rfinnie - Add Finnix logo
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2099
Thanks to @rfinnie

Co-authored-by: Ryan Finnie <ryan@finnie.org>
2022-07-30 18:45:15 -04:00
Azalea (on HyDEV-Daisy) 600d7c8928 [PR] dylanaraps/neofetch#2109 from Ryker0603 - Windows 11 Modifications
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2109
Thanks to @Ryker0603

Co-authored-by: Ryker Lim <53988221+Ryker0603@users.noreply.github.com>
2022-07-30 18:42:01 -04:00
Azalea (on HyDEV-Daisy) 4dc001447b [PR] dylanaraps/neofetch#2114 from Izorkin - Update old nixos logo
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2114
Thanks to @Izorkin

Co-authored-by: Izorkin <izorkin@elven.pw>
2022-07-30 18:39:40 -04:00
Azalea (on HyDEV-Daisy) f22d4ad5ea [F] Ultramarine: Add to ascii_distro list
https://github.com/dylanaraps/neofetch/pull/2115
2022-07-30 18:37:52 -04:00
Azalea (on HyDEV-Daisy) 619df5a2cf [PR] dylanaraps/neofetch#2115 from korewaChino - Add Ultramarine Linux
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2115
Thanks to @korewaChino

Co-authored-by: korewaChino <crkza1134@gmail.com>
2022-07-30 18:34:01 -04:00
Azalea (on HyDEV-Daisy) 9735178c19 [PR] dylanaraps/neofetch#2124 from Bastindo - Add AOSC OS/Retro small logo
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2124
Thanks to @Bastindo

Co-authored-by: Bastindo <3egel@protonmail.com>
2022-07-30 18:31:59 -04:00
Azalea (on HyDEV-Daisy) 0501a60ed2 [U] Update readme 2022-07-30 18:24:30 -04:00
Azalea (on HyDEV-Daisy) beafa6a98f [PR] dylanaraps/neofetch#2128 from TheRealOne78 - Repair version for open-kernel NVIDIA version driver (LINUX)
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2128
Thanks to @TheRealOne78

Co-authored-by: TheRealOne78 <bajcsielias78@gmail.com>
2022-07-30 18:15:36 -04:00
Azalea (on HyDEV-Daisy) 8ef523174b [PR] dylanaraps/neofetch#2130 from RichardBronosky - Prevent get_battery from throwing "file not found"
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2130
Thanks to @RichardBronosky

Co-authored-by: Bruno Bronosky <Bruno@Bronosky.com>
2022-07-30 18:13:48 -04:00
Azalea (on HyDEV-Daisy) 93947b090a [F] Escape quotation marks 2022-07-30 18:13:43 -04:00
Azalea (on HyDEV-Daisy) 30df722ab0 [F] Fix sha mismatch 2022-07-30 18:04:21 -04:00
Azalea (on HyDEV-Daisy) 94c1f63f56 [PR] dylanaraps/neofetch#2136 from Sunderland93 - Add Ubuntu Sway logo
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2136
Thanks to @Sunderland93

Co-authored-by: Sunderland93 <samoilov.lex@gmail.com>
2022-07-30 18:03:33 -04:00
Azalea (on HyDEV-Daisy) d2211a09c4 [PR] dylanaraps/neofetch#2139 from saeziae - Use lscpu to get name of ARM CPU
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2139
Thanks to @saeziae

Co-authored-by: Estela Xu <i@estela.cn>
2022-07-30 17:54:41 -04:00
Azalea (on HyDEV-Daisy) bcb179101a [PR] dylanaraps/neofetch#2140 from Rabenda - add loongarch64 cpu support
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2140
Thanks to @Rabenda

Co-authored-by: Han Gao <gaohan@uniontech.com>
2022-07-30 17:46:28 -04:00
Azalea (on HyDEV-Daisy) ac1164946b [PR] dylanaraps/neofetch#2144 from cAptive5976 - Update neofetch for Orchid Linux
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2144
Thanks to @cAptive5976

Co-authored-by: cAptive <70532837+cAptive5976@users.noreply.github.com>
2022-07-30 17:37:22 -04:00
Azalea (on HyDEV-Daisy) 0b0eafbd07 [PR] dylanaraps/neofetch#2157 from Izorkin - Improve detect NixOS version
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2157
Thanks to @Izorkin

Co-authored-by: Izorkin <izorkin@elven.pw>
2022-07-30 17:34:58 -04:00
Azalea (on HyDEV-Daisy) 7a7e710d34 [U] Update readme 2022-07-30 17:26:49 -04:00
Azalea (on HyDEV-Daisy) cbf2e8dfb1 [PR] dylanaraps/neofetch#2167 from walking-octopus - Add Ubuntu Touch support
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2167
Thanks to @walking-octopus

Co-authored-by: walking-octopus <46994949+walking-octopus@users.noreply.github.com>
2022-07-30 17:22:40 -04:00
Azalea (on HyDEV-Daisy) bc1c43a5d0 [F] Fix ShastraOS comma 2022-07-30 17:13:40 -04:00
Azalea (on HyDEV-Daisy) ee1403df0e [PR] dylanaraps/neofetch#2149 from vivekpal1 - ShastraOS logo
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2149
Thanks to @vivekpal1

Co-authored-by: Vivek Pal <vivekpal@duck.com>
2022-07-30 17:12:46 -04:00
Azalea (on HyDEV-Daisy) 496523a9cf [-] Remove termux comment 2022-07-30 17:04:42 -04:00
Azalea (on HyDEV-Daisy) fac3268754 [PR] dylanaraps/neofetch#2168 from dontknowhy - Termux
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2168
Thanks to @dontknowhy

Co-authored-by: Don't knowhy <idontknowhy2021@outlook.com>
2022-07-30 17:04:03 -04:00
Azalea (on HyDEV-Daisy) 0494744261 [F] GrapheneOS: Fix first line alignment 2022-07-30 16:46:34 -04:00
Azalea (on HyDEV-Daisy) f1396670a0 [U] Auto push 2022-07-30 16:39:01 -04:00
Azalea (on HyDEV-Daisy) 8b02b49884 [PR] dylanaraps/neofetch#2146 from vishsant - Add Logo for GrapheneOS #2145
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2146
Thanks to @vishsant

Co-authored-by: vishsant <vishnusanthoshvk@gmail.com>
2022-07-30 16:38:03 -04:00
Azalea (on HyDEV-Daisy) 4abad16e71 [U] Readme update 2022-07-30 16:25:32 -04:00
Azalea (on HyDEV-Daisy) c097f817c6 [+] Add coauthor 2022-07-30 16:14:25 -04:00
Azalea (on HyDEV-Daisy) 61b4b6b0e5 [+] Generate comment with script 2022-07-30 16:08:16 -04:00
Azalea (on HyDEV-Daisy) 0c179db68d [PR] dylanaraps/neofetch#2147 from andreas-jonsson - NomadBSD
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2147
Thanks to @andreas-jonsson
2022-07-30 16:03:30 -04:00
Azalea (on HyDEV-Daisy) 43c4d0d5ee [U] Update PR format 2022-07-30 15:57:43 -04:00
Azalea (on HyDEV-Daisy) 8ed610c76f [+] Script to automatically accept upstream pull request 2022-07-30 15:56:18 -04:00
Azalea (on HyDEV-Daisy) 72dec6443d [PR] Merge pull request dylanaraps/neofetch#2162 from Jin-Asanami:master
Upstream PR: https://github.com/dylanaraps/neofetch/pull/2162
Thanks to @Jin-Asanami
2022-07-30 15:44:12 -04:00
Dylan Araps cc779d0af5 [PR] Merge pull request #10 from rejahtavi/new-void-logo
Created much cleaner Void ascii art
2022-07-30 13:54:53 -04:00
Azalea (on HyDEV-Daisy) 3bba6063e3 [U] Readme: update custom distro usage 2022-07-30 13:28:35 -04:00
Azalea (on HyDEV-Daisy) df3f1ebf7a Merge branch 'master' of https://github.com/hykilpikonna/neofetch 2022-07-30 13:27:31 -04:00
Azalea (on HyDEV-Daisy) a917a9a693 [-] Remove no-color option 2022-07-30 13:27:26 -04:00
Hykilpikonna 2a6939c11b [U] Readme update for #9 2022-07-30 13:04:52 -04:00
Hykilpikonna be19e044d4 [U] Update lightness readme 2022-07-30 13:02:46 -04:00
Azalea (on HyDEV-Daisy) 66ad0f7297 [+] Add no-color argument 2022-07-30 13:00:17 -04:00
Azalea (on HyDEV-Daisy) 694725c56e [-] Remove debug-list option 2022-07-30 12:55:59 -04:00
Hykilpikonna 7da4db9474 [PR] Merge pull request #9 from cxider/master
Added Uwuntu
2022-07-30 12:51:57 -04:00
Hykilpikonna b220933ec6 [U] Update readme 2022-07-30 12:46:20 -04:00
Hykilpikonna cc29a0fff1 [PR] Merge pull request #8 from kidonng/patch-2
Add macOS 13 to version name list
2022-07-30 12:24:07 -04:00
Azalea (on HyDEV-Daisy) 6417752e23 [+] package.json for npx script 2022-07-30 12:19:28 -04:00
walking-octopus 69907f6f8b Fix the shellcheck error 2022-07-30 16:12:37 +00:00
saeziae ac7be6d3d1 fix error 2022-07-31 00:08:35 +08:00
saeziae a73f05e388 use awk 2022-07-31 00:06:46 +08:00
Azalea (on HyDEV-Daisy) 4e9455d2d6 [U] Add instructions in readme for running original neofetch 2022-07-30 12:02:16 -04:00
Azalea (on HyDEV-Daisy) cb4cc5ba74 [+] Add script to original neofetch 2022-07-30 12:02:01 -04:00
Azalea (on HyDEV-Daisy) b648c5dbec [M] Rename neofetch_mod.sh to neowofetch 2022-07-30 12:01:31 -04:00
Azalea (on HyDEV-Daisy) cebeae9e85 Merge branch 'master' of https://github.com/hykilpikonna/neofetch 2022-07-30 11:44:54 -04:00
Hykilpikonna 24104e1696 [PR] #7 YisuiDenghua/patch-4 Readme
`nix-env -i  hyfetch` is available now
2022-07-30 11:30:33 -04:00
Milena - 一穗灯花 39fde11d17 nix-env -i hyfetch is available now
added `nix-env -i hyfetch`
2022-07-30 16:17:40 +08:00
Hykilpikonna 62c044cab3 [U] Update todo 2022-07-29 11:52:08 -04:00
Hykilpikonna 84528b7c0f [U] Readme: Add ubuntu screenshot 2022-07-29 11:16:26 -04:00
Azalea (on HyDEV-Daisy) 512d40f4de [U] Release 1.1.3-pre1 2022-07-29 11:04:30 -04:00
Hykilpikonna 39474d5dfd [U] Changelog for 1.1.3 2022-07-29 10:53:24 -04:00
Azalea (on HyDEV-Daisy) 17a28c0495 [O] Allow abbreviation in selection 2022-07-29 10:50:20 -04:00
Azalea (on HyDEV-Daisy) de0d381ee2 [F] Fix choice saving 2022-07-29 10:45:51 -04:00
Azalea (on HyDEV-Daisy) 4835bbba40 [O] Adapt fore-back configuration 2022-07-29 10:37:46 -04:00
Azalea (on HyDEV-Daisy) e35db2b838 Merge branch 'master' of https://github.com/hykilpikonna/neofetch 2022-07-29 09:55:11 -04:00
Azalea (on HyDEV-Daisy) 9c187da44a [F] Fix duplicate random color arrangements 2022-07-29 09:55:09 -04:00
dontknowhy 2c70ad2444 Fixed problem 2022-07-28 10:53:19 +08:00
walking-octopus d2d1c0aab4 Attempt to fix the shellcheck error 2022-07-27 21:53:06 +00:00
walking-octopus 957e280bed Add Ubuntu Touch support 2022-07-27 20:40:13 +00:00
Hykilpikonna 0d5cb3da51 [PR] #6 YisuiDenghua/patch-3 Readme.md update
Update README.md
2022-07-27 16:18:05 -04:00
walking-octopus 2f0d3db477 Add click to package managers 2022-07-27 19:44:34 +00:00
dontknowhy 5d6f9c45d6 Add Termux font support 2022-07-27 21:28:05 +08:00
Don't knowhy 22f7dbb6ec added Termux support 2022-07-27 16:07:01 +08:00
Hykilpikonna 255e1d3f99 [-] Remove unused numpy file 2022-07-26 22:48:45 -04:00
cAptive b32bfea28d Update neofetch
Added small logo and modify some details of main logo
2022-07-26 20:44:44 +02:00
Milena - 一穗灯花 9dfbeeb3fe Update README.md 2022-07-26 17:46:32 +08:00
Azalea (on HyDEV-Daisy) 92623417f9 [U] Release 1.1.2 2022-07-25 21:24:43 -04:00
Azalea (on HyDEV-Daisy) 47e8a4b6ae Merge branch 'master' of https://github.com/hykilpikonna/neofetch 2022-07-25 21:21:25 -04:00
Azalea (on HyDEV-Daisy) ce787650ff [F] Remove numpy requirement 2022-07-25 21:21:19 -04:00
Hykilpikonna f38da1da7b [U] Readme: Add nixos demo 2022-07-25 21:16:24 -04:00
Hykilpikonna aa2a46c307 [U] Update todo & future changelog 2022-07-25 21:11:34 -04:00
Hykilpikonna 249d88968a [PR] #5 larobitrumpet/master - Add more flags
Add Various Pride Flags
2022-07-25 21:07:24 -04:00
Azalea (on HyDEV-Daisy) 47ad86c1b3 Merge branch 'master' of https://github.com/hykilpikonna/neofetch 2022-07-25 21:06:31 -04:00
Azalea (on HyDEV-Daisy) 3358918a96 [U] Release v1.1.1 2022-07-25 21:06:27 -04:00
Hykilpikonna d210e8b717 [U] Changelog 2022-07-25 21:05:33 -04:00
Azalea (on HyDEV-Daisy) 2a0e05e228 [+] Create color scale without numpy 2022-07-25 21:02:10 -04:00
Hykilpikonna f80262b615 [PR] #4 YisuiDenghua/patch-1 Add NixOS instructions
Update README.md
2022-07-25 20:51:37 -04:00
Hykilpikonna 7aa46cb623 Merge branch 'master' into patch-1 2022-07-25 20:51:13 -04:00
Hykilpikonna 2a4242c57a [PR] #3 emixa-d/master - Add Guix installation instructions
Add Guix installation instructions
2022-07-25 20:48:29 -04:00
Azalea (on HyDEV-Daisy) 8d3a3cc7f0 [F] Fix config upgrade error 2022-07-25 20:43:52 -04:00
Azalea (on HyDEV-Daisy) eb76b2f474 [U] Release v1.1.0 2022-07-25 20:41:09 -04:00
Azalea (on HyDEV-Daisy) c9ed8e2088 [F] Put labels below ascii 2022-07-25 20:40:43 -04:00
Lucy Robillard bee34b6262 Fix bigender flag 2022-07-25 12:59:23 -07:00
Lucy Robillard f4b91ddb9a Add bigender flag 2022-07-25 12:54:48 -07:00
Lucy Robillard 348c6d4dcc Add omnisexual flag 2022-07-25 12:43:55 -07:00
Lucy Robillard d9a46c97c8 Add abrosexual flag 2022-07-25 12:38:50 -07:00
Jin Asanami 82b874549a added univalent's logo 2022-07-24 11:03:40 +09:00
Lucy Robillard 06d299f2f7 Add 5 stripe gay men flag 2022-07-20 12:51:04 -07:00
Lucy Robillard cd0f55cd92 Add polysexual 2022-07-20 12:37:10 -07:00
Lucy Robillard 5f31542362 Add demigender, demiboy, and demigirl 2022-07-20 12:27:40 -07:00
Lucy Robillard edd5d39f73 Add genderfae and demifae 2022-07-20 12:13:11 -07:00
Lucy Robillard 73bf1e7fdf Add genderfaun flag 2022-07-20 11:04:51 -07:00
Lucy Robillard a511742239 Add transfeminine flag 2022-07-20 10:56:09 -07:00
Lucy Robillard abed2f36e0 Add 3 versions of the aroace flag 2022-07-20 10:40:44 -07:00
Izorkin de253afcf4 Improve detect NixOS version 2022-07-18 19:39:24 +03:00
cxider 946f6b7070 Added Uwuntu 2022-07-14 22:31:11 -04:00
rejahtavi 7703bfcbb0 created much cleaner void ascii art 2022-07-13 10:39:07 -05:00
Kid de2dda0382 Add macOS 13 to version name list 2022-07-05 10:14:40 +08:00
Vivek Pal fabeccc310 Merge pull request #1 from vivekpal1/master
ShastraOS Logo
2022-07-05 00:37:34 +05:30
Vivek Pal 3db30bd5ad ShastraOS acii 2022-07-04 19:04:22 +00:00
Vivek Pal a83126e500 ShastraOS 2022-07-04 19:02:14 +00:00
Andreas T Jonsson c5a59756aa Added quotes. 2022-07-04 12:10:17 +02:00
Andreas T Jonsson dabf15d34f NomadBSD detect cleanup. 2022-07-04 12:08:32 +02:00
Andreas T Jonsson b4bc49d1d7 Added NomadBSD 2022-07-04 12:02:36 +02:00
Azalea (on HyDEV-Daisy) b68e0ccf52 [+] Add reference for default brightness 2022-07-03 13:02:39 -04:00
Azalea (on HyDEV-Daisy) 143bfd2db7 [O] Add more characters for ascii cat 2022-07-03 12:54:24 -04:00
Azalea (on HyDEV-Daisy) 2e20d4e529 [F] Fix numbering 2022-07-03 12:47:45 -04:00
Azalea (on HyDEV-Daisy) 66ff8d06d9 [F] Fix lightness config reading 2022-07-03 12:46:37 -04:00
Azalea (on HyDEV-Daisy) 887f766464 [+] Dynamically set lightness based on light_dark 2022-07-03 12:42:19 -04:00
Azalea (on HyDEV-Daisy) 85eaad14f2 [F] AttributeError: 'dict' object has no attribute 'recolor_ascii' 2022-07-02 23:37:18 -04:00
vishsant a797188d45 Add Logo for GrapheneOS #2145 2022-07-02 17:00:26 +05:30
cAptive 96382e7ba0 Update neofetch 2022-07-02 12:32:06 +02:00
Milena - 一穗灯花 7682408554 Update README.md 2022-06-30 17:03:21 +08:00
Milena - 一穗灯花 9e85fbc151 修正了语法错误 2022-06-30 17:01:34 +08:00
Milena - 一穗灯花 10408af1a2 修正了语法错误 2022-06-30 16:59:44 +08:00
Milena - 一穗灯花 23814863f1 Update README.md 2022-06-30 16:58:12 +08:00
Milena - 一穗灯花 8d65521fad Update README.md 2022-06-30 16:54:44 +08:00
Sunderland93 0014925ed0 Adjust logo 2022-06-26 14:34:11 +04:00
Han Gao d876efec64 add loongarch64 cpu support
Signed-off-by: Han Gao <gaohan@uniontech.com>
2022-06-26 00:12:31 +00:00
Estela ad Astra b9e713f9e2 use lscpu to get cpu name on arm architecture 2022-06-26 00:58:21 +08:00
Sunderland93 d7b63beb4f Remove garbage 2022-06-24 23:23:48 +04:00
Sunderland93 aa3804e4cb Add Ubuntu Sway detection 2022-06-24 23:21:20 +04:00
Sunderland93 afdb162d6e Update logo 2022-06-23 15:09:35 +04:00
Sunderland93 42cda441f1 Add initial Ubuntu Sway logo 2022-06-23 02:03:01 +04:00
Azalea (on HyDEV-Daisy) d11796ef02 [+] Recommended color alignments 2022-06-19 22:37:27 -04:00
Azalea (on HyDEV-Daisy) 59f5fd5651 [O] Refactor global cfg 2022-06-19 21:22:36 -04:00
Azalea (on HyDEV-Daisy) a1d687d3bd [+] Random custom coloring 2022-06-19 20:50:09 -04:00
Azalea (on HyDEV-Daisy) 7bd96e422f [+] Lightness config 2022-06-19 18:34:08 -04:00
Azalea (on HyDEV-Daisy) d1f601048b [+] Add test ascii 2022-06-19 18:03:28 -04:00
Azalea (on HyDEV-Daisy) 3b2fb773d3 [O] Optimize print flag 2022-06-19 18:03:19 -04:00
Azalea (on HyDEV-Daisy) fed771d930 [O] Track selected options 2022-06-19 18:03:05 -04:00
Azalea (on HyDEV-Daisy) 8930f921b4 [O] Change prompt order 2022-06-19 17:42:19 -04:00
Azalea (on HyDEV-Daisy) 5de1bf65e4 [F] set_light should be float 2022-06-19 17:39:39 -04:00
Azalea (on HyDEV-Daisy) b46d0e96f4 [+] Encapsulate set_light and lighten 2022-06-19 17:37:04 -04:00
Azalea (on HyDEV-Daisy) 1c67333b45 [+] light/dark mode config 2022-06-19 17:25:02 -04:00
Azalea (on HyDEV-Daisy) 5e26a44c19 [+] Add global color mode 2022-06-19 17:20:41 -04:00
Azalea (on HyDEV-Daisy) 865dea5dc3 [+] Add beiyang flag 2022-06-19 17:06:40 -04:00
Azalea (on HyDEV-Daisy) d5eea9a8ef [O] Refactor flag printing 2022-06-19 17:06:13 -04:00
Azalea (on HyDEV-Daisy) 365aedafe6 [-] Remove center_text function, use str.center 2022-06-19 16:47:03 -04:00
Azalea (on HyDEV-Daisy) 399fcd3c64 [O] Reformat code 2022-06-19 16:37:10 -04:00
Azalea (on HyDEV-Daisy) 299adb8e4d [O] Clear screen with title 2022-06-19 16:33:17 -04:00
Azalea (on HyDEV-Daisy) f86792356e [F] Remove new line after clear screen 2022-06-19 16:31:00 -04:00
Azalea (on HyDEV-Daisy) 892ed4e141 [+] Clear screen feature 2022-06-19 16:29:52 -04:00
Azalea (on HyDEV-Daisy) 5364e22f39 [+] Gradient RGB demo 2022-06-19 16:29:45 -04:00
Azalea (on HyDEV-Daisy) 6d77ebc7a7 [U] Test color scale 2022-06-19 15:33:16 -04:00
Azalea (on HyDEV-Daisy) 1eab4bb157 [F] Actually, make numpy a dependency 2022-06-19 15:33:02 -04:00
Azalea (on HyDEV-Daisy) d59e4a64d3 [+] Add numpy optional dependency 2022-06-19 15:30:20 -04:00
Azalea (on HyDEV-Daisy) 0dd67146d7 [+] Gradient color scale 2022-06-19 15:28:25 -04:00
Azalea (on HyDEV-Daisy) 46b7771f2c [+] Test distro command 2022-06-19 15:20:07 -04:00
Azalea (on HyDEV-Daisy) 002697b49a [+] Get custom distro ascii 2022-06-19 15:18:34 -04:00
Hykilpikonna 9a77c39170 [F] Remove unexpected quotation mark 2022-06-19 13:23:51 -04:00
Bruno Bronosky bcc504190a Prevent get_battery from throwing "file not found" 2022-06-12 22:20:12 -05:00
TheRealOne78 c9cf67d363 Replaced /proc/driver/nvidia/version with /sys/module/nvidia/version for open and proprietary NVIDIA version driver 2022-06-11 12:12:02 +03:00
Bastindo 93cc60f776 Add AOSC OS/Retro small logo 2022-05-29 23:19:37 +02:00
Cappy Ishihara 273e6abc38 Merge branch 'dylanaraps:master' into master 2022-05-19 15:39:12 +07:00
Hykilpikonna b744be3255 [+] Count choco packages and winget 2022-05-18 16:23:35 -04:00
Hykilpikonna e97c64e7c2 [+] Windows support (git bash) 2022-05-18 16:22:26 -04:00
Izorkin c4eb4ec778 update old nixos logo 2022-05-18 00:36:02 +03:00
Maxime Devos 707eac5087 [U] guix: Update readme usage 2022-05-12 13:24:14 +00:00
Ryker Lim 69129587cb Windows 11 Modifications
I added Windows 11 to the Fluent design and changed the Windows 11 logo to blue 6 7>4 6 (20220429)
2022-04-29 21:53:39 +08:00
Hykilpikonna b572e5d35f [U] nixos: Update readme usage 2022-04-29 07:58:32 -04:00
Hykilpikonna 86af5598c6 [-] nixos: remove old script 2022-04-29 07:52:28 -04:00
Hykilpikonna d7273909f6 [F] nixos: Fix something (?) 2022-04-29 07:52:10 -04:00
Hykilpikonna 7b4f209ebe [F] nixos: Fix unexpected argument 2022-04-29 07:39:50 -04:00
Hykilpikonna 46d00666e2 [+] Create defualt.nix 2022-04-29 07:37:33 -04:00
Hykilpikonna 1cffe3556a [+] nixos package 2022-04-29 07:35:51 -04:00
Hykilpikonna 07d94eec8b [+] nixos instructions 2022-04-26 17:39:10 -04:00
Hykilpikonna 62469e6f52 [+] Add nixos package 2022-04-25 15:56:56 -04:00
Azalea (on HyDEV-Daisy) 2c8261dc9a [F] Make config path only when it's needed 2022-04-25 14:38:59 -04:00
Azalea (on HyDEV-Daisy) 3219547c92 [U] Update changelog 2022-04-25 14:06:51 -04:00
Azalea (on HyDEV-Daisy) b0bc4e64a9 [O] Remove HyPyUtils Dependency 2022-04-25 14:05:20 -04:00
Azalea (on HyDEV-Daisy) 7bb049ea20 [U] Release v1.0.5 2022-04-25 03:23:50 -04:00
Hykilpikonna 73becf78c4 [U] Update changelog 2022-04-25 03:22:54 -04:00
Hykilpikonna 7f949fe6b2 [PR] #2 coloursofnoise - Fix terminal emulator detection
Fix terminal emulator detection
2022-04-25 03:21:51 -04:00
coloursofnoise 9abdae5fb4 Fix terminal emulator detection 2022-04-20 13:03:07 -07:00
Ryan Finnie c2f2fb6bd8 Add Finnix logo
https://www.finnix.org/
2022-04-16 20:00:39 -07:00
tsingkwai 37b8def5cd Modified due to the change in os-release 2022-04-16 14:48:15 +08:00
Azalea (on HyDEV-Daisy) 6ff45d0edd [+] Add AUR package 2022-04-16 00:45:15 -04:00
Hykilpikonna 99f99efc1c [U] Link pull request 2022-04-14 19:35:58 -04:00
Azalea (on HyDEV-Daisy) 0c08b3950f [U] Update changelog 2022-04-14 19:34:48 -04:00
Azalea (on HyDEV-Daisy) 2fc419476d [U] Release v1.0.4 - more flags! 2022-04-14 19:33:56 -04:00
Hykilpikonna abac3b2bb3 [PR] Merge pull request #1 from SadiePi/flagcolorcodes
Add some flags from flagcolorcodes.com
2022-04-12 14:29:53 -04:00
Azalea (on HyDEV-Daisy) 43924305b9 [U] Dynamic dependency version 2022-04-11 01:45:15 -04:00
Sadie Dotzler 29f771caec remove temporary alias 2022-04-10 22:04:45 -07:00
Sadie Dotzler 35f5e6eec9 flagcolorcodes page 1 2022-04-10 21:51:21 -07:00
Hykilpikonna 0a7356a560 [U] Update todo list 2022-04-10 23:50:13 -04:00
Hykilpikonna 6a5edd037a [U] Add nixos readme 2022-04-10 23:43:11 -04:00
Takanori Suzuki 27d711cc61 Add support for MIRACLE LINUX
- Original MIRACLE LINUX ascii art is contributed by Akio Tomita under MIT License (@tmya)
- Ascii art is brushed up by Haruka Kawahara under MIT License (@kawaharuka)
2022-03-31 21:22:52 +09:00
Hossam Elbadissi 333e04ef45 Fixes #1952
This pull request replaces the old broken code (see #1952) with a simpler, working one for `bar_color_total`, just like `bar_color_elapsed`. Let me know if the old code was done that way for a specific purpose.
2022-03-28 23:23:02 +00:00
Andrew Glaze 4a1c69cb7a Delete text.txt 2022-03-23 08:47:12 -04:00
Candygoblen123 7c5b92a05b added Asahi Linux
Co-authored-by: adryzz <adryzz@vignetteapp.org>
2022-03-23 08:47:12 -04:00
Estela Xu ee8d01ed2a Update neofetch 2022-03-01 14:30:01 +08:00
tsingkwai ae7c2d7854 add centerlinux 2022-01-28 12:02:22 +08:00
Cappy Ishihara 2a81916124 Merge branch 'dylanaraps:master' into master 2021-10-23 01:15:24 +07:00
korewaChino 48630bbda5 added Ultramarine logo 2021-08-20 11:07:42 +07:00
19 changed files with 1834 additions and 193 deletions
+129 -5
View File
@@ -4,14 +4,34 @@ neofetch with pride flags <3
![image](https://user-images.githubusercontent.com/22280294/162614541-af2b4660-f1f7-4287-b978-1aa2266ac70f.png)
### Running Updated Original Neofetch
This repo also serves as an updated version of the original `neofetch` since the upstream [dylanaraps/neofetch](https://github.com/dylanaraps/neofetch) doesn't seem to be maintained anymore (as of Jul 30, 2022, the original repo hasn't merged a pull request for 6 months). If you only want to use the updated neofetch without pride flags, you can install the python package and use `neowofetch` xD.
If you installed `npm`, you can also run the updated original neofetch using `npx neowofetch`. If not, you can also do this:
```sh
bash <(curl -s "https://raw.githubusercontent.com/Hykilpikonna/HyFetch/HEAD/neofetch")
```
## Installation
### Method 1: Install using Python pip (Recommended)
Install Python >= 3.7 first. Then, just do:
```sh
pip install hyfetch
```
### Method 2: Install using system package manager
Currently, these distributions have existing packages for HyFetch:
* ArchLinux: `yay -S hyfetch` (Thanks to @ Aleksana)
* Nix: `nix-env -i hyfetch` (Thanks to @ YisuiDenghua)
* Guix: `guix install hyfetch` (Thanks to @ WammKD)
## Usage
When you run `hyfetch` for the first time, it will prompt you to choose a color system and a preset. Just follow the prompt, and everything should work (hopefully). If something doesn't work, feel free to submit an issue!
@@ -22,11 +42,7 @@ A: Use `hyfetch -c`
#### Q: What do I do if the color is too dark/light for my theme?
A: You can try setting the colors' "lightness" using the `--c-set-l` parameter. The value should be between 0 and 1. For example, if you are using dark theme and the rainbow flag is too dark to display, you can type:
```sh
hyfetch -p rainbow --c-set-l 0.8
```
A: You can try setting the colors' "lightness" in the configuration menu. The value should be between 0 and 1. For example, if you are using dark theme and the rainbow flag is too dark to display, you can set lightness to 0.7.
Feel free to experiment with it!
@@ -34,6 +50,110 @@ Feel free to experiment with it!
## Change Log
### About Notation
Updates to HyFetch begins with the emoji 🌈
Updates to `neowofetch` begins with the emoji 🖼️
### TODO
* [ ] Paginate flags
* [ ] Implement light/dark background detection based on https://github.com/muesli/termenv
### 1.2.0
* 🚀 Take over `neofetch` with `neowofetch`
<details>
<summary>🖼️ Ascii Art Changes</summary><br>
* Ascii - Add uwuntu ([#9](https://github.com/hykilpikonna/hyfetch/pull/9)) (use it with `hyfetch --test-distro uwuntu` or `neowofetch --ascii_distro uwuntu`)
* Ascii - Better Void ascii art ([#10](https://github.com/hykilpikonna/hyfetch/pull/10))
* Ascii - Update old NixOS logo for compatibility (dylanaraps/neofetch#2114)
</details>
<details>
<summary>🖼️ Distro/OS Support Changes</summary><br>
* OS - Identify macOS 13 Ventura ([#8](https://github.com/hykilpikonna/hyfetch/pull/8))
* OS - Windows 11 Fluent (dylanaraps/neofetch#2109)
* Distro - Add Asahi Linux (dylanaraps/neofetch#2079)
* Distro - Add CenterOS (dylanaraps/neofetch#2097)
* Distro - Add Finnix (dylanaraps/neofetch#2099)
* Distro - Add Miracle Linux (dylanaraps/neofetch#2085)
* Distro - Add Univalent (dylanaraps/neofetch#2162)
* Distro - Add NomadBSD (dylanaraps/neofetch#2147)
* Distro - Add GrapheneOS (dylanaraps/neofetch#2146)
* Distro - Add ShastraOS (dylanaraps/neofetch#2149)
* Distro - Add Ubuntu Touch (dylanaraps/neofetch#2167)
* Distro - Add Ubuntu Sway (dylanaraps/neofetch#2136)
* Distro - Add Orchid Linux (dylanaraps/neofetch#2144)
* Distro - Add AOSC OS/Retro (dylanaraps/neofetch#2124)
* Distro - Add Ultramarine Linux (dylanaraps/neofetch#2115)
* Distro - Improve NixOS version detection (dylanaraps/neofetch#2157)
</details>
<details>
<summary>🖼️ Device Support Changes</summary><br>
* Terminal - Add Termux (dylanaraps/neofetch#2168)
* CPU - Add loongarch64 (dylanaraps/neofetch#2140)
* CPU - Identify CPU name for ARM / RISCV (dylanaraps/neofetch#2139)
* Battery - Fix file not found (dylanaraps/neofetch#2130)
* GPU - Identify open-kernal Nvidia driver version (dylanaraps/neofetch#2128)
</details>
<details>
<summary>🖼️ Bug Fixes</summary><br>
* Bug Fix - Fix broken fedora output (dylanaraps/neofetch#2084)
</details>
<img width="200px" src="https://user-images.githubusercontent.com/22280294/181790059-47aa6f80-be99-4e67-8fa5-5c02b02842c6.png" align="right">
### 1.1.3rc1
* 🌈 Add foreground-background color arrangement to make Fedora and Ubuntu look nicer
* 🌈 Allow typing abbreviations in flag selection
* 🌈 Fix: Duplicate random color arrangements are appearing in selection screen
* 🌈 Fix: Inconsistant color arrangement when saved to config file
### 1.1.2
* Add more flags ([#5](https://github.com/hykilpikonna/hyfetch/pull/5))
* Removed `numpy` dependency that was used in 1.1.0
<img width="200px" src="https://user-images.githubusercontent.com/22280294/180901539-014f036e-c926-4470-ac72-a6d6dcf30672.png" align="right">
### 1.1.0
* Refactored a lot of things
* Added Beiyang flag xD
* Added interactive configurator for brightness adjustment
* Added dark/light mode selection
* Added color bar preview for RGB/8bit mode selection
* Added random color arrangement feature (for NixOS)
### 1.0.7
* Fix: Make config path not on init but when it's actually needed.
### 1.0.6
* Remove `hypy_utils` dependency to make packaging easier.
### 1.0.5
* Fix terminal emulator detection ([PR #2](https://github.com/hykilpikonna/hyfetch/pull/2))
### 1.0.4
* Add more flags ([PR #1](https://github.com/hykilpikonna/hyfetch/pull/1))
### 1.0.3
* Fix missing dependency for setuptools
@@ -53,6 +173,9 @@ Feel free to experiment with it!
## More Screenshots
![image](https://user-images.githubusercontent.com/22280294/162614578-3b878abb-2a32-4427-997e-f90b3f5cfd7c.png)
![image](https://user-images.githubusercontent.com/22280294/162661621-f1c61338-7857-4d3f-9fe3-c6b635d68c38.png)
## Original Readme from Neofetch Below
<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>
@@ -75,6 +198,7 @@ The information by default is displayed alongside your operating system's logo.
You can further configure Neofetch to display exactly what you want it to. Through the use of command-line flags and the configuration file you can change existing information outputs or add your own custom ones.
Neofetch supports almost 150 different operating systems. From Linux to Windows, all the way to more obscure operating systems like Minix, AIX and Haiku. If your favourite operating system is unsupported: Open up an issue and support will be added.
+78
View File
@@ -0,0 +1,78 @@
#!/usr/bin/env python3
import argparse
import os
import shlex
from subprocess import check_output
import pyperclip
import requests
from github import Github
upstream = 'dylanaraps/neofetch'
my_fork = 'hykilpikonna/hyfetch'
my_base = 'master'
# gh_token = os.environ['GH_TOKEN']
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Helper for accepting upstream pull requests')
parser.add_argument('pull', type=int, help='Pull request number')
args = parser.parse_args()
pr = args.pull
print(f'Accepting pull request {pr}...')
# Fetch original pr's information
info = requests.get(f'https://api.github.com/repos/{upstream}/pulls/{pr}').json()
# print(info)
head = info['head']['repo']['full_name']
head_br = info['head']['ref']
head_lbl = info['head']['label']
user = info['user']['login']
print()
print('Original Pull Request Info:')
print('> State:', info['state'])
print('> Title:', info['title'])
print('> User:', user)
print('> Created:', info['created_at'])
print('> Head:', head, head_br, head_lbl)
# Fetch commit information
commits = requests.get(f'https://api.github.com/repos/{upstream}/pulls/{pr}/commits').json()
author = commits[0]['commit']['author']
# Fetch head branch
print()
print('Fetching head branch...')
os.system(f'git fetch https://github.com/{head} {head_br}')
# Merge head branch
print()
print('Merging fetch_head...')
title = info["title"].replace('"', '\\"')
os.system(f'git merge FETCH_HEAD --no-ff --no-edit '
f'-m "[PR] {upstream}#{pr} from {user} - {title}" '
f'-m "Upstream PR: https://github.com/{upstream}/pull/{pr} \n'
f'Thanks to @{user}\n\n'
f'Co-authored-by: {author["name"]} <{author["email"]}>"')
# Push
print()
print('Pushing...')
os.system('git push')
# Get commit SHA
sha = check_output(shlex.split('git rev-parse --short HEAD')).decode().strip()
# Copy comment to clipboard
comment = f"""
Thank you for your contribution!
This PR is [merged into hyfetch](https://github.com/hykilpikonna/hyfetch/commit/{sha}) since this repo (dylanaraps/neofetch) seems no longer maintained.
[HyFetch](https://github.com/hykilpikonna/hyfetch) is a fork of neofetch with LGBTQ pride flags, but the repo also serves as an updated version of neofetch, addressing many pull requests that are not merged in the original repo.
"""
pyperclip.copy(comment.strip())
print()
print('Done!')
print('Comment response copied to clipboard.')
+36
View File
@@ -0,0 +1,36 @@
with import <nixpkgs> {};
rec {
hyfetch = python3Packages.buildPythonPackage rec {
pname = "HyFetch";
version = "1.0.7";
src = pythonPackages.fetchPypi {
inherit pname version;
hash = "sha256-3/6/3EtTqHXTMuRIo2nclIxYSzOFvQegR29OJsKMQU4=";
};
propagatedBuildInputs = with python3Packages; [
typing-extensions
setuptools
];
doCheck = false;
meta = with lib; {
description = "neofetch with pride flags <3";
longDescription = ''
HyFetch is a command-line system information tool fork of neofetch.
HyFetch displays information about your system next to your OS logo
in ASCII representation. The ASCII representation is then colored in
the pattern of the pride flag of your choice. The main purpose of
HyFetch is to be used in screenshots to show other users what
operating system or distribution you are running, what theme or
icon set you are using, etc.
'';
homepage = "https://github.com/hykilpikonna/HyFetch";
license = licenses.mit;
mainProgram = "hyfetch";
};
};
}
+2 -2
View File
@@ -1,8 +1,8 @@
from __future__ import annotations
from . import main
__version__ = '1.0.3'
__version__ = main.VERSION
if __name__ == '__main__':
+76
View File
@@ -0,0 +1,76 @@
"""
This version of color_scale is a special version made without numpy dependency. The numpy version
would be faster, but numpy is 11 MB large. In comparison, hyfetch 1.0.7 is only 105 kB, so it's not
a good idea to depend on numpy.
"""
from __future__ import annotations
from .color_util import RGB
def create_gradient_hex(colors: list[str], resolution: int = 300) -> list[RGB]:
"""
Create gradient array from hex
"""
colors = [RGB.from_hex(s) for s in colors]
return create_gradient(colors, resolution)
def create_gradient(colors: list[RGB], resolution: int) -> list[RGB]:
"""
Create gradient array
Usage: arr[ratio / len(arr)] = Scaled gradient color at that point
"""
result = []
# Create gradient mapping
for i in range(len(colors) - 1):
c1 = colors[i]
c2 = colors[i + 1]
bi = i * resolution
for ri in range(resolution):
ratio = ri / resolution
r = int(c2.r * ratio + c1.r * (1 - ratio))
g = int(c2.g * ratio + c1.g * (1 - ratio))
b = int(c2.b * ratio + c1.b * (1 - ratio))
result.append(RGB(r, g, b))
return result
def get_raw(gradient: list[RGB], ratio: float) -> RGB:
"""
:param gradient: Gradient array (2d)
:param ratio: Between 0-1
:return: RGB subarray (1d, has 3 values)
"""
if ratio == 1:
return gradient[-1]
i = int(ratio * len(gradient))
return gradient[i]
class Scale:
colors: list[RGB]
rgb: list[RGB]
def __init__(self, scale: list[str], resolution: int = 300):
self.colors = [RGB.from_hex(s) for s in scale]
self.rgb = create_gradient(self.colors, resolution)
def __call__(self, ratio: float) -> RGB:
"""
:param ratio: Between 0-1
"""
return get_raw(self.rgb, ratio)
def test_color_scale():
scale = Scale(['#232323', '#4F1879', '#B43A78', '#F98766', '#FCFAC0'])
colors = 100
for i in range(colors + 1):
print(scale(i / colors).to_ansi_rgb(False), end=' ')
+80 -5
View File
@@ -1,10 +1,69 @@
from __future__ import annotations
import colorsys
from typing import NamedTuple
from typing import NamedTuple, Callable, Optional
from typing_extensions import Literal
from .constants import GLOBAL_CFG
AnsiMode = Literal['default', 'ansi', '8bit', 'rgb']
LightDark = Literal['light', 'dark']
MINECRAFT_COLORS = ["&0/\033[0;30m", "&1/\033[0;34m", "&2/\033[0;32m", "&3/\033[0;36m", "&4/\033[0;31m",
"&5/\033[0;35m", "&6/\033[0;33m", "&7/\033[0;37m", "&8/\033[1;30m", "&9/\033[1;34m",
"&a/\033[1;32m", "&b/\033[1;36m", "&c/\033[1;31m", "&d/\033[1;35m", "&e/\033[1;33m",
"&f/\033[1;37m",
"&r/\033[0m", "&l/\033[1m", "&o/\033[3m", "&n/\033[4m", "&-/\n"]
MINECRAFT_COLORS = [(r[:2], r[3:]) for r in MINECRAFT_COLORS]
def color(msg: str) -> str:
"""
Replace extended minecraft color codes in string
:param msg: Message with minecraft color codes
:return: Message with escape codes
"""
for code, esc in MINECRAFT_COLORS:
msg = msg.replace(code, esc)
while '&gf(' in msg or '&gb(' in msg:
i = msg.index('&gf(') if '&gf(' in msg else msg.index('&gb(')
end = msg.index(')', i)
code = msg[i + 4:end]
fore = msg[i + 2] == 'f'
if code.startswith('#'):
rgb = tuple(int(code.lstrip('#')[i:i+2], 16) for i in (0, 2, 4))
else:
code = code.replace(',', ' ').replace(';', ' ').replace(' ', ' ')
rgb = tuple(int(c) for c in code.split(' '))
msg = msg[:i] + RGB(*rgb).to_ansi(foreground=fore) + msg[end + 1:]
return msg
def printc(msg: str):
"""
Print with color
:param msg: Message with minecraft color codes
"""
print(color(msg + '&r'))
def clear_screen(title: str = ''):
"""
Clear screen using ANSI escape codes
"""
if not GLOBAL_CFG.debug:
print('\033[2J\033[H', end='')
if title:
print()
printc(title)
print()
def redistribute_rgb(r: int, g: int, b: int) -> tuple[int, int, int]:
@@ -99,7 +158,9 @@ class RGB(NamedTuple):
"""
raise NotImplementedError()
def to_ansi(self, mode: AnsiMode, foreground: bool = True):
def to_ansi(self, mode: AnsiMode | None = None, foreground: bool = True):
if not mode:
mode = GLOBAL_CFG.color_mode
if mode == 'rgb':
return self.to_ansi_rgb(foreground)
if mode == '8bit':
@@ -116,12 +177,26 @@ class RGB(NamedTuple):
"""
return RGB(*redistribute_rgb(*[v * multiplier for v in self]))
def set_light(self, light: int) -> 'RGB':
def set_light(self, light: float, at_least: bool | None = None, at_most: bool | None = None) -> 'RGB':
"""
Set HSL lightness value
:param light: Lightness value
:param light: Lightness value (0-1)
:param at_least: Set the lightness to at least this value (no change if greater)
:param at_most: Set the lightness to at most this value (no change if lesser)
:return: New color (original isn't modified)
"""
# Convert to HSL
h, l, s = colorsys.rgb_to_hls(*[v / 255.0 for v in self])
return RGB(*[round(v * 255.0) for v in colorsys.hls_to_rgb(h, light, s)])
# Modify light value
if at_least is None and at_most is None:
l = light
else:
if at_most:
l = min(l, light)
if at_least:
l = max(l, light)
# Convert back to RGB
return RGB(*[round(v * 255.0) for v in colorsys.hls_to_rgb(h, l, s)])
+52
View File
@@ -0,0 +1,52 @@
from __future__ import annotations
import os
from dataclasses import dataclass
from pathlib import Path
from typing_extensions import Literal
CONFIG_PATH = Path.home() / '.config/hyfetch.json'
VERSION = '1.2.0'
# Obtain terminal size
try:
TERM_LEN = os.get_terminal_size().columns
except Exception:
TERM_LEN = 40
TEST_ASCII = r"""
### |\___/| ###
### ) ( ###
## =\ /= ##
#### )===( ####
### / \ ###
### | | ###
## / {txt} \ ##
## \ / ##
_/\_\_ _/_/\_
|##| ( ( |##|
|##| ) ) |##|
|##| (_( |##|""".strip('\n')
TEST_ASCII_WIDTH = max(len(line) for line in TEST_ASCII.split('\n'))
DEFAULT_DARK_L = 0.
@dataclass
class GlobalConfig:
# Global color mode default to 8-bit for compatibility
color_mode: str
override_distro: str | None
debug: bool
is_light: bool
def light_dark(self) -> Literal['light', 'dark']:
return 'light' if self.is_light else 'dark'
def default_lightness(self, term: Literal['light', 'dark'] | None = None) -> float:
if term is None:
term = self.light_dark()
return 0.65 if term.lower() == 'dark' else 0.4
GLOBAL_CFG = GlobalConfig(color_mode='8bit', override_distro=None, debug=False, is_light=False)
+230 -71
View File
@@ -3,27 +3,16 @@ from __future__ import annotations
import argparse
import json
from dataclasses import dataclass
from pathlib import Path
import random
import re
from itertools import permutations
from typing import Iterable
from hypy_utils import printc, json_stringify, color
from .color_util import AnsiMode
from .neofetch_util import run_neofetch
from .presets import PRESETS, ColorProfile
CONFIG_PATH = Path.home() / '.config/hyfetch.json'
CONFIG_PATH.parent.mkdir(exist_ok=True, parents=True)
@dataclass
class Config:
preset: str
mode: AnsiMode
def save(self):
CONFIG_PATH.write_text(json_stringify(self), 'utf-8')
from .color_util import printc, color, clear_screen
from .constants import CONFIG_PATH, VERSION, TERM_LEN, TEST_ASCII_WIDTH, TEST_ASCII, GLOBAL_CFG
from .models import Config
from .neofetch_util import run_neofetch, get_distro_ascii, ColorAlignment, ascii_size, get_fore_back
from .presets import PRESETS
def check_config() -> Config:
@@ -36,56 +25,56 @@ def check_config() -> Config:
:return: Config object
"""
if CONFIG_PATH.is_file():
return Config(**json.loads(CONFIG_PATH.read_text('utf-8')))
try:
return Config.from_dict(json.loads(CONFIG_PATH.read_text('utf-8')))
except KeyError:
return create_config()
return create_config()
def literal_input(prompt: str, options: Iterable[str], default: str) -> str:
def literal_input(prompt: str, options: Iterable[str], default: str, show_ops: bool = True) -> str:
"""
Ask the user to provide an input among a list of options
:param prompt: Input prompt
:param options: Options
:param default: Default option
:param show_ops: Show options
:return: Selection
"""
options = list(options)
lows = [o.lower() for o in options]
op_text = '|'.join([f'&l&n{o}&r' if o == default else o for o in options])
printc(f'{prompt} ({op_text})')
selection = input('> ') or default
while not selection.lower() in lows:
if show_ops:
op_text = '|'.join([f'&l&n{o}&r' if o == default else o for o in options])
printc(f'{prompt} ({op_text})')
else:
printc(f'{prompt} (default: {default})')
def find_selection(sel: str):
if not sel:
return None
# Find exact match
if sel in lows:
return options[lows.index(sel)]
# Find starting abbreviation
for i, op in enumerate(lows):
if op.startswith(sel):
return options[i]
return None
selection = input('> ').lower() or default
while not find_selection(selection):
print(f'Invalid selection! {selection} is not one of {"|".join(options)}')
selection = input('> ') or default
selection = input('> ').lower() or default
print()
return options[lows.index(selection)]
def center_text(txt: str, spaces: int) -> str:
"""
Put the text in the center in a defined space
>>> center_text('meow', 9)
' meow '
:param txt: Text
:param spaces: Total space of the text
:return: Text with length spaces
"""
spaces -= len(txt)
if spaces % 2 == 1:
spaces -= 1
txt += ' '
while spaces > 0:
spaces -= 2
txt = f' {txt} '
return txt
return find_selection(selection)
def create_config() -> Config:
@@ -94,35 +83,178 @@ def create_config() -> Config:
:return: Config object (automatically stored)
"""
# Select color system
# TODO: Demo of each color system
color_system = literal_input('Which &acolor &bsystem &rdo you want to use?',
['8bit', 'rgb'], 'rgb')
title = 'Welcome to &b&lhy&f&lfetch&r! Let\'s set up some colors first.'
clear_screen(title)
# Print preset
print('Available presets:\n')
spacing = max(max(len(k) for k in PRESETS.keys()), 30)
##############################
# 1. Select color system
try:
# Demonstrate RGB with a gradient. This requires numpy
from .color_scale import Scale
scale2 = Scale(['#12c2e9', '#c471ed', '#f7797d'])
_8bit = [scale2(i / TERM_LEN).to_ansi_8bit(False) for i in range(TERM_LEN)]
_rgb = [scale2(i / TERM_LEN).to_ansi_rgb(False) for i in range(TERM_LEN)]
printc('&f' + ''.join(c + t for c, t in zip(_8bit, '8bit Color Testing'.center(TERM_LEN))))
printc('&f' + ''.join(c + t for c, t in zip(_rgb, 'RGB Color Testing'.center(TERM_LEN))))
print()
printc(f'&a1. Which &bcolor system &ado you want to use?')
printc(f'(If you can\'t see colors under "RGB Color Testing", please choose 8bit)')
print()
color_system = literal_input('Your choice?', ['8bit', 'rgb'], 'rgb')
except ModuleNotFoundError:
# Numpy not found, skip gradient test, use fallback
color_system = literal_input('Which &acolor &bsystem &rdo you want to use?',
['8bit', 'rgb'], 'rgb')
# Override global color mode
GLOBAL_CFG.color_mode = color_system
title += f'\n&e1. Selected color mode: &r{color_system}'
##############################
# 2. Select light/dark mode
clear_screen(title)
light_dark = literal_input(f'2. Is your terminal in &gf(#85e7e9)light mode&r or &gf(#c471ed)dark mode&r?',
['light', 'dark'], 'dark')
is_light = light_dark == 'light'
GLOBAL_CFG.is_light = is_light
title += f'\n&e2. Light/Dark: &r{light_dark}'
##############################
# 3. Choose preset
clear_screen(title)
printc('&a3. Let\'s choose a flag!')
printc('Available flag presets:')
print()
# Create flags = [[lines]]
flags = []
spacing = max(max(len(k) for k in PRESETS.keys()), 20)
for name, preset in PRESETS.items():
flags.append([preset.color_text(' ' * spacing, foreground=False),
'&0' + preset.color_text(center_text(name, spacing), foreground=False),
preset.color_text(' ' * spacing, foreground=False)])
flags_per_row = 3
flag = preset.color_text(' ' * spacing, foreground=False)
flags.append([name.center(spacing), flag, flag, flag])
# Calculate flags per row
flags_per_row = TERM_LEN // (spacing + 2)
while flags:
current = flags[:flags_per_row]
flags = flags[flags_per_row:]
for line in range(len(current[0])):
printc(' '.join(flag[line] for flag in current))
# Print by row
[printc(' '.join(line)) for line in zip(*current)]
print()
print()
tmp = PRESETS['rainbow'].color_text('preset')
preset = literal_input(f'Which {tmp} do you want to use?', PRESETS.keys(), 'rainbow')
tmp = PRESETS['rainbow'].set_light_dl_def(light_dark).color_text('preset')
preset = literal_input(f'Which {tmp} do you want to use?', PRESETS.keys(), 'rainbow', show_ops=False)
_prs = PRESETS[preset]
title += f'\n&e3. Selected flag: &r{_prs.color_text(preset)}'
#############################
# 4. Dim/lighten colors
clear_screen(title)
printc(f'&a4. Let\'s adjust the color brightness!')
printc(f'The colors might be a little bit too {"bright" if is_light else "dark"} for {light_dark} mode.')
print()
# Print cats
num_cols = TERM_LEN // (TEST_ASCII_WIDTH + 2)
ratios = [col / (num_cols - 1) for col in range(num_cols)]
ratios = [(r * 0.4 + 0.1) if is_light else (r * 0.4 + 0.5) for r in ratios]
lines = [ColorAlignment('horizontal').recolor_ascii(TEST_ASCII.replace(
'{txt}', f'{r * 100:.0f}%'.center(5)), _prs.set_light_dl(r, light_dark)).split('\n') for r in ratios]
[printc(' '.join(line)) for line in zip(*lines)]
while True:
print()
printc(f'Which brightness level look the best? (Default: left blank = {GLOBAL_CFG.default_lightness(light_dark):.2f} for {light_dark} mode)')
lightness = input('> ').strip().lower() or None
# Parse lightness
if not lightness or lightness in ['unset', 'none']:
lightness = None
break
try:
lightness = int(lightness[:-1]) / 100 if lightness.endswith('%') else float(lightness)
assert 0 <= lightness <= 1
break
except Exception:
printc('&cUnable to parse lightness value, please input it as a decimal or percentage (e.g. 0.5 or 50%)')
if lightness:
_prs = _prs.set_light_dl(lightness, light_dark)
title += f'\n&e4. Brightness: &r{f"{lightness:.2f}" if lightness else "unset"}'
#############################
# 5. Color arrangement
color_alignment = None
while True:
clear_screen(title)
asc = get_distro_ascii()
asc_width = ascii_size(asc)[0]
fore_back = get_fore_back()
arrangements = [
('Horizontal', ColorAlignment('horizontal', fore_back=fore_back)),
('Vertical', ColorAlignment('vertical'))
]
ascii_per_row = TERM_LEN // (asc_width + 2)
# Random color schemes
pis = list(range(len(_prs.unique_colors().colors)))
slots = len(set(re.findall('(?<=\\${c)[0-9](?=})', asc)))
while len(pis) < slots:
pis += pis
perm = {p[:slots] for p in permutations(pis)}
random_count = ascii_per_row * 2 - 2
if random_count > len(perm):
choices = perm
else:
choices = random.sample(perm, random_count)
choices = [{i + 1: n for i, n in enumerate(c)} for c in choices]
arrangements += [(f'random{i}', ColorAlignment('custom', r)) for i, r in enumerate(choices)]
asciis = [[*ca.recolor_ascii(asc, _prs).split('\n'), k.center(asc_width)] for k, ca in arrangements]
while asciis:
current = asciis[:ascii_per_row]
asciis = asciis[ascii_per_row:]
# Print by row
[printc(' '.join(line)) for line in zip(*current)]
print()
printc(f'&a5. Let\'s choose a color arrangement!')
printc(f'You can choose standard horizontal or vertical alignment, or use one of the random color schemes.')
print('You can type "roll" to randomize again.')
print()
choice = literal_input(f'Your choice?', ['horizontal', 'vertical', 'roll'] + [f'random{i}' for i in range(random_count)], 'horizontal')
if choice == 'roll':
continue
# Save choice
arrangement_index = {k.lower(): ca for k, ca in arrangements}
if choice in arrangement_index:
color_alignment = arrangement_index[choice]
else:
print('Invalid choice.')
continue
break
title += f'\n&e5. Color Alignment: &r{color_alignment}'
# Create config
c = Config(preset, color_system)
clear_screen(title)
c = Config(preset, color_system, light_dark, lightness, color_alignment)
# Save config
print()
save = literal_input(f'Save config?', ['y', 'n'], 'y')
if save == 'y':
c.save()
@@ -132,7 +264,7 @@ def create_config() -> Config:
def run():
# Create CLI
hyfetch = color('&b&lhy&f&lfetch&r')
hyfetch = color('&b&lhyfetch&r')
parser = argparse.ArgumentParser(description=color(f'{hyfetch} - neofetch with flags <3'))
parser.add_argument('-c', '--config', action='store_true', help=color(f'Configure {hyfetch}'))
@@ -140,9 +272,29 @@ def run():
parser.add_argument('-m', '--mode', help=f'Color mode', choices=['8bit', 'rgb'])
parser.add_argument('--c-scale', dest='scale', help=f'Lighten colors by a multiplier', type=float)
parser.add_argument('--c-set-l', dest='light', help=f'Set lightness value of the colors', type=float)
parser.add_argument('-V', '--version', dest='version', action='store_true', help=f'Check version')
parser.add_argument('--debug', action='store_true', help=f'Debug mode')
parser.add_argument('--test-distro', help=f'Test for a specific distro')
parser.add_argument('--test-print', action='store_true', help=f'Test print distro ascii art only')
args = parser.parse_args()
if args.version:
print(f'Version is {VERSION}')
return
# Test distro ascii art
if args.test_distro:
print(f'Setting distro to {args.test_distro}')
GLOBAL_CFG.override_distro = args.test_distro
if args.debug:
GLOBAL_CFG.debug = True
if args.test_print:
print(get_distro_ascii())
return
# Load config
config = check_config()
@@ -156,13 +308,20 @@ def run():
if args.mode:
config.mode = args.mode
# Override global color mode
GLOBAL_CFG.color_mode = config.mode
GLOBAL_CFG.is_light = config.light_dark == 'light'
# Get preset
preset = PRESETS.get(config.preset)
# Lighten
if args.scale:
preset = ColorProfile([c.lighten(args.scale) for c in preset.colors])
preset = preset.lighten(args.scale)
if args.light:
preset = ColorProfile([c.set_light(args.light) for c in preset.colors])
preset = preset.set_light_raw(args.light)
if config.lightness:
preset = preset.set_light_dl(config.lightness)
# Run
run_neofetch(preset, config.mode)
run_neofetch(preset, config.color_align)
+28
View File
@@ -0,0 +1,28 @@
from __future__ import annotations
from dataclasses import dataclass
from typing_extensions import Literal
from .color_util import AnsiMode, LightDark
from .constants import CONFIG_PATH
from .neofetch_util import ColorAlignment
from .serializer import json_stringify, from_dict
@dataclass
class Config:
preset: str
mode: AnsiMode
light_dark: LightDark = 'dark'
lightness: float | None = None
color_align: ColorAlignment = ColorAlignment('horizontal')
@classmethod
def from_dict(cls, d: dict):
d['color_align'] = ColorAlignment.from_dict(d['color_align'])
return from_dict(cls, d)
def save(self):
CONFIG_PATH.parent.mkdir(exist_ok=True, parents=True)
CONFIG_PATH.write_text(json_stringify(self), 'utf-8')
+178 -18
View File
@@ -1,15 +1,124 @@
from __future__ import annotations
import inspect
import os
import platform
import re
import subprocess
from dataclasses import dataclass
from pathlib import Path
from subprocess import check_output
from tempfile import TemporaryDirectory
import pkg_resources
from typing_extensions import Literal
from .color_util import AnsiMode
from hyfetch.color_util import color
from .constants import GLOBAL_CFG
from .presets import ColorProfile
from .serializer import from_dict
RE_NEOFETCH_COLOR = re.compile('\\${c[0-9]}')
def ascii_size(asc: str) -> tuple[int, int]:
"""
Get distro ascii width, height ignoring color code
:param asc: Distro ascii
:return: Width, Height
"""
return max(len(line) for line in re.sub(RE_NEOFETCH_COLOR, '', asc).split('\n')), len(asc.split('\n'))
def normalize_ascii(asc: str) -> str:
"""
Make sure every line are the same width
"""
w = ascii_size(asc)[0]
return '\n'.join(line + ' ' * (w - ascii_size(line)[0]) for line in asc.split('\n'))
def fill_starting(asc: str) -> str:
"""
Fill the missing starting placeholders.
E.g. "${c1}...\n..." -> "${c1}...\n${c1}..."
"""
new = []
last = ''
for line in asc.split('\n'):
new.append(last + line)
# Line has color placeholders
matches = RE_NEOFETCH_COLOR.findall(line)
if len(matches) > 0:
# Get the last placeholder for the next line
last = matches[-1]
return '\n'.join(new)
@dataclass
class ColorAlignment:
mode: Literal['horizontal', 'vertical', 'custom']
# custom_colors[ascii color index] = unique color index in preset
custom_colors: dict[int, int] = ()
# Foreground/background ascii color index
fore_back: tuple[int, int] = ()
@classmethod
def from_dict(cls, d: dict):
return from_dict(cls, d)
def recolor_ascii(self, asc: str, preset: ColorProfile) -> str:
"""
Use the color alignment to recolor an ascii art
:return Colored ascii, Uncolored lines
"""
asc = fill_starting(asc)
if self.fore_back and self.mode in ['horizontal', 'vertical']:
fore, back = self.fore_back
# Replace foreground colors
asc = asc.replace(f'${{c{fore}}}', color('&0' if GLOBAL_CFG.is_light else '&f'))
lines = asc.split('\n')
# Add new colors
if self.mode == 'horizontal':
colors = preset.with_length(len(lines))
asc = '\n'.join([l.replace(f'${{c{back}}}', colors[i].to_ansi()) + color('&r') for i, l in enumerate(lines)])
else:
raise NotImplementedError()
# Remove existing colors
asc = re.sub(RE_NEOFETCH_COLOR, '', asc)
elif self.mode in ['horizontal', 'vertical']:
# Remove existing colors
asc = re.sub(RE_NEOFETCH_COLOR, '', asc)
lines = asc.split('\n')
# Add new colors
if self.mode == 'horizontal':
colors = preset.with_length(len(lines))
asc = '\n'.join([colors[i].to_ansi() + l + color('&r') for i, l in enumerate(lines)])
else:
asc = '\n'.join(preset.color_text(line) + color('&r') for line in lines)
else:
preset = preset.unique_colors()
# Apply colors
color_map = {ai: preset.colors[pi].to_ansi() for ai, pi in self.custom_colors.items()}
for ascii_i, c in color_map.items():
asc = asc.replace(f'${{c{ascii_i}}}', c)
return asc
def get_command_path() -> str:
@@ -18,29 +127,43 @@ def get_command_path() -> str:
:return: Command path
"""
return pkg_resources.resource_filename(__name__, 'scripts/neofetch_mod.sh')
return pkg_resources.resource_filename(__name__, 'scripts/neowofetch')
def get_distro_ascii() -> str:
def get_distro_ascii(distro: str | None = None) -> str:
"""
Get the distro ascii
Get the distro ascii of the current distro. Or if distro is specified, get the specific distro's
ascii art instead.
:return: Distro ascii
"""
return check_output([get_command_path(), "print_ascii"]).decode().strip()
if not distro and GLOBAL_CFG.override_distro:
distro = GLOBAL_CFG.override_distro
if GLOBAL_CFG.debug:
print(distro)
print(GLOBAL_CFG)
cmd = 'print_ascii'
if distro:
os.environ['CUSTOM_DISTRO'] = distro
cmd = 'print_custom_ascii'
return normalize_ascii(check_output([get_command_path(), cmd]).decode().strip())
def run_neofetch(preset: ColorProfile, mode: AnsiMode):
# Get existing ascii
def get_distro_name():
return check_output([get_command_path(), 'ascii_distro_name']).decode().strip()
def run_neofetch(preset: ColorProfile, alignment: ColorAlignment):
"""
Run neofetch with colors
:param preset: Color palette
:param alignment: Color alignment settings
"""
asc = get_distro_ascii()
# Remove existing colors
asc = re.sub('\\${.*?}', '', asc)
# Add new colors
lines = asc.split('\n')
colors = preset.with_length(len(lines))
asc = '\n'.join([colors[i].to_ansi(mode) + l for i, l in enumerate(lines)])
w, h = ascii_size(asc)
asc = alignment.recolor_ascii(asc, preset)
# Write temp file
with TemporaryDirectory() as tmp_dir:
@@ -49,6 +172,43 @@ def run_neofetch(preset: ColorProfile, mode: AnsiMode):
path.write_text(asc)
# Call neofetch with the temp file
os.environ['ascii_len'] = str(max(len(l) for l in lines))
os.environ['ascii_lines'] = str(len(lines))
os.system(get_command_path() + f' --ascii --source {path.absolute()} --ascii-colors')
os.environ['ascii_len'] = str(w)
os.environ['ascii_lines'] = str(h)
if platform.system() != 'Windows':
os.system(f'{get_command_path()} --ascii --source {path.absolute()} --ascii-colors')
if platform.system() == 'Windows':
cmd = get_command_path().replace("\\", "/").replace("C:/", "/c/")
path_str = str(path.absolute()).replace('\\', '/').replace('C:/', '/c/')
cmd = f'ascii_len={w} ascii_lines={h} {cmd} --ascii --source {path_str} --ascii-colors'
full_cmd = ['C:\\Program Files\\Git\\bin\\bash.exe', '-c', cmd]
# print(full_cmd)
subprocess.run(full_cmd)
def get_fore_back(distro: str | None = None) -> tuple[int, int] | None:
"""
Get recommended foreground-background configuration for distro, or None if the distro ascii is
not suitable for fore-back configuration.
:return:
"""
if not distro and GLOBAL_CFG.override_distro:
distro = GLOBAL_CFG.override_distro
if not distro:
distro = get_distro_name().lower()
for k, v in fore_back.items():
if distro.startswith(k.lower()):
return v
return None
# Foreground-background recommendation
fore_back = {
'fedora': (2, 1),
'ubuntu': (2, 1),
}
+371 -3
View File
@@ -1,8 +1,20 @@
from __future__ import annotations
from typing import Iterable
from typing_extensions import Literal
from .color_util import RGB
from .color_util import RGB, LightDark
from .constants import GLOBAL_CFG
def remove_duplicates(seq: Iterable) -> list:
"""
Remove duplicate items from a sequence while preserving the order
"""
seen = set()
seen_add = seen.add
return [x for x in seq if not (x in seen or seen_add(x))]
class ColorProfile:
@@ -17,7 +29,6 @@ class ColorProfile:
else:
self.colors = colors
def with_weights(self, weights: list[int]) -> list[RGB]:
"""
Map colors based on weights
@@ -76,11 +87,58 @@ class ColorProfile:
result += '\033[0m'
result += t
else:
result += colors[i].to_ansi_rgb(foreground) + t
result += colors[i].to_ansi(foreground=foreground) + t
result += '\033[0m'
return result
def lighten(self, multiplier: float) -> ColorProfile:
"""
Lighten the color profile by a multiplier
:param multiplier: Multiplier
:return: Lightened color profile (original isn't modified)
"""
return ColorProfile([c.lighten(multiplier) for c in self.colors])
def set_light_raw(self, light: float, at_least: bool | None = None, at_most: bool | None = None) -> 'ColorProfile':
"""
Set HSL lightness value
:param light: Lightness value (0-1)
:param at_least: Set the lightness to at least this value (no change if greater)
:param at_most: Set the lightness to at most this value (no change if lesser)
:return: New color profile (original isn't modified)
"""
return ColorProfile([c.set_light(light, at_least, at_most) for c in self.colors])
def set_light_dl(self, light: float, term: LightDark = GLOBAL_CFG.light_dark()):
"""
Set HSL lightness value with respect to dark/light terminals
:param light: Lightness value (0-1)
:param term: Terminal color (can be "dark" or "light")
:return: New color profile (original isn't modified)
"""
assert term.lower() in ['light', 'dark']
at_least, at_most = (True, None) if term.lower() == 'dark' else (None, True)
return self.set_light_raw(light, at_least, at_most)
def set_light_dl_def(self, term: LightDark | None = None):
"""
Set default lightness with respect to dark/light terminals
:param term: Terminal color (can be "dark" or "light")
:return: New color profile (original isn't modified)
"""
return self.set_light_dl(GLOBAL_CFG.default_lightness(term), term)
def unique_colors(self) -> ColorProfile:
"""
Create another color profile with only the unique colors
"""
return ColorProfile(remove_duplicates(self.colors))
PRESETS: dict[str, ColorProfile] = {
'rainbow': ColorProfile([
@@ -99,12 +157,14 @@ PRESETS: dict[str, ColorProfile] = {
'#F6AAB7',
'#55CDFD'
]),
'nonbinary': ColorProfile([
'#FCF431',
'#FCFCFC',
'#9D59D2',
'#282828'
]),
'agender': ColorProfile([
'#000000',
'#BABABA',
@@ -114,11 +174,13 @@ PRESETS: dict[str, ColorProfile] = {
'#BABABA',
'#000000'
]),
'queer': ColorProfile([
'#B57FDD',
'#FFFFFF',
'#49821E'
]),
'genderfluid': ColorProfile([
'#FE76A2',
'#FFFFFF',
@@ -132,11 +194,37 @@ PRESETS: dict[str, ColorProfile] = {
'#9B4F96',
'#0038A8'
]),
'pansexual': ColorProfile([
'#FF1C8D',
'#FFD700',
'#1AB3FF'
]),
'polysexual': ColorProfile([
'#F714BA',
'#01D66A',
'#1594F6',
]),
# omnisexual sorced from https://www.flagcolorcodes.com/omnisexual
'omnisexual': ColorProfile([
'#FE9ACE',
'#FF53BF',
'#200044',
'#6760FE',
'#8EA6FF',
]),
# gay men sourced from https://www.flagcolorcodes.com/gay-men
'gay-men': ColorProfile([
'#078D70',
'#98E8C1',
'#FFFFFF',
'#7BADE2',
'#3D1A78'
]),
'lesbian': ColorProfile([
'#D62800',
'#FF9B56',
@@ -144,12 +232,24 @@ PRESETS: dict[str, ColorProfile] = {
'#D462A6',
'#A40062'
]),
# abrosexual used colorpicker to source from
# https://fyeahaltpride.tumblr.com/post/151704251345/could-you-guys-possibly-make-an-abrosexual-pride
'abrosexual': ColorProfile([
'#46D294',
'#A3E9CA',
'#FFFFFF',
'#F78BB3',
'#EE1766',
]),
'asexual': ColorProfile([
'#000000',
'#A4A4A4',
'#FFFFFF',
'#810081'
]),
'aromantic': ColorProfile([
'#3BA740',
'#A8D47A',
@@ -157,4 +257,272 @@ PRESETS: dict[str, ColorProfile] = {
'#ABABAB',
'#000000'
]),
# aroace1 sourced from https://flag.library.lgbt/flags/aroace/
'aroace1': ColorProfile([
'#E28C00',
'#ECCD00',
'#FFFFFF',
'#62AEDC',
'#203856'
]),
'aroace2': ColorProfile([
'#000000',
'#810081',
'#A4A4A4',
'#FFFFFF',
'#A8D47A',
'#3BA740'
]),
'aroace3': ColorProfile([
'#3BA740',
'#A8D47A',
'#FFFFFF',
'#ABABAB',
'#000000',
'#A4A4A4',
'#FFFFFF',
'#810081'
]),
# below sourced from https://www.flagcolorcodes.com/flags/pride
# goto f"https://www.flagcolorcodes.com/{preset}" for info
# todo: sane sorting
'autosexual': ColorProfile([
'#99D9EA',
'#7F7F7F'
]),
'intergender': ColorProfile([
# todo: use weighted spacing
'#900DC2',
'#900DC2',
'#FFE54F',
'#900DC2',
'#900DC2',
]),
'greygender': ColorProfile([
'#B3B3B3',
'#B3B3B3',
'#FFFFFF',
'#062383',
'#062383',
'#FFFFFF',
'#535353',
'#535353',
]),
'akiosexual': ColorProfile([
'#F9485E',
'#FEA06A',
'#FEF44C',
'#FFFFFF',
'#000000',
]),
# bigender sourced from https://www.flagcolorcodes.com/bigender
'bigender': ColorProfile([
'#C479A2',
'#EDA5CD',
'#D6C7E8',
'#FFFFFF',
'#D6C7E8',
'#9AC7E8',
'#6D82D1',
]),
# demigender yellow sourced from https://lgbtqia.fandom.com/f/p/4400000000000041031
# other colors sourced from demiboy and demigirl flags
'demigender': ColorProfile([
'#7F7F7F',
'#C4C4C4',
'#FBFF75',
'#FFFFFF',
'#FBFF75',
'#C4C4C4',
'#7F7F7F',
]),
# demiboy sourced from https://www.flagcolorcodes.com/demiboy
'demiboy': ColorProfile([
'#7F7F7F',
'#C4C4C4',
'#9DD7EA',
'#FFFFFF',
'#9DD7EA',
'#C4C4C4',
'#7F7F7F',
]),
# demigirl sourced from https://www.flagcolorcodes.com/demigirl
'demigirl': ColorProfile([
'#7F7F7F',
'#C4C4C4',
'#FDADC8',
'#FFFFFF',
'#FDADC8',
'#C4C4C4',
'#7F7F7F',
]),
'transmasculine': ColorProfile([
'#FF8ABD',
'#CDF5FE',
'#9AEBFF',
'#74DFFF',
'#9AEBFF',
'#CDF5FE',
'#FF8ABD',
]),
# transfeminine used colorpicker to source from https://www.deviantart.com/pride-flags/art/Trans-Woman-Transfeminine-1-543925985
# linked from https://gender.fandom.com/wiki/Transfeminine
'transfeminine': ColorProfile([
'#73DEFF',
'#FFE2EE',
'#FFB5D6',
'#FF8DC0',
'#FFB5D6',
'#FFE2EE',
'#73DEFF',
]),
# genderfaun sourced from https://www.flagcolorcodes.com/genderfaun
'genderfaun': ColorProfile([
'#FCD689',
'#FFF09B',
'#FAF9CD',
'#FFFFFF',
'#8EDED9',
'#8CACDE',
'#9782EC',
]),
'demifaun': ColorProfile([
'#7F7F7F',
'#7F7F7F',
'#C6C6C6',
'#C6C6C6',
'#FCC688',
'#FFF19C',
'#FFFFFF',
'#8DE0D5',
'#9682EC',
'#C6C6C6',
'#C6C6C6',
'#7F7F7F',
'#7F7F7F',
]),
# genderfae sourced from https://www.flagcolorcodes.com/genderfae
'genderfae': ColorProfile([
'#97C3A5',
'#C3DEAE',
'#F9FACD',
'#FFFFFF',
'#FCA2C4',
'#DB8AE4',
'#A97EDD',
]),
# demifae used colorpicker to source form https://www.deviantart.com/pride-flags/art/Demifae-870194777
'demifae': ColorProfile([
'#7F7F7F',
'#7F7F7F',
'#C5C5C5',
'#C5C5C5',
'#97C3A4',
'#C4DEAE',
'#FFFFFF',
'#FCA2C5',
'#AB7EDF',
'#C5C5C5',
'#C5C5C5',
'#7F7F7F',
'#7F7F7F',
]),
'neutrois': ColorProfile([
'#FFFFFF',
'#1F9F00',
'#000000'
]),
'biromantic1': ColorProfile([
'#8869A5',
'#D8A7D8',
'#FFFFFF',
'#FDB18D',
'#151638',
]),
'biromantic2': ColorProfile([
'#740194',
'#AEB1AA',
'#FFFFFF',
'#AEB1AA',
'#740194',
]),
'autoromantic': ColorProfile([ # symbol interpreted
'#99D9EA',
'#99D9EA',
'#99D9EA',
'#99D9EA',
'#99D9EA',
'#000000',
'#3DA542',
'#3DA542',
'#000000',
'#7F7F7F',
'#7F7F7F',
'#7F7F7F',
'#7F7F7F',
'#7F7F7F',
]),
# i didn't expect this one to work. cool!
'boyflux2': ColorProfile([
'#E48AE4',
'#9A81B4',
'#55BFAB',
'#FFFFFF',
'#A8A8A8',
'#81D5EF',
'#81D5EF',
'#81D5EF',
'#81D5EF',
'#81D5EF',
'#69ABE5',
'#69ABE5',
'#69ABE5',
'#69ABE5',
'#69ABE5',
'#69ABE5',
'#69ABE5',
'#69ABE5',
'#69ABE5',
'#69ABE5',
'#5276D4',
'#5276D4',
'#5276D4',
'#5276D4',
'#5276D4',
'#5276D4',
'#5276D4',
'#5276D4',
'#5276D4',
'#5276D4',
]),
'beiyang': ColorProfile([
'#DF1B12',
'#FFC600',
'#01639D',
'#FFFFFF',
'#000000',
]),
}
+48
View File
@@ -0,0 +1,48 @@
from __future__ import annotations
import dataclasses
import inspect
import json
from datetime import datetime, date
class EnhancedJSONEncoder(json.JSONEncoder):
"""
An improvement to the json.JSONEncoder class, which supports:
encoding for dataclasses, encoding for datetime, and sets
"""
def default(self, o: object) -> object:
# Support encoding dataclasses
# https://stackoverflow.com/a/51286749/7346633
if dataclasses.is_dataclass(o):
return dataclasses.asdict(o)
# Support encoding datetime
if isinstance(o, (datetime, date)):
return o.isoformat()
# Support for sets
# https://stackoverflow.com/a/8230505/7346633
if isinstance(o, set):
return list(o)
return super().default(o)
def json_stringify(obj: object, indent: int | None = None) -> str:
"""
Serialize json string with support for dataclasses and datetime and sets and with custom
configuration.
Preconditions:
- obj != None
:param obj: Objects
:param indent: Indent size or none
:return: Json strings
"""
return json.dumps(obj, indent=indent, cls=EnhancedJSONEncoder, ensure_ascii=False)
def from_dict(cls, d: dict):
return cls(**{k: v for k, v in d.items() if k in inspect.signature(cls).parameters})
Executable → Regular
+488 -79
View File
@@ -780,41 +780,41 @@ image_source="auto"
# Default: 'auto'
# Values: 'auto', 'distro_name'
# Flag: --ascii_distro
# NOTE: AIX, Hash, Alpine, AlterLinux, Amazon, Anarchy, Android, instantOS,
# NOTE: AIX, Asahi, Hash, Alpine, AlterLinux, Amazon, Anarchy, Android, instantOS,
# Antergos, antiX, "AOSC OS", "AOSC OS/Retro", Apricity, ArchCraft,
# ArcoLinux, ArchBox, ARCHlabs, ArchStrike, XFerience, ArchMerge, Arch,
# Artix, Arya, Bedrock, Bitrig, BlackArch, BLAG, BlankOn, BlueLight,
# Bodhi, bonsai, BSD, BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS,
# Bodhi, bonsai, BSD, BunsenLabs, Calculate, Carbs, CentOS, CenterOS, Chakra, ChaletOS,
# Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover, Condres,
# Container_Linux, Crystal Linux, CRUX, Cucumber, dahlia, Debian, Deepin,
# DesaOS, Devuan, DracOS, DarkOs, Itc, DragonFly, Drauger, Elementary,
# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD,
# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, Finnix, FreeBSD,
# FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo,
# gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra, HydroOS
# Hyperbola, iglunix, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion, Korora,
# gNewSense, GNOME, GNU, GoboLinux, GrapheneOS, Grombyang, Guix, Haiku, Huayra,
# HydroOS, Hyperbola, iglunix, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion, Korora,
# KSLinux, Kubuntu, LEDE, LaxerOS, LibreELEC, LFS, Linux_Lite, LMDE,
# Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva, Manjaro, TeArch, Maui,
# Mer, Minix, LinuxMint, Live_Raizo, MX_Linux, Namib, Neptune, NetBSD,
# Netrunner, Nitrux, NixOS, Nurunner, NuTyX, OBRevenge, OpenBSD,
# Mer, Minix, MIRACLE_LINUX, LinuxMint, Live_Raizo, MX_Linux, Namib, Neptune, NetBSD,
# Netrunner, Nitrux, NixOS, NomadBSD, Nurunner, NuTyX, OBRevenge, OpenBSD,
# openEuler, OpenIndiana, openmamba, OpenMandriva, OpenStage, OpenWrt,
# osmc, Oracle, OS Elbrus, PacBSD, Parabola, Pardus, Parrot, Parsix,
# osmc, Oracle, Orchid, OS Elbrus, PacBSD, Parabola, Pardus, Parrot, Parsix,
# TrueOS, PCLinuxOS, Pengwin, Peppermint, Pisi, popos, Porteus, PostMarketOS,
# Proxmox, PuffOS, Puppy, PureOS, Qubes, Qubyt, Quibian, Radix, Raspbian,
# Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan, Regata, Regolith,
# Rocky, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific, Septor,
# Rocky, Rosa, sabotage, Sabayon, Sailfish, SalentOS, ShastraOS, Scientific, Septor,
# SereneLinux, SharkLinux, Siduction, SkiffOS, Slackware, SliTaz, SmartOS,
# Solus, Source_Mage, Sparky, Star, SteamOS, SunOS, openSUSE_Leap, t2,
# openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, Trisquel,
# Ubuntu-Cinnamon, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE,
# Ubuntu-Studio, Ubuntu, Univention, Venom, Void, VNux, LangitKetujuh, semc,
# Ubuntu-Cinnamon, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu Touch, Ubuntu-MATE,
# Ubuntu-Studio, Ubuntu-Sway, Ubuntu, Ultramarine, Univention, Venom, Void, VNux, LangitKetujuh, semc,
# Obarun, windows10, Windows7, Xubuntu, Zorin, and IRIX have ascii logos.
# NOTE: Arch, Ubuntu, Redhat, Fedora and Dragonfly have 'old' logo variants.
# Use '{distro name}_old' to use the old logos.
# NOTE: Ubuntu has flavor variants.
# Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME,
# Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors.
# NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android,
# NOTE: "AOSC OS/Retro", Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, Orchid, android,
# Artix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola,
# Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS,
# Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian,
@@ -999,6 +999,13 @@ get_distro() {
*) distro="OS Elbrus $(< /etc/mcst_version)"
esac
elif [[ -f /etc/NIXOS ]]; then
case $distro_shorthand in
on) distro="NixOS $(nixos-version | awk '{print substr($1,0,5),$2}')" ;;
tiny) distro="NixOS" ;;
*) distro="NixOS $(nixos-version)" ;;
esac
elif type -p pveversion >/dev/null; then
case $distro_shorthand in
on|tiny) distro="Proxmox VE" ;;
@@ -1034,6 +1041,9 @@ get_distro() {
off) distro="${PRETTY_NAME:-${DISTRIB_DESCRIPTION}} ${UBUNTU_CODENAME}" ;;
esac
# Workaround for NomadBSD.
[[ $distro = "FreeBSD"* ]] && [[ -f /usr/bin/nomadbsd-sysinfo ]] && distro=NomadBSD
elif [[ -f /etc/GoboLinuxVersion ]]; then
case $distro_shorthand in
on|tiny) distro=GoboLinux ;;
@@ -1124,6 +1134,15 @@ get_distro() {
distro=$(trim_quotes "$distro")
distro=${distro/NAME=}
if [[ -f /usr/bin/system-image-cli ]]; then
local ut_ota
ut_ota=$(system-image-cli -i | awk '/version tag:/ { print $3 }');
distro="Ubuntu Touch $ut_ota";
# There's a weird UT bug where the HOSTNAME is set to android.
HOSTNAME=$(hostname);
fi
# Get Ubuntu flavor.
if [[ $distro == "Ubuntu"* ]]; then
case $XDG_CONFIG_DIRS in
@@ -1134,6 +1153,7 @@ get_distro() {
*"Lubuntu"*) distro=${distro/Ubuntu/Lubuntu} ;;
*"budgie"*) distro=${distro/Ubuntu/Ubuntu Budgie} ;;
*"cinnamon"*) distro=${distro/Ubuntu/Ubuntu Cinnamon} ;;
*"ubuntusway"*) distro=${distro/Ubuntu/Ubuntu Sway} ;;
esac
fi
;;
@@ -1155,6 +1175,7 @@ get_distro() {
10.16*) codename="macOS Big Sur" ;;
11.*) codename="macOS Big Sur" ;;
12.*) codename="macOS Monterey" ;;
13.*) codename="macOS Ventura" ;;
*) codename=macOS ;;
esac
@@ -1549,6 +1570,7 @@ get_packages() {
has kiss && tot kiss l
has cpt-list && tot cpt-list
has pacman-key && tot pacman -Qq --color never
has click && tot click list
has dpkg && tot dpkg-query -f '.\n' -W
has xbps-query && tot xbps-query -l
has apk && tot apk info
@@ -1677,8 +1699,12 @@ get_packages() {
has scoop && pkgs_h=1 dir ~/scoop/apps/* && ((packages-=1))
# Count chocolatey packages.
[[ -d /cygdrive/c/ProgramData/chocolatey/lib ]] && \
dir /cygdrive/c/ProgramData/chocolatey/lib/*
# [[ -d /c/ProgramData/chocolatey/lib ]] && \
# dir /c/ProgramData/chocolatey/lib/*
has choco && tot choco list --localonly
# Count winget
has winget && tot winget list
;;
Haiku)
@@ -1777,7 +1803,7 @@ get_de() {
Windows)
case $distro in
*"Windows 10"*)
*"Windows 10"*|*"Windows 11"*)
de=Fluent
;;
@@ -2206,6 +2232,18 @@ get_cpu() {
[[ -z "$cpu" ]] && cpu="$(awk -F':' '/family/ {printf $2; exit}' "$cpu_file")"
;;
"loongarch64")
cpu="$(awk -F':' '/Model/ {print $2; exit}' "$cpu_file")"
;;
"arm"* | "aarch64")
cpu="$(lscpu | awk -F': ' '/Vendor ID/ {print $2; exit}' ) $(lscpu | awk -F': ' '/Model name/ {print $2; exit}')"
;;
"riscv"*)
cpu="$(awk -F': ' '/uarch/ {print $2; exit}' "$cpu_file")"
;;
*)
cpu="$(awk -F '\\s*: | @' \
'/model name|Hardware|Processor|^cpu model|chip type|^cpu type/ {
@@ -2449,7 +2487,7 @@ get_cpu() {
cpu="${cpu//, * Compute Cores}"
cpu="${cpu//Core / }"
cpu="${cpu//(\"AuthenticAMD\"*)}"
cpu="${cpu//with Radeon * Graphics}"
cpu="${cpu//with Radeon*Graphics}"
cpu="${cpu//, altivec supported}"
cpu="${cpu//FPU*}"
cpu="${cpu//Chip Revision*}"
@@ -3307,6 +3345,7 @@ get_term() {
[[ "$TERM" == "tw52" || "$TERM" == "tw100" ]] && term="TosWin2"
[[ "$SSH_CONNECTION" ]] && term="$SSH_TTY"
[[ "$WT_SESSION" ]] && term="Windows Terminal"
[[ "$TERMUX_VERSION" ]] && term="Termux $TERMUX_VERSION"
# Check $PPID for terminal emulator.
while [[ -z "$term" ]]; do
@@ -3315,7 +3354,7 @@ get_term() {
name="$(get_process_name "$parent")"
case ${name// } in
"${SHELL/*\/}"|*"sh"|"screen"|"su"*|"newgrp") ;;
"${SHELL/*\/}"|*"sh"|"screen"|"su"*|"newgrp"|"hyfetch") ;;
"login"*|*"Login"*|"init"|"(init)")
term="$(tty)"
@@ -3594,6 +3633,10 @@ END
"$termite_config")"
;;
"Termux $TERMUX_VERSION")
term_font=$(fc-scan /data/data/com.termux/files/home/.termux/font.ttf|grep fullname:|cut -d '"' -f2)
;;
urxvt|urxvtd|rxvt-unicode|xterm)
xrdb=$(xrdb -query)
term_font=$(grep -im 1 -e "^${term/d}"'\**\.*font:' -e '^\*font:' <<< "$xrdb")
@@ -3765,6 +3808,7 @@ get_battery() {
# We use 'prin' here so that we can do multi battery support
# with a single battery per line.
for bat in "/sys/class/power_supply/"{BAT,axp288_fuel_gauge,CMB}*; do
[[ -f ${bat}/capacity && -f ${bat}/status ]] || continue
capacity="$(< "${bat}/capacity")"
status="$(< "${bat}/status")"
@@ -3940,8 +3984,7 @@ get_gpu_driver() {
gpu_driver="${gpu_driver%, }"
if [[ "$gpu_driver" == *"nvidia"* ]]; then
gpu_driver="$(< /proc/driver/nvidia/version)"
gpu_driver="${gpu_driver/*Module }"
gpu_driver="$(< /sys/module/nvidia/version)"
gpu_driver="NVIDIA ${gpu_driver/ *}"
fi
;;
@@ -4720,11 +4763,11 @@ set_text_colors() {
bar_color_elapsed="$(color "$bar_color_elapsed")"
fi
case ${bar_color_total}${1} in
distro[736]) bar_color_total=$(color "$1") ;;
distro[0-9]) bar_color_total=$(color "$2") ;;
*) bar_color_total=$(color "$bar_color_total") ;;
esac
if [[ "$bar_color_total" == "distro" ]]; then
bar_color_total="$(color fg)"
else
bar_color_total="$(color "$bar_color_total")"
fi
}
color() {
@@ -5144,7 +5187,7 @@ ASCII:
--ascii_colors x x x x x x Colors to print the ascii art
--ascii_distro distro Which Distro's ascii art to print
NOTE: AIX, Hash, Alpine, AlterLinux, Amazon, Anarchy, Android,
NOTE: AIX, Asahi, Hash, Alpine, AlterLinux, Amazon, Anarchy, Android,
instantOS, Antergos, antiX, \"AOSC OS\", \"AOSC OS/Retro\",
Apricity, ArchCraft, ArcoLinux, ArchBox, ARCHlabs, ArchStrike,
XFerience, ArchMerge, Arch, Artix, Arya, Bedrock, Bitrig,
@@ -5153,25 +5196,25 @@ ASCII:
Cleanjaro, ClearOS, Clear_Linux, Clover, Condres, Container_Linux,
Crystal Linux, CRUX, Cucumber, dahlia, Debian, Deepin, DesaOS, Devuan,
DracOS, DarkOs, Itc, DragonFly, Drauger, Elementary, EndeavourOS, Endless,
EuroLinux, Exherbo, Fedora, Feren, FreeBSD, FreeMiNT, Frugalware,
EuroLinux, Exherbo, Fedora, Feren, Finnix, FreeBSD, FreeMiNT, Frugalware,
Funtoo, GalliumOS, Garuda, Gentoo, Pentoo, gNewSense, GNOME, GNU,
GoboLinux, Grombyang, Guix, Haiku, Huayra, Hyperbola, iglunix, janus, Kali,
GoboLinux, GrapheneOS, Grombyang, Guix, Haiku, Huayra, Hyperbola, iglunix, janus, Kali,
KaOS, KDE_neon, Kibojoe, Kogaion, Korora, KSLinux, Kubuntu, LEDE,
LaxerOS, LibreELEC, LFS, Linux_Lite, LMDE, Lubuntu, Lunar, macos,
Mageia, MagpieOS, Mandriva, Manjaro, TeArch, Maui, Mer, Minix, LinuxMint,
Mageia, MagpieOS, Mandriva, Manjaro, TeArch, Maui, Mer, Minix, MIRACLE_LINUX, LinuxMint,
Live_Raizo, MX_Linux, Namib, Neptune, NetBSD, Netrunner, Nitrux,
NixOS, Nurunner, NuTyX, OBRevenge, OpenBSD, openEuler, OpenIndiana,
openmamba, OpenMandriva, OpenStage, OpenWrt, osmc, Oracle,
NixOS, NomadBSD, Nurunner, NuTyX, OBRevenge, OpenBSD, openEuler, OpenIndiana,
openmamba, OpenMandriva, OpenStage, OpenWrt, osmc, Oracle, Orchid,
OS Elbrus, PacBSD, Parabola, Pardus, Parrot, Parsix, TrueOS,
PCLinuxOS, Pengwin, Peppermint, Pisi, popos, Porteus, PostMarketOS,
Proxmox, PuffOS, Puppy, PureOS, Qubes, Qubyt, Quibian, Radix, Raspbian, Reborn_OS,
Redstar, Redcore, Redhat, Refracted_Devuan, Regata, Regolith, Rosa,
sabotage, Sabayon, Sailfish, SalentOS, Scientific, Septor,
sabotage, Sabayon, Sailfish, SalentOS, ShastraOS, Scientific, Septor,
SereneLinux, SharkLinux, Siduction, Slackware, SliTaz, SmartOS,
Solus, Source_Mage, Sparky, Star, SteamOS, SunOS, openSUSE_Leap,
t2, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, Trisquel,
Ubuntu-Cinnamon, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE,
Ubuntu-Studio, Ubuntu, Univention, Venom, Void, VNux, LangitKetujuh, semc,
Ubuntu-Studio, Ubuntu-Sway, Ubuntu, Ultramarine, Univention, Venom, Void, VNux, LangitKetujuh, semc,
Obarun, windows10, Windows7, Xubuntu, Zorin, and IRIX have ascii logos.
NOTE: Arch, Ubuntu, Redhat, Fedora and Dragonfly have 'old' logo variants.
@@ -5183,8 +5226,8 @@ ASCII:
NOTE: Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME,
Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors.
NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android,
NOTE: \"AOSC OS/Retro\", Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, Orchid, android,
Artix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola,
Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS,
Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian,
@@ -5557,15 +5600,41 @@ h//NNNNh ossss` +h md- .hm/ `sNNNNN:+y
EOF
;;
"Aperio GNU/Linux"*)
set_colors 255
read -rd '' ascii_data <<'EOF'
"Aperio GNU/Linux"*)
set_colors 255
read -rd '' ascii_data <<'EOF'
${c2}
_.._ _ ._.. _
(_][_)(/,[ |(_)
| GNU/Linux
EOF
;;
"Asahi"*)
set_colors 3 2 1 8 7 6 4
read -rd '' ascii_data <<'EOF'
${c1} ## ${c2}**
${c1}*####${c2}****.
${c1}###${c2},
${c3}...,${c1}/#${c3},,,..
${c3}/*,,,,,,,,${c1}*${c3},........${c4},,
${c3},((((((//*,,,,,,,,${c4},......
${c3}((((((((((((((${c5}%..${c4}..........
${c3},(((((((((((((((${c5}@@(${c4}............
${c3}(((((((((((((((((${c5}@@@@/${c4}............
${c3},((((((((((((((((((${c5}@@@@@&*${c4}...........
${c3}((((((((((((((((((((${c5}@@@@@@@&${c4},...........
${c3}(((((((((((((((((((((${c5}@@@${c6}&%&${c5}@@@%${c4},..........
${c3}/(((((((((((((((((((${c5}@@@${c6}&%%&${c5}@@@@(${c4}........
${c3},((((((((((((((((${c5}@@@${c6}&&${c5}@@&/&@@@/${c4}..
${c3}/((((((((((((${c5}@@@@@@/${c4}.../&&
${c3}.(((((((((${c5}@@@@(${c4}....
${c3}/(((((${c5}@@#${c4}...
${c3}.((${c4}&,
EOF
;;
"Hash"*)
set_colors 123
@@ -5868,6 +5937,21 @@ ${c2} .........
${c3}################
EOF
;;
"aoscosretro_small")
set_colors 4 7 1 3
read -rd '' ascii_data <<'EOF'
${c2} _____ ${c1}_____${c2}
-' '-${c1}| |${c2}
/ ___ ${c1}| |${c2}
| / _ \\${c1}|_____|${c2}
' / /_\\ \\
\\ / _____ \\${c4}___
${c3}|${c2}/_/ ${c3}| ${c4}| |
${c3}| | ${c4}|___|
${c3}|_____|
EOF
;;
"AOSC OS"*)
set_colors 4 7 1
@@ -6637,6 +6721,24 @@ ${c2} <><><><>
EOF
;;
"Center"*)
read -rd '' ascii_data <<'EOF'
${c2} .
o,
. d, .
';' ..d;.. .cl'
.:; 'oldO,.oo.
..,:,xKXxoo;'.
,;;;;;ldxkONMMMXxkxc;;;;;.
.....':oddXWMNOxlcl:......
.:dlxk0c;:. .
:d:.,xcld,.,:.
;l, .l; ';'
.o;
l,
EOF
;;
"Chakra"*)
set_colors 4 5 7 6
read -rd '' ascii_data <<'EOF'
@@ -7491,6 +7593,29 @@ ${c1} `----------`
EOF
;;
"Finnix"*)
set_colors 4 7 7
read -rd '' ascii_data <<'EOF'
${c1} ,,:;;;;:,,
,;*%S########S%*;,
;?#################S?:
:%######################?:
+##########################;
+############################;
:#############.**,#############,
*###########+ +###########+
?########## ${c3}Finnix${c1} ##########*
*###########, ,###########+
:#############%..%#############,
*############################+
*##########################+
;S######################%:
,+%##################%;
:+?S##########S?+:
,:;++++;:,
EOF
;;
"freebsd_small")
set_colors 1 7 3
read -rd '' ascii_data <<'EOF'
@@ -7809,6 +7934,35 @@ ${c1} _____ _
EOF
;;
"GrapheneOS"*)
set_colors 7 4
read -rd '' ascii_data <<'EOF'
${c1} B?
G~
G~&
G!^:^?#
&^.:::.J
&PG& #G5JJ7~^~?JY5B& #PG
B5JJPGJ77YG5JYP# && &B5JYPGJ7?YG5JYP#
&Y..::.:P& &?..::.:G
#!::::? B~::::J
B~J# B!?#
!P 75
!P 75
!5 7Y
&Y~:^!P &J~:^!P
P..::.:B Y..::.:#
#PYJJ~^^!JJYP# &B5YJ?~^^!JJYG#
&YYG# && #PYJ5G5??JGGYJ5G& && #PYP
B^.::..7&
J::::^G
#Y^G&
B~
G!
#
EOF
;;
"Grombyang"*)
set_colors 4 2 1
read -rd '' ascii_data <<'EOF'
@@ -8683,6 +8837,28 @@ ${c2} -sdhyo+:-` -/syymm:
EOF
;;
"MIRACLE LINUX"* | "MIRACLE_LINUX"*)
set_colors 29
read -rd '' ascii_data <<'EOF'
${c1} ,A
.###
.#' .#### .#.
r##: :#### ####.
+###; :#### ######C
:####: #### ,######".#.
.# :####. :### #####'.#####.
##: `####. ### ###'.########+.
#### `####::## ##'.#######+'
####+.`###i## #',####:'
`+###MI`##### 'l###:'
`+####+`### ;#E'
`+###:## #'
`:### '
'##
';
EOF
;;
"linuxmint_small"*)
set_colors 2 7
read -rd '' ascii_data <<'EOF'
@@ -8956,25 +9132,34 @@ EOF
"nixos_old"*)
set_colors 4 6
read -rd '' ascii_data <<'EOF'
${c1} ::::. ${c2}'::::: ::::'
${c1} '::::: ${c2}':::::. ::::'
${c1} ::::: ${c2}'::::.:::::
${c1} .......:::::..... ${c2}::::::::
${c1} ::::::::::::::::::. ${c2}:::::: ${c1}::::.
::::::::::::::::::::: ${c2}:::::. ${c1}.::::'
${c2} ..... ::::' ${c1}:::::'
${c2} ::::: '::' ${c1}:::::'
${c2} ........::::: ' ${c1}:::::::::::.
${c2}::::::::::::: ${c1}:::::::::::::
${c2} ::::::::::: ${c1}.. ${c1}:::::
${c2} .::::: ${c1}.::: ${c1}:::::
${c2} .::::: ${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}/\
${c1} \######\ ${c2}\###########/ ${c1}/##\
${c1} ________\######\______${c2}\#########/ ${c1}/####\
${c1} /#######################${c2}\#######/ ${c1}/######
${c1} /#########################${c2}\######\ ${c1}/######/
${c1} /###########################${c2}\######\ ${c1}/######/
${c1} ¯¯¯¯¯¯¯¯¯¯¯¯${c2}/######/${c1}¯¯¯¯¯¯¯¯¯${c2}\######${c1}/######/
${c2} /######/ ${c2}\####${c1}/######/________
${c2} _____________/######/ ${c2}\##${c1}/################\
${c2} /###################/ ${c2}\${c1}/##################\
${c2} \##################/${c1}\ /###################/
${c2} \################/${c1}##\ /######/¯¯¯¯¯¯¯¯¯¯¯¯¯
${c2} ¯¯¯¯¯¯¯¯/######/${c1}####\ /######/
${c2} /######/${c1}######\${c2}_________${c1}/######/${c2}____________
${c2} /######/ ${c1}\######\${c2}###########################/
${c2} /######/ ${c1}\######\${c2}#########################/
${c2} ######/ ${c1}/#######\${c2}#######################/
${c2} \####/ ${c1}/#########\${c2}¯¯¯¯¯¯\######\¯¯¯¯¯¯¯¯
${c2} \##/ ${c1}/###########\${c2} \######\
${c2} \/ ${c1}/#####/\######\${c2} \######\
${c1} ${c1}/#####/ \######\${c2} \######\
${c1} ${c1}/#####/ \######\${c2} \######
${c1} ${c1}\####/ \######\${c2} \####/
${c1} ${c1}¯¯¯¯ ¯¯¯¯¯¯¯${c2} ¯¯¯¯
EOF
;;
@@ -9004,6 +9189,25 @@ ${c1} ▝▀▀▀ ▀▀▀▀▘ ${c2}▀▀▀▘
EOF
;;
"NomadBSD"*)
set_colors 4
read -rd '' ascii_data <<'EOF'
${c1} _======__
(===============\\
(===================\\
_ _---__
(= ====-
(= ======
(== ======
(== ======
(==\\ \\=-_ _=/ /====/
(==\\ \\========/ /====/ /====-_
(==\\ \\=====/ /==/ /===--
/================/ /===-
\\===========/
EOF
;;
"Nurunner"*)
set_colors 4
read -rd '' ascii_data <<'EOF'
@@ -9312,6 +9516,51 @@ ${c1}
EOF
;;
"orchid_small"*)
set_colors 255 127
read -rd '' ascii_data <<'EOF'
${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}#-
:##:
EOF
;;
"orchid"*)
set_colors 255 127 127
read -rd '' ascii_data <<'EOF'
${c2} .==.
.-${c3}#${c1}@@${c3}#${c2}-.
.-${c3}##${c1}@@@@${c3}##${c2}-.
.-${c3}##${c1}@@@@@@@@${c3}##${c2}-.
:*${c1}@@@@@${c3}####${c1}@@@@@${c2}*:
..:*${c1}@@@@${c2}==--==${c1}@@@@${c2}*:..
.-*${c1}%%${c3}#${c2}==${c3}#${c1}@@${c3}#${c2}====${c3}#${c1}@@${c3}#${c2}==${c3}#${c1}%%${c2}*-.
.-${c3}#${c1}@@@@@${c3}##${c2}==${c3}#${c1}@@${c2}++${c1}@@${c3}##${c2}==${c3}#${c1}@@@@@${c3}#${c2}-.
.-${c3}#${c1}@@@@@${c2}#${c1}@@@${c3}#${c2}++#====${c3}#${c2}++#${c1}@@@${c2}#${c1}@@@@@${c3}#${c2}-.
.-${c3}#${c1}@@@@@${c3}#${c2}-==**${c3}###${c2}+:--:+${c3}###${c2}**==-${c3}#${c1}@@@@@${c3}#${c2}-.
.-${c3}#${c1}@@@@@${c3}#${c2}-==**${c3}###${c2}+:--:+${c3}###${c2}**==-${c3}#${c1}@@@@@${c3}#${c2}-.
.-${c3}#${c1}@@@@@${c2}#${c1}@@@${c3}#${c2}++#====${c3}#${c2}++#${c1}@@@${c2}#${c1}@@@@@${c3}#${c2}-.
.-${c3}#${c1}@@@@@${c3}##${c2}==${c3}#${c1}@@${c2}++${c1}@@${c3}##${c2}==${c3}#${c1}@@@@@${c3}#${c2}-.
.-*${c1}%%${c3}#${c2}==${c3}#${c1}@@${c3}#${c2}====${c3}#${c1}@@${c3}#${c2}==${c3}#${c1}%%${c2}*-.
..:*${c1}@@@@${c2}==--==${c1}@@@@${c2}*:..
:*${c1}@@@@@${c3}####${c1}@@@@@${c2}*:
.-${c3}##${c1}@@@@@@@@${c3}##${c2}-.
.-${c3}##${c1}@@@@${c3}##${c2}-.
.-${c3}#${c1}@@${c3}#${c2}-.
.==.
EOF
;;
"OS Elbrus"*)
set_colors 4 7 3
read -rd '' ascii_data <<'EOF'
@@ -10328,6 +10577,31 @@ ${c2} `:smMM${c4}yy${c3}MMNy/`
EOF
;;
"ShastraOS"*)
set_colors 6
read -rd '' ascii_data <<'EOF'
${c1} ..,;;,'.
':oo. ;o:
:o, ol
.oo ..';co:
ooo',;:looo;
.;lddl
cx .xl .c:'
dd xx xx ,d;
.xd cx. xx dd.
cx: .xo xx ,x:
'xl xx cx' .xl
xd, xx .xd dx.
.xo:xx xx .xx
'c xx:.'lx:
..,;cxxxo
.';:codxxl lxo
cd. 'xo
:o, 'ld
.oc'...';lo
EOF
;;
"Scientific"*)
set_colors 4 7 1
read -rd '' ascii_data <<'EOF'
@@ -10944,6 +11218,20 @@ ${c4} `soooo. .oooo`
EOF
;;
"Ubuntu Touch"*)
set_colors 3 7
read -rd '' ascii_data <<'EOF'
${c1}
###############
## ##
## ${c2}##${c1} ${c2}##${c1} ##
## ${c2}##${c1} ${c2}#${c1} ${c2}#${c1} ${c2}##${c1} ##
## ${c2}###${c1} ##
## ##
###############
EOF
;;
"Ubuntu MATE"* | "Ubuntu-MATE"*)
set_colors 2 7
read -rd '' ascii_data <<'EOF'
@@ -11020,7 +11308,33 @@ ${c1} ..-::::::-.`
..-::::::-..
EOF
;;
"Ubuntu Sway"* | "Ubuntu-Sway")
set_colors 6 7
read -rd '' ascii_data <<'EOF'
${c1} .-/+oossssoo+\-.
´:+ssssssssssssssssss+:`
-+ssssssssssssssssss${c2}yy${c1}ssss+-
.ossssssssssssssssss${c2}dMMMNyy${c1}ssso.
/sssssssssss${c2}hdmmNNmmyNMMMMh${c1}ssssss\
+sssssssss${c2}hm${c1}ydMMMMMMMNdd${c2}ddy${c1}ssssssss+
/ssssssss${c2}hN${c1}MM${c2}M${c1}yh${c2}hyyyyhmNM${c1}MM${c2}Nh${c1}ssssssss\
.ssssssss${c2}dM${c1}MM${c2}Nh${c1}ssssssssss${c2}hN${c1}MM${c2}Md${c1}ssssssss.
+sss${c2}yyyyyN${c1}MM${c2}Ny${c1}ssssssssssss${c2}yN${c1}MM${c2}My${c1}sssssss+
ossy${c2}NMMMNy${c1}MM${c2}h${c1}ssssssssssssss${c2}hm${c1}mm${c2}h${c1}ssssssso
ossy${c2}NMMMNy${c1}MM${c2}h${c1}sssssssssssssshmmmh${c1}ssssssso
+sss${c2}yyyyyN${c1}MM${c2}Ny${c1}ssssssssssss${c2}yN${c1}MM${c2}My${c1}sssssss+
.ssssssss${c2}dM${c1}MM${c2}Nh${c1}ssssssssss${c2}hN${c1}MM${c2}Md${c1}ssssssss.
\ssssssss${c2}hN${c1}MM${c2}M${c1}yh${c2}hyyyyhdNM${c1}M${c2}MNh${c1}ssssssss/
+sssssssss${c2}dm${c1}ydMMMMMMMMdd${c2}ddy${c1}ssssssss+
\sssssssssss${c2}hdmNNNNmyNMMMMh${c1}ssssss/
.ossssssssssssssssss${c2}dMMMNyy${c1}ssso.
-+sssssssssssssssss${c2}yy${c1}sss+-
`:+ssssssssssssssssss+:`
.-\+oossssoo+/-.
EOF
;;
"ubuntu_small")
set_colors 1 7 3
read -rd '' ascii_data <<'EOF'
@@ -11058,6 +11372,57 @@ oss${c2}yNMMMNyMMh${c1}sssssssssssssshmmmh${c1}ssssssso
.-\+oossssoo+/-.
EOF
;;
"Ultramarine Linux"* | "ultramarine"*)
set_colors 4 7
read -rd '' ascii_data <<'EOF'
${c1} .cd0NNNNNNNXOdc.
.:xKNNNNNNNNNNNNNNNNKd;.
,dXNNNNNNNNNNNNNNNNNNNNNNNd,
'ONNNNNNNNNNNNNNNNNNNNNNNNNNNNO'
.xNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNk.
.0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN0.
.0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN0.
dNNNNNNNNNNNNWWWWWWWWNNNNNNNNNNNNNNNNNNd
NNNNNNNNNNNNNW${c2}MMMMMMMM${c1}WWNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNW${c2}MMMMMMMMM${c1}WWNNNNNNNNNNNNNN
NNNNNNNNNNNNNNW${c2}MMMMMMMMMMMM${c1}WNNNNNNNNNNNN
NNNNNNNNNNWWW${c2}MMMMMMMMMMMMMMMM${c1}WWWNNNNNNNX
oNWWWW${c2}MMMMMMMMMMMMMMMMMMMMMMMMMMMM${c1}WWWNNo
OW${c2}MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM${c1}WO
.OW${c2}MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM${c1}WO.
lNW${c2}MMMMMMMMMMMMMMMMMMMMMMMMMMMM${c1}WNl
.dNW${c2}MMMMMMMMMMMMMMMMMMMMMMMM${c1}WNd.
.cKW${c2}MMMMMMMMMMMMMMMMMMMM${c1}WKc.
'oOXWWW${c2}MMMMMMMM${c1}WWWXOl.
;lkXNNNNNNXkl'
EOF
;;
"Univalent"*)
set_colors 6 6
read -rd '' ascii_data <<'EOF'
${c1}
UUUUUUU UUUUUUU
UUUUUUU UUUUUUU
UUUUUUU A UUUUUUU
UUUUUUU A|A UUUUUUU
UUUUUUU A | A UUUUUUU
UUUUUUU A | A UUUUUUU
UUUUUUU A| | |A UUUUUUU
UUUUUUU A | | | A UUUUUUU
UUUUUUU A | | | A UUUUUUU
UUUUUUU A | | | A UUUUUUU
UUUUUUU A | | | A UUUUUUU
UUUUUUU A | | | A UUUUUUU
UUUUUUU A | | | A UUUUUUU
UUUUUUU A | | | A UUUUUUU
UUUUUUU A | | | A UUUUUUU
UUUUUUUAAAAAAAAAAAUUUUUUU
UUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUU
EOF
;;
"Univention"*)
set_colors 1 7
@@ -11085,6 +11450,32 @@ ${c1} ./osssssssssssssssssssssso+-
EOF
;;
"uwuntu"*)
set_colors 225 206 52
read -rd '' ascii_data <<'EOF'
${c1} &&
&&&&&&&&
, *&&&&&& &&&&&&&&(
&%%%%&&&& &&&&&&&&&&&& ,&&&&&
%%${c2}%%%%&&${c1}&&& ,&&&&&&&&&&&&&, %&&&$&&&%%$%%%.
&%%%${c2}%&&&&&${c1}&&# &, &&&&&&${c2}&&&&&&&%%%${c1}%%
&%%&&${c2}&&&&${c1}&&&( &&&${c2}&&&&&&%${c1}%%%
&&&&&${c2}&&&${c1}&% *&&${c2}&&&&&${c1}&&%
&&&/ &&&&${c3}\${c1}& ,${c3}/${c1}*.**
%&&&&&&&& &&&${c3}⟩${c1}., *.${c3}⟨${c1}
%&&&&&&&& &&${c3}/${c1}.. ${c3}/ \${c1} ..${c3}\${c1}(&&&&&&
#&&&#%%%%.%%%( ${c3}\_/\_/${c1} (%%%.%%%%/
/%%%%%%%&&* ,&&&%%%%%%&
&&&&&&&& &&&&&&&&&&&
(&&&&& &&&&&&&&&&&
${c2}%%${c1} & &&&&&&&&&&&& &&&&&&&
${c2}%%%${c1} #&&&&&&# &&&&&&&&&
${c2}%%%%% %%${c1} #&&&&&(
${c2}&%. %%%${c1}
${c2}%%%%%%%
EOF
;;
"Venom"*)
set_colors 8 4
read -rd '' ascii_data <<'EOF'
@@ -11120,28 +11511,34 @@ EOF
;;
"Void"*)
set_colors 2 8
set_colors 8 2 7
read -rd '' ascii_data <<'EOF'
${c1} __.;=====;.__
_.=+==++=++=+=+===;.
-=+++=+===+=+=+++++=_
. -=:`` `--==+=++==.
_vi, ` --+=++++:
.uvnvi. _._ -==+==+.
.vvnvnI` .;==|==;. :|=||=|.
${c2}+QmQQm${c1}pvvnv; ${c2}_yYsyQQWUUQQQm #QmQ#${c1}:${c2}QQQWUV$QQm.
${c2} -QQWQW${c1}pvvo${c2}wZ?.wQQQE${c1}==<${c2}QWWQ/QWQW.QQWW${c1}(: ${c2}jQWQE
${c2} -$QQQQmmU' jQQQ@${c1}+=<${c2}QWQQ)mQQQ.mQQQC${c1}+;${c2}jWQQ@'
${c2} -$WQ8Y${c1}nI: ${c2}QWQQwgQQWV${c1}`${c2}mWQQ.jQWQQgyyWW@!
${c1} -1vvnvv. `~+++` ++|+++
+vnvnnv, `-|===
+vnvnvns. . :=-
-Invnvvnsi..___..=sv=. `
+Invnvnvnnnnnnnnvvnn;.
~|Invnvnvvnvvvnnv}+`
-~|{*l}*|~
${c1} ..........
.::::::::::::::::::..
..:::::::::::::::::::::::::.
'::::::::::::::::::::::::::::.
':::::'' '':::::::::::::.
${c3} .. ${c1}' '':::::::::.
${c3} .||. ${c1}':::::::::
${c3} .|||||. ${c1}'::::::::
${c3} .|||||||: ${c1}::::::::
${c3} |||||||: ${c1}.::::::::. ::::::::
${c2} ######${c3}||||||' ${c2}##^ v##########v${c1}::. ${c2}##### #############v
${c2} ######${c3}||||| ${c2}##^ v####${c1}::::::${c2}####v${c1}::${c2}##### #####${c1}:::::${c2}#####
${c2} ######${c3}||${c2}##^ #####${c1}::::::${c2}#####${c1}::${c2}##### #####${c1}:::::${c2}######
${c2} ######^${c3}|| ${c2}#####${c1}:::::${c2}####^${c1}::${c2}##### #####${c1}:::::${c2}#####^
${c2} ##^${c3}||||| ${c2}^###########^${c1}:::${c2}##### ##############^
${c3} |||||||: ${c1}'::::::::' .::::::::
${c3} '|||||||: ${c1}.::::::::'
${c3} '|||||||:. ${c1}'::::::
${c3} '||||||||:. ${c1}':::
${c3} ':|||||||||. . ${c1}'
${c3} '|||||||||||:... ...:||||.
${c3} ':||||||||||||||||||||||||||.
${c3} ':|||||||||||||||||||||||''
${c3} '':||||||||||||||:''
${c3} ''''''
EOF
;;
"VNux"*)
@@ -11235,7 +11632,7 @@ EOF
*"[Windows 11]"*|*"on Windows 11"*|\
"Windows 11"* |"windows11")
set_colors 6 7
set_colors 4 6
read -rd '' ascii_data <<'EOF'
${c1}
################ ################
@@ -11594,6 +11991,11 @@ main() {
return 0
}
get_ascii_distro_name() {
get_distro
echo "$ascii_distro"
}
get_print_ascii() {
cache_uname
get_os
@@ -11603,4 +12005,11 @@ get_print_ascii() {
echo "$ascii_data"
}
get_print_custom_ascii() {
distro="$CUSTOM_DISTRO"
ascii_distro=$distro
get_distro_ascii
echo "$ascii_data"
}
main "$@"
+5 -5
View File
@@ -309,20 +309,20 @@ bonsai, BSD, BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS,
Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover, Condres,
Container_Linux, CRUX, Cucumber, dahlia, Debian, Deepin, DesaOS,
Devuan, DracOS, DarkOs, Itc, DragonFly, Drauger, Elementary,
EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD,
EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, Finnix, FreeBSD,
FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo,
gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra, HydroOS,
Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion, Korora,
gNewSense, GNOME, GNU, GoboLinux, GrapheneOS, Grombyang, Guix, Haiku, Huayra,
HydroOS, Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion, Korora,
KSLinux, Kubuntu, LEDE, LaxerOS, LibreELEC, LFS, Linux_Lite, LMDE,
Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva, Manjaro, TeArch, Maui,
Mer, Minix, LinuxMint, Live_Raizo, MX_Linux, Namib, Neptune, NetBSD,
Netrunner, Nitrux, NixOS, Nurunner, NuTyX, OBRevenge, OpenBSD,
Netrunner, Nitrux, NixOS, NomadBSD, Nurunner, NuTyX, OBRevenge, OpenBSD,
openEuler, OpenIndiana, openmamba, OpenMandriva, OpenStage, OpenWrt,
osmc, Oracle, OS Elbrus, PacBSD, Parabola, Pardus, Parrot, Parsix,
TrueOS, PCLinuxOS, Pengwin, Peppermint, Pisi, popos, Porteus, PostMarketOS,
Proxmox, Puppy, PureOS, Qubes, Quibian, Radix, Raspbian, Reborn_OS,
Redstar, Redcore, Redhat, Refracted_Devuan, Regata, Regolith, Rosa,
sabotage, Sabayon, Sailfish, SalentOS, Scientific, Septor,
sabotage, Sabayon, Sailfish, SalentOS, ShastraOS, Scientific, Septor,
SereneLinux, SharkLinux, Siduction, Slackware, SliTaz, SmartOS,
Solus, Source_Mage, Sparky, Star, SteamOS, SunOS, openSUSE_Leap,
t2, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, Trisquel,
+25
View File
@@ -0,0 +1,25 @@
{
"name": "neowofetch",
"version": "1.2.0",
"description": "Updated neofetch",
"repository": {
"type": "git",
"url": "git+https://github.com/hykilpikonna/neofetch.git"
},
"bin": {
"neowofetch": "neofetch"
},
"keywords": [
"neofetch",
"screenfetch"
],
"author": "dylanaraps",
"contributors": [
"Azalea Gui <me@hydev.org> (https://github.com/hykilpikonna)"
],
"license": "MIT",
"bugs": {
"url": "https://github.com/hykilpikonna/neofetch/issues"
},
"homepage": "https://github.com/hykilpikonna/neofetch#readme"
}
+2
View File
@@ -1,3 +1,5 @@
#!/usr/bin/env python3
import hyfetch
if __name__ == '__main__':
+3 -1
View File
@@ -1,3 +1,4 @@
#!/usr/bin/env python3
import pathlib
from setuptools import setup
@@ -32,10 +33,11 @@ setup(
packages=['hyfetch'],
package_data={'hyfetch': ['hyfetch/*']},
include_package_data=True,
install_requires=['setuptools', 'hypy_utils==1.0.6', 'typing_extensions'],
install_requires=['setuptools', 'typing_extensions'],
entry_points={
"console_scripts": [
"hyfetch=hyfetch.main:run",
]
},
scripts=['hyfetch/scripts/neowofetch']
)
+3 -4
View File
@@ -1,6 +1,5 @@
from hypy_utils import printc
from hyfetch.color_util import RGB
from hyfetch.color_scale import test_color_scale
from hyfetch.color_util import RGB, printc
from hyfetch.neofetch_util import get_command_path, run_neofetch
from hyfetch.presets import PRESETS
@@ -35,6 +34,6 @@ def test_rgb_8bit_conversion():
print()
if __name__ == '__main__':
test_rgb_8bit_conversion()
test_color_scale()