about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--TODO1
-rw-r--r--ranger/actions.py9
-rw-r--r--ranger/defaults/keys.py2
3 files changed, 10 insertions, 2 deletions
diff --git a/TODO b/TODO
index 55e44420..a5561573 100644
--- a/TODO
+++ b/TODO
@@ -19,3 +19,4 @@ General
    (X) #11  09/12/27  filter
    (X) #12  09/12/27  jump through the list in a specific order
    ( ) #14  09/12/29  make filelists inherit from pagers
+   ( ) #15  09/12/29  better way of running processes!!~
diff --git a/ranger/actions.py b/ranger/actions.py
index 3e5ebdb7..3aef7d86 100644
--- a/ranger/actions.py
+++ b/ranger/actions.py
@@ -249,7 +249,14 @@ class Actions(EnvironmentAware, SettingsAware):
 	def runcmd(self, cmd, suspend=True, wait=True):
 		from ranger.applications import spawn
 		spawn(cmd, fm=self, suspend=wait, wait=wait)
-
+	
+	def spawn_shell(self):
+		from ranger.applications import run
+		from subprocess import STDOUT
+		run("bash", flags='', fm=self,
+				mode=0, shell=True, stdin=None,
+				apps=self.apps, stderr=STDOUT)
+	
 	def force_load_preview(self):
 		cf = self.env.cf
 		if cf is not None:
diff --git a/ranger/defaults/keys.py b/ranger/defaults/keys.py
index 654b1c7b..6bce7289 100644
--- a/ranger/defaults/keys.py
+++ b/ranger/defaults/keys.py
@@ -55,7 +55,7 @@ def initialize_commands(command_list):
 	bind('dd', fm.cut())
 	bind('p', fm.paste())
 
-	bind('s', fm.spawn('bash'))
+	bind('s', fm.spawn_shell())
 
 	bind(TAB, fm.search(order='tag'))