@@ -36,25 +36,32 @@ A simple system stats event provider for Sketchybar.
3636Usage: stats_provider [OPTIONS]
3737
3838Options:
39- -a, --all Get all stats
40- -c, --cpu <CPU>... Get CPU stats [possible values: count, frequency, temperature, usage]
41- -d, --disk <DISK>... Get disk stats [possible values: count, free, total, usage, used]
42- -m, --memory <MEMORY>... Get memory stats [possible values: ram_available, ram_total, ram_usage, ram_used, swp_free, swp_total, swp_usage, swp_used]
43- -n, --network <NETWORK>... Network rx/tx in KB/s. Specify network interfaces (e.g., -n eth0 en0 lo0). At least one is required.
44- -s, --system <SYSTEM>... Get system stats [possible values: arch, distro, host_name, kernel_version, name, os_version, long_os_version]
45- -u, --uptime <UPTIME>... Get uptime stats [possible values: week, day, hour, min, sec]
46- -i, --interval <INTERVAL> Refresh interval in seconds [default: 5]
47- -b, --bar <BAR> Bar name (optional)
48- --verbose Enable verbose output
49- -h, --help Print help
50- -V, --version Print version
39+ -a, --all Get all stats
40+ -c, --cpu <CPU>... Get CPU stats [possible values: count, frequency, temperature, usage]
41+ -d, --disk <DISK>... Get disk stats [possible values: count, free, total, usage, used]
42+ -m, --memory <MEMORY>... Get memory stats [possible values: ram_available, ram_total, ram_usage, ram_used, swp_free, swp_total, swp_usage, swp_used]
43+ -n, --network <NETWORK>... Network rx/tx in KB/s. Specify network interfaces (e.g., -n eth0 en0 lo0). At least one is required.
44+ -s, --system <SYSTEM>... Get system stats [possible values: arch, distro, host_name, kernel_version, name, os_version, long_os_version]
45+ -u, --uptime <UPTIME>... Get uptime stats [possible values: week, day, hour, min, sec]
46+ -i, --interval <INTERVAL> Refresh interval in seconds [default: 5]
47+ --network-refresh-rate <NETWORK_REFRESH_RATE> Network refresh rate (how often to refresh network interface list, in stat intervals) [default: 5]
48+ -b, --bar <BAR> Bar name (optional)
49+ --verbose Enable verbose output
50+ -h, --help Print help
51+ -V, --version Print version
5152```
5253
5354Example: trigger event with cpu, disk and ram usage percentages at a refresh interval of 2 seconds:
5455``` bash
5556stats_provider --cpu usage --disk usage --memory ram_usage --interval 2
5657```
5758
59+ Example: network monitoring with optimized refresh rate:
60+ ``` bash
61+ # Monitor network with interface refresh every 8 stat intervals
62+ stats_provider --network en0 --interval 3 --network-refresh-rate 8
63+ ```
64+
5865### Uptime Usage
5966
6067The uptime system supports customizable time units. You can specify which units to display:
@@ -77,6 +84,28 @@ Available uptime units:
7784
7885Units are automatically sorted from largest to smallest, with intelligent carry-over (e.g., excess hours carry into days).
7986
87+ ### Network Optimization
88+
89+ The ` --network-refresh-rate ` parameter controls how frequently the network interface list is refreshed:
90+
91+ ``` bash
92+ # Default: refresh network interfaces every 5 stat intervals
93+ stats_provider --network en0 --interval 2 --network-refresh-rate 5
94+
95+ # More frequent refresh (every 2 intervals) for dynamic environments
96+ stats_provider --network en0 wlan0 --network-refresh-rate 2
97+
98+ # Less frequent refresh (every 10 intervals) for stable setups to reduce overhead
99+ stats_provider --network en0 --network-refresh-rate 10
100+ ```
101+
102+ ** Benefits:**
103+ - ** Performance** : Reduces system calls by refreshing interface list less frequently
104+ - ** Efficiency** : Network interfaces don't change rapidly, so frequent rescanning is unnecessary
105+ - ** Customizable** : Adjust based on your network environment stability
106+
107+ ** Recommendation:** Use higher values (8-15) for stable network setups, lower values (2-5) for environments where interfaces frequently change.
108+
80109Add the ` --verbose ` flag to see more detailed output:
81110
82111``` console
0 commit comments