- Shell: ZSH
- WM: AwesomeWM
- Icons: Tela
- Cursor: xCursor Breeze Light
- Terminal: Alacritty
Dependency | Description |
---|---|
awesome-git |
Window manager (Git version required for non stable Titlebar Dependency |
feh |
Fast image viewer used as wallpaper setting utility |
picom-ibhagwan |
Window compositor, eliminates screen tearing and allows for cool fade effects** |
rofi |
Application launcher |
imagemagick |
OPTIONAL BUT NEEDED IF USING A DIFFERENT BACKGROUND, used in config to generate blurred wallpaper |
These will improve the user experience but aren't required:
Dependency | Description |
---|---|
i3lock-color-git |
Will be opened when the lock icon is selected in the exit window |
acpi |
Battery managing cli application, used by top bar widget to determine battery status |
bluez , bluez-utils |
Bluetooth cli application, used by top bar widget to determine if bluetooth is on |
blueman |
Bluetooth managing application, spawns when the bluetooth top panel icon is clicked |
scrot |
Screenshot tool, which is mapped to the Print Screen key in keys.lua. If you want to meet this dependency, ensure that the ~/Pictures folder exists, otherwise the program will save your screenshots to your home directory |
deepin-screenshot |
Screenshot tool that allows you to select a portion of the screen |
alsa-utils |
Provides kernel driven sound drivers, which the control of has been mapped to volume keys in keys.lua |
sddm |
Display Manager that displays the login |
Noto Sans
: System font. Used in this config as the WM font. Also used as font for firefoxMesloLGS
: Terminal font, customized to work flawlessly with the zsh theme used, mentioned in the application theming section of the readme.
- Ensure all dependencies are met
- Clone this repository and place its contents into your
.config
folder - Define your desired default and startup applications (apps.lua), as well as network interfaces(widgets/network/init.lua)
- Navigate to the
awesome/wallpaper
folder and place your desired wallpaper there as well as well as a blurred version. Use the convert command to Blur an image (Can be found in components/wallpaper.lua)
In order to avoid a poorly organized rc.lua
spanning thousands of lines, it has been split into multiple files / folders. I have taken extra care to create a logical directory structure that will hopefully allow those new to awesomewm to have an easy time navigating it.
rc.lua
: The main script that runs when awesome starts. Defines theme and default applications, and selects themkeys.lua
: Contains keybindsrules.lua
: Contains window rulestheme.lua
: Contains theme variables (colors, sizing, font, etc)icons
: stores icons used in WMcomponents
: Folder that contains all of the components of the WM, such as panels, volume and brightness sliders, notification pop-ups, etcconfiguration
: Contains theme-based config files for applications (ie rofi, picom, etc)widgets
: Stores widgets used in the functionality of the componentswallpaper
: Where wallpaper and its blurred varient is generated / storedtreetile
: Contains a Repo to allow for the Treetiling Layout
- Ensure the nvim folder from the repo has been copied into the
~/.config
directory - Install VimPlug with
curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
- Open neovim and run
:PlugInstall
- Exit and reopen neovim
- Install oh-my-zsh
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
- Change the zsh theme to powerlevel10k
- Download this font, and move it into your
/usr/share/fonts
directory - Install powerlevel10k with the command below:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k
- Open
~/.zshrc
with your fave text editor - Set
ZSH_THEME="powerlevel10k/powerlevel10k"
and save the file
- Install Plugins (Note that the ~/.zshrc edits are already done in this repo)
- Syntax highlighting (copy and paste the below command to install)
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
- Edit
~/.zshrc
, addzsh-syntax-highlighting
to the plugins section
- Edit
- Autosuggestions (copy and paste the below command to install)
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
- Edit
~/.zshrc
, addzsh-autosuggestions
to the plugins section
- Edit
- Fini! Reopen the terminal to view the fruit of your labor
Note that the modkey is set to be the windows / command key. If you would like to use a different modkey check out the keys.lua
file.
If you are new to awesomewm, note that tag refers to workspace, and client refers to window. Shown below are the main keybinds that most users will care about.
mod + enter
: Spawn terminalmod + d
: Spawn rofi (an application menu)mod + f
: Make client fullscreenmod + m
: Maximize clientmod + n
: Minimize clientmod + shift + n
: Unminimize clientmod + [1-9]
: Switch to tag [1-9]mod + shift + [1-9]
: Move client to tag [1-9]mod + space
: Change the tag layout, alternating between tiled, floating, and maximizedmod + [up / down / left / right / h / j / k / l]
: Change client by directionmod + Shift + [up / down / left / right / h / j / k / l]
: Move client by directionmod + Control + [up / down / left / right / h / j / k / l]
: Resize client by directionmod + Escape
: Show exit screen
mod + drag with left click
: Move clientmod + drag with right click
: Resize client
- Awesome API Documentation
- This configuration is based off of WillPower3309's awesome-dotfiles and borrows most of its code
- The Titlebars used are the nice Titlebars because they allow for color matching to a client
- This configurations includes and makes use of the treetile layout in order to spawn clients to the right of the currently active client at all times
- For the volume control widget, I modified the code from volume-widget which is a part of awesome-wm-widgets
- In order to close popup windows when clicked outside of them, I included click_to_hide