Initial commit
This commit is contained in:
33
src/client/client_keys.lua
Normal file
33
src/client/client_keys.lua
Normal file
@@ -0,0 +1,33 @@
|
||||
local gears = require('gears')
|
||||
local awful = require('awful')
|
||||
local naughty = require('naughty')
|
||||
local globals = require('src.globals')
|
||||
local constrain = require('libconstrain')
|
||||
|
||||
local modkey = globals.modkey
|
||||
local altkey = globals.altkey
|
||||
|
||||
local keys = gears.table.join(
|
||||
awful.key({ modkey }, 'f', function(c) c.fullscreen = not c.fullscreen c:raise() end, { description = 'toggle fullscreen', group = 'client' }),
|
||||
awful.key({ modkey, 'Shift' }, 'c', function(c) c:kill() end, { description = 'close', group = 'client' }),
|
||||
awful.key({ modkey, 'Shift', 'Control', altkey }, 'c', function(c) awesome.kill(c.pid, awesome.unix_signal['SIGKILL']) c:kill() end, { description = 'send sigkill', group = 'client' }),
|
||||
awful.key({ modkey, 'Control' }, 'space', awful.client.floating.toggle, { description = 'toggle floating', group = 'client' }),
|
||||
awful.key({ modkey }, 'o', function(c) c:move_to_screen() end, { description = 'move to next screen', group = 'client' }),
|
||||
awful.key({ modkey }, 't', function(c) c.ontop = not c.ontop end, { description = 'toggle keep on top', group = 'client' }),
|
||||
awful.key({ modkey }, 'n', function(c) c.minimized = true end, { description = 'minimize', group = 'client' }),
|
||||
awful.key({ modkey }, 'm', function(c) c.maximized = not c.maximized c:raise() end, { description = '(un)maximize', group = 'client' }),
|
||||
awful.key({ modkey, 'Control' }, 's', function(c) awful.titlebar.toggle(c) c:raise() end, { description = 'toggle titlebar', group = 'client' }),
|
||||
awful.key({ modkey, 'Control' }, 'F10', function(c) naughty.notify({ text = constrain.toggle(c), timeout = 3 }) end, { description = 'toggle mouse constrain', group = 'client' })
|
||||
)
|
||||
|
||||
local buttons = gears.table.join(
|
||||
awful.button({}, 1, function(c) c:emit_signal('request::activate', 'mouse_click', { raise = true }) end),
|
||||
awful.button({ modkey }, 1, function(c) c:emit_signal('request::activate', 'mouse_click', { raise = true }) awful.mouse.client.move(c) end),
|
||||
awful.button({ modkey }, 3, function(c) c:emit_signal('request::activate', 'mouse_click', { raise = true }) awful.mouse.client.resize(c) end)
|
||||
)
|
||||
|
||||
|
||||
return {
|
||||
keys = keys,
|
||||
buttons = buttons
|
||||
}
|
||||
51
src/client/init.lua
Normal file
51
src/client/init.lua
Normal file
@@ -0,0 +1,51 @@
|
||||
local awful = require('awful')
|
||||
local beautiful = require('beautiful')
|
||||
local gears = require('gears')
|
||||
local wibox = require('wibox')
|
||||
|
||||
require('src.client.rules')
|
||||
|
||||
-- New client
|
||||
client.connect_signal('manage', function(c)
|
||||
if awesome.startup and not c.size_hints.user_position and not c.size_hints.program_position then
|
||||
awful.placement.no_offscreen(c)
|
||||
end
|
||||
end)
|
||||
|
||||
client.connect_signal('request::titlebars', function(c)
|
||||
local buttons = gears.table.join(
|
||||
awful.button({}, 1, function() c:emit_signal('request::activate', 'titlebar', { raise = true }) awful.mouse.client.move(c) end),
|
||||
awful.button({}, 2, function() c:kill() end),
|
||||
awful.button({}, 3, function() c:emit_signal('request::activate', 'titlebar', { raise = true }) awful.mouse.client.resize(c) end)
|
||||
)
|
||||
|
||||
awful.titlebar(c, { size = 16 }):setup({
|
||||
{ -- Left
|
||||
awful.titlebar.widget.iconwidget(c),
|
||||
buttons = buttons,
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
},
|
||||
{ -- Middle
|
||||
{ -- Title
|
||||
align = 'center',
|
||||
widget = awful.titlebar.widget.titlewidget(c),
|
||||
},
|
||||
buttons = buttons,
|
||||
layout = wibox.layout.flex.horizontal,
|
||||
},
|
||||
{ -- Right
|
||||
awful.titlebar.widget.floatingbutton(c),
|
||||
awful.titlebar.widget.maximizedbutton(c),
|
||||
awful.titlebar.widget.stickybutton(c),
|
||||
awful.titlebar.widget.ontopbutton(c),
|
||||
awful.titlebar.widget.closebutton(c),
|
||||
layout = wibox.layout.fixed.horizontal(),
|
||||
},
|
||||
layout = wibox.layout.align.horizontal,
|
||||
})
|
||||
awful.titlebar.hide(c)
|
||||
end)
|
||||
|
||||
client.connect_signal('mouse::enter', function(c) c:emit_signal('request::activate', 'mouse_enter', { raise = false }) 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)
|
||||
51
src/client/rules.lua
Normal file
51
src/client/rules.lua
Normal file
@@ -0,0 +1,51 @@
|
||||
local awful = require('awful')
|
||||
local beautiful = require('beautiful')
|
||||
local rules = require('ruled.client')
|
||||
local cb = require('src.client.client_keys')
|
||||
|
||||
rules.append_rules({
|
||||
{
|
||||
rule = {},
|
||||
properties = {
|
||||
border_width = beautiful.border_width,
|
||||
border_color = beautiful.border_normal,
|
||||
callback = awful.client.setslave,
|
||||
focus = awful.client.focus.filter,
|
||||
raise = true,
|
||||
keys = cb.keys,
|
||||
buttons = cb.buttons,
|
||||
screen = awful.screen.preferred,
|
||||
placement = awful.placement.no_overlap + awful.placement.no_offscreen,
|
||||
size_hints_honor = false,
|
||||
no_border = false,
|
||||
titlebars_enabled = false
|
||||
}
|
||||
}, {
|
||||
rule_any = {
|
||||
class = { 'Tor Browser' },
|
||||
name = { 'Event Tester' },
|
||||
role = {
|
||||
'AlarmWindow',
|
||||
'ConfigManager',
|
||||
'pop-up'
|
||||
}
|
||||
},
|
||||
properties = { floating = true }
|
||||
}, {
|
||||
rule_any = { class = { 'firefox', 'factorio', 'Blender' } },
|
||||
properties = { opacity = 1, maximized = false, floating = false },
|
||||
}, {
|
||||
rule = { class = 'mpv' },
|
||||
properties = { fullscreen = true },
|
||||
}, {
|
||||
rule = { class = 'supcom-fa' },
|
||||
properties = {
|
||||
floating = true,
|
||||
border_width = 0,
|
||||
x = 0,
|
||||
y = 1080,
|
||||
no_border = true,
|
||||
}
|
||||
},
|
||||
{ rule_any = { type = { 'normal', 'dialog' } }, properties = { titlebars_enabled = true } },
|
||||
})
|
||||
Reference in New Issue
Block a user