I want to check which window manager is active using python? I used subprocess.run but it’s giving me string type output like below :
name: xfwm4 class: xfwm4 pid: 6981
I just want xfwm4 from name.Is there any alternative of subprocess and wmctrl for showing window manager? This is my code so far,
def getWM():
try:
output = subprocess.run(['wmctrl', '-m'], text=True,stdout=subprocess.PIPE, stderr=subprocess.PIPE)
if output.stdout:
s = (output.stdout) + ' '
return s
except:
return None
Advertisement
Answer
Using split is simplest:
import subprocess as sb
output=sb.run(['wmctrl', '-m'], text=True,stdout=sb.PIPE, stderr=sb.PIPE)
namestr=output.stdout.split('n')[0]
# For me this gives 'Name: KWin'
name=namestr.split(' ')[1]
# and this gives 'KWin'