A collection of my important dotfiles
Feel free to Ctrl-C Ctrl-V anything you like 😁
- alacritty
- Alacritty terminal config (mostly colors)
- awesome
- AwesomeWM config with a lot of custom things (see here for more info)
- mpv
- Mpv config with the uosc theme
- rofi
- Rofi config
- Thunar
- Thunar config with my custom actions and keybinds
- VSCodium
- VSCodium user settings and product.json configs
- .zshrc
- Zsh config with my custom alieases and functions
Important
This config is still a work in progress. Admittedly, it's a bit of a mess but I'm working on it. I will try to keep this README updated as I make changes to the config.
Most of the config is either made by me or kept unchanged from the default awesome config but there are many resources that helped me. From some of them I got ideas and inspiration, from others I found ways to do things I didn't know how to do.
Here are some of the most notable ones:
- AwesomeWM Documentation - The official documentation
- ArcoLinux - Specifically ArcoLinuxB awesome edition
- awesome-wm-widgets - An amazing library with all sorts of widgets
- AwesomeWM subreddit - A great place to ask questions and find inspiration
- UnixPorn subreddit - Wanna feel bad about your setup? Go here
Note
My config for awesome is tailored towards my setup and my needs. It will probably not work out of the box for you and you will have to change some things. I will try to explain everything as best as I can but if you have any questions or need any help, hit me up on Discord: @mitsos or open an issue on this repo.
OS: Arch Linux
CPU: AMD Ryzen 7 5800X
GPU: AMD Radeon RX 5700 XT
Some commands I've made to help me make some things easier
| Command | Arguments | Description |
|---|---|---|
printn |
text | Uses awesome's naughty library to send a notification (used mostly for debugging) |
runCommand |
command | Opens a process from the given command and returns it's output |
runInTag |
program, tag | Runs a program in the given tag (desktop) |
Bar widgets I've made to display useful info or provide some functionality
| Widget | Description |
|---|---|
battery |
Battery percentage, charging status and charge/discharge time |
cpuInfo |
CPU usage and temperature |
languageChange |
Displays volume level and mute status |
memoryInfo |
RAM usage |
nowPlaying |
Currently playing song |
gpuInfo |
GPU usage and temperature |
volume |
Volume level and mute status (LMB: toggle mute, MMB: pavucontrol, SCROLL: change volume) |
Mandatory dependencies
- awesome - The window manager itself
- xorg-server - Display server
- picom-jonaburg-fix - Compositor (fork of picom with animation support)
- rofi - Application launcher
- Clear Sans Font - Main font
- Hack Nerd Font - Icons/terminal/vscode font
- Font Awesome - Icons font
All my startups/keybinds are made with the following dependencies in mind. If you don't have them installed, you will have to change the keybinds to something else.
- brave - Web browser
- VSCodium - Code editor (VSCode without the telemetry)
- pavucontrol - PulseAudio volume control
- copyq - Clipboard manager
- flameshot - Screenshot tool
- nm-applet - NetworkManager applet
- gnome policy kit - Policy kit authentication agent
- xwinwrap - Binds a program to the desktop background (used for video wallpaper)
I strongly recommend you go through the config and change things to your liking.
Below are examples for changing startup applications, keybinds and the theme.
Startup Applications
My startup apps are configured in the file awesome/config/startup.lua.
Examples:
-- Run the brave browser
awful.spawn.with_shell("brave")
-- Run VSCodium in the first screen's fifth tag (needs my custom runInTag command)
runInTag("vscodium", screen[1].tags[5])
-- Run Thunar if it's not already running
if runCommand("pgrep -f " .. "thunar") == "" then
awful.spawn.with_shell("thunar")
endKeybinds
My custom keybinds are configured in the file awesome/config/keybindings.lua in the variable customKeys.
Keybind Example:
awful.key(
-- Modifiers
{ modkey, "Shift", "Control" },
-- Key
"m",
-- Action
function()
awful.spawn.with_shell("myapp")
end,
-- Info to be shown in the keybind cheatsheet (modkey + S)
{ description = "do something", group = "applications" }
)Theme
I have the default awesome themes in awesome/themes. The theme blackburn is the one I use and the only one that I have modified.
Modify any theme to your liking and select it in awesome/rc.lua in the variable chosen_theme.
