Dwm

From Alpine Linux
Revision as of 19:29, 9 January 2020 by Whitelynx (talk | contribs) (Spelling, formatting, and clarity fixes.)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

dwm is a dynamic window manager for X. It manages windows in tiled, monocle and floating layouts.

This guide covers:

  • Creating a user account that can run as sudo
  • Installing dependencies for the suckless tools and installing firefox
  • Installing from source dwm (dynamic window manager), dmenu (dynamic menu), st (simple terminal)
  • Configuring the new profile to run dwm at login.


Creating a new user account

After the install of alpine you get the root account. We want to use a new user account that is not root but will have sudo permissions.

# adduser myname

Where myname is the username you want to use.

Install sudo so we can add myname to sudoers.

# apk add sudo

Edit the sudoers file by running:

# visudo

Note: Only edit the sudoers file using visudo

Add your user account so you can have sudoers. Make your change below root. The relevant section should look like this:

Contents of /etc/sudoers.tmp

##
## User privilege specification
##
root ALL=(ALL) ALL
myname ALL=(ALL) ALL

Switch to the new account

# su myname

Installing Xorg

Run the following command to install X.org.

# sudo setup-xorg-base

Configuring the community repositories

We need to do this so we can install Firefox. Edit the file with this command:

# sudo vi /etc/apk/repositories

Uncomment the community line by removing the # then save the file and exit. It should look something like this:

Contents of /etc/apk/repositories

#/media/cdrom/apks http://linorg.usp.br/AlpineLinux/v3.9/main http://linorg.usp.br/AlpineLinux/v3.9/community #http://linorg.usp.br/AlpineLinux/edge/main #http://linorg.usp.br/AlpineLinux/edge/community #http://linorg.usp.br/AlpineLinux/edge/testing

Next let the package manager know we made this change:

# sudo apk update

Installing dependencies

Note:

git make gcc g++ libx11-dev libxft-dev libxinerama-dev ncurses are needed to install suckless tools from source.

dbus-x11 is needed for the dbus system (when we run firefox in dwm we want it to open in a tile)

The last three adwaita-gtk2-theme adwaita-icon-theme ttf-dejavu are optional but I recommend them so you can have a nicer looking firefox.

The command to install the dependencies:

# sudo apk add git make gcc g++ libx11-dev libxft-dev libxinerama-dev ncurses dbus-x11 firefox-esr adwaita-gtk2-theme adwaita-icon-theme ttf-dejavu

Installing suckless tools dwm, dmenu, and st from source

Go to this directory

# cd /tmp

this is where we will download the source code.

# git clone https://git.suckless.org/dwm

Once downloaded go to the dwm directory

# cd dwm

To install, run:

# sudo make clean install

Next, leave this directory

# cd ..

so we can install dmenu:

# git clone https://git.suckless.org/dmenu

# cd dmenu

# sudo make clean install

Finally, leave this directory

# cd ..

so we can install st:

# git clone https://git.suckless.org/st

# cd st

# sudo make clean install

Setting up your profile

Go to your home directory:

# cd /home/myname

Where myname is your username.

Create .xinitrc:

# vi .xinitrc

Add this line:

Contents of ~/.xinitrc

exec dwm

Save the file and exit vi.

Next, create .profile.:

# vi .profile

Add this line:

Contents of ~/.profile

startx
Note: If you install additional programs that call your `$SHELL` with the POSIX `-l` login flag, you'll need to make launching `startx` conditional, otherwise X will attempt to launch every time your shell is called with the login flag.

Contents of ~/.profile

if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then startx fi

Exit to log out of the system or reboot and when you log in dwm will run. Press alt+p to launch dmenu and start typing firefox. Press enter to run firefox, it will load in tile 9.