diff --git a/bin/run-sway b/bin/run-sway
index ff43f336070bd37f31e8cb43fff0f1a0c0073a23..156779a7237342a41988ee896aa1ffe89ad41c96 100755
--- a/bin/run-sway
+++ b/bin/run-sway
@@ -2,6 +2,7 @@
 
 set -e
 set -u
+set -o pipefail
 
 readonly executable_name=qbar
 readonly sway_bar_id=bar-0
@@ -16,7 +17,7 @@ mkfifo $stderr
 
 trap "swaymsg bar $sway_bar_id status_command '$default_bar_command'; rm -rf $temp_dir" EXIT INT HUP TERM
 
-swaymsg bar $sway_bar_id status_command "exec $(stack path --local-install-root)/bin/$executable_name $@ -- server 2> $stderr"
+swaymsg bar $sway_bar_id status_command "exec $(stack path --local-install-root)/bin/$executable_name $@ -- server swaybar 2> $stderr"
 
 # show output and run forever (use Ctrl-C to stop)
 cat $stderr
diff --git a/src/QBar/Cli.hs b/src/QBar/Cli.hs
index 74ed961d50958b204731245a2dcbaa87e2e2fdaf..82d272037a042ee783dc1a4706261ec66386af39 100644
--- a/src/QBar/Cli.hs
+++ b/src/QBar/Cli.hs
@@ -38,12 +38,16 @@ mainParser = do
 
 barCommandParser :: Parser (MainOptions -> IO ())
 barCommandParser = hsubparser (
-    command "server" (info (runBarServer <$> barConfigurationParser) (progDesc "Start a new qbar server. Should be called by swaybar, i3bar or or another i3bar-protocol compatible host process.")) <>
-    command "connect" (info (sendBlockStream <$> barConfigurationParser) (progDesc "Run blocks on this process but display them on the qbar server.")) <>
+    command "server" (info serverCommandParser (progDesc "Start a new server.")) <>
     command "pipe" (info pipeClientParser (progDesc "Redirects the stdin of this process to a running bar.")) <>
-    command "theme" (info themeCommandParser (progDesc "Change the theme of the running qbar server.")) <>
-    command "default" (info (pure $ sendIpc . SetTheme $ "default") (progDesc "Shortcut for 'qbar theme default'.")) <>
-    command "rainbow" (info (pure $ sendIpc . SetTheme $ "rainbow") (progDesc "Shortcut for 'qbar theme rainbow'."))
+    command "theme" (info themeCommandParser (progDesc "Change the theme of the running qbar server."))
+  )
+
+serverCommandParser :: Parser (MainOptions -> IO ())
+serverCommandParser = hsubparser (
+    command "swaybar" (info (runBarServer <$> barConfigurationParser) (progDesc "Start a new server for swaybar. Should be called by swaybar.")) <>
+    command "i3bar" (info (runBarServer <$> barConfigurationParser) (progDesc "Start a new server for i3bar. Should be called by i3bar.")) <>
+    command "connect" (info (sendBlockStream <$> barConfigurationParser) (progDesc "Run blocks on this process but send them to another qbar server."))
   )
 
 themeCommandParser :: Parser (MainOptions -> IO ())