Add the possibility to choose the terminal
parent
9a3361f13f
commit
9cd0c05338
32
ob-tmux.el
32
ob-tmux.el
|
@ -60,6 +60,11 @@ Change in case you want to use a different tmux than the one in your $PATH."
|
||||||
:group 'org-babel
|
:group 'org-babel
|
||||||
:type 'string)
|
:type 'string)
|
||||||
|
|
||||||
|
(defcustom org-babel-tmux-terminal "gnome-terminal"
|
||||||
|
"This is the terminal that will be spawned."
|
||||||
|
:group 'org-babel
|
||||||
|
:type 'string)
|
||||||
|
|
||||||
(defcustom org-babel-tmux-terminal-opts '("--")
|
(defcustom org-babel-tmux-terminal-opts '("--")
|
||||||
"The list of options that will be passed to the terminal."
|
"The list of options that will be passed to the terminal."
|
||||||
:group 'org-babel
|
:group 'org-babel
|
||||||
|
@ -68,8 +73,7 @@ Change in case you want to use a different tmux than the one in your $PATH."
|
||||||
(defvar org-babel-default-header-args:tmux
|
(defvar org-babel-default-header-args:tmux
|
||||||
'((:results . "silent")
|
'((:results . "silent")
|
||||||
(:session . "default")
|
(:session . "default")
|
||||||
(:socket . nil)
|
(:socket . nil))
|
||||||
(:terminal . "gnome-terminal"))
|
|
||||||
"Default arguments to use when running tmux source blocks.")
|
"Default arguments to use when running tmux source blocks.")
|
||||||
|
|
||||||
(add-to-list 'org-src-lang-modes '("tmux" . sh))
|
(add-to-list 'org-src-lang-modes '("tmux" . sh))
|
||||||
|
@ -87,7 +91,7 @@ Argument PARAMS the org parameters of the code block."
|
||||||
(message "Sending source code block to interactive terminal session...")
|
(message "Sending source code block to interactive terminal session...")
|
||||||
(save-window-excursion
|
(save-window-excursion
|
||||||
(let* ((org-session (cdr (assq :session params)))
|
(let* ((org-session (cdr (assq :session params)))
|
||||||
(terminal (cdr (assq :terminal params)))
|
(terminal org-babel-tmux-terminal)
|
||||||
(socket (cdr (assq :socket params)))
|
(socket (cdr (assq :socket params)))
|
||||||
(socket (when socket (expand-file-name socket)))
|
(socket (when socket (expand-file-name socket)))
|
||||||
(ob-session (ob-tmux--from-org-session org-session socket))
|
(ob-session (ob-tmux--from-org-session org-session socket))
|
||||||
|
@ -189,19 +193,17 @@ automatically space separated."
|
||||||
(defun ob-tmux--start-terminal-window (ob-session terminal)
|
(defun ob-tmux--start-terminal-window (ob-session terminal)
|
||||||
"Start a TERMINAL window with tmux attached to session.
|
"Start a TERMINAL window with tmux attached to session.
|
||||||
|
|
||||||
Argument OB-SESSION: the current ob-tmux session."
|
Argument OB-SESSION: the current ob-tmux session."
|
||||||
(let ((process-name "org-babel: terminal")
|
(let ((start-process-mandatory-args `("org-babel: terminal"
|
||||||
(unless (ob-tmux--socket ob-session)
|
"*Messages*"
|
||||||
(if (string-equal terminal "xterm")
|
,terminal))
|
||||||
(start-process process-name "*Messages*"
|
(tmux-cmd `(,org-babel-tmux-location
|
||||||
terminal
|
"attach-session"
|
||||||
"-T" (ob-tmux--target ob-session)
|
"-t" ,(ob-tmux--target ob-session))))
|
||||||
"-e" org-babel-tmux-location "attach-session"
|
(unless (ob-tmux--socket ob-session)
|
||||||
"-t" (ob-tmux--target ob-session))
|
(apply 'start-process (append start-process-mandatory-args
|
||||||
(apply 'start-process (append (list process-name "*Messages*" terminal)
|
|
||||||
org-babel-tmux-terminal-opts
|
org-babel-tmux-terminal-opts
|
||||||
(list org-babel-tmux-location "attach-session"
|
tmux-cmd)))))
|
||||||
"-t" (ob-tmux--target ob-session))))))))
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Tmux interaction
|
;; Tmux interaction
|
||||||
|
|
Loading…
Reference in New Issue