restore legacy, include shorcut scripts

This commit is contained in:
buenosairesam
2025-12-29 14:12:46 -03:00
parent ac475b9a5a
commit f5ddcad45c
17 changed files with 1877 additions and 0 deletions

85
dmapp/dmos/cyclework.py Normal file
View File

@@ -0,0 +1,85 @@
#!/usr/bin/env python3
import os
import subprocess
# Define the list of workspaces to cycle through
WORKSPACES = [3, 6, 7, 8]
LAST_WS_FILE = "/tmp/lastws"
def get_current_workspace():
result = subprocess.run(["wmctrl", "-d"], capture_output=True, text=True)
lines = result.stdout.splitlines()
for line in lines:
if "*" in line: # The active workspace has a '*' symbol
try:
current_workspace = int(line.split()[0]) + 1
print(f"Current workspace detected: {current_workspace}")
return current_workspace
except (IndexError, ValueError):
print("Error parsing current workspace.")
return None
print("No active workspace found.")
return None
def switch_to_workspace(workspace):
print(f"Switching to workspace {workspace}")
subprocess.run(["wmctrl", "-s", str(workspace - 1)])
save_last_used_workspace(workspace)
def save_last_used_workspace(workspace):
with open(LAST_WS_FILE, "w") as f:
f.write(str(workspace))
def get_last_used_workspace():
if os.path.exists(LAST_WS_FILE):
with open(LAST_WS_FILE, "r") as f:
try:
return int(f.read().strip())
except ValueError:
return WORKSPACES[0]
return WORKSPACES[0]
if __name__ == "__main__":
import sys
if len(sys.argv) < 2 or sys.argv[1] not in ["up", "down", "current"]:
print("Usage: python cyclework.py [up|down|current]")
sys.exit(1)
direction = sys.argv[1]
current = get_current_workspace()
if current is None:
sys.exit(1)
if direction == "current":
if current in WORKSPACES:
print("Already in a workspace in the cycle.")
sys.exit(0)
last_used = get_last_used_workspace()
print(f"Switching to last used workspace in cycle: {last_used}")
switch_to_workspace(last_used)
sys.exit(0)
try:
index = WORKSPACES.index(current)
except ValueError:
print("Current workspace is not in the list.")
sys.exit(1)
if direction == "up":
index = (index + 1) % len(WORKSPACES)
else: # direction == 'down'
index = (index - 1) % len(WORKSPACES)
next_workspace = WORKSPACES[index]
switch_to_workspace(next_workspace)