pcall(require, "luarocks.loader") local gears = require('gears') local awful = require('awful') local beautiful = require('beautiful') local revelation = require('revelation') awful.screen.set_auto_dpi_enabled(true) beautiful.init(require('theme')) revelation.init() require('awful.autofocus') require('preferences.apps') require('preferences.layouts') require('preferences.rules') require('modules.client') require('modules.titlebar') require('modules.panel') -- require('modules.sidepanel') -- require('modules.notifications') -- require('modules.dock') -- require('modules.appdrawer') require('bindings.keys') -- BELOW NEEDS CLEANUP -- -- Widget and layout library local wibox = require("wibox") -- Notification library local naughty = require("naughty") -- Declarative object management local ruled = require("ruled") local menubar = require("menubar") -- Enable hotkeys help widget for VIM and other apps -- when client with a matching name is opened: -- {{{ Error handling -- Check if awesome encountered an error during startup and fell back to -- another config (This code will only ever execute for the fallback config) naughty.connect_signal("request::display_error", function(message, startup) naughty.notification { urgency = "critical", title = "Oops, an error happened"..(startup and " during startup!" or "!"), message = message } end) -- }}} -- This is used later as the default terminal and editor to run. terminal = "alacritty" editor = os.getenv("EDITOR") or "vi" editor_cmd = terminal .. " -e " .. editor -- Default modkey. -- Usually, Mod4 is the key with a logo between Control and Alt. -- If you do not like this or do not have such a key, -- I suggest you to remap Mod4 to another key using xmodmap or other tools. -- However, you can use another modifier like Mod1, but it may interact with others. modkey = "Mod4" -- }}} -- {{{ Menu -- Create a launcher widget and a main menu myawesomemenu = { { "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end }, { "manual", terminal .. " -e man awesome" }, { "edit config", editor_cmd .. " " .. awesome.conffile }, { "restart", awesome.restart }, { "quit", function() awesome.quit() end }, } mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon }, { "open terminal", terminal }, { "firefox", "firefox" }, { "files", "nautilus" } } }) mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon, menu = mymainmenu }) -- Menubar configuration menubar.utils.terminal = terminal -- Set the terminal for applications that require it -- }}} -- {{{ Tag -- Table of layouts to cover with awful.layout.inc, order matters. -- }}} -- {{{ Wibar screen.connect_signal("request::wallpaper", function(s) -- Wallpaper if beautiful.wallpaper then local wallpaper = beautiful.wallpaper -- If wallpaper is a function, call it with the screen if type(wallpaper) == "function" then wallpaper = wallpaper(s) end gears.wallpaper.maximized(wallpaper, s, true) end end) -- {{{ Mouse bindings awful.mouse.append_global_mousebindings({ awful.button({ }, 3, function () mymainmenu:toggle() end), awful.button({ }, 4, awful.tag.viewnext), awful.button({ }, 5, awful.tag.viewprev), }) -- }}} -- {{{ Notifications ruled.notification.connect_signal('request::rules', function() -- All notifications will match this rule. ruled.notification.append_rule { rule = { }, properties = { screen = awful.screen.preferred, implicit_timeout = 5, } } end) naughty.connect_signal("request::display", function(n) naughty.layout.box { notification = n } end) -- }}} -- Enable sloppy focus, so that focus follows mouse. client.connect_signal("mouse::enter", function(c) c:activate { context = "mouse_enter", raise = false } end)