dotfiles/dot_config/polybar/scripts/executable_vm-stat.py

63 lines
1.5 KiB
Python
Raw Permalink Normal View History

#!/usr/bin/python
import subprocess
import argparse
palette = {
"background": "#232c31",
"foreground": "#c5c8c6",
"selection": "#425059",
"line": "#2d3c46",
"comment": "#777777",
"red": "#cc6666",
"orange": "#de935f",
"yellow": "#f0c674",
"green": "#b5bd68",
"aqua": "#8abeb7",
"blue": "#81a2be",
"purple": "#b294bb",
"window": "#303030",
"darkcolumn": "#1c1c1c",
"addbg": "#5F875F",
"addfg": "#d7ffaf",
"changebg": "#5F5F87",
"changefg": "#d7d7ff",
"delbg": "#cc6666",
"darkblue": "#00005f",
"darkcyan": "#005f5f",
"darkred": "#5f0000",
"darkpurple": "#5f005f",
}
parser = argparse.ArgumentParser()
parser.add_argument('--color-running', default='#9f78e1')
parser.add_argument('--color-zero', default='#777777')
args = parser.parse_args()
def count_running_vm():
# For VirtualBox
# output = subprocess.check_output('VBoxManage list runningvms | wc -l',
# shell=True)
# return int(output.decode('UTF-8'))
# For libvirt
output = subprocess.check_output('doas virsh list | wc -l', shell=True)
libvirt_cnt = int(output.decode('UTF-8')) - 3
output = subprocess.check_output('vboxmanage list runningvms | wc -l', shell=True)
vbox_cnt = int(output.decode('UTF_8'))
return f"{libvirt_cnt} {vbox_cnt}"
def get_color(num_str):
if num_str != "0 0":
return '%{F' + args.color_running + '}'
return '%{F' + args.color_zero + '}'
num = count_running_vm()
print(get_color(num) + '' + num)