diff options
author | Anton Khirnov <anton@khirnov.net> | 2017-01-26 12:25:52 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2017-01-26 12:25:52 +0100 |
commit | 9b322660ee6b7640af24def50a7fb8615a8ab126 (patch) | |
tree | a3064adc789a0ed91149432a15b86c66d7967c35 /bindings.lua | |
parent | e8bb1f4a1844f07fc2f6973f2e7b400f2ddf2f3d (diff) |
Basic support for desktops/pages.
Diffstat (limited to 'bindings.lua')
-rw-r--r-- | bindings.lua | 275 |
1 files changed, 138 insertions, 137 deletions
diff --git a/bindings.lua b/bindings.lua index 87b1a76..3dd4f21 100644 --- a/bindings.lua +++ b/bindings.lua @@ -1,144 +1,145 @@ +local M = {} + local awful = require("awful") local commondefs = require("commondefs") local utils = require("utils") -local modkey = commondefs.modkey - -local globalkeys = awful.util.table.join( - awful.key({ modkey, "Mod1" }, "Delete", awesome.restart), - awful.key({ modkey }, "Pause", function () awful.util.spawn("xscreensaver-command -lock") end), - - -- program launching - awful.key({ modkey, }, "t", function () awful.util.spawn(commondefs.terminal) end), - awful.key({ modkey, }, "v", function () awful.util.spawn(commondefs.terminal .. " -e alsamixer") end), - awful.key({ modkey, }, "Escape", function () awful.util.spawn(commondefs.terminal .. " -e htop") end), - - -- audio control - awful.key({ modkey }, "Prior", function () utils.vol_control(1) end), - awful.key({ modkey }, "Next", function () utils.vol_control(-1) end), - awful.key({ modkey }, "grave", function () awful.util.spawn("mpc toggle") end), - awful.key({ modkey }, "b", function () awful.util.spawn("mpc next") end), - awful.key({ modkey }, "p", function () awful.util.spawn("mpc prev") end), - - -- focus/screen switching - awful.key({ modkey, }, "q", function() utils.screen_focus_physical(1) end), - awful.key({ modkey, }, "w", function() utils.screen_focus_physical(2) end), - awful.key({ modkey, }, "e", function() utils.screen_focus_physical(3) end), - - awful.key({ modkey, }, "Left", awful.tag.viewprev ), - awful.key({ modkey, }, "Right", awful.tag.viewnext ), - - awful.key({ modkey, }, "Tab", - function () - awful.client.focus.byidx(1) - if client.focus then client.focus:raise() end - end), - awful.key({ modkey, "Shift" }, "Tab", - function () - awful.client.focus.byidx(-1) - if client.focus then client.focus:raise() end - end), - awful.key({ modkey, "Mod1" }, "Tab", - function () - awful.client.focus.history.previous() - if client.focus then - client.focus:raise() - end - 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, }, "u", awful.client.urgent.jumpto), - - - 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, }, ",", function () awful.tag.incnmaster( 1) end), - awful.key({ modkey, }, ".", 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, "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) -) - --- 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, - -- View tag only. - 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), - -- Toggle tag. - 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), - -- Move client to tag. - 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), - -- Toggle tag. - awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, +function M.create(workspace) + local modkey = commondefs.modkey + + local globalkeys = awful.util.table.join( + awful.key({ modkey, "Mod1" }, "Delete", awesome.restart), + awful.key({ modkey }, "Pause", function () awful.util.spawn("xscreensaver-command -lock") end), + + -- program launching + awful.key({ modkey, }, "t", function () awful.util.spawn(commondefs.terminal) end), + awful.key({ modkey, }, "v", function () awful.util.spawn(commondefs.terminal .. " -e alsamixer") end), + awful.key({ modkey, }, "Escape", function () awful.util.spawn(commondefs.terminal .. " -e htop") end), + + -- audio control + awful.key({ modkey }, "Prior", function () utils.vol_control(1) end), + awful.key({ modkey }, "Next", function () utils.vol_control(-1) end), + awful.key({ modkey }, "grave", function () awful.util.spawn("mpc toggle") end), + awful.key({ modkey }, "b", function () awful.util.spawn("mpc next") end), + awful.key({ modkey }, "p", function () awful.util.spawn("mpc prev") end), + + -- focus/screen switching + awful.key({ modkey, }, "q", function() utils.screen_focus_physical(1) end), + awful.key({ modkey, }, "w", function() utils.screen_focus_physical(2) end), + awful.key({ modkey, }, "e", function() utils.screen_focus_physical(3) end), + + awful.key({ modkey, }, "Up", function() workspace:view_relative(-1) end ), + awful.key({ modkey, }, "Down", function() workspace:view_relative(1) end ), + + awful.key({ modkey, }, "Tab", + function () + awful.client.focus.byidx(1) + if client.focus then client.focus:raise() end + end), + awful.key({ modkey, "Shift" }, "Tab", + function () + awful.client.focus.byidx(-1) + if client.focus then client.focus:raise() end + end), + awful.key({ modkey, "Mod1" }, "Tab", + function () + awful.client.focus.history.previous() + if client.focus then + client.focus:raise() + end + 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, }, "u", awful.client.urgent.jumpto), + + + 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, }, ",", function () awful.tag.incnmaster( 1) end), + awful.key({ modkey, }, ".", 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, "Control" }, "n", awful.client.restore), + + -- Prompt + awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end), + + awful.key({ modkey }, "x", function () - if client.focus then - local tag = awful.tag.gettags(client.focus.screen)[i] - if tag then - awful.client.toggletag(tag) - end - end - end)) + 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, 10 do + globalkeys = awful.util.table.join(globalkeys, + -- View tag only. + awful.key({ modkey }, "#" .. i + 9, + function () + local screen = mouse.screen + + local state = workspace.screen_state[screen] + local desk = 1 + if state then + desk = state.desktop + end + + workspace:view(screen, desk, i) + end), + -- Move client to tag. + awful.key({ modkey, "Shift" }, "#" .. i + 9, + function () + if client.focus then + local c = client.focus + workspace:move_client(c, workspace.screen_state[c.screen].desktop, i) + end + end)) + end + + for i = 1, 12 do + globalkeys = awful.util.table.join(globalkeys, + -- View tag only. + awful.key({ modkey }, "#" .. i + 66, + function () + local screen = mouse.screen + if workspace.desktops[i] == nil then + workspace:add_desktop("Desktop " .. i, 10) + end + workspace:view(screen, i) + end), + -- Move client to tag. + awful.key({ modkey, "Shift" }, "#" .. i + 9, + function () + if client.focus then + local c = client.focus + workspace:move_client(c, workspace.screen_state[c.screen].desktop, i) + end + end)) + end + + local 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, }, "m", + function (c) + c.maximized_horizontal = not c.maximized_horizontal + c.maximized_vertical = not c.maximized_vertical + end) + ) + + return globalkeys, clientkeys end -local 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) -) - -return { - globalkeys = globalkeys, - clientkeys = clientkeys, -} +return M |