index.md - sites - public wiki contents of suckless.org
 (HTM) git clone git://git.suckless.org/sites
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       index.md (1733B)
       ---
            1 externalpipe
            2 ============
            3 
            4 Description
            5 -----------
            6 
            7 Pipe the current page's source to an external program. This is particularly
            8 helpful for keyboard-based link following and also for viewing the source in an
            9 external editor. Works both when javascript is enabled and disabled.
           10 
           11 Example
           12 -------
           13 Install the below shell scripts into your `$PATH`:
           14 * [surf_linkselect.sh](surf_linkselect.sh) - extracts links via xmllint and
           15   pipes to dmenu, converts selected link to valid URL.
           16 * [edit_screen.sh](edit_screen.sh) - open source in `$EDITOR` for copying text.
           17 
           18 
           19 Add to your `config.h`:
           20         static char *linkselect_curwin [] = { "/bin/sh", "-c",
           21                 "surf_linkselect.sh $0 'Link' | xargs -r xprop -id $0 -f _SURF_GO 8s -set _SURF_GO",
           22                 winid, NULL
           23         };
           24         static char *linkselect_newwin [] = { "/bin/sh", "-c",
           25                 "surf_linkselect.sh $0 'Link (new window)' | xargs -r surf",
           26                 winid, NULL
           27         };
           28         static char *editscreen[] = { "/bin/sh", "-c", "edit_screen.sh", NULL };
           29         ...
           30         static Key keys[] = {
           31                 { MODKEY,                GDK_KEY_d, externalpipe, { .v = linkselect_curwin } },
           32                 { GDK_SHIFT_MASK|MODKEY, GDK_KEY_d, externalpipe, { .v = linkselect_newwin } },
           33                 { MODKEY,                GDK_KEY_o, externalpipe, { .v = editscreen        } },
           34                 ...
           35         }
           36 
           37 Now you have the new keybindings:
           38 - **Ctrl-d** - open dmenu with links, select to follow in current surf window
           39 - **Ctrl-Shift-d** - open dmenu with links, select to open in new surf window
           40 - **Ctrl-o** - view sourcecode for the current page in your editor
           41 
           42 
           43 Download
           44 --------
           45 
           46 * [surf-2.0-externalpipe.diff](surf-2.0-externalpipe.diff) (2379) (20190807)
           47 
           48 Author
           49 ------
           50 
           51 * Miles Alan - m@milesalan.com
           52