mirror of
https://codeberg.org/cage/tinmop/
synced 2025-02-23 09:07:37 +01:00
- added command 'gemini-jump-to-link';
- fixed layout in gemini full screen mode.
This commit is contained in:
parent
8e7a25b19c
commit
8e9e19dd82
@ -617,6 +617,8 @@
|
|||||||
|
|
||||||
(define-key "end" #'open-message-link-window-scroll-end *open-message-link-keymap*)
|
(define-key "end" #'open-message-link-window-scroll-end *open-message-link-keymap*)
|
||||||
|
|
||||||
|
(define-key "]" #'gemini-jump-to-link *open-message-link-keymap*)
|
||||||
|
|
||||||
;; chats list window
|
;; chats list window
|
||||||
|
|
||||||
(define-key "r" #'refresh-chat-messages *chats-list-keymap*)
|
(define-key "r" #'refresh-chat-messages *chats-list-keymap*)
|
||||||
|
@ -160,6 +160,11 @@ color-regexp = ":rendering" cyan
|
|||||||
|
|
||||||
gemini.exclusive.mode.toc.width = 1/5
|
gemini.exclusive.mode.toc.width = 1/5
|
||||||
|
|
||||||
|
# The height of the links window for gemini pages when tinmop is ran as
|
||||||
|
# exclusive gemini client (command line option "-G")
|
||||||
|
|
||||||
|
gemini.exclusive.mode.links.height = 1/4
|
||||||
|
|
||||||
# the signature file path relative to $HOME
|
# the signature file path relative to $HOME
|
||||||
|
|
||||||
# signature-file = ".signature"
|
# signature-file = ".signature"
|
||||||
|
2
po/it.po
2
po/it.po
@ -9,7 +9,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: tinmop 0.0.1\n"
|
"Project-Id-Version: tinmop 0.0.1\n"
|
||||||
"Report-Msgid-Bugs-To: https://notabug.org/cage/tinmop/\n"
|
"Report-Msgid-Bugs-To: https://notabug.org/cage/tinmop/\n"
|
||||||
"POT-Creation-Date: 2022-02-25 12:44+0100\n"
|
"POT-Creation-Date: 2022-02-25 12:44+0100\n"
|
||||||
"PO-Revision-Date: 2022-02-25 12:45+0100\n"
|
"PO-Revision-Date: 2022-02-25 14:01+0100\n"
|
||||||
"Last-Translator: cage <cage@invalid.org>\n"
|
"Last-Translator: cage <cage@invalid.org>\n"
|
||||||
"Language-Team: Italian\n"
|
"Language-Team: Italian\n"
|
||||||
"Language: it\n"
|
"Language: it\n"
|
||||||
|
@ -94,7 +94,9 @@
|
|||||||
(ensure-just-one-stream-rendering)
|
(ensure-just-one-stream-rendering)
|
||||||
(force-rendering-of-cached-file stream-object)
|
(force-rendering-of-cached-file stream-object)
|
||||||
(setf (stream-status stream-object) :completed)
|
(setf (stream-status stream-object) :completed)
|
||||||
(ui:open-gemini-toc))
|
(ui:open-gemini-toc)
|
||||||
|
(program-events:with-enqueued-process ()
|
||||||
|
(ui:open-gemini-message-link-window :give-focus nil)))
|
||||||
((gemini-client:text-file-stream-p meta)
|
((gemini-client:text-file-stream-p meta)
|
||||||
(ensure-just-one-stream-rendering)
|
(ensure-just-one-stream-rendering)
|
||||||
(force-rendering-of-cached-file stream-object)
|
(force-rendering-of-cached-file stream-object)
|
||||||
@ -368,6 +370,10 @@
|
|||||||
(maybe-render-toc ()
|
(maybe-render-toc ()
|
||||||
(when (eq (stream-status wrapper-object) :rendering)
|
(when (eq (stream-status wrapper-object) :rendering)
|
||||||
(ui:open-gemini-toc)))
|
(ui:open-gemini-toc)))
|
||||||
|
(maybe-render-links ()
|
||||||
|
(when (eq (stream-status wrapper-object) :rendering)
|
||||||
|
(program-events:with-enqueued-process ()
|
||||||
|
(ui:open-gemini-message-link-window :give-focus nil))))
|
||||||
(maybe-render-preformat-wrapper (file-stream wrapper-object)
|
(maybe-render-preformat-wrapper (file-stream wrapper-object)
|
||||||
(when (not gemini-format-p)
|
(when (not gemini-format-p)
|
||||||
(let* ((preformat-line (format nil "~a~%" gemini-parser:+preformatted-prefix+))
|
(let* ((preformat-line (format nil "~a~%" gemini-parser:+preformatted-prefix+))
|
||||||
@ -441,6 +447,7 @@
|
|||||||
(ui:notify (_ "Gemini document downloading aborted"))
|
(ui:notify (_ "Gemini document downloading aborted"))
|
||||||
(progn
|
(progn
|
||||||
(maybe-render-toc)
|
(maybe-render-toc)
|
||||||
|
(maybe-render-links)
|
||||||
(ui:notify (_ "Gemini document downloading completed"))
|
(ui:notify (_ "Gemini document downloading completed"))
|
||||||
(setf (stream-status wrapper-object) :completed)
|
(setf (stream-status wrapper-object) :completed)
|
||||||
(when (and fragment
|
(when (and fragment
|
||||||
|
@ -118,7 +118,8 @@
|
|||||||
command-window-height
|
command-window-height
|
||||||
reference-window-height)
|
reference-window-height)
|
||||||
(- main-window-height
|
(- main-window-height
|
||||||
command-window-height)))
|
command-window-height
|
||||||
|
(swconf:config-gemini-fullscreen-links-height))))
|
||||||
(width reference-window-width)
|
(width reference-window-width)
|
||||||
(x (if (and command-line:*gemini-full-screen-mode*
|
(x (if (and command-line:*gemini-full-screen-mode*
|
||||||
*gemini-toc-window*)
|
*gemini-toc-window*)
|
||||||
@ -126,7 +127,7 @@
|
|||||||
(win-x reference-window)))
|
(win-x reference-window)))
|
||||||
(y (if (and command-line:*gemini-full-screen-mode*
|
(y (if (and command-line:*gemini-full-screen-mode*
|
||||||
*gemini-toc-window*)
|
*gemini-toc-window*)
|
||||||
0
|
(swconf:config-gemini-fullscreen-links-height)
|
||||||
(+ (win-y reference-window)
|
(+ (win-y reference-window)
|
||||||
reference-window-height))))
|
reference-window-height))))
|
||||||
(win-resize object width height)
|
(win-resize object width height)
|
||||||
@ -311,6 +312,10 @@
|
|||||||
(row-add-original-object res original-object)
|
(row-add-original-object res original-object)
|
||||||
res))
|
res))
|
||||||
|
|
||||||
|
(defun row-link-p (row)
|
||||||
|
(typep (row-get-original-object row)
|
||||||
|
'gemini-parser:link-line))
|
||||||
|
|
||||||
(defun row-pre-start-p (row)
|
(defun row-pre-start-p (row)
|
||||||
(typep (row-get-original-object row)
|
(typep (row-get-original-object row)
|
||||||
'gemini-parser:pre-start))
|
'gemini-parser:pre-start))
|
||||||
|
@ -38,12 +38,20 @@
|
|||||||
(selected-bg (swconf:selected-background theme-style))
|
(selected-bg (swconf:selected-background theme-style))
|
||||||
(unselected-fg (swconf:unselected-foreground theme-style))
|
(unselected-fg (swconf:unselected-foreground theme-style))
|
||||||
(unselected-bg (swconf:unselected-background theme-style))
|
(unselected-bg (swconf:unselected-background theme-style))
|
||||||
(win-w (truncate (/ (win-width specials:*main-window*) 2)))
|
(reference-window (if command-line:*gemini-full-screen-mode*
|
||||||
(win-h (truncate (/ (win-height specials:*main-window*) 2)))
|
*gemini-toc-window*
|
||||||
(x (truncate (- (/ (win-width specials:*main-window*) 2)
|
*thread-window*))
|
||||||
(/ win-w 2))))
|
(win-w (if command-line:*gemini-full-screen-mode*
|
||||||
(y (truncate (- (/ (win-height specials:*main-window*) 2)
|
(- (win-width *main-window*)
|
||||||
(/ win-h 2)))))
|
(win-width reference-window))
|
||||||
|
(win-width reference-window)))
|
||||||
|
(win-h (if command-line:*gemini-full-screen-mode*
|
||||||
|
(swconf:config-gemini-fullscreen-links-height)
|
||||||
|
(win-height reference-window)))
|
||||||
|
(x (if command-line:*gemini-full-screen-mode*
|
||||||
|
(win-width reference-window)
|
||||||
|
(win-x reference-window)))
|
||||||
|
(y 0))
|
||||||
(setf (background croatoan-window)
|
(setf (background croatoan-window)
|
||||||
(tui:make-win-background bg))
|
(tui:make-win-background bg))
|
||||||
(setf (bgcolor croatoan-window) bg)
|
(setf (bgcolor croatoan-window) bg)
|
||||||
|
@ -1242,6 +1242,7 @@
|
|||||||
:make-tree-colormap
|
:make-tree-colormap
|
||||||
:left-arrow
|
:left-arrow
|
||||||
:config-gemini-fullscreen-toc-width
|
:config-gemini-fullscreen-toc-width
|
||||||
|
:config-gemini-fullscreen-links-height
|
||||||
:config-post-allowed-language
|
:config-post-allowed-language
|
||||||
:config-purge-history-days-offset
|
:config-purge-history-days-offset
|
||||||
:config-purge-cage-days-offset
|
:config-purge-cage-days-offset
|
||||||
@ -2176,6 +2177,7 @@
|
|||||||
:viewport-width
|
:viewport-width
|
||||||
:draw-downloading-animation
|
:draw-downloading-animation
|
||||||
:visible-rows
|
:visible-rows
|
||||||
|
:row-link-p
|
||||||
:row-vertical-space-p
|
:row-vertical-space-p
|
||||||
:row-preformatted-p
|
:row-preformatted-p
|
||||||
:row-invisible-p
|
:row-invisible-p
|
||||||
@ -2694,8 +2696,10 @@
|
|||||||
:open-message-attach-go-up
|
:open-message-attach-go-up
|
||||||
:open-message-attach-go-down
|
:open-message-attach-go-down
|
||||||
:open-message-attach-perform-opening
|
:open-message-attach-perform-opening
|
||||||
|
:gemini-jump-to-link
|
||||||
:close-open-attach-window
|
:close-open-attach-window
|
||||||
:search-link-window
|
:search-link-window
|
||||||
|
:open-gemini-message-link-window
|
||||||
:open-message-link
|
:open-message-link
|
||||||
:open-message-link-go-up
|
:open-message-link-go-up
|
||||||
:open-message-link-go-down
|
:open-message-link-go-down
|
||||||
|
@ -1086,6 +1086,7 @@
|
|||||||
(gemini-viewer:maybe-initialize-metadata window)
|
(gemini-viewer:maybe-initialize-metadata window)
|
||||||
(refresh-gemini-message-window links page-data ir-text nil)
|
(refresh-gemini-message-window links page-data ir-text nil)
|
||||||
(ui:open-gemini-toc)
|
(ui:open-gemini-toc)
|
||||||
|
(ui:open-gemini-message-link-window :give-focus nil)
|
||||||
(windows:draw window)))))
|
(windows:draw window)))))
|
||||||
|
|
||||||
(defclass gemini-request-event (program-event)
|
(defclass gemini-request-event (program-event)
|
||||||
|
@ -495,6 +495,7 @@
|
|||||||
value
|
value
|
||||||
scheme
|
scheme
|
||||||
link
|
link
|
||||||
|
links
|
||||||
creation-time
|
creation-time
|
||||||
access-time
|
access-time
|
||||||
visibility
|
visibility
|
||||||
@ -947,6 +948,14 @@
|
|||||||
+key-toc+
|
+key-toc+
|
||||||
+key-width+)
|
+key-width+)
|
||||||
|
|
||||||
|
(gen-simple-access (gemini-fullscreen-links-height
|
||||||
|
:transform-value-fn main-window:parse-subwin-h)
|
||||||
|
+key-gemini+
|
||||||
|
+key-exclusive+
|
||||||
|
+key-mode+
|
||||||
|
+key-links+
|
||||||
|
+key-height+)
|
||||||
|
|
||||||
(gen-simple-access (post-allowed-language
|
(gen-simple-access (post-allowed-language
|
||||||
:transform-value-fn
|
:transform-value-fn
|
||||||
(lambda (a) (cl-ppcre:create-scanner a :case-insensitive-mode t)))
|
(lambda (a) (cl-ppcre:create-scanner a :case-insensitive-mode t)))
|
||||||
|
@ -460,7 +460,6 @@ Metadata includes:
|
|||||||
(list *send-message-window*
|
(list *send-message-window*
|
||||||
*follow-requests-window*
|
*follow-requests-window*
|
||||||
*open-attach-window*
|
*open-attach-window*
|
||||||
*open-message-link-window*
|
|
||||||
*gemini-streams-window*
|
*gemini-streams-window*
|
||||||
*gemini-certificates-window*
|
*gemini-certificates-window*
|
||||||
*filesystem-explorer-window*)))
|
*filesystem-explorer-window*)))
|
||||||
@ -1241,12 +1240,13 @@ If some posts was deleted before, download them again."
|
|||||||
:prompt (_ "Search key: ")
|
:prompt (_ "Search key: ")
|
||||||
:complete-fn #'complete:complete-always-empty)))
|
:complete-fn #'complete:complete-always-empty)))
|
||||||
|
|
||||||
(defun open-gemini-message-link-window ()
|
(defun open-gemini-message-link-window (&key (give-focus t))
|
||||||
(let* ((window *message-window*)
|
(let* ((window *message-window*)
|
||||||
(metadata (message-window:metadata window))
|
(metadata (message-window:metadata window))
|
||||||
(links (gemini-viewer:gemini-metadata-links metadata)))
|
(links (gemini-viewer:gemini-metadata-links metadata)))
|
||||||
(open-message-link-window:init-gemini-links links)
|
(open-message-link-window:init-gemini-links links)
|
||||||
(focus-to-open-message-link-window)))
|
(when give-focus
|
||||||
|
(focus-to-open-message-link-window))))
|
||||||
|
|
||||||
(defun open-message-link ()
|
(defun open-message-link ()
|
||||||
"Open message links window
|
"Open message links window
|
||||||
@ -1324,6 +1324,27 @@ Browse and optionally open the links the text of the message window contains."
|
|||||||
(url (line-oriented-window:normal-text selected-line)))
|
(url (line-oriented-window:normal-text selected-line)))
|
||||||
(open-message-link-window:open-message-link url enqueue)))
|
(open-message-link-window:open-message-link url enqueue)))
|
||||||
|
|
||||||
|
(defun gemini-jump-to-link ()
|
||||||
|
(when-let* ((link-win *open-message-link-window*)
|
||||||
|
(message-win *message-window*)
|
||||||
|
(selected-line (line-oriented-window:selected-row link-win))
|
||||||
|
(selected-position (line-oriented-window:rows-position-if link-win
|
||||||
|
(lambda (a)
|
||||||
|
(eq a selected-line)))))
|
||||||
|
(when (message-window:gemini-window-p* message-win)
|
||||||
|
(let ((count-link 0)
|
||||||
|
(count-rows 0)
|
||||||
|
(selected-message-row-position -1))
|
||||||
|
(line-oriented-window:do-rows-raw (message-win row)
|
||||||
|
(when (message-window:row-link-p row)
|
||||||
|
(when (= count-link selected-position)
|
||||||
|
(setf selected-message-row-position count-rows))
|
||||||
|
(incf count-link))
|
||||||
|
(incf count-rows))
|
||||||
|
(when (> selected-message-row-position 0)
|
||||||
|
(line-oriented-window:select-row message-win selected-message-row-position)
|
||||||
|
(draw message-win))))))
|
||||||
|
|
||||||
(defun open-message-link-perform-opening ()
|
(defun open-message-link-perform-opening ()
|
||||||
(%open-message-link-perform-opening nil))
|
(%open-message-link-perform-opening nil))
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user