# How to Install DWM on Ubuntu or Pop OS

**Step 1**
```bash
sudo apt install build-essential libx11-dev libxinerama-dev sharutils libxft-dev
```
**Step 2**
```bash
cd .config/
mkdir suckless
cd sukckless
```
**Step 3**
```bash
sudo apt install git wget curl
sudo apt install neovim
git clone https://git.suckless.org/dwm
git clone https://git.suckless.org/st
git clone git clone https://git.suckless.org/dmenu
git clone https://git.suckless.org/dmenu
```
**Step 4**
```bash
cd ~/.config/suckless/dwm/
make
sudo make install
```
**Step 5**
```bash
cd ~/.config/suckless/s/
make
sudo make install
```
**Step 6**
```bash
cd ~/.config/suckless/dmenu/
make
sudo make install
```
**Step 7**
```bash
cd
cd /usr/share/xsessions/
sudo touch dwm.desktop
sudo vim dwm.desktop
```
**Step 8**
```bash
[Desktop Entry]
Encoding=UTF-8
Name=Dwm
Comment=the dynamic window manager
Exec=dwm
Icon=dwm
Type=XSession


```

## patch program

For git users, use -3 to fix the conflict easily:

```bash
cd program-directory
git apply path/to/patch.diff
```

For patches formatted with git format-patch:

```bash
cd program-directory
git am path/to/patch.diff
```

For tarballs:

```bash
cd program-directory
patch -p1 < path/to/patch.diff
```

```bash
sudo make install clean
```

| Basic |                                                              |
| ----- | ------------------------------------------------------------ |
|       | ============================================|
|       |                                                              |
|       | [Shift]+[Mod]+[Enter]   - launch terminal.                   |
|       |                                                              |
|       | [Mod]+[b]               - show/hide bar.                     |
|       | [Mod]+[p]               - dmenu for running programs like the x-www-browser. |
|       | [Mod]+[Enter]           - push acive window from stack to master, or pulls last used window from stack onto master. |
|       |                                                              |
|       | [Mod] + [j / k]         - focus on next/previous window in current tag. |
|       | [Mod] + [h / l]         - increases / decreases master size. |
|       |                                                              |
|       | Navigation                                                   |
|       | ==========                                                   |
|       |                                                              |
|       | [Mod]+[2]               - moves your focus to tag 2.         |
|       | [Shift]+[Mod]+[2]       - move active window to the 2 tag.   |
|       |                                                              |
|       | [Mod] + [i / d]         - increases / decreases number of windows on master |
|       | [Mod] + [, / .]         - move focus between screens (multi monitor setup) |
|       | [Shift]+[Mod]+[, / .]   - move active window to different screen. |
|       |                                                              |
|       | [Mod]+[0]               - view all windows on screen.        |
|       | [Shift]+[Mod]+[0]       - make focused window appear on all tags. |
|       | [Shift]+[Mod]+[c]       - kill active window.                |
|       | [Shift]+[Mod]+[q]       - quit dwm cleanly.                  |
|       |                                                              |
|       | Layout                                                       |
|       | ======                                                       |
|       |                                                              |
|       | [Mod]+[t]               - tiled mode. []=                    |
|       | [Mod]+[f]               - floating mode. ><>                 |
|       | [Mod]+[m]               - monocle mode. [M] (single window fullscreen) |
|       |                                                              |
|       | Floating                                                     |
|       | ========                                                     |
|       |                                                              |
|       | [Mod]+[R M B]           - to resize the floating window.     |
|       | [Mod]+[L M B]           - to move the floating window around. |
|       | [Mod]+[Space]           - toggles to the previous layout mode. |
|       | [Mod]+[Shift]+[Space]   - to make an individual window float. |
|       | [Mod]+[M M B]           - to make an individual window un-float. |




