This document lists common problems you may run into when using Chawan.
Right click -> select text, then right click -> copy selection.
If Chawan complains about xsel, either install it or edit
external.copy-cmd
and external.paste-cmd
to your liking.
Chawan's display capabilities depend on what your terminal reports. In particular:
- if the
$COLORTERM
variable is not set, then it may fall back to 8-bit or ANSI colors. Make sure you export it asCOLORTERM=truecolor
. - if it does not respond to querying the background color, then Chawan's color
contrast correction will likely malfunction. you can correct this using the
display.default-background-color
/display.default-foreground-color
variables.
See config.md for details.
Most man
implementations print formatted manual pages by default, which
Chawan can parse if they are passed through standard input.
Unfortunately, mandoc passes us the formatted document as a file, which Chawan reasonably interprets as plain text without formatting.
At this point, you have two options:
export PAGER='cha -T text/x-ansi'
and see that man suddenly works as expected.alias man=mancha
and see that man suddenly works better than expected.
Ideally you should do both, to deal with cases like git help which shells out to man directly.
There is still one problem with this solution: some programs will try to call
$PAGER
without shell expansion, breaking the -T text/x-ansi
trick. To fix
this, put a script somewhere in your PATH
:
#!/bin/sh
exec cha -T text/x-ansi "$@"
and export PAGER=pcha
(or whatever you named the script).
By default, text files are not auto-wrapped, so viewing plain text files that were not wrapped properly by the authors is somewhat annoying.
A workaround is to add this to your config's
[page]
section:
' f' = "pager.externFilterSource('fmt')"
and then press <space> f
to view a wrapped version of the current text
file. (This assumes your system has an fmt
program - if not, fold -s
may
be an alternative.)
To always automatically wrap, you can add this to your user style:
plaintext { white-space: pre-wrap }
To do the same for HTML and ANSI text, use plaintext, pre
.
Usually, this is because it uses some CSS features that are not yet implemented in Chawan. The most common offenders are grid and calc().
There are three ways of dealing with this:
- If the website's contents are mostly text, install
rdrview. Then bind the following command
to a key of your choice in the config
(e.g.
<space> r
):
' r' = "pager.externFilterSource('rdrview -Hu \"$CHA_URL\"')"
This does not fix the core problem, but will significantly improve your reading experience anyway. - Complain here, and wait until the problem goes away.
- Write a patch to fix the problem, and send it here.
Some potential fixes:
- Logging in to websites requires cookies. Some websites also require cookie sharing across domains. For security reasons, Chawan does not allow any of this by default, so you will have to fiddle with siteconf to fix it. See config.md#siteconf for details.
- Set the
referer-from
siteconf value to true; this will cause Chawan to send aReferer
header when navigating to other URLs from the target URL. - Enable JavaScript. If something broke, type M-c M-c to check the browser
console, then follow step 3. of the previous answer.
Warning: remote JavaScript execution is inherently unsafe. Please only enable JavaScript on websites you trust.
This is a bug in your shell: https://people.freebsd.org/~cracauer/homepage-mirror/sigint.html
When Chawan runs an external text editor, it simply passes the $EDITOR
command to the shell, and then examines its wait status to determine
if your editor exited gracefully. This works if either the editor never
receives a signal, or your shell implements WCE.
However, if the editor (e.g. nvi) catches SIGINT on C-c, and the shell reports that the program was killed by a signal (WUE), then Chawan will discard your changes (as it believes that the program has crashed).
The easiest workaround is to remove the shell from the equation using
exec
:
[external]
editor = 'exec vi +%d'
This should be fixed in the latest aerc version. Please update aerc.