You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
144 lines
4.1 KiB
144 lines
4.1 KiB
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)
|
|
|