ロゴを追加、WMとパッケージを追加、GPUとホストを変更
このコミットが含まれているのは:
コミット
032e920611
4
Makefile
4
Makefile
|
@ -8,8 +8,8 @@ clean:
|
|||
rm -f paleofetch $(CACHE)/paleofetch
|
||||
|
||||
paleofetch: paleofetch.c paleofetch.h config.h
|
||||
$(eval battery_path := $(shell ./config_scripts/battery_config.sh))
|
||||
$(CC) paleofetch.c -o paleofetch $(CFLAGS) -D $(battery_path)
|
||||
$(eval packages := $(shell ./config_scripts/package_config.sh))
|
||||
$(CC) paleofetch.c -o paleofetch $(CFLAGS) -D $(packages)
|
||||
strip paleofetch
|
||||
|
||||
install: paleofetch
|
||||
|
|
88
config.h
88
config.h
|
@ -1,19 +1,48 @@
|
|||
#include "logos/arch.h"
|
||||
//define colors
|
||||
#define BLACK "\e[1;30m"
|
||||
#define RED "\e[1;31m"
|
||||
#define GREEN "\e[1;32m"
|
||||
#define YELLOW "\e[1;33m"
|
||||
#define BLUE "\e[1;34m"
|
||||
#define PURPLE "\e[1;35m"
|
||||
#define CYAN "\e[1;36m"
|
||||
#define WHITE "\e[1;37m"
|
||||
#define MYOS ARTIX
|
||||
|
||||
#define ALPINE 1
|
||||
#define ARCH 2
|
||||
#define ARTIX 3
|
||||
#define CRUX 4
|
||||
#define DEBIAN 5
|
||||
#define DEVUAN 6
|
||||
#define FREEBSD 7
|
||||
#define GENTOO 8
|
||||
#define NETBSD 9
|
||||
#define OPENBSD 10
|
||||
#define OPENINDIANA 11
|
||||
#define POSTMARKETOS 12
|
||||
#define VOID 13
|
||||
|
||||
//define display colors
|
||||
#define COLOR BLUE
|
||||
#define LOGOCOLOR CYAN
|
||||
#define TITLECOLOR BLUE
|
||||
#if MYOS == ALPINE
|
||||
#include "logos/alpine.h"
|
||||
#elif MYOS == ARCH
|
||||
#include "logos/arch.h"
|
||||
#elif MYOS == ARTIX
|
||||
#include "logos/artix.h"
|
||||
#elif MYOS == CRUX
|
||||
#include "logos/crux.h"
|
||||
#elif MYOS == DEBIAN
|
||||
#include "logos/debian.h"
|
||||
#elif MYOS == DEVUAN
|
||||
#include "logos/devuan.h"
|
||||
#elif MYOS == FREEBSD
|
||||
#include "logos/freebsd.h"
|
||||
#elif MYOS == GENTOO
|
||||
#include "logos/gentoo.h"
|
||||
#elif MYOS == NETBSD
|
||||
#include "logos/netbsd.h"
|
||||
#elif MYOS == OPENBSD
|
||||
#include "logos/openbsd.h"
|
||||
#elif MYOS == OPENINDIANA
|
||||
#include "logos/openindiana.h"
|
||||
#elif MYOS == POSTMARKETOS
|
||||
#include "logos/postmarketos.h"
|
||||
#elif MYOS == VOID
|
||||
#include "logos/void.h"
|
||||
#else
|
||||
#include "logos/linux.h"
|
||||
#endif
|
||||
|
||||
#define CONFIG \
|
||||
{ \
|
||||
|
@ -25,12 +54,10 @@
|
|||
{ "Host: ", get_host, true }, \
|
||||
{ "Kernel: ", get_kernel, true }, \
|
||||
{ "Uptime: ", get_uptime, false }, \
|
||||
{ "Battery: ", get_battery_percentage, false }, \
|
||||
/* Only enable if on archlinux
|
||||
{ "Packages: ", get_packages_pacman, false }, \
|
||||
*/ \
|
||||
{ "Packages: ", get_packages, false }, \
|
||||
{ "Shell: ", get_shell, false }, \
|
||||
{ "Resolution: ", get_resolution, false }, \
|
||||
{ "WM: ", get_wm, false }, \
|
||||
{ "Terminal: ", get_terminal, false }, \
|
||||
{ "CPU: ", get_cpu, true }, \
|
||||
{ "GPU: ", get_gpu1, true }, \
|
||||
|
@ -42,20 +69,21 @@
|
|||
|
||||
#define CPU_CONFIG \
|
||||
{ \
|
||||
REMOVE("(R)"), \
|
||||
REMOVE("(TM)"), \
|
||||
REMOVE("Dual-Core"), \
|
||||
REMOVE("Quad-Core"), \
|
||||
REMOVE("Six-Core"), \
|
||||
REMOVE("Eight-Core"), \
|
||||
REMOVE("Core"), \
|
||||
REMOVE("CPU"), \
|
||||
REMOVE("(R)"), \
|
||||
REMOVE("(TM)"), \
|
||||
REMOVE("Dual-Core"), \
|
||||
REMOVE("Quad-Core"), \
|
||||
REMOVE("Six-Core"), \
|
||||
REMOVE("Eight-Core"), \
|
||||
REMOVE("Core"), \
|
||||
REMOVE("CPU"), \
|
||||
}
|
||||
|
||||
#define GPU_CONFIG \
|
||||
{ \
|
||||
REMOVE("Corporation"), \
|
||||
REMOVE("Controller"), \
|
||||
REMOVE("Graphics"), \
|
||||
REMOVE("Integrated"), \
|
||||
REMOVE("Advanced Micro Devices, Inc. "), \
|
||||
REMOVE("Corporation"), \
|
||||
REMOVE("Controller"), \
|
||||
REMOVE("Graphics"), \
|
||||
REMOVE("Integrated"), \
|
||||
}
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
BATTERY_DIRECTORY=`ls /sys/class/power_supply | grep -i "^bat" | head -n 1`
|
||||
|
||||
echo "BATTERY_DIRECTORY='\"/sys/class/power_supply/$BATTERY_DIRECTORY\"'"
|
|
@ -0,0 +1,48 @@
|
|||
#!/bin/sh
|
||||
|
||||
PACKAGEMANAGER="不明"
|
||||
PACKAGECOUNT="0"
|
||||
unamestr=$(uname)
|
||||
|
||||
if wc -v >/dev/null 2>&1; then
|
||||
WC_COMMAND="wc -ln"
|
||||
else
|
||||
WC_COMMAND="wc -l'"
|
||||
fi
|
||||
|
||||
if [ "$unamestr" = 'Linux' ]; then
|
||||
platform=$(cat /etc/os-release | grep "^ID=" | sed -e "s/ID=//")
|
||||
if [ "$platform" = 'alpine' ] || [ "$platform" = 'postmarketos' ]; then
|
||||
PACKAGEMANAGER="apk"
|
||||
PACKAGECOUNT=$(apk info -I | $WC_COMMAND)
|
||||
elif [ "$platform" = 'arch' ] || [ "$platform" = 'artix' ]; then
|
||||
PACKAGEMANAGER="pacman"
|
||||
PACKAGECOUNT=$(pacman -Qq | $WC_COMMAND)
|
||||
elif [ "$platform" = 'crux' ]; then
|
||||
PACKAGEMANAGER="pkginfo"
|
||||
PACKAGECOUNT=$(pkginfo -i | $WC_COMMAND)
|
||||
elif [ "$platform" = 'debian' ] || [ "$platform" = 'devuan' ]; then
|
||||
PACKAGEMANAGER="dpkg-query"
|
||||
PACKAGECOUNT=$(dpkg-query -f '.\n' -W | $WC_COMMAND)
|
||||
elif [ "$platform" = 'gentoo' ]; then
|
||||
PACKAGEMANAGER="qlist"
|
||||
PACKAGECOUNT=$(qlist -IC | $WC_COMMAND)
|
||||
elif [ "$platform" = 'void' ]; then
|
||||
PACKAGEMANAGER="xbps-query"
|
||||
PACKAGECOUNT=$(xbps-query -l | $WC_COMMAND)
|
||||
fi
|
||||
elif [ "$unamestr" = 'FreeBSD' ]; then
|
||||
PACKAGEMANAGER="pkg"
|
||||
PACKAGECOUNT=$(pkg info -a | $WC_COMMAND)
|
||||
elif [ "$unamestr" = 'OpenBSD' ]; then
|
||||
PACKAGEMANAGER="pkg_info"
|
||||
PACKAGECOUNT=$(pkg_info | $WC_COMMAND)
|
||||
elif [ "$unamestr" = 'NetBSD' ]; then
|
||||
PACKAGEMANAGER="pkg_info"
|
||||
PACKAGECOUNT=$(pkg_info -a | $WC_COMMAND)
|
||||
elif [ "$unamestr" = 'SunOS' ]; then
|
||||
PACKAGEMANAGER="pkg"
|
||||
PACKAGECOUNT=$(pkg list | $WC_COMMAND)
|
||||
fi
|
||||
|
||||
echo "PACKAGES='\"$PACKAGECOUNT ($PACKAGEMANAGER)\"'"
|
|
@ -0,0 +1,30 @@
|
|||
// This was stolen from neofetch
|
||||
#define BLUE "\e[1;34m"
|
||||
#define MAGENTA "\e[1;35m"
|
||||
#define RESET "\e[0m"
|
||||
|
||||
#define COLOR MAGENTA
|
||||
#define TITLECOLOR BLUE
|
||||
|
||||
char *LOGO[] = {
|
||||
BLUE " .hddddddddddddddddddddddh. ",
|
||||
" :dddddddddddddddddddddddddd: ",
|
||||
" /dddddddddddddddddddddddddddd/ ",
|
||||
" +dddddddddddddddddddddddddddddd+ ",
|
||||
" `sdddddddddddddddddddddddddddddddds` ",
|
||||
" `ydddddddddddd++hdddddddddddddddddddy` ",
|
||||
".hddddddddddd+` `+ddddh:-sdddddddddddh. ",
|
||||
"hdddddddddd+` `+y: .sddddddddddh ",
|
||||
"ddddddddh+` `//` `.` -sddddddddd ",
|
||||
"ddddddh+` `/hddh/` `:s- -sddddddd ",
|
||||
"ddddh+` `/+/dddddh/` `+s- -sddddd ",
|
||||
"ddd+` `/o` :dddddddh/` `oy- .yddd ",
|
||||
"hdddyo+ohddyosdddddddddho+oydddy++ohdddh ",
|
||||
".hddddddddddddddddddddddddddddddddddddh. ",
|
||||
" `yddddddddddddddddddddddddddddddddddy` ",
|
||||
" `sdddddddddddddddddddddddddddddddds` ",
|
||||
" +dddddddddddddddddddddddddddddd+ ",
|
||||
" /dddddddddddddddddddddddddddd/ ",
|
||||
" :dddddddddddddddddddddddddd: ",
|
||||
" .hddddddddddddddddddddddh. " RESET
|
||||
};
|
44
logos/arch.h
44
logos/arch.h
|
@ -1,22 +1,28 @@
|
|||
// This was stolen from neofetch
|
||||
#define CYAN "\e[1;36m"
|
||||
#define RESET "\e[0m"
|
||||
|
||||
#define COLOR CYAN
|
||||
#define TITLECOLOR CYAN
|
||||
|
||||
char *LOGO[] = {
|
||||
" -` ",
|
||||
" .o+` ",
|
||||
" `ooo/ ",
|
||||
" `+oooo: ",
|
||||
" `+oooooo: ",
|
||||
" -+oooooo+: ",
|
||||
" `/:-:++oooo+: ",
|
||||
" `/++++/+++++++: ",
|
||||
" `/++++++++++++++: ",
|
||||
" `/+++ooooooooooooo/` ",
|
||||
" ./ooosssso++osssssso+` ",
|
||||
" .oossssso-````/ossssss+` ",
|
||||
" -osssssso. :ssssssso. ",
|
||||
" :osssssss/ osssso+++. ",
|
||||
" /ossssssss/ +ssssooo/- ",
|
||||
" `/ossssso+/:- -:/+osssso+- ",
|
||||
" `+sso+:-` `.-/+oso: ",
|
||||
"`++:. `-/+/ ",
|
||||
".` `/ "
|
||||
CYAN " -` " RESET,
|
||||
CYAN " .o+` " RESET,
|
||||
CYAN " `ooo/ " RESET,
|
||||
CYAN " `+oooo: " RESET,
|
||||
CYAN " `+oooooo: " RESET,
|
||||
CYAN " -+oooooo+: " RESET,
|
||||
CYAN " `/:-:++oooo+: " RESET,
|
||||
CYAN " `/++++/+++++++: " RESET,
|
||||
CYAN " `/++++++++++++++: " RESET,
|
||||
CYAN " `/+++ooooooooooooo/` " RESET,
|
||||
CYAN " ./ooosssso++osssssso+` " RESET,
|
||||
CYAN " .oossssso-````/ossssss+` " RESET,
|
||||
CYAN " -osssssso. :ssssssso. " RESET,
|
||||
CYAN " :osssssss/ osssso+++. " RESET,
|
||||
CYAN " /ossssssss/ +ssssooo/- " RESET,
|
||||
CYAN " `/ossssso+/:- -:/+osssso+- " RESET,
|
||||
CYAN " `+sso+:-` `.-/+oso: " RESET,
|
||||
CYAN "`++:. `-/+/ " RESET,
|
||||
CYAN ".` `/ " RESET
|
||||
};
|
||||
|
|
|
@ -1,23 +1,29 @@
|
|||
// This was stolen from neofetch
|
||||
#define CYAN "\e[1;36m"
|
||||
#define RESET "\e[0m"
|
||||
|
||||
#define COLOR CYAN
|
||||
#define TITLECOLOR CYAN
|
||||
|
||||
char *LOGO[] = {
|
||||
" ' ",
|
||||
" 'o' ",
|
||||
" 'ooo' ",
|
||||
" 'ooxoo' ",
|
||||
" 'ooxxxoo' ",
|
||||
" 'oookkxxoo' ",
|
||||
" 'oiioxkkxxoo' ",
|
||||
" ':;:iiiioxxxoo' ",
|
||||
" `'.;::ioxxoo' ",
|
||||
" '-. `':;jiooo' ",
|
||||
" 'oooio-.. `'i:io' ",
|
||||
" 'ooooxxxxoio:,. `'-;' ",
|
||||
" 'ooooxxxxxkkxoooIi:-. `' ",
|
||||
" 'ooooxxxxxkkkkxoiiiiiji' ",
|
||||
" 'ooooxxxxxkxxoiiii:'` .i' ",
|
||||
" 'ooooxxxxxoi:::'` .;ioxo' ",
|
||||
" 'ooooxooi::'` .:iiixkxxo' ",
|
||||
" 'ooooi:'` `'';ioxxo' ",
|
||||
" 'i:'` '':io' ",
|
||||
"'` `' "
|
||||
CYAN " ' " RESET,
|
||||
CYAN " 'o' " RESET,
|
||||
CYAN " 'ooo' " RESET,
|
||||
CYAN " 'ooxoo' " RESET,
|
||||
CYAN " 'ooxxxoo' " RESET,
|
||||
CYAN " 'oookkxxoo' " RESET,
|
||||
CYAN " 'oiioxkkxxoo' " RESET,
|
||||
CYAN " ':;:iiiioxxxoo' " RESET,
|
||||
CYAN " `'.;::ioxxoo' " RESET,
|
||||
CYAN " '-. `':;jiooo' " RESET,
|
||||
CYAN " 'oooio-.. `'i:io' " RESET,
|
||||
CYAN " 'ooooxxxxoio:,. `'-;' " RESET,
|
||||
CYAN " 'ooooxxxxxkkxoooIi:-. `' " RESET,
|
||||
CYAN " 'ooooxxxxxkkkkxoiiiiiji' " RESET,
|
||||
CYAN " 'ooooxxxxxkxxoiiii:'` .i' " RESET,
|
||||
CYAN " 'ooooxxxxxoi:::'` .;ioxo' " RESET,
|
||||
CYAN " 'ooooxooi::'` .:iiixkxxo' " RESET,
|
||||
CYAN " 'ooooi:'` `'';ioxxo' " RESET,
|
||||
CYAN " 'i:'` '':io' " RESET,
|
||||
CYAN "'` `' " RESET
|
||||
};
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
// This was stolen from neofetch
|
||||
#define BLUE "\e[1;34m"
|
||||
#define MAGENTA "\e[1;35m"
|
||||
#define WHITE "\e[1;37m"
|
||||
#define RESET "\e[0m"
|
||||
|
||||
#define COLOR MAGENTA
|
||||
#define TITLECOLOR BLUE
|
||||
|
||||
char *LOGO[] = {
|
||||
BLUE " odddd " RESET,
|
||||
BLUE " oddxkkkxxdoo " RESET,
|
||||
BLUE " ddcoddxxxdoool " RESET,
|
||||
BLUE " xdclodod olol " RESET,
|
||||
BLUE " xoc xdd olol " RESET,
|
||||
BLUE " xdc " MAGENTA "k00" BLUE "Okdlol " RESET,
|
||||
BLUE " xxd" MAGENTA "kOKKKOkd" BLUE "ldd " RESET,
|
||||
BLUE " xdco" MAGENTA "xOkdlo" BLUE "dldd " RESET,
|
||||
BLUE " ddc:cl" MAGENTA "lll" BLUE "oooodo " RESET,
|
||||
BLUE " odxxdd" WHITE "xkO000kx" BLUE "ooxdo " RESET,
|
||||
BLUE " oxdd" WHITE "x0NMMMMMMWW0od" BLUE "kkxo " RESET,
|
||||
BLUE " oooxd" WHITE "0WMMMMMMMMMW0o" BLUE "dxkx " RESET,
|
||||
BLUE "docldkXW" WHITE "MMMMMMMWWN" BLUE "Odolco " RESET,
|
||||
BLUE "xx" MAGENTA "dx" BLUE "kxxOKN" WHITE "WMMWN" BLUE "0xdoxo::c " RESET,
|
||||
MAGENTA "xOkkO" BLUE "0oo" WHITE "odOW" MAGENTA "WW" BLUE "XkdodOxc:l " RESET,
|
||||
MAGENTA "dkkkxkkk" WHITE "OKX" MAGENTA "NNNX0Oxx" BLUE "xc:cd " RESET,
|
||||
MAGENTA " odxxdx" WHITE "xllod" MAGENTA "ddooxx" BLUE "dc:ldo " RESET,
|
||||
MAGENTA " lodd" BLUE "dolccc" MAGENTA "ccox" BLUE "xoloo " RESET
|
||||
};
|
|
@ -1,21 +1,28 @@
|
|||
// This was stolen from neofetch
|
||||
char *LOGO[] = {
|
||||
" _,met$$$$$gg. ",
|
||||
" ,g$$$$$$$$$$$$$$$P. ",
|
||||
" ,g$$P\" \"\"\"Y$$.\". ",
|
||||
" ,$$P' `$$$. ",
|
||||
"',$$P ,ggs. `$$b: ",
|
||||
"`d$$' ,$P\"' . $$$ ",
|
||||
" $$P d$' , $$P ",
|
||||
" $$: $$. - ,d$$' ",
|
||||
" $$; Y$b._ _,d$P' ",
|
||||
" Y$$. `.`\"Y$$$$P\"' ",
|
||||
" `$$b \"-.__ ",
|
||||
" `Y$$ ",
|
||||
" `Y$$. ",
|
||||
" `$$b. ",
|
||||
" `Y$$b. ",
|
||||
" `\"Y$b._ ",
|
||||
" `\"\"\" "
|
||||
};
|
||||
#define RED "\e[1;31m"
|
||||
#define WHITE "\e[1;37m"
|
||||
#define RESET "\e[0m"
|
||||
|
||||
#define COLOR RED
|
||||
#define TITLECOLOR RED
|
||||
|
||||
char *LOGO[] = {
|
||||
WHITE " _,met$$$$$gg. " RESET,
|
||||
WHITE " ,g$$$$$$$$$$$$$$$P. " RESET,
|
||||
WHITE " ,g$$P\" \"\"\"Y$$.\". " RESET,
|
||||
WHITE " ,$$P' `$$$. " RESET,
|
||||
WHITE "',$$P ,ggs. `$$b: " RESET,
|
||||
WHITE "`d$$' ,$P\"' " RED "." WHITE " $$$ " RESET,
|
||||
WHITE " $$P d$' " RED "," WHITE " $$P " RESET,
|
||||
WHITE " $$: $$. - ,d$$' " RESET,
|
||||
WHITE " $$; Y$b._ _,d$P' " RESET,
|
||||
WHITE " Y$$. " RED "`." WHITE "`\"Y$$$$P\"' " RESET,
|
||||
WHITE " `$$b " RED "\"-.__" WHITE " " RESET,
|
||||
WHITE " `Y$$ " RESET,
|
||||
WHITE " `Y$$. " RESET,
|
||||
WHITE " `$$b. " RESET,
|
||||
WHITE " `Y$$b. " RESET,
|
||||
WHITE " `\"Y$b._ " RESET,
|
||||
WHITE " `\"\"\" " RESET,
|
||||
WHITE " " RESET
|
||||
};
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
// This was stolen from neofetch
|
||||
#define MAGENTA "\e[1;35m"
|
||||
#define RESET "\e[0m"
|
||||
|
||||
#define COLOR MAGENTA
|
||||
#define TITLECOLOR MAGENTA
|
||||
|
||||
char *LOGO[] = {
|
||||
MAGENTA " ..,,;;;::;,.. " RESET,
|
||||
MAGENTA " `':ddd;:,. " RESET,
|
||||
MAGENTA " `'dPPd:,. " RESET,
|
||||
MAGENTA " `:b$$b`. " RESET,
|
||||
MAGENTA " 'P$$$d` " RESET,
|
||||
MAGENTA " .$$$$$` " RESET,
|
||||
MAGENTA " ;$$$$$P " RESET,
|
||||
MAGENTA " .:P$$$$$$` " RESET,
|
||||
MAGENTA " .,:b$$$$$$$;' " RESET,
|
||||
MAGENTA " .,:dP$$$$$$$$b:' " RESET,
|
||||
MAGENTA " .,:;db$$$$$$$$$$Pd'` " RESET,
|
||||
MAGENTA " ,db$$$$$$$$$$$$$$b:'` " RESET,
|
||||
MAGENTA ":$$$$$$$$$$$$b:'` " RESET,
|
||||
MAGENTA " `$$$$$bd:''` " RESET,
|
||||
MAGENTA " `'''` " RESET,
|
||||
MAGENTA " " RESET,
|
||||
MAGENTA " " RESET,
|
||||
MAGENTA " " RESET
|
||||
};
|
|
@ -1,21 +0,0 @@
|
|||
// This was stolen from neofetch
|
||||
char *LOGO[] = {
|
||||
" /:-------------:\\\\ ",
|
||||
" :-------------------:: ",
|
||||
" :-----------/shhOHbmp---:\\\\ ",
|
||||
" /-----------omMMMNNNMMD ---: ",
|
||||
" :-----------sMMMMNMNMP. ---: ",
|
||||
" :-----------:MMMdP------- ---\\\\ ",
|
||||
",------------:MMMd-------- ---: ",
|
||||
":------------:MMMd------- .---: ",
|
||||
":---- oNMMMMMMMMMNho .----: ",
|
||||
":-- .+shhhMMMmhhy++ .------/ ",
|
||||
":- -------:MMMd--------------: ",
|
||||
":- --------/MMMd-------------; ",
|
||||
":- ------/hMMMy------------: ",
|
||||
":-- :dMNdhhdNMMNo------------; ",
|
||||
":---:sdNMMMMNds:------------: ",
|
||||
":------:://:-------------:: ",
|
||||
":---------------------:// "
|
||||
};
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
// This was stolen from neofetch
|
||||
#define RED "\e[1;31m"
|
||||
#define WHITE "\e[1;37m"
|
||||
#define RESET "\e[0m"
|
||||
|
||||
#define COLOR RED
|
||||
#define TITLECOLOR RED
|
||||
|
||||
char *LOGO[] = {
|
||||
WHITE "``` " RED "` " RESET,
|
||||
WHITE " ` `.....---..." RED "....--.``` -/ " RESET,
|
||||
WHITE " +o .--` " RED "/y:` +. " RESET,
|
||||
WHITE " yo`:. " RED ":o `+- " RESET,
|
||||
WHITE " y/ " RED "-/` -o/ " RESET,
|
||||
WHITE " .- " RED "::/sy+:. " RESET,
|
||||
WHITE " / " RED "`-- / " RESET,
|
||||
WHITE " `: " RED ":` " RESET,
|
||||
WHITE " `: " RED ":` " RESET,
|
||||
WHITE " / " RED "/ " RESET,
|
||||
WHITE " .- " RED "-. " RESET,
|
||||
WHITE " -- " RED "-. " RESET,
|
||||
WHITE " `:` " RED "`:` " RESET,
|
||||
RED " .-- `--. " RESET,
|
||||
RED " .---.....----. " RESET,
|
||||
RED " " RESET,
|
||||
RED " " RESET,
|
||||
RED " " RESET
|
||||
};
|
|
@ -1,20 +1,27 @@
|
|||
#define MAGENTA "\e[1;35m"
|
||||
#define WHITE "\e[1;37m"
|
||||
#define RESET "\e[0m"
|
||||
|
||||
#define COLOR MAGENTA
|
||||
#define TITLECOLOR MAGENTA
|
||||
|
||||
char *LOGO[] = {
|
||||
" -/oyddmdhs+:. ",
|
||||
" -odNMMMMMMMMNNmhy+-` ",
|
||||
" -yNMMMMMMMMMMMNNNmmdhy+- ",
|
||||
" `omMMMMMMMMMMMMNmdmmmmddhhy/` ",
|
||||
" omMMMMMMMMMMMNhhyyyohmdddhhhdo` ",
|
||||
".ydMMMMMMMMMMdhs++so/smdddhhhhdm+` ",
|
||||
" oyhdmNMMMMMMMNdyooydmddddhhhhyhNd. ",
|
||||
" :oyhhdNNMMMMMMMNNNmmdddhhhhhyymMh ",
|
||||
" .:+sydNMMMMMNNNmmmdddhhhhhhmMmy ",
|
||||
" /mMMMMMMNNNmmmdddhhhhhmMNhs: ",
|
||||
" `oNMMMMMMMNNNmmmddddhhdmMNhs+` ",
|
||||
" `sNMMMMMMMMNNNmmmdddddmNMmhs/. ",
|
||||
" /NMMMMMMMMNNNNmmmdddmNMNdso:` ",
|
||||
"+MMMMMMMNNNNNmmmmdmNMNdso/- ",
|
||||
"yMMNNNNNNNmmmmmNNMmhs+/-` ",
|
||||
"/hMMNNNNNNNNMNdhs++/-` ",
|
||||
"`/ohdmmddhys+++/:.` ",
|
||||
" `-//////:--. "
|
||||
MAGENTA " -/oyddmdhs+:. " RESET,
|
||||
MAGENTA " -o" WHITE "dNMMMMMMMMNNmhy+" MAGENTA "-` " RESET,
|
||||
MAGENTA " -y" WHITE "NMMMMMMMMMMMNNNmmdhy" MAGENTA "+- " RESET,
|
||||
MAGENTA " `o" WHITE "mMMMMMMMMMMMMNmdmmmmddhhy" MAGENTA "/` " RESET,
|
||||
MAGENTA " om" WHITE "MMMMMMMMMMMN" MAGENTA "hhyyyo" WHITE "hmdddhhhd" MAGENTA "o` " RESET,
|
||||
MAGENTA ".y" WHITE "dMMMMMMMMMMd" MAGENTA "hs++so/s" WHITE "mdddhhhhdm" MAGENTA "+` " RESET,
|
||||
MAGENTA " oy" WHITE "hdmNMMMMMMMN" MAGENTA "dyooy" WHITE "dmddddhhhhyhN" MAGENTA "d. " RESET,
|
||||
MAGENTA " :o" WHITE "yhhdNNMMMMMMMNNNmmdddhhhhhyym" MAGENTA "Mh " RESET,
|
||||
MAGENTA " .:" WHITE "+sydNMMMMMNNNmmmdddhhhhhhmM" MAGENTA "my " RESET,
|
||||
MAGENTA " /m" WHITE "MMMMMMNNNmmmdddhhhhhmMNh" MAGENTA "s: " RESET,
|
||||
MAGENTA " `o" WHITE "NMMMMMMMNNNmmmddddhhdmMNhs" MAGENTA "+` " RESET,
|
||||
MAGENTA " `s" WHITE "NMMMMMMMMNNNmmmdddddmNMmhs" MAGENTA "/. " RESET,
|
||||
MAGENTA " /N" WHITE "MMMMMMMMNNNNmmmdddmNMNdso" MAGENTA ":` " RESET,
|
||||
MAGENTA "+M" WHITE "MMMMMMNNNNNmmmmdmNMNdso" MAGENTA "/- " RESET,
|
||||
MAGENTA "yM" WHITE "MNNNNNNNmmmmmNNMmhs+/" MAGENTA" -` " RESET,
|
||||
MAGENTA "/h" WHITE "MMNNNNNNNNMNdhs++/" MAGENTA "-` " RESET,
|
||||
MAGENTA "`/" WHITE "ohdmmddhys+++/:" MAGENTA ".` " RESET,
|
||||
MAGENTA " `-//////:--. " RESET
|
||||
};
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
// This was stolen from neofetch
|
||||
#define GREY "\e[1;30m"
|
||||
#define YELLOW "\e[1;33m"
|
||||
#define WHITE "\e[1;37m"
|
||||
#define RESET "\e[0m"
|
||||
|
||||
#define COLOR WHITE
|
||||
#define TITLECOLOR WHITE
|
||||
|
||||
char *LOGO[] = {
|
||||
GREY " ##### " RESET,
|
||||
GREY " ####### " RESET,
|
||||
GREY " ##" WHITE "O" GREY "#" WHITE "O" GREY "## " RESET,
|
||||
GREY " #" YELLOW "#####" GREY "# " RESET,
|
||||
GREY " ##" WHITE "##" YELLOW "###" WHITE "##" GREY "## " RESET,
|
||||
GREY " #" WHITE "##########" GREY "## " RESET,
|
||||
GREY " #" WHITE "############" GREY "## " RESET,
|
||||
GREY " #" WHITE "############" GREY "### " RESET,
|
||||
YELLOW " ##" GREY "#" WHITE "###########" GREY "##" YELLOW "# " RESET,
|
||||
YELLOW "######" YELLOW "#" GREY "#" WHITE "######" GREY "#" YELLOW "###### " RESET,
|
||||
YELLOW "#######" GREY "#" WHITE "#####" GREY "#" YELLOW "####### " RESET,
|
||||
YELLOW " #####" GREY "#######" YELLOW "##### " RESET,
|
||||
GREY " " RESET,
|
||||
GREY " " RESET,
|
||||
GREY " " RESET,
|
||||
GREY " " RESET,
|
||||
GREY " " RESET,
|
||||
GREY " " RESET
|
||||
};
|
|
@ -1,17 +0,0 @@
|
|||
// This was stolen from neofetch
|
||||
char *LOGO[] = {
|
||||
"██████████████████ ████████ ",
|
||||
"██████████████████ ████████ ",
|
||||
"██████████████████ ████████ ",
|
||||
"██████████████████ ████████ ",
|
||||
"████████ ████████ ",
|
||||
"████████ ████████ ████████ ",
|
||||
"████████ ████████ ████████ ",
|
||||
"████████ ████████ ████████ ",
|
||||
"████████ ████████ ████████ ",
|
||||
"████████ ████████ ████████ ",
|
||||
"████████ ████████ ████████ ",
|
||||
"████████ ████████ ████████ ",
|
||||
"████████ ████████ ████████ ",
|
||||
"████████ ████████ ████████ "
|
||||
};
|
|
@ -0,0 +1,28 @@
|
|||
// This was stolen from neofetch
|
||||
#define MAGENTA "\e[1;35m"
|
||||
#define WHITE "\e[1;37m"
|
||||
#define RESET "\e[0m"
|
||||
|
||||
#define COLOR MAGENTA
|
||||
#define TITLECOLOR MAGENTA
|
||||
|
||||
char *LOGO[] = {
|
||||
MAGENTA " `-/oshdmNMNdhyo+:-` " RESET,
|
||||
WHITE "y" MAGENTA "/s+:-`` `.-:+oydNMMMMNhs/-`` " RESET,
|
||||
WHITE "-m+" MAGENTA "NMMMMMMMMMMMMMMMMMMMNdhmNMMMmdhs+/-` " RESET,
|
||||
WHITE " -m+" MAGENTA "NMMMMMMMMMMMMMMMMMMMMmy+:` " RESET,
|
||||
WHITE " -N/" MAGENTA "dMMMMMMMMMMMMMMMds:` " RESET,
|
||||
WHITE " -N/" MAGENTA "hMMMMMMMMMmho:` " RESET,
|
||||
WHITE " -N/" MAGENTA "-:/++/:.` " RESET,
|
||||
WHITE " :M+ " RESET,
|
||||
WHITE " :Mo " RESET,
|
||||
WHITE " :Ms " RESET,
|
||||
WHITE " :Ms " RESET,
|
||||
WHITE " :Ms " RESET,
|
||||
WHITE " :Ms " RESET,
|
||||
WHITE " :Ms " RESET,
|
||||
WHITE " :Ms " RESET,
|
||||
WHITE " :Ms " RESET,
|
||||
WHITE " :Ms " RESET,
|
||||
WHITE " " RESET
|
||||
};
|
|
@ -0,0 +1,35 @@
|
|||
// This was stolen from neofetch
|
||||
#define GREY "\e[1;30m"
|
||||
#define RED "\e[1;31m"
|
||||
#define YELLOW "\e[1;33m"
|
||||
#define CYAN "\e[1;36m"
|
||||
#define RESET "\e[0m"
|
||||
|
||||
#define COLOR YELLOW
|
||||
#define TITLECOLOR YELLOW
|
||||
|
||||
char *LOGO[] = {
|
||||
CYAN " _ " RESET,
|
||||
CYAN " (_) " RESET,
|
||||
YELLOW " | . " RESET,
|
||||
YELLOW " . |L /| . " CYAN "_ " RESET,
|
||||
YELLOW " _ . |\\ _| \\--+._/| . " CYAN " (_) " RESET,
|
||||
YELLOW " / ||\\| Y J ) / |/| ./ " RESET,
|
||||
YELLOW " J |)'( | ` F`.'/ " CYAN " _ " RESET,
|
||||
YELLOW " -<| F __ .-< " CYAN " (_) " RESET,
|
||||
YELLOW " | / .-'" CYAN "." YELLOW " `. /" CYAN "-. " YELLOW "L___ " RESET,
|
||||
YELLOW " J \\ < " CYAN "\\ " YELLOW " | |" GREY " O" CYAN "\\" YELLOW "|.-' " CYAN " _ " RESET,
|
||||
YELLOW " _J \\ .- \\" CYAN "/" GREY " O " CYAN "|" YELLOW" | \\ |F " CYAN " (_) " RESET,
|
||||
YELLOW " '-F -<_. \\ .-' `-' L__ " RESET,
|
||||
YELLOW "__J _ _. >-' )" RED "._." YELLOW " |-' " RESET,
|
||||
YELLOW " `-|.' /_. " RED "\\_|" YELLOW " F " RESET,
|
||||
YELLOW " /.- . _.< " RESET,
|
||||
YELLOW " /' /.' .' `\\ " RESET,
|
||||
YELLOW " /L /' |/ _.-'-\\ " RESET,
|
||||
YELLOW " /'J ___.---'\\| " RESET,
|
||||
YELLOW " |\\ .--' V | `. ` " RESET,
|
||||
YELLOW " |/`. `-. `._) " RESET,
|
||||
YELLOW " / .-.\\ " RESET,
|
||||
YELLOW " \\ ( `\\ " RESET,
|
||||
YELLOW " `.\\ " RESET
|
||||
};
|
|
@ -0,0 +1,28 @@
|
|||
#define BLUE "\e[1;34m"
|
||||
#define WHITE "\e[1;37m"
|
||||
#define RESET "\e[0m"
|
||||
|
||||
#define COLOR BLUE
|
||||
#define TITLECOLOR BLUE
|
||||
|
||||
char *LOGO[] = {
|
||||
WHITE " .sy/ " RESET,
|
||||
WHITE " .yh+ " RESET,
|
||||
WHITE " " RESET,
|
||||
BLUE " " BLUE "-+syyyo+-" WHITE " /+. " RESET,
|
||||
BLUE " " BLUE "+ddo/---/sdh/" WHITE " ym- " RESET,
|
||||
BLUE " " BLUE "`hm+ `sms" WHITE " ym-```````.-. " RESET,
|
||||
BLUE " " BLUE "sm+ sm/" WHITE " ym- +s " RESET,
|
||||
BLUE " " BLUE "hm. /mo" WHITE " ym- /h " RESET,
|
||||
BLUE " " BLUE "omo ym:" WHITE " ym- `os` " RESET,
|
||||
BLUE " " BLUE "smo` .ym+" WHITE " ym- .os- " RESET,
|
||||
WHITE " `` " BLUE ":ymy+///oyms-" WHITE " ym- .+s+. " RESET,
|
||||
WHITE " ..` " BLUE "`:+oo+/-`" WHITE " -//oyo- " RESET,
|
||||
WHITE " -:` .:oys/. " RESET,
|
||||
WHITE "+- `./oyys/. " RESET,
|
||||
WHITE "h+` `.-:+oyyyo/-` " RESET,
|
||||
WHITE "`/ossssysso+/-.` " RESET,
|
||||
WHITE " " RESET,
|
||||
WHITE " " RESET,
|
||||
WHITE " " RESET
|
||||
};
|
|
@ -0,0 +1,28 @@
|
|||
// This was stolen from neofetch
|
||||
#define GREEN "\e[1;32m"
|
||||
#define RESET "\e[0m"
|
||||
|
||||
#define COLOR GREEN
|
||||
#define TITLECOLOR GREEN
|
||||
|
||||
char *LOGO[] = {
|
||||
GREEN " /\\ " RESET,
|
||||
GREEN " / \\ " RESET,
|
||||
GREEN " / \\ " RESET,
|
||||
GREEN " / \\ " RESET,
|
||||
GREEN " / \\ " RESET,
|
||||
GREEN " / \\ " RESET,
|
||||
GREEN " \\ \\ " RESET,
|
||||
GREEN " /\\ \\____ \\ " RESET,
|
||||
GREEN " / \\____ \\ \\ " RESET,
|
||||
GREEN " / / \\ \\ " RESET,
|
||||
GREEN " / / \\ ___\\ " RESET,
|
||||
GREEN " / / \\ / ____ " RESET,
|
||||
GREEN " / / \\/ / \\ " RESET,
|
||||
GREEN " / / __________/ \\ " RESET,
|
||||
GREEN " / \\ \\ \\ " RESET,
|
||||
GREEN " / \\ \\ \\ " RESET,
|
||||
GREEN " / / / \\ " RESET,
|
||||
GREEN "/___________/ /____________________\\ " RESET,
|
||||
GREEN " " RESET
|
||||
};
|
|
@ -1,22 +0,0 @@
|
|||
// This was stolen from neofetch
|
||||
char *LOGO[] = {
|
||||
" ./+o+- ",
|
||||
" yyyyy- -yyyyyy+ ",
|
||||
" ://+//////-yyyyyyo ",
|
||||
" .++ .:/++++++/-.+sss/` ",
|
||||
" .:++o: /++++++++/:--:/- ",
|
||||
" o:+o+:++.`..```.-/oo+++++/ ",
|
||||
" .:+o:+o/. `+sssoo+/ ",
|
||||
" .++/+:+oo+o:` /sssooo. ",
|
||||
"/+++//+:`oo+o /::--:. ",
|
||||
"+/+o+++`o++o ++////. ",
|
||||
" .++.o+++oo+:` /dddhhh. ",
|
||||
" .+.o+oo:. `oddhhhh+ ",
|
||||
" +.++o+o``-````.:ohdhhhhh+ ",
|
||||
" `:o+++ `ohhhhhhhhyo++os: ",
|
||||
" .o:`.syhhhhhhh/.oo++o` ",
|
||||
" /osyyyyyyo++ooo+++/ ",
|
||||
" ````` +oo+++o: ",
|
||||
" `oo++. "
|
||||
};
|
||||
|
46
logos/void.h
46
logos/void.h
|
@ -1,21 +1,31 @@
|
|||
// This was stolen from neofetch
|
||||
#define GREY "\e[1;30m"
|
||||
#define GREEN "\e[1;32m"
|
||||
#define WHITE "\e[1;37m"
|
||||
#define RESET "\e[0m"
|
||||
|
||||
#define COLOR WHITE
|
||||
#define TITLECOLOR GREEN
|
||||
|
||||
char *LOGO[] = {
|
||||
" __.;=====;.__ ",
|
||||
" _.=+==++=++=+=+===;. ",
|
||||
" -=+++=+===+=+=+++++=_ ",
|
||||
" . -=:`` `--==+=++==. ",
|
||||
" _vi, ` --+=++++: ",
|
||||
" .uvnvi. _._ -==+==+. ",
|
||||
" .vvnvnI` .;==|==;. :|=||=|. ",
|
||||
" +QmQQmpvvnv; _yYsyQQWUUQQQm #QmQ#:QQQWUV$QQm. ",
|
||||
" -QQWQWpvvowZ?.wQQQE==<QWWQ/QWQW.QQWW(: jQWQE ",
|
||||
" -$QQQQmmU' jQQQ@+=<QWQQ)mQQQ.mQQQC+;jWQQ@' ",
|
||||
" -$WQ8YnI: QWQQwgQQWV`mWQQ.jQWQQgyyWW@! ",
|
||||
" -1vvnvv. `~+++` ++|+++ ",
|
||||
" +vnvnnv, `-|=== ",
|
||||
" +vnvnvns. . :=- ",
|
||||
" -Invnvvnsi..___..=sv=. ` ",
|
||||
" +Invnvnvnnnnnnnnvvnn;. ",
|
||||
" ~|Invnvnvvnvvvnnv}+` ",
|
||||
" -~|{*l}*|~ "
|
||||
GREEN " __.;=====;.__ " RESET,
|
||||
GREEN " _.=+==++=++=+=+===;. " RESET,
|
||||
GREEN " -=+++=+===+=+=+++++=_ " RESET,
|
||||
GREEN " . -=:`` `--==+=++==. " RESET,
|
||||
GREEN " _vi, ` --+=++++: " RESET,
|
||||
GREEN " .uvnvi. _._ -==+==+. " RESET,
|
||||
GREEN " .vvnvnI` .;==|==;. :|=||=|. " RESET,
|
||||
GREY "+QmQQm" GREEN "pvvnv; " GREY "_yYsyQQWUUQQQm #QmQ#" GREEN ":" GREY "QQQWUV$QQm. " RESET,
|
||||
GREY " -QQWQW" GREEN "pvvo" GREY "wZ?.wQQQE" GREEN "==<" GREY "!QWWQ/QWQW.QQWW" GREEN "(: " GREY "jQWQE " RESET,
|
||||
GREY " -$QQQQmmU' jQQQ@" GREEN "+=<" GREY "QWQQ)mQQQ.mQQQC" GREEN "+;" GREY "jWQQ@' " RESET,
|
||||
GREY " -$WQ8Y" GREEN "nI: " GREY "QWQQwgQQWV" GREEN"`" GREY "mWQQ.jQWQQgyyWW@! " RESET,
|
||||
GREEN " -1vvnvv. `~+++` ++|+++ " RESET,
|
||||
GREEN " +vnvnnv, `-|=== " RESET,
|
||||
GREEN " +vnvnvns. . :=- " RESET,
|
||||
GREEN " -Invnvvnsi..___..=sv=. ` " RESET,
|
||||
GREEN " +Invnvnvnnnnnnnnvvnn;. " RESET,
|
||||
GREEN " ~|Invnvnvvnvvvnnv}+` " RESET,
|
||||
GREEN " -~|{*l}*|~ " RESET,
|
||||
GREEN " " RESET,
|
||||
GREEN " " RESET
|
||||
};
|
||||
|
|
260
paleofetch.c
260
paleofetch.c
|
@ -178,36 +178,39 @@ static char *get_kernel() {
|
|||
}
|
||||
|
||||
static char *get_host() {
|
||||
char *host = malloc(BUF_SIZE), buffer[BUF_SIZE/2];
|
||||
FILE *product_name, *product_version, *model;
|
||||
char *host = malloc(BUF_SIZE), buffer[BUF_SIZE/2];
|
||||
FILE *product_name, *product_version, *model;
|
||||
|
||||
if((product_name = fopen("/sys/devices/virtual/dmi/id/product_name", "r")) != NULL) {
|
||||
if((product_version = fopen("/sys/devices/virtual/dmi/id/product_version", "r")) != NULL) {
|
||||
fread(host, 1, BUF_SIZE/2, product_name);
|
||||
remove_newline(host);
|
||||
strcat(host, " ");
|
||||
fread(buffer, 1, BUF_SIZE/2, product_version);
|
||||
remove_newline(buffer);
|
||||
strcat(host, buffer);
|
||||
fclose(product_version);
|
||||
} else {
|
||||
fclose(product_name);
|
||||
goto model_fallback;
|
||||
}
|
||||
fclose(product_name);
|
||||
return host;
|
||||
if ((product_name = fopen("/sys/devices/virtual/dmi/id/product_name", "r")) != NULL) {
|
||||
if ((product_version = fopen("/sys/devices/virtual/dmi/id/product_version", "r")) != NULL) {
|
||||
fread(host, 1, BUF_SIZE/2, product_name);
|
||||
remove_newline(host);
|
||||
strcat(host, " ");
|
||||
fread(buffer, 1, BUF_SIZE/2, product_version);
|
||||
remove_newline(buffer);
|
||||
if (strcmp(buffer, "To Be Filled By O.E.M.") != 0) {
|
||||
strcat(host, " ");
|
||||
strcat(host, buffer);
|
||||
}
|
||||
fclose(product_version);
|
||||
} else {
|
||||
fclose(product_name);
|
||||
goto model_fallback;
|
||||
}
|
||||
fclose(product_name);
|
||||
return host;
|
||||
}
|
||||
|
||||
model_fallback:
|
||||
if((model = fopen("/sys/firmware/devicetree/base/model", "r")) != NULL) {
|
||||
fread(host, 1, BUF_SIZE, model);
|
||||
remove_newline(host);
|
||||
return host;
|
||||
}
|
||||
if ((model = fopen("/sys/firmware/devicetree/base/model", "r")) != NULL) {
|
||||
fread(host, 1, BUF_SIZE, model);
|
||||
remove_newline(host);
|
||||
return host;
|
||||
}
|
||||
|
||||
status = -1;
|
||||
halt_and_catch_fire("unable to get host");
|
||||
return NULL;
|
||||
status = -1;
|
||||
halt_and_catch_fire("unable to get host");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static char *get_uptime() {
|
||||
|
@ -232,64 +235,10 @@ static char *get_uptime() {
|
|||
return uptime;
|
||||
}
|
||||
|
||||
// returns "<Battery Percentage>% [<Charging | Discharging | Unknown>]"
|
||||
// Credit: allisio - https://gist.github.com/allisio/1e850b93c81150124c2634716fbc4815
|
||||
static char *get_battery_percentage() {
|
||||
int battery_capacity;
|
||||
FILE *capacity_file, *status_file;
|
||||
char battery_status[12] = "Unknown";
|
||||
|
||||
if ((capacity_file = fopen(BATTERY_DIRECTORY "/capacity", "r")) == NULL) {
|
||||
status = ENOENT;
|
||||
halt_and_catch_fire("Unable to get battery information");
|
||||
}
|
||||
|
||||
fscanf(capacity_file, "%d", &battery_capacity);
|
||||
fclose(capacity_file);
|
||||
|
||||
if ((status_file = fopen(BATTERY_DIRECTORY "/status", "r")) != NULL) {
|
||||
fscanf(status_file, "%s", battery_status);
|
||||
fclose(status_file);
|
||||
}
|
||||
|
||||
// max length of resulting string is 19
|
||||
// one byte for padding incase there is a newline
|
||||
// 100% [Discharging]
|
||||
// 1234567890123456789
|
||||
char *battery = malloc(20);
|
||||
|
||||
snprintf(battery, 20, "%d%% [%s]", battery_capacity, battery_status);
|
||||
|
||||
return battery;
|
||||
}
|
||||
|
||||
static char *get_packages(const char* dirname, const char* pacname, int num_extraneous) {
|
||||
int num_packages = 0;
|
||||
DIR * dirp;
|
||||
struct dirent *entry;
|
||||
|
||||
dirp = opendir(dirname);
|
||||
|
||||
if(dirp == NULL) {
|
||||
status = -1;
|
||||
halt_and_catch_fire("You may not have %s installed", dirname);
|
||||
}
|
||||
|
||||
while((entry = readdir(dirp)) != NULL) {
|
||||
if(entry->d_type == DT_DIR) num_packages++;
|
||||
}
|
||||
num_packages -= (2 + num_extraneous); // accounting for . and ..
|
||||
|
||||
status = closedir(dirp);
|
||||
|
||||
char *packages = malloc(BUF_SIZE);
|
||||
snprintf(packages, BUF_SIZE, "%d (%s)", num_packages, pacname);
|
||||
|
||||
return packages;
|
||||
}
|
||||
|
||||
static char *get_packages_pacman() {
|
||||
return get_packages("/var/lib/pacman/local", "pacman", 0);
|
||||
static char *get_packages() {
|
||||
char *packages = malloc(BUF_SIZE);
|
||||
snprintf(packages, BUF_SIZE, "%s", PACKAGES);
|
||||
return packages;
|
||||
}
|
||||
|
||||
static char *get_shell() {
|
||||
|
@ -361,42 +310,117 @@ static char *get_resolution() {
|
|||
return resolution;
|
||||
}
|
||||
|
||||
static char *get_terminal() {
|
||||
unsigned char *prop;
|
||||
char *terminal = malloc(BUF_SIZE);
|
||||
static char *get_wm() {
|
||||
char *wayland_display = getenv("WAYLAND_DISPLAY");
|
||||
if (wayland_display != NULL) {
|
||||
char *wayland_wms[] = {
|
||||
"[a]rcan", "[a]sc", "[c]layland", "[d]wc", "[d]wl", "[f]ireplace",
|
||||
"[g]nome-shell", "[g]reenfield", "[g]refsen", "[k]win",
|
||||
"[l]ipstick", "[m]aynard", "[m]azecompositor", "[m]otorcar",
|
||||
"[o]rbital", "[o]rbment", "[p]erceptia", "[r]ustland", "[s]way",
|
||||
"[u]lubis", "[v]elox", "[w]avy", "[w]ay-cooler", "[w]ayfire",
|
||||
"[w]ayhouse", "[w]esteros", "[w]estford", "[w]eston"
|
||||
};
|
||||
|
||||
/* check if xserver is running or if we are running in a straight tty */
|
||||
if (display != NULL) {
|
||||
char command[1024] = "ps aux | grep -m 1 -E -o '";
|
||||
size_t num_wms = sizeof(wayland_wms) / sizeof(wayland_wms[0]);
|
||||
for (size_t i = 0; i < num_wms - 1; i++) {
|
||||
strcat(command, wayland_wms[i]);
|
||||
strcat(command, "|");
|
||||
}
|
||||
strcat(command, wayland_wms[sizeof(wayland_wms) / sizeof(wayland_wms[0]) - 1]);
|
||||
strcat(command, "'");
|
||||
|
||||
unsigned long _, // not unused, but we don't need the results
|
||||
window = RootWindow(display, XDefaultScreen(display));
|
||||
Atom a,
|
||||
active = XInternAtom(display, "_NET_ACTIVE_WINDOW", True),
|
||||
class = XInternAtom(display, "WM_CLASS", True);
|
||||
|
||||
#define GetProp(property) \
|
||||
XGetWindowProperty(display, window, property, 0, 64, 0, 0, &a, (int *)&_, &_, &_, &prop);
|
||||
|
||||
GetProp(active);
|
||||
window = (prop[3] << 24) + (prop[2] << 16) + (prop[1] << 8) + prop[0];
|
||||
free(prop);
|
||||
if(!window) goto terminal_fallback;
|
||||
GetProp(class);
|
||||
|
||||
#undef GetProp
|
||||
|
||||
snprintf(terminal, BUF_SIZE, "%s", prop);
|
||||
free(prop);
|
||||
} else {
|
||||
terminal_fallback:
|
||||
strncpy(terminal, getenv("TERM"), BUF_SIZE - 1); /* fallback to old method */
|
||||
/* in tty, $TERM is simply returned as "linux"; in this case get actual tty name */
|
||||
if (strcmp(terminal, "linux") == 0) {
|
||||
strncpy(terminal, ttyname(STDIN_FILENO), BUF_SIZE - 1);
|
||||
}
|
||||
FILE *fp = popen(command, "r");
|
||||
if (fp == NULL) {
|
||||
perror("popen");
|
||||
return strdup("不明");
|
||||
}
|
||||
|
||||
return terminal;
|
||||
char wm_name[256];
|
||||
if (fgets(wm_name, sizeof(wm_name), fp) != NULL) {
|
||||
char *newline = strchr(wm_name, '\n');
|
||||
if (newline) {
|
||||
*newline = '\0';
|
||||
}
|
||||
} else {
|
||||
strcpy(wm_name, "不明");
|
||||
}
|
||||
|
||||
pclose(fp);
|
||||
return strdup(wm_name);
|
||||
}
|
||||
|
||||
Display *dpy = XOpenDisplay(NULL);
|
||||
if (dpy == NULL) {
|
||||
fprintf(stderr, "Unable to connect to display\n");
|
||||
return strdup("不明");
|
||||
}
|
||||
|
||||
int screen = DefaultScreen(dpy);
|
||||
Window root = RootWindow(dpy, screen);
|
||||
|
||||
Atom atom = XInternAtom(dpy, "_NET_SUPPORTING_WM_CHECK", False);
|
||||
Atom type;
|
||||
int format;
|
||||
unsigned long nitems, bytes_after;
|
||||
unsigned char *prop;
|
||||
int status = XGetWindowProperty(dpy, root, atom, 0, (~0L), False, AnyPropertyType, &type, &format, &nitems, &bytes_after, &prop);
|
||||
if (status != Success || !prop) {
|
||||
fprintf(stderr, "Unable to get window manager property\n");
|
||||
XCloseDisplay(dpy);
|
||||
return strdup("不明");
|
||||
}
|
||||
|
||||
Window wm_window = *(Window *)prop;
|
||||
XFree(prop);
|
||||
|
||||
status = XGetWindowProperty(dpy, wm_window, XInternAtom(dpy, "_NET_WM_NAME", False), 0, (~0L), False, AnyPropertyType, &type, &format, &nitems, &bytes_after, &prop);
|
||||
if (status != Success || !prop) {
|
||||
fprintf(stderr, "Unable to get window manager name property\n");
|
||||
XCloseDisplay(dpy);
|
||||
return strdup("不明");
|
||||
}
|
||||
|
||||
char *wm_name = strdup((char *)prop);
|
||||
XFree(prop);
|
||||
XCloseDisplay(dpy);
|
||||
|
||||
return wm_name;
|
||||
}
|
||||
|
||||
static char *get_terminal() {
|
||||
unsigned char *prop;
|
||||
char *terminal = malloc(BUF_SIZE);
|
||||
|
||||
if (display != NULL) {
|
||||
unsigned long _, // not unused, but we don't need the results
|
||||
window = RootWindow(display, XDefaultScreen(display));
|
||||
Atom a,
|
||||
active = XInternAtom(display, "_NET_ACTIVE_WINDOW", True),
|
||||
class = XInternAtom(display, "WM_CLASS", True);
|
||||
|
||||
#define GetProp(property) \
|
||||
XGetWindowProperty(display, window, property, 0, 64, 0, 0, &a, (int *)&_, &_, &_, &prop);
|
||||
|
||||
GetProp(active);
|
||||
window = (prop[3] << 24) + (prop[2] << 16) + (prop[1] << 8) + prop[0];
|
||||
free(prop);
|
||||
if(!window) goto terminal_fallback;
|
||||
GetProp(class);
|
||||
#undef GetProp
|
||||
|
||||
snprintf(terminal, BUF_SIZE, "%s", prop);
|
||||
free(prop);
|
||||
} else {
|
||||
terminal_fallback:
|
||||
strncpy(terminal, getenv("TERM"), BUF_SIZE - 1); /* fallback to old method */
|
||||
if (strcmp(terminal, "linux") == 0) {
|
||||
strncpy(terminal, ttyname(STDIN_FILENO), BUF_SIZE - 1);
|
||||
}
|
||||
}
|
||||
|
||||
return terminal;
|
||||
}
|
||||
|
||||
static char *get_cpu() {
|
||||
|
@ -717,13 +741,13 @@ int main(int argc, char *argv[]) {
|
|||
for (int i = 0; i < COUNT(LOGO); i++) {
|
||||
// If we've run out of information to show...
|
||||
if(i >= COUNT(config) - offset) // just print the next line of the logo
|
||||
printf(LOGOCOLOR"%s\n", LOGO[i]);
|
||||
printf("%s\n", LOGO[i]);
|
||||
else {
|
||||
// Otherwise, we've got a bit of work to do.
|
||||
char *label = config[i+offset].label,
|
||||
*value = get_value(config[i+offset], read_cache, cache_data);
|
||||
if (strcmp(value, "") != 0) { // check if value is an empty string
|
||||
printf(LOGOCOLOR"%s"COLOR"%s\e[0m%s\n", LOGO[i], label, value); // just print if not empty
|
||||
printf("%s"COLOR"%s\e[0m%s\n", LOGO[i], label, value); // just print if not empty
|
||||
} else {
|
||||
if (strcmp(label, "") != 0) { // check if label is empty, otherwise it's a spacer
|
||||
++offset; // print next line of information
|
||||
|
@ -731,7 +755,7 @@ int main(int argc, char *argv[]) {
|
|||
label = config[i+offset].label; // read new label and value
|
||||
value = get_value(config[i+offset], read_cache, cache_data);
|
||||
}
|
||||
printf(LOGOCOLOR"%s"COLOR"%s\e[0m%s\n", LOGO[i], label, value);
|
||||
printf("%s"COLOR"%s\e[0m%s\n", LOGO[i], label, value);
|
||||
}
|
||||
free(value);
|
||||
|
||||
|
|
|
@ -7,10 +7,10 @@ static char *get_title(),
|
|||
*get_kernel(),
|
||||
*get_host(),
|
||||
*get_uptime(),
|
||||
*get_battery_percentage(),
|
||||
*get_packages_pacman(),
|
||||
*get_packages(),
|
||||
*get_shell(),
|
||||
*get_resolution(),
|
||||
*get_wm(),
|
||||
*get_terminal(),
|
||||
*get_cpu(),
|
||||
*get_gpu1(),
|
||||
|
|
読み込み中…
新しいイシューから参照