aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--awesome/rc.lua572
-rw-r--r--theme.lua115
-rw-r--r--tmux.conf179
-rw-r--r--weechat.conf832
4 files changed, 1698 insertions, 0 deletions
diff --git a/awesome/rc.lua b/awesome/rc.lua
new file mode 100644
index 0000000..df7f57a
--- /dev/null
+++ b/awesome/rc.lua
@@ -0,0 +1,572 @@
+-- Standard awesome library
+local gears = require("gears")
+local awful = require("awful")
+awful.rules = require("awful.rules")
+require("awful.autofocus")
+-- Widget and layout library
+local wibox = require("wibox")
+-- Theme handling library
+local beautiful = require("beautiful")
+-- Notification library
+local naughty = require("naughty")
+local menubar = require("menubar")
+local vicious = require("vicious")
+-- awful.util.spawn_with_shell("compton -cGf")
+-- {{{ Error handling
+-- Check if awesome encountered an error during startup and fell back to
+-- another config (This code will only ever execute for the fallback config)
+if awesome.startup_errors then
+ naughty.notify({ preset = naughty.config.presets.critical,
+ title = "Oops, there were errors during startup!",
+ text = awesome.startup_errors })
+end
+
+-- Handle runtime errors after startup
+do
+ local in_error = false
+ awesome.connect_signal("debug::error", function (err)
+ -- Make sure we don't go into an endless error loop
+ if in_error then return end
+ in_error = true
+
+ naughty.notify({ preset = naughty.config.presets.critical,
+ title = "Oops, an error happened!",
+ text = err })
+ in_error = false
+ end)
+end
+-- }}}
+
+-- {{{ Variable definitions
+-- Themes define colours, icons, and wallpapers
+beautiful.init("/home/zephcom/.config/awesome/themes/darkappa/theme.lua")
+-- }}}
+-- {{{ wallpaper rotate
+function scandir(directory, filter)
+ local i, t, popen = 0, {}, io.popen
+ if not filter then
+ filter = function(s) return true end
+ end
+ print(filter)
+ for filename in popen('ls -a "'..directory..'"'):lines() do
+ if filter(filename) then
+ i = i + 1
+ t[i] = filename
+ end
+ end
+ return t
+end
+-- }}}
+-- {{{ configure wallpaper rotate
+wp_index = 1
+wp_timeout = 60
+wp_path = "/home/zephcom/Pictures/Wallpaper/Awesome/"
+wp_filter = function(s) return string.match(s,"%.png$") or string.match(s,"%.jpg$") end
+wp_files = scandir(wp_path, wp_filter)
+-- wallpaper timer
+wp_timer = timer { timeout = wp_timeout }
+wp_timer:connect_signal("timeout", function()
+ -- set wallpaper
+ for s = 1, screen.count() do
+ gears.wallpaper.maximized(wp_path .. wp_files[wp_index], s, true)
+ end
+ -- stop the timer
+ wp_timer:stop()
+ -- random index
+ wp_index = math.random( 1, #wp_files)
+ -- restart timer
+ wp_timer.timeout = wp_timeout
+ wp_timer:start()
+end)
+-- initial start
+wp_timer:start()
+-- This is used later as the default terminal and editor to run.
+terminal = "urxvt"
+editor = os.getenv("EDITOR") or "nano"
+editor_cmd = terminal .. " -e " .. editor
+
+-- Default modkey.
+-- Usually, Mod4 is the key with a logo between Control and Alt.
+-- If you do not like this or do not have such a key,
+-- I suggest you to remap Mod4 to another key using xmodmap or other tools.
+-- However, you can use another modifier like Mod1, but it may interact with others.
+modkey = "Mod4"
+
+-- Table of layouts to cover with awful.layout.inc, order matters.
+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,
+ awful.layout.suit.max.fullscreen,
+ awful.layout.suit.magnifier
+}
+-- }}}
+
+-- {{{ Wallpaper
+if beautiful.wallpaper then
+ for s = 1, screen.count() do
+ gears.wallpaper.maximized(beautiful.wallpaper, s, true)
+ end
+end
+-- }}}
+
+-- {{{ Tags
+-- Define a tag table which hold all screen tags.
+tags = {}
+for s = 1, screen.count() do
+ -- Each screen has its own tag table.
+-- tags[s] = awful.tag({ "1", "2", "3", "4", "5", "6"}, s, layouts[1])
+ tags[s] = awful.tag({ "一", "二", "三", "四", "五", "六", "七"}, s, layouts[1])
+end
+-- }}}
+
+-- {{{ Menu
+-- Create a laucher widget and a main menu
+myawesomemenu = {
+ { "manual", terminal .. " -e man awesome" },
+ { "edit config", editor_cmd .. " " .. awesome.conffile },
+ { "restart", awesome.restart },
+ { "quit", awesome.quit }
+}
+mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
+ { "tools", sysmenu, nil },
+ { "games", gamesmenu, nil },
+ { "terminal", terminal },
+ { "file browser", terminal .. " -e ranger" },
+ { "&firefox", "firefox" },
+ { "&mail", "thunderbird"},
+ { "&gimp", "gimp"},
+ { "&ncmpcpp", terminal .. " -e ncmpcpp" }
+ }
+ })
+
+
+mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
+ menu = mymainmenu })
+
+-- Menubar configuration
+menubar.utils.terminal = terminal -- Set the terminal for applications that require it
+-- }}}
+separator = wibox.widget.textbox(" |")
+-- {{{ Wibox
+-- Create a textclock widget
+mytextclock = awful.widget.textclock()
+
+-- Keyboard widget, changes between ansi and shitty iso swe layout
+kbdcfg = {}
+kbdcfg.cmd = "setxkbmap"
+kbdcfg.layout = { { "us", "" }, { "se", "" } }
+kbdcfg.current = 1 -- us is our default layout
+kbdcfg.widget = wibox.widget.textbox()
+kbdcfg.widget:set_text(" " .. kbdcfg.layout[kbdcfg.current][1] .. "")
+kbdcfg.switch = function ()
+ kbdcfg.current = kbdcfg.current % #(kbdcfg.layout) + 1
+ local t = kbdcfg.layout[kbdcfg.current]
+ kbdcfg.widget:set_text(" " .. t[1] .. "")
+ os.execute( kbdcfg.cmd .. " " .. t[1] .. "" .. t[2] )
+ end
+-- mouse bindings for keyboard widget
+kbdcfg.widget:buttons(
+ awful.util.table.join(awful.button({ }, 1, function () kbdcfg.switch() end))
+ )
+-- icons and other stuffs
+batimage = wibox.widget.imagebox()
+batimage:set_image (beautiful.widget_battery)
+batwidget = wibox.widget.textbox()
+-- Register widget
+vicious.register(batwidget, vicious.widgets.bat, "$1$2% $3", 3, "BAT0")
+clockimage = wibox.widget.imagebox()
+clockimage:set_image (beautiful.widget_clock)
+
+thermalwidget = wibox.widget.textbox()
+vicious.register(thermalwidget, vicious.widgets.thermal, "$1°С",4,"thermal_zone0")
+thermalimage = wibox.widget.imagebox()
+thermalimage:set_image (beautiful.widget_temp)
+
+volwidget = wibox.widget.textbox()
+vicious.register(volwidget, vicious.widgets.volume, " $1%", 1, "Master")
+volimage = wibox.widget.imagebox()
+volimage:set_image (beautiful.widget_volume)
+
+
+memimage = wibox.widget.imagebox()
+memimage:set_image (beautiful.widget_mem)
+memwidget = wibox.widget.textbox()
+vicious.register(memwidget, vicious.widgets.mem, "$2MB")
+
+
+mpdimage = wibox.widget.imagebox()
+mpdimage:set_image (beautiful.widget_music)
+-- Initialize widget
+mpdwidget = wibox.widget.textbox()
+-- Register widget
+vicious.register(mpdwidget, vicious.widgets.mpd,
+ function (mpdwidget, args)
+ if args["{state}"] == "Stop" then
+ return " - "
+ else
+ return args["{Artist}"]..' - '.. args["{Title}"]
+ end
+ end, 2)
+
+
+-- Create a wibox for each screen and add it
+-- bottombox = {}
+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))
+
+for s = 1, screen.count() do
+ -- Create a promptbox for each screen
+ mypromptbox[s] = awful.widget.prompt()
+ -- Create an imagebox widget which will contains an icon indicating which layout we're using.
+ -- We need one layoutbox per screen.
+ mylayoutbox[s] = awful.widget.layoutbox(s)
+ mylayoutbox[s]:buttons(awful.util.table.join(
+ awful.button({ }, 1, function () awful.layout.inc(layouts, 1) end),
+ awful.button({ }, 3, function () awful.layout.inc(layouts, -1) end),
+ awful.button({ }, 4, function () awful.layout.inc(layouts, 1) end),
+ awful.button({ }, 5, function () awful.layout.inc(layouts, -1) end)))
+ -- Create a taglist widget
+ mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.filter.all, mytaglist.buttons)
+
+ -- Create a tasklist widget
+ mytasklist[s] = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons)
+
+ -- Create the wibox
+ mywibox[s] = awful.wibox({ position = "top", screen = s })
+ -- bottombox[s] = awful.wibox({ position = "bottom", screen = s })
+
+ -- Widgets that are aligned to the left
+ local left_layout = wibox.layout.fixed.horizontal()
+ left_layout:add(mytaglist[s])
+ left_layout:add(mypromptbox[s])
+
+ -- Widgets that are aligned to the right
+ local right_layout = wibox.layout.fixed.horizontal()
+ if s == 1 then right_layout:add(wibox.widget.systray()) end
+ right_layout:add(separator)
+ right_layout:add(mpdimage)
+ right_layout:add(mpdwidget)
+ right_layout:add(separator)
+ right_layout:add(volimage)
+ right_layout:add(volwidget)
+ right_layout:add(separator)
+ right_layout:add(thermalimage)
+ right_layout:add(thermalwidget)
+ right_layout:add(separator)
+ right_layout:add(memimage)
+ right_layout:add(memwidget)
+ right_layout:add(separator)
+ right_layout:add(batimage)
+ right_layout:add(batwidget)
+ right_layout:add(separator)
+ right_layout:add(clockimage)
+ right_layout:add(mytextclock)
+ right_layout:add(separator)
+ right_layout:add(kbdcfg.widget)
+ right_layout:add(separator)
+ right_layout:add(mylayoutbox[s])
+ -- Now bring it all together (with the tasklist in the middle)
+ local layout = wibox.layout.align.horizontal()
+ layout:set_left(left_layout)
+ layout:set_middle(mytasklist[s])
+ layout:set_right(right_layout)
+
+ mywibox[s]:set_widget(layout)
+end
+-- local right_layout = wibox.layout.fixed.horizontal()
+-- if s == 1 then right_layout:add(wibox.widget.systray()) end
+-- right_layout:add(mytextclock)
+-- local layout = wibox.layout.align.horizontal()
+-- layout:set_right(right_layout)
+-- bottombox[s]:set_widget(layout)
+-- }}}
+
+-- {{{ Mouse bindings
+root.buttons(awful.util.table.join(
+ awful.button({ }, 3, function () mymainmenu:toggle() end)))
+-- }}}
+
+-- {{{ Key bindings
+globalkeys = awful.util.table.join(
+ awful.key({ modkey, }, "Left", awful.tag.viewprev ),
+ awful.key({ modkey, }, "Right", awful.tag.viewnext ),
+ awful.key({ modkey, }, "Escape", awful.tag.history.restore),
+ awful.key({ }, "Menu", function () kbdcfg.switch() end),
+
+ awful.key({ modkey, }, "j",
+ function ()
+ awful.client.focus.byidx( 1)
+ if client.focus then client.focus:raise() end
+ end),
+ awful.key({ modkey, }, "k",
+ function ()
+ awful.client.focus.byidx(-1)
+ if client.focus then client.focus:raise() end
+ end),
+ awful.key({ modkey, }, "w", function () mymainmenu:show() 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),
+
+ -- 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),
+
+ awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end),
+ awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end),
+ awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
+ awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end),
+ awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1) end),
+ awful.key({ modkey, "Control" }, "l", 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),
+
+ -- 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),
+ -- Menubar
+ awful.key({ modkey }, "p", function() menubar.show() 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 ()
+ if client.focus then
+ local tag = awful.tag.gettags(client.focus.screen)[i]
+ if tag then
+ awful.client.movetotag(tag)
+ end
+ end
+ end),
+ awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
+ function ()
+ if client.focus then
+ local tag = awful.tag.gettags(client.focus.screen)[i]
+ if tag then
+ awful.client.toggletag(tag)
+ end
+ end
+ end))
+end
+
+clientbuttons = awful.util.table.join(
+ awful.button({ }, 1, function (c) client.focus = c; c:raise() end),
+ awful.button({ modkey }, 1, awful.mouse.client.move),
+ awful.button({ modkey }, 3, awful.mouse.client.resize))
+
+-- 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 = "feh" },
+ properties = { floating = true } },
+ { rule = { class = "pinentry" },
+ properties = { floating = true } },
+ { rule = { class = "mpv" },
+ properties = { size_hints_honor = true } },
+ { rule = { class = "Arandr" },
+ properties = { floating = true } },
+ { rule = { class = "Gifview" },
+ properties = { floating = true } },
+ -- Set Firefox to always map on tags number 2 of screen 1.
+ -- { rule = { class = "Firefox" },
+ -- properties = { tag = tags[1][2] } },
+}
+-- }}}
+
+-- {{{ 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 then
+ -- Set the windows at the slave,
+ -- i.e. put it at the end of others instead of setting it master.
+ -- awful.client.setslave(c)
+
+ -- Put windows in a smart way, only if they does not set an initial position.
+ if not c.size_hints.user_position and not c.size_hints.program_position then
+ awful.placement.no_overlap(c)
+ awful.placement.no_offscreen(c)
+ end
+ end
+
+ local titlebars_enabled = false
+ 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)
+ )
+
+ -- Widgets that are aligned to the left
+ local left_layout = wibox.layout.fixed.horizontal()
+ left_layout:add(awful.titlebar.widget.iconwidget(c))
+ left_layout:buttons(buttons)
+
+ -- Widgets that are aligned to the right
+ local right_layout = wibox.layout.fixed.horizontal()
+ right_layout:add(awful.titlebar.widget.floatingbutton(c))
+ right_layout:add(awful.titlebar.widget.maximizedbutton(c))
+ right_layout:add(awful.titlebar.widget.stickybutton(c))
+ right_layout:add(awful.titlebar.widget.ontopbutton(c))
+ right_layout:add(awful.titlebar.widget.closebutton(c))
+
+ -- The title goes in the middle
+ local 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)
+
+ -- Now bring it all together
+ local layout = wibox.layout.align.horizontal()
+ layout:set_left(left_layout)
+ layout:set_right(right_layout)
+ layout:set_middle(middle_layout)
+
+ awful.titlebar(c):set_widget(layout)
+ end
+end)
+
+client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
+client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
+-- }}}
diff --git a/theme.lua b/theme.lua
new file mode 100644
index 0000000..187cd2c
--- /dev/null
+++ b/theme.lua
@@ -0,0 +1,115 @@
+---------------------------
+-- Default awesome theme --
+---------------------------
+
+theme = {appasama}
+
+theme.font = "terminus 8"
+
+theme.bg_normal = "#252627"
+
+--theme.bg_focus = "#4b696d"
+theme.bg_focus = "#803930"
+--theme.bg_focus = "#35374e"
+theme.bg_urgent = "#ff0000"
+theme.bg_minimize = "#444444"
+
+theme.fg_normal = "#e1e3e6"
+theme.fg_focus = "#ffffff"
+theme.fg_urgent = "#d4d4d4"
+theme.fg_minimize = "#d4d4d4"
+
+theme.border_width = "2"
+
+-- theme.border_normal = "#4b696d"
+-- theme.border_focus = "#4b696d"
+-- theme.border_marked = "#4b696d"
+
+-- Red theme (argus)
+theme.border_normal = "#803930"
+theme.border_focus = "#803930"
+theme.border_marked = "#803930"
+
+--theme.border_normal = "#35374e"
+--theme.border_focus = "#35374e"
+--theme.border_marked = "#35374e"
+
+theme.tasklist_disable_icon = true
+-- There are other variable sets
+-- overriding the default one when
+-- defined, the sets are:
+-- [taglist|tasklist]_[bg|fg]_[focus|urgent]
+-- titlebar_[bg|fg]_[normal|focus]
+-- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color]
+-- mouse_finder_[color|timeout|animate_timeout|radius|factor]
+-- Example:
+--theme.taglist_bg_focus = "#ff0000"
+
+-- Display the taglist squares
+theme.taglist_squares_sel = "/usr/share/awesome/themes/default/taglist/squarefw.png"
+theme.taglist_squares_unsel = "/usr/share/awesome/themes/default/taglist/squarew.png"
+
+theme.tasklist_floating_icon = "/usr/share/awesome/themes/default/tasklist/floatingw.png"
+
+-- Variables set for theming the menu:
+-- menu_[bg|fg]_[normal|focus]
+-- menu_[border_color|border_width]
+theme.menu_submenu_icon = "/usr/share/awesome/themes/default/submenu.png"
+theme.menu_height = "15"
+theme.menu_width = "100"
+
+-- You can add as many variables as
+-- you wish and access them by using
+-- beautiful.variable in your rc.lua
+--theme.bg_widget = "#cc0000"
+
+-- Define the image to load
+theme.titlebar_close_button_normal = "/usr/share/awesome/themes/default/titlebar/close_normal.png"
+theme.titlebar_close_button_focus = "/usr/share/awesome/themes/default/titlebar/close_focus.png"
+
+theme.titlebar_ontop_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/ontop_normal_inactive.png"
+theme.titlebar_ontop_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/ontop_focus_inactive.png"
+theme.titlebar_ontop_button_normal_active = "/usr/share/awesome/themes/default/titlebar/ontop_normal_active.png"
+theme.titlebar_ontop_button_focus_active = "/usr/share/awesome/themes/default/titlebar/ontop_focus_active.png"
+
+theme.titlebar_sticky_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/sticky_normal_inactive.png"
+theme.titlebar_sticky_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/sticky_focus_inactive.png"
+theme.titlebar_sticky_button_normal_active = "/usr/share/awesome/themes/default/titlebar/sticky_normal_active.png"
+theme.titlebar_sticky_button_focus_active = "/usr/share/awesome/themes/default/titlebar/sticky_focus_active.png"
+
+theme.titlebar_floating_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/floating_normal_inactive.png"
+theme.titlebar_floating_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/floating_focus_inactive.png"
+theme.titlebar_floating_button_normal_active = "/usr/share/awesome/themes/default/titlebar/floating_normal_active.png"
+theme.titlebar_floating_button_focus_active = "/usr/share/awesome/themes/default/titlebar/floating_focus_active.png"
+
+theme.titlebar_maximized_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/maximized_normal_inactive.png"
+theme.titlebar_maximized_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/maximized_focus_inactive.png"
+theme.titlebar_maximized_button_normal_active = "/usr/share/awesome/themes/default/titlebar/maximized_normal_active.png"
+theme.titlebar_maximized_button_focus_active = "/usr/share/awesome/themes/default/titlebar/maximized_focus_active.png"
+
+-- You can use your own command to set your wallpaper
+-- theme.wallpaper = "~/.config/awesome/themes/matoiwall.png"
+-- You can use your own layout icons like this:
+theme.layout_fairh = "/usr/share/awesome/themes/default/layouts/fairhw.png"
+theme.layout_fairv = "/usr/share/awesome/themes/default/layouts/fairvw.png"
+theme.layout_floating = "/usr/share/awesome/themes/default/layouts/floatingw.png"
+theme.layout_magnifier = "/usr/share/awesome/themes/default/layouts/magnifierw.png"
+theme.layout_max = "/usr/share/awesome/themes/default/layouts/maxw.png"
+theme.layout_fullscreen = "/usr/share/awesome/themes/default/layouts/fullscreenw.png"
+theme.layout_tilebottom = "/usr/share/awesome/themes/default/layouts/tilebottomw.png"
+theme.layout_tileleft = "/usr/share/awesome/themes/default/layouts/tileleftw.png"
+theme.layout_tile = "/usr/share/awesome/themes/default/layouts/tilew.png"
+theme.layout_tiletop = "/usr/share/awesome/themes/default/layouts/tiletopw.png"
+theme.layout_spiral = "/usr/share/awesome/themes/default/layouts/spiralw.png"
+theme.layout_dwindle = "/usr/share/awesome/themes/default/layouts/dwindlew.png"
+
+theme.awesome_icon = "/usr/share/awesome/icons/awesome16.png"
+
+theme.widget_mem = "/home/zephcom/.config/awesome/themes/darkappa/icons_r/mem.png"
+theme.widget_temp = "/home/zephcom/.config/awesome/themes/darkappa/icons_r/temp.png"
+theme.widget_battery = "/home/zephcom/.config/awesome/themes/darkappa/icons_r/battery.png"
+theme.widget_music = "/home/zephcom/.config/awesome/themes/darkappa/icons_r/music.png"
+theme.widget_clock = "/home/zephcom/.config/awesome/themes/darkappa/icons_r/clock.png"
+theme.widget_volume = "/home/zephcom/.config/awesome/themes/darkappa/icons_r/volume.png"
+return theme
+-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
diff --git a/tmux.conf b/tmux.conf
new file mode 100644
index 0000000..ea85d4a
--- /dev/null
+++ b/tmux.conf
@@ -0,0 +1,179 @@
+# change prefix to Ctrl-a (like in gnu-screen)
+unbind C-b
+set-option -g prefix C-a
+bind-key C-a send-prefix
+
+
+# shell
+set -g default-command /bin/zsh
+set -g default-shell /bin/zsh
+
+
+# start with window 1 (instead of 0)
+set -g base-index 1
+
+
+# start with pane 1
+set -g pane-base-index 1
+
+
+# screen mode
+set -g default-terminal "screen-256color"
+
+
+# source config file
+bind r source-file ~/.tmux.conf
+
+
+# history
+set -g history-limit 4096
+
+
+# allow terminal scrolling
+set-option -g terminal-overrides 'xterm*:smcup@:rmcup@'
+
+
+# copy mode
+#unbind [
+#bind Escape copy-mode
+#unbind ]
+bind ] paste-buffer
+
+
+# use vi mode
+setw -g mode-keys vi
+set -g status-keys vi
+setw -g utf8 on
+# use mouse in copy mode
+setw -g mode-mouse on
+
+
+# tmux-zoom.sh
+bind C-z run "tmux-zoom.sh"
+
+
+# splitting
+unbind %
+bind h split-window -h
+unbind '"'
+bind v split-window -v
+
+
+# window switching
+#urxvt tab like window switching (-n: no prior escape seq)
+bind-key -n S-left prev
+bind-key -n S-right next
+bind-key -n C-left swap-window -t -1
+bind-key -n C-right swap-window -t +1
+# with mouse (click on pretty little boxes)
+set -g mouse-select-window on
+
+
+# colon :
+bind : command-prompt
+
+
+# panes
+set -g mouse-select-pane on
+set -g pane-border-fg black
+set -g pane-active-border-fg brightred
+#set -g pane-active-border-attr blink
+# resize panes with mouse (drag borders)
+set -g mouse-select-pane on
+set -g mouse-resize-pane on
+
+
+# status line
+set -g status-utf8 on
+set -g status-justify left
+set -g status-bg default
+set -g status-fg colour12
+set -g status-interval 2
+
+
+# messaging
+set -g message-fg black
+set -g message-bg yellow
+set -g message-command-fg blue
+set -g message-command-bg black
+
+
+#window mode
+setw -g mode-bg colour6
+setw -g mode-fg colour0
+
+
+# window status
+#setw -g window-status-format " #F#I:#W#F "
+#setw -g window-status-current-format " #F#I:#W#F "
+setw -g window-status-format "#[bg=green]#[fg=colour0] #I #[fg=brightgreen]#[bg=black] #W "
+setw -g window-status-current-format "#[bg=brightyellow]#[fg=black] #I #[fg=colour11]#[bg=red] #W "
+setw -g window-status-current-bg colour0
+setw -g window-status-current-fg colour11
+setw -g window-status-current-attr dim
+setw -g window-status-bg green
+setw -g window-status-fg black
+setw -g window-status-attr dim
+setw -g window-status-content-bg colour0
+setw -g window-status-content-fg colour11
+setw -g window-status-content-attr blink
+
+
+# Info on right
+set -g status-right-length 30
+set -g status-right ''
+# '#[fg=magenta]#(cut -d " " -f 1-3 /proc/loadavg) #[fg=colour8]// #[fg=cyan]Tmux [#S]'
+# Info on left (no session display)
+set -g status-left ''
+
+
+# loud or quiet?
+set-option -g visual-activity off
+set-option -g visual-bell off
+set-option -g visual-content off
+set-option -g visual-silence off
+set-window-option -g monitor-activity off
+set-window-option -g monitor-content on
+set -g bell-action any
+
+# tmux clock
+set -g clock-mode-colour blue
+
+# some key-binding changes
+bind x kill-pane
+bind X next-layout
+bind Z previous-layout
+#unbind Left
+#bind C-Left resize-pane -L 2
+#bind h select-pane -L
+#unbind Down
+#bind C-Down resize-pane -D 2
+#bind j select-pane -D
+#unbind Up
+#bind C-Up resize-pane -U 2
+#bind k select-pane -U
+#unbind Right
+#bind C-Right resize-pane -R 2
+#bind l select-pane -R
+#unbind C-Left
+#bind C-h resize-pane -L 1
+#unbind C-Down
+#bind C-j resize-pane -D 1
+#unbind C-Up
+#bind C-k resize-pane -U 1
+#unbind C-Right
+#bind C-l resize-pane -R 1
+#unbind M-Left
+#bind C-H resize-pane -L 30
+#unbind M-Down
+#bind C-J resize-pane -D 30
+#unbind M-Up
+#bind C-K resize-pane -U 30
+#unbind M-Right
+#bind C-L resize-pane -R 30
+
+# default sessions - need to use 'tmux attach'
+#new-session weechat
+#new-window rtorrent
+#new-window mutt
+#new-window zsh
diff --git a/weechat.conf b/weechat.conf
new file mode 100644
index 0000000..88a14f0
--- /dev/null
+++ b/weechat.conf
@@ -0,0 +1,832 @@
+#
+# weechat.conf -- weechat v0.4.3
+#
+
+[debug]
+
+[startup]
+command_after_plugins = "/buffer clear"
+command_before_plugins = ""
+display_logo = off
+display_version = off
+sys_rlimit = ""
+
+[look]
+align_end_of_lines = message
+bar_more_down = " + "
+bar_more_left = " -- "
+bar_more_right = " ++ "
+bar_more_up = " - "
+buffer_auto_renumber = on
+buffer_notify_default = all
+buffer_position = end
+buffer_search_case_sensitive = off
+buffer_search_force_default = off
+buffer_search_regex = off
+buffer_search_where = message
+buffer_time_format = " %H:%M"
+color_basic_force_bold = off
+color_inactive_buffer = off
+color_inactive_message = on
+color_inactive_prefix = on
+color_inactive_prefix_buffer = on
+color_inactive_time = off
+color_inactive_window = off
+color_nick_offline = off
+color_pairs_auto_reset = 5
+color_real_white = off
+command_chars = ""
+confirm_quit = off
+day_change = on
+day_change_message_1date = "-- %a, %d %b %Y --"
+day_change_message_2dates = "-- %%a, %%d %%b %%Y (%a, %d %b %Y) --"
+eat_newline_glitch = off
+emphasized_attributes = ""
+highlight = ""
+highlight_regex = ""
+highlight_tags = ""
+hotlist_add_buffer_if_away = on
+hotlist_buffer_separator = ", "
+hotlist_count_max = 2
+hotlist_count_min_msg = 2
+hotlist_names_count = 3
+hotlist_names_length = 0
+hotlist_names_level = 12
+hotlist_names_merged_buffers = off
+hotlist_prefix = "H: "
+hotlist_short_names = on
+hotlist_sort = group_time_asc
+hotlist_suffix = ""
+hotlist_unique_numbers = on
+input_cursor_scroll = 20
+input_share = none
+input_share_overwrite = off
+input_undo_max = 32
+item_buffer_filter = "*"
+item_buffer_zoom = "!"
+item_time_format = "%l:%M"
+jump_current_to_previous_buffer = on
+jump_previous_buffer_when_closing = on
+jump_smart_back_to_buffer = on
+key_bind_safe = on
+mouse = off
+mouse_timer_delay = 100
+nick_prefix = ""
+nick_suffix = ""
+paste_bracketed = off
+paste_bracketed_timer_delay = 10
+paste_max_lines = 5
+prefix_action = "*"
+prefix_align = right
+prefix_align_max = 0
+prefix_align_min = 0
+prefix_align_more = "+"
+prefix_align_more_after = on
+prefix_buffer_align = right
+prefix_buffer_align_max = 0
+prefix_buffer_align_more = "+"
+prefix_buffer_align_more_after = on
+prefix_error = " !!! "
+prefix_join = " > "
+prefix_network = " - "
+prefix_quit = " < "
+prefix_same_nick = ""
+prefix_suffix = ":"
+read_marker = line
+read_marker_always_show = off
+read_marker_string = "- "
+save_config_on_exit = on
+save_layout_on_exit = all
+scroll_amount = 3
+scroll_bottom_after_switch = off
+scroll_page_percent = 100
+search_text_not_found_alert = on
+separator_horizontal = "-"
+separator_vertical = ""
+tab_width = 1
+time_format = "%a, %d %b %Y %T"
+window_auto_zoom = off
+window_separator_horizontal = on
+window_separator_vertical = on
+window_title = "WeeChat ${info:version}"
+
+[palette]
+100 = ""
+101 = ""
+102 = ""
+103 = ""
+104 = ""
+105 = ""
+106 = ""
+107 = ""
+108 = ""
+109 = ""
+110 = ""
+111 = ""
+112 = ""
+113 = ""
+114 = ""
+115 = ""
+116 = ""
+117 = ""
+118 = ""
+119 = ""
+120 = ""
+121 = ""
+122 = ""
+123 = ""
+124 = ""
+125 = ""
+126 = ""
+127 = ""
+128 = ""
+129 = ""
+130 = ""
+131 = ""
+132 = ""
+133 = ""
+134 = ""
+135 = ""
+136 = ""
+137 = ""
+138 = ""
+139 = ""
+140 = ""
+141 = ""
+142 = ""
+143 = ""
+144 = ""
+145 = ""
+146 = ""
+147 = ""
+148 = ""
+149 = ""
+150 = ""
+151 = ""
+152 = ""
+153 = ""
+154 = ""
+155 = ""
+156 = ""
+157 = ""
+158 = ""
+159 = ""
+160 = ""
+161 = ""
+162 = ""
+163 = ""
+164 = ""
+165 = ""
+166 = ""
+167 = ""
+168 = ""
+169 = ""
+17 = ""
+170 = ""
+171 = ""
+172 = ""
+173 = ""
+174 = ""
+175 = ""
+176 = ""
+177 = ""
+178 = ""
+179 = ""
+18 = ""
+180 = ""
+181 = ""
+182 = ""
+183 = ""
+184 = ""
+185 = ""
+186 = ""
+187 = ""
+188 = ""
+189 = ""
+19 = ""
+190 = ""
+191 = ""
+192 = ""
+193 = ""
+194 = ""
+195 = ""
+196 = ""
+197 = ""
+198 = ""
+199 = ""
+20 = ""
+200 = ""
+201 = ""
+202 = ""
+203 = ""
+204 = ""
+205 = ""
+206 = ""
+207 = ""
+208 = ""
+209 = ""
+21 = ""
+210 = ""
+211 = ""
+212 = ""
+213 = ""
+214 = ""
+215 = ""
+216 = ""
+217 = ""
+218 = ""
+219 = ""
+22 = ""
+220 = ""
+221 = ""
+222 = ""
+223 = ""
+224 = ""
+225 = ""
+226 = ""
+227 = ""
+228 = ""
+229 = ""
+23 = ""
+230 = ""
+231 = ""
+232 = ""
+233 = ""
+234 = ""
+235 = ""
+236 = ""
+237 = ""
+238 = ""
+239 = ""
+24 = ""
+240 = ""
+241 = ""
+242 = ""
+243 = ""
+244 = ""
+245 = ""
+246 = ""
+247 = ""
+248 = ""
+249 = ""
+25 = ""
+250 = ""
+251 = ""
+252 = ""
+253 = ""
+254 = ""
+255 = ""
+256 = ""
+26 = ""
+27 = ""
+28 = ""
+29 = ""
+30 = ""
+31 = ""
+32 = ""
+33 = ""
+34 = ""
+35 = ""
+36 = ""
+37 = ""
+38 = ""
+39 = ""
+40 = ""
+41 = ""
+42 = ""
+43 = ""
+44 = ""
+45 = ""
+46 = ""
+47 = ""
+48 = ""
+49 = ""
+50 = ""
+51 = ""
+52 = ""
+53 = ""
+54 = ""
+55 = ""
+56 = ""
+57 = ""
+58 = ""
+59 = ""
+60 = ""
+61 = ""
+62 = ""
+63 = ""
+64 = ""
+65 = ""
+66 = ""
+67 = ""
+68 = ""
+69 = ""
+70 = ""
+71 = ""
+72 = ""
+73 = ""
+74 = ""
+75 = ""
+76 = ""
+77 = ""
+78 = ""
+79 = ""
+80 = ""
+81 = ""
+82 = ""
+83 = ""
+84 = ""
+85 = ""
+86 = ""
+87 = ""
+88 = ""
+89 = ""
+90 = ""
+91 = ""
+92 = ""
+93 = ""
+94 = ""
+95 = ""
+96 = ""
+97 = ""
+98 = ""
+99 = ""
+
+[color]
+bar_more = green
+chat = white
+chat_bg = default
+chat_buffer = white
+chat_channel = white
+chat_day_change = cyan
+chat_delimiters = green
+chat_highlight = yellow
+chat_highlight_bg = default
+chat_host = cyan
+chat_inactive_buffer = darkgray
+chat_inactive_window = darkgray
+chat_nick = cyan
+chat_nick_colors = "magenta,lightcyan,lightmagenta,lightgreen,lightred,brown,darkbrown"
+chat_nick_offline = darkgray
+chat_nick_offline_highlight = default
+chat_nick_offline_highlight_bg = darkgray
+chat_nick_other = white
+chat_nick_prefix = green
+chat_nick_self = green
+chat_nick_suffix = green
+chat_prefix_action = white
+chat_prefix_buffer = red
+chat_prefix_buffer_inactive_buffer = darkgray
+chat_prefix_error = yellow
+chat_prefix_join = lightgreen
+chat_prefix_more = lightmagenta
+chat_prefix_network = magenta
+chat_prefix_quit = lightred
+chat_prefix_suffix = darkgray
+chat_read_marker = magenta
+chat_read_marker_bg = default
+chat_server = brown
+chat_tags = red
+chat_text_found = yellow
+chat_text_found_bg = lightmagenta
+chat_time = red
+chat_time_delimiters = red
+chat_value = cyan
+emphasized = yellow
+emphasized_bg = magenta
+input_actions = lightgreen
+input_text_not_found = red
+nicklist_away = cyan
+nicklist_group = green
+nicklist_offline = blue
+separator = darkgray
+status_count_highlight = magenta
+status_count_msg = brown
+status_count_other = default
+status_count_private = green
+status_data_highlight = lightmagenta
+status_data_msg = yellow
+status_data_other = default
+status_data_private = lightgreen
+status_filter = green
+status_more = yellow
+status_name = white
+status_name_ssl = lightgreen
+status_number = yellow
+status_time = default
+
+[completion]
+base_word_until_cursor = on
+default_template = "%(nicks)|%(irc_channels)"
+nick_add_space = on
+nick_completer = ":"
+nick_first_only = off
+nick_ignore_chars = "[]-^"
+partial_completion_alert = on
+partial_completion_command = off
+partial_completion_command_arg = off
+partial_completion_count = on
+partial_completion_other = off
+
+[history]
+display_default = 5
+max_buffer_lines_minutes = 0
+max_buffer_lines_number = 100
+max_commands = 100
+max_visited_buffers = 50
+
+[proxy]
+
+[network]
+connection_timeout = 60
+gnutls_ca_file = "%h/ssl/CAs.pem"
+gnutls_handshake_timeout = 30
+proxy_curl = ""
+
+[plugin]
+autoload = "*"
+debug = off
+extension = ".so"
+path = "%h/plugins"
+save_config_on_unload = on
+
+[bar]
+buddylist.color_bg = default
+buddylist.color_delim = default
+buddylist.color_fg = default
+buddylist.conditions = ""
+buddylist.filling_left_right = vertical
+buddylist.filling_top_bottom = horizontal
+buddylist.hidden = on
+buddylist.items = "buddylist"
+buddylist.position = left
+buddylist.priority = 0
+buddylist.separator = on
+buddylist.size = 0
+buddylist.size_max = 0
+buddylist.type = root
+buffers.color_bg = default
+buffers.color_delim = default
+buffers.color_fg = default
+buffers.conditions = ""
+buffers.filling_left_right = vertical
+buffers.filling_top_bottom = horizontal
+buffers.hidden = on
+buffers.items = "buffers"
+buffers.position = top
+buffers.priority = 0
+buffers.separator = off
+buffers.size = 0
+buffers.size_max = 0
+buffers.type = root
+input.color_bg = default
+input.color_delim = red
+input.color_fg = default
+input.conditions = ""
+input.filling_left_right = horizontal
+input.filling_top_bottom = horizontal
+input.hidden = off
+input.items = " >>,input_text "
+input.position = bottom
+input.priority = 1000
+input.separator = on
+input.size = 1
+input.size_max = 0
+input.type = root
+isetbar.color_bg = default
+isetbar.color_delim = cyan
+isetbar.color_fg = default
+isetbar.conditions = ""
+isetbar.filling_left_right = vertical
+isetbar.filling_top_bottom = horizontal
+isetbar.hidden = on
+isetbar.items = "isetbar_help"
+isetbar.position = top
+isetbar.priority = 0
+isetbar.separator = on
+isetbar.size = 3
+isetbar.size_max = 3
+isetbar.type = window
+nicklist.color_bg = default
+nicklist.color_delim = black
+nicklist.color_fg = default
+nicklist.conditions = "nicklist"
+nicklist.filling_left_right = vertical
+nicklist.filling_top_bottom = columns_horizontal
+nicklist.hidden = on
+nicklist.items = "buffer_nicklist"
+nicklist.position = right
+nicklist.priority = 200
+nicklist.separator = off
+nicklist.size = 13
+nicklist.size_max = 0
+nicklist.type = root
+title.color_bg = default
+title.color_delim = darkgray
+title.color_fg = green
+title.conditions = ""
+title.filling_left_right = horizontal
+title.filling_top_bottom = horizontal
+title.hidden = off
+title.items = " [hotlist],[buffer_plugin],buffer_name,[buffer_nicklist_count],buffer_nicklist "
+title.position = top
+title.priority = 0
+title.separator = on
+title.size = 1
+title.size_max = 0
+title.type = root
+
+[layout]
+default.buffer = "core;weechat;1"
+default.buffer = "irc;server.sdellsama;1"
+default.buffer = "irc;sdellsama.#archlinux;2"
+default.buffer = "irc;sdellsama.#archlinux-offtopic;3"
+default.buffer = "irc;sdellsama.demize;4"
+default.window = "1;0;0;0;irc;server.sdellsama"
+default.current = on
+
+[notify]
+
+[filter]
+irc_smart = on;*;irc_smart_filter;*
+
+[key]
+ctrl-? = "/input delete_previous_char"
+ctrl-A = "/input move_beginning_of_line"
+ctrl-B = "/input move_previous_char"
+ctrl-Cb = "/input insert \x02"
+ctrl-Cc = "/input insert \x03"
+ctrl-Ci = "/input insert \x1D"
+ctrl-Co = "/input insert \x0F"
+ctrl-Cr = "/input insert \x12"
+ctrl-Cu = "/input insert \x15"
+ctrl-D = "/input delete_next_char"
+ctrl-E = "/input move_end_of_line"
+ctrl-F = "/input move_next_char"
+ctrl-H = "/input delete_previous_char"
+ctrl-I = "/input complete_next"
+ctrl-J = "/input return"
+ctrl-K = "/input delete_end_of_line"
+ctrl-L = "/window refresh"
+ctrl-M = "/input return"
+ctrl-N = "/buffer +1"
+ctrl-P = "/buffer -1"
+ctrl-R = "/input search_text"
+ctrl-Sctrl-U = "/input set_unread"
+ctrl-T = "/input transpose_chars"
+ctrl-U = "/input delete_beginning_of_line"
+ctrl-W = "/input delete_previous_word"
+ctrl-X = "/input switch_active_buffer"
+ctrl-Y = "/input clipboard_paste"
+meta-meta2-1~ = "/window scroll_top"
+meta-meta2-23~ = "/bar scroll nicklist * yb"
+meta-meta2-24~ = "/bar scroll nicklist * ye"
+meta-meta2-4~ = "/window scroll_bottom"
+meta-meta2-5~ = "/window scroll_up"
+meta-meta2-6~ = "/window scroll_down"
+meta-meta2-7~ = "/window scroll_top"
+meta-meta2-8~ = "/window scroll_bottom"
+meta-meta2-A = "/buffer -1"
+meta-meta2-B = "/buffer +1"
+meta-meta2-C = "/buffer +1"
+meta-meta2-D = "/buffer -1"
+meta-0 = "/buffer *10"
+meta-1 = "/buffer *1"
+meta-2 = "/buffer *2"
+meta-3 = "/buffer *3"
+meta-4 = "/buffer *4"
+meta-5 = "/buffer *5"
+meta-6 = "/buffer *6"
+meta-7 = "/buffer *7"
+meta-8 = "/buffer *8"
+meta-9 = "/buffer *9"
+meta-< = "/input jump_previously_visited_buffer"
+meta-= = "/filter toggle"
+meta-> = "/input jump_next_visited_buffer"
+meta-OA = "/input history_global_previous"
+meta-OB = "/input history_global_next"
+meta-OC = "/input move_next_word"
+meta-OD = "/input move_previous_word"
+meta-OF = "/input move_end_of_line"
+meta-OH = "/input move_beginning_of_line"
+meta-Oa = "/input history_global_previous"
+meta-Ob = "/input history_global_next"
+meta-Oc = "/input move_next_word"
+meta-Od = "/input move_previous_word"
+meta2-15~ = "/buffer -1"
+meta2-17~ = "/buffer +1"
+meta2-18~ = "/window -1"
+meta2-19~ = "/window +1"
+meta2-1;3A = "/buffer -1"
+meta2-1;3B = "/buffer +1"
+meta2-1;3C = "/buffer +1"
+meta2-1;3D = "/buffer -1"
+meta2-1;5A = "/input history_global_previous"
+meta2-1;5B = "/input history_global_next"
+meta2-1~ = "/input move_beginning_of_line"
+meta2-20~ = "/bar scroll title * x-50%"
+meta2-21~ = "/bar scroll title * x+50%"
+meta2-23~ = "/bar scroll nicklist * y-100%"
+meta2-24~ = "/bar scroll nicklist * y+100%"
+meta2-3~ = "/input delete_next_char"
+meta2-4~ = "/input move_end_of_line"
+meta2-5;3~ = "/window scroll_up"
+meta2-5~ = "/window page_up"
+meta2-6;3~ = "/window scroll_down"
+meta2-6~ = "/window page_down"
+meta2-7~ = "/input move_beginning_of_line"
+meta2-8~ = "/input move_end_of_line"
+meta2-A = "/input history_previous"
+meta2-B = "/input history_next"
+meta2-C = "/input move_next_char"
+meta2-D = "/input move_previous_char"
+meta2-F = "/input move_end_of_line"
+meta2-G = "/window page_down"
+meta2-H = "/input move_beginning_of_line"
+meta2-I = "/window page_up"
+meta2-Z = "/input complete_previous"
+meta-_ = "/input redo"
+meta-a = "/input jump_smart"
+meta-b = "/input move_previous_word"
+meta-d = "/input delete_next_word"
+meta-f = "/input move_next_word"
+meta-h = "/input hotlist_clear"
+meta-jmeta-l = "/input jump_last_buffer"
+meta-jmeta-r = "/server raw"
+meta-jmeta-s = "/server jump"
+meta-j01 = "/buffer 1"
+meta-j02 = "/buffer 2"
+meta-j03 = "/buffer 3"
+meta-j04 = "/buffer 4"
+meta-j05 = "/buffer 5"
+meta-j06 = "/buffer 6"
+meta-j07 = "/buffer 7"
+meta-j08 = "/buffer 8"
+meta-j09 = "/buffer 9"
+meta-j10 = "/buffer 10"
+meta-j11 = "/buffer 11"
+meta-j12 = "/buffer 12"
+meta-j13 = "/buffer 13"
+meta-j14 = "/buffer 14"
+meta-j15 = "/buffer 15"
+meta-j16 = "/buffer 16"
+meta-j17 = "/buffer 17"
+meta-j18 = "/buffer 18"
+meta-j19 = "/buffer 19"
+meta-j20 = "/buffer 20"
+meta-j21 = "/buffer 21"
+meta-j22 = "/buffer 22"
+meta-j23 = "/buffer 23"
+meta-j24 = "/buffer 24"
+meta-j25 = "/buffer 25"
+meta-j26 = "/buffer 26"
+meta-j27 = "/buffer 27"
+meta-j28 = "/buffer 28"
+meta-j29 = "/buffer 29"
+meta-j30 = "/buffer 30"
+meta-j31 = "/buffer 31"
+meta-j32 = "/buffer 32"
+meta-j33 = "/buffer 33"
+meta-j34 = "/buffer 34"
+meta-j35 = "/buffer 35"
+meta-j36 = "/buffer 36"
+meta-j37 = "/buffer 37"
+meta-j38 = "/buffer 38"
+meta-j39 = "/buffer 39"
+meta-j40 = "/buffer 40"
+meta-j41 = "/buffer 41"
+meta-j42 = "/buffer 42"
+meta-j43 = "/buffer 43"
+meta-j44 = "/buffer 44"
+meta-j45 = "/buffer 45"
+meta-j46 = "/buffer 46"
+meta-j47 = "/buffer 47"
+meta-j48 = "/buffer 48"
+meta-j49 = "/buffer 49"
+meta-j50 = "/buffer 50"
+meta-j51 = "/buffer 51"
+meta-j52 = "/buffer 52"
+meta-j53 = "/buffer 53"
+meta-j54 = "/buffer 54"
+meta-j55 = "/buffer 55"
+meta-j56 = "/buffer 56"
+meta-j57 = "/buffer 57"
+meta-j58 = "/buffer 58"
+meta-j59 = "/buffer 59"
+meta-j60 = "/buffer 60"
+meta-j61 = "/buffer 61"
+meta-j62 = "/buffer 62"
+meta-j63 = "/buffer 63"
+meta-j64 = "/buffer 64"
+meta-j65 = "/buffer 65"
+meta-j66 = "/buffer 66"
+meta-j67 = "/buffer 67"
+meta-j68 = "/buffer 68"
+meta-j69 = "/buffer 69"
+meta-j70 = "/buffer 70"
+meta-j71 = "/buffer 71"
+meta-j72 = "/buffer 72"
+meta-j73 = "/buffer 73"
+meta-j74 = "/buffer 74"
+meta-j75 = "/buffer 75"
+meta-j76 = "/buffer 76"
+meta-j77 = "/buffer 77"
+meta-j78 = "/buffer 78"
+meta-j79 = "/buffer 79"
+meta-j80 = "/buffer 80"
+meta-j81 = "/buffer 81"
+meta-j82 = "/buffer 82"
+meta-j83 = "/buffer 83"
+meta-j84 = "/buffer 84"
+meta-j85 = "/buffer 85"
+meta-j86 = "/buffer 86"
+meta-j87 = "/buffer 87"
+meta-j88 = "/buffer 88"
+meta-j89 = "/buffer 89"
+meta-j90 = "/buffer 90"
+meta-j91 = "/buffer 91"
+meta-j92 = "/buffer 92"
+meta-j93 = "/buffer 93"
+meta-j94 = "/buffer 94"
+meta-j95 = "/buffer 95"
+meta-j96 = "/buffer 96"
+meta-j97 = "/buffer 97"
+meta-j98 = "/buffer 98"
+meta-j99 = "/buffer 99"
+meta-k = "/input grab_key_command"
+meta-n = "/window scroll_next_highlight"
+meta-p = "/window scroll_previous_highlight"
+meta-r = "/input delete_line"
+meta-u = "/input scroll_unread"
+meta-wmeta-meta2-A = "/window up"
+meta-wmeta-meta2-B = "/window down"
+meta-wmeta-meta2-C = "/window right"
+meta-wmeta-meta2-D = "/window left"
+meta-wmeta2-1;3A = "/window up"
+meta-wmeta2-1;3B = "/window down"
+meta-wmeta2-1;3C = "/window right"
+meta-wmeta2-1;3D = "/window left"
+meta-wmeta-b = "/window balance"
+meta-wmeta-s = "/window swap"
+meta-z = "/window zoom"
+ctrl-_ = "/input undo"
+
+[key_search]
+ctrl-J = "/input search_stop"
+ctrl-M = "/input search_stop"
+ctrl-R = "/input search_switch_case"
+meta2-A = "/input search_previous"
+meta2-B = "/input search_next"
+
+[key_cursor]
+ctrl-J = "/cursor stop"
+ctrl-M = "/cursor stop"
+meta-meta2-A = "/cursor move area_up"
+meta-meta2-B = "/cursor move area_down"
+meta-meta2-C = "/cursor move area_right"
+meta-meta2-D = "/cursor move area_left"
+meta2-1;3A = "/cursor move area_up"
+meta2-1;3B = "/cursor move area_down"
+meta2-1;3C = "/cursor move area_right"
+meta2-1;3D = "/cursor move area_left"
+meta2-A = "/cursor move up"
+meta2-B = "/cursor move down"
+meta2-C = "/cursor move right"
+meta2-D = "/cursor move left"
+@item(buffer_nicklist):K = "/window ${_window_number};/kickban ${nick}"
+@item(buffer_nicklist):b = "/window ${_window_number};/ban ${nick}"
+@item(buffer_nicklist):k = "/window ${_window_number};/kick ${nick}"
+@item(buffer_nicklist):q = "/window ${_window_number};/query ${nick};/cursor stop"
+@item(buffer_nicklist):w = "/window ${_window_number};/whois ${nick}"
+@chat:Q = "hsignal:chat_quote_time_prefix_message;/cursor stop"
+@chat:m = "hsignal:chat_quote_message;/cursor stop"
+@chat:q = "hsignal:chat_quote_prefix_message;/cursor stop"
+
+[key_mouse]
+@bar(input):button2 = "/input grab_mouse_area"
+@bar(nicklist):button1-gesture-down = "/bar scroll nicklist ${_window_number} +100%"
+@bar(nicklist):button1-gesture-down-long = "/bar scroll nicklist ${_window_number} e"
+@bar(nicklist):button1-gesture-up = "/bar scroll nicklist ${_window_number} -100%"
+@bar(nicklist):button1-gesture-up-long = "/bar scroll nicklist ${_window_number} b"
+@chat(perl.iset):button1 = "hsignal:iset_mouse"
+@chat(perl.iset):button2* = "hsignal:iset_mouse"
+@chat(perl.iset):wheeldown = "/repeat 5 /iset **down"
+@chat(perl.iset):wheelup = "/repeat 5 /iset **up"
+@item(buffer_nicklist):button1 = "/window ${_window_number};/query ${nick}"
+@item(buffer_nicklist):button1-gesture-left = "/window ${_window_number};/kick ${nick}"
+@item(buffer_nicklist):button1-gesture-left-long = "/window ${_window_number};/kickban ${nick}"
+@item(buffer_nicklist):button2 = "/window ${_window_number};/whois ${nick}"
+@item(buffer_nicklist):button2-gesture-left = "/window ${_window_number};/ban ${nick}"
+@item(buffers):button1* = "hsignal:buffers_mouse"
+@item(buffers):button2 = "hsignal:buffers_mouse"
+@item(buffers):button2* = "hsignal:buffers_mouse"
+@bar:wheeldown = "/bar scroll ${_bar_name} ${_window_number} +20%"
+@bar:wheelup = "/bar scroll ${_bar_name} ${_window_number} -20%"
+@chat:button1 = "/window ${_window_number}"
+@chat:button1-gesture-left = "/window ${_window_number};/buffer -1"
+@chat:button1-gesture-left-long = "/window ${_window_number};/buffer 1"
+@chat:button1-gesture-right = "/window ${_window_number};/buffer +1"
+@chat:button1-gesture-right-long = "/window ${_window_number};/input jump_last_buffer"
+@chat:wheeldown = "/window scroll_down -window ${_window_number}"
+@chat:wheelup = "/window scroll_up -window ${_window_number}"
+@*:button3 = "/cursor go ${_x},${_y}"