65 lines
1.6 KiB
Python
Executable File
65 lines
1.6 KiB
Python
Executable File
#!/usr/bin/python3
|
|
|
|
import json
|
|
import os
|
|
import sys
|
|
|
|
def read_value_from_file(file_path):
|
|
try:
|
|
with open(file_path, 'r') as file:
|
|
value = file.read().strip()
|
|
return value
|
|
except Exception as e:
|
|
return f"Error: {e}"
|
|
|
|
def read_click_state(state_file):
|
|
try:
|
|
if os.path.exists(state_file):
|
|
with open(state_file, 'r') as file:
|
|
state = file.read().strip()
|
|
return state == "clicked"
|
|
else:
|
|
return False
|
|
except Exception as e:
|
|
return False
|
|
|
|
def toggle_click_state(state_file):
|
|
try:
|
|
if read_click_state(state_file):
|
|
with open(state_file, 'w') as file:
|
|
file.write("unclicked")
|
|
else:
|
|
with open(state_file, 'w') as file:
|
|
file.write("clicked")
|
|
except Exception as e:
|
|
pass
|
|
|
|
def generate_waybar_json(value, clicked):
|
|
if clicked:
|
|
data = {
|
|
"text": value,
|
|
#"tooltip": f"Upload Speed: {value}",
|
|
#"class": "custom"
|
|
}
|
|
else:
|
|
data = {
|
|
"text": "UP",
|
|
"tooltip": f"Upload Speed: {value}",
|
|
"class": "custom"
|
|
}
|
|
return json.dumps(data)
|
|
|
|
if __name__ == "__main__":
|
|
file_path = "/home/teraflops/.config/waybar/scripts/up.txt"
|
|
state_file = "/tmp/waybar_tooltip_state"
|
|
value = read_value_from_file(file_path)
|
|
|
|
# Check for the toggle argument
|
|
if len(sys.argv) > 1 and sys.argv[1] == "toggle":
|
|
toggle_click_state(state_file)
|
|
|
|
clicked = read_click_state(state_file)
|
|
waybar_json = generate_waybar_json(value, clicked)
|
|
print(waybar_json)
|
|
|