diff --git a/musing.md b/musing.md index 22abe32..0fcc0db 100644 --- 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 +## next steps -# getting started - -gtk stuffz for frame/commander/initial buffer -command parser hooked to commander -visit-location command +* 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