A modern, feature-rich AwesomeWM configuration with custom UI components, animations, and comprehensive system integration.
- Custom UI Components: Modern control panels, popups, and notification system
- Comprehensive Theming: Yerba Buena theme with gradients, rounded corners, and consistent styling
- Advanced Window Management: Custom taglist/tasklist, window switcher, and client management
- System Integration: Audio, brightness, network, Bluetooth, and battery status widgets
- Animations: Smooth transitions and visual feedback throughout the interface
- Multiple Layouts: Support for various window layouts with on-screen display
- Modular Architecture: Well-organized codebase with clear separation of concerns
-
Prerequisites:
- AwesomeWM 4.3+
- Lua 5.3+
- Required fonts: Agave Nerd Font Propo Bold, awesomewm-font
-
Clone Configuration:
git clone <repository-url> ~/.config/awesome cd ~/.config/awesome
-
Install Dependencies:
- Ensure all system services (audio, brightness control, etc.) are available
- Install required fonts and icon themes
-
Test Configuration:
# Test in nested session ./bin/awmtt-ng.sh start # Or restart AwesomeWM awesome -c ~/.config/awesome/rc.lua
├── core/ # Core AwesomeWM functionality
│ ├── autostart/ # Auto-start applications
│ ├── client/ # Client (window) management
│ ├── error/ # Error handling and notifications
│ ├── keybind/ # Keybinding definitions
│ ├── notification/ # Notification system
│ ├── tag/ # Tag (workspace) management
│ └── theme/ # Theme initialization
├── lib/ # Utility libraries
│ ├── dbus_proxy/ # D-Bus communication
│ ├── inspect.lua # Debug inspection utility
│ └── json.lua # JSON handling
├── modules/ # Reusable UI modules
│ ├── animations/ # Animation framework
│ ├── dropdown/ # Dropdown terminal
│ ├── hover_button/ # Interactive button widget
│ ├── menu/ # Context menu system
│ ├── shapes/ # Custom shape definitions
│ └── text_input/ # Text input widgets
├── service/ # System service integrations
│ ├── audio.lua # Audio/volume control
│ ├── battery.lua # Battery status
│ ├── bluetooth.lua # Bluetooth management
│ ├── brightness.lua # Screen brightness
│ ├── network.lua # Network connectivity
│ └── screenshot.lua # Screenshot functionality
├── themes/ # Visual themes
│ └── yerba_buena/ # Main theme with icons and styling
├── ui/ # User interface components
│ ├── bar/ # Top panel/bar
│ ├── lockscreen/ # Screen lock interface
│ ├── notification/ # Notification display
│ ├── popups/ # Various popup interfaces
│ │ ├── control_panel/ # System control panel
│ │ ├── launcher/ # Application launcher
│ │ ├── on_screen_display/ # Volume/brightness OSD
│ │ ├── powermenu/ # Power management
│ │ └── window_switcher/ # Alt-tab style window switcher
│ ├── tabbar/ # Window tab bar
│ ├── titlebar/ # Window title bars
│ └── wallpaper/ # Dynamic wallpaper management
└── wibox/ # Custom wibox widgets
├── layout/ # Custom layouts
└── widget/ # Enhanced widgets
- Client Management: Advanced window placement, rules, and focus handling
- Keybindings: Comprehensive keyboard shortcuts organized by category
- Tag Management: Custom workspace handling with dynamic layouts
- Error Handling: Robust error reporting with notification integration
- Control Panel: System settings, audio/brightness controls, notification center
- Application Launcher: Modern app launcher with search functionality
- Window Switcher: Alt-tab style window navigation with previews
- On-Screen Display: Volume and brightness indicators
- Power Menu: System power management interface
- Audio Service: PulseAudio integration for volume and device management
- Brightness Service: Screen brightness control with smooth transitions
- Network Service: WiFi and connection status monitoring
- Bluetooth Service: Device pairing and connection management
- Battery Service: Power status and charging indicators
- Yerba Buena Theme: Modern design with gradients and rounded corners
- Icon System: Comprehensive icon set with fallback handling
- Typography: Custom font stack with multiple weight variants
- Color Palette: Consistent color scheme across all components
See documentation/keybindings.md for the complete keybinding reference.
Modify themes/yerba_buena/theme.lua
to customize:
- Colors and gradients
- Fonts and typography
- Border radius and spacing
- Icon themes
Create new services in the service/
directory following the existing pattern:
local service = {}
function service:get_default()
if not self._instance then
self._instance = self:new()
end
return self._instance
end
return service
# Start test environment (Xephyr nested session)
./bin/awmtt-ng.sh start
# Stop test environment
./bin/awmtt-ng.sh stop
# Format code
stylua .
# Check configuration
awesome -c rc.lua --check
- Indentation: 4 spaces
- Line width: 80 characters max
- Variables:
snake_case
, always uselocal
- Functions:
snake_case
with clear parameter documentation - Comments: Document purpose and parameters for complex functions
- Follow the modular architecture
- Use existing services and utilities where possible
- Maintain consistent theming and styling
- Add appropriate error handling
- Test in nested session before deployment
- Follow the existing code style and architecture
- Test changes in the nested environment
- Update documentation for new features
- Ensure all functionality remains working
This configuration is provided as-is for educational and personal use.