Skip to content

gabrielfrimodig/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 

Repository files navigation

.dotfiles

There's no place like ~!

Welcome to my AwesomeWM configurations

AwesomeWM

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!

📝 Information

  • OS: Fedora Workstation
  • File manager: Thunar
  • Terminal: Kitty
  • Shell: zsh
  • Launcher: Rofi
  • Screenshot: maim
  • Browser: Brave
  • Editor: Neovim / VSCode

🔔 Latest Updates

  • Rofi configuration
  • New Layout icons
  • Tags opacity
  • Popups for brightness, volume and microphone
  • Powermenu implementation
  • New icons for bar (Material Design Icon)

🔨 Future Plans

  • Add gruvbox and seashell themes option.
  • Improve the awesome menu (mouse right click).
  • Icon support for bluetooth headphones.
  • Installtion script (Issue #12).
  • Layout display popup when changed.

🔧 Installation

  1. Install git version of AwesomeWM

    Follow the build instructions here.

  2. Clone this repository

    git clone https://github.com/gabrielfrimodig/dotfiles.git
  3. Copy the configuration files to the correct directory

    cp -r dotfiles/.config/awesome ~/.config/
  4. Install dependencies

    See Dependencies.

  5. Restart AwesomeWM

    awesome -r
  6. Enjoy!

📷 Gallery

Powermenu
Powermenu
Rofi menu
Widgets
Wifi-tooltip (mouse hover)
Wifi-tooltip
Colorful tags
Tags
Wibar widgets
Widgets
Different popups
Popups
Popups Popups
Popups Popups

💡 Features

  • Theme: Following Catppuccin mocha.
  • Client in focus: The client in focus is highlighted while the other are somewhat opaque.
Widgets
Kitty terminal in focus.
  • 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 in autostart.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

📥 Dependencies

  • 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:
  • Autostart.sh Needs permission change to work properly
    chmod +x autostart.sh

🎹 Keybindings

Find the detailed keybinding list on the wiki page.

🌲 Structure

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
└── 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
    │   └── mic.lua
    └── powermenu
        ├── button.lua
        └── init.lua

💖 Credits

Inspiration taken from this reddit post.

AwesomeWM inspirational sources:

📜 License

This project is licensed under the MIT License - see the LICENSE.md file for details.