Commit d4f6107328ccb61ef99426e8171753f38188fd12

Authored by Ian Foster
1 parent 1610fce59a
Exists in master

make brail tags a little more readable

Showing 1 changed file with 1 additions and 1 deletions Inline Diff

awesome/awesome/rc.lua View file @ d4f6107
-------------------------------------- 1 1 --------------------------------------
---- Includes ---- 2 2 ---- Includes ----
-------------------------------------- 3 3 --------------------------------------
-- Standard awesome library 4 4 -- Standard awesome library
require("awful") 5 5 require("awful")
require("awful.autofocus") 6 6 require("awful.autofocus")
require("awful.rules") 7 7 require("awful.rules")
8 8
-- Theme handling library 9 9 -- Theme handling library
require("beautiful") 10 10 require("beautiful")
11 11
-- Notification library 12 12 -- Notification library
require("naughty") 13 13 require("naughty")
14 14
--Expose like plugin 15 15 --Expose like plugin
require("modules/revelation") 16 16 require("modules/revelation")
17 17
--calendaar popup 18 18 --calendaar popup
require('calendar2') 19 19 require('calendar2')
20 20
--freedesktop menus 21 21 --freedesktop menus
require('modules/awesome-freedesktop/freedesktop.utils') 22 22 require('modules/awesome-freedesktop/freedesktop.utils')
require('modules/awesome-freedesktop/freedesktop.menu') 23 23 require('modules/awesome-freedesktop/freedesktop.menu')
24 24
--for widgets 25 25 --for widgets
require("vicious") 26 26 require("vicious")
27 27
require("xrandr") 28 28 require("xrandr")
29 29
30 30
require("layouts/browse") 31 31 require("layouts/browse")
require("layouts/termfair") 32 32 require("layouts/termfair")
require("layouts/uselessfair") 33 33 require("layouts/uselessfair")
require("layouts/uselesstile") 34 34 require("layouts/uselesstile")
35 35
--local keydoc = require("keydoc") 36 36 --local keydoc = require("keydoc")
37 37
-------------------------------------- 38 38 --------------------------------------
---- Variables ---- 39 39 ---- Variables ----
-------------------------------------- 40 40 --------------------------------------
41 41
-- {{{ Variable definitions 42 42 -- {{{ Variable definitions
-- This is used later as the default terminal and editor to run. 43 43 -- This is used later as the default terminal and editor to run.
terminal = "terminator" 44 44 terminal = "terminator"
editor = os.getenv("EDITOR") or "vim" 45 45 editor = os.getenv("EDITOR") or "vim"
editor_cmd = terminal .. " -e " .. editor 46 46 editor_cmd = terminal .. " -e " .. editor
web_browser = "google-chrome" 47 47 web_browser = "google-chrome"
file_manager = "thunar" 48 48 file_manager = "thunar"
lock_command = "xscreensaver-command -lock" 49 49 lock_command = "xscreensaver-command -lock"
exit_command = "cb-exit" 50 50 exit_command = "cb-exit"
prtsc_command = "xfce4-screenshooter" 51 51 prtsc_command = "xfce4-screenshooter"
52 52
-- Default modkey. 53 53 -- Default modkey.
-- Usually, Mod4 is the key with a logo between Control and Alt. 54 54 -- 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, 55 55 -- 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. 56 56 -- 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. 57 57 -- However, you can use another modifier like Mod1, but it may interact with others.
modkey = "Mod4" 58 58 modkey = "Mod4"
59 59
60 60
-------------------------------------- 61 61 --------------------------------------
---- Layout Settings ---- 62 62 ---- Layout Settings ----
-------------------------------------- 63 63 --------------------------------------
64 64
-- number of columns 65 65 -- number of columns
vain.layout.termfair.nmaster = 3 66 66 vain.layout.termfair.nmaster = 3
-- min number of rows (yes the var-name is backwards) 67 67 -- min number of rows (yes the var-name is backwards)
vain.layout.termfair.ncol = 1 68 68 vain.layout.termfair.ncol = 1
69 69
-- percent of space for main window 70 70 -- percent of space for main window
vain.layout.browse.mwfact_global = 0.6 71 71 vain.layout.browse.mwfact_global = 0.6
-- 0 for non-overlapping, 1 for ovelapping 72 72 -- 0 for non-overlapping, 1 for ovelapping
vain.layout.browse.ncol = 1 73 73 vain.layout.browse.ncol = 1
-- reduces the size of the main window if "overlapping slave column" is activated. 74 74 -- reduces the size of the main window if "overlapping slave column" is activated.
-- This allows you to see if there are any windows in your slave column. 75 75 -- This allows you to see if there are any windows in your slave column.
vain.layout.browse.extra_padding = 5 76 76 vain.layout.browse.extra_padding = 5
77 77
-------------------------------------- 78 78 --------------------------------------
---- Plugin Settings ---- 79 79 ---- Plugin Settings ----
-------------------------------------- 80 80 --------------------------------------
81 81
--set default naughty timeout 82 82 --set default naughty timeout
naughty.config.default_preset.timeout = 2 83 83 naughty.config.default_preset.timeout = 2
84 84
85 85
-- Themes define colours, icons, and wallpapers 86 86 -- Themes define colours, icons, and wallpapers
beautiful.init( awful.util.getdir("config") .. "/darkburn/theme.lua") 87 87 beautiful.init( awful.util.getdir("config") .. "/darkburn/theme.lua")
88 88
89 89
-------------------------------------- 90 90 --------------------------------------
---- Error Handleing ---- 91 91 ---- Error Handleing ----
-------------------------------------- 92 92 --------------------------------------
93 93
-- {{{ Error handling 94 94 -- {{{ Error handling
-- Check if awesome encountered an error during startup and fell back to 95 95 -- Check if awesome encountered an error during startup and fell back to
-- another config (This code will only ever execute for the fallback config) 96 96 -- another config (This code will only ever execute for the fallback config)
if awesome.startup_errors then 97 97 if awesome.startup_errors then
naughty.notify({ preset = naughty.config.presets.critical, 98 98 naughty.notify({ preset = naughty.config.presets.critical,
title = "Oops, there were errors during startup!", 99 99 title = "Oops, there were errors during startup!",
text = awesome.startup_errors }) 100 100 text = awesome.startup_errors })
end 101 101 end
102 102
-- Handle runtime errors after startup 103 103 -- Handle runtime errors after startup
do 104 104 do
local in_error = false 105 105 local in_error = false
awesome.add_signal("debug::error", function (err) 106 106 awesome.add_signal("debug::error", function (err)
-- Make sure we don't go into an endless error loop 107 107 -- Make sure we don't go into an endless error loop
if in_error then return end 108 108 if in_error then return end
in_error = true 109 109 in_error = true
110 110
naughty.notify({ preset = naughty.config.presets.critical, 111 111 naughty.notify({ preset = naughty.config.presets.critical,
title = "Oops, an error happened!", 112 112 title = "Oops, an error happened!",
text = err }) 113 113 text = err })
in_error = false 114 114 in_error = false
end) 115 115 end)
end 116 116 end
-- }}} 117 117 -- }}}
118 118
119 119
-------------------------------------- 120 120 --------------------------------------
---- Tags and Layout ---- 121 121 ---- Tags and Layout ----
-------------------------------------- 122 122 --------------------------------------
123 123
-- Table of layouts to cover with awful.layout.inc, order matters. 124 124 -- Table of layouts to cover with awful.layout.inc, order matters.
layouts = 125 125 layouts =
{ 126 126 {
awful.layout.suit.tile, 127 127 awful.layout.suit.tile,
awful.layout.suit.tile.bottom, 128 128 awful.layout.suit.tile.bottom,
awful.layout.suit.max, 129 129 awful.layout.suit.max,
awful.layout.suit.floating, 130 130 awful.layout.suit.floating,
vain.layout.browse, 131 131 vain.layout.browse,
vain.layout.termfair, 132 132 vain.layout.termfair,
--vain.layout.uselesstile, 133 133 --vain.layout.uselesstile,
vain.layout.uselessfair, 134 134 vain.layout.uselessfair,
--awful.layout.suit.magnifier, 135 135 --awful.layout.suit.magnifier,
--awful.layout.suit.tile.left, 136 136 --awful.layout.suit.tile.left,
--awful.layout.suit.tile.top, 137 137 --awful.layout.suit.tile.top,
--awful.layout.suit.fair, 138 138 --awful.layout.suit.fair,
--awful.layout.suit.fair.horizontal, 139 139 --awful.layout.suit.fair.horizontal,
--awful.layout.suit.spiral, 140 140 --awful.layout.suit.spiral,
--awful.layout.suit.spiral.dwindle, 141 141 --awful.layout.suit.spiral.dwindle,
--awful.layout.suit.max.fullscreen, 142 142 --awful.layout.suit.max.fullscreen,
} 143 143 }
-- }}} 144 144 -- }}}
145 145
-- {{{ Tags 146 146 -- {{{ Tags
-- Define a tag table which hold all screen tags. 147 147 -- Define a tag table which hold all screen tags.
tags = { 148 148 tags = {
names = { '⠒', '⠓', '⠣', '⠧', '⠗', '⠝', '⠵', '⠹', '⠳' }, 149 149 names = { '⠂', '⠒', '⠣', '⠞', '⠟', '⠿', '⠹', '⠽', '⠻' },
layout = { layouts[1], layouts[1], layouts[1], layouts[1], layouts[1], layouts[1], layouts[1], layouts[1], layouts[1],}, 150 150 layout = { layouts[1], layouts[1], layouts[1], layouts[1], layouts[1], layouts[1], layouts[1], layouts[1], layouts[1],},
} 151 151 }
for s = 1, screen.count() do 152 152 for s = 1, screen.count() do
-- Each screen has its own tag table. 153 153 -- Each screen has its own tag table.
tags[s] = awful.tag(tags.names, s, tags.layout) 154 154 tags[s] = awful.tag(tags.names, s, tags.layout)
end 155 155 end
-- }}} 156 156 -- }}}
-- 157 157 --
--awful.layout.set(vain.layout.termfair, tags[1][2]) 158 158 --awful.layout.set(vain.layout.termfair, tags[1][2])
--awful.tag.setnmaster(3, tags[1][2]) 159 159 --awful.tag.setnmaster(3, tags[1][2])
--awful.tag.setncol(1, tags[1][2]) 160 160 --awful.tag.setncol(1, tags[1][2])
161 161
-------------------------------------- 162 162 --------------------------------------
---- Menu ---- 163 163 ---- Menu ----
-------------------------------------- 164 164 --------------------------------------
165 165
-- {{{ Menu 166 166 -- {{{ Menu
-- Create a laucher widget and a main menu 167 167 -- Create a laucher widget and a main menu
myawesomemenu = { 168 168 myawesomemenu = {
{ "manual", terminal .. " -e man awesome" }, 169 169 { "manual", terminal .. " -e man awesome" },
{ "edit config", editor_cmd .. " " .. awesome.conffile }, 170 170 { "edit config", editor_cmd .. " " .. awesome.conffile },
{ "restart", awesome.restart }, 171 171 { "restart", awesome.restart },
{ "quit", awesome.quit } 172 172 { "quit", awesome.quit }
} 173 173 }
174 174
menu_items = freedesktop.menu.new() 175 175 menu_items = freedesktop.menu.new()
table.insert(menu_items, { "awesome", myawesomemenu, beautiful.awesome_icon }) 176 176 table.insert(menu_items, { "awesome", myawesomemenu, beautiful.awesome_icon })
table.insert(menu_items, { "Exit", exit_command }) 177 177 table.insert(menu_items, { "Exit", exit_command })
178 178
mymainmenu = awful.menu.new({ items = menu_items, width = beautiful.menu_width }) 179 179 mymainmenu = awful.menu.new({ items = menu_items, width = beautiful.menu_width })
180 180
mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon), 181 181 mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon),
menu = mymainmenu }) 182 182 menu = mymainmenu })
-- }}} 183 183 -- }}}
184 184
185 185
-------------------------------------- 186 186 --------------------------------------
---- WiBox ---- 187 187 ---- WiBox ----
-------------------------------------- 188 188 --------------------------------------
189 189
-- {{{ Wibox 190 190 -- {{{ Wibox
-- Create a textclock widget 191 191 -- Create a textclock widget
mytextclock = awful.widget.textclock({ align = "right" }) 192 192 mytextclock = awful.widget.textclock({ align = "right" })
193 193
--calendar plugin 194 194 --calendar plugin
calendar2.addCalendarToWidget(mytextclock) 195 195 calendar2.addCalendarToWidget(mytextclock)
196 196
--separator widget 197 197 --separator widget
separator = widget({ type = "textbox" }) 198 198 separator = widget({ type = "textbox" })
separator.text = "|" 199 199 separator.text = "|"
200 200
--space widget 201 201 --space widget
space = widget({ type = "textbox" }) 202 202 space = widget({ type = "textbox" })
space.text = " " 203 203 space.text = " "
204 204
205 205
-- RAM usage widget 206 206 -- RAM usage widget
memwidget = awful.widget.progressbar() 207 207 memwidget = awful.widget.progressbar()
memwidget:set_width(8) 208 208 memwidget:set_width(8)
memwidget:set_height(beautiful.menu_height) 209 209 memwidget:set_height(beautiful.menu_height)
memwidget:set_vertical(true) 210 210 memwidget:set_vertical(true)
memwidget:set_background_color(beautiful.bg_widget) 211 211 memwidget:set_background_color(beautiful.bg_widget)
memwidget:set_color(beautiful.fg_widget) 212 212 memwidget:set_color(beautiful.fg_widget)
memwidget:set_gradient_colors({ beautiful.fg_widget, beautiful.fg_center_widget, beautiful.fg_end_widget }) 213 213 memwidget:set_gradient_colors({ beautiful.fg_widget, beautiful.fg_center_widget, beautiful.fg_end_widget })
-- RAM usage tooltip 214 214 -- RAM usage tooltip
memwidget_t = awful.tooltip({ objects = { memwidget.widget },}) 215 215 memwidget_t = awful.tooltip({ objects = { memwidget.widget },})
vicious.cache(vicious.widgets.mem) 216 216 vicious.cache(vicious.widgets.mem)
vicious.register(memwidget, vicious.widgets.mem, 217 217 vicious.register(memwidget, vicious.widgets.mem,
function (widget, args) 218 218 function (widget, args)
memwidget_t:set_text(" RAM: " .. args[1] .. "% " .. args[2] .. "MB / " .. args[3] .. "MB ") 219 219 memwidget_t:set_text(" RAM: " .. args[1] .. "% " .. args[2] .. "MB / " .. args[3] .. "MB ")
return args[1] 220 220 return args[1]
end, 5) 221 221 end, 5)
--update every 5 seconds 222 222 --update every 5 seconds
223 223
-- CPU usage widget 224 224 -- CPU usage widget
cpuwidget = awful.widget.graph() 225 225 cpuwidget = awful.widget.graph()
cpuwidget:set_width(30) 226 226 cpuwidget:set_width(30)
cpuwidget:set_height(beautiful.menu_height) 227 227 cpuwidget:set_height(beautiful.menu_height)
cpuwidget:set_background_color(beautiful.bg_widget) 228 228 cpuwidget:set_background_color(beautiful.bg_widget)
cpuwidget:set_color(beautiful.fg_widget) 229 229 cpuwidget:set_color(beautiful.fg_widget)
cpuwidget:set_gradient_angle(180) 230 230 cpuwidget:set_gradient_angle(180)
cpuwidget:set_gradient_colors({ beautiful.fg_widget, fg_center_widget, beautiful.fg_end_widget }) 231 231 cpuwidget:set_gradient_colors({ beautiful.fg_widget, fg_center_widget, beautiful.fg_end_widget })
cpuwidget_t = awful.tooltip({ objects = { cpuwidget.widget },}) 232 232 cpuwidget_t = awful.tooltip({ objects = { cpuwidget.widget },})
-- Register CPU widget 233 233 -- Register CPU widget
vicious.register(cpuwidget, vicious.widgets.cpu, 234 234 vicious.register(cpuwidget, vicious.widgets.cpu,
function (widget, args) 235 235 function (widget, args)
cpuwidget_t:set_text("CPU Usage: " .. args[1] .. "%") 236 236 cpuwidget_t:set_text("CPU Usage: " .. args[1] .. "%")
return args[1] 237 237 return args[1]
end, 2) 238 238 end, 2)
239 239
-- Create a systray 240 240 -- Create a systray
mysystray = widget({ type = "systray" }) 241 241 mysystray = widget({ type = "systray" })
242 242
-- Create a wibox for each screen and add it 243 243 -- Create a wibox for each screen and add it
mywibox = {} 244 244 mywibox = {}
mypromptbox = {} 245 245 mypromptbox = {}
mylayoutbox = {} 246 246 mylayoutbox = {}
mytaglist = {} 247 247 mytaglist = {}
mytaglist.buttons = awful.util.table.join( 248 248 mytaglist.buttons = awful.util.table.join(
awful.button({ }, 1, awful.tag.viewonly), 249 249 awful.button({ }, 1, awful.tag.viewonly),
awful.button({ modkey }, 1, awful.client.movetotag), 250 250 awful.button({ modkey }, 1, awful.client.movetotag),
awful.button({ }, 3, awful.tag.viewtoggle), 251 251 awful.button({ }, 3, awful.tag.viewtoggle),
awful.button({ modkey }, 3, awful.client.toggletag), 252 252 awful.button({ modkey }, 3, awful.client.toggletag),
awful.button({ }, 4, awful.tag.viewnext), 253 253 awful.button({ }, 4, awful.tag.viewnext),
awful.button({ }, 5, awful.tag.viewprev) 254 254 awful.button({ }, 5, awful.tag.viewprev)
) 255 255 )
mytasklist = {} 256 256 mytasklist = {}
mytasklist.buttons = awful.util.table.join( 257 257 mytasklist.buttons = awful.util.table.join(
awful.button({ }, 1, function (c) 258 258 awful.button({ }, 1, function (c)
if c == client.focus then 259 259 if c == client.focus then
c.minimized = true 260 260 c.minimized = true
else 261 261 else
if not c:isvisible() then 262 262 if not c:isvisible() then
awful.tag.viewonly(c:tags()[1]) 263 263 awful.tag.viewonly(c:tags()[1])
end 264 264 end
-- This will also un-minimize 265 265 -- This will also un-minimize
-- the client, if needed 266 266 -- the client, if needed
client.focus = c 267 267 client.focus = c
c:raise() 268 268 c:raise()
end 269 269 end
end), 270 270 end),
awful.button({ }, 3, function () 271 271 awful.button({ }, 3, function ()
if instance then 272 272 if instance then
instance:hide() 273 273 instance:hide()
instance = nil 274 274 instance = nil
else 275 275 else
instance = awful.menu.clients({ width=250 }) 276 276 instance = awful.menu.clients({ width=250 })
end 277 277 end
end), 278 278 end),
awful.button({ }, 4, function () 279 279 awful.button({ }, 4, function ()
awful.client.focus.byidx(1) 280 280 awful.client.focus.byidx(1)
if client.focus then client.focus:raise() end 281 281 if client.focus then client.focus:raise() end
end), 282 282 end),
awful.button({ }, 5, function () 283 283 awful.button({ }, 5, function ()
awful.client.focus.byidx(-1) 284 284 awful.client.focus.byidx(-1)
if client.focus then client.focus:raise() end 285 285 if client.focus then client.focus:raise() end
end)) 286 286 end))
287 287
for s = 1, screen.count() do 288 288 for s = 1, screen.count() do
-- Create a promptbox for each screen 289 289 -- Create a promptbox for each screen
mypromptbox[s] = awful.widget.prompt({ layout = awful.widget.layout.horizontal.leftright }) 290 290 mypromptbox[s] = awful.widget.prompt({ layout = awful.widget.layout.horizontal.leftright })
-- Create an imagebox widget which will contains an icon indicating which layout we're using. 291 291 -- Create an imagebox widget which will contains an icon indicating which layout we're using.
-- We need one layoutbox per screen. 292 292 -- We need one layoutbox per screen.
mylayoutbox[s] = awful.widget.layoutbox(s) 293 293 mylayoutbox[s] = awful.widget.layoutbox(s)
mylayoutbox[s]:buttons(awful.util.table.join( 294 294 mylayoutbox[s]:buttons(awful.util.table.join(
awful.button({ }, 1, function () awful.layout.inc(layouts, 1) end), 295 295 awful.button({ }, 1, function () awful.layout.inc(layouts, 1) end),
awful.button({ }, 3, function () awful.layout.inc(layouts, -1) end), 296 296 awful.button({ }, 3, function () awful.layout.inc(layouts, -1) end),
awful.button({ }, 4, function () awful.layout.inc(layouts, 1) end), 297 297 awful.button({ }, 4, function () awful.layout.inc(layouts, 1) end),
awful.button({ }, 5, function () awful.layout.inc(layouts, -1) end))) 298 298 awful.button({ }, 5, function () awful.layout.inc(layouts, -1) end)))
-- Create a taglist widget 299 299 -- Create a taglist widget
mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.label.all, mytaglist.buttons) 300 300 mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.label.all, mytaglist.buttons)
301 301
-- Create a tasklist widget 302 302 -- Create a tasklist widget
mytasklist[s] = awful.widget.tasklist(function(c) 303 303 mytasklist[s] = awful.widget.tasklist(function(c)
return awful.widget.tasklist.label.currenttags(c, s) 304 304 return awful.widget.tasklist.label.currenttags(c, s)
end, mytasklist.buttons) 305 305 end, mytasklist.buttons)
306 306
-- Create the wibox 307 307 -- Create the wibox
mywibox[s] = awful.wibox({ position = "top", screen = s, height = beautiful.menu_height }) 308 308 mywibox[s] = awful.wibox({ position = "top", screen = s, height = beautiful.menu_height })
-- Add widgets to the wibox - order matters 309 309 -- Add widgets to the wibox - order matters
mywibox[s].widgets = { 310 310 mywibox[s].widgets = {
{ 311 311 {
mylauncher, 312 312 mylauncher,
mytaglist[s], 313 313 mytaglist[s],
mypromptbox[s], 314 314 mypromptbox[s],
layout = awful.widget.layout.horizontal.leftright 315 315 layout = awful.widget.layout.horizontal.leftright
}, 316 316 },
mylayoutbox[s], 317 317 mylayoutbox[s],
mytextclock, 318 318 mytextclock,
separator, 319 319 separator,
space, 320 320 space,
memwidget.widget, 321 321 memwidget.widget,
space, 322 322 space,
separator, 323 323 separator,
space, 324 324 space,
cpuwidget.widget, 325 325 cpuwidget.widget,
space, 326 326 space,
separator, 327 327 separator,
s == 1 and mysystray or nil, --only place the systray on the primary screen 328 328 s == 1 and mysystray or nil, --only place the systray on the primary screen
mytasklist[s], 329 329 mytasklist[s],
layout = awful.widget.layout.horizontal.rightleft 330 330 layout = awful.widget.layout.horizontal.rightleft
} 331 331 }
end 332 332 end
-- }}} 333 333 -- }}}
334 334
335 335
-------------------------------------- 336 336 --------------------------------------
---- Key bindings ---- 337 337 ---- Key bindings ----
-------------------------------------- 338 338 --------------------------------------
339 339
-- {{{ Change workspace on scroll 340 340 -- {{{ Change workspace on scroll
root.buttons(awful.util.table.join( 341 341 root.buttons(awful.util.table.join(
--awful.button({ }, 3, function () mymainmenu:toggle() end), --I dont want a menu when I click on the desktop 342 342 --awful.button({ }, 3, function () mymainmenu:toggle() end), --I dont want a menu when I click on the desktop
awful.button({ }, 4, awful.tag.viewnext), 343 343 awful.button({ }, 4, awful.tag.viewnext),
awful.button({ }, 5, awful.tag.viewprev) 344 344 awful.button({ }, 5, awful.tag.viewprev)
)) 345 345 ))
-- }}} 346 346 -- }}}
347 347
348 348
-- {{{ Key bindings 349 349 -- {{{ Key bindings
globalkeys = awful.util.table.join( 350 350 globalkeys = awful.util.table.join(
351 351
--keydoc.group("Layout manipulation"), 352 352 --keydoc.group("Layout manipulation"),
353 353
354 354
--plugins 355 355 --plugins
awful.key({ modkey, }, "e", revelation), 356 356 awful.key({ modkey, }, "e", revelation),
--awful.key({ modkey, }, "F1", keydoc.display), --TODO finish this, needs arg string as last param 357 357 --awful.key({ modkey, }, "F1", keydoc.display), --TODO finish this, needs arg string as last param
358 358
--TODO make work 359 359 --TODO make work
awful.key({}, "XF86Display", xrandr), 360 360 awful.key({}, "XF86Display", xrandr),
361 361
--Conky toggle 362 362 --Conky toggle
awful.key({ }, "Pause", raise_conky, lower_conky), 363 363 awful.key({ }, "Pause", raise_conky, lower_conky),
--awful.key({}, "Pause", toggle_conky) 364 364 --awful.key({}, "Pause", toggle_conky)
365 365
--Move Client to Workspace Left/Right 366 366 --Move Client to Workspace Left/Right
--only works with 3.5, For 3.4 visit link 367 367 --only works with 3.5, For 3.4 visit link
--http://awesome.naquadah.org/wiki/Move_Window_to_Workspace_Left/Right 368 368 --http://awesome.naquadah.org/wiki/Move_Window_to_Workspace_Left/Right
awful.key({ modkey, "Shift" }, "Left", 369 369 awful.key({ modkey, "Shift" }, "Left",
function (c) 370 370 function (c)
local curidx = awful.tag.getidx() 371 371 local curidx = awful.tag.getidx()
if curidx == 1 then 372 372 if curidx == 1 then
awful.client.movetotag(tags[client.focus.screen][9]) 373 373 awful.client.movetotag(tags[client.focus.screen][9])
else 374 374 else
awful.client.movetotag(tags[client.focus.screen][curidx - 1]) 375 375 awful.client.movetotag(tags[client.focus.screen][curidx - 1])
end 376 376 end
--awful.tag.viewprev 377 377 --awful.tag.viewprev
end), 378 378 end),
awful.key({ modkey, "Shift" }, "Right", 379 379 awful.key({ modkey, "Shift" }, "Right",
function (c) 380 380 function (c)
local curidx = awful.tag.getidx() 381 381 local curidx = awful.tag.getidx()
if curidx == 9 then 382 382 if curidx == 9 then
awful.client.movetotag(tags[client.focus.screen][1]) 383 383 awful.client.movetotag(tags[client.focus.screen][1])
else 384 384 else
awful.client.movetotag(tags[client.focus.screen][curidx + 1]) 385 385 awful.client.movetotag(tags[client.focus.screen][curidx + 1])
end 386 386 end
--awful.tag.viewnext 387 387 --awful.tag.viewnext
end), 388 388 end),
awful.key({ modkey, }, "Left", awful.tag.viewprev ), 389 389 awful.key({ modkey, }, "Left", awful.tag.viewprev ),
awful.key({ modkey, }, "Right", awful.tag.viewnext ), 390 390 awful.key({ modkey, }, "Right", awful.tag.viewnext ),
awful.key({ modkey, }, "Escape", awful.tag.history.restore), 391 391 awful.key({ modkey, }, "Escape", awful.tag.history.restore),
392 392
awful.key({ modkey, }, "j", 393 393 awful.key({ modkey, }, "j",
function () 394 394 function ()
awful.client.focus.byidx( 1) 395 395 awful.client.focus.byidx( 1)
if client.focus then client.focus:raise() end 396 396 if client.focus then client.focus:raise() end
end), 397 397 end),
awful.key({ modkey, }, "k", 398 398 awful.key({ modkey, }, "k",
function () 399 399 function ()
awful.client.focus.byidx(-1) 400 400 awful.client.focus.byidx(-1)
if client.focus then client.focus:raise() end 401 401 if client.focus then client.focus:raise() end
end), 402 402 end),
--awful.key({ modkey, }, "w", function () mymainmenu:show({keygrabber=true}) end), --we dont like the menu 403 403 --awful.key({ modkey, }, "w", function () mymainmenu:show({keygrabber=true}) end), --we dont like the menu
404 404
-- Layout manipulation 405 405 -- Layout manipulation
awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end), 406 406 awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end),
awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end), 407 407 awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end),
awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end), 408 408 awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end),
awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end), 409 409 awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end),
awful.key({ modkey, }, "u", awful.client.urgent.jumpto), 410 410 awful.key({ modkey, }, "u", awful.client.urgent.jumpto),
awful.key({ modkey, }, "Tab", 411 411 awful.key({ modkey, }, "Tab",
function () 412 412 function ()
awful.client.focus.history.previous() 413 413 awful.client.focus.history.previous()
if client.focus then 414 414 if client.focus then
client.focus:raise() 415 415 client.focus:raise()
end 416 416 end
end), 417 417 end),
418 418
-- Standard program 419 419 -- Standard program
awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end), 420 420 awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end),
awful.key({ modkey, }, "w", function () awful.util.spawn(web_browser) end), --hotkey to start web-browser 421 421 awful.key({ modkey, }, "w", function () awful.util.spawn(web_browser) end), --hotkey to start web-browser
awful.key({ modkey, }, "f", function () awful.util.spawn(file_manager) end), --hotkey to start my file manager 422 422 awful.key({ modkey, }, "f", function () awful.util.spawn(file_manager) end), --hotkey to start my file manager
awful.key({ modkey, "Control" }, "l", function () awful.util.spawn(lock_command) end), --lock screen 423 423 awful.key({ modkey, "Control" }, "l", function () awful.util.spawn(lock_command) end), --lock screen
awful.key( { } , "Print" , function () awful.util.spawn(prtsc_command) end), --screenshot 424 424 awful.key( { } , "Print" , function () awful.util.spawn(prtsc_command) end), --screenshot
awful.key({ modkey, "Control" }, "r", awesome.restart), 425 425 awful.key({ modkey, "Control" }, "r", awesome.restart),
awful.key({ modkey, "Shift" }, "q", awesome.quit), 426 426 awful.key({ modkey, "Shift" }, "q", awesome.quit),
427 427
-- Standard program 428 428 -- Standard program
awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end), 429 429 awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end),
awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end), 430 430 awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end),
awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end), 431 431 awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end), 432 432 awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end),
awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1) end), 433 433 awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1) end),
awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end), 434 434 awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end),
awful.key({ modkey, }, "space", function () awful.layout.inc(layouts, 1) end), 435 435 awful.key({ modkey, }, "space", function () awful.layout.inc(layouts, 1) end),
awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(layouts, -1) end), 436 436 awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(layouts, -1) end),
437 437
awful.key({ modkey, "Control" }, "n", awful.client.restore), 438 438 awful.key({ modkey, "Control" }, "n", awful.client.restore),
439 439
-- Prompt 440 440 -- Prompt
awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end), 441 441 awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end),
442 442
awful.key({ modkey }, "x", 443 443 awful.key({ modkey }, "x",
function () 444 444 function ()
awful.prompt.run({ prompt = "Run Lua code: " }, 445 445 awful.prompt.run({ prompt = "Run Lua code: " },
mypromptbox[mouse.screen].widget, 446 446 mypromptbox[mouse.screen].widget,
awful.util.eval, nil, 447 447 awful.util.eval, nil,
awful.util.getdir("cache") .. "/history_eval") 448 448 awful.util.getdir("cache") .. "/history_eval")
end) 449 449 end)
) 450 450 )
451 451
452 452
-- Compute the maximum number of digit we need, limited to 9 453 453 -- Compute the maximum number of digit we need, limited to 9
keynumber = 0 454 454 keynumber = 0
for s = 1, screen.count() do 455 455 for s = 1, screen.count() do
keynumber = math.min(9, math.max(#tags[s], keynumber)); 456 456 keynumber = math.min(9, math.max(#tags[s], keynumber));
end 457 457 end
458 458
-- Bind all key numbers to tags. 459 459 -- Bind all key numbers to tags.
-- Be careful: we use keycodes to make it works on any keyboard layout. 460 460 -- 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. 461 461 -- This should map on the top row of your keyboard, usually 1 to 9.
for i = 1, keynumber do 462 462 for i = 1, keynumber do
globalkeys = awful.util.table.join(globalkeys, 463 463 globalkeys = awful.util.table.join(globalkeys,
awful.key({ modkey }, "#" .. i + 9, 464 464 awful.key({ modkey }, "#" .. i + 9,
function () 465 465 function ()
local screen = mouse.screen 466 466 local screen = mouse.screen
if tags[screen][i] then 467 467 if tags[screen][i] then
awful.tag.viewonly(tags[screen][i]) 468 468 awful.tag.viewonly(tags[screen][i])
end 469 469 end
end), 470 470 end),
awful.key({ modkey, "Control" }, "#" .. i + 9, 471 471 awful.key({ modkey, "Control" }, "#" .. i + 9,
function () 472 472 function ()
local screen = mouse.screen 473 473 local screen = mouse.screen
if tags[screen][i] then 474 474 if tags[screen][i] then
awful.tag.viewtoggle(tags[screen][i]) 475 475 awful.tag.viewtoggle(tags[screen][i])
end 476 476 end
end), 477 477 end),
awful.key({ modkey, "Shift" }, "#" .. i + 9, 478 478 awful.key({ modkey, "Shift" }, "#" .. i + 9,
function () 479 479 function ()
if client.focus and tags[client.focus.screen][i] then 480 480 if client.focus and tags[client.focus.screen][i] then
awful.client.movetotag(tags[client.focus.screen][i]) 481 481 awful.client.movetotag(tags[client.focus.screen][i])
end 482 482 end
end), 483 483 end),
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, 484 484 awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
function () 485 485 function ()
if client.focus and tags[client.focus.screen][i] then 486 486 if client.focus and tags[client.focus.screen][i] then
awful.client.toggletag(tags[client.focus.screen][i]) 487 487 awful.client.toggletag(tags[client.focus.screen][i])
end 488 488 end
end)) 489 489 end))
end 490 490 end
491 491
clientbuttons = awful.util.table.join( 492 492 clientbuttons = awful.util.table.join(
awful.button({ }, 1, function (c) client.focus = c; c:raise() end), 493 493 awful.button({ }, 1, function (c) client.focus = c; c:raise() end),
awful.button({ modkey }, 1, awful.mouse.client.move), 494 494 awful.button({ modkey }, 1, awful.mouse.client.move),
awful.button({ modkey }, 3, awful.mouse.client.resize)) 495 495 awful.button({ modkey }, 3, awful.mouse.client.resize))
496 496
-- Set keys 497 497 -- Set keys
root.keys(globalkeys) 498 498 root.keys(globalkeys)
-- }}} 499 499 -- }}}
500 500
501 501
-------------------------------------- 502 502 --------------------------------------
--- Rules ---- 503 503 --- Rules ----
-------------------------------------- 504 504 --------------------------------------
505 505
clientkeys = awful.util.table.join( 506 506 clientkeys = awful.util.table.join(
awful.key({ modkey, }, "F11", function (c) c.fullscreen = not c.fullscreen end), 507 507 awful.key({ modkey, }, "F11", function (c) c.fullscreen = not c.fullscreen end),
awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end), 508 508 awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end),
awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ), 509 509 awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ),
awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end), 510 510 awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end),
--awful.key({ modkey, }, "o", awful.client.movetoscreen ), 511 511 --awful.key({ modkey, }, "o", awful.client.movetoscreen ),
--Move Client to Monitor Left/Right 512 512 --Move Client to Monitor Left/Right
awful.key({ modkey, }, "o", function(c) awful.client.movetoscreen(c,c.screen-1) end ), 513 513 awful.key({ modkey, }, "o", function(c) awful.client.movetoscreen(c,c.screen-1) end ),
awful.key({ modkey, }, "p", function(c) awful.client.movetoscreen(c,c.screen+1) end ), 514 514 awful.key({ modkey, }, "p", function(c) awful.client.movetoscreen(c,c.screen+1) end ),
515 515
--awful.key({ modkey, "Shift" }, "r", function (c) c:redraw() end), 516 516 --awful.key({ modkey, "Shift" }, "r", function (c) c:redraw() end),
awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end), 517 517 awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end),
awful.key({ modkey, }, "n", 518 518 awful.key({ modkey, }, "n",
function (c) 519 519 function (c)
-- The client currently has the input focus, so it cannot be 520 520 -- The client currently has the input focus, so it cannot be
-- minimized, since minimized clients can't have the focus. 521 521 -- minimized, since minimized clients can't have the focus.
c.minimized = true 522 522 c.minimized = true
end), 523 523 end),
awful.key({ modkey, }, "m", 524 524 awful.key({ modkey, }, "m",
function (c) 525 525 function (c)
c.maximized_horizontal = not c.maximized_horizontal 526 526 c.maximized_horizontal = not c.maximized_horizontal
c.maximized_vertical = not c.maximized_vertical 527 527 c.maximized_vertical = not c.maximized_vertical
end) 528 528 end)
) 529 529 )
530 530
-- {{{ Rules 531 531 -- {{{ Rules
awful.rules.rules = { 532 532 awful.rules.rules = {
-- All clients will match this rule. 533 533 -- All clients will match this rule.
{ rule = { }, 534 534 { rule = { },
properties = { border_width = beautiful.border_width, 535 535 properties = { border_width = beautiful.border_width,
border_color = beautiful.border_normal, 536 536 border_color = beautiful.border_normal,
focus = true, 537 537 focus = true,
keys = clientkeys, 538 538 keys = clientkeys,
buttons = clientbuttons } }, 539 539 buttons = clientbuttons } },
{ rule = { class = "MPlayer" }, 540 540 { rule = { class = "MPlayer" },
properties = { floating = true } }, 541 541 properties = { floating = true } },
{ rule = { class = "pinentry" }, 542 542 { rule = { class = "pinentry" },
properties = { floating = true } }, 543 543 properties = { floating = true } },
{ rule = { class = "gimp" }, 544 544 { rule = { class = "gimp" },
properties = { floating = true } }, 545 545 properties = { floating = true } },
{ rule = { class = "Conky" }, 546 546 { rule = { class = "Conky" },
properties = { 547 547 properties = {
floating = true, 548 548 floating = true,
sticky = true, 549 549 sticky = true,
ontop = false, 550 550 ontop = false,
focusable = false, 551 551 focusable = false,
size_hints = {"program_position", "program_size"} 552 552 size_hints = {"program_position", "program_size"}
} 553 553 }
} 554 554 }
} 555 555 }
-- }}} 556 556 -- }}}
557 557