noxz-sites

A collection of a builder and various scripts creating the noxz.tech sites
git clone https://noxz.tech/git/noxz-sites.git
Log | Files | README | LICENSE

noxz.tech/software/adji/index.www
1adji is a recursive acronym for
2.I "Adji's a Decisive and Joyful Internet browser"
3
4adji is a simple, decisive and distraction free web browser using GTK+ 3, GLib
5and WebKit2GTK+. This web browser takes inspiration from other web browsers
6like
7.URL https://surf.suckless.org/ surf ,
8.URL https://www.uninformativ.de/git/lariza/file/README.html lariza
9and
10.URL https://fanglingsu.github.io/vimb/ vimb .
11
12
13.HnS 1
14Download
15.HnE
16
17.URL //noxz.tech/git/adji.git/archive/adji-0.1.9.tar.gz "adji 0.1.9"
18(33kb) (2023-03-09)
19
20.HnS 1
21Setting up an environment
22.HnE
23
24To optimize the usage of adji, it is recommended to configure certain
25environment variables, ideally by exporting them through your
26.ICD ~/.profile
27file.
28Here is an example of the variable values that I prefer:
29
30.CDS
31.COS
32# setup adji browser config
33export ADJI_ACCEPTED_LANGUAGES="en_US"
34export ADJI_COOKIE_FILE="$XDG_CACHE_HOME/adji/cookies"
35export ADJI_DEFAULT_FONT="Source Code Pro"
36export ADJI_DEFAULT_FONT_SIZE="16"
37export ADJI_DOWNLOAD_DIR="$HOME/downloads"
38export ADJI_HISTORY_FILE="$XDG_CACHE_HOME/adji/history"
39export ADJI_MONOSPACE_FONT="Source Code Pro"
40export ADJI_SANS_SERIF_FONT="Liberation Sans"
41export ADJI_SERIF_FONT="Liberation Serif"
42export ADJI_SE_URI_FORMAT="https://ddg.gg?q=%s"
43export ADJI_STATE_FILE="$XDG_CACHE_HOME/adji/state"
44.COE
45.CDE
46
47
48.HnS 1
49Manual
50.HnE
51
52.CDS
53.COS
54ADJI(1)                     General Commands Manual                    ADJI(1)
55
56NAME
57       adji - Adji's a Decisive and Joyful Internet browser
58
59SYNOPSIS
60       adji [-I] [URI...]
61
62DESCRIPTION
63       adji is a simple, decisive and distraction free web browser using GTK+
64       3, GLib and WebKit2GTK+. This web browser takes inspiration from other
65       web browsers like surf(1), lariza(1) and vimb(1).
66
67OPTIONS
68       Along with the standard arguments for GTK+ 3 (see gtk-options(7)), adji
69       is equipped with the following options:
70
71       -I     Implements an independent instance without any ipc
72              configuration.
73
74       If no URI are provided, the value of the enviornment variable
75       ADJI_HOME_URI will be opened which defaults to “about:blank”.
76       Otherwise, any number of URIs may follow these options.
77
78ENVIRONMENT
79       adji recognizes the following environment variables, in addition to the
80       standard variables of GTK+ 3:
81
82       ADJI_ACCEPTED_LANGUAGES
83              When sending an HTTP request, WebKit populates the “Accepted-
84              Language” header based on the provided list of languages, which
85              can be comma-separated (e.g. “en_US,en_AU”). If no languages are
86              specified, WebKit will use en_US as the default.
87
88       ADJI_COOKIE_FILE
89              By providing a path to a cookie file, adji will provide a method
90              of sharing cookies between sessions and instances.
91
92       ADJI_DEFAULT_FONT
93              Provides a method for specifying the default font inside the web
94              view of adji.  If no default font is specified, WebKit will use
95              sans-serif as the default.
96
97       ADJI_DEFAULT_FONT_SIZE
98              Provides a method for specifying the default font size inside
99              the web view of adji.  If no default font size is specified,
100              WebKit will use 16 as the default.
101
102       ADJI_DISABLE_AUTO_LOAD_IMAGES
103              For a faster, or perhaps a more secure way of browsing the web,
104              setting this variable provides a method of preventing images
105              from loading automatically.
106
107       ADJI_DOWNLOAD_DIR
108              This variable allows you to specify the directory to where all
109              downloads are stored according to your preference. By default
110              all downloads are stored at /var/tmp.
111
112       ADJI_ENABLE_CONSOLE_TO_STDOUT
113              Output that is printed to the web view console can be copied to
114              STDOUT setting this variable.
115
116       ADJI_ENABLE_SMOOTH_SCROLLING
117              By default adji disables the janky and annoying “smooth
118              scrolling”. If you for some reason like it, setting this
119              variable will enable it.
120
121       ADJI_FIFO_NAME
122              adji implements IPC configurations using named pipes in the file
123              system. According to XDG standards, the files for these named
124              pipes are stored as
125              /var/run/user/$UID/adji_$ADJI_FIFO_NAME.fifo.
126
127              The $UID refers to the id of the user running adji.
128              $ADJI_FIFO_NAME refers to the value of this variable, which
129              defaults to default.  By specifying this variable, parallel IPC
130              configurations can be used. Be sure to also specify the
131              $ADJI_STATE_FILE accordingly. If you do not, the IPC instances
132              will conflict and overwrite the states of each other.
133
134       ADJI_HISTORY_FILE
135              When set, adji will store each visited URI to the file
136              specified.
137
138       ADJI_HOME_URI
139              The URI that will be opened in new tabs if nothing else is
140              specified. Defaults to about:blank.
141
142       ADJI_MONOSPACE_FONT
143              Provides a method for specifying the monospace font inside the
144              web view of adji. If no monospace font is specified, WebKit
145              will use monospace as the default.
146
147       ADJI_PROXY_IGNORE
148              When specifying a proxy URI, adji will send every HTTP requests
149              through that URI. To exclude traffic to certain hosts from being
150              sent through the specified proxy URI, this variable can be used
151              to provide a comma-separated list of hosts to be ignored (e.g.
152              “127.0.0.1,noxz.tech”).
153
154       ADJI_PROXY_URI
155              By specifying a proxy URI, adji will send every HTTP requests
156              through that URI. As an example a socks proxy for tor can be
157              specified in this way “socks://127.0.0.1:9050”.
158
159       ADJI_SANS_SERIF_FONT
160              Provides a method for specifying the sans-serif font inside the
161              web view of adji. If no sans-serif font is specified, WebKit
162              will use sans-serif as the default.
163
164       ADJI_SERIF_FONT
165              Provides a method for specifying the serif font inside the web
166              view of adji.  If no serif font is specified, WebKit will use
167              serif as the default.
168
169       ADJI_SE_URI_FORMAT
170              If an entry cannot be resolved as either a URI or a file path, a
171              web search will be performed. To define the method of
172              perforating this web search, a format can be utilized in the
173              following manner, using http://ddg.gg as an example:
174              “https://ddg.gg?q=%s”.  One, and only one, string reference (%s)
175              must be specified. The default value is https://ddg.gg?q=%s.
176
177       ADJI_STATE_FILE
178              By specifying a path to a state file, adji will save the state
179              of open tabs for next time the program is run. Each time a tab
180              is moved, updated or otherwise changed, the state of open tabs
181              will be saved as a list of URIs. It is important to avoid using
182              the same state file for multiple IPC configurations, as they
183              will conflict and overwrite each other.
184
185       ADJI_VERBOSE
186              If set, this feature is employed by we_redirect.so to verbosely
187              output to STDERR which redirections are being.
188
189       ADJI_USER_AGENT
190              By default, adji uses WebKit's default value for the user agent
191              string. This variable can be utilized to specify an alternative
192              user agent to the default one.
193
194       ADJI_ZOOM_LEVEL
195              This variable can be utilized to set the zoom level of WebKit's
196              viewports. The default value is 1.0.
197
198FILES
199       These paths will be constructed using XDG variables.
200
201       ~/.config/adji/redirect
202              Redirect rules used by we_redirect.so.  See the WEB EXTENSION
203              section.
204
205       ~/.config/adji/exthandler
206              adji has a built-in mechanism for externally handling URIs. You
207              can use the file specified by the path to define how these URIs
208              should be handled in a customized manner. A system call passes
209              the URI as the first parameter.
210
211       ~/.config/adji/scripts
212              Directory to store user scripts (JavaScript).
213
214       ~/.config/adji/styles
215              Directory to store user style sheets (CSS).
216
217       ~/.config/adji/web_extensions
218              Directory where WebKit will search for web extensions.
219
220       ~/.cache/adji
221       ~/.cache/webkitgtk
222       ~/.local/share/webkitgtk
223              WebKitGTK will store its caches and local storage data in these
224              directories.  It is recommended to periodically clean these
225              directories or mount them as some sort of volatile storage.
226
227USAGE
228   Entry
229       Entry refers to the entry/location/command bar at the bottom of the
230       window.
231
232       Mod1-h Navigate the caret to the left in the entry.
233
234       Mod1-l Navigate the caret to the right in the entry.
235
236       Enter/Return
237              The entered command or URI is resolved as appropriate. If no
238              resolution is found, the entry is reverted back to its original
239              value.  Escape The entry is reverted back to its original value.
240
241   Tab bar
242       Button1
243              When a tab is clicked, the corresponding pair of web view and
244              entry will be made visible
245
246       Button2
247              Clicking on a tab using the scroll wheel will close the pair of
248              view and entry represented by that tab
249
250       Scroll wheel
251              While hovering over the tab bar, scrolling the scroll wheel will
252              allow you to move through tabs in the same direction as your
253              scroll.
254
255   Download bar
256       The download bar remains hidden until a download is initiated. As the
257       download progresses, the progress is shown and updated. Each download
258       is represented by a button that can be clicked. During an active
259       download, clicking the button will abort the download and remove the
260       button. Once the download is complete, the button will simply be
261       removed when clicked.
262
263   Web view
264       Escape Stops the web rendering.
265
266       Button2
267              Opens a hovered URI in a new tab.
268
269       Button8
270              Go back in history.
271
272       Button9
273              Go forward in history.
274
275       Mod1-[Scroll Wheel]
276              The zoom level of the current web view can be adjusted by
277              scrolling while holding down the Mod1 key.
278
279   Global keyboard commands
280       Mod1-Ctrl-Shift-j
281              Move the current tab to the left (further down in the stack)
282              within the tab bar.
283
284       Mod1-Ctrl-Shift-K
285              Move the current tab to the right (further up in the stack)
286              within the tab bar.
287
288       Mod1-Ctrl-j
289              Switch to the previous tab (the one to the left of the current
290              one).
291
292       Mod1-Ctrl-k
293              Switch to the next tab (the one to the right of the current
294              one).
295
296       Mod1-[1..n]
297              Switch to the nth tab.
298
299       Mod1-q Close the current tab.
300
301       Mod1-w Go the specified home page.
302
303       Mod1-t Open the specified home page within a new tab.
304
305       Mod1-r Reload the page, bypassing the cache.
306
307       Mod1-o Focus the entry bar for input.
308
309       Mod1-/ Initiate an in-page search.
310
311       Mod1-n Perform a forward search within the context of the in-page
312              search.
313
314       Mod1-Shift-n
315              Perform a backwards search within the context of the in-page
316              search.
317
318       Mod1-b Toggle the visibility of the tab bar.
319
320       Mod1-Shift-h
321              Go back in history.
322
323       Mod1-Shift-l
324              Go forward in history.
325
326       Mod1-s Toggle JavaScript functionality on or off.
327
328       Mod1-c Toggle the TLS error policy between fail or ignore.
329
330       Mod1-h Move/scroll towards the left on the page.
331
332       Mod1-l Move/scroll towards the right on the page.
333
334       Mod1-j Move/scroll towards the bottom of the page.
335
336       Mod1-k Move/scroll towards the top of the page.
337
338       Mod1-Shift-g
339              Go to the bottom of the page.
340
341       Mod1-g Go to the top of the page.
342
343       Mod1-p Open the print dialog.
344
345   Entry commands
346       Commands can be executed from the entry using a proceeding “:”. adji
347       accepts two types of commands.
348
349       q      If applicable, the program saves its state before quitting.
350
351       /      To initiate an in-page search for a specific phrase, such as
352              “banana”, you would enter the succeeding phrase in the format of
353              :/banana.
354
355   User scripts
356       Upon successful loading of a page, the directory ~/.config/adji/scripts
357       is scanned, and every file with the “.js” extension is executed as a
358       JavaScript file within the context of the loaded page.
359
360   User styles
361       Upon successful loading of a page, the directory ~/.config/adji/styles
362       is scanned, and every file with the “.css” extension is injected as a
363       style sheet within the context of the loaded page. These style sheets
364       can be utilized to customize the appearance of web pages according to
365       your preferences.
366
367WEB EXTENSION
368       we_redirect.so
369          To specify redirect rules in the redirect file, you should use
370          the following format: /pattern/destination/.  Each rule should
371          be written on a single line, and an arbitrary separator should
372          be used to initialize each rule. This separator can be any
373          character except for the “#” symbol, which is used for line
374          comments. The pattern can be any regular expression pattern that
375          matches a URI request. The destination can be left empty, or it
376          can contain a replacement pattern that references regex groups
377          from the pattern. If the destination is empty, the request will
378          be terminated and act as a URI block.
379
380          Regular expressions in terms of syntax and semantics are akin to
381          Perl regular expressions.
382
383EXAMPLES
384       adji -I
385              This command launches an independent adji instance without any
386              IPC configuration. It will not load or save any states.
387              However, if certain environment variables like ADJI_HISTORY_FILE
388              and ADJI_COOKIE_FILE are defined, this instance will use them.
389              Therefore, it cannot be considered completely isolated.
390
391              To make such an instance more isolated the variables
392              ADJI_HISTORY_FILE, ADJI_COOKIE_FILE, XDG_CACHE_HOME, and
393              XDG_DATA_HOME should be set to the value “/dev/null” before
394              executing the command.
395
396       ADJI_PROXY_URI=socks://127.0.0.1:9050 adji -I
397              This command launches an independent adji instance without any
398              IPC configuration. It routes every HTTP request through a
399              designated proxy URI, specifically a tor socks proxy in this
400              case. It will not load or save any states.
401
402              However, to enhance privacy and isolation of this instance,
403              measures must be taken to prevent data leakage through cookies
404              or other sources. Additionally, consider using a more privacy-
405              focused web browser.
406
407KNOWN ISSUES
408       Double-clicking on a tab grabs the focus and prevents global key
409       commands from functioning. This issue could be addressed by focusing
410       the web view upon tab click events. However, as it is a minor problem
411       and only present in a mouse workflow, such a solution has not been
412       implemented.
413
414AUTHOR
415       Chris Noxz <chris@noxz.tech>
416
417COPYRIGHT
418       Copyright © 2023 Chris Noxz.
419
420       License: GPLv3+
421
422       GNU GPL version 3 or later
423       <https://www.gnu.org/licenses/licenses.html>.
424
425       This is free software: you are free to change and redistribute it.
426       There is NO WARRANTY, to the extent permitted by law.
427
428                                  adji-0.1.9                           ADJI(1)
429.COE
430.CDE
431
432.HnS 1
433Installation
434.HnE
435
436Edit config.mk to match your local setup (adji is installed into the
437.I /usr/local
438namespace by default), then simply enter the following command to install (if
439necessary as root):
440
441.CDS
442.COS
443make clean install
444.COE
445.CDE
446
447get source
448.URL //noxz.tech/git/adji.git here .