the dwm session
dwm is written in C ... no automatic refresh .. you want to configure? then you must compile :)
dwm has remained simple ..virgin i would say: virgin from any gadget and other options that slow down environment and ultimately affect the performance of the computer and the user, while it was not the primary idea.
dwm is distributed by suckless.org Dedicated to software that sucks less ... and adopts the KISS philosophy.
dwm is fully controllable from the keyboard but can also make good use of your mouse (moving clients, resize on the fly ..).
i have to admit ... it's my favorite session :)
screenshots
DWM is a tiling window manager, it displays your windows (clients) so that they occupy the entire surface of the desk (tags). occupied tags are indicated by a small square. clients are organized in different ways (layouts) to optimize the visibility of your applications. layouts are organized around the Master (main zone) and Stack (stacking area from other clients).
startup
dwm is launched from the ~/bin/start/dwm_start.sh script.
to modify startup applications, simply edit this file: vim bin/start/dwm_start.sh or from the dwm menu:section config:dwm:edit startup script
components
dwm session is organized with different elements:
- DWM:the window manager itself, based on dwm-6.1 and largely patched to enhance and facilitate the handling of the tiling. (list of patches applied at the bottom of page)
- dwm-statusbar: display taglist, tag layout button, tasklist and a minimal conky: cpu, ram and hdd usage, date and time (configurable from ~/.conky/.conkyrc_dwm).
- dwm menu: available from top-left corner and handled by fbpanel. it includes a complete menu of installed applications, configuration section and a systray (configurable from ~/.config/fbpanel/dwm or from the menu itself).
- livarp menu: available with right-click on desktop and configured with compiz-deskmenu-editor.
configuration
to configure conky, you have to edit its conkyrc: vim .conky/.conkyrc_dwm or from the dwm menu:section config:conky.
to configure fbpanel, edit its configuration file vim .config/fbpanel/dwm or from the fbpanel menu itself: section config:fbpanel:edit menu.
if you want to add plugins, please visit the dedicated page.
livarp menu is handled by compiz-deskmenu, it includes a graphical editor. please visit the dedicated page.
dwm configuration through the compilation of sources.
dwm does not have a configuration file, if you want to change behavior, you must recompile dwm from source. an archive containing the sources fr/us is located in /usr/share/livarp/sources.
a mini tutorial explains the process at the end of this page.
keybinds/mousebinds
dwm is fully controllable from the keyboard: control, launchers, navigation, tags and clients manipulation...
keybinds/mousebinds are defined in the config.h file from sources when compiling. Some applications are configured to open in specific tags
menus:
- dwm menu: top-left corner of the screen
- livarp menu: right-click on the desktop
- dmenu: Alt+p or Super+d
- dmenu-google: Super+g
- dmenu-home: Super+h
control:
- reload dwm: Ctrl+Shift+q
- quit dwm:Ctrl+Shift+Alt+q or from dwm menu:exit
- toggle hide the statusbar: Alt+b
windows:
- close client: Alt+q
- previous client: Alt+j
- next client: Alt+k
- pushdown client in the list: Ctrl+Alt+j
- pushup the client in the list: Ctrl+Alt+k
- put the client in the master: Alt+Enter or right-click on the client title in the statusbar
- toggle free client: Alt+Shift+Space
- move client: Alt+left-click
- resize client: Alt+right-click
navigation:
- previous/next tag: Ctrl+Left/Right
- swap the previous tag: Alt+Tab
- view alltag: Alt+0 (to escape, Alt+'number')
- tag client with alltags: Alt+Shift+0 (to escape Alt+Shift+'number')
- view previous/next screen: Alt+Down/Up
- tag client with previous/next screen: Alt+Shift+Down/up
- view tag 'n': Alt+'n' or left-click on the tag in the taglist
- tag client with tag 'n': Alt+Shift+'n' or Alt+left-click on the tag in the taglist
- toggle view client in tag 'n': Ctrl+Alt+'n' or right-click on the tag in the taglist
layout
- increase master area: Alt+l
- decrease master area: Alt+h
- increase clients in master area: Alt+i
- decrease clients in master area : Alt+d
- tile layout: Alt+t or left-click on layout button. (master on left, stack on right [|])
- bottomstack layout: Alt+s or middle-click on layout button. (master on top, stack on bottom [-])
- monocle layout: Alt+m or right-click on layout button. (clients maximised, number of clients is indicated in the layout button) [0]
- free layout: Alt+f (no layout at all) [ ]
- last layout: Alt+Space
- next layout: Super+Space
- previous layout: Super+Shift+Space
launchers:
- default terminal: Ctrl+Enter
- toggle hide the scratchpad: F12 (free popup terminal)
- launch ranger: Alt+r
- launch rox-filer: Alt+Shift+r
- launch luakit: Alt+w (tag 2)
- launch firefox: Alt+Shift+w (tag 2)
- launch vim: Alt+e (tag 4)
- launch geany: Alt+Shift+e (tag 4)
- launch weechat: Alt+x (tag 3)
- music player: Alt+z
- volume control: Alt+v
dwm compilation
this process may seem dark or scary but it is very simple: the goal is to build the executable file "dwm" from source. sources are recovered, they are modified, then we apply the famous "make/sudo make install/make clean" and voila :). an archive containing these sources is available in your / usr/share/livarp/sources/dwm-6.1-reloaded.zip.
compilation process
cd ~/tmp
cp /usr/share/livarp/sources/dwm-6.1-reloaded.zip .
unzip dwm-6.1-reloaded.zip
- cd into the us directory then edit the file with dwm configuration, config.h:
cd dwm-6.1-reloaded-master/dwm
vim config.h
or
geany config.h
- once modifications made, let's compile
make
sudo make install
make clean
your new dwm release is installed, to reload dwm, Ctrl+Shift+q
patchs list applied to dwm-6.1
- attachabove: allow to open clients in the stack area
- bottomstack: add bottomstack layout
- fancybar: add complete client list in the dwm bar
- float_border_color: change client free border color
- push up/down: allow to push up/down client in the client list
- pertag: each tag has its layout
- scratchpad: free popup terminal on all tag availble from a keybind
- cycle-layout: cycle through layouts
- view_prev/next_tag: keybind to facilitate tag navigation