Skip to content

Ahmadalzin95/dwm-ubuntu-24-04

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ultimate dwm Setup for Ubuntu 24.04

Ubuntu C Bash

This repository contains a fully automated, dynamic desktop environment based on the dwm (dynamic window manager) and dmenu from Suckless. It is specifically designed and optimized for Ubuntu 24.04 LTS.

The setup features a "Material-Black-Blueberry" aesthetic, powered by Wallust for real-time color generation across the entire system.

--> This project is provided "as is" and without any warranty. It works perfectly on my three personal laptops, but I cannot guarantee it will work on yours.

Key Features

  • One-Command Install: No manual compilation needed.
  • Ubuntu Optimized: Replaces GNOME bloat effectively.
  • Dynamic Theming: Wallust integration for instant color switches.

Demo

dwm - ubuntu 24.04 Demo

Performance Benchmark

This setup is optimized for efficiency. Below is a real-world comparison between the standard Ubuntu 24.04 (GNOME) session and this dwm suite, tested on the exact same hardware with the same background workload.

Values represent the Base System Load (OS + Desktop Environment) without additional user applications opened.

Metric GNOME dwm Efficiency Gain
Idle RAM Usage ~1.3 GB ~650 MB -50% Memory Usage
Process Count ~280 ~190 ~90 Fewer Tasks
Boot to Desktop 50.5s 48.8s Similar

RAM Usage Analysis

The ~650 MB idle usage is higher than minimal distributions (like Arch or Void) due to the underlying Ubuntu base services, not the window manager itself.

  • Ubuntu Base: The remaining memory is reserved by mandatory background services that ensure system stability and hardware compatibility:
    • Snap Daemon: ~150 MB -> Background service for Snap packages.
    • Systemd Suite: ~150 MB -> Journaling, Logind, Resolved.
    • Network & Audio: ~100 MB -> NetworkManager, Pipewire.
    • Security & Policy: ~100 MB -> Polkit, UPower, AccountsService.

Replacing GNOME with dwm removes the desktop layer overhead, but this base system load remains to maintain the "out-of-the-box" Ubuntu functionality.

Installation

The setup is designed to be completed with a single command.

  1. Clone the repository:
git clone https://github.com/Ahmadalzin95/dwm-ubuntu-24-04.git ~/suckless
cd ~/suckless
  1. Run the setup script:
chmod +x setup.sh
./setup.sh
  1. Switch Session: Once the script finishes, log out of your current session. At the Ubuntu login screen, click the small gear icon in the bottom right corner, select dwm, and log back in.

System Scripts

All logic is contained within the scripts/ directory. Here is a brief overview of the custom tools:

Script Function
apply-theme Changes wallpaper and forces Wallust to regenerate system colors instantly.
app_manager Lists running X11 windows in dmenu and allows you to terminate them.
autostart Runs background services and initializes monitor layouts.
bt_status Provides Bluetooth connectivity status for the slstatus bar.
dwm-menu System hub for WiFi, Bluetooth, VPN, and Power management.
hw_status Detects hardware interfaces (WiFi, Battery, Temp) for bar monitoring.
layout_toggle Cycles keyboard layouts (US, DE, AR) with system notifications.
mycal Interactive calendar with Vim-like navigation (j/k) inside a terminal popup.
lock Activates a blurred lockscreen via Betterlockscreen.
display-setup Interactive GUI (arandr) to configure and automatically save dynamic monitor profiles.
screenshot Advanced screen capture tool for areas, windows, or full monitors.

Shortcuts & Control

This configuration uses Alt (Mod1) as the main key and Super (Windows Key) for system functions.

Navigation & Apps

  • Alt + p: Open App Launcher (Desktop applications only)
  • Alt + Shift + p: Open Command Launcher (dmenu_run)
  • Alt + Shift + Enter: Open Gnome-Terminal
  • Alt + s: Open System Menu (Power/WiFi/VPN)
  • Alt + x: Open App Manager (Kill running apps)
  • Alt + F1: Open Calendar
  • Super + Shift + p: Open nsxiv Image Gallery
  • Super + m: Open Interactive Monitor Setup (display-setup)

Window Management

  • Alt + j / k: Focus next/previous window

  • Alt + Shift + c: Close focused window

  • Alt + b: Toggle Status Bar visibility

  • Alt + Enter: Swap focused window to Master

  • Alt + Ctrl + Shift + q: Restart dwm

Hardware & Media

  • Super + Space: Toggle Keyboard Layout (US -> DE -> AR)

  • Super + l: Lock Screen

  • PrintScreen: Capture Full Monitor

  • Super + s: Capture Selected Area

  • Audio Keys: Volume Up/Down/Mute (with notifications)

  • Brightness Keys: Display Brightness Up/Down (with notifications)

Custom Theming

The system uses a dynamic theming engine. You can change your entire system look by running:

apply-theme </path/to/your/wallpaper.jpg>

Legal & Technical Note

This build is based on source code from suckless.org. It includes several patches for dwm and dmenu to enable gaps, centering, and desktop file support.

About

A keyboard-driven dwm suite for Ubuntu 24.04. Performance-optimized, fully automated, and dynamically themed with Wallust.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors