There's no place like ~
!
Information • Latest Updates • Future Plans • Installation • Gallery • Features • Dependencies • Keybindings • Structure • Credits • License
AwesomeWM is a highly configurable, next generation tiling window manager for X. It is renowned for its extensibility and its dynamic window management capabilities, which are powered by the Lua programming language.
Welcome to my AwesomeWM configuration repository! This setup is crafted to create a productive and visually appealing desktop environment using the AwesomeWM. It's designed to be elegant, allowing for quick navigation and organization of the workspace with a sleek, minimalist aesthetic.
Dive into the configuration files to discover a realm of efficiency and customization. Whether you're new to AwesomeWM or a seasoned enthusiast, I hope this repository serves as both a resource and inspiration for your own configurations. Changes will be made first and foremost through the dev branch before merged.
Enjoy making your desktop truly your own!
- OS: Fedora Workstation
- File manager: Thunar
- Terminal: Kitty
- Shell: zsh
- Launcher: Rofi
- Screenshot: maim
- Browser: Brave
- Editor: Neovim / VSCode
- Popup for layout change
- Volume och brightness: replace slider with progressbar
- Powermenu and other popups active on focused screen
- New location for layoutbox
- Rofi configuration
- New Layout icons
- Tags opacity
- Add
gruvbox
andseashell
themes option. - Improve the awesome menu (mouse right click).
- Icon support for bluetooth headphones.
- Installtion script (Issue #12).
-
Install git version of AwesomeWM
Follow the build instructions here.
-
Clone this repository
git clone https://github.com/gabrielfrimodig/dotfiles.git
-
Copy the configuration files to the correct directory
cp -r dotfiles/.config/awesome ~/.config/
-
Install dependencies
See Dependencies.
-
Restart AwesomeWM
awesome -r
-
Enjoy!
- Theme: Following Catppuccin mocha.
- Client in focus: The client in focus is highlighted while the other are somewhat opaque.
-
Urgent: Urgent tags will be red.
-
Battery: Battery icon will dynamically change based on status.
-
Popups: Popup will be shown when either brightness, volume or microphone status is changed.
-
Wallpaper: Set wallpaper with
feh
inautostart.sh
.autostart.sh
feh --bg-fill ~/Pictures/wallpapers/1.jpg
-
Mapping: Spotify maps to tag 8, screen 1, Discord maps to tag 9, screen 1.
rules/init.lua
ruled.client.append_rule { rule = { class = "discord" }, properties = { screen = 1, tag = awful.screen.focused().tags[9] } } ruled.client.append_rule { rule = { class = "Spotify" }, properties = { screen = 1, tag = awful.screen.focused().tags[8] } }
-
Screenshot: Will be saved at
~/Pictures/Screenshots/
with timestamp provided by the OS.bindings/keyboard.lua
awful.key({}, "Print", function() local home = os.getenv("HOME") local filepath = home .. "/Pictures/Screenshots/" .. os.date("%Y-%m-%d_%H:%M:%S") .. ".png" awful.spawn.with_shell('maim -u ' .. filepath) naughty.notify({ icon = filepath, title = "Screenshot taken", text = filepath }) end, { description = "screen screenshot", group = "launcher" }), awful.key({ "Shift" }, "Print", function() local home = os.getenv("HOME") local filepath = home .. "/Pictures/Screenshots/" .. os.date("%Y-%m-%d_%H:%M:%S") .. ".png" awful.spawn.with_shell('maim -s --format png -u ' .. filepath .. '| xclip -selection clipboard -t image/png -i') naughty.notify({ icon = filepath, title = "Select Area for Screenshot", text = "Screenshot will be saved" }) end, { description = "screenshot area", group = "launcher" }),
-
Neovim configuration is here.
-
Multi-screen support
- AwesomeWM: Git version is required
- Picom: yshui/picom
- feh: For setting wallpaper
- rofi: Application launcher
- pactl: Managing sound and mic
- acpi: Battery Information
- xbacklight: Screen brightness
- maim: Screenshot tool
- xclip: Copying screenshots to clipboard
- The folder
~/Pictures/Screenshots/
must exists for screenshots to be saved.
- playerctl: Media player control
- i3lock: Lockscreen
- Fonts:
- Icons: Material Design Icons
- AwesomeWM:
JetBrains Mono
andUbuntu Nerd Font
- Autostart.sh Needs permission change to work properly
chmod +x autostart.sh
- Kitty Default terminal
- Vim Default text-editor
Find the detailed keybinding list on the wiki page.
tree ~/.config/awesome
.
├── autostart.sh
├── bindings
│ ├── init.lua
│ ├── keyboard.lua
│ └── mouse.lua
├── config
│ ├── gaps.lua
│ ├── init.lua
│ ├── layout.lua
│ ├── menu.lua
│ └── signals.lua
├── rc.lua
├── rules
│ └── init.lua
├── signals
│ ├── brightness.lua
│ ├── corners.lua
│ ├── error.lua
│ ├── init.lua
├── theme
│ ├── catppuccino
│ │ ├── layouts
│ │ │ ├── cornernew.png
│ │ │ ├── cornernww.png
│ │ │ ├── cornersew.png
│ │ │ ├── cornersww.png
│ │ │ ├── dwindlew.png
│ │ │ ├── fairhw.png
│ │ │ ├── fairvw.png
│ │ │ ├── floatingw.png
│ │ │ ├── fullscreenw.png
│ │ │ ├── magnifierw.png
│ │ │ ├── maxw.png
│ │ │ ├── spiralw.png
│ │ │ ├── tilebottomw.png
│ │ │ ├── tileleftw.png
│ │ │ ├── tiletopw.png
│ │ │ └── tilew.png
│ │ └── theme.lua
│ ├── gruvbox
│ └── seashell
└── ui
├── bar
│ ├── init.lua
│ ├── layoutbox.lua
│ ├── taglist.lua
│ ├── tasklist.lua
│ └── widgets
│ ├── battery.lua
│ ├── brightness.lua
│ ├── clock.lua
│ ├── cpu.lua
│ ├── date.lua
│ ├── memory.lua
│ ├── volume.lua
│ └── wifi.lua
├── init.lua
├── notifications
│ └── init.lua
├── popups
│ ├── layouts.lua
│ └── mic.lua
└── powermenu
├── button.lua
└── init.lua
Inspiration taken from this reddit post.
AwesomeWM inspirational sources:
This project is licensed under the MIT License - see the LICENSE.md file for details.