if (len(allProjectNames) == 0) or (allProjectNames is None): sys.exit(1) currentProjName = nf.getProjectFromWKName(focWkName) if currentProjName is None: nextProjIndex = 0 else: nextProjIndex = allProjectNames.index(currentProjName) if nextProjIndex == (len(allProjectNames) - 1): nextProjIndex = 0 else: nextProjIndex = nextProjIndex + 1 nxtProjWks = nf.getWKNamesFromProj(wkList, allProjectNames[nextProjIndex]) visWks = nf.getVisibleWKs(wkList) wksToMakeVisible = list(set(nxtProjWks) - set(visWks)) focOutput = nf.getOutputForWK(wkList, focWkName) focOutputWks = nf.getWorkspacesOnOutput(wkList, focOutput) wkToBeFocused = list(set(focOutputWks).intersection(nxtProjWks)) parCommToRun = ['workspace ' + x for x in wksToMakeVisible] if len(wkToBeFocused) > 0 and wksToMakeVisible[-1] != wkToBeFocused[0]: parCommToRun.append('workspace ' + wkToBeFocused[0]) commandToRun = ["swaymsg", '; '.join(parCommToRun)]
import json import sys import necessaryFuncs as nf proc_out = subprocess.run(['swaymsg', '-t', 'get_workspaces'], stdout=subprocess.PIPE) wkList = json.loads(proc_out.stdout.decode('utf-8')) allWKNames = nf.getWKNames(wkList) currentWK = nf.getFocusedWK(wkList) currentProj = nf.getProjectFromWKName(currentWK) if currentProj is None: sys.exit(1) currentProjWKs = nf.getWKNamesFromProj(wkList, currentProj) if len(currentProjWKs) < 2: sys.exit(1) thisWKPos = currentProjWKs.index(currentWK) newWKPos = thisWKPos + 1 if newWKPos == len(currentProjWKs): newWKPos = 0 commandToRun = ['swaymsg', 'move container to workspace ' + currentProjWKs[newWKPos]] subprocess.call(commandToRun)