58 lines
2.1 KiB
Python
Executable File
58 lines
2.1 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
import sys
|
|
import subprocess
|
|
import json
|
|
|
|
if __name__ == "__main__":
|
|
try:
|
|
result = subprocess.run(
|
|
['hyprctl', '-j', 'monitors'],
|
|
capture_output=True, text=True, check=True
|
|
)
|
|
monitors = json.loads(result.stdout)
|
|
monitor_names = []
|
|
for monitor in monitors:
|
|
if 'name' in monitor:
|
|
monitor_names.append(monitor['name'])
|
|
if "DP-2" in monitor_names:
|
|
result = subprocess.run(
|
|
["hyprctl", "keyword", "monitor", "DP-2,disable"],
|
|
capture_output=True, text=True, check=True
|
|
)
|
|
if result.returncode != 0:
|
|
print("Failed to disable monitor Virtual-1", file=sys.stderr)
|
|
sys.exit(1)
|
|
else:
|
|
result = subprocess.run(
|
|
["hyprctl", "keyword", "monitor", "eDP-1,3840x2160@60,0x0,1"],
|
|
capture_output=True, text=True)
|
|
if result.returncode != 0:
|
|
print("Failed to open laptop display", file=sys.stderr)
|
|
sys.exit(1)
|
|
else:
|
|
result = subprocess.run(
|
|
["hyprctl", "keyword", "monitor",
|
|
"DP-2, 2560x1080@74.99,0x0,1"],
|
|
capture_output=True, text=True, check=True
|
|
)
|
|
if result.returncode != 0:
|
|
print("Failed to set open DP-2", file=sys.stderr)
|
|
sys.exit(1)
|
|
else:
|
|
result = subprocess.run(
|
|
["hyprctl", "keyword", "monitor", "eDP-1,disable"],
|
|
capture_output=True, text=True, check=True
|
|
)
|
|
if result.returncode != 0:
|
|
print("Failed to disable Laptop display",
|
|
file=sys.stderr)
|
|
sys.exit(1)
|
|
|
|
except subprocess.CalledProcessError as e:
|
|
print(f"Error executing hyprctl: {e}", file=sys.stderr)
|
|
sys.exit(1)
|
|
except Exception as e:
|
|
print(f"An unexpected error occurred: {e}", file=sys.stderr)
|
|
sys.exit(1)
|