int hrs, min, sec, pkgs; char kernel[50], shell[25], cpu[70], gpu[70]; void getCPU(){ FILE *cpuName = popen("grep -m 1 name /proc/cpuinfo | awk -F':' '{print $2}' | cut -c 2- ", "r"); fscanf(cpuName, "%[^\n]%s", &cpu); fclose(cpuName); } void getGPU(){ FILE *gpuName = popen("lspci -v | grep VGA -m 1 | awk -F'[' '{ print $2 }' | awk -F']' '{ print $1 }' ", "r"); fscanf(gpuName, "%[^\n]%s", &gpu); fclose(gpuName); } void getKernel(){ FILE *pathKernel = popen("uname -r", "r"); fscanf(pathKernel, "%[^\n]%s", &kernel); fclose(pathKernel); } void getUptime(){ FILE *pathUptime = fopen("/proc/uptime", "r"); fscanf(pathUptime, "%d", &sec); fclose(pathUptime); hrs = (sec/60/60%24); min = (sec/60%60); } void getPackages(){ FILE *pacpackages = popen("pacman -Q | wc -l", "r"); fscanf(pacpackages, "%d", &pkgs); fclose(pacpackages); } void getShell(){ FILE *shellpath = popen("echo $SHELL | awk -F'/' '{ print $NF }'", "r"); fscanf(shellpath, "%s", &shell); fclose(shellpath); } void init(){ getGPU(); getCPU(); getKernel(); getUptime(); getPackages(); getShell(); }