Skip to content

harilvfs/dwm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Terminal

DWM is a lightweight and dynamic window manager based on X11. It is minimalistic, efficient, and designed to be customized by editing its source code. โœจ


โ€ƒ
โ€ƒManual Setup [ Including All ]โ€ƒ
โ€ƒ
โ€‚โ€‚ โ€ƒ
โ€ƒSetup Scriptโ€ƒ
โ€ƒ
โ€‚โ€‚ โ€ƒ
โ€ƒTTY Stuffs [ Optional ]โ€ƒ
โ€ƒ



Discord Telegram Channel

Terminal


Note

This guide features DWM patches from Chris Titus Tech, tweaked to suit my personal workflow while remaining simple for anyone to use.

I recommend to use manual way to setup and install dwm. But if you perfer a easy way then, Check Installation Script Guide here

Setup Manually

Arch Linux

sudo pacman -S --needed --noconfirm base-devel libx11 libxinerama libxft imlib2 libxcb git unzip flameshot lxappearance feh mate-polkit meson libev uthash libconfig meson ninja gnome-keyring thunar trash-cli

Debian/Ubuntu

sudo apt install -y build-essential libx11-dev libxinerama-dev libxft-dev libimlib2-dev libx11-xcb-dev libfontconfig1 libx11-6 libxft2 libxinerama1 libxcb-res0-dev git unzip flameshot lxappearance feh mate-polkit meson ninja-build gnome-keyring thunar trash-cli

Fedora

sudo dnf install -y libX11-devel libXinerama-devel libXft-devel imlib2-devel libxcb-devel unzip flameshot lxappearance feh mate-polkit meson ninja-build gnome-keyring thunar trash-cli

openSUSE

sudo zypper install libX11-devel libXinerama-devel libXft-devel imlib2-devel libxcb-devel unzip flameshot lxappearance feh mate-polkit meson ninja-build gnome-keyring thunar trash-cli

๐Ÿ”  Nerd Fonts

Why Nerd Fonts?

Nerd Fonts enhance font rendering and ensure proper alignment of icons in slstatus. For this setup, the MesloLGS Nerd Font is recommended.

Arch Linux

sudo pacman -S --needed --noconfirm ttf-meslo-nerd noto-fonts-emoji ttf-joypixels ttf-cascadia-mono-nerd ttf-cascadia-code-nerd ttf-jetbrains-mono-nerd ttf-jetbrains-mono

Other Distributions

  • Download from: nerdfonts.com
  • Place the font files in ~/.fonts or ~/.local/share/fonts.
  • Refresh font cache:
    fc-cache -vf

๐ŸŽจ Wallpapers

Directory Setup

Store wallpapers in ~/Pictures/wallpapers. Use the following command to clone a curated wallpaper collection:

git clone https://github.com/harilvfs/wallpapers ~/Pictures

โš™๏ธ Configuration Files

Preconfigured package settings are included in this repository under the config folder. These settings enhance the DWM experience and can be installed based on your workflow and distribution.

Steps to Install Configurations

  • Install the necessary packages for your distribution.
  • Copy the preconfigured files to your ~/.config directory.

Package Installation by Distribution

Arch Linux

sudo pacman -S --needed --noconfirm kitty alacritty kvantum dunst fastfetch fish helix neovim picom rofi starship bash zsh ghostty
  • BetterDiscord: Install as an AppImage or via AUR using paru or yay.
    yay -S betterdiscord-installer

Fedora

sudo dnf install kitty alacritty kvantum dunst fastfetch fish helix neovim picom rofi bash zsh
  • Starship: Install using the official script:
    curl -sS https://starship.rs/install.sh | sh
  • BetterDiscord: Download the AppImage from the official website.

Ghostty: Download Ghostty Terminal

dnf copr enable pgdev/ghostty
dnf install ghostty

Debian/Ubuntu

sudo apt install -y kitty alacritty qt5-style-kvantum fish neovim rofi dunst picom bash zsh
  • Fastfetch: Download the appropriate .deb package from Fastfetch's release page and install it:
    sudo dpkg -i fastfetch-linux-<architecture>.deb
  • Helix: Install from source using the Helix documentation.
  • BetterDiscord: Download the AppImage from the official website.
  • Starship: Install using the official script:
    curl -sS https://starship.rs/install.sh | sh

Ghostty: Download Ghostty Terminal

echo 'deb http://download.opensuse.org/repositories/home:/clayrisser:/bookworm/Debian_12/ /' | sudo tee /etc/apt/sources.list.d/home:clayrisser:bookworm.list
curl -fsSL https://download.opensuse.org/repositories/home:clayrisser:bookworm/Debian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_clayrisser_bookworm.gpg > /dev/null
sudo apt update
sudo apt install ghostty

openSUSE

sudo zypper install kitty alacritty kvantum-manager fish neovim rofi fastfetch dunst picom starship bash zsh ghostty

Using Preconfigured Files

Once the required packages are installed, copy the preconfigured files to your .config directory:

cp -r config/* ~/.config/

Important

If you donโ€™t have a preconfigured setup, itโ€™s recommended to use the provided configurations for better compatibility with the DWM patches.

Picom Configuration

Picom provides window transparency and animations.

System Tray Icons

Install system tray applets for network, Bluetooth, and sound management.

  • Packages:
    Install the necessary packages for your distribution:

Arch Linux

sudo pacman -S --needed --noconfirm network-manager-applet blueman pasystray

Fedora

sudo dnf install network-manager-applet blueman pasystray

Debian/Ubuntu

sudo apt install network-manager-applet blueman pasystray

openSUSE

sudo zypper install NetworkManager-applet blueman pasystray

Notes : For other distributions, refer to the respective package manager documentation.

SDDM Theme

The setup uses the Astronaut Theme for SDDM.

GRUB Theme [OPTIONAL]

Customize your bootloader appearance with GRUB themes.

Note: Ensure GRUB customization aligns with your workflow and is applied carefully to avoid bootloader issues.

Tmux

Incase if you want tmux or if you are already familiar with tmux then follow this step to setup:

Assuming you have tmux installed in your system.

Clone Tmux Plugin Manager [TPM]

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

Configuration

Create the configuration directory:

mkdir ~/.config/tmux

Download the tmux configuration file:

wget -O ~/.config/tmux/tmux.conf https://raw.githubusercontent.com/harilvfs/dwm/refs/heads/main/config/tmux/tmux.conf

Install Plugins

cd ~/.tmux/plugin/tpm/scripts/ &&
chmod +x install_plugins.sh &&
./install_plugins.sh

Install TPM

cd ~/.tmux/plugins/tpm &&
chmod +x tpm &&
./tpm

Update Plugins [ Optional ]

cd ~/.tmux/plugin/tpm/scripts/ &&
chmod +x update_plugin.sh &&
./update_plugin.sh

Clone and install DWM

git clone https://github.com/harilvfs/dwm ~/
cd ~/dwm
sudo make clean install

Install slstatus

cd ~/dwm/slstatus
sudo make clean install

Add this to your ~/.xinitrc & ~/.xsession

exec dwm

Important

After installation, remember to adjust some keybindings in config.h to fit your use case.


Note

Default keybinding for terminal is mod + x and for rofi is mod + r.


๐Ÿ›  Installation Script

For a one click setup process, run the script:

Note

Before running this script, make sure fzf and curl are installed.

For Arch-based distros:

sudo pacman -S fzf curl --noconfirm

For Fedora-based distros:

sudo dnf install fzf curl -y

After that, run this command in your terminal.

bash <(curl -L https://chalisehari.com.np/dwm)

Note

Btw Remember this script is only for Arch & Fedora Based* Distros. Manual installation is recommended for other distributions or customized setups.

About

DWM patches with my custom config ๐Ÿ› ๏ธ

Topics

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •