diff --git a/src/protocols/kubernetes/argv.c b/src/protocols/kubernetes/argv.c
index e46bb2f..c37595d 100644
--- a/src/protocols/kubernetes/argv.c
+++ b/src/protocols/kubernetes/argv.c
@@ -199,3 +199,26 @@
 
 }
 
+void* guac_kubernetes_send_current_argv(guac_user* user, void* data) {
+
+    guac_kubernetes_client* kubernetes_client = (guac_kubernetes_client*) data;
+    guac_terminal* terminal = kubernetes_client->term;
+
+    /* Send current color scheme */
+    guac_user_stream_argv(user, user->socket, "text/plain", "color-scheme",
+            terminal->color_scheme);
+
+    /* Send current font name */
+    guac_user_stream_argv(user, user->socket, "text/plain", "font-name",
+            terminal->font_name);
+
+    /* Send current font size */
+    char font_size[64];
+    sprintf(font_size, "%i", terminal->font_size);
+    guac_user_stream_argv(user, user->socket, "text/plain", "font-size",
+            font_size);
+
+    return NULL;
+
+}
+
diff --git a/src/protocols/kubernetes/argv.h b/src/protocols/kubernetes/argv.h
index da9e11b..1a23df1 100644
--- a/src/protocols/kubernetes/argv.h
+++ b/src/protocols/kubernetes/argv.h
@@ -37,5 +37,26 @@
  */
 guac_user_argv_handler guac_kubernetes_argv_handler;
 
+/**
+ * Sends the current values of all non-sensitive parameters which may be set
+ * while the connection is running to the given user. Note that the user
+ * receiving these values will not necessarily be able to set new values
+ * themselves if their connection is read-only. This function is provided for
+ * convenience, as it is can be used as the callback for
+ * guac_client_foreach_user() or guac_client_for_owner().
+ *
+ * @param user
+ *     The user that should receive the values of all non-sensitive parameters
+ *     which may be set while the connection is running.
+ *
+ * @param data
+ *     The guac_kubernetes_client instance associated with the current
+ *     connection.
+ *
+ * @return
+ *     Always NULL.
+ */
+void* guac_kubernetes_send_current_argv(guac_user* user, void* data);
+
 #endif
 
diff --git a/src/protocols/kubernetes/kubernetes.c b/src/protocols/kubernetes/kubernetes.c
index 7c22c42..bd84f6c 100644
--- a/src/protocols/kubernetes/kubernetes.c
+++ b/src/protocols/kubernetes/kubernetes.c
@@ -18,6 +18,8 @@
  */
 
 #include "config.h"
+
+#include "argv.h"
 #include "client.h"
 #include "common/recording.h"
 #include "io.h"
@@ -249,6 +251,10 @@
         goto fail;
     }
 
+    /* Send current values of exposed arguments to owner only */
+    guac_client_for_owner(client, guac_kubernetes_send_current_argv,
+            kubernetes_client);
+
     /* Set up typescript, if requested */
     if (settings->typescript_path != NULL) {
         guac_terminal_create_typescript(kubernetes_client->term,
diff --git a/src/protocols/kubernetes/user.c b/src/protocols/kubernetes/user.c
index a2fdd20..e7f6d8f 100644
--- a/src/protocols/kubernetes/user.c
+++ b/src/protocols/kubernetes/user.c
@@ -74,6 +74,7 @@
     /* If not owner, synchronize with current display */
     else {
         guac_terminal_dup(kubernetes_client->term, user, user->socket);
+        guac_kubernetes_send_current_argv(user, kubernetes_client);
         guac_socket_flush(user->socket);
     }
 
diff --git a/src/protocols/ssh/argv.c b/src/protocols/ssh/argv.c
index 0a4e670..d9ce1e7 100644
--- a/src/protocols/ssh/argv.c
+++ b/src/protocols/ssh/argv.c
@@ -204,3 +204,26 @@
 
 }
 
+void* guac_ssh_send_current_argv(guac_user* user, void* data) {
+
+    guac_ssh_client* ssh_client = (guac_ssh_client*) data;
+    guac_terminal* terminal = ssh_client->term;
+
+    /* Send current color scheme */
+    guac_user_stream_argv(user, user->socket, "text/plain", "color-scheme",
+            terminal->color_scheme);
+
+    /* Send current font name */
+    guac_user_stream_argv(user, user->socket, "text/plain", "font-name",
+            terminal->font_name);
+
+    /* Send current font size */
+    char font_size[64];
+    sprintf(font_size, "%i", terminal->font_size);
+    guac_user_stream_argv(user, user->socket, "text/plain", "font-size",
+            font_size);
+
+    return NULL;
+
+}
+
diff --git a/src/protocols/ssh/argv.h b/src/protocols/ssh/argv.h
index 88cf8e9..c7b8559 100644
--- a/src/protocols/ssh/argv.h
+++ b/src/protocols/ssh/argv.h
@@ -37,5 +37,25 @@
  */
 guac_user_argv_handler guac_ssh_argv_handler;
 
+/**
+ * Sends the current values of all non-sensitive parameters which may be set
+ * while the connection is running to the given user. Note that the user
+ * receiving these values will not necessarily be able to set new values
+ * themselves if their connection is read-only. This function is provided for
+ * convenience, as it is can be used as the callback for
+ * guac_client_foreach_user() or guac_client_for_owner().
+ *
+ * @param user
+ *     The user that should receive the values of all non-sensitive parameters
+ *     which may be set while the connection is running.
+ *
+ * @param data
+ *     The guac_ssh_client instance associated with the current connection.
+ *
+ * @return
+ *     Always NULL.
+ */
+void* guac_ssh_send_current_argv(guac_user* user, void* data);
+
 #endif
 
diff --git a/src/protocols/ssh/ssh.c b/src/protocols/ssh/ssh.c
index 8a18cf4..456c214 100644
--- a/src/protocols/ssh/ssh.c
+++ b/src/protocols/ssh/ssh.c
@@ -19,6 +19,7 @@
 
 #include "config.h"
 
+#include "argv.h"
 #include "common/recording.h"
 #include "common-ssh/sftp.h"
 #include "common-ssh/ssh.h"
@@ -233,6 +234,9 @@
         return NULL;
     }
 
+    /* Send current values of exposed arguments to owner only */
+    guac_client_for_owner(client, guac_ssh_send_current_argv, ssh_client);
+
     /* Set up typescript, if requested */
     if (settings->typescript_path != NULL) {
         guac_terminal_create_typescript(ssh_client->term,
diff --git a/src/protocols/ssh/user.c b/src/protocols/ssh/user.c
index 97ed87c..ccf2447 100644
--- a/src/protocols/ssh/user.c
+++ b/src/protocols/ssh/user.c
@@ -74,6 +74,7 @@
     /* If not owner, synchronize with current display */
     else {
         guac_terminal_dup(ssh_client->term, user, user->socket);
+        guac_ssh_send_current_argv(user, ssh_client);
         guac_socket_flush(user->socket);
     }
 
diff --git a/src/protocols/telnet/argv.c b/src/protocols/telnet/argv.c
index 5edf060..37564a6 100644
--- a/src/protocols/telnet/argv.c
+++ b/src/protocols/telnet/argv.c
@@ -200,3 +200,26 @@
 
 }
 
+void* guac_telnet_send_current_argv(guac_user* user, void* data) {
+
+    guac_telnet_client* telnet_client = (guac_telnet_client*) data;
+    guac_terminal* terminal = telnet_client->term;
+
+    /* Send current color scheme */
+    guac_user_stream_argv(user, user->socket, "text/plain", "color-scheme",
+            terminal->color_scheme);
+
+    /* Send current font name */
+    guac_user_stream_argv(user, user->socket, "text/plain", "font-name",
+            terminal->font_name);
+
+    /* Send current font size */
+    char font_size[64];
+    sprintf(font_size, "%i", terminal->font_size);
+    guac_user_stream_argv(user, user->socket, "text/plain", "font-size",
+            font_size);
+
+    return NULL;
+
+}
+
diff --git a/src/protocols/telnet/argv.h b/src/protocols/telnet/argv.h
index aa13dda..4bbf869 100644
--- a/src/protocols/telnet/argv.h
+++ b/src/protocols/telnet/argv.h
@@ -37,5 +37,25 @@
  */
 guac_user_argv_handler guac_telnet_argv_handler;
 
+/**
+ * Sends the current values of all non-sensitive parameters which may be set
+ * while the connection is running to the given user. Note that the user
+ * receiving these values will not necessarily be able to set new values
+ * themselves if their connection is read-only. This function is provided for
+ * convenience, as it is can be used as the callback for
+ * guac_client_foreach_user() or guac_client_for_owner().
+ *
+ * @param user
+ *     The user that should receive the values of all non-sensitive parameters
+ *     which may be set while the connection is running.
+ *
+ * @param data
+ *     The guac_telnet_client instance associated with the current connection.
+ *
+ * @return
+ *     Always NULL.
+ */
+void* guac_telnet_send_current_argv(guac_user* user, void* data);
+
 #endif
 
diff --git a/src/protocols/telnet/telnet.c b/src/protocols/telnet/telnet.c
index 17abd68..e100fae 100644
--- a/src/protocols/telnet/telnet.c
+++ b/src/protocols/telnet/telnet.c
@@ -18,6 +18,8 @@
  */
 
 #include "config.h"
+
+#include "argv.h"
 #include "common/recording.h"
 #include "telnet.h"
 #include "terminal/terminal.h"
@@ -580,6 +582,10 @@
         return NULL;
     }
 
+    /* Send current values of exposed arguments to owner only */
+    guac_client_for_owner(client, guac_telnet_send_current_argv,
+            telnet_client);
+
     /* Set up typescript, if requested */
     if (settings->typescript_path != NULL) {
         guac_terminal_create_typescript(telnet_client->term,
diff --git a/src/protocols/telnet/user.c b/src/protocols/telnet/user.c
index 44ef9b5..08cfc6f 100644
--- a/src/protocols/telnet/user.c
+++ b/src/protocols/telnet/user.c
@@ -73,6 +73,7 @@
     /* If not owner, synchronize with current display */
     else {
         guac_terminal_dup(telnet_client->term, user, user->socket);
+        guac_telnet_send_current_argv(user, telnet_client);
         guac_socket_flush(user->socket);
     }
 
