Difference between revisions of "Dwb"

From ArchWiki
Jump to: navigation, search
(Userscripts: startup-noautoreload is obsolete since the introduction of the "load-on-focus" option)
(Available extensions:)
Line 64: Line 64:
 
  $ dwbem -a
 
  $ dwbem -a
  
 +
<code>
 +
  Available extensions:
 +
  - adblock_subscriptions
 +
  - autoquvi
 +
  - contenthandler
 +
  - downloadhandler
 +
  - formfiller
 +
  - googlebookmarks
 +
  - googledocs
 +
  - grabscrolling
 +
  - multimarks
 +
  - perdomainsettings
 +
  - pwdhash
 +
  - requestpolicy
 +
  - simplyread
 +
  - speeddial
 +
  - supergenpass
 +
  - unique_tabs
 +
  - userscripts
 +
  - whitelistshortcuts
 +
</code>
 
Read the [[man page]] for more details.
 
Read the [[man page]] for more details.
  
Line 72: Line 93:
 
  $ dwbem -i adblock_subscriptions
 
  $ dwbem -i adblock_subscriptions
  
Restart dwb, use the ''adblock_subscribe'' command and choose your favorite lists of filters.
+
Restart dwb, use the ''adblock_subscribe'' command and choose your favorite filter (avoid using more than one filter to prevent duplicate entries that make the adblocker much slower).
  
 
== Userscripts ==
 
== Userscripts ==
Line 91: Line 112:
 
   return false;
 
   return false;
 
});</nowiki>}}
 
});</nowiki>}}
 
== dwbem ==
 
  
 
==Stylesheets==
 
==Stylesheets==

Revision as of 01:35, 4 August 2013

Summary help replacing me
This article addresses the steps necessary to run and configure dwb.

dwb is an extremely fast, lightweight and flexible web browser using the webkit engine. It is customizable through its web interface and fully usable with keyboard shortcuts.

Installation

The dwb package can be found in the official repositories and can be installed with pacman.

# pacman -S dwb

There are also other versions in the AUR: dwb-gitAUR, dwb-gtk3AUR, and dwb-gtk3-gitAUR.

Basic usage

Starting from a fresh configuration, use Template:KeypressTemplate:Keypress to open the Keys page. As you can see from there, most bindings are borrowed from Vim and Emacs.

Use Template:Keypress to access the command prompt. You can use Template:Keypress to auto-complete.

Read the man page for more details.

$ man dwb

dwb features some very interesting bindings. Note that some of them may need the latest development version.

Configuration

Almost everything can be configured from the Settings page. You can access it with Template:KeypressTemplate:Keypress by default.

The configuration files are stored in $XDG_CONFIG_HOME/dwb/ (usually ~/.config/dwb/).

Search engines

Use Template:KeypressTemplate:Keypress to create a search engine from the first input field on the web page. Use Template:Keypress to switch between fields. Then enter a keyword.

Now you can use the keyword in the URI prompt to search directly on the corresponding website.

The first entry in $XDG_CONFIG_HOME/dwb/searchengines will be the default search engine.

Custom keybinds

You can create custom key bindings by editing file custom_keys in the profile directory. This is ~/.config/dwb/default by default. All keysyms which don't emit (multi)byte characters, must be enclosed in @. One keybind can execute multiple dwb commands. These commands execute in same order as they are defined in bind, and must be separated by ;; separator. If the keybind's chord is already bound by dwb, it might be ignored (behaviour is not consistent). In such case one can try to check, whether there is collison with binds defined in ~/.config/dwb/keys and try to unbind the chord there (eg set it to nothing). Any running dwb instance will owerwrite keys file on exit, so remember to do your modifications while dwb is not runing or use default dwb interface (S k).

~/.config/dwb/default/custom_keys
Control w           :close_tab
Control @Page_Up@   :focus_prev
Control @Page_Down@ :focus_next

Extensions

dwb features an extension manager as a separate executable, dwbem. To list all officially available extensions, use:

$ dwbem -a

  Available extensions:
  - adblock_subscriptions
  - autoquvi
  - contenthandler
  - downloadhandler
  - formfiller
  - googlebookmarks
  - googledocs
  - grabscrolling
  - multimarks
  - perdomainsettings
  - pwdhash
  - requestpolicy
  - simplyread
  - speeddial
  - supergenpass
  - unique_tabs
  - userscripts
  - whitelistshortcuts

Read the man page for more details.

Adblock

dwb features an Adblock extension. Install it with

$ dwbem -i adblock_subscriptions

Restart dwb, use the adblock_subscribe command and choose your favorite filter (avoid using more than one filter to prevent duplicate entries that make the adblocker much slower).

Userscripts

dwb can execute .js or .sh scripts put in ~/.config/dwb/userscripts/. Make sure they are executable:

chmod +x ~/.config/dwb/userscripts/myscript.js

Below are some example scripts:

youtube-mplayer

Opens YouTube videos with mplayer (requires mplayer and youtube-dl).

~/.config/dwb/userscripts/youtube-mplayer.js
//!javascript 
// opens YouTube videos with mplayer.
var regex = new RegExp("http(.*)://www.youtube.com/watch\\?(.*&)*v=.*");

signals.connect("navigation", function (wv, frame, request) {
  if (wv.mainFrame == frame && regex.test(request.uri)) 
    system.spawn("sh -c 'mplayer \"$(youtube-dl -g " + request.uri + ")\"'");
  return false;
});

Stylesheets

Stylesheets can be defined in the Settings page under user-stylesheet-uri file:///home/tux/.config/dwb/stylesheet.css

Troubleshooting

HTML5 audio and video does not work

Make sure you have the following GStreamer packages installed:

# pacman -S --needed gstreamer0.10 gstreamer0.10-bad gstreamer0.10-bad-plugins gstreamer0.10-base gstreamer0.10-base-plugins gstreamer0.10-good gstreamer0.10-good-plugins gstreamer0.10-ugly gstreamer0.10-ugly-plugins

Search engines always search for undefined

If you are always searching for undefined even with the searchengine-submit-pattern option set, then you should edit $XDG_CONFIG_HOME/dwb/searchengines and adapt the URIs to match your searchengine-submit-pattern.

Fuzzy font in Github

Add this in your ~/.config/fontconfig/fonts.conf inside the fontconfig-tags:

 <selectfont>
   <rejectfont>
     <pattern>
       <patelt name="family">
         <string>Clean</string>
       </patelt>
     </pattern>
   </rejectfont>
 </selectfont>