about summary refs log tree commit diff stats
path: root/doc/config.md
Commit message (Collapse)AuthorAgeFilesLines
* buffer: add markURLbptato2024-03-191-0/+5
| | | | Useful when browsing plaintext files; w3m has it too.
* pager, loader: add "Save file to" functionalitybptato2024-03-161-1/+8
| | | | | | | As simple as it could be; no download panel yet. Also, remove the xdg-open default mailcap entry; it's better to just save by default.
* config: add start.console-buffer optionbptato2024-03-161-0/+10
| | | | useful for debugging
* loader: rework process modelbptato2024-03-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Originally we had several loader processes so that the loader did not need asynchronity for loading several buffers at once. Since then, the scope of what loader does has been reduced significantly, and with that loader has become mostly asynchronous. This patch finishes the above work as follows: * We only fork a single loader process for the browser. It is a waste of resources to do otherwise, and would have made future work on a download manager very difficult. * loader becomes (almost) fully async. Now the only sync part is a) processing commands and b) waiting for clients to consume responses. b) is a bit more problematic than a), but should not cause problems unless some other horrible bug exists in a client. (TODO: make it fully async.) This gives us a noticable improvement in CSS loading speed, since all resources can now be queried at once (even before the previous ones are connected). * Buffers now only get processes when the *connection* is finished. So headers, status code, etc. are handled by the client, and the buffer is forked when the loader starts streaming the response body. As a result, mailcap entries can simply dup2 the first UNIX domain socket connection as their stdin. This allows us to remove the ugly (and slow) `canredir' hack, which required us to send file handles on a tour accross the entire codebase. * The "cache" has been reworked somewhat: - Since canredir is gone, buffer-level requests usually start in a suspended state, and are explicitly resumed only after the client could decide whether it wants to cache the response. - Instead of a flag on Request and the URL as the cache key, we now use a global counter and the special `cache:' scheme. * misc fixes: referer_from is now actually respected by buffers (not just the pager), load info display should work slightly better, etc.
* Add mouse supportbptato2024-02-291-0/+7
|
* pager: improve URL loading procsbptato2024-02-281-3/+19
| | | | | | | Split up load into loadSubmit, gotoURL: loadSubmit is a replacement for load(s + '\n'), and gotoURL is a load that does no URL expansion. Also, fix a bug where load("\n") would crash the browser.
* term: improve pixels-per-column/line detectionbptato2024-02-251-0/+16
| | | | | | | | | Some terminal emulators (AKA vte) refuse to set ws_xpixel and ws_ypixel in the TIOCGWINSZ ioctl, so we now query for CSI 14 t as well. (Also CSI 18 t for good measure, just in case we can't ioctl for some reason.) Also added some fallback (optionally forced) config values for width, height, ppc, and ppl. (This is especially useful in dump mode.)
* config: replace default-flags with ignore-casebptato2024-02-221-7/+7
| | | | | | default-flags was overly complicated for its purpose. Also, ignore-case is quite useful, so enable it by default.
* Update docsbptato2024-02-191-8/+37
|
* regex: re-work compileSearchRegexbptato2024-02-171-0/+10
| | | | | | | I've gotten tired of not being able to search for forward slashes. Now it works like in vim, and you can also set default ignore case in the config.
* term: fix coloring messbptato2024-02-171-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | | Until now, the config file required manual adjustment for the output to look bearable on terminals colored differently than {bgcolor: black, fgcolor: white}. Also, it only detected RGB when COLORTERM was set, but this is not done by most (any?) terminal emulators (sad). To improve upon the situation, we now query the terminal for some attributes on startup: * OSC(10/11, ?) -> get the terminal's bg/fgcolor * DCS(+, q, 524742) -> XTGETTCAP for the "RGB" capability (only supported by a few terminals, but better than nothing) * Primary device attributes -> check if ANSI colors are supported, also make sure we don't block indefinitely even if the previous queries fail If primary device attributes does not return anything, we hang until the user types something, then notify the user that something went wrong, and tell them how to fix it. Seems like an OK fallback. (The DA1 idea comes from notcurses; since this is implemented by pretty much every terminal emulator, we don't have to rely on slow timing hacks to skip non-supported queries.)
* doc: update npr redirect examplebptato2024-02-141-1/+2
| | | | a bit more readable, and it also works with /[0-9]+ pathnames
* Add pager.externFilterSourcebptato2024-02-121-3/+24
| | | | useful for filtering stuff through commands like rdrview
* doc/config: add missing backtickbptato2024-01-301-1/+1
|
* doc: do not emphasize th text, mention pager.locationbptato2024-01-301-33/+38
|
* Add command to yank link under cursor (yc)bptato2024-01-291-4/+14
|
* client: stop entire process group on suspend()bptato2024-01-291-2/+3
| | | | | * pass 0 so e.g. git does not hang * use sigtstp so e.g. cgi scripts can clean up if needed
* doc: fix cookie sharing examplebptato2024-01-221-4/+4
| | | | This configuration scheme really is a nightmare to use :(
* Re-design word handling, add e, E, W, B, etc.bptato2024-01-191-25/+74
| | | | | | | | | | | | * Add functions for moving to the beginning/end of words (vi `b', `e'). * As it turns out, there are many possible interpretations of what a word is. Now we have a function for each reasonable interpretation, and the default settings match those of vi (and w3m in w3m.toml). (Exception: it's still broken on line boundaries... TODO) * Remove `bounds` from lineedit, it was horrible API design and mostly useless. In the future, an API similar to what pager now has could be added. * Update docs, and fix some spacing issues with symbols in the tables.
* container: fix gotoMarkYbptato2023-12-211-2/+2
| | | | | | Now it actually does what it was supposed to do. Also, clarify what it does in config.md
* Fix for sourcehut markdown parsing, small doc improvementsbptato2023-12-151-35/+10
| | | | hopefully this works
* config: allow overriding default prepended schemebptato2023-12-151-2/+13
|
* doc/config: finish path handling documentationbptato2023-12-141-1/+5
|
* config: better path handling; fix array parsing bugbptato2023-12-101-0/+15
| | | | | | | | | * Paths are now parsed through an unified code path with some useful additions like environment variable substitution. * Fix a bug in parseConfigValue where strings would be appended to existing arrays (and not override them). * Fix beforeLast calling afterLast for some reason. * Add a default CGI directory.
* pager: add marksbptato2023-12-091-0/+56
| | | | | Default is vi-style, but w3m-style marks work as well; see bonus/w3m.toml.
* pager: add `{', `}'; document externIntobptato2023-12-091-0/+18
| | | | | | | | { & } acts like in vi (except the cursor is not moved to the line beginning). No reason to leave externInto undocumented, as it is even used in the default config.
* config: add bare aliases for "8bit", "24bit"bptato2023-11-261-3/+7
| | | | | | | | | | | Without this, setting color-mode using -o required quoting the values, and then shell-quoting the quotes themselves (cha -o 'display-color-mode="24bit"'). Instead of more special casing in the TOML parser, we just add aliases for these enum values that can be parsed using TOML bare string rules. So now this works: cha -o display.color-mode=true-color
* container: add cursorNthLink, cursorRevNthLinkbptato2023-10-141-0/+11
|
* Add w3m-cgi-compat optionbptato2023-10-011-4/+19
|
* more vi/m compatbptato2023-10-011-12/+22
|
* Improve vi/m compat in scrollingbptato2023-10-011-2/+39
|
* update docsbptato2023-09-301-9/+21
|
* loader: add local-cgibptato2023-09-301-2/+30
| | | | | | | | | | | Add w3m-style local CGI support. It is not quite as powerful as w3m's local CGI, because it lacks an equivalent to W3m-control. Not sure if it's worth adding; we certainly shouldn't allow passing JS in headers, but a custom language for headers does not sound like a great idea either... eh, idk. also, TODO add multipart
* Add precnum support to more functionsbptato2023-09-261-12/+12
|
* Add M-p as "load page on clipboard"bptato2023-09-251-0/+8
|
* improve manpagesbptato2023-09-201-3/+12
|
* update configbptato2023-09-201-2/+2
| | | | 8-bit colors are now supported
* config.md: more preprocessingbptato2023-09-201-1/+1
|
* add table_rewrite.shbptato2023-09-201-2/+2
| | | | | | pandoc can only generate manpage tables from markdown tables, but the markdown pipe table syntax is horrible. So instead of rewriting our markdown documentation to use that syntax, just programmatically rewrite it.
* add manpagesbptato2023-09-201-1/+5
| | | | still needs some work
* document pager.externbptato2023-09-201-0/+13
| | | | it's better than nothing, maybe?
* container: accept numbers in cursorLeft, cursorRight, etc.bptato2023-09-091-9/+9
| | | | | | These functions now take a numeric argument to determine how many cells/lines to move. Also, update the default config so e.g. 9j now works.
* Add vi-style numeric prefixes, make gotoLine 1-basedbptato2023-09-081-3/+62
| | | | | | | | * it is now possible to jump to the nth line by typing {n}G * gotoLine is now 1-based, so to go to the first line you would use pager.gotoLine(1) * it is now allowed to return a function from a keybinding (which will be subsequently executed as a regular keybinding)
* container: add separate commands for 0 and ^bptato2023-09-081-0/+5
| | | | | Just as in vi, 0 puts the cursor at the beginning of the current line, and ^ puts the cursor at the position of the first non-blank character.
* Allow overriding default headersbptato2023-08-261-0/+5
|
* Update docsbptato2023-08-131-0/+12
|
* Add default background/foreground color overridebptato2023-07-291-0/+12
|
* doc: add missing end tagbptato2023-07-261-1/+1
|
* Add suspend() function (bound to C-z)bptato2023-07-261-2/+20
|
* Add compileMatchRegexbptato2023-07-251-8/+34
| | | | | | | This makes it so that host = 'example\.org' mandates an exact match, but host = '^example' matches example.org, example.com, etc. (Previously, 'example\.org' would have matched exampleexample.org as well, which was quite counter-intuitive.)