dunlin

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit bdd45076927629329d476119ba6c1167e81e3d42
parent e639e4c73d3e04bdbbd1492625bcc665a241cd2e
Author: Daniel Barlow <dan@telent.net>
Date:   Fri, 23 Dec 2022 19:45:58 +0000

we are amused

Diffstat:
Mmusing.md | 65+++++++++++++++++++++++------------------------------------------
1 file changed, 23 insertions(+), 42 deletions(-)

diff --git a/musing.md b/musing.md @@ -1,41 +1,10 @@ -what if ... a web browser, but tabs were more like emacs buffers? +# Braindump -buffer attributes: -- url -- viewport (this is a departure from the emacs buffer) +This is a combination of a thinking-out-loud document and a TODO list. +It is not a document of record. You should not expect to derive value +from reading it -## commands - -A command is a description of a function that may be invoked -interactively, and the parameters it expects. - -```fennel -(define-command "visit-location" - visit-location - {:url Type.Url input-from-minibuffer}) - -;; hit "g" and then enter the location in the minibuffer -(bind-key "g" (command "visit-location")) -;; hit "h" to go straight to your home page -(bind-key "h" (command "visit-location") - {:url (Type.Url "https://home.example.com")}) -;; left mouse click on minibuffer hit "h" to go straight to your home page -(bind-event Dunlin.minibuffer :button-1-click (command "visit-location")) -``` - -when it is run from the command prompt, each parameter is -prompted, with appropriate defaults. - -when it is bound to a key chord/sequence, the binding may specify -where it gets its parameters from - otherise - -visit-location -visit-location-in-new-buffer -run-command -back -switch-to-buffer -save-file -save-link +tl;dr what if ... a web browser, but tabs were more like emacs buffers? ## objects/data types @@ -47,6 +16,8 @@ buffer add some kind of webview reuse so that invisible and old buffers don't need to have a webview until needed. + I seem to be using "buffer" and "tab" mostly synonymously + frame Frame.the-frame frame.set-buffer (buffer) @@ -54,15 +25,25 @@ frame frame.commander - text entry widget frame.actions - container of toolbar buttons + in future we may be able to split a frame into multiple windows + which show different buffers + location (url) document document element(?) webview lua's standard types - -# getting started - -gtk stuffz for frame/commander/initial buffer -command parser hooked to commander -visit-location command +## next steps + +* change define-command so that the parameters are ordered +* display unbound key error +* ESC to cancel interactive command +* autocomplete command name +* parameters with non-string values (e.g. buffer) +* show current url when command inactive +* show prompts for parameter +* multiple buffers + - create buffer + - list buffers (where does the output go?) + - find and switch to buffer