dotfiles/awesome/keys.lua
2020-09-06 13:54:31 -05:00

257 lines
5.2 KiB
Lua

local awful = require('awful')
local gears = require('gears')
require('awful.autofocus')
local modkey = "Mod4"
local altkey = "Mod1"
local dpi = require('beautiful').xresources.apply_dpi
local clientKeys =
awful.util.table.join(
-- toggle fullscreen
awful.key(
{modkey},
'f',
function(c)
-- Toggle fullscreen
c.fullscreen = not c.fullscreen
c:raise()
end,
{description = 'toggle fullscreen', group = 'client'}
),
-- close client
awful.key(
{modkey},
'c',
function(c)
c:kill()
end,
{description = 'close', group = 'client'}
),
-- Default client focus
awful.key(
{modkey},
'd',
function()
awful.client.focus.byidx(1)
end,
{description = 'focus next by index', group = 'client'}
),
awful.key(
{modkey},
'a',
function()
awful.client.focus.byidx(-1)
end,
{description = 'focus previous by index', group = 'client'}
),
awful.key(
{ modkey, "Shift" },
"d",
function ()
awful.client.swap.byidx(1)
end,
{description = "swap with next client by index", group = "client"}
),
awful.key(
{ modkey, "Shift" },
"a",
function ()
awful.client.swap.byidx(-1)
end,
{description = "swap with next client by index", group = "client"}
),
awful.key(
{modkey},
'u',
awful.client.urgent.jumpto,
{description = 'jump to urgent client', group = 'client'}
),
awful.key(
{modkey},
'Tab',
function()
awful.client.focus.history.previous()
if client.focus then
client.focus:raise()
end
end,
{description = 'go back', group = 'client'}
),
awful.key(
{modkey},
'n',
function(c)
c.minimized = true
end,
{description = "minimize client", group = 'client'}
),
-- move floating client to center
awful.key(
{ modkey, "Shift" },
"c",
function(c)
local focused = awful.screen.focused()
awful.placement.centered(c, {
honor_workarea = true
})
end,
{description = 'align a client to the center of the focused screen.', group = "client"}
),
-- toggle client floating mode
awful.key(
{modkey},
'c',
function(c)
c.fullscreen = false
c.maximized = false
c.floating = not c.floating
c:raise()
end,
{description = 'toggle floating', group = 'client'}
),
-- move client position
awful.key(
{modkey},
'Up',
function(c)
if c.floating then
c:relative_move(0, dpi(-10), 0, 0)
end
end,
{description = 'move floating client up by 10 px', group = 'client'}
),
awful.key(
{modkey},
'Down',
function(c)
if c.floating then
c:relative_move(0, dpi(10), 0, 0)
end
end,
{description = 'move floating client down by 10 px', group = 'client'}
),
awful.key(
{modkey},
'Left',
function(c)
if c.floating then
c:relative_move(dpi(-10), 0, 0, 0)
end
end,
{description = 'move floating client to the left by 10 px', group = 'client'}
),
awful.key(
{modkey},
'Right',
function(c)
if c.floating then
c:relative_move(dpi(10), 0, 0, 0)
end
end,
{description = 'move floating client to the right by 10 px', group = 'client'}
),
-- Increasing floating client size
awful.key(
{modkey, 'Shift'},
'Up',
function(c)
if c.floating then
c:relative_move(0, dpi(-10), 0, dpi(10))
end
end,
{description = 'increase floating client size vertically by 10 px up', group = 'client'}
),
awful.key(
{modkey, 'Shift'},
'Down',
function(c)
if c.floating then
c:relative_move(0, 0, 0, dpi(10))
end
end,
{description = 'increase floating client size vertically by 10 px down', group = 'client'}
),
awful.key(
{modkey, 'Shift'},
'Left',
function(c)
if c.floating then
c:relative_move(dpi(-10), 0, dpi(10), 0)
end
end,
{description = 'increase floating client size horizontally by 10 px left', group = 'client'}
),
awful.key(
{modkey, 'Shift'},
'Right',
function(c)
if c.floating then
c:relative_move(0, 0, dpi(10), 0)
end
end,
{description = 'increase floating client size horizontally by 10 px right', group = 'client'}
),
-- Decreasing floating client size
awful.key(
{modkey, 'Control'},
'Up',
function(c)
if c.floating and c.height > 10 then
c:relative_move(0, 0, 0, dpi(-10))
end
end,
{description = 'decrease floating client size vertically by 10 px up', group = 'client'}
),
awful.key(
{modkey, 'Control'},
'Down',
function(c)
if c.floating then
local c_height = c.height
c:relative_move(0, 0, 0, dpi(-10))
if c.height ~= c_height and c.height > 10 then
c:relative_move(0, dpi(10), 0, 0)
end
end
end,
{description = 'decrease floating client size vertically by 10 px down', group = 'client'}
),
awful.key(
{modkey, 'Control'},
'Left',
function(c)
if c.floating and c.width > 10 then
c:relative_move(0, 0, dpi(-10), 0)
end
end,
{description = 'decrease floating client size horizontally by 10 px left', group = 'client'}
),
awful.key(
{modkey, 'Control'},
'Right',
function(c)
if c.floating then
local c_width = c.width
c:relative_move(0, 0, dpi(-10), 0)
if c.width ~= c_width and c.width > 10 then
c:relative_move(dpi(10), 0 , 0, 0)
end
end
end,
{description = 'decrease floating client size horizontally by 10 px right', group = 'client'}
)
)
return clientKeys