1local awful = require('awful')
2
3local mod = require('binds.mod')
4local modkey = mod.modkey
5
6--- Client keybindings.
7client.connect_signal('request::default_keybindings', function()
8 awful.keyboard.append_client_keybindings({
9 -- Client state management.
10 awful.key({ modkey, }, 'f',
11 function(c)
12 c.fullscreen = not c.fullscreen
13 c:raise()
14 end, { description = 'toggle fullscreen', group = 'client' }),
15 awful.key({ modkey, mod.shift }, 'c', function(c) c:kill() end,
16 { description = 'close', group = 'client' }),
17 awful.key({ modkey, mod.ctrl }, 'space', awful.client.floating.toggle,
18 { description = 'toggle floating', group = 'client' }),
19 awful.key({ modkey, }, 'n',
20 function(c)
21 -- The client currently has the input focus, so it cannot be
22 -- minimized, since minimized clients can't have the focus.
23 c.minimized = true
24 end, { description = 'minimize', group = 'client' }),
25 awful.key({ modkey, }, 'm',
26 function(c)
27 c.maximized = not c.maximized
28 c:raise()
29 end, { description = '(un)maximize', group = 'client' }),
30 awful.key({ modkey, mod.ctrl }, 'm',
31 function(c)
32 c.maximized_vertical = not c.maximized_vertical
33 c:raise()
34 end, { description = '(un)maximize vertically', group = 'client' }),
35 awful.key({ modkey, mod.shift }, 'm',
36 function(c)
37 c.maximized_horizontal = not c.maximized_horizontal
38 c:raise()
39 end, { description = '(un)maximize horizontally', group = 'client' }),
40
41 -- Client position in tiling management.
42 awful.key({ modkey, mod.ctrl }, 'Return', function(c) c:swap(awful.client.getmaster()) end,
43 { description = 'move to master', group = 'client' }),
44 awful.key({ modkey, }, 'o', function(c) c:move_to_screen() end,
45 { description = 'move to screen', group = 'client' }),
46 awful.key({ modkey, }, 't', function(c) c.ontop = not c.ontop end,
47 { description = 'toggle keep on top', group = 'client' })
48 })
49end)