Последняя активность 1788250669

neofetch-like tool for fetching system information

dartokloning's Avatar dartokloning ревизий этого фрагмента 1788250669. К ревизии

1 file changed, 7 insertions, 1 deletion

config.jsonc

@@ -55,7 +55,13 @@
55 55 {
56 56 "type": "command",
57 57 "key": "Docker Bridge",
58 - "text": "found=0; for p in /sys/class/net/docker0 /sys/class/net/br-*; do [ -e \"$p\" ] || continue; i=${p##*/}; a=$(ip -o -4 addr show dev \"$i\" scope global | awk 'NR==1 {print $4}'); [ -z \"$a\" ] && a=\"no IPv4\"; s=$(cat \"$p/operstate\" 2>/dev/null || printf unknown); m=$(cat \"$p/address\" 2>/dev/null || printf unknown); [ \"$found\" -eq 1 ] && printf ' | '; printf '\\033[96m(%s)\\033[0m: %s [\\033[32m%s\\033[0m] - (%s)' \"$i\" \"$a\" \"$s\" \"$m\"; found=1; done; [ \"$found\" -eq 0 ] && printf 'none'"
58 + "text": "p=/sys/class/net/docker0; if [ -e \"$p\" ]; then i=docker0; a=$(ip -o -4 addr show dev \"$i\" scope global | awk 'NR==1 {print $4}'); [ -z \"$a\" ] && a=\"no IPv4\"; s=$(cat \"$p/operstate\" 2>/dev/null || printf unknown); printf '\\033[96m(%s)\\033[0m: %s [\\033[32m%s\\033[0m]' \"$i\" \"$a\" \"$s\"; else printf 'none'; fi"
59 + },
60 +
61 + {
62 + "type": "command",
63 + "key": "Docker Network",
64 + "text": "found=0; for p in /sys/class/net/br-*; do [ -e \"$p\" ] || continue; i=${p##*/}; a=$(ip -o -4 addr show dev \"$i\" scope global | awk 'NR==1 {print $4}'); [ -z \"$a\" ] && a=\"no IPv4\"; s=$(cat \"$p/operstate\" 2>/dev/null || printf unknown); [ \"$found\" -eq 1 ] && printf ' | '; printf '\\033[96m(%s)\\033[0m: %s [\\033[32m%s\\033[0m]' \"$i\" \"$a\" \"$s\"; found=1; done; [ \"$found\" -eq 0 ] && printf 'none'"
59 65 },
60 66
61 67 {

dartokloning's Avatar dartokloning ревизий этого фрагмента 1788250090. К ревизии

1 file changed, 15 insertions, 13 deletions

config.jsonc

@@ -10,7 +10,6 @@
10 10 "title",
11 11 "separator",
12 12
13 - // Debian point release diambil dari /etc/debian_version.
14 13 {
15 14 "type": "command",
16 15 "key": "OS Detail",
@@ -31,7 +30,6 @@
31 30 "shell",
32 31 "terminal",
33 32
34 - // Menampilkan akun manusia (UID >= 1000), bukan akun service/aplikasi.
35 33 {
36 34 "type": "command",
37 35 "key": "User Accounts",
@@ -48,42 +46,46 @@
48 46 "key": "Disk"
49 47 },
50 48
51 - // Format: Ethernet (<interface>): <IPv4> [status] - (<MAC>)
52 - // Label berwarna magenta dan nama interface berwarna aqua.
53 49 {
54 50 "type": "command",
55 51 "key": "Ethernet",
56 - "text": "found=0; first=1; for p in /sys/class/net/*; do i=${p##*/}; [ \"$i\" = \"lo\" ] && continue; [ -d \"$p/wireless\" ] && continue; found=1; a=$(ip -o -4 addr show dev \"$i\" scope global | awk 'NR==1 {print $4}'); [ -z \"$a\" ] && a=\"no IPv4\"; s=$(cat \"$p/operstate\"); m=$(cat \"$p/address\"); if [ \"$first\" -eq 1 ]; then first=0; printf '\\033[96m(%s)\\033[0m: %s [\\033[32m%s\\033[0m] - (%s)' \"$i\" \"$a\" \"$s\" \"$m\"; else printf '\\n \\033[96m(%s)\\033[0m: %s [\\033[32m%s\\033[0m] - (%s)' \"$i\" \"$a\" \"$s\" \"$m\"; fi; done; [ \"$found\" -eq 0 ] && printf 'No Ethernet device found'"
52 + "text": "found=0; for p in /sys/class/net/*; do i=${p##*/}; [ \"$i\" = \"lo\" ] && continue; [ -d \"$p/wireless\" ] && continue; case \"$i\" in docker0|br-*|veth*|virbr*|vmnet*|tun*|tap*|wg*|tailscale*|podman*|cni*|flannel*|vxlan*) continue ;; esac; a=$(ip -o -4 addr show dev \"$i\" scope global | awk 'NR==1 {print $4}'); [ -z \"$a\" ] && a=\"no IPv4\"; s=$(cat \"$p/operstate\" 2>/dev/null || printf unknown); m=$(cat \"$p/address\" 2>/dev/null || printf unknown); [ \"$found\" -eq 1 ] && printf ' | '; printf '\\033[96m(%s)\\033[0m: %s [\\033[32m%s\\033[0m] - (%s)' \"$i\" \"$a\" \"$s\" \"$m\"; found=1; done; [ \"$found\" -eq 0 ] && printf 'No Ethernet device found'"
57 53 },
58 54
59 - // Format: Wi-Fi (<interface>): <IPv4> [status] - (<MAC>)
60 - // Label berwarna magenta dan nama interface berwarna aqua.
61 55 {
62 56 "type": "command",
63 - "key": " ",
64 - "text": "for p in /sys/class/net/*; do i=${p##*/}; [ -d \"$p/wireless\" ] || continue; a=$(ip -o -4 addr show dev \"$i\" scope global | awk 'NR==1 {print $4}'); [ -z \"$a\" ] && a=\"no IPv4\"; s=$(cat \"$p/operstate\"); m=$(cat \"$p/address\"); printf '\\033[1;95mWi-Fi\\033[0m \\033[96m(%s)\\033[0m: %s [%s] - (%s)\\n' \"$i\" \"$a\" \"$s\" \"$m\"; done"
57 + "key": "Docker Bridge",
58 + "text": "found=0; for p in /sys/class/net/docker0 /sys/class/net/br-*; do [ -e \"$p\" ] || continue; i=${p##*/}; a=$(ip -o -4 addr show dev \"$i\" scope global | awk 'NR==1 {print $4}'); [ -z \"$a\" ] && a=\"no IPv4\"; s=$(cat \"$p/operstate\" 2>/dev/null || printf unknown); m=$(cat \"$p/address\" 2>/dev/null || printf unknown); [ \"$found\" -eq 1 ] && printf ' | '; printf '\\033[96m(%s)\\033[0m: %s [\\033[32m%s\\033[0m] - (%s)' \"$i\" \"$a\" \"$s\" \"$m\"; found=1; done; [ \"$found\" -eq 0 ] && printf 'none'"
59 + },
60 +
61 + {
62 + "type": "command",
63 + "key": "Docker VETH",
64 + "text": "n=0; for p in /sys/class/net/veth*; do [ -e \"$p\" ] || continue; n=$((n+1)); done; if [ \"$n\" -eq 1 ]; then printf '1 interface'; else printf '%s interfaces' \"$n\"; fi"
65 + },
66 +
67 + {
68 + "type": "command",
69 + "key": "Wi-Fi",
70 + "text": "found=0; for p in /sys/class/net/*; do i=${p##*/}; [ -d \"$p/wireless\" ] || continue; a=$(ip -o -4 addr show dev \"$i\" scope global | awk 'NR==1 {print $4}'); [ -z \"$a\" ] && a=\"no IPv4\"; s=$(cat \"$p/operstate\" 2>/dev/null || printf unknown); m=$(cat \"$p/address\" 2>/dev/null || printf unknown); [ \"$found\" -eq 1 ] && printf ' | '; printf '\\033[96m(%s)\\033[0m: %s [%s] - (%s)' \"$i\" \"$a\" \"$s\" \"$m\"; found=1; done; [ \"$found\" -eq 0 ] && printf 'none'"
65 71 },
66 72
67 - // SSID, frekuensi, keamanan, dan kekuatan sinyal koneksi Wi-Fi aktif.
68 73 {
69 74 "type": "wifi",
70 75 "key": "SSID"
71 76 },
72 77
73 - // Memerlukan akses Internet dan menggunakan layanan eksternal Fastfetch.
74 78 {
75 79 "type": "publicip",
76 80 "key": "Public IP"
77 81 },
78 82
79 - // Menampilkan adapter/radio Bluetooth bawaan komputer.
80 83 {
81 84 "type": "bluetoothradio",
82 85 "key": "Bluetooth Radio",
83 86 "format": "{name} - {vendor} - Bluetooth {version}"
84 87 },
85 88
86 - // Menampilkan perangkat Bluetooth yang dikenal atau terhubung.
87 89 {
88 90 "type": "bluetooth",
89 91 "key": "Bluetooth Device",

dartokloning's Avatar dartokloning ревизий этого фрагмента 1788249315. К ревизии

1 file changed, 1 insertion, 2 deletions

config.jsonc

@@ -53,8 +53,7 @@
53 53 {
54 54 "type": "command",
55 55 "key": "Ethernet",
56 - "splitLines": true,
57 - "text": "found=0; for p in /sys/class/net/*; do i=${p##*/}; [ \"$i\" = \"lo\" ] && continue; [ -d \"$p/wireless\" ] && continue; found=1; a=$(ip -o -4 addr show dev \"$i\" scope global | awk 'NR==1 {print $4}'); [ -z \"$a\" ] && a=\"no IPv4\"; s=$(cat \"$p/operstate\"); m=$(cat \"$p/address\"); printf '\\033[96m(%s)\\033[0m: %s [\\033[32m%s\\033[0m] - (%s)\\n' \"$i\" \"$a\" \"$s\" \"$m\"; done; [ \"$found\" -eq 0 ] && printf 'No Ethernet device found\\n'"
56 + "text": "found=0; first=1; for p in /sys/class/net/*; do i=${p##*/}; [ \"$i\" = \"lo\" ] && continue; [ -d \"$p/wireless\" ] && continue; found=1; a=$(ip -o -4 addr show dev \"$i\" scope global | awk 'NR==1 {print $4}'); [ -z \"$a\" ] && a=\"no IPv4\"; s=$(cat \"$p/operstate\"); m=$(cat \"$p/address\"); if [ \"$first\" -eq 1 ]; then first=0; printf '\\033[96m(%s)\\033[0m: %s [\\033[32m%s\\033[0m] - (%s)' \"$i\" \"$a\" \"$s\" \"$m\"; else printf '\\n \\033[96m(%s)\\033[0m: %s [\\033[32m%s\\033[0m] - (%s)' \"$i\" \"$a\" \"$s\" \"$m\"; fi; done; [ \"$found\" -eq 0 ] && printf 'No Ethernet device found'"
58 57 },
59 58
60 59 // Format: Wi-Fi (<interface>): <IPv4> [status] - (<MAC>)

dartokloning's Avatar dartokloning ревизий этого фрагмента 1788249075. К ревизии

1 file changed, 2 insertions, 2 deletions

config.jsonc

@@ -52,9 +52,9 @@
52 52 // Label berwarna magenta dan nama interface berwarna aqua.
53 53 {
54 54 "type": "command",
55 - "key": " ",
55 + "key": "Ethernet",
56 56 "splitLines": true,
57 - "text": "found=0; for p in /sys/class/net/*; do i=${p##*/}; [ \"$i\" = \"lo\" ] && continue; [ -d \"$p/wireless\" ] && continue; found=1; a=$(ip -o -4 addr show dev \"$i\" scope global | awk 'NR==1 {print $4}'); [ -z \"$a\" ] && a=\"no IPv4\"; s=$(cat \"$p/operstate\"); m=$(cat \"$p/address\"); printf '\\033[1;95mEthernet\\033[0m \\033[96m(%s)\\033[0m: %s [\\033[32m%s\\033[0m] - (%s)\\n' \"$i\" \"$a\" \"$s\" \"$m\"; done; [ \"$found\" -eq 0 ] && printf '\\033[1;95mEthernet\\033[0m: No Ethernet device found\\n'"
57 + "text": "found=0; for p in /sys/class/net/*; do i=${p##*/}; [ \"$i\" = \"lo\" ] && continue; [ -d \"$p/wireless\" ] && continue; found=1; a=$(ip -o -4 addr show dev \"$i\" scope global | awk 'NR==1 {print $4}'); [ -z \"$a\" ] && a=\"no IPv4\"; s=$(cat \"$p/operstate\"); m=$(cat \"$p/address\"); printf '\\033[96m(%s)\\033[0m: %s [\\033[32m%s\\033[0m] - (%s)\\n' \"$i\" \"$a\" \"$s\" \"$m\"; done; [ \"$found\" -eq 0 ] && printf 'No Ethernet device found\\n'"
58 58 },
59 59
60 60 // Format: Wi-Fi (<interface>): <IPv4> [status] - (<MAC>)

dartokloning's Avatar dartokloning ревизий этого фрагмента 1788248550. К ревизии

1 file changed, 1 insertion, 1 deletion

config.jsonc

@@ -52,7 +52,7 @@
52 52 // Label berwarna magenta dan nama interface berwarna aqua.
53 53 {
54 54 "type": "command",
55 - "key": "Ethernet",
55 + "key": " ",
56 56 "splitLines": true,
57 57 "text": "found=0; for p in /sys/class/net/*; do i=${p##*/}; [ \"$i\" = \"lo\" ] && continue; [ -d \"$p/wireless\" ] && continue; found=1; a=$(ip -o -4 addr show dev \"$i\" scope global | awk 'NR==1 {print $4}'); [ -z \"$a\" ] && a=\"no IPv4\"; s=$(cat \"$p/operstate\"); m=$(cat \"$p/address\"); printf '\\033[1;95mEthernet\\033[0m \\033[96m(%s)\\033[0m: %s [\\033[32m%s\\033[0m] - (%s)\\n' \"$i\" \"$a\" \"$s\" \"$m\"; done; [ \"$found\" -eq 0 ] && printf '\\033[1;95mEthernet\\033[0m: No Ethernet device found\\n'"
58 58 },

dartokloning's Avatar dartokloning ревизий этого фрагмента 1788248480. К ревизии

1 file changed, 2 insertions, 1 deletion

config.jsonc

@@ -52,7 +52,8 @@
52 52 // Label berwarna magenta dan nama interface berwarna aqua.
53 53 {
54 54 "type": "command",
55 - "key": " ",
55 + "key": "Ethernet",
56 + "splitLines": true,
56 57 "text": "found=0; for p in /sys/class/net/*; do i=${p##*/}; [ \"$i\" = \"lo\" ] && continue; [ -d \"$p/wireless\" ] && continue; found=1; a=$(ip -o -4 addr show dev \"$i\" scope global | awk 'NR==1 {print $4}'); [ -z \"$a\" ] && a=\"no IPv4\"; s=$(cat \"$p/operstate\"); m=$(cat \"$p/address\"); printf '\\033[1;95mEthernet\\033[0m \\033[96m(%s)\\033[0m: %s [\\033[32m%s\\033[0m] - (%s)\\n' \"$i\" \"$a\" \"$s\" \"$m\"; done; [ \"$found\" -eq 0 ] && printf '\\033[1;95mEthernet\\033[0m: No Ethernet device found\\n'"
57 58 },
58 59

dartokloning's Avatar dartokloning ревизий этого фрагмента 1787973627. К ревизии

1 file changed, 1 insertion, 1 deletion

config.jsonc

@@ -53,7 +53,7 @@
53 53 {
54 54 "type": "command",
55 55 "key": " ",
56 - "text": "found=0; for p in /sys/class/net/*; do i=${p##*/}; [ \"$i\" = \"lo\" ] && continue; [ -d \"$p/wireless\" ] && continue; found=1; a=$(ip -o -4 addr show dev \"$i\" scope global | awk 'NR==1 {print $4}'); [ -z \"$a\" ] && a=\"no IPv4\"; s=$(cat \"$p/operstate\"); m=$(cat \"$p/address\"); printf '\\033[1;95mEthernet\\033[0m \\033[96m(%s)\\033[0m: %s [%s] - (%s)\\n' \"$i\" \"$a\" \"$s\" \"$m\"; done; [ \"$found\" -eq 0 ] && printf '\\033[1;95mEthernet\\033[0m: No Ethernet device found\\n'"
56 + "text": "found=0; for p in /sys/class/net/*; do i=${p##*/}; [ \"$i\" = \"lo\" ] && continue; [ -d \"$p/wireless\" ] && continue; found=1; a=$(ip -o -4 addr show dev \"$i\" scope global | awk 'NR==1 {print $4}'); [ -z \"$a\" ] && a=\"no IPv4\"; s=$(cat \"$p/operstate\"); m=$(cat \"$p/address\"); printf '\\033[1;95mEthernet\\033[0m \\033[96m(%s)\\033[0m: %s [\\033[32m%s\\033[0m] - (%s)\\n' \"$i\" \"$a\" \"$s\" \"$m\"; done; [ \"$found\" -eq 0 ] && printf '\\033[1;95mEthernet\\033[0m: No Ethernet device found\\n'"
57 57 },
58 58
59 59 // Format: Wi-Fi (<interface>): <IPv4> [status] - (<MAC>)

dartokloning's Avatar dartokloning ревизий этого фрагмента 1787972087. К ревизии

1 file changed, 1 insertion, 1 deletion

config.jsonc

@@ -61,7 +61,7 @@
61 61 {
62 62 "type": "command",
63 63 "key": " ",
64 - "text": "found=0; for p in /sys/class/net/*; do i=${p##*/}; [ -d \"$p/wireless\" ] || continue; found=1; a=$(ip -o -4 addr show dev \"$i\" scope global | awk 'NR==1 {print $4}'); [ -z \"$a\" ] && a=\"no IPv4\"; s=$(cat \"$p/operstate\"); m=$(cat \"$p/address\"); printf '\\033[1;95mWi-Fi\\033[0m \\033[96m(%s)\\033[0m: %s [%s] - (%s)\\n' \"$i\" \"$a\" \"$s\" \"$m\"; done; [ \"$found\" -eq 0 ] && printf '\\033[1;95mWi-Fi\\033[0m: No Wi-Fi device found\\n'"
64 + "text": "for p in /sys/class/net/*; do i=${p##*/}; [ -d \"$p/wireless\" ] || continue; a=$(ip -o -4 addr show dev \"$i\" scope global | awk 'NR==1 {print $4}'); [ -z \"$a\" ] && a=\"no IPv4\"; s=$(cat \"$p/operstate\"); m=$(cat \"$p/address\"); printf '\\033[1;95mWi-Fi\\033[0m \\033[96m(%s)\\033[0m: %s [%s] - (%s)\\n' \"$i\" \"$a\" \"$s\" \"$m\"; done"
65 65 },
66 66
67 67 // SSID, frekuensi, keamanan, dan kekuatan sinyal koneksi Wi-Fi aktif.

dartokloning's Avatar dartokloning ревизий этого фрагмента 1787971331. К ревизии

1 file changed, 1 insertion, 1 deletion

config.jsonc

@@ -3,7 +3,7 @@
3 3
4 4 "display": {
5 5 "separator": ": ",
6 - "showErrors": true
6 + "showErrors": false
7 7 },
8 8
9 9 "modules": [

dartokloning's Avatar dartokloning ревизий этого фрагмента 1785825548. К ревизии

1 file changed, 98 insertions

config.jsonc(файл создан)

@@ -0,0 +1,98 @@
1 + {
2 + "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
3 +
4 + "display": {
5 + "separator": ": ",
6 + "showErrors": true
7 + },
8 +
9 + "modules": [
10 + "title",
11 + "separator",
12 +
13 + // Debian point release diambil dari /etc/debian_version.
14 + {
15 + "type": "command",
16 + "key": "OS Detail",
17 + "text": "echo \"Debian GNU/Linux $(cat /etc/debian_version) ($( . /etc/os-release; printf '%s' \"$VERSION_CODENAME\" )) $(uname -m)\""
18 + },
19 +
20 + "host",
21 +
22 + {
23 + "type": "bios",
24 + "key": "BIOS",
25 + "format": "{vendor} {version} ({date})"
26 + },
27 +
28 + "kernel",
29 + "uptime",
30 + "packages",
31 + "shell",
32 + "terminal",
33 +
34 + // Menampilkan akun manusia (UID >= 1000), bukan akun service/aplikasi.
35 + {
36 + "type": "command",
37 + "key": "User Accounts",
38 + "text": "getent passwd | awk -F: '$3 >= 1000 && $3 < 65534 && $7 !~ /(nologin|false)$/ {printf \"%s%s\", sep, $1; sep=\", \"} END {if (sep == \"\") printf \"none\"; print \"\"}'"
39 + },
40 +
41 + "cpu",
42 + "gpu",
43 + "memory",
44 + "swap",
45 +
46 + {
47 + "type": "disk",
48 + "key": "Disk"
49 + },
50 +
51 + // Format: Ethernet (<interface>): <IPv4> [status] - (<MAC>)
52 + // Label berwarna magenta dan nama interface berwarna aqua.
53 + {
54 + "type": "command",
55 + "key": " ",
56 + "text": "found=0; for p in /sys/class/net/*; do i=${p##*/}; [ \"$i\" = \"lo\" ] && continue; [ -d \"$p/wireless\" ] && continue; found=1; a=$(ip -o -4 addr show dev \"$i\" scope global | awk 'NR==1 {print $4}'); [ -z \"$a\" ] && a=\"no IPv4\"; s=$(cat \"$p/operstate\"); m=$(cat \"$p/address\"); printf '\\033[1;95mEthernet\\033[0m \\033[96m(%s)\\033[0m: %s [%s] - (%s)\\n' \"$i\" \"$a\" \"$s\" \"$m\"; done; [ \"$found\" -eq 0 ] && printf '\\033[1;95mEthernet\\033[0m: No Ethernet device found\\n'"
57 + },
58 +
59 + // Format: Wi-Fi (<interface>): <IPv4> [status] - (<MAC>)
60 + // Label berwarna magenta dan nama interface berwarna aqua.
61 + {
62 + "type": "command",
63 + "key": " ",
64 + "text": "found=0; for p in /sys/class/net/*; do i=${p##*/}; [ -d \"$p/wireless\" ] || continue; found=1; a=$(ip -o -4 addr show dev \"$i\" scope global | awk 'NR==1 {print $4}'); [ -z \"$a\" ] && a=\"no IPv4\"; s=$(cat \"$p/operstate\"); m=$(cat \"$p/address\"); printf '\\033[1;95mWi-Fi\\033[0m \\033[96m(%s)\\033[0m: %s [%s] - (%s)\\n' \"$i\" \"$a\" \"$s\" \"$m\"; done; [ \"$found\" -eq 0 ] && printf '\\033[1;95mWi-Fi\\033[0m: No Wi-Fi device found\\n'"
65 + },
66 +
67 + // SSID, frekuensi, keamanan, dan kekuatan sinyal koneksi Wi-Fi aktif.
68 + {
69 + "type": "wifi",
70 + "key": "SSID"
71 + },
72 +
73 + // Memerlukan akses Internet dan menggunakan layanan eksternal Fastfetch.
74 + {
75 + "type": "publicip",
76 + "key": "Public IP"
77 + },
78 +
79 + // Menampilkan adapter/radio Bluetooth bawaan komputer.
80 + {
81 + "type": "bluetoothradio",
82 + "key": "Bluetooth Radio",
83 + "format": "{name} - {vendor} - Bluetooth {version}"
84 + },
85 +
86 + // Menampilkan perangkat Bluetooth yang dikenal atau terhubung.
87 + {
88 + "type": "bluetooth",
89 + "key": "Bluetooth Device",
90 + "showDisconnected": true,
91 + "format": "{name} [{address}] - connected: {connected}"
92 + },
93 +
94 + "locale",
95 + "break",
96 + "colors"
97 + ]
98 + }
Новее Позже