# Midori - Frequently asked questions

This document is licensed under the LGPL 2.1.

This is a snapshot of the online FAQ about the Midori Web Browser. Anyone feel free to improve and/ or extend this page, but keep it clean and easy to read for other Xfce users.

# Getting started

#### What is "Midori" and why should I use it?

Midori is a Web Browser, that aims to be lightweight and fast. It aligns well with the Xfce philosophy of making the most out of available resources.

#### How to pronounce Midori and what does the name mean?

Pronounce it “midoɺi”, with a Spanish/ Japanese “r” or “Mee-Doh-Ree” in English or read it Italian. The name comes from the Japanese word 緑 (みどり) for the colour “green”.

#### What does the logo mean?

The paw of a green cat. Obviously. Also it resembles the letter “M” in “Midori”. The curving is supposed to emphasize speed.

#### On which platforms does Midori run currently?

Midori is basically very portable and should run on all platforms that its dependencies support.

#### Under which license is Midori distributed?

Midori and all delivered artwork are licensed under the LGPL2.

# Common problems

#### Why does Google Mail/ Calendar/ Maps, Facebook not work or show mobile version?

Some websites discriminate against your browser.

If you have Midori older than 0.3.5, go to Preferences > Network > Identify As, and choose Custom. Paste this into the entry:

Mozilla/5.0 (X11; Linux) AppleWebKit/531.2+ Midori/0.3

If this doesn't do the trick, try choosing Safari or Firefox.

Many other websites use similar means of detecting the browser.

Ideally Google would follow their own recommendation at some point.

#### There are missing icons/ warnings

The set of themed icons Midori can use is very limited. For instance icons for a new tab or the throbber are not guaranteed to be available. To fix this, install a Freedesktop.org spec compliant icon theme, such as Elementary, Faenza, Buuf or GNOME.

if you need to set a custom path for these to be “searched in” (Kiosks and embedded devices for example):

XDG_DATA_HOME=/path/to/location

will add an extra path for the icons/.. directory

#### Tweaking Midori on the Gtk level

If you don't have a desktop application that takes care of Gtk settings or if your interface doesn't support a particular feature, you can modify any settings easily manually by specifying them in a text file called ~/.gtkrc-2.0 or /etc/gtk-2.0/gtkrc:

Use Tango as a fallback for your icon theme:

    gtk-icon-theme-name = "MySuperFancyTheme"
    gtk-fallback-icon-theme = "Tango"

Use a smaller toolbar:

    gtk-toolbar-icon-size = GTK_ICON_SIZE_SMALL_TOOLBAR

Only for those not running a complete DE like Xfce, Elementary, etc…
There is a preference: Preferences → Browsing → Toolbar Style: Small icons

Enable changing hotkeys while hovering menu items:

    gtk-can-change-accels = 1

#### Disable middle click pasting

As of GTK+ >= 3.4 one can disable it globally in ~/.gtkrc-2.0

    gtk-enable-primary-paste = 0

Otherwise by adding a line to ~/.config/midori/config

    middle-click-opens-selection=false

#### Midori crashes shortly before pages are loaded

There appears to be an issue with Glib 2.16. The recommended solution is to upgrade your Glib package to 2.18.

#### How can I change the cache folder (to tmpfs)?

On Linux and BSD, you can set XDG_CACHE_HOME for all applications, or just Midori. Midori saves icons and cache files in that location. The default is ~/.cache.

export XDG_CACHE_HOME=/dev/shm

## Security features

#### HSTS/ HTTP Strict Transport Security

Midori >= 0.4.7 automatically picks up the Strict-Transport-Security header and caches sites locally. By design, there's no UI. System administrators can however place a pre-loaded cache at /etc/xdg/midori/hsts.

#### Certificate Handling

Midori uses the system's ca-certificates, the exact locations depend on the distribution.

Midori >= 0.4.7 supports gcr for certificate display and management, you can click the lock in the urlbar to see detailed information. Earlier versions, or one without gcr will not handle certificates beyond the lock icon in the urlbar.

##### Error granting trust: Couldn't find a place to store the imported certificate

No key store is available or it's incorrectly setup. By default GNOME keyring can do this. Under Xfce it is recommended to enable “GNOME services” under “Session and Startup settings”. To make sure, that the output of “gnome-keyring –startup” is correctly sent to the environment, you can add “export `gnome-keyring-daemon –start`” to .xinitrc.

##### A testcase for self-signed certificates

https://selfsigned.notyours.dk:444/menu.gif

## Flash doesn't work

#### Windows support

Starting with WebkitGTK+ 1.8.2 (Midori 0.4.7) Netscape plugins are now supported if they're installed in Application Data\Mozilla\plugins or bin\Plugins in Midori's folder (ie. NPSWF32.dll for Flash).

#### Netscape plugins on Linux, BSD and OS X

You need to set MOZ_PLUGIN_PATH, for example like this:

    export MOZ_PLUGIN_PATH="/usr/lib/mozilla/plugins"

The official Flash plugin is called libflashplayer.so .

You can either run that above line and run Midori in the same terminal afterwards or, for the long term, put it in ~/.bash_profile or /etc/profile.d or your respective distribution's place for this.

#### Flash is crashing/ No Flash with GTK+3

nspluginwrapper is a program that runs Flash and other Netscape plugins in a separate process. So a crash can't crash the whole browser and Flash, which is GTK+2 can run in GTK+3.

    sudo apt-get install nspluginwrapper
    # On Debian/ Ubuntu - on other systems http://get.adobe.com/de/flashplayer/
    sudo apt-get install flashplugin-installer
    # cd into the folder where the plugin was installed
    nspluginwrapper -v -a -n -i libflashplayer.so

~/.mozilla can also be used with Adobe's tarball if system-wide install is not an option. The approach is confirmed to work with x86-64 as well.

Another remedy is using WebKit2 - starting with Midori 0.4.9 experimental support is available, progress on WebKit2GTK+ can be seen in the WebKit wiki.

#### HTTPS URLS won't load

That's a problem with WebKit. You can work around it to some extent if you start Midori like so:

    export WEBKIT_IGNORE_SSL_ERRORS="1" midori

#### 256-bit encryption isn't supported?

There's no official support right now. It's possible to patch glib-networking to enable 256-bit SSL.

#### Scroll with middle mouse button/ pan-scrolling

http://ubuntuforums.org/showthread.php?t=478418

Bug: https://bugs.launchpad.net/webkit/+bug/871425
Upstream Bug: https://bugs.webkit.org/show_bug.cgi?id=50561

#### HTML5 Video doesn't play

You need to have GStreamer plugins installed which implement the codecs.

1. You need gstreamer0.10-pulse if you're using PulseAudio.
2. You may need gstreamer0.10-alsa for ALSA, depending on your distribution.
3. You need plugins for Theora, gstreamer0.10-base and MPEG-4 incluing aac (e.g. gst-plugins-faad), gstreamer0.10-bad. For WebM, you'll need plugins for vorbis (-base), matroska (-good), and vp8 (-bad). Have a look at http://www.gstreamer.net/documentation/plugins.html for details.
4. For Youtube or Vimeo, you need WebKitGTK+ 1.1.20 or newer.
5. You can test your installed codecs here..
6. Since Midori 0.3.5 you can look at “about:version” to see which video codecs you have installed.

#### Java doesn't work, applets don't show up

Java is supported in WebKitGTK+ since 1.1.22. If you need Java, you need to upgrade to at least that version. Sun/ Oracle Java as well as IcedTea are known to work. Distribution specific setup might be required, such as setting LD_LIBRARY_PATH to include the location of libxul.so and making a symbolic link for libnpjp2.so to /usr/lib/mozilla.

icedtea6 version 1.8 and above has been known to crash midori. If this is the case for you, try sun-jre.

#### How do I get rid of the menubar?

In the menubar, go to View → Toolbars → Menubar, voilà the menubar is gone and a new icon appears at the right end of the toolbar. Click the icon to access functionality that otherwise sits in the menubar. Midori 0.3.2 disables the menubar by default.

#### Why can't I use periods when searching from the location bar?

Midori tries to make a smart guess on whether you are searching for something or typing a valid address by hand. Yet there are ambiguous cases so it fails.

Try using 'g' in front of the search terms, like 'g Ms.Marple'. The 'g' is a token that tells the browser you want to use Google. See Tools > Manage Search Engines or right-click the location bar and select the menu item, to look at search engines and tokens.

#### How can I reload and bypass the cache?

Hold the Shift key while clicking Refresh in the toolbar (this works in Chromium, Mozilla, Opera and Safari, too). Since Midori 0.3.2 you can use Ctrl+Shift+R.

#### How do I make tabs pinned/ sticky/ minimized?

Right-click the tab label, and click 'Minimize' or 'Show Tab Icon Only' (Midori 0.3.5 or older).

#### Why doesn't Google "live search" work?

You need to set Preferences > Network > Identify As to Firefox.

#### Google Docs says "Clear your caches"

If you use the Adblock extension, EasyPrivacy may conflict with Google Docs. Disable the subscription if you use it. Otherwise try disabling Adblock entirely.

#### Opening html email with Mutt

Place the following in ~/.mutt/mailcap or ~/.mailcap:

    text/html; midori -a '%s'; test=test -n "$DISPLAY"; nametemplate=%s.html

#### Scrolling on website xyz is very slow

1. Go to Tools > Extensions
2. Enable 'User Addons' if it's not yet enabled
3. Create a text file .local/share/midori/styles/scrollfix.user.css
4. Put this into the file: * {-webkit-box-shadow: none !important;}

#### File opening doesn't work/ PDFs are opened with GIMP

Midori opens files with GIO, and falls back to xdg-open, exo-open or gnome-open if these are available. All of this relies on freedesktop.org MIME configuration. To tweak this there are multiple options:

1. Use 'Open With' with a graphical file manager
2. Edit ~/.local/share/applications/defaults.list with a text editor
3. Run something like ‘xdg-mime default evince.desktop application/pdf’

xdg-open knows how to handle GNOME, KDE and Xfce. LXDE is unfortunately not supported yet, see https://bugs.freedesktop.org/show_bug.cgi?id=26058

#### Open magnet:, irc:, apt:, bitcoin: with an application

As of git 2011-03-05 02:40:00 UTC and Midori 0.3.3 you can

Add a line to ~/.local/share/applications/mimeapps.list:

    x-scheme-handler/magnet=transmission-gtk.desktop

Or install an application which advertises the scheme like so:

    MimeType=x-scheme-handler/magnet;

Note that incomplete .desktop files will silently fail and it will look as if it doesn't exist.

For bitcoin:, try Electrum or Multibit.

#### Spell check

First enable spell checking: Edit→Preferences→Behavior and check “Enable Spell Checking”.

Now while typing any errors should get underlined in red. To get suggestions, highlight the word and right-click. You should see a list of suggestions at the top of the menu.

On Windows you need to download OpenOffice dictionaries, find the zipped file(s) for your locale(s) and unpack the contents into share/myspell/dicts/ in your Midori installation. The folder should contain *.aff and *.dic files

#### Is it possible to disable Same Origin Policy? What Webkit settings not in the preferences can I change?

You can change all values of WebKitWebSettings in the config file (~/.config/midori/config on unices, %APPDATA%\midori\config [please check :)] on Windows). For example, to disable Same Origin Policy for local files, add

    enable-universal-access-from-file-uris=true

to your config file.

#### How do I change the proxy server from the toolbar or statusbar?

1. Activate the Statusbar Features plugin.
2. Close Midori.
3. Create a folder ~/.config/midori/extensions/libstatusbar-features.so/
4. Create a text file “config”
5. Type the following for the default setup:

      [settings]
      items=auto-load-images;enable-scripts;enable-plugins;identify-as;zoom-level

Add button types separated by semicolon:

- proxy-type Proxy Server
- preferred-encoding Character Set/ Encoding
- enable-spell-checking Spell Check
- zoom-text-and-images Only zoom in text, or text and images
- first-party-cookies-only First party cookies only
- site-data-rules see Blacklisting cookies

Most settings listed at http://webkitgtk.org/reference/webkitgtk/stable/WebKitWebSettings.html will also work as button types.

# Privacy

## Blacklist cookies

As of Midori 0.4.4 you can add a hidden option to ~/.config/midori/config like so:

    site-data-rules=-google.com,-facebook.com,!bugzilla.gnome.org,+bugs.launchpad.net

1. Values prefixed with ”-” are always blocked
2. Values prefixed with ”+” are always accepted
3. Values prefixed with ”!” are not cleared in Clear Private Data
4. No wildcards.
5. LSO, local storage and application caches ignore all policies.

The feature is currently experimental and will change in future versions.

## Adblock

The Advertisement Blocker can be activated under Extensions. It uses the same lists as Adblock Plus. URLs are blocked completely and never loaded. Lists can be added through the option button on the right side in the extension list.

# Modes

## Web Applications

There are two closely related features to open websites as dedicated windows of their own. You can do the following to use them:

1. Right-click a hyperlink → Open as Web Application
2. Add or Edit a bookmark → [x] Run as web application
3. Type ‘midori -a http://foo.bar’ on a command line

You can also add options such as ‘-e Fullscreen’, ‘-e Navigationbar’ or ‘-e Statusbar’ (as of Midori 0.2.9 ‘midori –help-execute will list all available commands’)

## Private Browsing

File menu/ App Menu button → Private Browsing

A private window is a separate process, so crashes don't affect the normal browser session. No sensitive data such as cookies, history or bookmarks are stored. No extensions are loaded. Panels are not available.

As of Midori 0.2.9 Private Browsing uses preferences, cookies, keyboard shortcuts and search engines from the normal session, but it won't save any changes. This behaviour can be emulated from the command line with ”-a” and ”-c”.

As of Midori 0.3.4 the –private command line switch opens a private browsing instance with normal preferences, cookies, shortcuts and search engines. But no changes will be saved. DNS prefetching is disabled in this mode, also referrers are stripped down to the hostname when navigating between different websites.

The same options available to -a/ –app can be used for private browsing mode.

## Portable mode/ Win32

On Windows builds, -P/ –portable causes all data to be written to the “profile” folder in the Midori folder. Everything, including temporary files and cache, is stored in a sub-folder without touching the system. So Midori can be run eg. from a USB stick on different machines.

## Kiosk mode

There is no specific mode, instead you use several command line switches. A typical fullscreen setup with no toolbar that opens about:blank and resets the session after 2 minutes of inactivity for instance:

    midori -i 120 -e Fullscreen -e Navigationbar -a about:blank

Available commands for -e can be listed with “midori –help-execute”.

If needed, a customized profile can be created with “midori -c /path/to/folder”. Using the shortcut editor extension, keyboard shortcuts can be removed as needed. Afterwards just append ”-c /path/to/folder” to the kiosk mode command line.

To restrict pages that can be opened, you can use a regular expression. The expression is a blacklist. To block undesirable sites you can do something like:

    -b 'youtube|youporn'

By negating the expression you can also whitelist pages.

    -b '^(?!.*?(gmail|mail\.google|accounts\.google)).*'

Any links outside end up in an error page. All images and other files won't be loaded.

## Always open Midori in Fullscreen

Using the WM to get Midori into fullscreen mode, or calling “midori -e Fullscreen” is the typical way. On the next startup Midori will remember the last window size and state.

If for whatever reason this isn't enough, DevilsPie can force Midori to the desired state:

~/.devilspie/midori.ds

(begin

      (if
          (and
              (is (application_name) "Midori")
          )
              (begin
                  (maximize)
              )
      )

)

## Overriding settings and loading extensions

As of Midori 0.5.0 the –execute command line switch got more powerful:

`midori -e libcolorful-tabs.so=true`

`midori -e enable-javascript=false`

# Proxy servers

By running a local proxy you can modify web content even before it has reached Midori. That allows you to do things similar to what user scripts and user styles provide and even others that neither is suitable for.

#### Privoxy

Privoxy is a non-caching web proxy with filter capabilites and particular support for blocking advertisements before even loading them.

http://www.privoxy.org/faq/

#### Mousehole

Mousehole is a scriptable proxy server written in Ruby.

http://code.whytheluckystiff.net/mouseHole/

#### Polipo

Polipo is a caching web proxy (a web cache) designed to be used by one person or a small group of people. It is similar in spirit to WWWOFFLE, but the implementation techniques are more like the ones used by Squid.

http://www.pps.jussieu.fr/~jch/software/polipo/

#### Are SOCKS proxy servers supported?

As of Midori 0.5.0 and libSoup 2.40 SOCKS proxies can be used, the Preferences dialog lists detected types and accepts curl syntax.

libSoup < 2.40 only supports HTTP proxy servers directly. A way to use SOCKS on Unix is to use tsocks with SSH as follows:

1. Install 'tsocks'
2. Open /etc/tsocks.conf in an editor
3. Type something like this, you can choose the port freely:

       server = 127.0.0.1
       server_type = 5
       server_port = 5555

4. Open an SSH connection with the same port:

        ssh -D localhost:5555 myhost.com

5. Run Midori with “tsocks” in front of it:

        tsocks midori

6. Now you can use for example http://www.whatsmyip.org/ to verify that you are using a SOCKS connection. The IP address should match the one of your SSH host. Remember to keep the SSH login running, and don't suspend it, otherwise it won't work.
7. If the connection fails for some reason, you should see a connection error.

# Keyboard Hotkeys

#### HJKL

You can use the Vim-like key bindings [hjkl] to navigate a page. h=left j=down k=up l=right In a picture:

    	       k
    	   h     l
    	     j

You can also use the arrow keys to do the same.

#### Following Links

To enable Hints in Midori, similar to vimperator in Firefox or xxxterm, press .

With hints enabled, type the link number, and press Enter to open the link in the current tab, or Ctrl-Enter to open the link in a new tab. To clear a typed link number before pressing Enter or Ctrl-Enter, use Escape.

#### Use Ctrl(+Shift)+Tab to switch between pages

Since Midori 0.3.5 Ctrl+Tab is supported by default.

In older versions you can enable the History List extension under Tools → Extensions.

#### Customizing keyboard shortcuts

Enable the Shortcuts extension Tools → Extensions. To edit a keybinding Tools → Customize Shortcuts…

#### Using Find

Default shortcuts for Find are:

Find: Ctrl+f ”/” and ”,”
FindNext: Ctrl+g and Enter
FindPrevious: Shift+Ctrl+g

Dismissing Find:

When using Ctrl+f to bring up Find, use Ctrl+f again or ESC. When using ”/” or ”,” to bring up Find, the previous works here as well and by simply moving focus away from the Find box. For example: a Tab or a mouse click anywhere[besides links of course].

# Mouse Gestures

By default the right mouse button initiates gestures.

You can change the button (for example, to the middle mouse button) using a hidden option:

1. Create a text file ~/.config/midori/extensions/libmouse-gestures.so/config .
2. Type the following in there:

      [settings]
      button=2

As of Midori 0.5.0 individual gestures can be configured freely in the file ~/.config/midori/extensions/libmouse-gestures.so/gestures . Consult “midori –help-execute” for a list of available actions, which are placed on the left of the equals sign. On the right goes a sequence of directions, (W)est, (E)east, (N)orth, (S)outh, (S)outh(W)est, etc., with a semicolon (;) after each, as shown below:

      [gestures]
      Quit=W;E;
      TabPrevious=SW;
      TabNext=SE;

Additionally, there are programs allowing mouse gestures system-wide, for example EasyStroke.

# User scripts and styles

UserScripts are scripts applied on some, or on all web pages. They can modify pages locally to add or alter functionality. That includes fixing bugs in web pages. User scripts are also available in other browsers, in the form of Mozilla's Greasemonkey or Opera's User JavaScript.

#### How to install a UserScript

First enable the “User Addons” extension. It will show up as a “User Scripts” panel (and it also provides “User Styles”).

Now you need to find some scripts. You can find some at userscripts.org. Most scripts work fine, some may be written specifically for other browsers.

If you have Midori 0.3.0 or newer, you will be offered to install scripts as soon as you see them on the page.

To manually install a userscript, you have to download the script as a file, and put it in the folder ~/.local/share/midori/scripts. You need to create that folder if it doesn't exist yet. Midori will automatically see and use it, which you can also see in the user scripts panel.

If the script is only shown as source code on the page, you first have to create a new text file in a text editor, copy the source code into the new file, and save it as my-user-script.js where ”.js” is the extension.

#### Compatibility with GreaseMonkey

As previously mentioned, Midori can use most scripts you will find. Midori supports Greasemonkey's @include and @exclude metadata so that scripts are only loaded on appropriate pages. Midori doesn't support advanced metadata, such as @require and @resource, so user scripts can't define dependencies on other scripts - most of the time this isn't a problem. Midori also does not support Greasemonkey API. Scripts must also be compatible with Webkit, since Midori is based on WebKit. A Greasemonkey script that makes use of functionality of Gecko/ Firefox will not work in Midori.

#### Flash blocking via a User script

You can use BlockFlash2 as a user script which replaces all Flash elements with a button that says “Play Flash”.

#### Flash blocking via a User style

You can also use FlashBlock WannaBe as a user script in order to replace Flash elements with placeholders and load them on click. The script is pretty advanced compared to most Flash blockers found on the web.

## User styles

User styles are CSS Cascading Style sheets that are loaded locally and applied on top of web pages, similar to User scripts, in order to add or alter functionality and also fix bugs.

#### How to install a user style

First, you need to find some styles (or write your own). You can find some at userstyles.org. Many styles may or may not work, depending on whether the author decided to use browser specific features.

To install a user style, you have to download the style as a file, and put it in the following directory ~/.local/share/midori/styles (you may need to create that directory if it does not exist). Midori will automatically see and use it, which you can also see in the user styles panel.

Note, if the style is only shown as source code on the page, you first have to create a new text file in a text editor, copy the source code into the new file, and save it as my-user-style.css where ”.css” is the extension.

#### How to install a user style before Midori 0.0.20

Open up the Preferences and use the file chooser button beside User Stylesheet to choose a style sheet file. The style sheet will from now on be applied to all sites automatically.

#### A user css to display the url when a link is hovered

This user css is used to display the corresponding url when a link is hovered. This is similar to what chromium/chrome provides when hovering over a link, shown on the bottom left of the page. Add the following to ~/.local/share/midori/styles, then restart Midori and make sure that it is enabled Tools → Userstyles.

Customize as needed:

    a[href]:hover {
                text-decoration: none !important;
            }
            a[href]:hover:after {
                content: attr(href);
                position: fixed; left: 4px; bottom: 4px;
                padding: 0 6px !important;
                max-width: 95%; overflow: hidden;
                white-space: nowrap; text-overflow: ellipsis;
                font:10pt sans-serif !important; text-shadow: 0 0 12px white;
                background-color: ButtonFace !important; color: ButtonText !important;
                opacity: 0.8; outline: ButtonFace solid thick;
                z-index: 9999;
            }

#### Tweaking fonts via CSS

If changing system-wide font settings isn't bringing the desired results or rendering should be tweaked only for websites CSS can be an alternative. Add the following to ~/.local/share/midori/styles, then restart Midori and make sure that it is enabled Tools → Userstyles.

Customize as needed:

    * {
        font-smooth:always;
        -webkit-font-smoothing: antialiased;
        text-rendering: optimizeLegibility
    }

## Understanding WebKit Version Numbers

WebKit is the core of the Midori browser and often shows up in bug reports. Because WebKit is a complex piece of software and compatible with various libraries, its version numbers and naming schemes are not always clear to end-users. Read on and be enlightened:

WebKit itself is a library which works in many environments, such as Windows, OS X, and various Linux DE. There are different “ports”, one of which corresponds to each of these environments, and each of which is slightly different in bugs and features at any given time. The WebKit port used by Midori (because Midori is built with GTK+) is WebKitGTK+.

WebKitGTK+ can be compiled against either GTK+2 or GTK+3. This will result in library filenames like libwebkitgtk-1.0.so or libwebkitgtk-3.0.so, respectively. This has nothing to do with the version of WebKit itself.

WebKit has a “new API layer … designed from the ground up to support a split process model”–so pages can crash without the entire browser crashing. This layer is called WebKit2, and for WebKitGTK+ it requires building against GTK+3, producing a library file called libwebkit2gtk-3.0.so.

The version of WebKitGTK+ is only interesting from the standpoint of which API features were available and which bugs were present in that particular release; it's best checked by visiting about:version.

#### Version Number Interactions

WebKit2 can be built even with quite old WebKit versions, though Midori's WebKit2 support requires version 2.0.0 or newer of WebKit. Current versions of WebKitGTK+ continues to support GTK+2 and GTK+3 (the latter since 1.4.x or so). As stated above, the WebKit2 API layer is only available with GTK+3.

Midori's support for WebKit2 is still provisional, and likely unsuitable for real-world daily usage; much work is being done in this area so that Midori can use WebKit2 by default at some point in the future.