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)