From cfb3c5f17845cb836ddcb031e38ade6afee507c4 Mon Sep 17 00:00:00 2001 From: Derek Taylor Date: Sat, 18 Jul 2020 15:10:07 -0500 Subject: [PATCH] Adding literate config for AwesomeWM --- .config/awesome/README.org | 66 +++++++++++++++++++++++++++++++------- .config/awesome/rc.lua | 1 - 2 files changed, 54 insertions(+), 13 deletions(-) diff --git a/.config/awesome/README.org b/.config/awesome/README.org index 2318bdb..b32b023 100644 --- a/.config/awesome/README.org +++ b/.config/awesome/README.org @@ -3,13 +3,15 @@ * Table of Contents :toc: - [[#about-this-config][About This Config]] +- [[#features-of-awesome][Features of Awesome]] - [[#libraries][Libraries]] - [[#error-handling][Error Handling]] - [[#auto-start-windowless-processes][Auto start windowless processes]] +- [[#setting-our-theme][Setting our theme]] - [[#variable-definitions][Variable definitions]] -- [[#tags][Tags]] +- [[#tags-and-layouts][Tags and Layouts]] - [[#menu][Menu]] -- [[#screen][Screen]] +- [[#screen-and-wallpaper][Screen and wallpaper]] - [[#mouse-bindings][Mouse bindings]] - [[#keybindings][Keybindings]] - [[#rules][Rules]] @@ -22,14 +24,21 @@ #+ATTR_HTML: :alt Awesome Scrot :title Awesome Scrot :align left [[https://gitlab.com/dwt1/dotfiles/-/raw/master/.screenshots/dotfiles09-thumb.png]] -Derek Taylor (DistroTube) -http://www.youtube.com/c/DistroTube -http://www.gitlab.com/dwt1/ +This is the xmonad configuration of Derek Taylor (DistroTube) +- My YouTube: http://www.youtube.com/c/DistroTube +- My GitLab: http://www.gitlab.com/dwt1/ -My awesome window manager configuration. Provided here for those that want to examine or use -my config in part or in whole. Take what works for you; leave the rest! +My awesome window manager configuration. Keep in mind, that my configs are purposely bloated with examples of what you can do with awesome. It is written more as a study guide rather than a config that you should download and use. Take what works for you; leave the rest! + +* Features of Awesome +- Simple enough for beginner's but flexible enough for the power user. +- Extremely customizable, maybe more so than any other window manager. +- Configured in Lua. +- A documented API to configure and define the behavior of your window manager. * Libraries +These are Lua modules that we must import so that we can use their functions later in the config. + #+BEGIN_SRC lua local awesome, client, mouse, screen, tag = awesome, client, mouse, screen, tag local ipairs, string, os, table, tostring, tonumber, type = ipairs, string, os, table, tostring, tonumber, type @@ -96,7 +105,8 @@ end run_once({ "unclutter -root" }) -- entries must be comma-separated #+END_SRC -* Variable definitions +* Setting our theme +We can have multiple themes available to us and set the one we want to use with chosen_theme. #+BEGIN_SRC lua local themes = { "powerarrow-blue", -- 1 @@ -106,10 +116,16 @@ local themes = { -- choose your theme here local chosen_theme = themes[1] - local theme_path = string.format("%s/.config/awesome/themes/%s/theme.lua", os.getenv("HOME"), chosen_theme) beautiful.init(theme_path) +#+END_SRC +* Variable definitions +It's nice to assign values to stuff that you will use more than once +in the config. Setting values for things like font, terminal and editor +means you only have to change the value here to make changes globally. + +#+BEGIN_SRC lua local modkey = "Mod4" local altkey = "Mod1" local modkey1 = "Control" @@ -126,7 +142,9 @@ local terminal = "alacritty" local virtualmachine = "virtualbox" #+END_SRC -* Tags +* Tags and Layouts +Tags are essentially our workspaces. There are a ton of layouts available in awesome. I have most of them commented out, but if you want to try them out, then simply uncomment them. + #+BEGIN_SRC lua -- awesome variables awful.util.terminal = terminal @@ -213,6 +231,8 @@ beautiful.init(string.format(gears.filesystem.get_configuration_dir() .. "/theme #+END_SRC * Menu +Awesome has a menu system if you want to use it. + #+BEGIN_SRC lua local myawesomemenu = { { "hotkeys", function() return false, hotkeys_popup.show_help end }, @@ -241,9 +261,9 @@ awful.util.mymainmenu = freedesktop.menu.build({ --menubar.utils.terminal = terminal -- Set the Menubar terminal for applications that require it #+END_SRC -* Screen +* Screen and wallpaper +You can set wallpaper with awesome. This is optional, of course. Otherwise, just set wallpaper with your preferred wallpaper utility (such as nitrogen or feh). #+BEGIN_SRC lua - -- Re-set wallpaper when a screen's geometry changes (e.g. different resolution) screen.connect_signal("property::geometry", function(s) -- Wallpaper @@ -261,6 +281,8 @@ awful.screen.connect_for_each_screen(function(s) beautiful.at_screen_connect(s) #+END_SRC * Mouse bindings +Defining what our mouse clicks do. + #+BEGIN_SRC lua root.buttons(my_table.join( awful.button({ }, 3, function () awful.util.mymainmenu:toggle() end), @@ -270,6 +292,26 @@ root.buttons(my_table.join( #+END_SRC * Keybindings +| Keybinding | Action | +|---------------------------+--------------------------------------------------------------------------| +| MODKEY + RETURN | opens terminal (alacritty is the terminal but can be easily changed) | +| MODKEY + SHIFT + RETURN | opens run launcher (dmenu is the run launcher but can be easily changed) | +| MODKEY + SHIFT + c | closes window with focus | +| MODKEY + SHIFT + r | restarts awesome | +| MODKEY + SHIFT + q | quits awesome | +| MODKEY + 1-9 | switch focus to workspace (1-9) | +| MODKEY + SHIFT + 1-9 | send focused window to workspace (1-9) | +| MODKEY + j | switches focus between windows in the stack, going down | +| MODKEY + k | switches focus between windows in the stack, going up | +| MODKEY + h | switches focus between windows in the stack, going left | +| MODKEY + l | switches focus between windows in the stack, going right | +| MODKEY + SHIFT + j | rotates the windows in the stack, going down | +| MODKEY + SHIFT + k | rotates the windows in the stack, going up | +| MODKEY + SHIFT + h | rotates the windows in the stack, going left | +| MODKEY + SHIFT + l | rotates the windows in the stack, going right | +| MODKEY + period | switch focus to next monitor | +| MODKEY + comma | switch focus to prev monitor | + #+BEGIN_SRC lua globalkeys = my_table.join( diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index 9fc4ca5..a5f6232 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -61,7 +61,6 @@ local themes = { -- choose your theme here local chosen_theme = themes[1] - local theme_path = string.format("%s/.config/awesome/themes/%s/theme.lua", os.getenv("HOME"), chosen_theme) beautiful.init(theme_path)