dotfiles/awesome/rc.lua

84 lines
2.1 KiB
Lua

------ includes
--- enable luarocks if installed
pcall(require, "luarocks.loader")
--- awesome stdlib
local gears = require("gears")
local awful = require("awful")
--- theme lib
local beautiful = require("beautiful")
--- other awesome libs
local menubar = require("menubar")
RC = {} -- global namespace, on top before require any modules
RC.vars = require("main.user_vars")
------------------------------------------
------ error handling
require("main.errors")
------ theme stuff
--- TODO: implement a not-shitty way of handling multiple themes
beautiful.init("~/.config/awesome/themes/spacestation/theme.lua")
beautiful.wallpaper = RC.vars.wallpaper
------- custom Local Library
--- main
local main = {
layouts = require("main.layouts"),
tags = require("main.tags" ),
menu = require("main.menu" ),
rules = require("main.rules" )
}
--- keybindings and mouse buttons
local bindings = {
global_keys = require("bindings.keys.global" ),
tags = require("bindings.keys.tags" ),
client_keys = require("bindings.keys.client" ),
global_buttons = require("bindings.mouse.global"),
client_buttons = require("bindings.mouse.client")
}
modkey = RC.vars.modkey
------ layouts
RC.layouts = main.layouts()
------ tags
RC.tags = main.tags()
------ menu
RC.mainmenu = awful.menu({ items = main.menu() }) -- in globalkeys
--- a variable needed in statusbar (helper)
RC.launcher = awful.widget.launcher(
{ image = beautiful.awesome_icon, menu = RC.mainmenu }
)
------ menubar config
menubar.utils.terminal = RC.vars.terminal
------ enable keybindings and mouse buttons
RC.global_keys = bindings.global_keys()
RC.global_keys = bindings.tags(RC.global_keys)
------ set root
root.buttons(bindings.global_buttons())
root.keys(RC.global_keys)
------ keyboard layout indicator
--- * since i use ibus, i don't know if this does anything?
mykeyboardlayout = awful.widget.keyboardlayout()
------ statusbar
require("deco.statusbar")
------ rules
--- rules to apply to new clients
awful.rules.rules = main.rules(
bindings.client_keys(),
bindings.client_buttons()
)
------ signals
require("main.signals")
------ startup
require("main.startup")