-
Notifications
You must be signed in to change notification settings - Fork 23
Installation
It is generally expected that you have some experience installing and using dwm before trying out dusk, in which case the information on this page should be nothing new.
This guide assumes your system has the latest updates before going ahead with the installation.
Note that you may want to keep the source directories of the tools you download in a suitable location for future reference as you may need to recompile them to apply configuration changes.
- base-devel
- extra/git
- extra/libx11
- extra/libxcb
- extra/libxinerama
- extra/libxft
- extra/imlib2
- extra/yajl
- libxfixes
- libxi
- fribidi
sudo pacman -S base-devel extra/git extra/libx11 extra/libxcb extra/libxinerama extra/libxft extra/imlib2 extra/yajl
If you find yourself missing a library then this can usually be found by searching for the file name using pacman:
$ pacman -F Xlib-xcb.h
extra/libx11 1.6.12-1 [installed: 1.7.2-1]
usr/include/X11/Xlib-xcb.h
- build-essential
- git
- libx11-dev
- libx11-xcb-dev
- libxcb-res0-dev
- libxinerama-dev
- libimlib2-dev
- libyajl-dev
- libxfixes-dev
- libxi-dev
- libfribidi-dev
sudo apt install build-essential git libx11-dev libx11-xcb-dev libxcb-res0-dev libxinerama-dev libxft-dev libimlib2-dev libyajl-dev
It is worth checking the version of gcc on debian based systems as they may come with older implementations that can result in compilation errors.
gcc --version
You would expect at least v8.x or above here.
If you find yourself missing a library then this can usually be found by searching for the file name using apt-file, a tool that have to be installed separately:
$ sudo apt install apt-file
$ sudo apt-file update
$ apt-file search xcb/res.h
libxcb-res0-dev: /usr/include/xcb/res.h
- base-devel
- libX11-devel
- libXft-devel
- libXinerama-devel
- freetype-devel
- fontconfig-devel
- libxcb-devel
- yajl-devel
- imlib2-devel
- libXfixes-devel
- libXi-devel
- fribidi-devel
xbps-install -Su base-devel libX11-devel libXft-devel libXinerama-devel freetype-devel fontconfig-devel libxcb-devel yajl-devel imlib2-devel
If you find yourself missing a library then this can usually be found by searching for the file name using xlocate, a tool that have to be installed separately via the xtools package:
$ xlocate yajl/yajl_gen.h
yajl-devel-2.1.0._4 /usr/include/yajl/yajl_gen.h
It is highly recommended to install dmenu
given that it is used as the default launcher for
starting applications, but you can of course use another launcher of choice if you prefer.
For the most seamless experience I would recommend using my own build of dmenu which comes with a series of built-in features:
Then make a few configuration changes to set the border width as well as bar padding. This is so that the menu cleanly overlaps the bar in dusk.
Change the border_width
setting to 5 pixels.
static unsigned int border_width = 5;
and the vertical and horizontal padding to 5 pixels.
static int vertpad = 5;
static int sidepad = 5;
Alternatively you can use your own, grab the unpatched version on the suckless website, or try dmenu-flexipatch.
While you likely can get this tool via your distribution's package manager it is better to compile it from scratch as it will make it easier should you want to apply customisations later on.
Clone the repository.
git clone https://github.com/bakkeby/dmenu.git
or
git clone https://github.com/bakkeby/dmenu-flexipatch.git dmenu
or
git clone https://git.suckless.org/dmenu
Then run make compile and install.
$ cd dmenu
$ make
$ sudo make install
$ cd ..
The initial make is to copy the configuration template config.def.h
to config.h
, the latter
being your personal configuration file which you can customise to your own liking.
The default configuration for dusk uses st
as the default terminal and a few minor things like
scratchpads. Installing st
is entirely optional, but we recommend including it to avoid ending
up in a situation where one can't open any terminal.
While you likely can get this terminal via your distribution's package manager it is better to compile it from scratch as it will make it easier should you want to apply customisations later on.
Clone the repository.
git clone https://git.suckless.org/st
or
git clone https://github.com/bakkeby/st-flexipatch.git st
$ cd st
$ make
$ sudo make install
$ cd ..
As with dmenu and most suckless tools the initial make is to copy the configuration template
config.def.h
to config.h
which you can customise to your own liking.
Installing slstatus
is entirely optional, but is recommended for when you want to set up statuses.
The slstatus-for-dusk
fork allows for each of the statuses in dusk to be updated independently.
git clone https://github.com/bakkeby/slstatus-for-dusk.git slstatus
$ cd slstatus
$ make
$ sudo make install
$ cd ..
This can also be installed at a later time of course.
The installation of dusk will be similar to installing dmenu or st.
Clone the repository, then compile and install.
$ git clone https://github.com/bakkeby/dusk.git
$ cd dusk
$ make
$ sudo make install
A dusk.desktop
file will be placed in /usr/share/xsessions/ so if you are using a login manager
you should now be able to select dusk as the window manager when logging in.
If you do not use a login manager then you already know what you are doing. Add exec dusk
at the
end of your ~/.xinitrc file.
By default new terminals are opened by using the keyboard shortcut of Super+Enter
(return) while
dmenu is started using Super+d
.
You can also refer to man dusk
for the most basic keybindings.
If there is anything that is not clear with regards to installation let me know and I will try to make improvements for future revisions.
Back to Features.
Concepts | Configuration | Features | Flags | Functionality | Functions