commit 2768d57c6ecdd3beb7760cbe0b5184893305cc31
parent daa70f17e36d91016328651628a3b1750b154964
Author: Shipwreckt <Shipwreckt@mailfence.com>
Date: Sun, 7 Jul 2024 15:05:25 +0100
Updating it to the C programming language
Diffstat:
4 files changed, 118 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
@@ -1,11 +1,14 @@
+IMPORTANT!!!!
+Modify the fakefetch.c yourself to make sure it is how you want it
+
Fakefetch is just a little command I made that runs in the terminal, it just tells
the person some things about there system, it won't do anything like reading your
memory or cpu, it just prints an output into your terminal.
-Note: This command does change the colour of your input
+Note: This command does change the colour of your terminal input, I would suggest using
+synth-shell with fakefetch.
-Chmod +x setup.sh then ./setup.sh to run it then you should be all good to go
-./fakefetch runs the command
+webpage: https://shipwreckt.co.uk/projects/programs/Fakefetch.html#info
If you want to make your own designes I suggest these tools, I use them to make my ascci art:
diff --git a/fakefetch b/fakefetch
Binary files differ.
diff --git a/fakefetch.c b/fakefetch.c
@@ -0,0 +1,110 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+// __ _ __ _ _
+// / _| | | / _| | | | |
+// | |_ __ _| | _____| |_ ___| |_ ___| |__
+// | _/ _` | |/ / _ \ _/ _ \ __/ __| '_ \
+// | || (_| | < __/ || __/ || (__| | | |
+// |_| \__,_|_|\_\___|_| \___|\__\___|_| |_|
+
+// Note: I have tried to make this as user friendly as possable/
+
+//----------------------------------------------------------------------------------|
+// Welcome to fakefetch |
+//----------------------------------------------------------------------------------|
+// This is just neofetch but |
+// You do it yourself, now in C! |
+//----------------------------------------------------------------------------------|
+// This is Libre code, you can do whatever you want with it since |
+// it is under the GPL |
+// ---------------------------------------------------------------------------------|
+// Function to execute shell commands and get the output |
+// ---------------------------------------------------------------------------------|
+char* execute_command(const char* command) {
+ char* result = malloc(128 * sizeof(char));
+ FILE* fp;
+ if ((fp = popen(command, "r")) == NULL) {
+ printf("Error opening pipe!\n");
+ return NULL;
+ }
+ if (fgets(result, 128, fp) == NULL) {
+ printf("Error reading pipe!\n");
+ return NULL;
+ }
+ pclose(fp);
+
+ // Remove newline character
+ result[strcspn(result, "\n")] = '\0';
+ return result;
+}
+
+int main() {
+ // ---------------------------------------------------------------------------------------------------//
+ // Colour codes
+ // ---------------------------------------------------------------------------------------------------//
+
+ // Define colours by changing the last two letters to Xterm number
+ const char* PURPLE = "\033[38;5;92m";
+ const char* MAGENTA = "\033[38;5;98m";
+ const char* RESET = "\033[0m";
+
+ // Set colours
+ const char* Text = MAGENTA;
+ const char* Background = PURPLE;
+
+ // ---------------------------------------------------------------------------------------------------//
+
+ // Get system information
+ char* USERNAME = execute_command("whoami");
+ char* HOSTNAME = execute_command("uname -n");
+ char* DISTRO = execute_command("lsb_release -sd | sed 's/\"//g'");
+ char* CPU_INFO = execute_command("lscpu | grep 'Model name' | awk '{$1=$2=\"\"; print $0}' | sed 's/^[ \\t]*//'");
+ char* CORES = execute_command("lscpu | grep 'Core(s) per socket' | awk '{print $NF}'");
+ char* GPU_INFO = execute_command("lspci | grep -i 'VGA\\|3D' | sed 's/.*: //; s/ (.*//'");
+ char* UPTIME = execute_command("uptime -p | sed 's/up //'");
+
+ // Terminal and package manager
+ const char* TERMINAL = "Alacritty"; //Still need to work on the terminal bit
+ char* PACKAGE_MANAGER = execute_command(
+ "if command -v pacman &> /dev/null; then echo Pacman; "
+ "elif command -v apt-get &> /dev/null; then echo APT; "
+ "else echo Unknown; fi"
+ );
+
+ // ---------------------------------------------------------------------------------------------------//
+ // Print output
+ // ---------------------------------------------------------------------------------------------------//
+ printf("%s :: %s\n", Background, RESET);
+ printf("%s .==. %s\n", Background, RESET);
+ printf("%s ==== %s\n", Background, RESET);
+ printf("%s -===== %s@%s%s\n", Background, USERNAME, HOSTNAME, RESET);
+ printf("%s -====== ========================================%s\n", Background, RESET);
+ printf("%s :========- OS → %s%s%s\n", Background, Text, DISTRO, RESET);
+ printf("%s :.:-=======- GPU → %s%s%s\n", Background, Text, GPU_INFO, RESET);
+ printf("%s :==---=======- PM → %s%s%s\n", Background, Text, PACKAGE_MANAGER, RESET);
+ printf("%s :==============- Term → %s%s%s\n", Background, Text, TERMINAL, RESET);
+ printf("%s :================- Uptime → %s%s%s\n", Background, Text, UPTIME, RESET);
+ printf("%s :==================- ========================================%s\n", Background, RESET);
+ printf("%s :========----========- %s\n", Background, RESET);
+ printf("%s -========. .========- %s\n", Background, RESET);
+ printf("%s -======== ========= %s\n", Background, RESET);
+ printf("%s -========: :======---. %s\n", Background, RESET);
+ printf("%s -=========: .=======-:. %s\n", Background, RESET);
+ printf("%s =========--: .--=======-: %s\n", Background, RESET);
+ printf("%s .=====-:.. ..:-=====%s\n", Background, RESET);
+ printf("%s .==-:. .:-==:%s\n", Background, RESET);
+
+ // Free up memory
+ free(USERNAME);
+ free(HOSTNAME);
+ free(DISTRO);
+ free(CPU_INFO);
+ free(CORES);
+ free(GPU_INFO);
+ free(UPTIME);
+ free(PACKAGE_MANAGER);
+
+ return 0;
+}
diff --git a/install.sh b/install.sh
@@ -1,4 +1,5 @@
sudo pacman -S lsb-release
#Change if your package manager is diffrent
-chmod +x fakefetch
+
+gcc -o fakefetch fakefetch.c
sudo mv fakefetch /bin/fakefetch