AstraExt / astra-monitor

Resource Monitor for GNOME shell
GNU General Public License v3.0
297 stars 16 forks source link

New enhancements #34

Closed Marcoe6 closed 7 months ago

Marcoe6 commented 9 months ago

Description

  1. Add the possibility to select what to show in the gnome-panel
  2. Add a warning threshold
  3. Add battery information
  4. In the Network menu add the Public IP + country's name/flag
  5. In the Network menu add the VPN status
  6. Add detailed Network info

Details

1. Add the possibility to select what to show in the gnome-panel:

In the CPU, Memory and Storage tabs it's only possible to enable/disable the percentage. Why not also add the possibility to show different values? Like the Sensor tab, the user can select what to show in the gnome-panel using the Source menu. For the CPU could be the CPU freq (GHz). , for the Memory could be the memory used in GB as well as for the Storage etc

2. Add a warning threshold

Set a threshold (percentage or absolute number) for the sensor and change the color of the icon when the the value is reached. e.g.: If the CPU percentage hits 80% change the color to red If the Download speed reaches 10MB/s change to blue etc

3. Add new tab Battery information

The output of upower -d is:

``` Device: /org/freedesktop/UPower/devices/line_power_AC native-path: AC power supply: yes updated: dom 21 gen 2024, 11:03:51 (10 seconds ago) has history: no has statistics: no line-power warning-level: none online: yes icon-name: 'ac-adapter-symbolic' Device: /org/freedesktop/UPower/devices/battery_BAT0 native-path: BAT0 vendor: SMP model: 01AV446 serial: 3611 power supply: yes updated: dom 21 gen 2024, 11:04:01 (0 seconds ago) has history: yes has statistics: yes battery present: yes rechargeable: yes state: charging warning-level: none energy: 15,21 Wh energy-empty: 0 Wh energy-full: 41,73 Wh energy-full-design: 45,28 Wh energy-rate: 10,857 W voltage: 11,815 V charge-cycles: 263 time to full: 2,4 hours percentage: 36% capacity: 92,1599% technology: lithium-polymer icon-name: 'battery-good-charging-symbolic' History (charge): 1705831415 36,000 discharging 1705831329 35,000 discharging History (rate): 1705831441 10,857 charging 1705831431 0,000 charging 1705831425 6,457 discharging 1705831415 0,000 discharging 1705831386 10,706 charging 1705831375 0,000 charging 1705831359 10,039 discharging 1705831329 10,360 discharging Device: /org/freedesktop/UPower/devices/line_power_ucsi_source_psy_USBC000o001 native-path: ucsi-source-psy-USBC000:001 power supply: yes updated: dom 21 gen 2024, 11:03:52 (9 seconds ago) has history: no has statistics: no line-power warning-level: none online: yes icon-name: 'ac-adapter-symbolic' Device: /org/freedesktop/UPower/devices/DisplayDevice power supply: yes updated: dom 21 gen 2024, 11:04:01 (0 seconds ago) has history: no has statistics: no battery present: yes state: charging warning-level: none energy: 15,21 Wh energy-full: 41,73 Wh energy-rate: 10,857 W charge-cycles: N/A time to full: 2,4 hours percentage: 36% icon-name: 'battery-good-charging-symbolic' Daemon: daemon-version: 1.90.2 on-battery: no lid-is-closed: no lid-is-present: yes critical-action: HybridSleep ```

It is possible to parse all the above data to get e.g. Energy rate (power [W] charging/discharging) , time to full (that changes to time to empty when discharging) etc

4. In the Network menu add the Public IP + country's name/flag

curl ipinfo.io/8.8.8.8
{
  "ip": "8.8.8.8",
  "hostname": "dns.google",
  "anycast": true,
  "city": "Mountain View",
  "region": "California",
  "country": "US",
  "loc": "37.4056,-122.0775",
  "org": "AS15169 Google LLC",
  "postal": "94043",
  "timezone": "America/Los_Angeles",
  "readme": "https://ipinfo.io/missingauth"

Note: the above info should not be updated every 1-2 sec as the Network but at most once a minute or 30 sec to avoid unnecessary curl request ( I do not think my IP changes every 2 seconds) and the second curl should be execute only if the public IP changes

5. In the Network menu add the VPN status

Using the command nmcli con show --active it's possible to see all the active connection/s with details

NAME UUID TYPE DEVICE
HUAWEI zzzzz-xxxx-yyyy-aaaa-1234567890 wifi wlp5s0
lo zzzzz-xxxx-yyyy-aaaa-1234567890 loopback lo
NAME UUID TYPE DEVICE
ProtonVPN zzzzz-xxxx-yyyy-aaaa-1234567890 vpn wlp5s0
HUAWEI zzzzz-xxxx-yyyy-aaaa-1234567890 wifi wlp5s0
tun0 zzzzz-xxxx-yyyy-aaaa-1234567890 tun tun0
lo zzzzz-xxxx-yyyy-aaaa-1234567890 loopback lo
pvpn-killswitch-ipv6 zzzzz-xxxx-yyyy-aaaa-1234567890 dummy ipv6leakintrf0
pvpn-killswitch zzzzz-xxxx-yyyy-aaaa-1234567890 dummy pvpnksintrf0

Change the VPN icon color (e.g. to green) if the VPN is connected

6. Add detailed Network info

Add Network details about (Link speed, signal level, channel etc)

Using the command iwconfig (followed by the name of the network interface e.g. iwconfig wlan0 or iwlist (followed by the network interface and the parameter e.g. iwlist wlan0 bitrate

iwconfig wlp5s0 
wlp5s0    IEEE 802.11  ESSID:"HUAWEI"  
          Mode:Managed  Frequency:5.18 GHz  Access Point: 74:XX:XX:XX:XX:XX   
          Bit Rate=390 Mb/s   Tx-Power=22 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=47/70  Signal level=-63 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:123   Missed beacon:0

or get one by one used iwlist

Screenshots

  1. Screenshot from 2024-01-21 10-51-48

  2. ip

Thank you !

ljuzig commented 9 months ago

Very great suggestions, thank you! Some of them were already in the list for V7. Will update you further as these features are being implemented.

sansmoraxz commented 9 months ago

Adding some of my suggestions here:

ljuzig commented 9 months ago

@sansmoraxz gpu data like amdgpu_top or nvidia-smi or intel_gpu_top will be added by default in the processor menu. Can't give an ETA right now. As far as other sensor sources go, I am doing some evaluations to find out if it is possible to safely add customizable modules. Having the user create scripts to run in the shell, I don't know if that is allowed by EGO.

ljuzig commented 7 months ago

Most of the requests of the OP have been added in the last release or in the previous ones. For battery info, asp per our Roadmap, it will be added in April. I'm gonna close this issue, but feel free to add any other suggestion or ask for a reopen if you think some request is unfulfilled.