dwm

Kris's build of dwm
git clone git clone https://git.krisyotam.com/krisyotam/dwm.git
Log | Files | Refs | README | LICENSE

README.md (6026B)


      1 # Kris's build of dwm
      2 
      3 My build of dwm, now using [dwm-flexipatch](https://github.com/bakkeby/dwm-flexipatch) for easier patch management via preprocessor directives.
      4 
      5 ---
      6 
      7 ## Bindings
      8 
      9 The MOD key is set to the Super (Windows) key.
     10 
     11 ### Essential
     12 
     13 | Keybinding | Action |
     14 |------------|--------|
     15 | `MOD+Return` | Spawn terminal (st) |
     16 | `MOD+d` | App launcher (dlaunch) |
     17 | `MOD+q` | Kill focused window |
     18 | `MOD+j/k` | Focus next/previous window |
     19 | `MOD+h/l` | Decrease/increase master area size |
     20 | `MOD+Tab` | Switch to last viewed tag |
     21 | `MOD+1-9` | View tag 1-9 |
     22 | `MOD+Shift+1-9` | Move window to tag 1-9 |
     23 | `MOD+0` | View all tags |
     24 | `MOD+Shift+0` | Make window sticky to all tags |
     25 
     26 ### Applications
     27 
     28 | Keybinding | Action |
     29 |------------|--------|
     30 | `MOD+b` | Browser selector (dbrowse) |
     31 | `MOD+w` | Content writer (dwrite) |
     32 | `MOD+r` | Library browser (dread) |
     33 | `MOD+n` | Notes browser (dnotes) |
     34 | `MOD+e` | Metadata editor (dedit) |
     35 | `MOD+c` | Content creator (dcreate) |
     36 | `MOD+p` | Password manager (passmenu) |
     37 | `MOD+y` | World clock (dtime) |
     38 | `MOD+m` | System monitor (btop) |
     39 | `MOD+Shift+c` | Clipboard manager (dclip) |
     40 | `MOD+Shift+n` | RSS reader (newsboat) |
     41 | `MOD+Shift+m` | Toggle mute |
     42 | `MOD+BackSpace` | System actions menu (sysact) |
     43 | `MOD+Shift+q` | System actions menu (sysact) |
     44 
     45 ### Scratchpads
     46 
     47 | Keybinding | Action |
     48 |------------|--------|
     49 | `MOD+Shift+Return` | Toggle scratchpad terminal |
     50 | `MOD+'` | Toggle scratchpad calculator (bc) |
     51 
     52 ### Window Management
     53 
     54 | Keybinding | Action |
     55 |------------|--------|
     56 | `MOD+Shift+j/k` | Move window down/up in stack |
     57 | `MOD+Shift+Space` | Toggle floating |
     58 | `MOD+Shift+f` | Toggle fullscreen |
     59 | `MOD+s` | Toggle sticky |
     60 | `MOD+o` | Increase number of masters |
     61 | `MOD+Shift+o` | Decrease number of masters |
     62 | `MOD+Ctrl+e` | Hide window |
     63 | `MOD+Ctrl+Shift+e` | Restore hidden window |
     64 
     65 ### Layouts
     66 
     67 | Keybinding | Action |
     68 |------------|--------|
     69 | `MOD+t` | Tile layout |
     70 | `MOD+f` | Floating layout |
     71 | `MOD+Shift+r` | Reading mode (3 vertical panes) |
     72 | `MOD+Shift+t` | Bstack layout |
     73 | `MOD+u` | Deck layout |
     74 | `MOD+Shift+u` | Monocle layout |
     75 | `MOD+i` | Centered master layout |
     76 | `MOD+Shift+i` | Centered floating master |
     77 | `MOD+Ctrl+g` | Gapless grid |
     78 | `MOD+Space` | Toggle last layout |
     79 | `MOD+Ctrl+,/.` | Cycle layouts prev/next |
     80 
     81 ### Gaps
     82 
     83 | Keybinding | Action |
     84 |------------|--------|
     85 | `MOD+a` | Toggle gaps |
     86 | `MOD+Shift+a` | Reset gaps to default |
     87 | `MOD+Ctrl+i/d` | Increase/decrease all gaps |
     88 | `MOD+Shift+i` | Increase inner gaps |
     89 | `MOD+Ctrl+Shift+i` | Decrease inner gaps |
     90 | `MOD+Ctrl+o` | Increase outer gaps |
     91 | `MOD+Ctrl+Shift+o` | Decrease outer gaps |
     92 
     93 ### Resize (cfact)
     94 
     95 | Keybinding | Action |
     96 |------------|--------|
     97 | `MOD+Shift+h` | Increase cfact |
     98 | `MOD+Shift+l` | Decrease cfact |
     99 | `MOD+Ctrl+Return` | Reset cfact |
    100 
    101 ### Multi-Monitor
    102 
    103 | Keybinding | Action |
    104 |------------|--------|
    105 | `MOD+,/.` | Focus prev/next monitor |
    106 | `MOD+Shift+,/.` | Move window to prev/next monitor |
    107 | `MOD+Left/Right` | Shift view to prev/next tag |
    108 
    109 ### Border
    110 
    111 | Keybinding | Action |
    112 |------------|--------|
    113 | `MOD+Shift+-` | Decrease border size |
    114 | `MOD+Shift+p` | Increase border size |
    115 
    116 ### Screenshots
    117 
    118 | Keybinding | Action |
    119 |------------|--------|
    120 | `Print` | Full screenshot |
    121 | `Shift+Print` | Selection screenshot (maimpick) |
    122 | `MOD+Print` | Record screen (dmenurecord) |
    123 | `MOD+Shift+Print` | Kill recording |
    124 
    125 ### Media Keys
    126 
    127 | Keybinding | Action |
    128 |------------|--------|
    129 | `XF86AudioRaiseVolume` | Volume up |
    130 | `XF86AudioLowerVolume` | Volume down |
    131 | `XF86AudioMute` | Toggle mute |
    132 | `XF86MonBrightnessUp` | Brightness up |
    133 | `XF86MonBrightnessDown` | Brightness down |
    134 
    135 ### System
    136 
    137 | Keybinding | Action |
    138 |------------|--------|
    139 | `MOD+Ctrl+r` | Restart dwm |
    140 | `MOD+Ctrl+w` | Toggle tab mode |
    141 
    142 ### Mouse
    143 
    144 | Click | Action |
    145 |-------|--------|
    146 | `MOD+Left Click` | Move or place window |
    147 | `MOD+Middle Click` | Toggle floating |
    148 | `MOD+Right Click` | Resize window |
    149 | `Ctrl+Left Click` | Drag mfact |
    150 | `Ctrl+Right Click` | Drag cfact |
    151 
    152 ---
    153 
    154 ## Patches and Features
    155 
    156 This build uses **dwm-flexipatch** for patch management. Toggle patches in `patches.h`:
    157 
    158 ```c
    159 #define VANITYGAPS_PATCH 1   // enabled
    160 #define SYSTRAY_PATCH 0      // disabled
    161 ```
    162 
    163 ### Enabled Patches
    164 
    165 | Patch | Description |
    166 |-------|-------------|
    167 | vanitygaps | Gaps across all layouts with configurable inner/outer gaps |
    168 | swallow | Terminals swallow windows spawned by child processes |
    169 | scratchpads | Dropdown terminal and calculator accessible via keybind |
    170 | sticky | Make windows visible on all tags |
    171 | xresources | Read colors and config from ~/.Xresources at startup |
    172 | stacker | Move windows up/down in the stack (focusstack/pushstack) |
    173 | shiftview | Cycle through tags with arrow keys |
    174 | shifttag | Move windows to adjacent tags |
    175 | dwmblocks | Clickable status bar with signal support |
    176 | cfacts | Resize individual windows in the stack |
    177 | cyclelayouts | Cycle through layouts with keybind |
    178 | restartsig | Restart dwm in place without losing windows |
    179 | pertag | Each tag remembers its own layout settings |
    180 | togglefullscreen | Toggle fullscreen on focused window |
    181 | cool_autostart | Run commands on dwm startup (starts dwmblocks) |
    182 
    183 ### Layouts
    184 
    185 - tile, floating, monocle, bstack
    186 - centeredmaster, centeredfloatingmaster
    187 - deck, spiral, dwindle
    188 - reading mode (3 equal vertical panes)
    189 
    190 ---
    191 
    192 ## Installation
    193 
    194 ```bash
    195 git clone https://github.com/krisyotam/dwm.git
    196 cd dwm
    197 sudo make install
    198 ```
    199 
    200 There is also a `PKGBUILD` usable on distributions with pacman. Run `makepkg -si` instead of `sudo make install`.
    201 
    202 ### Dependencies
    203 
    204 ```bash
    205 # Required for swallow patch
    206 pacman -S libxcb xcb-util
    207 ```
    208 
    209 ---
    210 
    211 ## My Other Suckless Repos
    212 
    213 - [st](https://github.com/krisyotam/st) - simple terminal (st-flexipatch with sixel)
    214 - [dmenu](https://github.com/krisyotam/dmenu) - application launcher (dmenu-flexipatch)
    215 - [dwmblocks](https://github.com/krisyotam/dwmblocks) - modular status bar