diff --git a/myrc/errors.lua b/myrc/errors.lua
new file mode 100644
index 0000000..af969cb
--- /dev/null
+++ b/myrc/errors.lua
@@ -0,0 +1,22 @@
+local naughty = require("naughty")
+
+-- {{{ Error handling
+if awesome.startup_errors then
+ naughty.notify({ preset = naughty.config.presets.critical,
+ title = "Oops, there were errors during startup!",
+ text = awesome.startup_errors })
+end
+
+do
+ local in_error = false
+ awesome.connect_signal("debug::error", function (err)
+ 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)
+end
+-- }}}
diff --git a/myrc/run_once.lua b/myrc/run_once.lua
new file mode 100644
index 0000000..26a17ce
--- /dev/null
+++ b/myrc/run_once.lua
@@ -0,0 +1,10 @@
+local awful = require("awful")
+
+function run_once(cmd)
+ findme = cmd
+ firstspace = cmd:find(" ")
+ if firstspace then
+ findme = cmd:sub(0, firstspace-1)
+ end
+ awful.util.spawn_with_shell("pgrep -u $USER -x " .. findme .. " > /dev/null || (" .. cmd .. ")")
+end
diff --git a/rc.lua.blackburn b/rc.lua.blackburn
index 699a54f..7f4c1cd 100644
--- a/rc.lua.blackburn
+++ b/rc.lua.blackburn
@@ -1,8 +1,8 @@
--[[
-
- Blackburn Awesome WM config 2.0
- github.com/copycat-killer
-
+
+ Blackburn Awesome WM config 2.0
+ github.com/copycat-killer
+
--]]
-- {{{ Required libraries
@@ -13,91 +13,28 @@ require("awful.autofocus")
local wibox = require("wibox")
local beautiful = require("beautiful")
local naughty = require("naughty")
-local drop = require("scratchdrop")
local lain = require("lain")
-- }}}
--- {{{ Error handling
-if awesome.startup_errors then
- naughty.notify({ preset = naughty.config.presets.critical,
- title = "Oops, there were errors during startup!",
- text = awesome.startup_errors })
-end
+-- Error handling
+require("myrc.errors")
-do
- local in_error = false
- awesome.connect_signal("debug::error", function (err)
- 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)
-end
--- }}}
-
--- {{{ Autostart applications
-function run_once(cmd)
- findme = cmd
- firstspace = cmd:find(" ")
- if firstspace then
- findme = cmd:sub(0, firstspace-1)
- end
- awful.util.spawn_with_shell("pgrep -u $USER -x " .. findme .. " > /dev/null || (" .. cmd .. ")")
-end
-
-run_once("urxvtd")
-run_once("unclutter")
-run_once("compton")
--- }}}
+-- STARTUP apps
+require("settings.startup")
-- {{{ Variable definitions
--- localization
-os.setlocale(os.getenv("LANG"))
-
-- beautiful init
beautiful.init(os.getenv("HOME") .. "/.config/awesome/themes/blackburn/theme.lua")
--- common
-modkey = "Mod4"
-altkey = "Mod1"
-terminal = "urxvtc" or "xterm"
-editor = os.getenv("EDITOR") or "nano" or "vi"
-editor_cmd = terminal .. " -e " .. editor
+-- variables
+require("settings.variables")
--- user defined
-browser = "dwb"
-browser2 = "iron"
-gui_editor = "gvim"
-graphics = "gimp"
-
-local layouts = {
- awful.layout.suit.floating,
- lain.layout.uselesstile,
- awful.layout.suit.fair,
- lain.layout.uselesstile.left,
- lain.layout.uselesstile.top
-}
--- }}}
-
--- {{{ Tags
-tags = {
- names = { "ƀ", "Ƅ", "Ɗ", "ƈ", "ƙ" },
- layout = { layouts[1], layouts[3], layouts[2], layouts[1], layouts[5] }
-}
-for s = 1, screen.count() do
- tags[s] = awful.tag(tags.names, s, tags.layout)
-end
+-- Tags and layouts
+require("settings.tags")
-- }}}
-- {{{ Wallpaper
-if beautiful.wallpaper then
- for s = 1, screen.count() do
- gears.wallpaper.maximized(beautiful.wallpaper, s, true)
- end
-end
+require("stock.wallpaper")
-- }}}
-- {{{ Menu
@@ -219,49 +156,8 @@ arrl_post:set_image(beautiful.arrl_lr_post)
mywibox = {}
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)
- )
-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({ }, 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({ }, 5, function ()
- awful.client.focus.byidx(-1)
- if client.focus then client.focus:raise() end
- end))
+require("stock.taglist")
+require("stock.tasklist")
for s = 1, screen.count() do
-- Create a promptbox for each screen
@@ -319,69 +215,11 @@ for s = 1, screen.count() do
end
-- }}}
--- {{{ Mouse bindings
-root.buttons(awful.util.table.join(
- awful.button({ }, 3, function () mymainmenu:toggle() end),
- awful.button({ }, 4, awful.tag.viewnext),
- awful.button({ }, 5, awful.tag.viewprev)
-))
--- }}}
+-- Bindings
+require("settings.binds")
-- {{{ Key bindings
-globalkeys = awful.util.table.join(
- -- Take a screenshot
- -- https://github.com/copycat-killer/dots/blob/master/bin/screenshot
- awful.key({ altkey }, "p", function() os.execute("screenshot") end),
-
- -- Tag browsing
- awful.key({ modkey }, "Left", awful.tag.viewprev ),
- awful.key({ modkey }, "Right", awful.tag.viewnext ),
- awful.key({ modkey }, "Escape", awful.tag.history.restore),
-
- -- Non-empty tag browsing
- awful.key({ altkey }, "Left", function () lain.util.tag_view_nonempty(-1) end),
- awful.key({ altkey }, "Right", function () lain.util.tag_view_nonempty(1) end),
-
- -- Default client focus
- awful.key({ altkey }, "k",
- function ()
- awful.client.focus.byidx( 1)
- if client.focus then client.focus:raise() end
- end),
- awful.key({ altkey }, "j",
- function ()
- awful.client.focus.byidx(-1)
- if client.focus then client.focus:raise() end
- end),
-
- -- By direction client focus
- awful.key({ modkey }, "j",
- function()
- awful.client.focus.bydirection("down")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "k",
- function()
- awful.client.focus.bydirection("up")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "h",
- function()
- awful.client.focus.bydirection("left")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "l",
- function()
- awful.client.focus.bydirection("right")
- if client.focus then client.focus:raise() end
- end),
-
- -- Show Menu
- awful.key({ modkey }, "w",
- function ()
- mymainmenu:show({ keygrabber = true })
- end),
-
+globalkeys = awful.util.table.join(globalkeys,
-- Show/Hide Wibox
awful.key({ modkey }, "b", function ()
mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible
@@ -391,37 +229,6 @@ globalkeys = awful.util.table.join(
awful.key({ altkey, "Control" }, "+", function () lain.util.useless_gaps_resize(1) end),
awful.key({ altkey, "Control" }, "-", function () lain.util.useless_gaps_resize(-1) end),
- -- Layout manipulation
- awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end),
- awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end),
- awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end),
- awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-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({ altkey, "Shift" }, "l", function () awful.tag.incmwfact( 0.05) end),
- awful.key({ altkey, "Shift" }, "h", function () awful.tag.incmwfact(-0.05) end),
- awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end),
- awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
- awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end),
- awful.key({ modkey, "Control" }, "h", 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, "Control" }, "n", awful.client.restore),
-
- -- Standard program
- awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end),
- awful.key({ modkey, "Control" }, "r", awesome.restart),
- awful.key({ modkey, "Shift" }, "q", awesome.quit),
-
- -- Dropdown terminal
- awful.key({ modkey, }, "z", function () drop(terminal) end),
-
-- Widgets popups
awful.key({ altkey, }, "c", function () lain.widgets.calendar:show(7) end),
awful.key({ altkey, }, "h", function () fshome.show(7) end),
@@ -447,200 +254,15 @@ globalkeys = awful.util.table.join(
function ()
awful.util.spawn("amixer -q set Master playback 100%")
volumewidget.update()
- end),
-
- -- MPD control
- awful.key({ altkey, "Control" }, "Up",
- function ()
- awful.util.spawn_with_shell("mpc toggle || ncmpcpp toggle || ncmpc toggle || pms toggle")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Down",
- function ()
- awful.util.spawn_with_shell("mpc stop || ncmpcpp stop || ncmpc stop || pms stop")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Left",
- function ()
- awful.util.spawn_with_shell("mpc prev || ncmpcpp prev || ncmpc prev || pms prev")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Right",
- function ()
- awful.util.spawn_with_shell("mpc next || ncmpcpp next || ncmpc next || pms next")
- mpdwidget.update()
- end),
-
- -- Copy to clipboard
- awful.key({ modkey }, "c", function () os.execute("xsel -p -o | xsel -i -b") end),
-
- -- User programs
- awful.key({ modkey }, "q", function () awful.util.spawn(browser) end),
- awful.key({ modkey }, "i", function () awful.util.spawn(browser2) end),
- awful.key({ modkey }, "s", function () awful.util.spawn(gui_editor) end),
- awful.key({ modkey }, "g", function () awful.util.spawn(graphics) end),
-
- -- Prompt
- awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end),
- 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)
-)
-
-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, }, "n",
- function (c)
- -- The client currently has the input focus, so it cannot be
- -- minimized, since minimized clients can't have the focus.
- c.minimized = true
- end),
- awful.key({ modkey, }, "m",
- function (c)
- c.maximized_horizontal = not c.maximized_horizontal
- c.maximized_vertical = not c.maximized_vertical
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, 9 do
- globalkeys = awful.util.table.join(globalkeys,
- awful.key({ modkey }, "#" .. i + 9,
- function ()
- local screen = mouse.screen
- local tag = awful.tag.gettags(screen)[i]
- if tag then
- awful.tag.viewonly(tag)
- end
- end),
- awful.key({ modkey, "Control" }, "#" .. i + 9,
- function ()
- local screen = mouse.screen
- local tag = awful.tag.gettags(screen)[i]
- if tag then
- awful.tag.viewtoggle(tag)
- end
- end),
- awful.key({ modkey, "Shift" }, "#" .. i + 9,
- function ()
- local tag = awful.tag.gettags(client.focus.screen)[i]
- if client.focus and tag then
- awful.client.movetotag(tag)
- end
- end),
- awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
- function ()
- local tag = awful.tag.gettags(client.focus.screen)[i]
- if client.focus and tag then
- awful.client.toggletag(tag)
- 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))
-
-- Set keys
root.keys(globalkeys)
-- }}}
--- {{{ Rules
-awful.rules.rules = {
- -- All clients will match this rule.
- { rule = { },
- properties = { border_width = beautiful.border_width,
- border_color = beautiful.border_normal,
- focus = awful.client.focus.filter,
- keys = clientkeys,
- buttons = clientbuttons,
- size_hints_honor = false } },
- { rule = { class = "URxvt" },
- properties = { opacity = 0.99 } },
+-- Rules
+require("settings.rules")
- { rule = { class = "MPlayer" },
- properties = { floating = true } },
-
- { rule = { class = "Dwb" },
- properties = { tag = tags[1][1] } },
-
- { rule = { class = "Iron" },
- properties = { tag = tags[1][1] } },
-
- { rule = { instance = "plugin-container" },
- properties = { tag = tags[1][1] } },
-
- { rule = { class = "Gimp" },
- properties = { tag = tags[1][4] } },
-
- { rule = { class = "Gimp", role = "gimp-image-window" },
- properties = { maximized_horizontal = true,
- maximized_vertical = true } },
-}
--- }}}
-
--- {{{ Signals
--- 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)
-
- if not startup and 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)
-
--- No border for maximized clients
-client.connect_signal("focus",
- function(c)
- if c.maximized_horizontal == true and c.maximized_vertical == true then
- c.border_width = 0
- c.border_color = beautiful.border_normal
- else
- c.border_width = beautiful.border_width
- c.border_color = beautiful.border_focus
- end
- end)
-client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
--- }}}
-
--- {{{ Arrange signal handler
-for s = 1, screen.count() do screen[s]:connect_signal("arrange", function ()
- local clients = awful.client.visible(s)
- local layout = awful.layout.getname(awful.layout.get(s))
-
- if #clients > 0 then -- Fine grained borders and floaters control
- for _, c in pairs(clients) do -- Floaters always have borders
- if awful.client.floating.get(c) or layout == "floating" then
- c.border_width = beautiful.border_width
-
- -- No borders with only one visible client
- elseif #clients == 1 or layout == "max" then
- clients[1].border_width = 0
- else
- c.border_width = beautiful.border_width
- end
- end
- end
- end)
-end
--- }}}
+-- Signals
+require("stock.signals")
diff --git a/rc.lua.copland b/rc.lua.copland
index dcf3db6..9b792ac 100644
--- a/rc.lua.copland
+++ b/rc.lua.copland
@@ -1,8 +1,8 @@
--[[
-
- Copland Awesome WM config
- github.com/copycat-killer
-
+
+ Copland Awesome WM config
+ github.com/copycat-killer
+
--]]
-- {{{ Required libraries
@@ -13,66 +13,22 @@ require("awful.autofocus")
local wibox = require("wibox")
local beautiful = require("beautiful")
local naughty = require("naughty")
-local drop = require("scratchdrop")
local lain = require("lain")
local eminent = require("eminent")
-- }}}
--- {{{ Error handling
-if awesome.startup_errors then
- naughty.notify({ preset = naughty.config.presets.critical,
- title = "Oops, there were errors during startup!",
- text = awesome.startup_errors })
-end
+-- Error handling
+require("myrc.errors")
-do
- local in_error = false
- awesome.connect_signal("debug::error", function (err)
- 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)
-end
--- }}}
-
--- {{{ Autostart applications
-function run_once(cmd)
- findme = cmd
- firstspace = cmd:find(" ")
- if firstspace then
- findme = cmd:sub(0, firstspace-1)
- end
- awful.util.spawn_with_shell("pgrep -u $USER -x " .. findme .. " > /dev/null || (" .. cmd .. ")")
-end
-
-run_once("urxvtd")
-run_once("unclutter")
-run_once("compton")
--- }}}
+-- STARTUP apps
+require("settings.startup")
-- {{{ Variable definitions
--- localization
-os.setlocale(os.getenv("LANG"))
-
-- beautiful init
beautiful.init(os.getenv("HOME") .. "/.config/awesome/themes/copland/theme.lua")
--- common
-modkey = "Mod4"
-altkey = "Mod1"
-terminal = "urxvtc" or "xterm"
-editor = os.getenv("EDITOR") or "nano" or "vi"
-editor_cmd = terminal .. " -e " .. editor
-
--- user defined
-browser = "dwb"
-browser2 = "iron"
-gui_editor = "gvim"
-graphics = "gimp"
+-- variables
+require("settings.variables")
-- lain
lain.layout.termfair.nmaster = 3
@@ -80,35 +36,12 @@ lain.layout.termfair.ncol = 1
lain.layout.centerfair.nmaster = 3
lain.layout.centerfair.ncol = 1
-local layouts = {
- awful.layout.suit.floating,
- awful.layout.suit.fair,
- awful.layout.suit.tile,
- lain.layout.uselessfair.horizontal,
- lain.layout.uselesstile,
- lain.layout.uselessfair,
- lain.layout.termfair,
- lain.layout.centerfair,
- lain.layout.uselesspiral.dwindle
-}
--- }}}
-
--- {{{ Tags
-tags = {
- names = { "start", "2", "3", "4", "5" },
- layout = { layouts[1], layouts[2], layouts[3], layouts[4], layouts[5] }
-}
-for s = 1, screen.count() do
- tags[s] = awful.tag(tags.names, s, tags.layout)
-end
+-- Tags and layouts
+require("settings.tags")
-- }}}
-- {{{ Wallpaper
-if beautiful.wallpaper then
- for s = 1, screen.count() do
- gears.wallpaper.maximized(beautiful.wallpaper, s, true)
- end
-end
+require("stock.wallpaper")
-- }}}
-- {{{ Menu
@@ -244,7 +177,7 @@ settings = function()
volicon:set_image(beautiful.vol)
end
end,
-colors =
+colors =
{
background = beautiful.bg_normal,
mute = "#EB8F8F",
@@ -268,49 +201,8 @@ bar_spr = wibox.widget.textbox(' ' .. markup("#3333
mywibox = {}
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)
- )
-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({ }, 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({ }, 5, function ()
- awful.client.focus.byidx(-1)
- if client.focus then client.focus:raise() end
- end))
+require("stock.taglist")
+require("stock.tasklist")
for s = 1, screen.count() do
-- Create a promptbox for each screen
@@ -369,69 +261,11 @@ for s = 1, screen.count() do
end
-- }}}
--- {{{ Mouse bindings
-root.buttons(awful.util.table.join(
- awful.button({ }, 3, function () mymainmenu:toggle() end),
- awful.button({ }, 4, awful.tag.viewnext),
- awful.button({ }, 5, awful.tag.viewprev)
-))
--- }}}
+-- Bindings
+require("settings.binds")
-- {{{ Key bindings
-globalkeys = awful.util.table.join(
- -- Take a screenshot
- -- https://github.com/copycat-killer/dots/blob/master/bin/screenshot
- awful.key({ altkey }, "p", function() os.execute("screenshot") end),
-
- -- Tag browsing
- awful.key({ modkey }, "Left", awful.tag.viewprev ),
- awful.key({ modkey }, "Right", awful.tag.viewnext ),
- awful.key({ modkey }, "Escape", awful.tag.history.restore),
-
- -- Non-empty tag browsing
- awful.key({ altkey }, "Left", function () lain.util.tag_view_nonempty(-1) end),
- awful.key({ altkey }, "Right", function () lain.util.tag_view_nonempty(1) end),
-
- -- Default client focus
- awful.key({ altkey }, "k",
- function ()
- awful.client.focus.byidx( 1)
- if client.focus then client.focus:raise() end
- end),
- awful.key({ altkey }, "j",
- function ()
- awful.client.focus.byidx(-1)
- if client.focus then client.focus:raise() end
- end),
-
- -- By direction client focus
- awful.key({ modkey }, "j",
- function()
- awful.client.focus.bydirection("down")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "k",
- function()
- awful.client.focus.bydirection("up")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "h",
- function()
- awful.client.focus.bydirection("left")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "l",
- function()
- awful.client.focus.bydirection("right")
- if client.focus then client.focus:raise() end
- end),
-
- -- Show Menu
- awful.key({ modkey }, "w",
- function ()
- mymainmenu:show({ keygrabber = true })
- end),
-
+globalkeys = awful.util.table.join(globalkeys,
-- Show/Hide Wibox
awful.key({ modkey }, "b", function ()
mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible
@@ -444,37 +278,6 @@ globalkeys = awful.util.table.join(
-- Rename tag
awful.key({ altkey, "Shift" }, "r", function () lain.util.rename_tag(mypromptbox) end),
- -- Layout manipulation
- awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end),
- awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end),
- awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end),
- awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-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({ altkey, "Shift" }, "l", function () awful.tag.incmwfact( 0.05) end),
- awful.key({ altkey, "Shift" }, "h", function () awful.tag.incmwfact(-0.05) end),
- awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end),
- awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
- awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end),
- awful.key({ modkey, "Control" }, "h", 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, "Control" }, "n", awful.client.restore),
-
- -- Standard program
- awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end),
- awful.key({ modkey, "Control" }, "r", awesome.restart),
- awful.key({ modkey, "Shift" }, "q", awesome.quit),
-
- -- Dropdown terminal
- awful.key({ modkey, }, "z", function () drop(terminal) end),
-
-- Widgets popups
awful.key({ altkey, }, "c", function () lain.widgets.calendar:show(7) end),
awful.key({ altkey, }, "h", function () fshomeupd.show(7) end),
@@ -500,150 +303,19 @@ globalkeys = awful.util.table.join(
function ()
awful.util.spawn("amixer -q set " .. volume.channel .. " playback 100%")
volume.notify()
- end),
-
- -- MPD control
- awful.key({ altkey, "Control" }, "Up",
- function ()
- awful.util.spawn_with_shell("mpc toggle || ncmpcpp toggle || ncmpc toggle || pms toggle")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Down",
- function ()
- awful.util.spawn_with_shell("mpc stop || ncmpcpp stop || ncmpc stop || pms stop")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Left",
- function ()
- awful.util.spawn_with_shell("mpc prev || ncmpcpp prev || ncmpc prev || pms prev")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Right",
- function ()
- awful.util.spawn_with_shell("mpc next || ncmpcpp next || ncmpc next || pms next")
- mpdwidget.update()
- end),
-
- -- Copy to clipboard
- awful.key({ modkey }, "c", function () os.execute("xsel -p -o | xsel -i -b") end),
-
- -- User programs
- awful.key({ modkey }, "q", function () awful.util.spawn(browser) end),
- awful.key({ modkey }, "i", function () awful.util.spawn(browser2) end),
- awful.key({ modkey }, "s", function () awful.util.spawn(gui_editor) end),
- awful.key({ modkey }, "g", function () awful.util.spawn(graphics) end),
-
- -- Prompt
- awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end),
- 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)
-)
-
-clientkeys = awful.util.table.join(
- awful.key({ altkey, "Shift" }, "m", lain.util.magnify_client ),
- 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, }, "n",
- function (c)
- -- The client currently has the input focus, so it cannot be
- -- minimized, since minimized clients can't have the focus.
- c.minimized = true
- end),
- awful.key({ modkey, }, "m",
- function (c)
- c.maximized_horizontal = not c.maximized_horizontal
- c.maximized_vertical = not c.maximized_vertical
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, 9 do
- globalkeys = awful.util.table.join(globalkeys,
- awful.key({ modkey }, "#" .. i + 9,
- function ()
- local screen = mouse.screen
- local tag = awful.tag.gettags(screen)[i]
- if tag then
- awful.tag.viewonly(tag)
- end
- end),
- awful.key({ modkey, "Control" }, "#" .. i + 9,
- function ()
- local screen = mouse.screen
- local tag = awful.tag.gettags(screen)[i]
- if tag then
- awful.tag.viewtoggle(tag)
- end
- end),
- awful.key({ modkey, "Shift" }, "#" .. i + 9,
- function ()
- local tag = awful.tag.gettags(client.focus.screen)[i]
- if client.focus and tag then
- awful.client.movetotag(tag)
- end
- end),
- awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
- function ()
- local tag = awful.tag.gettags(client.focus.screen)[i]
- if client.focus and tag then
- awful.client.toggletag(tag)
- 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))
+clientkeys = awful.util.table.join(clientkeys,
+ awful.key({ altkey, "Shift" }, "m", lain.util.magnify_client )
+)
-- Set keys
root.keys(globalkeys)
-- }}}
--- {{{ Rules
-awful.rules.rules = {
- -- All clients will match this rule.
- { rule = { },
- properties = { border_width = beautiful.border_width,
- border_color = beautiful.border_normal,
- focus = awful.client.focus.filter,
- keys = clientkeys,
- buttons = clientbuttons,
- size_hints_honor = false } },
- { rule = { class = "URxvt" },
- properties = { opacity = 0.99 } },
-
- { rule = { class = "MPlayer" },
- properties = { floating = true } },
-
- { rule = { class = "Dwb" },
- properties = { tag = tags[1][1] } },
-
- { rule = { class = "Iron" },
- properties = { tag = tags[1][1] } },
-
- { rule = { instance = "plugin-container" },
- properties = { tag = tags[1][1] } },
-
- { rule = { class = "Gimp" },
- properties = { tag = tags[1][3] } },
-
- { rule = { class = "Gimp", role = "gimp-image-window" },
- properties = { maximized_horizontal = true,
- maximized_vertical = true } },
-}
--- }}}
+-- Rules
+require("settings.rules")
-- {{{ Signals
-- Signal function to execute when a new client appears.
diff --git a/rc.lua.dremora b/rc.lua.dremora
index ff7daed..08ef791 100644
--- a/rc.lua.dremora
+++ b/rc.lua.dremora
@@ -1,8 +1,8 @@
--[[
-
- Dremora Awesome WM config 2.0
- github.com/copycat-killer
-
+
+ Dremora Awesome WM config 2.0
+ github.com/copycat-killer
+
--]]
-- {{{ Required libraries
@@ -13,91 +13,28 @@ require("awful.autofocus")
local wibox = require("wibox")
local beautiful = require("beautiful")
local naughty = require("naughty")
-local drop = require("scratchdrop")
local lain = require("lain")
-- }}}
--- {{{ Error handling
-if awesome.startup_errors then
- naughty.notify({ preset = naughty.config.presets.critical,
- title = "Oops, there were errors during startup!",
- text = awesome.startup_errors })
-end
+-- Error handling
+require("myrc.errors")
-do
- local in_error = false
- awesome.connect_signal("debug::error", function (err)
- 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)
-end
--- }}}
-
--- {{{ Autostart applications
-function run_once(cmd)
- findme = cmd
- firstspace = cmd:find(" ")
- if firstspace then
- findme = cmd:sub(0, firstspace-1)
- end
- awful.util.spawn_with_shell("pgrep -u $USER -x " .. findme .. " > /dev/null || (" .. cmd .. ")")
-end
-
-run_once("urxvtd")
-run_once("unclutter")
-run_once("compton")
--- }}}
+-- STARTUP apps
+require("settings.startup")
-- {{{ Variable definitions
--- localization
---os.setlocale(os.getenv("LANG"))
-
-- beautiful init
beautiful.init(awful.util.getdir("config") .. "/themes/dremora/theme.lua")
--- common
-modkey = "Mod4"
-altkey = "Mod1"
-terminal = "urxvtc" or "xterm"
-editor = os.getenv("EDITOR") or "nano" or "vi"
-editor_cmd = terminal .. " -e " .. editor
+-- variables
+require("settings.variables")
--- user defined
-browser = "dwb"
-browser2 = "iron"
-gui_editor = "gvim"
-graphics = "gimp"
-
-local layouts = {
- awful.layout.suit.floating,
- lain.layout.uselesstile,
- awful.layout.suit.fair,
- lain.layout.uselesstile.left,
- lain.layout.uselesstile.top
-}
--- }}}
-
--- {{{ Tags
-tags = {
- names = { "ƀ", "Ƅ", "Ɗ", "ƈ", "ƙ" },
- layout = { layouts[1], layouts[3], layouts[2], layouts[1], layouts[5] }
-}
-for s = 1, screen.count() do
- tags[s] = awful.tag(tags.names, s, tags.layout)
-end
+-- Tags and layouts
+require("settings.tags")
-- }}}
-- {{{ Wallpaper
-if beautiful.wallpaper then
- for s = 1, screen.count() do
- gears.wallpaper.maximized(beautiful.wallpaper, s, true)
- end
-end
+require("stock.wallpaper")
-- }}}
-- {{{ Menu
@@ -224,49 +161,8 @@ arrl_post:set_image(beautiful.arrl_lr_post)
mywibox = {}
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)
- )
-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({ }, 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({ }, 5, function ()
- awful.client.focus.byidx(-1)
- if client.focus then client.focus:raise() end
- end))
+require("stock.taglist")
+require("stock.tasklist")
for s = 1, screen.count() do
-- Create a promptbox for each screen
@@ -319,69 +215,11 @@ for s = 1, screen.count() do
end
-- }}}
--- {{{ Mouse bindings
-root.buttons(awful.util.table.join(
- awful.button({ }, 3, function () mymainmenu:toggle() end),
- awful.button({ }, 4, awful.tag.viewnext),
- awful.button({ }, 5, awful.tag.viewprev)
-))
--- }}}
+-- Bindings
+require("settings.binds")
-- {{{ Key bindings
-globalkeys = awful.util.table.join(
- -- Take a screenshot
- -- https://github.com/copycat-killer/dots/blob/master/bin/screenshot
- awful.key({ altkey }, "p", function() os.execute("screenshot") end),
-
- -- Tag browsing
- awful.key({ modkey }, "Left", awful.tag.viewprev ),
- awful.key({ modkey }, "Right", awful.tag.viewnext ),
- awful.key({ modkey }, "Escape", awful.tag.history.restore),
-
- -- Non-empty tag browsing
- awful.key({ altkey }, "Left", function () lain.util.tag_view_nonempty(-1) end),
- awful.key({ altkey }, "Right", function () lain.util.tag_view_nonempty(1) end),
-
- -- Default client focus
- awful.key({ altkey }, "k",
- function ()
- awful.client.focus.byidx( 1)
- if client.focus then client.focus:raise() end
- end),
- awful.key({ altkey }, "j",
- function ()
- awful.client.focus.byidx(-1)
- if client.focus then client.focus:raise() end
- end),
-
- -- By direction client focus
- awful.key({ modkey }, "j",
- function()
- awful.client.focus.bydirection("down")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "k",
- function()
- awful.client.focus.bydirection("up")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "h",
- function()
- awful.client.focus.bydirection("left")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "l",
- function()
- awful.client.focus.bydirection("right")
- if client.focus then client.focus:raise() end
- end),
-
- -- Show Menu
- awful.key({ modkey }, "w",
- function ()
- mymainmenu:show({ keygrabber = true })
- end),
-
+globalkeys = awful.util.table.join(globalkeys,
-- Show/Hide Wibox
awful.key({ modkey }, "b", function ()
mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible
@@ -391,37 +229,6 @@ globalkeys = awful.util.table.join(
awful.key({ altkey, "Control" }, "+", function () lain.util.useless_gaps_resize(1) end),
awful.key({ altkey, "Control" }, "-", function () lain.util.useless_gaps_resize(-1) end),
- -- Layout manipulation
- awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end),
- awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end),
- awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end),
- awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-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({ altkey, "Shift" }, "l", function () awful.tag.incmwfact( 0.05) end),
- awful.key({ altkey, "Shift" }, "h", function () awful.tag.incmwfact(-0.05) end),
- awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end),
- awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
- awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end),
- awful.key({ modkey, "Control" }, "h", 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, "Control" }, "n", awful.client.restore),
-
- -- Standard program
- awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end),
- awful.key({ modkey, "Control" }, "r", awesome.restart),
- awful.key({ modkey, "Shift" }, "q", awesome.quit),
-
- -- Dropdown terminal
- awful.key({ modkey, }, "z", function () drop(terminal) end),
-
-- Widgets popups
awful.key({ altkey, }, "c", function () lain.widgets.calendar:show(7) end),
awful.key({ altkey, }, "h", function () fshome.show(7) end),
@@ -447,229 +254,15 @@ globalkeys = awful.util.table.join(
function ()
awful.util.spawn("amixer -q set Master playback 100%")
volumewidget.update()
- end),
-
- -- MPD control
- awful.key({ altkey, "Control" }, "Up",
- function ()
- awful.util.spawn_with_shell("mpc toggle || ncmpcpp toggle || ncmpc toggle || pms toggle")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Down",
- function ()
- awful.util.spawn_with_shell("mpc stop || ncmpcpp stop || ncmpc stop || pms stop")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Left",
- function ()
- awful.util.spawn_with_shell("mpc prev || ncmpcpp prev || ncmpc prev || pms prev")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Right",
- function ()
- awful.util.spawn_with_shell("mpc next || ncmpcpp next || ncmpc next || pms next")
- mpdwidget.update()
- end),
-
- -- Copy to clipboard
- awful.key({ modkey }, "c", function () os.execute("xsel -p -o | xsel -i -b") end),
-
- -- User programs
- awful.key({ modkey }, "q", function () awful.util.spawn(browser) end),
- awful.key({ modkey }, "i", function () awful.util.spawn(browser2) end),
- awful.key({ modkey }, "s", function () awful.util.spawn(gui_editor) end),
- awful.key({ modkey }, "g", function () awful.util.spawn(graphics) end),
-
- -- Prompt
- awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end),
- 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)
-)
-
-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, }, "n",
- function (c)
- -- The client currently has the input focus, so it cannot be
- -- minimized, since minimized clients can't have the focus.
- c.minimized = true
- end),
- awful.key({ modkey, }, "m",
- function (c)
- c.maximized_horizontal = not c.maximized_horizontal
- c.maximized_vertical = not c.maximized_vertical
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, 9 do
- globalkeys = awful.util.table.join(globalkeys,
- awful.key({ modkey }, "#" .. i + 9,
- function ()
- local screen = mouse.screen
- local tag = awful.tag.gettags(screen)[i]
- if tag then
- awful.tag.viewonly(tag)
- end
- end),
- awful.key({ modkey, "Control" }, "#" .. i + 9,
- function ()
- local screen = mouse.screen
- local tag = awful.tag.gettags(screen)[i]
- if tag then
- awful.tag.viewtoggle(tag)
- end
- end),
- awful.key({ modkey, "Shift" }, "#" .. i + 9,
- function ()
- local tag = awful.tag.gettags(client.focus.screen)[i]
- if client.focus and tag then
- awful.client.movetotag(tag)
- end
- end),
- awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
- function ()
- local tag = awful.tag.gettags(client.focus.screen)[i]
- if client.focus and tag then
- awful.client.toggletag(tag)
- 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))
-
-- Set keys
root.keys(globalkeys)
-- }}}
--- {{{ Rules
-awful.rules.rules = {
- -- All clients will match this rule.
- { rule = { },
- properties = { border_width = beautiful.border_width,
- border_color = beautiful.border_normal,
- focus = awful.client.focus.filter,
- keys = clientkeys,
- buttons = clientbuttons,
- size_hints_honor = false } },
- { rule = { class = "URxvt" },
- properties = { opacity = 0.99 } },
+-- Rules
+require("settings.rules")
- { rule = { class = "MPlayer" },
- properties = { floating = true } },
-
- { rule = { class = "Dwb" },
- properties = { tag = tags[1][1] } },
-
- { rule = { class = "Iron" },
- properties = { tag = tags[1][1] } },
-
- { rule = { instance = "plugin-container" },
- properties = { tag = tags[1][1] } },
-
- { rule = { class = "Gimp" },
- properties = { tag = tags[1][4] } },
-
- { rule = { class = "Gimp", role = "gimp-image-window" },
- properties = { maximized_horizontal = true,
- maximized_vertical = true } },
-}
--- }}}
-
--- {{{ Signals
--- 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)
-
- if not startup and 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
-
- local titlebars_enabled = true
- if titlebars_enabled and (c.type == "normal" or c.type == "dialog") then
- -- buttons for the titlebar
- local 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)
- )
-
- -- Title in the middle
- local middle_layout = wibox.layout.flex.horizontal()
- local title = awful.titlebar.widget.titlewidget(c)
- title:set_align("center")
- middle_layout:add(title)
- middle_layout:buttons(buttons)
-
- local layout = wibox.layout.align.horizontal()
- layout:set_middle(middle_layout)
-
- awful.titlebar(c,{size=18}):set_widget(layout)
- end
-end)
-
--- No border for maximized clients
-client.connect_signal("focus",
- function(c)
- if c.maximized_horizontal == true and c.maximized_vertical == true then
- c.border_width = 0
- c.border_color = beautiful.border_normal
- else
- c.border_width = beautiful.border_width
- c.border_color = beautiful.border_focus
- end
- end)
-client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
--- }}}
-
--- {{{ Arrange signal handler
-for s = 1, screen.count() do screen[s]:connect_signal("arrange", function ()
- local clients = awful.client.visible(s)
- local layout = awful.layout.getname(awful.layout.get(s))
-
- if #clients > 0 then -- Fine grained borders and floaters control
- for _, c in pairs(clients) do -- Floaters always have borders
- if awful.client.floating.get(c) or layout == "floating" then
- c.border_width = beautiful.border_width
-
- -- No borders with only one visible client
- elseif #clients == 1 or layout == "max" then
- clients[1].border_width = 0
- else
- c.border_width = beautiful.border_width
- end
- end
- end
- end)
-end
--- }}}
+-- Signals
+require("stock.signals")
diff --git a/rc.lua.holo b/rc.lua.holo
index 8594453..bfe21bb 100644
--- a/rc.lua.holo
+++ b/rc.lua.holo
@@ -1,8 +1,8 @@
--[[
-
- Holo Awesome WM config 2.0
- github.com/copycat-killer
-
+
+ Holo Awesome WM config 2.0
+ github.com/copycat-killer
+
--]]
-- {{{ Required libraries
@@ -13,92 +13,30 @@ require("awful.autofocus")
local wibox = require("wibox")
local beautiful = require("beautiful")
local naughty = require("naughty")
-local drop = require("scratchdrop")
local lain = require("lain")
-- }}}
--- {{{ Error handling
-if awesome.startup_errors then
- naughty.notify({ preset = naughty.config.presets.critical,
- title = "Oops, there were errors during startup!",
- text = awesome.startup_errors })
-end
+-- Error handling
+require("myrc.errors")
-do
- local in_error = false
- awesome.connect_signal("debug::error", function (err)
- 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)
-end
--- }}}
-
--- {{{ Autostart applications
-function run_once(cmd)
- findme = cmd
- firstspace = cmd:find(" ")
- if firstspace then
- findme = cmd:sub(0, firstspace-1)
- end
- awful.util.spawn_with_shell("pgrep -u $USER -x " .. findme .. " > /dev/null || (" .. cmd .. ")")
-end
-
-run_once("urxvtd")
-run_once("unclutter")
-run_once("compton")
--- }}}
+-- STARTUP apps
+require("settings.startup")
-- {{{ Variable definitions
--- localization
---os.setlocale(os.getenv("LANG"))
-
-- beautiful init
beautiful.init(os.getenv("HOME") .. "/.config/awesome/themes/holo/theme.lua")
--- common
-modkey = "Mod4"
-altkey = "Mod1"
-terminal = "urxvtc" or "xterm"
-editor = os.getenv("EDITOR") or "nano" or "vi"
-editor_cmd = terminal .. " -e " .. editor
+-- variables
+require("settings.variables")
--- user defined
-browser = "dwb"
-browser2 = "iron"
-gui_editor = "gvim"
-graphics = "gimp"
musiplr = terminal .. " -e ncmpcpp "
-local layouts = {
- awful.layout.suit.floating,
- lain.layout.uselesstile,
- awful.layout.suit.fair,
- lain.layout.uselesstile.left,
- lain.layout.uselesstile.top
-}
--- }}}
-
--- {{{ Tags
-tags = {
- names = { " WEB ", " TERMINAL ", " FILES ", " OTHER " },
- layout = { layouts[1], layouts[3], layouts[2], layouts[4] }
-}
-for s = 1, screen.count() do
- tags[s] = awful.tag(tags.names, s, tags.layout)
-end
+-- Tags and layouts
+require("settings.tags")
-- }}}
-- {{{ Wallpaper
-if beautiful.wallpaper then
- for s = 1, screen.count() do
- gears.wallpaper.maximized(beautiful.wallpaper, s, true)
- end
-end
+require("stock.wallpaper")
-- }}}
-- {{{ Menu
@@ -175,7 +113,7 @@ mpdwidget = lain.widgets.mpd({
mpd_now.artist = mpd_now.artist:upper():gsub("&.-;", string.lower)
mpd_now.title = mpd_now.title:upper():gsub("&.-;", string.lower)
widget:set_markup(markup.font("Tamsyn 4", " ")
- .. markup.font("Tamsyn 8",
+ .. markup.font("Tamsyn 8",
mpd_now.artist
.. " - " ..
mpd_now.title
@@ -317,49 +255,8 @@ mywibox = {}
mybottomwibox = {}
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)
- )
-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({ }, 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({ }, 5, function ()
- awful.client.focus.byidx(-1)
- if client.focus then client.focus:raise() end
- end))
+require("stock.taglist")
+require("stock.tasklist")
for s = 1, screen.count() do
-- Create a promptbox for each screen
@@ -454,69 +351,11 @@ for s = 1, screen.count() do
end
-- }}}
--- {{{ Mouse bindings
-root.buttons(awful.util.table.join(
- awful.button({ }, 3, function () mymainmenu:toggle() end),
- awful.button({ }, 4, awful.tag.viewnext),
- awful.button({ }, 5, awful.tag.viewprev)
-))
--- }}}
+-- Bindings
+require("settings.binds")
-- {{{ Key bindings
-globalkeys = awful.util.table.join(
- -- Take a screenshot
- -- https://github.com/copycat-killer/dots/blob/master/bin/screenshot
- awful.key({ altkey }, "p", function() os.execute("screenshot") end),
-
- -- Tag browsing
- awful.key({ modkey }, "Left", awful.tag.viewprev ),
- awful.key({ modkey }, "Right", awful.tag.viewnext ),
- awful.key({ modkey }, "Escape", awful.tag.history.restore),
-
- -- Non-empty tag browsing
- awful.key({ altkey }, "Left", function () lain.util.tag_view_nonempty(-1) end),
- awful.key({ altkey }, "Right", function () lain.util.tag_view_nonempty(1) end),
-
- -- Default client focus
- awful.key({ altkey }, "k",
- function ()
- awful.client.focus.byidx( 1)
- if client.focus then client.focus:raise() end
- end),
- awful.key({ altkey }, "j",
- function ()
- awful.client.focus.byidx(-1)
- if client.focus then client.focus:raise() end
- end),
-
- -- By direction client focus
- awful.key({ modkey }, "j",
- function()
- awful.client.focus.bydirection("down")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "k",
- function()
- awful.client.focus.bydirection("up")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "h",
- function()
- awful.client.focus.bydirection("left")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "l",
- function()
- awful.client.focus.bydirection("right")
- if client.focus then client.focus:raise() end
- end),
-
- -- Show Menu
- awful.key({ modkey }, "w",
- function ()
- mymainmenu:show({ keygrabber = true })
- end),
-
+globalkeys = awful.util.table.join(globalkeys,
-- Show/Hide Wibox
awful.key({ modkey }, "b", function ()
mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible
@@ -527,37 +366,6 @@ globalkeys = awful.util.table.join(
awful.key({ altkey, "Control" }, "+", function () lain.util.useless_gaps_resize(1) end),
awful.key({ altkey, "Control" }, "-", function () lain.util.useless_gaps_resize(-1) end),
- -- Layout manipulation
- awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end),
- awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end),
- awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end),
- awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-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({ altkey, "Shift" }, "l", function () awful.tag.incmwfact( 0.05) end),
- awful.key({ altkey, "Shift" }, "h", function () awful.tag.incmwfact(-0.05) end),
- awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end),
- awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
- awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end),
- awful.key({ modkey, "Control" }, "h", 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, "Control" }, "n", awful.client.restore),
-
- -- Standard program
- awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end),
- awful.key({ modkey, "Control" }, "r", awesome.restart),
- awful.key({ modkey, "Shift" }, "q", awesome.quit),
-
- -- Dropdown terminal
- awful.key({ modkey, }, "z", function () drop(terminal) end),
-
-- Widgets popups
awful.key({ altkey, }, "c", function () lain.widgets.calendar:show(7) end),
awful.key({ altkey, }, "w", function () yawn.show(7) end),
@@ -582,200 +390,15 @@ globalkeys = awful.util.table.join(
function ()
awful.util.spawn("amixer -q set " .. myvolumebar.channel .. " playback 100%")
myvolumebar.notify()
- end),
-
- -- MPD control
- awful.key({ altkey, "Control" }, "Up",
- function ()
- awful.util.spawn_with_shell("mpc toggle || ncmpcpp toggle || ncmpc toggle || pms toggle")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Down",
- function ()
- awful.util.spawn_with_shell("mpc stop || ncmpcpp stop || ncmpc stop || pms stop")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Left",
- function ()
- awful.util.spawn_with_shell("mpc prev || ncmpcpp prev || ncmpc prev || pms prev")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Right",
- function ()
- awful.util.spawn_with_shell("mpc next || ncmpcpp next || ncmpc next || pms next")
- mpdwidget.update()
- end),
-
- -- Copy to clipboard
- awful.key({ modkey }, "c", function () os.execute("xsel -p -o | xsel -i -b") end),
-
- -- User programs
- awful.key({ modkey }, "q", function () awful.util.spawn(browser) end),
- awful.key({ modkey }, "i", function () awful.util.spawn(browser2) end),
- awful.key({ modkey }, "s", function () awful.util.spawn(gui_editor) end),
- awful.key({ modkey }, "g", function () awful.util.spawn(graphics) end),
-
- -- Prompt
- awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end),
- 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)
-)
-
-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, }, "n",
- function (c)
- -- The client currently has the input focus, so it cannot be
- -- minimized, since minimized clients can't have the focus.
- c.minimized = true
- end),
- awful.key({ modkey, }, "m",
- function (c)
- c.maximized_horizontal = not c.maximized_horizontal
- c.maximized_vertical = not c.maximized_vertical
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, 9 do
- globalkeys = awful.util.table.join(globalkeys,
- awful.key({ modkey }, "#" .. i + 9,
- function ()
- local screen = mouse.screen
- local tag = awful.tag.gettags(screen)[i]
- if tag then
- awful.tag.viewonly(tag)
- end
- end),
- awful.key({ modkey, "Control" }, "#" .. i + 9,
- function ()
- local screen = mouse.screen
- local tag = awful.tag.gettags(screen)[i]
- if tag then
- awful.tag.viewtoggle(tag)
- end
- end),
- awful.key({ modkey, "Shift" }, "#" .. i + 9,
- function ()
- local tag = awful.tag.gettags(client.focus.screen)[i]
- if client.focus and tag then
- awful.client.movetotag(tag)
- end
- end),
- awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
- function ()
- local tag = awful.tag.gettags(client.focus.screen)[i]
- if client.focus and tag then
- awful.client.toggletag(tag)
- 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))
-
-- Set keys
root.keys(globalkeys)
-- }}}
--- {{{ Rules
-awful.rules.rules = {
- -- All clients will match this rule.
- { rule = { },
- properties = { border_width = beautiful.border_width,
- border_color = beautiful.border_normal,
- focus = awful.client.focus.filter,
- keys = clientkeys,
- buttons = clientbuttons,
- size_hints_honor = false } },
- { rule = { class = "URxvt" },
- properties = { opacity = 0.99 } },
+-- Rules
+require("settings.rules")
- { rule = { class = "MPlayer" },
- properties = { floating = true } },
-
- { rule = { class = "Dwb" },
- properties = { tag = tags[1][1] } },
-
- { rule = { class = "Iron" },
- properties = { tag = tags[1][1] } },
-
- { rule = { instance = "plugin-container" },
- properties = { tag = tags[1][1] } },
-
- { rule = { class = "Gimp" },
- properties = { tag = tags[1][4] } },
-
- { rule = { class = "Gimp", role = "gimp-image-window" },
- properties = { maximized_horizontal = true,
- maximized_vertical = true } },
-}
--- }}}
-
--- {{{ Signals
--- 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)
-
- if not startup and 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)
-
--- No border for maximized clients
-client.connect_signal("focus",
- function(c)
- if c.maximized_horizontal == true and c.maximized_vertical == true then
- c.border_width = 0
- c.border_color = beautiful.border_normal
- else
- c.border_width = beautiful.border_width
- c.border_color = beautiful.border_focus
- end
- end)
-client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
--- }}}
-
--- {{{ Arrange signal handler
-for s = 1, screen.count() do screen[s]:connect_signal("arrange", function ()
- local clients = awful.client.visible(s)
- local layout = awful.layout.getname(awful.layout.get(s))
-
- if #clients > 0 then -- Fine grained borders and floaters control
- for _, c in pairs(clients) do -- Floaters always have borders
- if awful.client.floating.get(c) or layout == "floating" then
- c.border_width = beautiful.border_width
-
- -- No borders with only one visible client
- elseif #clients == 1 or layout == "max" then
- clients[1].border_width = 0
- else
- c.border_width = beautiful.border_width
- end
- end
- end
- end)
-end
--- }}}
+-- Signals
+require("stock.signals")
diff --git a/rc.lua.multicolor b/rc.lua.multicolor
index 95c1ca1..22b3ac8 100644
--- a/rc.lua.multicolor
+++ b/rc.lua.multicolor
@@ -1,8 +1,8 @@
--[[
-
- Multicolor Awesome WM config 2.0
- github.com/copycat-killer
-
+
+ Multicolor Awesome WM config 2.0
+ github.com/copycat-killer
+
--]]
-- {{{ Required libraries
@@ -13,97 +13,28 @@ require("awful.autofocus")
local wibox = require("wibox")
local beautiful = require("beautiful")
local naughty = require("naughty")
-local drop = require("scratchdrop")
local lain = require("lain")
-- }}}
--- {{{ Error handling
-if awesome.startup_errors then
- naughty.notify({ preset = naughty.config.presets.critical,
- title = "Oops, there were errors during startup!",
- text = awesome.startup_errors })
-end
+-- Error handling
+require("myrc.errors")
-do
- local in_error = false
- awesome.connect_signal("debug::error", function (err)
- 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)
-end
--- }}}
-
--- {{{ Autostart applications
-function run_once(cmd)
- findme = cmd
- firstspace = cmd:find(" ")
- if firstspace then
- findme = cmd:sub(0, firstspace-1)
- end
- awful.util.spawn_with_shell("pgrep -u $USER -x " .. findme .. " > /dev/null || (" .. cmd .. ")")
-end
-
-run_once("urxvtd")
-run_once("unclutter")
--- }}}
+-- STARTUP apps
+require("settings.startup")
-- {{{ Variable definitions
--- localization
-os.setlocale(os.getenv("LANG"))
-
-- beautiful init
beautiful.init(os.getenv("HOME") .. "/.config/awesome/themes/multicolor/theme.lua")
--- common
-modkey = "Mod4"
-altkey = "Mod1"
-terminal = "urxvtc" or "xterm"
-editor = os.getenv("EDITOR") or "nano" or "vi"
-editor_cmd = terminal .. " -e " .. editor
+-- variables
+require("settings.variables")
--- user defined
-browser = "dwb"
-browser2 = "iron"
-gui_editor = "gvim"
-graphics = "gimp"
-mail = terminal .. " -e mutt "
-
-local layouts = {
- 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.fair,
- awful.layout.suit.fair.horizontal,
- awful.layout.suit.spiral,
- awful.layout.suit.spiral.dwindle,
- awful.layout.suit.max,
-}
--- }}}
-
--- {{{ Tags
-tags = {
- names = { "web", "term", "docs", "media", "files", "other" },
- layout = { layouts[1], layouts[3], layouts[4], layouts[1], layouts[7], layouts[1] }
-}
-for s = 1, screen.count() do
--- Each screen has its own tag table.
- tags[s] = awful.tag(tags.names, s, tags.layout)
-end
+-- Tags and layouts
+require("settings.tags")
-- }}}
-- {{{ Wallpaper
-if beautiful.wallpaper then
- for s = 1, screen.count() do
- gears.wallpaper.maximized(beautiful.wallpaper, s, true)
- end
-end
+require("stock.wallpaper")
-- }}}
-- {{{ Freedesktop Menu
@@ -198,7 +129,7 @@ volumewidget = lain.widgets.alsa({
end
})
--- Net
+-- Net
netdownicon = wibox.widget.imagebox(beautiful.widget_netdown)
--netdownicon.align = "middle"
netdowninfo = wibox.widget.textbox()
@@ -256,56 +187,15 @@ mywibox = {}
mybottomwibox = {}
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)
- )
-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({ }, 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({ }, 5, function ()
- awful.client.focus.byidx(-1)
- if client.focus then client.focus:raise() end
- end))
+require("stock.taglist")
+require("stock.tasklist")
for s = 1, screen.count() do
-
+
-- Create a promptbox for each screen
mypromptbox[s] = awful.widget.prompt()
-
+
-- We need one layoutbox per screen.
mylayoutbox[s] = awful.widget.layoutbox(s)
mylayoutbox[s]:buttons(awful.util.table.join(
@@ -321,9 +211,9 @@ for s = 1, screen.count() do
mytasklist[s] = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons)
-- Create the upper wibox
- mywibox[s] = awful.wibox({ position = "top", screen = s, height = 20 })
+ mywibox[s] = awful.wibox({ position = "top", screen = s, height = 20 })
--border_width = 0, height = 20 })
-
+
-- Widgets that are aligned to the upper left
local left_layout = wibox.layout.fixed.horizontal()
left_layout:add(mytaglist[s])
@@ -362,20 +252,20 @@ for s = 1, screen.count() do
layout:set_left(left_layout)
--layout:set_middle(mytasklist[s])
layout:set_right(right_layout)
-
+
mywibox[s]:set_widget(layout)
-- Create the bottom wibox
mybottomwibox[s] = awful.wibox({ position = "bottom", screen = s, border_width = 0, height = 20 })
--mybottomwibox[s].visible = false
-
+
-- Widgets that are aligned to the bottom left
bottom_left_layout = wibox.layout.fixed.horizontal()
-
+
-- Widgets that are aligned to the bottom right
bottom_right_layout = wibox.layout.fixed.horizontal()
bottom_right_layout:add(mylayoutbox[s])
-
+
-- Now bring it all together (with the tasklist in the middle)
bottom_layout = wibox.layout.align.horizontal()
bottom_layout:set_left(bottom_left_layout)
@@ -385,106 +275,17 @@ for s = 1, screen.count() do
end
-- }}}
--- {{{ Mouse Bindings
-root.buttons(awful.util.table.join(
- awful.button({ }, 3, function () mymainmenu:toggle() end),
- awful.button({ }, 4, awful.tag.viewnext),
- awful.button({ }, 5, awful.tag.viewprev)
-))
--- }}}
+-- Bindings
+require("settings.binds")
-- {{{ Key bindings
-globalkeys = awful.util.table.join(
- -- Take a screenshot
- -- https://github.com/copycat-killer/dots/blob/master/bin/screenshot
- awful.key({ altkey }, "p", function() os.execute("screenshot") end),
-
- -- Tag browsing
- awful.key({ modkey }, "Left", awful.tag.viewprev ),
- awful.key({ modkey }, "Right", awful.tag.viewnext ),
- awful.key({ modkey }, "Escape", awful.tag.history.restore),
-
- -- Non-empty tag browsing
- awful.key({ altkey }, "Left", function () lain.util.tag_view_nonempty(-1) end),
- awful.key({ altkey }, "Right", function () lain.util.tag_view_nonempty(1) end),
-
- -- Default client focus
- awful.key({ altkey }, "k",
- function ()
- awful.client.focus.byidx( 1)
- if client.focus then client.focus:raise() end
- end),
- awful.key({ altkey }, "j",
- function ()
- awful.client.focus.byidx(-1)
- if client.focus then client.focus:raise() end
- end),
-
- -- By direction client focus
- awful.key({ modkey }, "j",
- function()
- awful.client.focus.bydirection("down")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "k",
- function()
- awful.client.focus.bydirection("up")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "h",
- function()
- awful.client.focus.bydirection("left")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "l",
- function()
- awful.client.focus.bydirection("right")
- if client.focus then client.focus:raise() end
- end),
-
- -- Show Menu
- awful.key({ modkey }, "w",
- function ()
- mymainmenu:show({ keygrabber = true })
- end),
-
+globalkeys = awful.util.table.join(globalkeys,
-- Show/Hide Wibox
awful.key({ modkey }, "b", function ()
mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible
mybottomwibox[mouse.screen].visible = not mybottomwibox[mouse.screen].visible
end),
- -- Layout manipulation
- awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end),
- awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end),
- awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end),
- awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-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({ altkey, "Shift" }, "l", function () awful.tag.incmwfact( 0.05) end),
- awful.key({ altkey, "Shift" }, "h", function () awful.tag.incmwfact(-0.05) end),
- awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end),
- awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
- awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end),
- awful.key({ modkey, "Control" }, "h", 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, "Control" }, "n", awful.client.restore),
-
- -- Standard program
- awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end),
- awful.key({ modkey, "Control" }, "r", awesome.restart),
- awful.key({ modkey, "Shift" }, "q", awesome.quit),
-
- -- Dropdown terminal
- awful.key({ modkey, }, "z", function () drop(terminal) end),
-
-- Widgets popups
awful.key({ altkey, }, "c", function () lain.widgets.calendar:show(7) end),
awful.key({ altkey, }, "h", function () fswidget.show(7) end),
@@ -510,204 +311,15 @@ globalkeys = awful.util.table.join(
function ()
awful.util.spawn("amixer -q set Master playback 100%")
volumewidget.update()
- end),
-
- -- MPD control
- awful.key({ altkey, "Control" }, "Up",
- function ()
- awful.util.spawn_with_shell("mpc toggle || ncmpcpp toggle || ncmpc toggle || pms toggle")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Down",
- function ()
- awful.util.spawn_with_shell("mpc stop || ncmpcpp stop || ncmpc stop || pms stop")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Left",
- function ()
- awful.util.spawn_with_shell("mpc prev || ncmpcpp prev || ncmpc prev || pms prev")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Right",
- function ()
- awful.util.spawn_with_shell("mpc next || ncmpcpp next || ncmpc next || pms next")
- mpdwidget.update()
- end),
-
- -- Copy to clipboard
- awful.key({ modkey }, "c", function () os.execute("xsel -p -o | xsel -i -b") end),
-
- -- User programs
- awful.key({ modkey }, "q", function () awful.util.spawn(browser) end),
- awful.key({ modkey }, "i", function () awful.util.spawn(browser2) end),
- awful.key({ modkey }, "s", function () awful.util.spawn(gui_editor) end),
- awful.key({ modkey }, "g", function () awful.util.spawn(graphics) end),
-
- -- Prompt
- awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end),
- 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)
-)
-
-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, }, "n",
- function (c)
- -- The client currently has the input focus, so it cannot be
- -- minimized, since minimized clients can't have the focus.
- c.minimized = true
- end),
- awful.key({ modkey, }, "m",
- function (c)
- c.maximized_horizontal = not c.maximized_horizontal
- c.maximized_vertical = not c.maximized_vertical
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, 9 do
- globalkeys = awful.util.table.join(globalkeys,
- awful.key({ modkey }, "#" .. i + 9,
- function ()
- local screen = mouse.screen
- local tag = awful.tag.gettags(screen)[i]
- if tag then
- awful.tag.viewonly(tag)
- end
- end),
- awful.key({ modkey, "Control" }, "#" .. i + 9,
- function ()
- local screen = mouse.screen
- local tag = awful.tag.gettags(screen)[i]
- if tag then
- awful.tag.viewtoggle(tag)
- end
- end),
- awful.key({ modkey, "Shift" }, "#" .. i + 9,
- function ()
- local tag = awful.tag.gettags(client.focus.screen)[i]
- if client.focus and tag then
- awful.client.movetotag(tag)
- end
- end),
- awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
- function ()
- local tag = awful.tag.gettags(client.focus.screen)[i]
- if client.focus and tag then
- awful.client.toggletag(tag)
- 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))
-
-- Set keys
root.keys(globalkeys)
-- }}}
--- {{{ Rules
-awful.rules.rules = {
- -- All clients will match this rule.
- { rule = { },
- properties = { border_width = beautiful.border_width,
- border_color = beautiful.border_normal,
- focus = awful.client.focus.filter,
- keys = clientkeys,
- buttons = clientbuttons,
- size_hints_honor = false } },
- { rule = { class = "URxvt" },
- properties = { opacity = 0.99 } },
+-- Rules
+require("settings.rules")
- { rule = { class = "MPlayer" },
- properties = { floating = true } },
-
- { rule = { class = "Dwb" },
- properties = { tag = tags[1][1] } },
-
- { rule = { class = "Iron" },
- properties = { tag = tags[1][1] } },
-
- { rule = { instance = "plugin-container" },
- properties = { tag = tags[1][1] } },
-
- { rule = { class = "Gimp" },
- properties = { tag = tags[1][4] } },
-
- { rule = { class = "Gimp", role = "gimp-image-window" },
- properties = { maximized_horizontal = true,
- maximized_vertical = true } },
-}
--- }}}
-
--- {{{ Signals
--- 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)
-
- if not startup and 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)
-
--- No border for maximized clients
-client.connect_signal("focus",
- function(c)
- if c.maximized_horizontal == true and c.maximized_vertical == true then
- c.border_width = 0
- c.border_color = beautiful.border_normal
- else
- c.border_width = beautiful.border_width
- c.border_color = beautiful.border_focus
- end
- end)
-client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
--- }}}
-
--- {{{ Arrange signal handler
-for s = 1, screen.count() do screen[s]:connect_signal("arrange", function ()
- local clients = awful.client.visible(s)
- local layout = awful.layout.getname(awful.layout.get(s))
-
- if #clients > 0 then -- Fine grained borders and floaters control
- for _, c in pairs(clients) do -- Floaters always have borders
- -- No borders with only one humanly visible client
- if layout == "max" then
- c.border_width = 0
- elseif awful.client.floating.get(c) or layout == "floating" then
- c.border_width = beautiful.border_width
- elseif #clients == 1 then
- clients[1].border_width = 0
- if layout ~= "max" then
- awful.client.moveresize(0, 0, 2, 0, clients[1])
- end
- else
- c.border_width = beautiful.border_width
- end
- end
- end
- end)
-end
--- }}}
+-- Signals
+require("stock.signals")
diff --git a/rc.lua.powerarrow-darker b/rc.lua.powerarrow-darker
index c143005..2ee55b6 100644
--- a/rc.lua.powerarrow-darker
+++ b/rc.lua.powerarrow-darker
@@ -1,8 +1,8 @@
--[[
-
- Powerarrow Darker Awesome WM config 2.0
- github.com/copycat-killer
-
+
+ Powerarrow Darker Awesome WM config 2.0
+ github.com/copycat-killer
+
--]]
-- {{{ Required libraries
@@ -13,94 +13,31 @@ require("awful.autofocus")
local wibox = require("wibox")
local beautiful = require("beautiful")
local naughty = require("naughty")
-local drop = require("scratchdrop")
local lain = require("lain")
-- }}}
--- {{{ Error handling
-if awesome.startup_errors then
- naughty.notify({ preset = naughty.config.presets.critical,
- title = "Oops, there were errors during startup!",
- text = awesome.startup_errors })
-end
+-- Error handling
+require("myrc.errors")
-do
- local in_error = false
- awesome.connect_signal("debug::error", function (err)
- 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)
-end
--- }}}
-
--- {{{ Autostart applications
-function run_once(cmd)
- findme = cmd
- firstspace = cmd:find(" ")
- if firstspace then
- findme = cmd:sub(0, firstspace-1)
- end
- awful.util.spawn_with_shell("pgrep -u $USER -x " .. findme .. " > /dev/null || (" .. cmd .. ")")
-end
-
-run_once("urxvtd")
-run_once("unclutter")
--- }}}
+-- STARTUP apps
+require("settings.startup")
-- {{{ Variable definitions
--- localization
-os.setlocale(os.getenv("LANG"))
-
-- beautiful init
beautiful.init(os.getenv("HOME") .. "/.config/awesome/themes/powerarrow-darker/theme.lua")
--- common
-modkey = "Mod4"
-altkey = "Mod1"
-terminal = "urxvtc" or "xterm"
-editor = os.getenv("EDITOR") or "nano" or "vi"
-editor_cmd = terminal .. " -e " .. editor
+-- variables
+require("settings.variables")
--- user defined
-browser = "dwb"
-browser2 = "iron"
-gui_editor = "gvim"
-graphics = "gimp"
-mail = terminal .. " -e mutt "
iptraf = terminal .. " -g 180x54-20+34 -e sudo iptraf-ng -i all "
musicplr = terminal .. " -g 130x34-320+16 -e ncmpcpp "
-local layouts = {
- awful.layout.suit.floating,
- awful.layout.suit.tile,
- awful.layout.suit.tile.bottom,
- awful.layout.suit.fair,
- awful.layout.suit.fair.horizontal,
-}
--- }}}
-
--- {{{ Tags
-tags = {
- names = { "1", "2", "3", "4", "5"},
- layout = { layouts[1], layouts[2], layouts[3], layouts[1], layouts[4] }
-}
-
-for s = 1, screen.count() do
- tags[s] = awful.tag(tags.names, s, tags.layout)
-end
+-- Tags and layouts
+require("settings.tags")
-- }}}
-- {{{ Wallpaper
-if beautiful.wallpaper then
- for s = 1, screen.count() do
- gears.wallpaper.maximized(beautiful.wallpaper, s, true)
- end
-end
+require("stock.wallpaper")
-- }}}
-- {{{ Menu
@@ -255,49 +192,8 @@ arrl_ld:set_image(beautiful.arrl_ld)
mywibox = {}
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)
- )
-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({ }, 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({ }, 5, function ()
- awful.client.focus.byidx(-1)
- if client.focus then client.focus:raise() end
- end))
+require("stock.taglist")
+require("stock.tasklist")
for s = 1, screen.count() do
@@ -376,105 +272,16 @@ for s = 1, screen.count() do
end
-- }}}
--- {{{ Mouse Bindings
-root.buttons(awful.util.table.join(
- awful.button({ }, 3, function () mymainmenu:toggle() end),
- awful.button({ }, 4, awful.tag.viewnext),
- awful.button({ }, 5, awful.tag.viewprev)
-))
--- }}}
+-- Bindings
+require("settings.binds")
-- {{{ Key bindings
-globalkeys = awful.util.table.join(
- -- Take a screenshot
- -- https://github.com/copycat-killer/dots/blob/master/bin/screenshot
- awful.key({ altkey }, "p", function() os.execute("screenshot") end),
-
- -- Tag browsing
- awful.key({ modkey }, "Left", awful.tag.viewprev ),
- awful.key({ modkey }, "Right", awful.tag.viewnext ),
- awful.key({ modkey }, "Escape", awful.tag.history.restore),
-
- -- Non-empty tag browsing
- awful.key({ altkey }, "Left", function () lain.util.tag_view_nonempty(-1) end),
- awful.key({ altkey }, "Right", function () lain.util.tag_view_nonempty(1) end),
-
- -- Default client focus
- awful.key({ altkey }, "k",
- function ()
- awful.client.focus.byidx( 1)
- if client.focus then client.focus:raise() end
- end),
- awful.key({ altkey }, "j",
- function ()
- awful.client.focus.byidx(-1)
- if client.focus then client.focus:raise() end
- end),
-
- -- By direction client focus
- awful.key({ modkey }, "j",
- function()
- awful.client.focus.bydirection("down")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "k",
- function()
- awful.client.focus.bydirection("up")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "h",
- function()
- awful.client.focus.bydirection("left")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "l",
- function()
- awful.client.focus.bydirection("right")
- if client.focus then client.focus:raise() end
- end),
-
- -- Show Menu
- awful.key({ modkey }, "w",
- function ()
- mymainmenu:show({ keygrabber = true })
- end),
-
+globalkeys = awful.util.table.join(globalkeys,
-- Show/Hide Wibox
awful.key({ modkey }, "b", function ()
mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible
end),
- -- Layout manipulation
- awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end),
- awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end),
- awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end),
- awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-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({ altkey, "Shift" }, "l", function () awful.tag.incmwfact( 0.05) end),
- awful.key({ altkey, "Shift" }, "h", function () awful.tag.incmwfact(-0.05) end),
- awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end),
- awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
- awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end),
- awful.key({ modkey, "Control" }, "h", 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, "Control" }, "n", awful.client.restore),
-
- -- Standard program
- awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end),
- awful.key({ modkey, "Control" }, "r", awesome.restart),
- awful.key({ modkey, "Shift" }, "q", awesome.quit),
-
- -- Dropdown terminal
- awful.key({ modkey, }, "z", function () drop(terminal) end),
-
-- Widgets popups
awful.key({ altkey, }, "c", function () lain.widgets.calendar:show(7) end),
awful.key({ altkey, }, "h", function () fswidget.show(7) end),
@@ -499,200 +306,15 @@ globalkeys = awful.util.table.join(
function ()
awful.util.spawn("amixer -q set Master playback 100%")
volumewidget.update()
- end),
-
- -- MPD control
- awful.key({ altkey, "Control" }, "Up",
- function ()
- awful.util.spawn_with_shell("mpc toggle || ncmpcpp toggle || ncmpc toggle || pms toggle")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Down",
- function ()
- awful.util.spawn_with_shell("mpc stop || ncmpcpp stop || ncmpc stop || pms stop")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Left",
- function ()
- awful.util.spawn_with_shell("mpc prev || ncmpcpp prev || ncmpc prev || pms prev")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Right",
- function ()
- awful.util.spawn_with_shell("mpc next || ncmpcpp next || ncmpc next || pms next")
- mpdwidget.update()
- end),
-
- -- Copy to clipboard
- awful.key({ modkey }, "c", function () os.execute("xsel -p -o | xsel -i -b") end),
-
- -- User programs
- awful.key({ modkey }, "q", function () awful.util.spawn(browser) end),
- awful.key({ modkey }, "i", function () awful.util.spawn(browser2) end),
- awful.key({ modkey }, "s", function () awful.util.spawn(gui_editor) end),
- awful.key({ modkey }, "g", function () awful.util.spawn(graphics) end),
-
- -- Prompt
- awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end),
- 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)
-)
-
-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, }, "n",
- function (c)
- -- The client currently has the input focus, so it cannot be
- -- minimized, since minimized clients can't have the focus.
- c.minimized = true
- end),
- awful.key({ modkey, }, "m",
- function (c)
- c.maximized_horizontal = not c.maximized_horizontal
- c.maximized_vertical = not c.maximized_vertical
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, 9 do
- globalkeys = awful.util.table.join(globalkeys,
- awful.key({ modkey }, "#" .. i + 9,
- function ()
- local screen = mouse.screen
- local tag = awful.tag.gettags(screen)[i]
- if tag then
- awful.tag.viewonly(tag)
- end
- end),
- awful.key({ modkey, "Control" }, "#" .. i + 9,
- function ()
- local screen = mouse.screen
- local tag = awful.tag.gettags(screen)[i]
- if tag then
- awful.tag.viewtoggle(tag)
- end
- end),
- awful.key({ modkey, "Shift" }, "#" .. i + 9,
- function ()
- local tag = awful.tag.gettags(client.focus.screen)[i]
- if client.focus and tag then
- awful.client.movetotag(tag)
- end
- end),
- awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
- function ()
- local tag = awful.tag.gettags(client.focus.screen)[i]
- if client.focus and tag then
- awful.client.toggletag(tag)
- 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))
-
-- Set keys
root.keys(globalkeys)
-- }}}
--- {{{ Rules
-awful.rules.rules = {
- -- All clients will match this rule.
- { rule = { },
- properties = { border_width = beautiful.border_width,
- border_color = beautiful.border_normal,
- focus = awful.client.focus.filter,
- keys = clientkeys,
- buttons = clientbuttons,
- size_hints_honor = false } },
- { rule = { class = "URxvt" },
- properties = { opacity = 0.99 } },
+-- Rules
+require("settings.rules")
- { rule = { class = "MPlayer" },
- properties = { floating = true } },
-
- { rule = { class = "Dwb" },
- properties = { tag = tags[1][1] } },
-
- { rule = { class = "Iron" },
- properties = { tag = tags[1][1] } },
-
- { rule = { instance = "plugin-container" },
- properties = { tag = tags[1][1] } },
-
- { rule = { class = "Gimp" },
- properties = { tag = tags[1][4] } },
-
- { rule = { class = "Gimp", role = "gimp-image-window" },
- properties = { maximized_horizontal = true,
- maximized_vertical = true } },
-}
--- }}}
-
--- {{{ Signals
--- 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)
-
- if not startup and 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)
-
--- No border for maximized clients
-client.connect_signal("focus",
- function(c)
- if c.maximized_horizontal == true and c.maximized_vertical == true then
- c.border_width = 0
- c.border_color = beautiful.border_normal
- else
- c.border_width = beautiful.border_width
- c.border_color = beautiful.border_focus
- end
- end)
-client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
--- }}}
-
--- {{{ Arrange signal handler
-for s = 1, screen.count() do screen[s]:connect_signal("arrange", function ()
- local clients = awful.client.visible(s)
- local layout = awful.layout.getname(awful.layout.get(s))
-
- if #clients > 0 then -- Fine grained borders and floaters control
- for _, c in pairs(clients) do -- Floaters always have borders
- if awful.client.floating.get(c) or layout == "floating" then
- c.border_width = beautiful.border_width
-
- -- No borders with only one visible client
- elseif #clients == 1 or layout == "max" then
- clients[1].border_width = 0
- else
- c.border_width = beautiful.border_width
- end
- end
- end
- end)
-end
--- }}}
+-- Signals
+require("stock.signals")
diff --git a/rc.lua.rainbow b/rc.lua.rainbow
index 9f58f3a..9749f21 100644
--- a/rc.lua.rainbow
+++ b/rc.lua.rainbow
@@ -1,8 +1,8 @@
--[[
- Rainbow Awesome WM config 2.0
- github.com/copycat-killer
-
+ Rainbow Awesome WM config 2.0
+ github.com/copycat-killer
+
--]]
-- {{{ Required libraries
@@ -13,98 +13,32 @@ require("awful.autofocus")
local wibox = require("wibox")
local beautiful = require("beautiful")
local naughty = require("naughty")
-local drop = require("scratchdrop")
local lain = require("lain")
-- }}}
--- {{{ Error handling
-if awesome.startup_errors then
- naughty.notify({ preset = naughty.config.presets.critical,
- title = "Oops, there were errors during startup!",
- text = awesome.startup_errors })
-end
+-- Error handling
+require("myrc.errors")
-do
- local in_error = false
- awesome.connect_signal("debug::error", function (err)
- 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)
-end
--- }}}
-
--- {{{ Autostart applications
-function run_once(cmd)
- findme = cmd
- firstspace = cmd:find(" ")
- if firstspace then
- findme = cmd:sub(0, firstspace-1)
- end
- awful.util.spawn_with_shell("pgrep -u $USER -x " .. findme .. " > /dev/null || (" .. cmd .. ")")
-end
-
-run_once("urxvtd")
-run_once("unclutter")
-run_once("compton")
--- }}}
+-- STARTUP apps
+require("settings.startup")
-- {{{ Variable definitions
--- localization
-os.setlocale(os.getenv("LANG"))
-
-- beautiful init
beautiful.init(os.getenv("HOME") .. "/.config/awesome/themes/rainbow/theme.lua")
--- common
-modkey = "Mod4"
-altkey = "Mod1"
-terminal = "urxvtc" or "xterm"
-editor = os.getenv("EDITOR") or "nano" or "vi"
-editor_cmd = terminal .. " -e " .. editor
-
--- user defined
-browser = "dwb"
-browser2 = "iron"
-gui_editor = "gvim"
-graphics = "gimp"
+-- variables
+require("settings.variables")
-- lain
lain.layout.termfair.nmaster = 3
lain.layout.termfair.ncol = 1
-local layouts = {
- awful.layout.suit.floating,
- awful.layout.suit.fair,
- awful.layout.suit.tile,
- lain.layout.uselessfair.horizontal,
- lain.layout.uselesstile,
- lain.layout.uselessfair,
- lain.layout.termfair,
- lain.layout.uselesspiral.dwindle
-}
--- }}}
-
--- {{{ Tags
-tags = {
- names = { "www", "dev", "docs", "media" },
- layout = { layouts[1], layouts[2], layouts[3], layouts[4] }
-}
-for s = 1, screen.count() do
- tags[s] = awful.tag(tags.names, s, tags.layout)
-end
+-- Tags and layouts
+require("settings.tags")
-- }}}
-- {{{ Wallpaper
-if beautiful.wallpaper then
- for s = 1, screen.count() do
- gears.wallpaper.maximized(beautiful.wallpaper, s, true)
- end
-end
+require("stock.wallpaper")
-- }}}
-- {{{ Menu
@@ -209,48 +143,8 @@ med_spr = wibox.widget.textbox(' ')
mywibox = {}
mypromptbox = {}
txtlayoutbox = {}
-mytaglist = {}
-mytasklist = {}
-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))
-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({ }, 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({ }, 5, function ()
- awful.client.focus.byidx(-1)
- if client.focus then client.focus:raise() end
- end))
+require("stock.taglist")
+require("stock.tasklist")
-- Writes a string representation of the current layout in a textbox widget
function updatelayoutbox(layout, s)
@@ -317,69 +211,11 @@ for s = 1, screen.count() do
end
-- }}}
--- {{{ Mouse bindings
-root.buttons(awful.util.table.join(
- awful.button({ }, 3, function () mymainmenu:toggle() end),
- awful.button({ }, 4, awful.tag.viewnext),
- awful.button({ }, 5, awful.tag.viewprev)
-))
--- }}}
+-- Bindings
+require("settings.binds")
-- {{{ Key bindings
-globalkeys = awful.util.table.join(
- -- Take a screenshot
- -- https://github.com/copycat-killer/dots/blob/master/bin/screenshot
- awful.key({ altkey }, "p", function() os.execute("screenshot") end),
-
- -- Tag browsing
- awful.key({ modkey }, "Left", awful.tag.viewprev ),
- awful.key({ modkey }, "Right", awful.tag.viewnext ),
- awful.key({ modkey }, "Escape", awful.tag.history.restore),
-
- -- Non-empty tag browsing
- awful.key({ altkey }, "Left", function () lain.util.tag_view_nonempty(-1) end),
- awful.key({ altkey }, "Right", function () lain.util.tag_view_nonempty(1) end),
-
- -- Default client focus
- awful.key({ altkey }, "k",
- function ()
- awful.client.focus.byidx( 1)
- if client.focus then client.focus:raise() end
- end),
- awful.key({ altkey }, "j",
- function ()
- awful.client.focus.byidx(-1)
- if client.focus then client.focus:raise() end
- end),
-
- -- By direction client focus
- awful.key({ modkey }, "j",
- function()
- awful.client.focus.bydirection("down")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "k",
- function()
- awful.client.focus.bydirection("up")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "h",
- function()
- awful.client.focus.bydirection("left")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "l",
- function()
- awful.client.focus.bydirection("right")
- if client.focus then client.focus:raise() end
- end),
-
- -- Show Menu
- awful.key({ modkey }, "w",
- function ()
- mymainmenu:show({ keygrabber = true })
- end),
-
+globalkeys = awful.util.table.join(globalkeys,
-- Show/Hide Wibox
awful.key({ modkey }, "b", function ()
mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible
@@ -389,37 +225,6 @@ globalkeys = awful.util.table.join(
awful.key({ altkey, "Control" }, "+", function () lain.util.useless_gaps_resize(1) end),
awful.key({ altkey, "Control" }, "-", function () lain.util.useless_gaps_resize(-1) end),
- -- Layout manipulation
- awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end),
- awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end),
- awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end),
- awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-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({ altkey, "Shift" }, "l", function () awful.tag.incmwfact( 0.05) end),
- awful.key({ altkey, "Shift" }, "h", function () awful.tag.incmwfact(-0.05) end),
- awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end),
- awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
- awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end),
- awful.key({ modkey, "Control" }, "h", 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, "Control" }, "n", awful.client.restore),
-
- -- Standard program
- awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end),
- awful.key({ modkey, "Control" }, "r", awesome.restart),
- awful.key({ modkey, "Shift" }, "q", awesome.quit),
-
- -- Dropdown terminal
- awful.key({ modkey, }, "z", function () drop(terminal) end),
-
-- Widgets popups
awful.key({ altkey, }, "c", function () lain.widgets.calendar:show(7) end),
awful.key({ altkey, }, "h", function () fshome.show(7) end),
@@ -445,200 +250,15 @@ globalkeys = awful.util.table.join(
function ()
awful.util.spawn("amixer -q set " .. volume.channel .. " playback 100%")
volume.notify()
- end),
-
- -- MPD control
- awful.key({ altkey, "Control" }, "Up",
- function ()
- awful.util.spawn_with_shell("mpc toggle || ncmpcpp toggle || ncmpc toggle || pms toggle")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Down",
- function ()
- awful.util.spawn_with_shell("mpc stop || ncmpcpp stop || ncmpc stop || pms stop")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Left",
- function ()
- awful.util.spawn_with_shell("mpc prev || ncmpcpp prev || ncmpc prev || pms prev")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Right",
- function ()
- awful.util.spawn_with_shell("mpc next || ncmpcpp next || ncmpc next || pms next")
- mpdwidget.update()
- end),
-
- -- Copy to clipboard
- awful.key({ modkey }, "c", function () os.execute("xsel -p -o | xsel -i -b") end),
-
- -- User programs
- awful.key({ modkey }, "q", function () awful.util.spawn(browser) end),
- awful.key({ modkey }, "i", function () awful.util.spawn(browser2) end),
- awful.key({ modkey }, "s", function () awful.util.spawn(gui_editor) end),
- awful.key({ modkey }, "g", function () awful.util.spawn(graphics) end),
-
- -- Prompt
- awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end),
- 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)
-)
-
-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, }, "n",
- function (c)
- -- The client currently has the input focus, so it cannot be
- -- minimized, since minimized clients can't have the focus.
- c.minimized = true
- end),
- awful.key({ modkey, }, "m",
- function (c)
- c.maximized_horizontal = not c.maximized_horizontal
- c.maximized_vertical = not c.maximized_vertical
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, 9 do
- globalkeys = awful.util.table.join(globalkeys,
- awful.key({ modkey }, "#" .. i + 9,
- function ()
- local screen = mouse.screen
- local tag = awful.tag.gettags(screen)[i]
- if tag then
- awful.tag.viewonly(tag)
- end
- end),
- awful.key({ modkey, "Control" }, "#" .. i + 9,
- function ()
- local screen = mouse.screen
- local tag = awful.tag.gettags(screen)[i]
- if tag then
- awful.tag.viewtoggle(tag)
- end
- end),
- awful.key({ modkey, "Shift" }, "#" .. i + 9,
- function ()
- local tag = awful.tag.gettags(client.focus.screen)[i]
- if client.focus and tag then
- awful.client.movetotag(tag)
- end
- end),
- awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
- function ()
- local tag = awful.tag.gettags(client.focus.screen)[i]
- if client.focus and tag then
- awful.client.toggletag(tag)
- 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))
-
-- Set keys
root.keys(globalkeys)
-- }}}
--- {{{ Rules
-awful.rules.rules = {
- -- All clients will match this rule.
- { rule = { },
- properties = { border_width = beautiful.border_width,
- border_color = beautiful.border_normal,
- focus = awful.client.focus.filter,
- keys = clientkeys,
- buttons = clientbuttons,
- size_hints_honor = false } },
- { rule = { class = "URxvt" },
- properties = { opacity = 0.99 } },
+-- Rules
+require("settings.rules")
- { rule = { class = "MPlayer" },
- properties = { floating = true } },
-
- { rule = { class = "Dwb" },
- properties = { tag = tags[1][1] } },
-
- { rule = { class = "Iron" },
- properties = { tag = tags[1][1] } },
-
- { rule = { instance = "plugin-container" },
- properties = { tag = tags[1][1] } },
-
- { rule = { class = "Gimp" },
- properties = { tag = tags[1][4] } },
-
- { rule = { class = "Gimp", role = "gimp-image-window" },
- properties = { maximized_horizontal = true,
- maximized_vertical = true } },
-}
--- }}}
-
--- {{{ Signals
--- 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)
-
- if not startup and 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)
-
--- No border for maximized clients
-client.connect_signal("focus",
- function(c)
- if c.maximized_horizontal == true and c.maximized_vertical == true then
- c.border_width = 0
- c.border_color = beautiful.border_normal
- else
- c.border_width = beautiful.border_width
- c.border_color = beautiful.border_focus
- end
- end)
-client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
--- }}}
-
--- {{{ Arrange signal handler
-for s = 1, screen.count() do screen[s]:connect_signal("arrange", function ()
- local clients = awful.client.visible(s)
- local layout = awful.layout.getname(awful.layout.get(s))
-
- if #clients > 0 then -- Fine grained borders and floaters control
- for _, c in pairs(clients) do -- Floaters always have borders
- if awful.client.floating.get(c) or layout == "floating" then
- c.border_width = beautiful.border_width
-
- -- No borders with only one visible client
- elseif #clients == 1 or layout == "max" then
- clients[1].border_width = 0
- else
- c.border_width = beautiful.border_width
- end
- end
- end
- end)
-end
--- }}}
+-- Signals
+require("stock.signals")
diff --git a/rc.lua.steamburn b/rc.lua.steamburn
index f116819..00bdb00 100644
--- a/rc.lua.steamburn
+++ b/rc.lua.steamburn
@@ -1,8 +1,8 @@
--[[
-
- Steamburn Awesome WM config 3.0
- github.com/copycat-killer
-
+
+ Steamburn Awesome WM config 3.0
+ github.com/copycat-killer
+
--]]
-- {{{ Required libraries
@@ -13,96 +13,32 @@ require("awful.autofocus")
local wibox = require("wibox")
local beautiful = require("beautiful")
local naughty = require("naughty")
-local drop = require("scratchdrop")
local lain = require("lain")
-- }}}
--- {{{ Error handling
-if awesome.startup_errors then
- naughty.notify({ preset = naughty.config.presets.critical,
- title = "Oops, there were errors during startup!",
- text = awesome.startup_errors })
-end
+-- Error handling
+require("myrc.errors")
-do
- local in_error = false
- awesome.connect_signal("debug::error", function (err)
- 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)
-end
--- }}}
-
--- {{{ Autostart applications
-function run_once(cmd)
- findme = cmd
- firstspace = cmd:find(" ")
- if firstspace then
- findme = cmd:sub(0, firstspace-1)
- end
- awful.util.spawn_with_shell("pgrep -u $USER -x " .. findme .. " > /dev/null || (" .. cmd .. ")")
-end
-
-run_once("urxvtd")
-run_once("unclutter")
-run_once("compton")
--- }}}
+-- STARTUP apps
+require("settings.startup")
-- {{{ Variable definitions
--- localization
-os.setlocale(os.getenv("LANG"))
-
-- beautiful init
beautiful.init(os.getenv("HOME") .. "/.config/awesome/themes/steamburn/theme.lua")
--- common
-modkey = "Mod4"
-altkey = "Mod1"
-terminal = "urxvtc" or "xterm"
-editor = os.getenv("EDITOR") or "nano" or "vi"
-editor_cmd = terminal .. " -e " .. editor
-
--- user defined
-browser = "dwb"
-browser2 = "iron"
-gui_editor = "gvim"
-graphics = "gimp"
+-- variables
+require("settings.variables")
-- lain
lain.layout.termfair.nmaster = 3
lain.layout.termfair.ncol = 1
-local layouts = {
- awful.layout.suit.floating,
- lain.layout.uselessfair.horizontal,
- lain.layout.uselesstile,
- lain.layout.uselessfair,
- lain.layout.termfair,
- lain.layout.uselesspiral.dwindle
-}
--- }}}
-
--- {{{ Tags
-tags = {
- names = { "web", "term", "docs", "media", "down"},
- layout = { layouts[1], layouts[3], layouts[4], layouts[1], layouts[6] }
-}
-for s = 1, screen.count() do
- tags[s] = awful.tag(tags.names, s, tags.layout)
-end
+-- Tags and layouts
+require("settings.tags")
-- }}}
-- {{{ Wallpaper
-if beautiful.wallpaper then
- for s = 1, screen.count() do
- gears.wallpaper.maximized(beautiful.wallpaper, s, true)
- end
-end
+require("stock.wallpaper")
-- }}}
-- {{{ Menu
@@ -220,48 +156,8 @@ spr = wibox.widget.textbox(' ')
mywibox = {}
mypromptbox = {}
txtlayoutbox = {}
-mytaglist = {}
-mytasklist = {}
-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))
-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({ }, 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({ }, 5, function ()
- awful.client.focus.byidx(-1)
- if client.focus then client.focus:raise() end
- end))
+require("stock.taglist")
+require("stock.tasklist")
-- Writes a string representation of the current layout in a textbox widget
function updatelayoutbox(layout, s)
@@ -330,105 +226,16 @@ for s = 1, screen.count() do
end
-- }}}
--- {{{ Mouse bindings
-root.buttons(awful.util.table.join(
- awful.button({ }, 3, function () mymainmenu:toggle() end),
- awful.button({ }, 4, awful.tag.viewnext),
- awful.button({ }, 5, awful.tag.viewprev)
-))
--- }}}
+-- Bindings
+require("settings.binds")
-- {{{ Key bindings
-globalkeys = awful.util.table.join(
- -- Take a screenshot
- -- https://github.com/copycat-killer/dots/blob/master/bin/screenshot
- awful.key({ altkey }, "p", function() os.execute("screenshot") end),
-
- -- Tag browsing
- awful.key({ modkey }, "Left", awful.tag.viewprev ),
- awful.key({ modkey }, "Right", awful.tag.viewnext ),
- awful.key({ modkey }, "Escape", awful.tag.history.restore),
-
- -- Non-empty tag browsing
- awful.key({ altkey }, "Left", function () lain.util.tag_view_nonempty(-1) end),
- awful.key({ altkey }, "Right", function () lain.util.tag_view_nonempty(1) end),
-
- -- Default client focus
- awful.key({ altkey }, "k",
- function ()
- awful.client.focus.byidx( 1)
- if client.focus then client.focus:raise() end
- end),
- awful.key({ altkey }, "j",
- function ()
- awful.client.focus.byidx(-1)
- if client.focus then client.focus:raise() end
- end),
-
- -- By direction client focus
- awful.key({ modkey }, "j",
- function()
- awful.client.focus.bydirection("down")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "k",
- function()
- awful.client.focus.bydirection("up")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "h",
- function()
- awful.client.focus.bydirection("left")
- if client.focus then client.focus:raise() end
- end),
- awful.key({ modkey }, "l",
- function()
- awful.client.focus.bydirection("right")
- if client.focus then client.focus:raise() end
- end),
-
- -- Show Menu
- awful.key({ modkey }, "w",
- function ()
- mymainmenu:show({ keygrabber = true })
- end),
-
+globalkeys = awful.util.table.join(globalkeys,
-- Show/Hide Wibox
awful.key({ modkey }, "b", function ()
mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible
end),
- -- Layout manipulation
- awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end),
- awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end),
- awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end),
- awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-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({ altkey, "Shift" }, "l", function () awful.tag.incmwfact( 0.05) end),
- awful.key({ altkey, "Shift" }, "h", function () awful.tag.incmwfact(-0.05) end),
- awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end),
- awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
- awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end),
- awful.key({ modkey, "Control" }, "h", 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, "Control" }, "n", awful.client.restore),
-
- -- Standard program
- awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end),
- awful.key({ modkey, "Control" }, "r", awesome.restart),
- awful.key({ modkey, "Shift" }, "q", awesome.quit),
-
- -- Dropdown terminal
- awful.key({ modkey, }, "z", function () drop(terminal) end),
-
-- Widgets popups
awful.key({ altkey, }, "c", function () lain.widgets.calendar:show(7) end),
awful.key({ altkey, }, "h", function () fshomeupd.show(7) end),
@@ -454,200 +261,15 @@ globalkeys = awful.util.table.join(
function ()
awful.util.spawn("amixer -q set Master playback 100%")
volumewidget.update()
- end),
-
- -- MPD control
- awful.key({ altkey, "Control" }, "Up",
- function ()
- awful.util.spawn_with_shell("mpc toggle || ncmpcpp toggle || ncmpc toggle || pms toggle")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Down",
- function ()
- awful.util.spawn_with_shell("mpc stop || ncmpcpp stop || ncmpc stop || pms stop")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Left",
- function ()
- awful.util.spawn_with_shell("mpc prev || ncmpcpp prev || ncmpc prev || pms prev")
- mpdwidget.update()
- end),
- awful.key({ altkey, "Control" }, "Right",
- function ()
- awful.util.spawn_with_shell("mpc next || ncmpcpp next || ncmpc next || pms next")
- mpdwidget.update()
- end),
-
- -- Copy to clipboard
- awful.key({ modkey }, "c", function () os.execute("xsel -p -o | xsel -i -b") end),
-
- -- User programs
- awful.key({ modkey }, "q", function () awful.util.spawn(browser) end),
- awful.key({ modkey }, "i", function () awful.util.spawn(browser2) end),
- awful.key({ modkey }, "s", function () awful.util.spawn(gui_editor) end),
- awful.key({ modkey }, "g", function () awful.util.spawn(graphics) end),
-
- -- Prompt
- awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end),
- 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)
-)
-
-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, }, "n",
- function (c)
- -- The client currently has the input focus, so it cannot be
- -- minimized, since minimized clients can't have the focus.
- c.minimized = true
- end),
- awful.key({ modkey, }, "m",
- function (c)
- c.maximized_horizontal = not c.maximized_horizontal
- c.maximized_vertical = not c.maximized_vertical
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, 9 do
- globalkeys = awful.util.table.join(globalkeys,
- awful.key({ modkey }, "#" .. i + 9,
- function ()
- local screen = mouse.screen
- local tag = awful.tag.gettags(screen)[i]
- if tag then
- awful.tag.viewonly(tag)
- end
- end),
- awful.key({ modkey, "Control" }, "#" .. i + 9,
- function ()
- local screen = mouse.screen
- local tag = awful.tag.gettags(screen)[i]
- if tag then
- awful.tag.viewtoggle(tag)
- end
- end),
- awful.key({ modkey, "Shift" }, "#" .. i + 9,
- function ()
- local tag = awful.tag.gettags(client.focus.screen)[i]
- if client.focus and tag then
- awful.client.movetotag(tag)
- end
- end),
- awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
- function ()
- local tag = awful.tag.gettags(client.focus.screen)[i]
- if client.focus and tag then
- awful.client.toggletag(tag)
- 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))
-
-- Set keys
root.keys(globalkeys)
-- }}}
--- {{{ Rules
-awful.rules.rules = {
- -- All clients will match this rule.
- { rule = { },
- properties = { border_width = beautiful.border_width,
- border_color = beautiful.border_normal,
- focus = awful.client.focus.filter,
- keys = clientkeys,
- buttons = clientbuttons,
- size_hints_honor = false } },
- { rule = { class = "URxvt" },
- properties = { opacity = 0.99 } },
+-- Rules
+require("settings.rules")
- { rule = { class = "MPlayer" },
- properties = { floating = true } },
-
- { rule = { class = "Dwb" },
- properties = { tag = tags[1][1] } },
-
- { rule = { class = "Iron" },
- properties = { tag = tags[1][1] } },
-
- { rule = { instance = "plugin-container" },
- properties = { tag = tags[1][1] } },
-
- { rule = { class = "Gimp" },
- properties = { tag = tags[1][4] } },
-
- { rule = { class = "Gimp", role = "gimp-image-window" },
- properties = { maximized_horizontal = true,
- maximized_vertical = true } },
-}
--- }}}
-
--- {{{ Signals
--- 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)
-
- if not startup and 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)
-
--- No border for maximized clients
-client.connect_signal("focus",
- function(c)
- if c.maximized_horizontal == true and c.maximized_vertical == true then
- c.border_width = 0
- c.border_color = beautiful.border_normal
- else
- c.border_width = beautiful.border_width
- c.border_color = beautiful.border_focus
- end
- end)
-client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
--- }}}
-
--- {{{ Arrange signal handler
-for s = 1, screen.count() do screen[s]:connect_signal("arrange", function ()
- local clients = awful.client.visible(s)
- local layout = awful.layout.getname(awful.layout.get(s))
-
- if #clients > 0 then -- Fine grained borders and floaters control
- for _, c in pairs(clients) do -- Floaters always have borders
- if awful.client.floating.get(c) or layout == "floating" then
- c.border_width = beautiful.border_width
-
- -- No borders with only one visible client
- elseif #clients == 1 or layout == "max" then
- clients[1].border_width = 0
- else
- c.border_width = beautiful.border_width
- end
- end
- end
- end)
-end
--- }}}
+-- Signals
+require("stock.signals")
diff --git a/settings/binds.lua b/settings/binds.lua
new file mode 100644
index 0000000..67484d5
--- /dev/null
+++ b/settings/binds.lua
@@ -0,0 +1,204 @@
+local awful = require("awful")
+local drop = require("scratchdrop")
+local lain = require("lain")
+
+-- {{{ Mouse bindings
+root.buttons(awful.util.table.join(
+ awful.button({ }, 3, function () mymainmenu:toggle() end),
+ awful.button({ }, 4, awful.tag.viewnext),
+ awful.button({ }, 5, awful.tag.viewprev)
+))
+-- }}}
+
+-- {{{ Key bindings
+
+globalkeys = awful.util.table.join(globalkeys,
+ -- Layout manipulation
+ awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end),
+ awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end),
+ awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end),
+ awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-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({ altkey, "Shift" }, "l", function () awful.tag.incmwfact( 0.05) end),
+ awful.key({ altkey, "Shift" }, "h", function () awful.tag.incmwfact(-0.05) end),
+ awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end),
+ awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
+ awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end),
+ awful.key({ modkey, "Control" }, "h", 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, "Control" }, "n", awful.client.restore),
+
+ -- Standard program
+ awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end),
+ awful.key({ modkey, "Control" }, "r", awesome.restart),
+ awful.key({ modkey, "Shift" }, "q", awesome.quit),
+
+ -- Dropdown terminal
+ awful.key({ modkey, }, "z", function () drop(terminal) end),
+
+ -- Take a screenshot
+ -- https://github.com/copycat-killer/dots/blob/master/bin/screenshot
+ awful.key({ altkey }, "p", function() os.execute("screenshot") end),
+
+ -- Tag browsing
+ awful.key({ modkey }, "Left", awful.tag.viewprev ),
+ awful.key({ modkey }, "Right", awful.tag.viewnext ),
+ awful.key({ modkey }, "Escape", awful.tag.history.restore),
+
+ -- Non-empty tag browsing
+ awful.key({ altkey }, "Left", function () lain.util.tag_view_nonempty(-1) end),
+ awful.key({ altkey }, "Right", function () lain.util.tag_view_nonempty(1) end),
+
+ -- Default client focus
+ awful.key({ altkey }, "k",
+ function ()
+ awful.client.focus.byidx( 1)
+ if client.focus then client.focus:raise() end
+ end),
+ awful.key({ altkey }, "j",
+ function ()
+ awful.client.focus.byidx(-1)
+ if client.focus then client.focus:raise() end
+ end),
+
+ -- By direction client focus
+ awful.key({ modkey }, "j",
+ function()
+ awful.client.focus.bydirection("down")
+ if client.focus then client.focus:raise() end
+ end),
+ awful.key({ modkey }, "k",
+ function()
+ awful.client.focus.bydirection("up")
+ if client.focus then client.focus:raise() end
+ end),
+ awful.key({ modkey }, "h",
+ function()
+ awful.client.focus.bydirection("left")
+ if client.focus then client.focus:raise() end
+ end),
+ awful.key({ modkey }, "l",
+ function()
+ awful.client.focus.bydirection("right")
+ if client.focus then client.focus:raise() end
+ end),
+
+ -- Show Menu
+ awful.key({ modkey }, "w",
+ function ()
+ mymainmenu:show({ keygrabber = true })
+ end),
+
+ -- MPD control
+ awful.key({ altkey, "Control" }, "Up",
+ function ()
+ awful.util.spawn_with_shell("mpc toggle || ncmpcpp toggle || ncmpc toggle || pms toggle")
+ mpdwidget.update()
+ end),
+ awful.key({ altkey, "Control" }, "Down",
+ function ()
+ awful.util.spawn_with_shell("mpc stop || ncmpcpp stop || ncmpc stop || pms stop")
+ mpdwidget.update()
+ end),
+ awful.key({ altkey, "Control" }, "Left",
+ function ()
+ awful.util.spawn_with_shell("mpc prev || ncmpcpp prev || ncmpc prev || pms prev")
+ mpdwidget.update()
+ end),
+ awful.key({ altkey, "Control" }, "Right",
+ function ()
+ awful.util.spawn_with_shell("mpc next || ncmpcpp next || ncmpc next || pms next")
+ mpdwidget.update()
+ end),
+
+ -- Copy to clipboard
+ awful.key({ modkey }, "c", function () os.execute("xsel -p -o | xsel -i -b") end),
+
+ -- User programs
+ awful.key({ modkey }, "q", function () awful.util.spawn(browser) end),
+ awful.key({ modkey }, "i", function () awful.util.spawn(browser2) end),
+ awful.key({ modkey }, "s", function () awful.util.spawn(gui_editor) end),
+ awful.key({ modkey }, "g", function () awful.util.spawn(graphics) end),
+
+ -- Prompt
+ awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end),
+ 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)
+)
+
+-- 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, 9 do
+ globalkeys = awful.util.table.join(globalkeys,
+ awful.key({ modkey }, "#" .. i + 9,
+ function ()
+ local screen = mouse.screen
+ local tag = awful.tag.gettags(screen)[i]
+ if tag then
+ awful.tag.viewonly(tag)
+ end
+ end),
+ awful.key({ modkey, "Control" }, "#" .. i + 9,
+ function ()
+ local screen = mouse.screen
+ local tag = awful.tag.gettags(screen)[i]
+ if tag then
+ awful.tag.viewtoggle(tag)
+ end
+ end),
+ awful.key({ modkey, "Shift" }, "#" .. i + 9,
+ function ()
+ local tag = awful.tag.gettags(client.focus.screen)[i]
+ if client.focus and tag then
+ awful.client.movetotag(tag)
+ end
+ end),
+ awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
+ function ()
+ local tag = awful.tag.gettags(client.focus.screen)[i]
+ if client.focus and tag then
+ awful.client.toggletag(tag)
+ end
+ end))
+end
+
+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, }, "n",
+ function (c)
+ -- The client currently has the input focus, so it cannot be
+ -- minimized, since minimized clients can't have the focus.
+ c.minimized = true
+ end),
+ awful.key({ modkey, }, "m",
+ function (c)
+ c.maximized_horizontal = not c.maximized_horizontal
+ c.maximized_vertical = not c.maximized_vertical
+ 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))
+
+-- }}}
diff --git a/settings/rules.lua b/settings/rules.lua
new file mode 100644
index 0000000..048c7bf
--- /dev/null
+++ b/settings/rules.lua
@@ -0,0 +1,38 @@
+local awful = require("awful")
+local beautiful = require("beautiful")
+
+-- {{{ Rules
+
+awful.rules.rules = {
+ -- All clients will match this rule.
+ { rule = { },
+ properties = { border_width = beautiful.border_width,
+ border_color = beautiful.border_normal,
+ focus = awful.client.focus.filter,
+ keys = clientkeys,
+ buttons = clientbuttons,
+ size_hints_honor = false } },
+ { rule = { class = "URxvt" },
+ properties = { opacity = 0.99 } },
+
+ { rule = { class = "MPlayer" },
+ properties = { floating = true } },
+
+ { rule = { class = "Dwb" },
+ properties = { tag = tags[1][1] } },
+
+ { rule = { class = "Iron" },
+ properties = { tag = tags[1][1] } },
+
+ { rule = { instance = "plugin-container" },
+ properties = { tag = tags[1][1] } },
+
+ { rule = { class = "Gimp" },
+ properties = { tag = tags[1][4] } },
+
+ { rule = { class = "Gimp", role = "gimp-image-window" },
+ properties = { maximized_horizontal = true,
+ maximized_vertical = true } },
+}
+
+-- }}}
diff --git a/settings/startup.lua b/settings/startup.lua
new file mode 100644
index 0000000..0849178
--- /dev/null
+++ b/settings/startup.lua
@@ -0,0 +1,10 @@
+require("myrc.run_once")
+
+
+-- {{{ Autostart applications
+
+run_once("urxvtd")
+run_once("unclutter")
+run_once("compton")
+
+-- }}}
diff --git a/settings/tags.lua b/settings/tags.lua
new file mode 100644
index 0000000..898c07a
--- /dev/null
+++ b/settings/tags.lua
@@ -0,0 +1,36 @@
+local awful = require("awful")
+
+layouts = {
+ 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.fair,
+ awful.layout.suit.fair.horizontal,
+ awful.layout.suit.spiral,
+ awful.layout.suit.spiral.dwindle,
+ awful.layout.suit.max,
+ awful.layout.suit.max.fullscreen,
+ awful.layout.suit.magnifier
+}
+
+
+tags = {
+ names = { 1, 2, 3, 4, 5, 6, 7, 8, 9 },
+ layout = {
+ layouts[1],
+ layouts[1],
+ layouts[1],
+ layouts[1],
+ layouts[1],
+ layouts[1],
+ layouts[1],
+ layouts[1],
+ layouts[1],
+ }
+}
+
+for s = 1, screen.count() do
+ tags[s] = awful.tag(tags.names, s, tags.layout)
+end
diff --git a/settings/variables.lua b/settings/variables.lua
new file mode 100644
index 0000000..28ae6d2
--- /dev/null
+++ b/settings/variables.lua
@@ -0,0 +1,16 @@
+-- localization
+os.setlocale(os.getenv("LANG"))
+
+-- common
+modkey = "Mod4"
+altkey = "Mod1"
+terminal = "urxvtc" or "xterm"
+editor = os.getenv("EDITOR") or "nano" or "vi"
+editor_cmd = terminal .. " -e " .. editor
+
+-- user defined
+browser = "dwb"
+browser2 = "iron"
+gui_editor = "gvim"
+graphics = "gimp"
+mail = terminal .. " -e mutt "
diff --git a/stock/signals.lua b/stock/signals.lua
new file mode 100644
index 0000000..e851b10
--- /dev/null
+++ b/stock/signals.lua
@@ -0,0 +1,56 @@
+local awful = require("awful")
+local beautiful = require("beautiful")
+
+-- {{{ Signals
+-- 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)
+
+ if not startup and 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)
+
+-- No border for maximized clients
+client.connect_signal("focus",
+ function(c)
+ if c.maximized_horizontal == true and c.maximized_vertical == true then
+ c.border_width = 0
+ c.border_color = beautiful.border_normal
+ else
+ c.border_width = beautiful.border_width
+ c.border_color = beautiful.border_focus
+ end
+ end)
+client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
+-- }}}
+
+-- {{{ Arrange signal handler
+for s = 1, screen.count() do screen[s]:connect_signal("arrange", function ()
+ local clients = awful.client.visible(s)
+ local layout = awful.layout.getname(awful.layout.get(s))
+
+ if #clients > 0 then -- Fine grained borders and floaters control
+ for _, c in pairs(clients) do -- Floaters always have borders
+ if awful.client.floating.get(c) or layout == "floating" then
+ c.border_width = beautiful.border_width
+
+ -- No borders with only one visible client
+ elseif #clients == 1 or layout == "max" then
+ clients[1].border_width = 0
+ else
+ c.border_width = beautiful.border_width
+ end
+ end
+ end
+ end)
+end
+-- }}}
diff --git a/stock/taglist.lua b/stock/taglist.lua
new file mode 100644
index 0000000..3b80c9d
--- /dev/null
+++ b/stock/taglist.lua
@@ -0,0 +1,11 @@
+local awful = require("awful")
+
+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)
+ )
diff --git a/stock/tasklist.lua b/stock/tasklist.lua
new file mode 100644
index 0000000..a3bf8cc
--- /dev/null
+++ b/stock/tasklist.lua
@@ -0,0 +1,36 @@
+local awful = require("awful")
+
+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({ }, 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({ }, 5, function ()
+ awful.client.focus.byidx(-1)
+ if client.focus then client.focus:raise() end
+ end))
diff --git a/stock/wallpaper.lua b/stock/wallpaper.lua
new file mode 100644
index 0000000..2c70a7f
--- /dev/null
+++ b/stock/wallpaper.lua
@@ -0,0 +1,10 @@
+local beautiful = require("beautiful")
+local gears = require("gears")
+
+-- {{{ Wallpaper
+if beautiful.wallpaper then
+ for s = 1, screen.count() do
+ gears.wallpaper.maximized(beautiful.wallpaper, s, true)
+ end
+end
+-- }}}