On 2009-05-08, John Magolske wrote:
>
> I'm running ELinks in a Linux framebuffer console & GNU Screen, and
> am looking for a way to adust the width of viewed pages. My console
> is set to 128 columns, which can be a bit wide sometimes. I'd like
> to view pages in the 80-90 column range.
>
> In ~/.elinks/elinks.conf setting:
>
> document.browse.margin_width = 9
>
> will reduce the page width to 110 columns, but 9 is the maximum
> value that can be set. Is there some way to achieve a narrower page
> width? It would also be nice to somehow toggle between full-width
> and reduced-width with a key binding.
>
If you can compile elinks from source, the following patch (against
current git master) would do it. This adds toggle-margin action
(default keybind "M") to toggle the margin between 0 and the specified
margin_width (which can be up to 100 now).
It also adds document.browse.use_margin option to specify whether
margins are to be used at startup.
There is currently no check for too large of a margin. Strange things
may happen if 2*margin > #columns.
-Yozo
diff --git a/src/config/actions-main.inc b/src/config/actions-main.inc
index 21ff838..1f6114f 100644
--- a/src/config/actions-main.inc
+++ b/src/config/actions-main.inc
@@ -118,6 +118,7 @@ ACTION_(MAIN, "toggle-display-images",
TOGGLE_DISPLAY_IMAGES, N__("Toggle displa
ACTION_(MAIN, "toggle-display-tables", TOGGLE_DISPLAY_TABLES, N__("Toggle
rendering of tables"), 0),
ACTION_(MAIN, "toggle-document-colors", TOGGLE_DOCUMENT_COLORS, N__("Toggle
usage of document specific colors"), 0),
ACTION_(MAIN, "toggle-html-plain", TOGGLE_HTML_PLAIN, N__("Toggle rendering
page as HTML / plain text"), 0),
+ACTION_(MAIN, "toggle-margin", TOGGLE_MARGIN, N__("Toggle use of margins"), 0),
ACTION_(MAIN, "toggle-mouse", TOGGLE_MOUSE, N__("Toggle mouse handling"), 0),
ACTION_(MAIN, "toggle-numbered-links", TOGGLE_NUMBERED_LINKS, N__("Toggle
displaying of links numbers"), 0),
ACTION_(MAIN, "toggle-plain-compress-empty-lines",
TOGGLE_PLAIN_COMPRESS_EMPTY_LINES, N__("Toggle plain renderer compression of
empty lines"), 0),
diff --git a/src/config/kbdbind.c b/src/config/kbdbind.c
index 2096a56..bd02886 100644
--- a/src/config/kbdbind.c
+++ b/src/config/kbdbind.c
@@ -664,6 +664,7 @@ static struct default_kb default_main_keymap[] = {
{ { 'K', KBD_MOD_CTRL }, ACT_MAIN_COOKIES_LOAD },
{ { 'L', KBD_MOD_NONE }, ACT_MAIN_LINK_MENU },
{ { 'L', KBD_MOD_CTRL }, ACT_MAIN_REDRAW },
+ { { 'M', KBD_MOD_NONE }, ACT_MAIN_TOGGLE_MARGIN },
{ { 'N', KBD_MOD_NONE }, ACT_MAIN_FIND_NEXT_BACK },
{ { 'N', KBD_MOD_CTRL }, ACT_MAIN_SCROLL_DOWN },
{ { 'P', KBD_MOD_CTRL }, ACT_MAIN_SCROLL_UP },
diff --git a/src/config/options.inc b/src/config/options.inc
index 4e4b255..998b133 100644
--- a/src/config/options.inc
+++ b/src/config/options.inc
@@ -447,9 +447,12 @@ static struct option_info config_options_info[] = {
"2 automatically starts typeahead searching thru all document\n"
" text")),
+ INIT_OPT_INT("document.browse", N_("Whether to use text margin by
default."),
+ "use_margin", 0, 0, 1, 0,
+ N_("Whether to use text margin by default.")),
INIT_OPT_INT("document.browse", N_("Horizontal text margin"),
- "margin_width", 0, 0, 9, 3,
+ "margin_width", 0, 0, 100, 3,
N_("Horizontal text margin.")),
INIT_OPT_BOOL("document.browse", N_("Document meta refresh"),
diff --git a/src/document/options.c b/src/document/options.c
index f00a515..b6dcc54 100644
--- a/src/document/options.c
+++ b/src/document/options.c
@@ -31,7 +31,7 @@ init_document_options(struct session *ses, struct
document_options *doo)
doo->hard_assume = get_opt_bool("document.codepage.force_assumed", ses);
doo->use_document_colors =
get_opt_int("document.colors.use_document_colors", ses);
- doo->margin = get_opt_int("document.browse.margin_width", ses);
+ doo->margin = get_opt_bool("document.browse.use_margin", ses) ?
get_opt_int("document.browse.margin_width", ses) : 0;
doo->num_links_key =
get_opt_int("document.browse.links.number_keys_select_link", ses);
doo->meta_link_display = get_opt_int("document.html.link_display", ses);
doo->default_form_input_size =
get_opt_int("document.browse.forms.input_size", ses);
diff --git a/src/viewer/action.c b/src/viewer/action.c
index 66e20bb..f629a7e 100644
--- a/src/viewer/action.c
+++ b/src/viewer/action.c
@@ -608,6 +608,10 @@ do_action(struct session *ses, enum main_action action_id,
int verbose)
toggle_plain_html(ses, ses->doc_view, 0);
break;
+ case ACT_MAIN_TOGGLE_MARGIN:
+ toggle_document_option(ses,
"document.browse.use_margin");
+ break;
+
case ACT_MAIN_TOGGLE_MOU