ロゴを追加、WMとパッケージを追加、GPUとホストを変更

このコミットが含まれているのは:
守矢諏訪子 2023-08-23 22:08:01 +09:00
コミット 032e920611
23個のファイルの変更644行の追加311行の削除

ファイルの表示

@ -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

ファイルの表示

@ -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\"'"

48
config_scripts/package_config.sh 実行可能ファイル
ファイルの表示

@ -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)\"'"

30
logos/alpine.h ノーマルファイル
ファイルの表示

@ -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
};

ファイルの表示

@ -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
};

29
logos/crux.h ノーマルファイル
ファイルの表示

@ -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
};

27
logos/devuan.h ノーマルファイル
ファイルの表示

@ -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:------------: ",
":------:://:-------------:: ",
":---------------------:// "
};

28
logos/freebsd.h ノーマルファイル
ファイルの表示

@ -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
};

29
logos/linux.h ノーマルファイル
ファイルの表示

@ -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[] = {
"██████████████████ ████████ ",
"██████████████████ ████████ ",
"██████████████████ ████████ ",
"██████████████████ ████████ ",
"████████ ████████ ",
"████████ ████████ ████████ ",
"████████ ████████ ████████ ",
"████████ ████████ ████████ ",
"████████ ████████ ████████ ",
"████████ ████████ ████████ ",
"████████ ████████ ████████ ",
"████████ ████████ ████████ ",
"████████ ████████ ████████ ",
"████████ ████████ ████████ "
};

28
logos/netbsd.h ノーマルファイル
ファイルの表示

@ -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
};

35
logos/openbsd.h ノーマルファイル
ファイルの表示

@ -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
};

28
logos/openindiana.h ノーマルファイル
ファイルの表示

@ -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
};

28
logos/postmarketos.h ノーマルファイル
ファイルの表示

@ -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++. "
};

ファイルの表示

@ -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
};

ファイルの表示

@ -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(),