Initial version of "home"

























































































1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
# Weaver

*Weaver: Your Web, Your Way*

Weaver is user friendly web browser, but it's selective about who it calls a friend.

Weaver's friends like customizing their tools, know how to write scripts, and enjoy finding ways to make their favorite tools work together.

Weaver is a web browser controlled primarily by commands over a unix socket.

Weaver acts as both the server and the client for the socket allowing you to use the same command to start the socket server and to send commands.

Weaver is designed to not step on other utility's toes.
Weaver is not a window manager, you should already have one of those.
Weaver is not an adblocker, you have one already at /etc/hosts.
Weaver is not a shortcut manager, you can make one with a couple lines of shell script (or use the provided example).
Weaver *is* designed to play well with others.

Weaver examples frequently use dmenu for user input.
This is for exmaple purposes only.
A wide range of text input programs could be used similarly including interrobang, rofi, or - of course - your shell.
It's entirely up to you.
You can even control weaver on your media center PC from your laptop by sending commands over ssh.

## Running

    weaver

With no arguments, weaver starts the server to listen for connections.

    weaver <cmd> [args ...]

With arguments, weaver sends commands to a running weaver server.

## Commands

All commands can be invoked by their first letter alone or any shortened form; only the first character is interpreted.

    back
Go back one page in the history of the current window  
    Back
Go back to the first page in the history of the current window
    delete
Close the currently focused window
    forward
Go forward one page in the history of the current window
    Forward
Go forward to the last page in the history of the current window
    open
Open the specified url in the current window
    Open <url>
Open the specified url in a new window
    ping, Ping
Return "Pong" if the server is running
    quit, Quit
Close all windows and shut down the server
    reload
Reload the current page
    Reload
Reload the current page bypassing the cache
    search <phrase>
Search the currently focused window for 'phrase'; pass no argument to end the previous search and clear the highlighting of matches
    Search
Repeat the last search / find the next occurrence of the previously searched 'phrase'
    title
Return the title of the currently focused window
    Titles
Return a list of titles of all weaver windows
    url
Return the url of the currently focused window
    Urls
Return a list of urls open in all weaver windows
    window
Return a tab separated pair of title and url of the currently focused window
    Windows
Return a newline-delineated list of tab separated pairs of titles and urls of all weaver windows
    zoom <value>
Zoom the currently focused window by 'value' (e.g., multiply the current zoom factor by 'value')
    Zoom <value>
Zoom the currently focused window to 'value' (e.g., set the zoom factor to 'value')

## Todo

1. Determine if profile needs to be destroyed on shutdown to flush to disk
1. Fullscreen via signal QWebEnginePage::fullScreenRequested
1. Downloads via signal QWebEnginePage::downloadRequested
1. Pdf links ... and other filetypes?
1. Webkit backend (very low priority)