diff --git a/eaf.el b/eaf.el index c91baaf..c901f87 100644 --- a/eaf.el +++ b/eaf.el @@ -731,8 +731,9 @@ Use it as (eaf-bind-key var key eaf-app-keybinding)" (defun eaf-send-var-to-python () "Send variables defined in `eaf-var-list' to the Python side." - (cl-loop for (sym . val) in eaf-var-list - do (eaf-call "store_emacs_var" (symbol-name sym) val))) + (eaf-call "store_emacs_var" + (string-join (loop for (key . value) in eaf-var-list + collect (format "%s,%s" key value)) ":"))) (dbus-register-signal :session "com.lazycat.eaf" "/com/lazycat/eaf" diff --git a/eaf.py b/eaf.py index f7c3466..d3c60e4 100755 --- a/eaf.py +++ b/eaf.py @@ -252,11 +252,13 @@ class EAF(dbus.service.Object): if buffer.buffer_id == buffer_id: buffer.handle_input_message(callback_type, callback_result) - @dbus.service.method(EAF_DBUS_NAME, in_signature="ss", out_signature="") - def store_emacs_var(self, var_name, var_value): - for buffer in list(self.buffer_dict.values()): - buffer.emacs_var_dict[var_name] = var_value - buffer.update_settings() + @dbus.service.method(EAF_DBUS_NAME, in_signature="s", out_signature="") + def store_emacs_var(self, var_dict_string): + for var_pair in var_dict_string.split(":"): + (var_name, var_value) = var_pair.split(",") + for buffer in list(self.buffer_dict.values()): + buffer.emacs_var_dict[var_name] = var_value + buffer.update_settings() @dbus.service.signal(EAF_DBUS_NAME) def focus_emacs_buffer(self, message):