From e7d413162b2a43be2f1ce8d55565ed930265fc22 Mon Sep 17 00:00:00 2001 From: cage Date: Thu, 6 Jan 2022 17:59:22 +0100 Subject: [PATCH] - added 'editor' as pseudo external program. --- etc/shared.conf | 6 ++++++ src/os-utils.lisp | 16 +++++++++++----- src/package.lisp | 1 + src/software-configuration.lisp | 3 +++ 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/etc/shared.conf b/etc/shared.conf index b1e6634..3d0743f 100644 --- a/etc/shared.conf +++ b/etc/shared.conf @@ -200,6 +200,10 @@ gemini.exclusive.mode.toc.width = 1/5 # ▼▼▼▼▼▼▼▼▼ buffer 20 Mib # open "mp4$" with "xterm -e mpv" no wait buffer 20 +# to open some kind of files use "editor" as program name +# ▼▼▼▼▼▼▼▼ +#open "txt$" with "editor" + # finally if you want to open some kind of file with tinmop try the # following: valid values are "tinmop" "me" "internal" # ▼▼▼▼▼▼▼▼ @@ -208,6 +212,8 @@ open "^((gemini://)|(\\.)|(/)).+txt$" with "tinmop" open "^((gemini://)|(\\.)|(/)).+sh$" with "tinmop" open ".gpub$" with "tinmop" + + ######################### # ⚠ EXPERIMENTAL ZONE ⚠ # ######################### diff --git a/src/os-utils.lisp b/src/os-utils.lisp index 364f9ae..5e9377e 100644 --- a/src/os-utils.lisp +++ b/src/os-utils.lisp @@ -169,11 +169,17 @@ (defun open-resource-with-external-program (resource give-focus-to-message-window) (let ((program (swconf:link-regex->program-to-use resource))) (if program - (if (swconf:use-tinmop-as-external-program-p program) - (gemini-viewer:load-gemini-url resource - :give-focus-to-message-window - give-focus-to-message-window) - (os-utils:open-link-with-program program resource)) + (cond + ((swconf:use-editor-as-external-program-p program) + (croatoan:end-screen) + (tui:with-notify-errors + (os-utils:open-with-editor resource))) + ((swconf:use-tinmop-as-external-program-p program) + (gemini-viewer:load-gemini-url resource + :give-focus-to-message-window + give-focus-to-message-window)) + (t + (os-utils:open-link-with-program program resource))) (os-utils:xdg-open resource)))) (defun unzip-file (zip-file destination-dir) diff --git a/src/package.lisp b/src/package.lisp index 8304192..fdea8e3 100644 --- a/src/package.lisp +++ b/src/package.lisp @@ -1245,6 +1245,7 @@ :link-regex->program-to-use :link-regex->program-to-use-buffer-size :use-tinmop-as-external-program-p + :use-editor-as-external-program-p :thread-message-symbol :thread-message-read-colors :thread-message-unread-colors diff --git a/src/software-configuration.lisp b/src/software-configuration.lisp index 8397d80..61feb54 100644 --- a/src/software-configuration.lisp +++ b/src/software-configuration.lisp @@ -1036,6 +1036,9 @@ (defun use-tinmop-as-external-program-p (program) (cl-ppcre:scan "(^me$)|(^internal$)|(tinmop)" program)) +(defun use-editor-as-external-program-p (program) + (cl-ppcre:scan "(^ed$)|(^editor$)" program)) + (defun config-win-focus-mark () (values (access:accesses *software-configuration* +key-window+