[elinks-users] adjusting the page width

Y. Hida eigensolver at gmail.com
Fri May 8 16:11:57 PDT 2009


On 2009-05-08, John Magolske <b79net at 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();




More information about the elinks-users mailing list