cf8 avatar cf8 committed 0cf1306

luakit config added, several minor tweaks for other configs

Comments (0)

Files changed (7)

 
     <match target="pattern" name="family" >
         <test name="family" qual="any" >
+            <string>Courier</string>
+        </test>
+        <edit name="family" mode="assign">
+            <string>DejaVu Sans Mono</string>
+        </edit>
+    </match>
+
+    <match target="pattern" name="family" >
+        <test name="family" qual="any" >
             <string>Times</string>
         </test>
         <edit name="family" mode="assign">
+-----------------
+-- Keybindings --
+-----------------
+
+-- Binding aliases
+local key, buf, but = lousy.bind.key, lousy.bind.buf, lousy.bind.but
+local cmd, any = lousy.bind.cmd, lousy.bind.any
+
+-- Util aliases
+local match, join = string.match, lousy.util.table.join
+local strip, split = lousy.util.string.strip, lousy.util.string.split
+
+-- Globals or defaults that are used in binds
+local scroll_step = globals.scroll_step or 20
+local zoom_step = globals.zoom_step or 0.1
+local homepage = globals.homepage or "http://luakit.org"
+
+-- Add binds to a mode
+function add_binds(mode, binds, before)
+    assert(binds and type(binds) == "table", "invalid binds table type: " .. type(binds))
+    mode = type(mode) ~= "table" and {mode} or mode
+    for _, m in ipairs(mode) do
+        local mdata = get_mode(m)
+        if mdata and before then
+            mdata.binds = join(binds, mdata.binds or {})
+        elseif mdata then
+            mdata.binds = mdata.binds or {}
+            for _, b in ipairs(binds) do table.insert(mdata.binds, b) end
+        else
+            new_mode(m, { binds = binds })
+        end
+    end
+end
+
+-- Add commands to command mode
+function add_cmds(cmds, before)
+    add_binds("command", cmds, before)
+end
+
+-- Adds the default menu widget bindings to a mode
+menu_binds = {
+    -- Navigate items
+    key({},          "j",       function (w) w.menu:move_down() end),
+    key({},          "k",       function (w) w.menu:move_up()   end),
+    key({},          "Down",    function (w) w.menu:move_down() end),
+    key({},          "Up",      function (w) w.menu:move_up()   end),
+    key({},          "Tab",     function (w) w.menu:move_down() end),
+    key({"Shift"},   "Tab",     function (w) w.menu:move_up()   end),
+}
+
+-- Add binds to special mode "all" which adds its binds to all modes.
+add_binds("all", {
+    key({}, "Escape", "Return to `normal` mode.",
+        function (w) w:set_mode() end),
+
+    key({"Control"}, "[", "Return to `normal` mode.",
+        function (w) w:set_mode() end),
+
+    -- Mouse bindings
+    but({}, 8, "Go back.",
+        function (w) w:back() end),
+
+    but({}, 9, "Go forward.",
+        function (w) w:forward() end),
+
+    -- Open link in new tab or navigate to selection
+    but({}, 2, [[Open link under mouse cursor in new tab or navigate to the
+        contents of `luakit.selection.primary`.]],
+        function (w, m)
+            -- Ignore button 2 clicks in form fields
+            if not m.context.editable then
+                -- Open hovered uri in new tab
+                local uri = w.view.hovered_uri
+                if uri then
+                    w:new_tab(uri, false)
+                end
+            end
+        end),
+
+    -- Open link in new tab when Ctrl-clicked.
+    but({"Control"}, 1, "Open link under mouse cursor in new tab.",
+        function (w, m)
+            local uri = w.view.hovered_uri
+            if uri then
+                w:new_tab(uri, false)
+            end
+        end),
+
+    -- Zoom binds
+    but({"Control"}, 4, "Increase text zoom level.",
+        function (w, m) w:zoom_in() end),
+
+    but({"Control"}, 5, "Reduce text zoom level.",
+        function (w, m) w:zoom_out() end),
+
+    -- Horizontal mouse scroll binds
+    but({"Shift"}, 4, "Scroll left.",
+        function (w, m) w:scroll{ xrel = -scroll_step } end),
+
+    but({"Shift"}, 5, "Scroll right.",
+        function (w, m) w:scroll{ xrel =  scroll_step } end),
+})
+
+add_binds("normal", {
+    -- Autoparse the `[count]` before a binding and re-call the hit function
+    -- with the count removed and added to the opts table.
+    any([[Meta-binding to detect the `^[count]` syntax. The `[count]` is parsed
+        and stripped from the internal buffer string and the value assigned to
+        `state.count`. Then `lousy.bind.hit()` is re-called with the modified
+        buffer string & original modifier state.
+
+        #### Example binding
+
+            lousy.bind.key({}, "%", function (w, state)
+                w:scroll{ ypct = state.count }
+            end, { count = 0 })
+
+        This binding demonstrates several concepts. Firstly that you are able to
+        specify per-binding default values of `count`. In this case if the user
+        types `"%"` the document will be scrolled vertically to `0%` (the top).
+
+        If the user types `"100%"` then the document will be scrolled to `100%`
+        (the bottom). All without the need to use `lousy.bind.buf` bindings
+        everywhere and or using a `^(%d*)` pattern prefix on every binding which
+        would like to make use of the `[count]` syntax.]],
+        function (w, m)
+            local count, buf
+            if m.buffer then
+                count = string.match(m.buffer, "^(%d+)")
+            end
+            if count then
+                buf = string.sub(m.buffer, #count + 1, (m.updated_buf and -2) or -1)
+                local opts = join(m, {count = tonumber(count)})
+                opts.buffer = (#buf > 0 and buf) or nil
+                if lousy.bind.hit(w, m.binds, m.mods, m.key, opts) then
+                    return true
+                end
+            end
+            return false
+        end),
+
+    key({}, "i", "Enter `insert` mode.",
+        function (w) w:set_mode("insert")  end),
+
+    key({}, ":", "Enter `command` mode.",
+        function (w) w:set_mode("command") end),
+
+    -- Scrolling
+    key({}, "j", "Scroll document down.",
+        function (w) w:scroll{ yrel =  scroll_step } end),
+
+    key({}, "k", "Scroll document up.",
+        function (w) w:scroll{ yrel = -scroll_step } end),
+
+    --key({}, "h", "Scroll document left.",
+    --    function (w) w:scroll{ xrel = -scroll_step } end),
+
+    --key({}, "l", "Scroll document right.",
+    --    function (w) w:scroll{ xrel =  scroll_step } end),
+
+    key({}, "Down", "Scroll document down.",
+        function (w) w:scroll{ yrel =  scroll_step } end),
+
+    key({}, "Up",   "Scroll document up.",
+        function (w) w:scroll{ yrel = -scroll_step } end),
+
+    key({}, "Left", "Scroll document left.",
+        function (w) w:scroll{ xrel = -scroll_step } end),
+
+    key({}, "Right", "Scroll document right.",
+        function (w) w:scroll{ xrel =  scroll_step } end),
+
+    key({}, "^", "Scroll to the absolute left of the document.",
+        function (w) w:scroll{ x =  0 } end),
+
+    key({}, "$", "Scroll to the absolute right of the document.",
+        function (w) w:scroll{ x = -1 } end),
+
+    key({}, "0", "Scroll to the absolute left of the document.",
+        function (w, m)
+            if not m.count then w:scroll{ y = 0 } else return false end
+        end),
+
+    key({"Control"}, "e", "Scroll document down.",
+        function (w) w:scroll{ yrel =  scroll_step } end),
+
+    key({"Control"}, "y", "Scroll document up.",
+        function (w) w:scroll{ yrel = -scroll_step } end),
+
+    key({"Control"}, "d", "Scroll half page down.",
+        function (w) w:scroll{ ypagerel =  0.5 } end),
+
+    key({"Control"}, "u", "Scroll half page up.",
+        function (w) w:scroll{ ypagerel = -0.5 } end),
+
+    key({"Control"}, "f", "Scroll page down.",
+        function (w) w:scroll{ ypagerel =  1.0 } end),
+
+    key({"Control"}, "b", "Scroll page up.",
+        function (w) w:scroll{ ypagerel = -1.0 } end),
+
+    key({}, "space", "Scroll page down.",
+        function (w) w:scroll{ ypagerel =  1.0 } end),
+
+    key({"Shift"}, "space", "Scroll page up.",
+        function (w) w:scroll{ ypagerel = -1.0 } end),
+
+    key({}, "BackSpace", "Scroll page up.",
+        function (w) w:scroll{ ypagerel = -1.0 } end),
+
+    key({}, "Page_Down", "Scroll page down.",
+        function (w) w:scroll{ ypagerel =  1.0 } end),
+
+    key({}, "Page_Up", "Scroll page up.",
+        function (w) w:scroll{ ypagerel = -1.0 } end),
+
+    key({}, "Home", "Go to the end of the document.",
+        function (w) w:scroll{ y =  0 } end),
+
+    key({}, "End", "Go to the top of the document.",
+        function (w) w:scroll{ y = -1 } end),
+
+    -- Specific scroll
+    buf("^gg$", "Go to the top of the document.",
+        function (w, b, m) w:scroll{ ypct = m.count } end, {count=0}),
+
+    buf("^G$", "Go to the bottom of the document.",
+        function (w, b, m) w:scroll{ ypct = m.count } end, {count=100}),
+
+    buf("^%%$", "Go to `[count]` percent of the document.",
+        function (w, b, m) w:scroll{ ypct = m.count } end),
+
+    -- Zooming
+    key({}, "+", "Enlarge text zoom of the current page.",
+        function (w, m) w:zoom_in(zoom_step * m.count) end, {count=1}),
+
+    key({}, "-", "Reduce text zom of the current page.",
+        function (w, m) w:zoom_out(zoom_step * m.count) end, {count=1}),
+
+    key({}, "=", "Reset zoom level.",
+        function (w, m) w:zoom_set() end),
+
+    buf("^z[iI]$", [[Enlarge text zoom of current page with `zi` or `zI` to
+        reduce full zoom.]],
+        function (w, b, m)
+            w:zoom_in(zoom_step  * m.count, b == "zI")
+        end, {count=1}),
+
+    buf("^z[oO]$", [[Reduce text zoom of current page with `zo` or `zO` to
+        reduce full zoom.]],
+        function (w, b, m)
+            w:zoom_out(zoom_step * m.count, b == "zO")
+        end, {count=1}),
+
+    -- Zoom reset or specific zoom ([count]zZ for full content zoom)
+    buf("^z[zZ]$", [[Set current page zoom to `[count]` percent with
+        `[count]zz`, use `[count]zZ` to set full zoom percent.]],
+        function (w, b, m)
+            w:zoom_set(m.count/100, b == "zZ")
+        end, {count=100}),
+
+    -- Fullscreen
+    key({}, "F11", "Toggle fullscreen mode.",
+        function (w) w.win.fullscreen = not w.win.fullscreen end),
+
+    -- Clipboard
+    key({}, "p", [[Open a URL based on the current primary selection contents
+        in the current tab.]],
+        function (w)
+            local uri = assert(luakit.selection.primary, "Empty selection.")
+            w:navigate(w:search_open(uri))
+        end),
+
+    key({}, "P", [[Open a URL based on the current primary selection contents
+        in `[count=1]` new tab(s).]],
+        function (w, m)
+            local uri = assert(luakit.selection.primary, "Empty selection.")
+            for i = 1, m.count do w:new_tab(w:search_open(uri)) end
+        end, {count = 1}),
+
+    -- Yanking
+    buf("^yy$", "Yank current URI to primary selection.",
+        function (w)
+            local uri = string.gsub(w.view.uri or "", " ", "%%20")
+            luakit.selection.primary = uri
+            luakit.selection.clipboard = uri
+            w:notify("Yanked uri: " .. uri)
+        end),
+
+    buf("^yt$", "Yank current page title to primary selection.",
+        function (w)
+            local title = w.view.title
+            luakit.selection.primary = title
+            luakit.selection.clipboard = uri
+            w:notify("Yanked title: " .. title)
+        end),
+
+    -- Commands
+    key({"Control"}, "a", "Increment last number in URL.",
+        function (w) w:navigate(w:inc_uri(1)) end),
+
+    key({"Control"}, "x", "Decrement last number in URL.",
+        function (w) w:navigate(w:inc_uri(-1)) end),
+
+    key({}, "o", "Open one or more URLs.",
+        function (w) w:enter_cmd(":open ") end),
+
+    key({}, "t", "Open one or more URLs in a new tab.",
+        function (w) w:enter_cmd(":tabopen ") end),
+
+    key({}, "w", "Open one or more URLs in a new window.",
+        function (w) w:enter_cmd(":winopen ") end),
+
+    key({}, "O", "Open one or more URLs based on current location.",
+        function (w) w:enter_cmd(":open " .. (w.view.uri or "")) end),
+
+    key({}, "T",
+        "Open one or more URLs based on current location in a new tab.",
+        function (w) w:enter_cmd(":tabopen " .. (w.view.uri or "")) end),
+
+    key({}, "W",
+        "Open one or more URLs based on current locaton in a new window.",
+        function (w) w:enter_cmd(":winopen " .. (w.view.uri or "")) end),
+
+    -- History
+    key({}, "H", "Go back in the browser history `[count=1]` items.",
+        function (w, m) w:back(m.count) end),
+
+    key({}, "L", "Go forward in the browser history `[count=1]` times.",
+        function (w, m) w:forward(m.count) end),
+
+    key({}, "XF86Back", "Go back in the browser history.",
+        function (w, m) w:back(m.count) end),
+
+    key({}, "XF86Forward", "Go forward in the browser history.",
+        function (w, m) w:forward(m.count) end),
+
+    key({"Control"}, "o", "Go back in the browser history.",
+        function (w, m) w:back(m.count) end),
+
+    key({"Control"}, "i", "Go forward in the browser history.",
+        function (w, m) w:forward(m.count) end),
+
+    -- Tab
+    key({"Control"}, "Page_Up", "Go to previous tab.",
+        function (w) w:prev_tab() end),
+
+    key({"Control"}, "Page_Down", "Go to next tab.",
+        function (w) w:next_tab() end),
+
+    key({}, "l", "Go to next tab.",
+        function (w) w:next_tab() end),
+
+    key({"Shift","Control"}, "Tab", "Go to previous tab.",
+        function (w) w:prev_tab() end),
+
+    key({}, "h", "Go to previous tab.",
+        function (w) w:prev_tab() end),
+
+    buf("^gT$", "Go to previous tab.",
+        function (w) w:prev_tab() end),
+
+    buf("^gt$", "Go to next tab (or `[count]` nth tab).",
+        function (w, b, m)
+            if not w:goto_tab(m.count) then w:next_tab() end
+        end, {count=0}),
+
+    buf("^g0$", "Go to first tab.",
+        function (w) w:goto_tab(1) end),
+
+    buf("^g$$", "Go to last tab.",
+        function (w) w:goto_tab(-1) end),
+
+    key({"Control"}, "t", "Open a new tab.",
+        function (w) w:new_tab(globals.homepage) end),
+
+    key({"Control"}, "w", "Close current tab.",
+        function (w) w:close_tab() end),
+
+    key({}, "d", "Close current tab (or `[count]` tabs).",
+        function (w, m) for i=1,m.count do w:close_tab() end end, {count=1}),
+
+    key({}, "<", "Reorder tab left `[count=1]` positions.",
+        function (w, m)
+            w.tabs:reorder(w.view, w.tabs:current() - m.count)
+        end, {count=1}),
+
+    key({}, ">", "Reorder tab right `[count=1]` positions.",
+        function (w, m)
+            w.tabs:reorder(w.view,
+                (w.tabs:current() + m.count) % w.tabs:count())
+        end, {count=1}),
+
+    buf("^gH$", "Open homepage in new tab.",
+        function (w) w:new_tab(globals.homepage) end),
+
+    buf("^gh$", "Open homepage.",
+        function (w) w:navigate(globals.homepage) end),
+
+    buf("^gy$", "Duplicate current tab.",
+        function (w) w:new_tab(w.view.history or "") end),
+
+    key({}, "r", "Reload current tab.",
+        function (w) w:reload() end),
+
+    key({}, "R", "Reload current tab (skipping cache).",
+        function (w) w:reload(true) end),
+
+    key({"Control"}, "c", "Stop loading the current tab.",
+        function (w) w.view:stop() end),
+
+    key({"Control", "Shift"}, "R", "Restart luakit (reloading configs).",
+        function (w) w:restart() end),
+
+    -- Window
+    buf("^ZZ$", "Quit and save the session.",
+        function (w) w:save_session() w:close_win() end),
+
+    buf("^ZQ$", "Quit and don't save the session.",
+        function (w) w:close_win() end),
+
+    buf("^D$",  "Quit and don't save the session.",
+        function (w) w:close_win() end),
+
+    -- Enter passthrough mode
+    key({"Control"}, "z",
+        "Enter `passthrough` mode, ignores all luakit keybindings.",
+        function (w) w:set_mode("passthrough") end),
+})
+
+add_binds("insert", {
+    key({"Control"}, "z",
+        "Enter `passthrough` mode, ignores all luakit keybindings.",
+        function (w) w:set_mode("passthrough") end),
+})
+
+readline_bindings = {
+    key({"Shift"}, "Insert",
+        "Insert contents of primary selection at cursor position.",
+        function (w) w:insert_cmd(luakit.selection.primary) end),
+
+    key({"Control"}, "w", "Delete previous word.",
+        function (w) w:del_word() end),
+
+    key({"Control"}, "u", "Delete until beginning of current line.",
+        function (w) w:del_line() end),
+
+    key({"Control"}, "h", "Delete character to the left.",
+        function (w) w:del_backward_char() end),
+
+    key({"Control"}, "d", "Delete character to the right.",
+        function (w) w:del_forward_char() end),
+
+    key({"Control"}, "a", "Move cursor to beginning of current line.",
+        function (w) w:beg_line() end),
+
+    key({"Control"}, "e", "Move cursor to end of current line.",
+        function (w) w:end_line() end),
+
+    key({"Control"}, "f", "Move cursor forward one character.",
+        function (w) w:forward_char() end),
+
+    key({"Control"}, "b", "Move cursor backward one character.",
+        function (w) w:backward_char() end),
+
+    key({"Mod1"}, "f", "Move cursor forward one word.",
+        function (w) w:forward_word() end),
+
+    key({"Mod1"}, "b", "Move cursor backward one word.",
+        function (w) w:backward_word() end),
+}
+
+add_binds({"command", "search"}, readline_bindings)
+
+-- Switching tabs with Mod1+{1,2,3,...}
+mod1binds = {}
+for i=1,10 do
+    table.insert(mod1binds,
+        key({"Mod1"}, tostring(i % 10), "Jump to tab at index "..i..".",
+            function (w) w.tabs:switch(i) end))
+end
+add_binds("normal", mod1binds)
+
+-- Command bindings which are matched in the "command" mode from text
+-- entered into the input bar.
+add_cmds({
+    buf("^%S+!",
+        [[Detect bang syntax in `:command!` and recursively calls
+        `lousy.bind.match_cmd(..)` removing the bang from the command string
+        and setting `bang = true` in the bind opts table.]],
+        function (w, cmd, opts)
+            local cmd, args = string.match(cmd, "^(%S+)!+(.*)")
+            if cmd then
+                opts = join(opts, { bang = true })
+                return lousy.bind.match_cmd(w, opts.binds, cmd .. args, opts)
+            end
+        end),
+
+    cmd("c[lose]", "Close current tab.",
+        function (w) w:close_tab() end),
+
+    cmd("print", "Print current page.",
+        function (w) w.view:eval_js("print()") end),
+
+    cmd("stop", "Stop loading.",
+        function (w) w.view:stop() end),
+
+    cmd("reload", "Reload page",
+        function (w) w:reload() end),
+
+    cmd("restart", "Restart browser (reload config files).",
+        function (w) w:restart() end),
+
+    cmd("write", "Save current session.",
+        function (w) w:save_session() end),
+
+    cmd("noh[lsearch]", "Clear search highlighting.",
+        function (w) w:clear_search() end),
+
+    cmd("back", "Go back in the browser history `[count=1]` items.",
+        function (w, a) w:back(tonumber(a) or 1) end),
+
+    cmd("f[orward]", "Go forward in the browser history `[count=1]` items.",
+        function (w, a) w:forward(tonumber(a) or 1) end),
+
+    cmd("inc[rease]", "Increment last number in URL.",
+        function (w, a) w:navigate(w:inc_uri(tonumber(a) or 1)) end),
+
+    cmd("o[pen]", "Open one or more URLs.",
+        function (w, a) w:navigate(w:search_open(a)) end),
+
+    cmd("t[abopen]", "Open one or more URLs in a new tab.",
+        function (w, a) w:new_tab(w:search_open(a)) end),
+
+    cmd("w[inopen]", "Open one or more URLs in a new window.",
+        function (w, a) window.new{w:search_open(a)} end),
+
+    cmd({"javascript", "js"}, "Evaluate JavaScript snippet.",
+        function (w, a) w.view:eval_js(a) end),
+
+    -- Tab manipulation commands
+    cmd("tab", "Execute command and open result in new tab.",
+        function (w, a) w:new_tab() w:run_cmd(":" .. a) end),
+
+    cmd("tabd[o]", "Execute command in each tab.",
+        function (w, a) w:each_tab(function (v) w:run_cmd(":" .. a) end) end),
+
+    cmd("tabdu[plicate]", "Duplicate current tab.",
+        function (w) w:new_tab(w.view.history) end),
+
+    cmd("tabfir[st]", "Switch to first tab.",
+        function (w) w:goto_tab(1) end),
+
+    cmd("tabl[ast]", "Switch to last tab.",
+        function (w) w:goto_tab(-1) end),
+
+    cmd("tabn[ext]", "Switch to the next tab.",
+        function (w) w:next_tab() end),
+
+    cmd("tabp[revious]", "Switch to the previous tab.",
+        function (w) w:prev_tab() end),
+
+    cmd("q[uit]", "Close the current window.",
+        function (w, a, o) w:close_win(o.bang) end),
+
+    cmd({"viewsource", "vs"}, "View the source code of the current document.",
+        function (w, a, o) w:toggle_source(not o.bang and true or nil) end),
+
+    cmd({"wqall", "wq"}, "Save the session and quit.",
+        function (w, a, o) w:save_session() w:close_win(o.bang) end),
+
+    cmd("lua", "Evaluate Lua snippet.", function (w, a)
+        if a then
+            local ret = assert(
+                loadstring("return function(w) return "..a.." end"))()(w)
+            if ret then print(ret) end
+        else
+            w:set_mode("lua")
+        end
+    end),
+
+    cmd("dump", "Dump current tabs html to file.",
+        function (w, a)
+            local fname = string.gsub(w.win.title, '[^%w%.%-]', '_')..'.html' -- sanitize filename
+            local file = a or luakit.save_file("Save file", w.win, xdg.download_dir or '.', fname)
+            if file then
+                local fd = assert(io.open(file, "w"), "failed to open: " .. file)
+                local html = assert(w.view:eval_js("document.documentElement.outerHTML"), "Unable to get HTML")
+                assert(fd:write(html), "unable to save html")
+                io.close(fd)
+                w:notify("Dumped HTML to: " .. file)
+            end
+        end),
+})
+
+-- vim: et:sw=4:ts=8:sts=4:tw=80

luakit/globals.lua

+-- Global variables for luakit
+globals = {
+    homepage            = "http://duck.cf8.ru/",
+    scroll_step         = 120,
+    zoom_step           = 0.1,
+    max_cmd_history     = 100,
+    max_srch_history    = 100,
+ -- http_proxy          = "http://example.com:3128",
+    default_window_size = "800x600",
+
+ -- Disables loading of hostnames from /etc/hosts (for large host files)
+  load_etc_hosts      = false,
+ -- Disables checking if a filepath exists in search_open function
+ -- check_filepath      = false,
+}
+
+-- Make useragent
+globals.useragent = string.format('Mozilla/5.0 (Windows NT 6.1; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1')
+
+-- Search common locations for a ca file which is used for ssl connection validation.
+local ca_files = {
+    -- $XDG_DATA_HOME/luakit/ca-certificates.crt
+    luakit.data_dir .. "/ca-certificates.crt",
+    "/etc/certs/ca-certificates.crt",
+    "/etc/ssl/certs/ca-certificates.crt",
+}
+-- Use the first ca-file found
+for _, ca_file in ipairs(ca_files) do
+    if os.exists(ca_file) then
+        soup.ssl_ca_file = ca_file
+        break
+    end
+end
+
+-- Change to stop navigation sites with invalid or expired ssl certificates
+soup.ssl_strict = false
+
+-- Set cookie acceptance policy
+cookie_policy = { always = 0, never = 1, no_third_party = 2 }
+soup.accept_policy = cookie_policy.always
+
+-- List of search engines. Each item must contain a single %s which is
+-- replaced by URI encoded search terms. All other occurances of the percent
+-- character (%) may need to be escaped by placing another % before or after
+-- it to avoid collisions with lua's string.format characters.
+-- See: http://www.lua.org/manual/5.1/manual.html#pdf-string.format
+search_engines = {
+    duckduckpage = "http://duck.cf8.ru/?q=%s",
+    duckduckgo  = "https://duckduckgo.com/?q=%s",
+    google      = "http://encrypted.google.com/search?q=%s",
+    wikipedia   = "http://en.wikipedia.org/wiki/Special:Search?search=%s",
+    debbugs     = "http://bugs.debian.org/%s",
+    imdb        = "http://imdb.com/find?s=all&q=%s",
+    sourceforge = "http://sf.net/search/?words=%s",
+}
+
+-- Set google as fallback search engine
+search_engines.default = search_engines.duckduckpage
+-- Use this instead to disable auto-searching
+--search_engines.default = "%s"
+
+-- Per-domain webview properties
+-- See http://webkitgtk.org/reference/webkitgtk/stable/WebKitWebSettings.html
+domain_props = {
+    ["all"] = {
+        enable_private_browsing = false,
+    }
+}
+
+-- vim: et:sw=4:ts=8:sts=4:tw=80
+-----------------------------------------------------------------------
+-- luakit configuration file, more information at http://luakit.org/ --
+-----------------------------------------------------------------------
+
+require "lfs"
+
+if unique then
+    unique.new("org.luakit")
+    -- Check for a running luakit instance
+    if unique.is_running() then
+        if uris[1] then
+            for _, uri in ipairs(uris) do
+                if lfs.attributes(uri) then uri = os.abspath(uri) end
+                unique.send_message("tabopen " .. uri)
+            end
+        else
+            unique.send_message("winopen")
+        end
+        luakit.quit()
+    end
+end
+
+-- Load library of useful functions for luakit
+require "lousy"
+
+-- Small util functions to print output (info prints only when luakit.verbose is true)
+function warn(...) io.stderr:write(string.format(...) .. "\n") end
+function info(...) if luakit.verbose then io.stdout:write(string.format(...) .. "\n") end end
+
+-- Load users global config
+-- ("$XDG_CONFIG_HOME/luakit/globals.lua" or "/etc/xdg/luakit/globals.lua")
+require "globals"
+
+-- Load users theme
+-- ("$XDG_CONFIG_HOME/luakit/theme.lua" or "/etc/xdg/luakit/theme.lua")
+lousy.theme.init(lousy.util.find_config("theme.lua"))
+theme = assert(lousy.theme.get(), "failed to load theme")
+
+-- Load users window class
+-- ("$XDG_CONFIG_HOME/luakit/window.lua" or "/etc/xdg/luakit/window.lua")
+require "window"
+
+-- Load users webview class
+-- ("$XDG_CONFIG_HOME/luakit/webview.lua" or "/etc/xdg/luakit/webview.lua")
+require "webview"
+
+-- Load users mode configuration
+-- ("$XDG_CONFIG_HOME/luakit/modes.lua" or "/etc/xdg/luakit/modes.lua")
+require "modes"
+
+-- Load users keybindings
+-- ("$XDG_CONFIG_HOME/luakit/binds.lua" or "/etc/xdg/luakit/binds.lua")
+require "binds"
+
+----------------------------------
+-- Optional user script loading --
+----------------------------------
+
+require "webinspector"
+
+-- Add sqlite3 cookiejar
+require "cookies"
+
+-- Cookie blocking by domain (extends cookies module)
+-- Add domains to the whitelist at "$XDG_CONFIG_HOME/luakit/cookie.whitelist"
+-- and blacklist at "$XDG_CONFIG_HOME/luakit/cookie.blacklist".
+-- Each domain must be on it's own line and you may use "*" as a
+-- wildcard character (I.e. "*google.com")
+--require "cookie_blocking"
+
+-- Block all cookies by default (unless whitelisted)
+--cookies.default_allow = false
+
+-- Add uzbl-like form filling
+require "formfiller"
+
+-- Add proxy support & manager
+require "proxy"
+
+-- Add quickmarks support & manager
+require "quickmarks"
+
+-- Add session saving/loading support
+require "session"
+
+-- Add command to list closed tabs & bind to open closed tabs
+require "undoclose"
+
+-- Add command to list tab history items
+require "tabhistory"
+
+-- Add greasemonkey-like javascript userscript support
+require "userscripts"
+
+-- Add bookmarks support
+require "bookmarks"
+require "bookmarks_chrome"
+
+-- Add download support
+require "downloads"
+require "downloads_chrome"
+
+-- Example using xdg-open for opening downloads / showing download folders
+--downloads.add_signal("open-file", function (file, mime)
+--    luakit.spawn(string.format("xdg-open %q", file))
+--    return true
+--end)
+
+-- Add vimperator-like link hinting & following
+require "follow"
+
+-- Use a custom charater set for hint labels
+local s = follow.label_styles
+follow.label_maker = s.sort(s.reverse(s.charset("asdfqwerzxcv")))
+
+-- Match only hint labels
+--follow.pattern_maker = follow.pattern_styles.match_label
+
+-- Add command history
+require "cmdhist"
+
+-- Add search mode & binds
+require "search"
+
+-- Add ordering of new tabs
+require "taborder"
+
+-- Save web history
+require "history"
+require "history_chrome"
+
+require "introspector"
+
+-- Add command completion
+require "completion"
+
+-- NoScript plugin, toggle scripts and or plugins on a per-domain basis.
+-- `,ts` to toggle scripts, `,tp` to toggle plugins, `,tr` to reset.
+-- Remove all "enable_scripts" & "enable_plugins" lines from your
+-- domain_props table (in config/globals.lua) as this module will conflict.
+require "noscript"
+
+require "follow_selected"
+require "go_input"
+require "go_next_prev"
+require "go_up"
+
+-----------------------------
+-- End user script loading --
+-----------------------------
+
+-- Restore last saved session
+local w = (session and session.restore())
+if w then
+    for i, uri in ipairs(uris) do
+        w:new_tab(uri, i == 1)
+    end
+else
+    -- Or open new window
+    window.new(uris)
+end
+
+-------------------------------------------
+-- Open URIs from other luakit instances --
+-------------------------------------------
+
+if unique then
+    unique.add_signal("message", function (msg, screen)
+        local cmd, arg = string.match(msg, "^(%S+)%s*(.*)")
+        local w = lousy.util.table.values(window.bywidget)[1]
+        if cmd == "tabopen" then
+            w:new_tab(arg)
+        elseif cmd == "winopen" then
+            w = window.new((arg ~= "") and { arg } or {})
+        end
+        w.win.screen = screen
+        w.win.urgency_hint = true
+    end)
+end
+
+-- vim: et:sw=4:ts=8:sts=4:tw=80
+--------------------------
+-- Default luakit theme --
+--------------------------
+
+local theme = {}
+
+-- Default settings
+theme.font = "Terminus normal 8"
+theme.fg   = "#aaa"
+theme.bg   = "#262626"
+
+-- Genaral colours
+theme.success_fg = "#0f0"
+theme.loaded_fg  = "#33AADD"
+theme.error_fg = "#F00"
+theme.error_bg = "#262626"
+
+-- Warning colours
+theme.warning_fg = "#F00"
+theme.warning_bg = "#262626"
+
+-- Notification colours
+theme.notif_fg = "#444"
+theme.notif_bg = "#262626"
+
+-- Menu colours
+theme.menu_fg                   = "#888888"
+theme.menu_bg                   = "#262626"
+theme.menu_selected_fg          = "#fff"
+theme.menu_selected_bg          = "#444"
+theme.menu_title_bg             = "#262626"
+theme.menu_primary_title_fg     = "#fff"
+theme.menu_secondary_title_fg   = "#666"
+
+-- Proxy manager
+theme.proxy_active_menu_fg      = '#ffffff'
+theme.proxy_active_menu_bg      = '#262626'
+theme.proxy_inactive_menu_fg    = '#aaa'
+theme.proxy_inactive_menu_bg    = '#262626'
+
+-- Statusbar specific
+theme.sbar_fg         = "#aaa"
+theme.sbar_bg         = "#262626"
+
+-- Downloadbar specific
+theme.dbar_fg         = "#aaa"
+theme.dbar_bg         = "#262626"
+theme.dbar_error_fg   = "#F00"
+
+-- Input bar specific
+theme.ibar_fg           = "#aaa"
+theme.ibar_bg           = "#262626"
+
+-- Tab label
+theme.tab_fg            = "#aaa"
+theme.tab_bg            = "#262626"
+theme.tab_ntheme        = "#ddd"
+theme.selected_fg       = "#fff"
+theme.selected_bg       = "#262626"
+theme.selected_ntheme   = "#ddd"
+theme.loading_fg        = "#33AADD"
+theme.loading_bg        = "#262626"
+
+-- Trusted/untrusted ssl colours
+theme.trust_fg          = "#0F0"
+theme.notrust_fg        = "#F00"
+
+return theme
+-- vim: et:sw=4:ts=8:sts=4:tw=80
 endfun
 map <F2> :call RangerChooser()<CR>
 
-au BufWritePost *.coffee silent CoffeeMake! -b | cwindow | redraw!
+"au BufWritePost *.coffee silent CoffeeMake! -b | cwindow | redraw!
 		inotifywait -qe modify $N ;
 		for f in $N;do
 			lessc $f ${f%.*}.css;
-			rm ${f%.*}.min.css;
-			uglifycss ${f%.*}.css > ${f%.*}.min.css;
 		done;
 	done
 }
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.