diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index df49c02f..692ac3cd 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -29,7 +29,7 @@ local naughty = require("naughty") -- text = err }) if ostype == "Linux" then - vicious = require("vicious") + vicious = require("vicious") end @@ -39,25 +39,25 @@ end -- Check if awesome encountered an error during startup and fell back to -- another config (This code will only ever execute for the fallback config) if awesome.startup_errors then - naughty.notify({ preset = naughty.config.presets.critical, - title = "Oops, there were errors during startup!", - text = awesome.startup_errors }) + naughty.notify({ preset = naughty.config.presets.critical, + title = "Oops, there were errors during startup!", + text = awesome.startup_errors }) end -- Handle runtime errors after startup do - local in_error = false - awesome.connect_signal("debug::error", - function (err) - -- Make sure we don't go into an endless error loop - if in_error then return end - in_error = true + local in_error = false + awesome.connect_signal("debug::error", + function (err) + -- Make sure we don't go into an endless error loop + if in_error then return end + in_error = true - naughty.notify({ preset = naughty.config.presets.critical, - title = "Oops, an error happened!", - text = err }) - in_error = false - end) + naughty.notify({ preset = naughty.config.presets.critical, + title = "Oops, an error happened!", + text = err }) + in_error = false + end) end -------------------------------------------------------------------------------- @@ -68,9 +68,9 @@ beautiful.init(awful.util.getdir("config") .. "/themes/custom/theme.lua") -- {{{ Wallpaper if beautiful.wallpaper then - for s = 1, screen.count() do - gears.wallpaper.maximized(beautiful.wallpaper, s, true) - end + for s = 1, screen.count() do + gears.wallpaper.maximized(beautiful.wallpaper, s, true) + end end -- }}} @@ -87,21 +87,21 @@ modkey = "Mod4" -- Table of layouts to cover with awful.layout.inc, order matters. layouts = { - awful.layout.suit.tile, - awful.layout.suit.tile.left, - awful.layout.suit.tile.bottom, - awful.layout.suit.tile.top, - awful.layout.suit.max, - awful.layout.suit.max.fullscreen, - awful.layout.suit.floating + awful.layout.suit.tile, + awful.layout.suit.tile.left, + awful.layout.suit.tile.bottom, + awful.layout.suit.tile.top, + awful.layout.suit.max, + awful.layout.suit.max.fullscreen, + awful.layout.suit.floating } -- Tags -- Define a tag table which hold all screen tags. tags = {} for s = 1, screen.count() do - -- Each screen has its own tag table. - tags[s] = awful.tag({ " 1 ", " 2 "," 3 "," 4 ", " 5 ⚒ ", " 6 ♫ ", "7 ✉ " }, s, layouts[1]) + -- Each screen has its own tag table. + tags[s] = awful.tag({ " 1 ", " 2 "," 3 "," 4 ", " 5 ⚒ ", " 6 ♫ ", "7 ✉ " }, s, layouts[1]) end -------------------------------------------------------------------------------- @@ -124,68 +124,67 @@ batwidget = wibox.widget.textbox() if ostype == "Linux" then - -- CPU - vicious.register(cpuwidget, vicious.widgets.cpu, separator .. 'CPU $1%') + -- CPU + vicious.register(cpuwidget, vicious.widgets.cpu, separator .. 'CPU $1%') - -- Net - -- CHECK: not sure if args["{".. device .." carrier}"] may have values below 0. What do values of the args table mean? - -- Note: we must make sure note to take the loopback interface into account. - local proc = io.popen("ls -1 /sys/class/net | grep -v '^lo$'") - local ifarray = {} - for line in proc:lines() do - table.insert (ifarray, line); - end - proc:close() + -- Net + -- CHECK: not sure if args["{".. device .." carrier}"] may have values below 0. What do values of the args table mean? + -- Note: we must make sure note to take the loopback interface into account. + local proc = io.popen("ls -1 /sys/class/net | grep -v '^lo$'") + local ifarray = {} + for line in proc:lines() do + table.insert (ifarray, line); + end + proc:close() - vicious.register(netwidget, vicious.widgets.net, - function (widget, args) - for _,device in pairs(ifarray) do - value = tonumber(args["{".. device .." carrier}"]) - if value ~= nil and value ~= 0 then - return separator .. '↓' .. args["{" .. device .. " down_kb}"] .. ' ↑' .. args["{" .. device .. " up_kb}"] .. '' - end - end - return "" - end, 3) + vicious.register(netwidget, vicious.widgets.net, function (widget, args) + for _,device in pairs(ifarray) do + value = tonumber(args["{".. device .." carrier}"]) + if value ~= nil and value ~= 0 then + return separator .. '↓' .. args["{" .. device .. " down_kb}"] .. ' ↑' .. args["{" .. device .. " up_kb}"] .. '' + end + end + return "" + end, 3) - -- Volume - vicious.register(volmwidget, vicious.widgets.volume, separator .. "Master $1% $2 ", 1, "Master") - -- PCM may not be available all the time on every machine. If PCM is toggled - -- after awesome has been started, you'll need to reload the configuration. - -- If 'amixer' is not installed, status will never display. - local volpf = io.popen("amixer | grep PCM 2>/dev/null") - local volpl = volpf:read("*a") - volpf:close() - if volpl ~= "" then - volpwidget = wibox.widget.textbox() - vicious.register(volpwidget, vicious.widgets.volume, "PCM $1%", 1, "PCM") - end + -- Volume + vicious.register(volmwidget, vicious.widgets.volume, separator .. "Master $1% $2 ", 1, "Master") + -- PCM may not be available all the time on every machine. If PCM is toggled + -- after awesome has been started, you'll need to reload the configuration. + -- If 'amixer' is not installed, status will never display. + local volpf = io.popen("amixer | grep PCM 2>/dev/null") + local volpl = volpf:read("*a") + volpf:close() + if volpl ~= "" then + volpwidget = wibox.widget.textbox() + vicious.register(volpwidget, vicious.widgets.volume, "PCM $1%", 1, "PCM") + end - -- Battery - local batf = io.popen("ls '/sys/class/power_supply' 2>/dev/null") - local batl = batf:read("*a") - local batlimit = 10 - if batl ~= "" then - --{{ Simple version (perf friendly) - -- vicious.register(batwidget, vicious.widgets.bat, '$2%$1$3 | ', 60, "BAT0") - --{{ Complex version (time warning) - -- This functions changes the status color when batlimit is reached. - vicious.register(batwidget, vicious.widgets.bat, - function (widget, args) - -- We check if time is displayed (otherwise it's 'N/A'), and if minutes are less than limit. - if args[1] == "-" - and string.len(args[3]) == 5 - and tonumber(string.sub(args[3],1,2)) == 0 - and tonumber(string.sub(args[3],4,5)) <= batlimit - then - return separator .. '' .. args[2] .. '%' .. args[1] .. args[3] .. '' - else - return separator .. '' .. args[2] .. '%' .. args[1] .. args[3] .. '' - end - end, - 60, "BAT0") - end - batf:close() + -- Battery + local batf = io.popen("ls '/sys/class/power_supply' 2>/dev/null") + local batl = batf:read("*a") + local batlimit = 10 + if batl ~= "" then + --{{ Simple version (perf friendly) + -- vicious.register(batwidget, vicious.widgets.bat, '$2%$1$3 | ', 60, "BAT0") + --{{ Complex version (time warning) + -- This functions changes the status color when batlimit is reached. + vicious.register(batwidget, vicious.widgets.bat, + function (widget, args) + -- We check if time is displayed (otherwise it's 'N/A'), and if minutes are less than limit. + if args[1] == "-" + and string.len(args[3]) == 5 + and tonumber(string.sub(args[3],1,2)) == 0 + and tonumber(string.sub(args[3],4,5)) <= batlimit + then + return separator .. '' .. args[2] .. '%' .. args[1] .. args[3] .. '' + else + return separator .. '' .. args[2] .. '%' .. args[1] .. args[3] .. '' + end + end, + 60, "BAT0") + end + batf:close() end -- Create a wibox for each screen and add it @@ -194,101 +193,100 @@ mypromptbox = {} mylayoutbox = {} mytaglist = {} mytaglist.buttons = awful.util.table.join( - awful.button({ }, 1, awful.tag.viewonly), - awful.button({ modkey }, 1, awful.client.movetotag), - awful.button({ }, 3, awful.tag.viewtoggle), - awful.button({ modkey }, 3, awful.client.toggletag), - awful.button({ }, 4, function(t) awful.tag.viewnext(awful.tag.getscreen(t)) end), - awful.button({ }, 5, function(t) awful.tag.viewprev(awful.tag.getscreen(t)) end) - ) + awful.button({ }, 1, awful.tag.viewonly), + awful.button({ modkey }, 1, awful.client.movetotag), + awful.button({ }, 3, awful.tag.viewtoggle), + awful.button({ modkey }, 3, awful.client.toggletag), + awful.button({ }, 4, function(t) awful.tag.viewnext(awful.tag.getscreen(t)) end), + awful.button({ }, 5, function(t) awful.tag.viewprev(awful.tag.getscreen(t)) end) +) mytasklist = {} mytasklist.buttons = awful.util.table.join( - awful.button({ }, 1, - function (c) - if c == client.focus then - c.minimized = true - else - -- Without this, the following - -- :isvisible() makes no sense - c.minimized = false - if not c:isvisible() then - awful.tag.viewonly(c:tags()[1]) - end - -- This will also un-minimize - -- the client, if needed - client.focus = c - c:raise() - end - end), + awful.button({ }, 1, function (c) + if c == client.focus then + c.minimized = true + else + -- Without this, the following + -- :isvisible() makes no sense + c.minimized = false + if not c:isvisible() then + awful.tag.viewonly(c:tags()[1]) + end + -- This will also un-minimize + -- the client, if needed + client.focus = c + c:raise() + end + end), - awful.button({ }, 3, - function () - if instance then - instance:hide() - instance = nil - else - instance = awful.menu.clients({ width=250 }) - end - end), + awful.button({ }, 3, + function () + if instance then + instance:hide() + instance = nil + else + instance = awful.menu.clients({ width=250 }) + end + end), - awful.button({ }, 4, - function () - awful.client.focus.byidx(1) - if client.focus then client.focus:raise() end - end), + awful.button({ }, 4, + function () + awful.client.focus.byidx(1) + if client.focus then client.focus:raise() end + end), - awful.button({ }, 5, - function () - awful.client.focus.byidx(-1) - if client.focus then client.focus:raise() end - end)) + awful.button({ }, 5, + function () + awful.client.focus.byidx(-1) + if client.focus then client.focus:raise() end +end)) for s = 1, screen.count() do - -- Create a promptbox for each screen - mypromptbox[s] = awful.widget.prompt() + -- Create a promptbox for each screen + mypromptbox[s] = awful.widget.prompt() - -- Create an imagebox widget which will contains an icon indicating which layout we're using. - -- We need one layoutbox per screen. - mylayoutbox[s] = awful.widget.layoutbox(s) - mylayoutbox[s]:buttons(awful.util.table.join( - awful.button({ }, 1, function () awful.layout.inc(layouts, 1) end), - awful.button({ }, 3, function () awful.layout.inc(layouts, -1) end), - awful.button({ }, 4, function () awful.layout.inc(layouts, 1) end), - awful.button({ }, 5, function () awful.layout.inc(layouts, -1) end))) - -- Create a taglist widget - mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.filter.all, mytaglist.buttons) + -- Create an imagebox widget which will contains an icon indicating which layout we're using. + -- We need one layoutbox per screen. + mylayoutbox[s] = awful.widget.layoutbox(s) + mylayoutbox[s]:buttons(awful.util.table.join( + awful.button({ }, 1, function () awful.layout.inc(layouts, 1) end), + awful.button({ }, 3, function () awful.layout.inc(layouts, -1) end), + awful.button({ }, 4, function () awful.layout.inc(layouts, 1) end), + awful.button({ }, 5, function () awful.layout.inc(layouts, -1) end))) + -- Create a taglist widget + mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.filter.all, mytaglist.buttons) - -- Create a tasklist widget - mytasklist[s] = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons) + -- Create a tasklist widget + mytasklist[s] = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons) - -- Create the wibox - mywibox[s] = awful.wibox({ position = "top", screen = s }) + -- Create the wibox + mywibox[s] = awful.wibox({ position = "top", screen = s }) - -- Widgets that are aligned to the left - local left_layout = wibox.layout.fixed.horizontal() - left_layout:add(mylayoutbox[s]) - left_layout:add(mytaglist[s]) - left_layout:add(mypromptbox[s]) + -- Widgets that are aligned to the left + local left_layout = wibox.layout.fixed.horizontal() + left_layout:add(mylayoutbox[s]) + left_layout:add(mytaglist[s]) + left_layout:add(mypromptbox[s]) - -- Widgets that are aligned to the right - local right_layout = wibox.layout.fixed.horizontal() - right_layout:add(batwidget) - right_layout:add(volmwidget) - right_layout:add(volpwidget) - right_layout:add(netwidget) - right_layout:add(cpuwidget) - right_layout:add(separator_date) - right_layout:add(mytextclock) - if s == 1 then right_layout:add(wibox.widget.systray()) end + -- Widgets that are aligned to the right + local right_layout = wibox.layout.fixed.horizontal() + right_layout:add(batwidget) + right_layout:add(volmwidget) + right_layout:add(volpwidget) + right_layout:add(netwidget) + right_layout:add(cpuwidget) + right_layout:add(separator_date) + right_layout:add(mytextclock) + if s == 1 then right_layout:add(wibox.widget.systray()) end - -- Now bring it all together (with the tasklist in the middle) - local layout = wibox.layout.align.horizontal() - layout:set_left(left_layout) - layout:set_middle(mytasklist[s]) - layout:set_right(right_layout) + -- Now bring it all together (with the tasklist in the middle) + local layout = wibox.layout.align.horizontal() + layout:set_left(left_layout) + layout:set_middle(mytasklist[s]) + layout:set_right(right_layout) - mywibox[s]:set_widget(layout) + mywibox[s]:set_widget(layout) end -------------------------------------------------------------------------------- @@ -303,17 +301,17 @@ local moveMouseOnStartup = true -- Simple function to move the mouse to the coordinates set above. local function moveMouseAway(x_co, y_co) - mouse.coords({ x=x_co, y=y_co }) + mouse.coords({ x=x_co, y=y_co }) end local function moveMouse(x_co, y_co) - t=mouse.coords() - mouse.coords( {x = t.x + x_co, y = t.y + y_co} ) + t=mouse.coords() + mouse.coords( {x = t.x + x_co, y = t.y + y_co} ) end -- Optionally move the mouse when rc.lua is read (startup) if moveMouseOnStartup then - moveMouseAway(safeCoords.x, safeCoords.y) + moveMouseAway(safeCoords.x, safeCoords.y) end -------------------------------------------------------------------------------- @@ -326,240 +324,233 @@ termcmd = term .. " -e " home = os.getenv("HOME") globalkeys = awful.util.table.join( - -- Terminal - awful.key({ modkey, }, "Return", function () awful.util.spawn(term) end), - awful.key({ }, "XF86Terminal", function () awful.util.spawn(term) end), + -- Terminal + awful.key({ modkey, }, "Return", function () awful.util.spawn(term) end), + awful.key({ }, "XF86Terminal", function () awful.util.spawn(term) end), - -- Calc - awful.key({ modkey, }, "b", function () awful.util.spawn(termcmd .. "calc") end), - awful.key({ }, "XF86Calculator", function () awful.util.spawn(termcmd .. "calc") end), + -- Calc + awful.key({ modkey, }, "b", function () awful.util.spawn(termcmd .. "calc") end), + awful.key({ }, "XF86Calculator", function () awful.util.spawn(termcmd .. "calc") end), - -- Editor - awful.key({ modkey, }, "e", function () awful.util.spawn(os.getenv("EDITOR")) end), + -- Editor + awful.key({ modkey, }, "e", function () awful.util.spawn(os.getenv("EDITOR")) end), - -- Directory browser - awful.key({ modkey, }, "d", function () awful.util.spawn("browser-autostart") end), - awful.key({ }, "XF86Explorer", function () awful.util.spawn("browser-autostart") end), - awful.key({ }, "XF86MyComputer", function () awful.util.spawn("browser-autostart") end), + -- Directory browser + awful.key({ modkey, }, "d", function () awful.util.spawn("browser-autostart") end), + awful.key({ }, "XF86Explorer", function () awful.util.spawn("browser-autostart") end), + awful.key({ }, "XF86MyComputer", function () awful.util.spawn("browser-autostart") end), - -- Screen lock. xlockmore is useful for LDAP login because slock does not work with it. - awful.key({ modkey, }, "s", function () awful.util.spawn_with_shell("xlock 2>/dev/null || slock") end), - awful.key({ }, "XF86ScreenSaver", function () awful.util.spawn_with_shell("xlock 2>/dev/null || slock") end), - awful.key({ }, "XF86Sleep", function () awful.util.spawn_with_shell("xlock 2>/dev/null || slock") end), - awful.key({ }, "XF86Standby", function () awful.util.spawn_with_shell("xlock 2>/dev/null || slock") end), + -- Screen lock. xlockmore is useful for LDAP login because slock does not work with it. + awful.key({ modkey, }, "s", function () awful.util.spawn_with_shell("xlock 2>/dev/null || slock") end), + awful.key({ }, "XF86ScreenSaver", function () awful.util.spawn_with_shell("xlock 2>/dev/null || slock") end), + awful.key({ }, "XF86Sleep", function () awful.util.spawn_with_shell("xlock 2>/dev/null || slock") end), + awful.key({ }, "XF86Standby", function () awful.util.spawn_with_shell("xlock 2>/dev/null || slock") end), - -- PDF Reader - awful.key({ modkey, }, "p", function () awful.util.spawn("zathura") end), + -- PDF Reader + awful.key({ modkey, }, "p", function () awful.util.spawn("zathura") end), - -- Mail user agent - awful.key({ modkey, }, "m", function () awful.util.spawn(termcmd .. "mutt") end), - awful.key({ }, "XF86Mail", function () awful.util.spawn(termcmd .. "mutt") end), + -- Mail user agent + awful.key({ modkey, }, "m", function () awful.util.spawn(termcmd .. "mutt") end), + awful.key({ }, "XF86Mail", function () awful.util.spawn(termcmd .. "mutt") end), - -- Web browser - awful.key({ modkey, }, "w", function () awful.util.spawn_with_shell("dwb 2>>/tmp/dwb" .. uid .. ".log") end), - awful.key({ }, "XF86WWW", function () awful.util.spawn_with_shell("dwb 2>>/tmp/dwb" .. uid .. ".log") end), + -- Web browser + awful.key({ modkey, }, "w", function () awful.util.spawn_with_shell("dwb 2>>/tmp/dwb" .. uid .. ".log") end), + awful.key({ }, "XF86WWW", function () awful.util.spawn_with_shell("dwb 2>>/tmp/dwb" .. uid .. ".log") end), - -- Music player - awful.key({ modkey, }, "a", function () awful.util.spawn(termcmd .. "cmus") end), - awful.key({ modkey, "Mod1" }, "a", function () awful.util.spawn("cmus-remote -u") end), - awful.key({ modkey, "Shift" }, "a", function () awful.util.spawn("cmus-remote -n") end), - awful.key({ modkey, "Control" }, "a", function () awful.util.spawn("cmus-remote -r") end), + -- Music player + awful.key({ modkey, }, "a", function () awful.util.spawn(termcmd .. "cmus") end), + awful.key({ modkey, "Mod1" }, "a", function () awful.util.spawn("cmus-remote -u") end), + awful.key({ modkey, "Shift" }, "a", function () awful.util.spawn("cmus-remote -n") end), + awful.key({ modkey, "Control" }, "a", function () awful.util.spawn("cmus-remote -r") end), - awful.key({ }, "XF86AudioMedia", function () awful.util.spawn(termcmd .. "cmus") end), - awful.key({ }, "XF86AudioPlay", function () awful.util.spawn("cmus-remote -u") end), - awful.key({ }, "XF86AudioNext", function () awful.util.spawn("cmus-remote -n") end), - awful.key({ }, "XF86AudioPrev", function () awful.util.spawn("cmus-remote -r") end), + awful.key({ }, "XF86AudioMedia", function () awful.util.spawn(termcmd .. "cmus") end), + awful.key({ }, "XF86AudioPlay", function () awful.util.spawn("cmus-remote -u") end), + awful.key({ }, "XF86AudioNext", function () awful.util.spawn("cmus-remote -n") end), + awful.key({ }, "XF86AudioPrev", function () awful.util.spawn("cmus-remote -r") end), - -- Screenshot - -- Using $HOME in command line does not work for scrot. - awful.key({}, "Print", function () awful.util.spawn("scrot '" .. home .. "/temp/screen-%Y-%m-%d-%H%M%S.png'") end), + -- Screenshot + -- Using $HOME in command line does not work for scrot. + awful.key({}, "Print", function () awful.util.spawn("scrot '" .. home .. "/temp/screen-%Y-%m-%d-%H%M%S.png'") end), - -- Screenshot - awful.key({ modkey }, "t", function () awful.util.spawn("todo") end), + -- Screenshot + awful.key({ modkey }, "t", function () awful.util.spawn("todo") end), - -- Touchpad - awful.key({ }, "XF86TouchpadToggle", function () os.execute("synclient TouchpadOff=`synclient -l | grep -c 'TouchpadOff.*=.*0'`") end), - awful.key({ }, "XF86Tools", function () os.execute("synclient TouchpadOff=`synclient -l | grep -c 'TouchpadOff.*=.*0'`") end), + -- Touchpad + awful.key({ }, "XF86TouchpadToggle", function () os.execute("synclient TouchpadOff=`synclient -l | grep -c 'TouchpadOff.*=.*0'`") end), + awful.key({ }, "XF86Tools", function () os.execute("synclient TouchpadOff=`synclient -l | grep -c 'TouchpadOff.*=.*0'`") end), - -- Mouse control - -- Bind ''Meta4+Ctrl+m'' to move the mouse to the coordinates set above. - -- This is useful if you needed the mouse for something and now want it out of the way. - awful.key({ modkey, "Control" }, "m", function() moveMouseAway(safeCoords.x, safeCoords.y) end), + -- Mouse control + -- Bind ''Meta4+Ctrl+m'' to move the mouse to the coordinates set above. + -- This is useful if you needed the mouse for something and now want it out of the way. + awful.key({ modkey, "Control" }, "m", function() moveMouseAway(safeCoords.x, safeCoords.y) end), - -------------------------------------------------------------------------------- - -- Awesome specific - -------------------------------------------------------------------------------- + -------------------------------------------------------------------------------- + -- Awesome specific + -------------------------------------------------------------------------------- - -- Standard program - awful.key({ modkey, "Control" }, "r", awesome.restart), - -- awful.key({ modkey, "Shift" }, "q", awesome.quit), + -- Standard program + awful.key({ modkey, "Control" }, "r", awesome.restart), + -- awful.key({ modkey, "Shift" }, "q", awesome.quit), - -- Tags - awful.key({ modkey }, "Prior", awful.tag.viewprev ), - awful.key({ modkey }, "Next", awful.tag.viewnext ), - awful.key({ modkey }, "Escape", awful.tag.history.restore), + -- Tags + awful.key({ modkey }, "Prior", awful.tag.viewprev ), + awful.key({ modkey }, "Next", awful.tag.viewnext ), + awful.key({ modkey }, "Escape", awful.tag.history.restore), - -- Layout select and switch - awful.key({ modkey }, "l", function () awful.client.swap.byidx( 1) end), - awful.key({ modkey }, "h", function () awful.client.swap.byidx( -1) end), - -- awful.key({ modkey, }, "u", awful.client.urgent.jumpto), - awful.key({ modkey }, "Tab", - function () - awful.client.focus.history.previous() - if client.focus then - client.focus:raise() - end - end), + -- Layout select and switch + awful.key({ modkey }, "l", function () awful.client.swap.byidx( 1) end), + awful.key({ modkey }, "h", function () awful.client.swap.byidx( -1) end), + -- awful.key({ modkey, }, "u", awful.client.urgent.jumpto), + awful.key({ modkey }, "Tab", function () + awful.client.focus.history.previous() + if client.focus then + client.focus:raise() + end + end), - awful.key({ modkey }, "k", - function () - awful.client.focus.byidx( 1) - if client.focus then client.focus:raise() end - end), - awful.key({ modkey }, "j", - function () - awful.client.focus.byidx(-1) - if client.focus then client.focus:raise() end - end), + awful.key({ modkey }, "k", + function () + awful.client.focus.byidx( 1) + if client.focus then client.focus:raise() end + end), + awful.key({ modkey }, "j", + function () + awful.client.focus.byidx(-1) + if client.focus then client.focus:raise() end + end), - -- Layout resize - awful.key({ modkey, "Mod1" }, "h", function () awful.tag.incmwfact(-0.05) end), - awful.key({ modkey, "Mod1" }, "l", function () awful.tag.incmwfact(0.05) end), - awful.key({ modkey, "Mod1" }, "k", function () awful.client.incwfact(0.05) end), - awful.key({ modkey, "Mod1" }, "j", function () awful.client.incwfact(-0.05) end), + -- Layout resize + awful.key({ modkey, "Mod1" }, "h", function () awful.tag.incmwfact(-0.05) end), + awful.key({ modkey, "Mod1" }, "l", function () awful.tag.incmwfact(0.05) end), + awful.key({ modkey, "Mod1" }, "k", function () awful.client.incwfact(0.05) end), + awful.key({ modkey, "Mod1" }, "j", function () awful.client.incwfact(-0.05) end), - -- Layout organization - awful.key({ modkey, "Control" }, "Left", function () awful.tag.incnmaster( 1) end), - awful.key({ modkey, "Control" }, "Right", function () awful.tag.incnmaster(-1) end), - awful.key({ modkey, "Control" }, "Up", function () awful.tag.incncol( 1) end), - awful.key({ modkey, "Control" }, "Down", function () awful.tag.incncol(-1) end), + -- Layout organization + awful.key({ modkey, "Control" }, "Left", function () awful.tag.incnmaster( 1) end), + awful.key({ modkey, "Control" }, "Right", function () awful.tag.incnmaster(-1) end), + awful.key({ modkey, "Control" }, "Up", function () awful.tag.incncol( 1) end), + awful.key({ modkey, "Control" }, "Down", function () awful.tag.incncol(-1) end), - awful.key({ modkey, }, "space", function () awful.layout.inc(layouts, 1) end), - awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(layouts, -1) end), + awful.key({ modkey, }, "space", function () awful.layout.inc(layouts, 1) end), + awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(layouts, -1) end), - -- Multi screen - awful.key({ modkey, "Control" }, "Next", function () awful.screen.focus_relative( 1) end), - awful.key({ modkey, "Control" }, "Prior", function () awful.screen.focus_relative(-1) end), + -- Multi screen + awful.key({ modkey, "Control" }, "Next", function () awful.screen.focus_relative( 1) end), + awful.key({ modkey, "Control" }, "Prior", function () awful.screen.focus_relative(-1) end), - -- Prompt - awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end), + -- Prompt + awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end), - -- Lua code - awful.key({ modkey }, "x", - function () - awful.prompt.run({ prompt = "Run Lua code: " }, - mypromptbox[mouse.screen].widget, - awful.util.eval, nil, - awful.util.getdir("cache") .. "/history_eval") - end) + -- Lua code + awful.key({ modkey }, "x", function () + awful.prompt.run({ prompt = "Run Lua code: " }, + mypromptbox[mouse.screen].widget, + awful.util.eval, nil, + awful.util.getdir("cache") .. "/history_eval") + end) ) -- Sound Volume if ostype == "Linux" then - globalkeys = awful.util.table.join (globalkeys, - awful.key({ modkey, }, "KP_Subtract", function () awful.util.spawn("amixer set Master 5%- >/dev/null") end), - awful.key({ modkey, }, "KP_Add", function () awful.util.spawn("amixer set Master 5%+ >/dev/null") end), - awful.key({ modkey, }, "KP_Enter", function () awful.util.spawn("amixer set Master toggle >/dev/null") end), - awful.key({ modkey, "Mod1" }, "KP_Subtract", function () awful.util.spawn("amixer set PCM 5%- >/dev/null") end), - awful.key({ modkey, "Mod1" }, "KP_Add", function () awful.util.spawn("amixer set PCM 5%+ >/dev/null") end), + globalkeys = awful.util.table.join (globalkeys, + awful.key({ modkey, }, "KP_Subtract", function () awful.util.spawn("amixer set Master 5%- >/dev/null") end), + awful.key({ modkey, }, "KP_Add", function () awful.util.spawn("amixer set Master 5%+ >/dev/null") end), + awful.key({ modkey, }, "KP_Enter", function () awful.util.spawn("amixer set Master toggle >/dev/null") end), + awful.key({ modkey, "Mod1" }, "KP_Subtract", function () awful.util.spawn("amixer set PCM 5%- >/dev/null") end), + awful.key({ modkey, "Mod1" }, "KP_Add", function () awful.util.spawn("amixer set PCM 5%+ >/dev/null") end), - awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("amixer set Master 5%+ >/dev/null") end), - awful.key({ }, "XF86AudioLowerVolume", function () awful.util.spawn("amixer set Master 5%- >/dev/null") end), - awful.key({ }, "XF86AudioMute", function () awful.util.spawn("amixer set Master toggle >/dev/null") end), - awful.key({ "Mod1" }, "XF86AudioRaiseVolume", function () awful.util.spawn("amixer set PCM 5%+ >/dev/null") end), - awful.key({ "Mod1" }, "XF86AudioLowerVolume", function () awful.util.spawn("amixer set PCM 5%- >/dev/null") end) - ) + awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("amixer set Master 5%+ >/dev/null") end), + awful.key({ }, "XF86AudioLowerVolume", function () awful.util.spawn("amixer set Master 5%- >/dev/null") end), + awful.key({ }, "XF86AudioMute", function () awful.util.spawn("amixer set Master toggle >/dev/null") end), + awful.key({ "Mod1" }, "XF86AudioRaiseVolume", function () awful.util.spawn("amixer set PCM 5%+ >/dev/null") end), + awful.key({ "Mod1" }, "XF86AudioLowerVolume", function () awful.util.spawn("amixer set PCM 5%- >/dev/null") end) + ) elseif ostype == "FreeBSD" then - globalkeys = awful.util.table.join (globalkeys, - awful.key({ modkey, }, "KP_Subtract", function () awful.util.spawn("mixer vol -5 >/dev/null") end), - awful.key({ modkey, }, "KP_Add", function () awful.util.spawn("mixer vol +5 >/dev/null") end), - awful.key({ modkey, }, "KP_Enter", function () awful.util.spawn("mixer vol ^ >/dev/null") end), - awful.key({ modkey, "Mod1" }, "KP_Subtract", function () awful.util.spawn("mixer pcm -5 >/dev/null") end), - awful.key({ modkey, "Mod1" }, "KP_Add", function () awful.util.spawn("mixer pcm +5 >/dev/null") end), + globalkeys = awful.util.table.join (globalkeys, + awful.key({ modkey, }, "KP_Subtract", function () awful.util.spawn("mixer vol -5 >/dev/null") end), + awful.key({ modkey, }, "KP_Add", function () awful.util.spawn("mixer vol +5 >/dev/null") end), + awful.key({ modkey, }, "KP_Enter", function () awful.util.spawn("mixer vol ^ >/dev/null") end), + awful.key({ modkey, "Mod1" }, "KP_Subtract", function () awful.util.spawn("mixer pcm -5 >/dev/null") end), + awful.key({ modkey, "Mod1" }, "KP_Add", function () awful.util.spawn("mixer pcm +5 >/dev/null") end), - awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("mixer vol -5 >/dev/null") end), - awful.key({ }, "XF86AudioLowerVolume", function () awful.util.spawn("mixer vol +5 >/dev/null") end), - awful.key({ }, "XF86AudioMute", function () awful.util.spawn("mixer vol ^ >/dev/null") end), - awful.key({ "Mod1" }, "XF86AudioRaiseVolume", function () awful.util.spawn("mixer pcm -5 >/dev/null") end), - awful.key({ "Mod1" }, "XF86AudioLowerVolume", function () awful.util.spawn("mixer pcm +5 >/dev/null") end) - ) + awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("mixer vol -5 >/dev/null") end), + awful.key({ }, "XF86AudioLowerVolume", function () awful.util.spawn("mixer vol +5 >/dev/null") end), + awful.key({ }, "XF86AudioMute", function () awful.util.spawn("mixer vol ^ >/dev/null") end), + awful.key({ "Mod1" }, "XF86AudioRaiseVolume", function () awful.util.spawn("mixer pcm -5 >/dev/null") end), + awful.key({ "Mod1" }, "XF86AudioLowerVolume", function () awful.util.spawn("mixer pcm +5 >/dev/null") end) + ) end -- Client keys clientkeys = awful.util.table.join( - awful.key({ modkey, }, "f", function (c) c.fullscreen = not c.fullscreen end), - awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end), - awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ), - awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end), - awful.key({ modkey, }, "o", awful.client.movetoscreen ), - -- awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end), + awful.key({ modkey, }, "f", function (c) c.fullscreen = not c.fullscreen end), + awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end), + awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ), + awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end), + awful.key({ modkey, }, "o", awful.client.movetoscreen ), + -- awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end), - awful.key({ modkey, "Mod1" }, "m", - function (c) - c.maximized_horizontal = not c.maximized_horizontal - c.maximized_vertical = not c.maximized_vertical - end) - ) + awful.key({ modkey, "Mod1" }, "m", function (c) + c.maximized_horizontal = not c.maximized_horizontal + c.maximized_vertical = not c.maximized_vertical + end) +) -- Compute the maximum number of digit we need, limited to 9 keynumber = 0 for s = 1, screen.count() do - keynumber = math.min(9, math.max(#tags[s], keynumber)) + keynumber = math.min(9, math.max(#tags[s], keynumber)) end -- Bind all key numbers to tags. -- Be careful: we use keycodes to make it works on any keyboard layout. -- This should map on the top row of your keyboard, usually 1 to 9. for i = 1, keynumber do - globalkeys = awful.util.table.join( - globalkeys, + globalkeys = awful.util.table.join( + globalkeys, - awful.key({ modkey }, "#" .. i + 9, - function () - local screen = mouse.screen - if tags[screen][i] then - awful.tag.viewonly(tags[screen][i]) - end - end), + awful.key({ modkey }, "#" .. i + 9, function () + local screen = mouse.screen + if tags[screen][i] then + awful.tag.viewonly(tags[screen][i]) + end + end), - awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, - function () - local screen = mouse.screen - if tags[screen][i] then - awful.tag.viewtoggle(tags[screen][i]) - end - end), + awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, function () + local screen = mouse.screen + if tags[screen][i] then + awful.tag.viewtoggle(tags[screen][i]) + end + end), - awful.key({ modkey, "Mod1" }, "#" .. i + 9, - function () - if client.focus then - local tag = awful.tag.gettags(client.focus.screen)[i] - if tag then - awful.client.movetotag(tag) - end - end - end), + awful.key({ modkey, "Mod1" }, "#" .. i + 9, function () + if client.focus then + local tag = awful.tag.gettags(client.focus.screen)[i] + if tag then + awful.client.movetotag(tag) + end + end + end), - -- Multi screen - awful.key({ modkey, "Control" }, "#" .. i + 9, - function () - if client.focus then - if tags[client.focus.screen+1] and tags[client.focus.screen+1][i] then - awful.client.movetotag(tags[client.focus.screen+1][i]) - elseif tags[1][i] then - awful.client.movetotag(tags[1][i]) - end - end - end) - ) + -- Multi screen + awful.key({ modkey, "Control" }, "#" .. i + 9, function () + if client.focus then + if tags[client.focus.screen+1] and tags[client.focus.screen+1][i] then + awful.client.movetotag(tags[client.focus.screen+1][i]) + elseif tags[1][i] then + awful.client.movetotag(tags[1][i]) + end + end + end) + ) end clientbuttons = awful.util.table.join( - awful.button({ }, 1, function (c) client.focus = c; c:raise() end), - awful.button({ modkey }, 1, awful.mouse.client.move), - awful.button({ modkey }, 3, awful.mouse.client.resize)) + awful.button({ }, 1, function (c) client.focus = c; c:raise() end), + awful.button({ modkey }, 1, awful.mouse.client.move), + awful.button({ modkey }, 3, awful.mouse.client.resize)) -- Set keys root.keys(globalkeys) @@ -569,53 +560,53 @@ root.keys(globalkeys) -------------------------------------------------------------------------------- awful.rules.rules = { - -- All clients will match this rule. - { rule = { }, - properties = { border_width = beautiful.border_width, - border_color = beautiful.border_normal, - size_hints_honor = false, - focus = awful.client.focus.filter, - -- focus = true, - keys = clientkeys, - buttons = clientbuttons } }, + -- All clients will match this rule. + { rule = { }, + properties = { border_width = beautiful.border_width, + border_color = beautiful.border_normal, + size_hints_honor = false, + focus = awful.client.focus.filter, + -- focus = true, + keys = clientkeys, + buttons = clientbuttons } }, - { rule = { class = "MPlayer" }, - properties = { floating = true } }, - { rule = { class = "mplayer2" }, - properties = { floating = true } }, - { rule = { class = "mpv" }, - properties = { floating = true } }, - { rule = { class = "pinentry" }, - properties = { floating = true } }, - { rule = { class = "Steam" }, - properties = { floating = true } }, - { rule = { name = "QEMU" }, - properties = { floating = true } }, + { rule = { class = "MPlayer" }, + properties = { floating = true } }, + { rule = { class = "mplayer2" }, + properties = { floating = true } }, + { rule = { class = "mpv" }, + properties = { floating = true } }, + { rule = { class = "pinentry" }, + properties = { floating = true } }, + { rule = { class = "Steam" }, + properties = { floating = true } }, + { rule = { name = "QEMU" }, + properties = { floating = true } }, - -- Flash workaround. Does not work? - { rule = { instance = "plugin-container" }, - properties = { floating = true } }, + -- Flash workaround. Does not work? + { rule = { instance = "plugin-container" }, + properties = { floating = true } }, - { rule = { instance = "exe" }, - properties = { floating = true } }, + { rule = { instance = "exe" }, + properties = { floating = true } }, - -- Only works for terminal with WM_COMMAND property? - -- Does not work with LXTerminal. - { rule = { name = "cmus" }, - properties = { tag = tags[1][6] } }, - { rule = { name = "mutt" }, - properties = { tag = tags[1][7] } }, + -- Only works for terminal with WM_COMMAND property? + -- Does not work with LXTerminal. + { rule = { name = "cmus" }, + properties = { tag = tags[1][6] } }, + { rule = { name = "mutt" }, + properties = { tag = tags[1][7] } }, - -- { rule = { class = "Gimp" }, - -- properties = { floating = false } }, + -- { rule = { class = "Gimp" }, + -- properties = { floating = false } }, - -- Emacs Speedbar. This does not work when Speedbar is first launched, - -- because its frame is called "emacs...", not speedbar. It only works when - -- 'speedbar' command is issued thereafter. Use 'C-x z z' after the first - -- speedbar call to automate this. - { rule = { name = "Speedbar 1.0" }, - callback = function( c ) awful.tag.setmwfact(0.15) end }, + -- Emacs Speedbar. This does not work when Speedbar is first launched, + -- because its frame is called "emacs...", not speedbar. It only works when + -- 'speedbar' command is issued thereafter. Use 'C-x z z' after the first + -- speedbar call to automate this. + { rule = { name = "Speedbar 1.0" }, + callback = function( c ) awful.tag.setmwfact(0.15) end }, } -------------------------------------------------------------------------------- @@ -624,63 +615,63 @@ awful.rules.rules = { -- Signal function to execute when a new client appears. client.connect_signal("manage", function (c, startup) - -- Enable sloppy focus - c:connect_signal("mouse::enter", function(c) - if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier - and awful.client.focus.filter(c) then - client.focus = c - end - end) + -- Enable sloppy focus + c:connect_signal("mouse::enter", function(c) + if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier + and awful.client.focus.filter(c) then + client.focus = c + end + end) - if not startup then - -- Set the windows at the slave, - -- i.e. put it at the end of others instead of setting it master. - -- awful.client.setslave(c) + if not startup then + -- Set the windows at the slave, + -- i.e. put it at the end of others instead of setting it master. + -- awful.client.setslave(c) - -- Put windows in a smart way, only if they does not set an initial position. - if not c.size_hints.user_position and not c.size_hints.program_position then - awful.placement.no_overlap(c) - awful.placement.no_offscreen(c) - end - end + -- Put windows in a smart way, only if they does not set an initial position. + if not c.size_hints.user_position and not c.size_hints.program_position then + awful.placement.no_overlap(c) + awful.placement.no_offscreen(c) + end + end - local titlebars_enabled = false - if titlebars_enabled and (c.type == "normal" or c.type == "dialog") then - -- Widgets that are aligned to the left - local left_layout = wibox.layout.fixed.horizontal() - left_layout:add(awful.titlebar.widget.iconwidget(c)) + local titlebars_enabled = false + if titlebars_enabled and (c.type == "normal" or c.type == "dialog") then + -- Widgets that are aligned to the left + local left_layout = wibox.layout.fixed.horizontal() + left_layout:add(awful.titlebar.widget.iconwidget(c)) - -- Widgets that are aligned to the right - local right_layout = wibox.layout.fixed.horizontal() - right_layout:add(awful.titlebar.widget.floatingbutton(c)) - right_layout:add(awful.titlebar.widget.maximizedbutton(c)) - right_layout:add(awful.titlebar.widget.stickybutton(c)) - right_layout:add(awful.titlebar.widget.ontopbutton(c)) - right_layout:add(awful.titlebar.widget.closebutton(c)) + -- Widgets that are aligned to the right + local right_layout = wibox.layout.fixed.horizontal() + right_layout:add(awful.titlebar.widget.floatingbutton(c)) + right_layout:add(awful.titlebar.widget.maximizedbutton(c)) + right_layout:add(awful.titlebar.widget.stickybutton(c)) + right_layout:add(awful.titlebar.widget.ontopbutton(c)) + right_layout:add(awful.titlebar.widget.closebutton(c)) - -- The title goes in the middle - local title = awful.titlebar.widget.titlewidget(c) - title:buttons(awful.util.table.join( - awful.button({ }, 1, function() - client.focus = c - c:raise() - awful.mouse.client.move(c) - end), - awful.button({ }, 3, function() - client.focus = c - c:raise() - awful.mouse.client.resize(c) - end) - )) + -- The title goes in the middle + local title = awful.titlebar.widget.titlewidget(c) + title:buttons(awful.util.table.join( + awful.button({ }, 1, function() + client.focus = c + c:raise() + awful.mouse.client.move(c) + end), + awful.button({ }, 3, function() + client.focus = c + c:raise() + awful.mouse.client.resize(c) + end) + )) - -- Now bring it all together - local layout = wibox.layout.align.horizontal() - layout:set_left(left_layout) - layout:set_right(right_layout) - layout:set_middle(title) + -- Now bring it all together + local layout = wibox.layout.align.horizontal() + layout:set_left(left_layout) + layout:set_right(right_layout) + layout:set_middle(title) - awful.titlebar(c):set_widget(layout) - end + awful.titlebar(c):set_widget(layout) + end end) client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end) diff --git a/.config/awesome/themes/custom/theme.lua b/.config/awesome/themes/custom/theme.lua index 8184239f..50534907 100644 --- a/.config/awesome/themes/custom/theme.lua +++ b/.config/awesome/themes/custom/theme.lua @@ -25,7 +25,8 @@ theme.border_marked = "#91231c" -- There are other variable sets -- overriding the default one when -- defined, the sets are: --- [taglist|tasklist]_[bg|fg]_[focus|urgent] +-- taglist_[bg|fg]_[focus|urgent|occupied|empty] +-- tasklist_[bg|fg]_[focus|urgent] -- titlebar_[bg|fg]_[normal|focus] -- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color] -- mouse_finder_[color|timeout|animate_timeout|radius|factor] @@ -90,7 +91,7 @@ theme.layout_dwindle = "/usr/share/awesome/themes/default/layouts/dwindlew.png" theme.awesome_icon = "/usr/share/awesome/icons/awesome16.png" --- Define the icon theme for application icons. If not set then the icons +-- Define the icon theme for application icons. If not set then the icons -- from /usr/share/icons and /usr/share/icons/hicolor will be used. theme.icon_theme = nil diff --git a/.config/luakit/globals.lua b/.config/luakit/globals.lua index e58413eb..f755d20a 100644 --- a/.config/luakit/globals.lua +++ b/.config/luakit/globals.lua @@ -1,17 +1,17 @@ -- Global variables for luakit globals = { - homepage = "about:blank", - scroll_step = 40, - zoom_step = 0.1, - max_cmd_history = 100, - max_srch_history = 100, - -- http_proxy = "http://example.com:3128", - default_window_size = "800x600", + homepage = "about:blank", + scroll_step = 40, + 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, + -- 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 @@ -19,22 +19,22 @@ local _, arch = luakit.spawn_sync("uname -sm") -- Only use the luakit version if in date format (reduces identifiability) local lkv = string.match(luakit.version, "^(%d+.%d+.%d+)") globals.useragent = string.format("Mozilla/5.0 (%s) AppleWebKit/%s+ (KHTML, like Gecko) WebKitGTK+/%s luakit%s", - string.sub(arch, 1, -2), luakit.webkit_user_agent_version, - luakit.webkit_version, (lkv and ("/" .. lkv)) or "") + string.sub(arch, 1, -2), luakit.webkit_user_agent_version, + luakit.webkit_version, (lkv and ("/" .. lkv)) or "") -- 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", + -- $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 + 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 @@ -50,25 +50,25 @@ soup.accept_policy = cookie_policy.always -- 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 = { - -- duckduckgo = "http://duckduckgo.com/?q=%s", - -- luakit = "http://luakit.org/search/index/luakit?q=%s", - -- sourceforge = "http://sf.net/search/?words=%s", - arch = "http://wiki.archlinux.org/index.php?title=Special%%3ASearch&search=%s&go=Go", - aur = "https://aur.archlinux.org/packages.php?O=0&K=%s&do_Search=Go", - ctan = "http://www.ctan.org/search/?search=%s&search_type=description", - g = "http://google.com/search?q=%s", - gm = "https://maps.google.com/maps?q=%s", - gt = "http://translate.google.com/#en/fr/%s", - imdb = "http://www.imdb.com/find?s=all&q=%s", - torrent = "http://torrentz.eu/search?f=%s", - w = "http://en.wikipedia.org/wiki/Special:Search?search=%s", - wb = "http://en.wikibooks.org/wiki/Special:Search?search=%s", - wbf = "http://fr.wikibooks.org/wiki/Special:Search?search=%s", - wf = "http://fr.wikipedia.org/wiki/Special:Search?search=%s", - wkf = "http://fr.wiktionary.org/wiki/Special:Search?search=%s", - wk = "http://en.wiktionary.org/wiki/Special:Search?search=%s", - wr = "http://www.wordreference.com/enfr/%s", - youtube = "http://www.youtube.com/results?search_query=%s", + -- duckduckgo = "http://duckduckgo.com/?q=%s", + -- luakit = "http://luakit.org/search/index/luakit?q=%s", + -- sourceforge = "http://sf.net/search/?words=%s", + arch = "http://wiki.archlinux.org/index.php?title=Special%%3ASearch&search=%s&go=Go", + aur = "https://aur.archlinux.org/packages.php?O=0&K=%s&do_Search=Go", + ctan = "http://www.ctan.org/search/?search=%s&search_type=description", + g = "http://google.com/search?q=%s", + gm = "https://maps.google.com/maps?q=%s", + gt = "http://translate.google.com/#en/fr/%s", + imdb = "http://www.imdb.com/find?s=all&q=%s", + torrent = "http://torrentz.eu/search?f=%s", + w = "http://en.wikipedia.org/wiki/Special:Search?search=%s", + wb = "http://en.wikibooks.org/wiki/Special:Search?search=%s", + wbf = "http://fr.wikibooks.org/wiki/Special:Search?search=%s", + wf = "http://fr.wikipedia.org/wiki/Special:Search?search=%s", + wkf = "http://fr.wiktionary.org/wiki/Special:Search?search=%s", + wk = "http://en.wiktionary.org/wiki/Special:Search?search=%s", + wr = "http://www.wordreference.com/enfr/%s", + youtube = "http://www.youtube.com/results?search_query=%s", } -- Set google as fallback search engine @@ -79,20 +79,20 @@ search_engines.default = search_engines.g -- Per-domain webview properties -- See http://webkitgtk.org/reference/webkitgtk/stable/WebKitWebSettings.html domain_props = { --[[ - ["all"] = { - enable_scripts = false, - enable_plugins = false, - enable_private_browsing = false, - user_stylesheet_uri = "", - }, - ["youtube.com"] = { - enable_scripts = true, - enable_plugins = true, - }, - ["bbs.archlinux.org"] = { - user_stylesheet_uri = "file://" .. luakit.data_dir .. "/styles/dark.css", - enable_private_browsing = true, - }, ]] + ["all"] = { + enable_scripts = false, + enable_plugins = false, + enable_private_browsing = false, + user_stylesheet_uri = "", + }, + ["youtube.com"] = { + enable_scripts = true, + enable_plugins = true, + }, + ["bbs.archlinux.org"] = { + user_stylesheet_uri = "file://" .. luakit.data_dir .. "/styles/dark.css", + enable_private_browsing = true, + }, ]] } -- vim: et:sw=4:ts=8:sts=4:tw=80 diff --git a/.config/luakit/rc.lua b/.config/luakit/rc.lua index fc149c06..e030053e 100644 --- a/.config/luakit/rc.lua +++ b/.config/luakit/rc.lua @@ -5,19 +5,19 @@ 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 + 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 @@ -25,7 +25,11 @@ 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 +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") @@ -152,12 +156,12 @@ require "go_up" -- 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 + for i, uri in ipairs(uris) do + w:new_tab(uri, i == 1) + end else - -- Or open new window - window.new(uris) + -- Or open new window + window.new(uris) end ------------------------------------------- @@ -165,17 +169,17 @@ end ------------------------------------------- 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) + 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 -------------------------------------------------------------------------------- @@ -184,16 +188,16 @@ end -- Always save tabs before closing local close_win = window.methods.close_win window.methods.close_win = function (w, ...) - session.save{w} - close_win(w, ...) + session.save{w} + close_win(w, ...) end -- Always open in a new tab in current instance. webview.init_funcs.window_decision = function (view, w) - view:add_signal("new-window-decision", function (v, uri, reason) - w:new_tab(uri) - return true - end) + view:add_signal("new-window-decision", function (v, uri, reason) + w:new_tab(uri) + return true + end) end -- Download folder. @@ -202,14 +206,14 @@ downloads.default_dir = os.getenv("HOME") .. "/temp" -- downloads.default_dir = os.getenv("HOME") -- end downloads.add_signal("download-location", function (uri, file) - if not file or file == "" then - file = (string.match(uri, "/([^/]+)$") - or string.match(uri, "^%w+://(.+)") - or string.gsub(uri, "/", "_") - or "untitled") - end - return downloads.default_dir .. "/" .. file -end) + if not file or file == "" then + file = (string.match(uri, "/([^/]+)$") + or string.match(uri, "^%w+://(.+)") + or string.gsub(uri, "/", "_") + or "untitled") + end + return downloads.default_dir .. "/" .. file +end) -- Adblock require("adblock")