summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.i3/scripts/libs/i3.py2
-rwxr-xr-x.i3/scripts/workspaces.py9
2 files changed, 8 insertions, 3 deletions
diff --git a/.i3/scripts/libs/i3.py b/.i3/scripts/libs/i3.py
index 343c709..789ef51 100644
--- a/.i3/scripts/libs/i3.py
+++ b/.i3/scripts/libs/i3.py
@@ -552,6 +552,8 @@ class i3(ModuleType):
if name.lower() in self.__module__.MSG_TYPES:
return self.__module__.__function__(type=name)
else:
+ if name == "exec_":
+ name = "exec"
return self.__module__.__function__(type='command', message=name)
diff --git a/.i3/scripts/workspaces.py b/.i3/scripts/workspaces.py
index 5abfea3..137d5fc 100755
--- a/.i3/scripts/workspaces.py
+++ b/.i3/scripts/workspaces.py
@@ -44,9 +44,12 @@ def new_ws(cmd, args):
cmd(str(i+1))
if exe:
- try:
- sh.Command(exe)()
- except sh.CommandNotFound:
+ # We use i3.exec_ here instead of sh.Command, as we do not want the
+ # exe to be a child of this script's process
+ # Also we get startup notification support for free :-)
+ if sh.which(exe): # i3 exec always yields 'success'
+ i3.exec_(exe)
+ else:
nag("Command '%s' not found!" % exe)
def to_ws(cmd, prompt, args):