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

Reply via email to