diff --git a/README.md b/README.md
index 6af1360..5ee3745 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@ A meme system info tool for (almost) all your Linux/Unix-based systems, based on
## Currently supported distros
-Nyarch Linuwu, Nyartix Linuwu, Debinyan, Fedowa, GentOwO, Myanjawo, and UwUntu; Plus Nyandroid; and FweeBSD, and OwOpenBSD.
+Nyarch Linuwu, Nyartix Linuwu, Debinyan, Fedowa, GentOwO, Miwint, Myanjawo, Pop OwOs, UwUntu, and Void; Plus Nyandroid; and FweeBSD, and OwOpenBSD.
## Building and installation
diff --git a/res/IMAGES.md b/res/IMAGES.md
index e8fbfa7..fb2fc77 100644
--- a/res/IMAGES.md
+++ b/res/IMAGES.md
@@ -15,7 +15,7 @@ Images are working in almost every terminal, for a better experience i recommend
Debinyan by u/Ishaan_P ([here](https://www.reddit.com/r/linuxmasterrace/comments/lxqip4/debinyan/))
Endowo Os by u/zuru2003 ([here](https://www.reddit.com/r/linuxmasterrace/comments/ly9zed/endowo_os/))
Fedowa by u/iD3nis124 ([here](https://www.reddit.com/r/linuxmasterrace/comments/lxjp3s/saw_nyarch_and_had_to_do_fedowa/))
- GentOwO by u/Abbix57 ([here](https://www.reddit.com/r/linuxmasterrace/comments/lyeija/gentowo/))
+ GentOwO by u/TheSatisfiedPig ([here](https://www.reddit.com/r/linuxmasterrace/comments/m11aml/genchu/))
Myanjawo by u/matrixrunner ([here](https://www.reddit.com/r/linuxmasterrace/comments/lxx9h7/myanjawo_also_in_wallpaper/))
Miwint by u/iD3nis124 ([here](https://www.reddit.com/r/linuxmasterrace/comments/ly8oy0/seen_a_lot_of_people_asking_for_mint_so_here_it_is/))
KDE Uwon by u/muff2 ([here](https://www.reddit.com/r/linuxmasterrace/comments/lxt82v/kde_uwon/))
diff --git a/res/gentoo.png b/res/gentoo.png
index c673a0b..1110605 100644
Binary files a/res/gentoo.png and b/res/gentoo.png differ
diff --git a/uwufetch.c b/uwufetch.c
index 8cb639e..460af8e 100644
--- a/uwufetch.c
+++ b/uwufetch.c
@@ -40,7 +40,7 @@ struct rusage r_usage;
struct utsname sys_var;
struct sysinfo sys;
int ram_max, pkgs, a_i_flag = 0;
-char user[32], host[253], shell[64], version_name[64], cpu_model[256], pkgman_name[64];
+char user[32], host[253], shell[64], version_name[64], cpu_model[256], pkgman_name[64], image_name[32];
int pkgman();
void get_info();
void list();
@@ -53,11 +53,15 @@ void uwu_name();
int main(int argc, char *argv[]) {
int opt = 0;
get_info();
- while((opt = getopt(argc, argv, "ad:hil")) != -1) {
+ while((opt = getopt(argc, argv, "ad:hilc:")) != -1) {
switch(opt) {
case 'a':
a_i_flag = 0;
break;
+ case 'c':
+ a_i_flag = 1;
+ sprintf(image_name, "%s", optarg);
+ break;
case 'd':
if (optarg) sprintf(version_name, "%s", optarg);
break;
@@ -140,7 +144,7 @@ void get_info() { // get all necessary info
closedir(system_app);
closedir(system_priv_app);
sprintf(version_name, "android");
- } else sprintf(version_name, "generic");
+ } else sprintf(version_name, "unknown");
}
// user name, host name and shell
if (strcmp(version_name, "android") != 0) {
@@ -163,8 +167,8 @@ void get_info() { // get all necessary info
memmove(&shell[0], &shell[5], 16);
// system info
- if (uname(&sys_var) == -1) printf("There was some kind of error while getting the username\n");
- if (sysinfo(&sys) == -1) printf("There was some kind of error while getting system info\n");
+ uname(&sys_var);
+ sysinfo(&sys);
// ram
ram_max = sys.totalram * sys.mem_unit / 1048576;
@@ -173,10 +177,24 @@ void get_info() { // get all necessary info
}
void list(char* arg) { // prints distribution list
- printf("%s -d \n"
- "Available distributions:\n"
- "%s%sarch, artix, %sdebian, %subuntu, %sfedora, %sgentoo, %smanjaro, \"manjaro-arm\", android, %sopenbsd, %sfreebsd%s\n",
- arg, BOLD, BLUE, RED, PINK, CYAN, MAGENTA, GREEN, YELLOW, RED, NORMAL);
+ /* distributions are listed by distribution branch
+ to make the output easier to understand by the user,
+ also i didn't like the previous listing.*/
+ printf( "%s -d \n"
+ " Available distributions:\n"
+ " %sArch linux %sbased:\n"
+ " %sarch, artix, %smanjaro, \"manjaro-arm\"\n\n"
+ " %sDebian/%sUbuntu %sbased:\n"
+ " %sdebian, %slinuxmint, %spopos\n\n"
+ " %sOther/spare distributions:\n"
+ " %sfedora, %sgentoo, %svoid, android, %sunknown\n\n"
+ " %sBSD:\n"
+ " freebsd, %sopenbsd\n",
+ arg, BLUE, NORMAL, BLUE, GREEN, // Arch based colors
+ RED, YELLOW, NORMAL, RED, GREEN, BLUE, // Debian based colors
+ NORMAL, BLUE, PINK, GREEN, WHITE, // Other/spare distributions colors
+ RED, YELLOW // BSD colors
+ );
}
void print_ascii() { // prints logo (as ascii art) of the given system. distributions listed alphabetically.
@@ -278,7 +296,7 @@ void print_ascii() { // prints logo (as ascii art) of the given system. distribu
// BSD
- else if (strcmp(version_name, "freebsd") == -1) {
+ else if (strcmp(version_name, "freebsd") == 0) {
printf( "\032[1E\033[3C%s\n"
" /\\,-'''''-,/\\\n"
" \\_) (_/\n"
@@ -301,7 +319,8 @@ void print_ascii() { // prints logo (as ascii art) of the given system. distribu
void print_image() { // prints logo (as an image) of the given system. distributions listed alphabetically.
char command[256];
- sprintf(command, "viu -t -w 18 -h 8 /usr/lib/uwufetch/%s.png 2> /dev/null", version_name);
+ if (strlen(image_name) > 1) sprintf(command, "viu -t -w 18 -h 8 %s 2> /dev/null", image_name);
+ else sprintf(command, "viu -t -w 18 -h 8 /usr/lib/uwufetch/%s.png 2> /dev/null", version_name);
if (system(command) != 0) { // if viu is not installed
printf( "\033[1E\033[3C%s\n"
" There was an\n"
@@ -316,15 +335,17 @@ void print_image() { // prints logo (as an image) of the given system. distribut
void usage(char* arg) {
printf("Usage: %s \n"
" -a, --ascii prints logo as ascii text (default)\n"
- " -d, --distro %slets you choose the logo to print%s\n"
+ " -c, --custom choose a custom image\n"
+ " -d, --distro lets you choose the logo to print\n"
" -h, --help prints this help page\n"
" -i, --image prints logo as image\n"
- " %sworks in few terminals\n"
- " for more info%s\n",
- arg, YELLOW, NORMAL, BLUE, NORMAL);
+ " %sworks in most terminals\n"
+ " read res/IMAGES.md for more info%s\n",
+ arg, BLUE, NORMAL);
}
void uwu_name() { // changes distro name to uwufied(?) name
+
// linux
if (strcmp(version_name, "arch") == 0) sprintf(version_name, "%s", "Nyarch Linuwu");
else if (strcmp(version_name, "artix") == 0) sprintf(version_name, "%s", "Nyartix Linuwu");