-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathrc.lua
97 lines (79 loc) · 3.16 KB
/
rc.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
-- [ author ] -*- time-stamp-pattern: "@Changed[\s]?:[\s]+%%$"; -*- ------------
-- @File : rc.lua
-- @Author : Marcel Arpogaus <marcel dot arpogaus at gmail dot com>
--
-- @Created: 2021-01-26 16:56:54 (Marcel Arpogaus)
-- @Changed: 2021-07-22 10:17:22 (Marcel Arpogaus)
-- [ description ] -------------------------------------------------------------
-- This file is part of my modular awesome WM configuration.
-- [ license ] -----------------------------------------------------------------
-- Copyright (C) 2021 Marcel Arpogaus
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
--------------------------------------------------------------------------------
-- [ required modules ] --------------------------------------------------------
-- Standard awesome library
local awful = require('awful')
-- rc modules
local assets = require('rc.assets')
local behavior = require('rc.behavior')
local decorations = require('rc.decorations')
local error_handling = require('rc.error_handling')
local key_bindings = require('rc.key_bindings')
local layouts = require('rc.layouts')
local menus = require('rc.menus')
local mouse_bindings = require('rc.mouse_bindings')
local screen = require('rc.screen')
local tags = require('rc.tags')
local theme = require('rc.theme')
-- heper functions
local utils = require('rc.utils')
-- Mac OSX like 'Expose' view of all clients.
local revelation = require('revelation')
-- configuration file
local config = utils.load_config()
-- ensure that there's always a client that has focus
require('awful.autofocus')
-- [ initialization ] ----------------------------------------------------------
-- error handling
error_handling.init()
-- tags
tags.init(config.tagnames)
-- layouts
layouts.init(config.layouts)
-- theme
theme.init(config.theme)
-- assets
assets.init(config.assets)
-- wibars and widgest
decorations.init(config.decorations)
-- menus
menus.init(config.menus, config.applications)
-- mouse bindings
mouse_bindings.init(config.bindings, menus.mainmenu)
-- key bindings
key_bindings.init(config.bindings, config.applications, menus.mainmenu)
-- behavior
behavior.init(config.behavior, mouse_bindings.client_buttons,
key_bindings.client_keys)
-- wibars and widgets
screen.init(config.screen, tags.tagnames, mouse_bindings.taglist_buttons,
mouse_bindings.tasklist_buttons, menus.mainmenu, menus.exitmenu)
for _, d in ipairs(decorations.get()) do
screen.register(d)
end
-- Initialize revelation
revelation.init()
-- [ autorun programs ] --------------------------------------------------------
awful.spawn.with_shell('~/.config/awesome/autorun.sh')