diff --git a/openbox-pipemenu-recent.py b/openbox-pipemenu-recent.py
old mode 100644
new mode 100755
index a424ca1..847f18c
--- a/openbox-pipemenu-recent.py
+++ b/openbox-pipemenu-recent.py
@@ -2,55 +2,59 @@
 # -*- coding: utf-8 -*-
 #
 #  openbox-pipemenu-recent.py
-#  
+#
 #  Copyright 2017 kirbylife <https://github.com/ImNotRoot>
-#  
+#
 #  This program is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License as published by
 #  the Free Software Foundation; either version 2 of the License, or
 #  (at your option) any later version.
-#  
+#
 #  This program is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU General Public License for more details.
-#  
+#
 #  You should have received a copy of the GNU General Public License
 #  along with this program; if not, write to the Free Software
 #  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 #  MA 02110-1301, USA.
-#  
-#  
+#
+#
 
-import xml.etree.ElementTree
 import os
+import xml.etree.ElementTree
 
-XMLFILE=os.environ['HOME']+"/.local/share/recently-used.xbel"
+XMLFILE = os.environ['HOME'] + "/.local/share/recently-used.xbel"
+
+
+def set_item(name, file=""):
+    if file not in "":
+        print("<item label='" + name +
+              "'><action name='Execute'><command>xdg-open " + file +
+              "</command></action></item>")
+    else:
+        print("<item label='" + name + "'></item>")
 
-def setItem(name,file=""):
-	if file not in "":
-		print "<item label='"+name+"'><action name='Execute'><command>xdg-open "+file+"</command></action></item>"
-	else:
-		print "<item label='"+name+"'></item>"
 
 def main(args):
-	
-	### Header ###
-	print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
-	print "<openbox_pipe_menu>"
-	###        ###
-	
-	e = xml.etree.ElementTree.parse(XMLFILE).getroot()
-	files=e.findall("bookmark")
-	for c in range(len(files)-1,len(files)-11,-1):
-		file=files[c].get("href")
-		if "file://" in file:
-			setItem(file[file.rfind("/")+1:],file[7:])
-	
-	### Footer ###
-	print "</openbox_pipe_menu>"
-	###        ###
-	return 0
+    ### Header ###
+    print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>")
+    print("<openbox_pipe_menu>")
+    ###        ###
+
+    e = xml.etree.ElementTree.parse(XMLFILE).getroot()
+    files = e.findall("bookmark")
+    for c in range(len(files) - 1, len(files) - 11, -1):
+        file = files[c].get("href")
+        if "file://" in file:
+            set_item(file[file.rfind("/") + 1:], file[7:])
+
+    ### Footer ###
+    print("</openbox_pipe_menu>")
+    ###        ###
+    return 0
+
 
 if __name__ == '__main__':
     import sys
diff --git a/openbox-pipemenu-steam.py b/openbox-pipemenu-steam.py
old mode 100644
new mode 100755
index 9268c8a..f92e5d8
--- a/openbox-pipemenu-steam.py
+++ b/openbox-pipemenu-steam.py
@@ -2,71 +2,78 @@
 # -*- coding: utf-8 -*-
 #
 #  openbox-pipemenu-steam.py
-#  
+#
 #  Copyright 2017 kirbylife <https://github.com/ImNotRoot>
-#  
+#
 #  This program is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License as published by
 #  the Free Software Foundation; either version 2 of the License, or
 #  (at your option) any later version.
-#  
+#
 #  This program is distributed in the hope that it will be useful,
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #  GNU General Public License for more details.
-#  
+#
 #  You should have received a copy of the GNU General Public License
 #  along with this program; if not, write to the Free Software
 #  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 #  MA 02110-1301, USA.
-#  
-#  
+#
+#
 
-from commands import getstatusoutput,getoutput
 import os
 
-STEAM_URL=os.environ['HOME']+"/.steam/steam/steamapps"
+try:
+    from commands import getoutput, getstatusoutput
+except:
+    from subprocess import getoutput, getstatusoutput
+
+STEAM_URL = os.environ['HOME'] + "/.steam/steam/steamapps"
+
+
+def set_item(name, appid=None):
+    if appid:
+        print("<item label='" + name +
+              "'><action name='Execute'><command>steam steam://rungameid/" +
+              appid + "</command></action></item>")
+    else:
+        print("<item label='" + name + "'></item>")
+
 
-def setItem(name,appid=""):
-	if appid not in "":
-		print "<item label='"+name+"'><action name='Execute'><command>steam steam://rungameid/"+appid+"</command></action></item>"
-	else:
-		print "<item label='"+name+"'></item>"
-	
 def main(args):
-	games=[]
-	
-	### Header ###
-	print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
-	print "<openbox_pipe_menu>"
-	###        ###
-	
-	if getstatusoutput("cd "+STEAM_URL)[0] == 1:
-		setItem("Steam not installed")
-	else:
-		games=getoutput("ls "+STEAM_URL+" | grep acf").split("\n")
-		if len(games) == 0:
-			setItem("NO games installed")
-		else:
-			for c in games:
-				appid=""
-				name=""
-				#print STEAM_URL+"/"+c
-				manifest=open(STEAM_URL+"/"+c,"r")
-				data=manifest.read().split("\n")
-				manifest.close()
-				for f in data:
-					if '"appid"' in f:
-						appid=f.split('"')[3]
-					elif '"name"' in f:
-						name=f.split('"')[3]
-				setItem(name,appid)
-				
+    games = []
+
+    ### Header ###
+    print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>")
+    print("<openbox_pipe_menu>")
+    ###        ###
+
+    if getstatusoutput("cd " + STEAM_URL)[0] == 1:
+        set_item("Steam not installed")
+    else:
+        games = getoutput("ls " + STEAM_URL + " | grep acf").split("\n")
+        if not games:
+            set_item("0 games installed")
+        else:
+            for c in games:
+                appid = ""
+                name = ""
+                manifest = open(STEAM_URL + "/" + c, "r")
+                data = manifest.read().split("\n")
+                manifest.close()
+                for f in data:
+                    if '"appid"' in f:
+                        appid = f.split('"')[3]
+                    elif '"name"' in f:
+                        name = f.split('"')[3]
+                set_item(name, appid)
+
+    ### Footer ###
+    print("</openbox_pipe_menu>")
+    ###        ###
+    return 0
 
-	### Footer ###
-	print "</openbox_pipe_menu>"
-	###        ###
-	return 0
 
 if __name__ == '__main__':
     import sys