README.md (7406B) - raw


      1 # Oscar's dwm fork
      2 
      3 This is my personal fork of [dwm][dwm] (dynamic window manager), a dynamic
      4 window manager for X.
      5 
      6 ## Requirements
      7 
      8 In order to build dwm you need the Xlib header files. This build uses Font
      9 Awesome icons for the status bar, make sure you have installed the correct
     10 files.
     11 
     12 ## Installation
     13 
     14 Edit `config.mk` to match your local setup (dwm is installed into the
     15 `/usr/local` namespace by default).
     16 
     17 Afterwards enter the following command to build and install dwm (if necessary as
     18 root):
     19 
     20 ```
     21 make clean install
     22 ```
     23 
     24 ## Running dwm
     25 
     26 Add the following line to your `.xinitrc` to start dwm using startx:
     27 
     28 ```
     29 exec dwm
     30 ```
     31 
     32 In order to connect dwm to a specific display, make sure that the `DISPLAY`
     33 environment variable is set correctly, e.g.:
     34 
     35 ```
     36 DISPLAY=foo.bar:1 exec dwm
     37 ```
     38 
     39 (This will start dwm on display `:1` of the host `foo.bar`.)
     40 
     41 In order to display status info in the bar, you can do something like this in
     42 your `.xinitrc`:
     43 
     44 ```
     45 while xsetroot -name "`date` `uptime | sed 's/.*,//'`"
     46 do
     47 	sleep 1
     48 done &
     49 exec dwm
     50 ```
     51 
     52 ## Configuration
     53 
     54 The configuration of dwm is done by editing the file `config.h` and
     55 (re)compiling the source code.
     56 
     57 ## Keyboard shortcuts
     58 
     59 You can check the man page for dwm to learn all about it, the only thing that is
     60 not up to date are my personal shortcuts. Here they are (although some might not
     61 be up to date):
     62 
     63 DWM:
     64 
     65 | Key         | Description                                     |
     66 | :---------- | :---------------------------------------------- |
     67 | `j`         | Focus next window.                              |
     68 | `k`         | Focus previous window.                          |
     69 | `h`         | Decrease master area size.                      |
     70 | `l`         | Increase master area size.                      |
     71 | `,`         | Focus next screen.                              |
     72 | `.`         | Focus previous screen.                          |
     73 | `b`         | Toggle status bar on/off.                       |
     74 | `q`         | Close current window.                           |
     75 | `Space`     | Make current window the main window.            |
     76 | `Shift`+`+` or `Shift`+`=` | Increase number of main windows. |
     77 | `Shift`+`-` | Decrease number of main windows.                |
     78 | `g`         | Increase gaps.                                  |
     79 | `Shift`+`g` | Decrease gaps.                                  |
     80 | `Shift`+`b` | Toggle gaps on/off.                             |
     81 | `Ctrl`+`q`  | Quit dwm.                                       |
     82 | `Tab`       | Toggles to previously selected tags.            |
     83 
     84 Layouts:
     85 
     86 | Key         | Description                     |
     87 | :---------- | :------------------------------ |
     88 | `t`         | Tiled layout (default).         |
     89 | `Shift`+`t` | Floating layout.                |
     90 | `Ctrl`+`t`  | Stack on bottom layout.         |
     91 | `i`         | Monocle layout.                 |
     92 | `Shift`+`i` | Deck layout.                    |
     93 
     94 Utilities:
     95 
     96 | Key              | Description                                        |
     97 | :--------------- | :------------------------------------------------- |
     98 | `p`              | Spawn dmenu to launch other programs.              |
     99 | `o`              | Spawn logout menu.                                 |
    100 | `m`              | Spawn mount/unmount drive menu.                    |
    101 | `s`              | Screenshot (select area).                          |
    102 | `Shift`+`s`      | Screenshot (whole screen).                         |
    103 | `c`              | Input user and password from `pass`.               |
    104 | `Shift`+`c`      | Input password from `pass`.                        |
    105 | `n`              | Create temp file and copy to primary clipboard.    |
    106 | `Shift`+`n`      | Create temp dir and copy to primary clipboard.     |
    107 | `+` or `=`       | Increase volume (+`Shift` for smaller increments). |
    108 | `-`              | Decrease volume (+`Shift` for smaller increments). |
    109 | `Shift`+`Return` | Change keyboard layout.                            |
    110 
    111 Applications:
    112 
    113 | Key      | Description                         |
    114 | :------- | :---------------------------------- |
    115 | `Return` | Start terminal.                     |
    116 | `f`      | Start Firefox.                      |
    117 | `e`      | Start email client (Thunderbird).   |
    118 | `x`      | Start Signal app.                   |
    119 
    120 Tags (`n` between 1..9):
    121 
    122 | Key         | Description                                             |
    123 | :---------- | :------------------------------------------------------ |
    124 | `n`         | View all windows with `n`th tag.                        |
    125 | `Shift`+`n` | Apply `n`th tag to focused window.                      |
    126 | `Ctrl`+`n`  | Add/remove all windows with `n`th tag to/from the view. |
    127 | `Shift`+`Ctrl`+`n` | Add/remove `n`th tag to/from focused window.     |
    128 | `0`         | View all windows with any tag.                          |
    129 | `Shift`+`0` | Apply all tags to focused window.                       |
    130 
    131 The keys `XF86XK_AudioRaiseVolume`, `XF86XK_AudioLowerVolume`,
    132 `XF86XK_AudioMute`, `XF86XK_MonBrightnessUp` and `XF86XK_MonBrightnessDown` work
    133 as expected (and pressing `Shift` will give smaller increments). The key
    134 `XK_Print` will take a screenshot of the selected area and `Shift`+`XK_Print`
    135 will take a screenshot of the whole screen.
    136 
    137 A summary of the shortcuts that use letters. First row is `Mod`+`letter`,
    138 second row is `Mod`+`Shift`+`letter` and third row is `Mod`+`Control`+`letter`.
    139 
    140 ```
    141 ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
    142 │Q      │W      │E      │R      │T      │Y      │U      │I      │O      │P      │
    143 │close  │       │email  │       │L-tile │       │       │L-mono │session│dmenu  │
    144 │       │       │       │       │L-float│       │       │L-deck │       │       │
    145 │quit   │       │       │       │L-btile│       │       │       │       │       │
    146 └─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┘
    147   │A      │S      │D      │F      │G      │H      │J      │K      │L      │
    148   │       │scrot  │       │Firefox│inc gap│Big Mn │Next w.│Prev w.│Sml Mn │
    149   │       │full sc│       │       │dec gap│       │       │       │       │
    150   └─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┐
    151     │Z      │X      │C      │V      │B      │N      │M      │,      │.      │
    152     │       │Signal │Pass M │       │tgl bar│tmp fil│mount d│Prev sc│Next sc│
    153     │       │       │Pass M │       │tgl gap│tmp dir│       │Send PS│Send NS│
    154     └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
    155 ```
    156 
    157 
    158 [dwm]: <https://dwm.suckless.org> "dwm's homepage"