Hi, a while back I inquired on elinks-users about adjusting the width of the viewed page, limiting to say 80-90 columns so that when bringing up ELinks in a 128+ column full-screen terminal the page wouldn't appear too wide. Basically, adding margins.
The suggested patch (see below) did what I was looking for, so I've been patching & compiling from source since then to have this functionality. I'm wondering if this or something similar would be considered for inclusion to ELinks, or if perhaps this functionality has already been put in place and I overlooked it. Regards, John ---- http://lists.linuxfromscratch.org/pipermail/elinks-users/2009-May/001811.html | From: "Y. Hida" <eigensol...@gmail.com> | Reply-To: ELinks text WWW browser users mailing list <elinks-us...@linuxfromscratch.org> | Subject: Re: [elinks-users] adjusting the page width | Date: Fri, 8 May 2009 19:11:57 -0400 | To: elinks-us...@linuxfromscratch.org On 2009-05-08, John Magolske <b79...@gmail.com> 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_MOUSE: #ifdef CONFIG_MOUSE toggle_mouse(); -- John Magolske http://b79.net/contact -- http://lists.linuxfromscratch.org/listinfo/elinks-dev Unsubscribe: See the above information page