Initial commit

This commit is contained in:
2024-07-06 20:31:50 +02:00
commit b5f83958c9
299 changed files with 11284 additions and 0 deletions

View 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
View 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
View 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 } },
})