Dwm: Difference between revisions

From Alpine Linux
(dwm is also in the official repository, no need to compile it every time)
(39 intermediate revisions by 9 users not shown)
Line 1: Line 1:
[https://dwm.suckless.org/ dwm] is a dynamic window manager for X. It manages windows in tiled, monocle and floating layouts.
[https://dwm.suckless.org/ dwm] is a dynamic window manager for X. It manages windows in tiled, monocle and floating layouts.


== Creating new user account ==
This guide covers:
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 sudoers.
{{cmd|# adduser myname}}
Where myname is the name you want to use


Install sudo so we can add myname to sudoers
* Installing dependencies for the [https://suckless.org suckless] tools and installing firefox
{{cmd|# apk add sudo}}
* Installing from source or from repository dwm (dynamic window manager), dmenu (dynamic menu), st (simple terminal)
* Configuring the new profile to run dwm at login.


edit the sudores file by running:
<br>
{{cmd|# visudo}}


Add your user account so you can have sudoers. Make your change below root. The relevant section should look like this:
= Prerequisites =
{{cat|/etc/sudoers.tmp|
* [[Installation|Install]] AlpineLinux
<pre>
* [[Setting_up_a_new_user#Creating_a_new_user|Create a user account]] (optional but recommended)
##
* [[Repositories#Enabling_the_community_repository|Enable the Community repository]]
## User privilege specification
* [[Alpine_setup_scripts#setup-xorg-base|Install Xorg]]
##
root ALL=(ALL) ALL
myuser ALL=(ALL) ALL</pre>}}


Switch to the new account
<br>
{{cmd|# su myname}}


== Installing Xorg ==
== Installing from binary repository ==
run the following command
{{Cmd|# apk add dwm dmenu st}}
{{cmd|# sudo setup-xorg-base}}


== Configuring the community repositories ==
This will install {{Pkg|dwm}}, {{Pkg|dmenu}} and {{Pkg|st}}
We need to do this so we can install firefox. Edit the file with this command
{{cmd|# sudo vi /etc/apk/repositories}}
uncomment the community line by removing the '''#''' save the file and exit. It should look something like this:
{{cat|/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
{{cmd|# sudo apk update}}


== Installing dependencies ==
== Installing from source  ==
 
=== Installing dependencies ===
{{Note|
{{Note|
'''git make gcc g++ libx11-dev libxft-dev libxinerama-dev ncurses''' are needed to install suckless from source
'''git make gcc g++ libx11-dev libxft-dev libxinerama-dev ncurses''' is needed to install suckless tools from source.
 
'''dbus-x11''' is needed for the dbus system (enables firefox running in dwm to open in a tile)
 
The last three '''adwaita-gtk2-theme adwaita-icon-theme ttf-dejavu''' are optional, but recommended for a nicer looking firefox.}}


'''dbus-x11''' is needed for firefox (when we run firefox in dwm we want it to open in a tile)
The command to install the dependencies:
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. }}
{{cmd|# 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}}
The command to install the dependencies
{{cmd|# 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 from source ==
=== Installing suckless tools dwm, dmenu, and st from source ===
Go to this directory {{cmd| # cd /tmp}} this is where we will download the source code
Change to the /tmp directory. {{cmd|$ cd /tmp}} then execute:
{{cmd|# git clone https://git.suckless.org/dwm}}
{{cmd|# git clone https://git.suckless.org/dwm}}
Once downloaded go to the dwm directory {{cmd|# cd dwm}}
Once downloaded, go to the dwm directory {{cmd|# cd dwm}}
to install run  
To install, run:
{{cmd|# sudo make clean install}}
{{cmd|# make clean install}}
next leave this directory {{cmd|# cd ..}} so we can install dmenu
Next, go up one directory level {{cmd|# cd ..}} to install dmenu:
{{cmd|# git clone https://git.suckless.org/dmenu}}
{{cmd|# git clone https://git.suckless.org/dmenu}}
{{cmd|# cd dmenu}}
{{cmd|# cd dmenu}}
{{cmd|# sudo make clean install}}
{{cmd|# make clean install}}
next leave this directory {{cmd|# cd ..}} so we can install st
Finally, go up one more directory level {{cmd|# cd ..}} to install st:
{{cmd|# git clone https://git.suckless.org/st}}
{{cmd|# git clone https://git.suckless.org/st}}
{{cmd|# cd st}}
{{cmd|# cd st}}
{{cmd|# sudo make clean install}}
{{cmd|# make clean install}}
 
== Setting up your profile ==
== Setting up your profile ==
Go to your profile
Change to your home directory:
{{cmd|# cd /home/myname}} where myname is the name of your profile
{{cmd|$ cd /home/<yourusername>}}
create .xinitrc
Create .xinitrc:
{{cmd|# vi .xinitrc}}
{{cmd|$ vi .xinitrc}}
add this line  
Add this line:
{{cat|~/.xinitrc|
{{cat|~/.xinitrc|exec dwm}}
exec dwm}} save the file and exit vi
Save the file and exit vi.
next create .profile  
 
{{cmd|# vi .profile}}
Next, create .profile.:
add this line  
{{cmd|$ vi .profile}}
{{cat|~/.profile|
Add this line:
startx}}
{{cat|~/.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.
{{cat|~/.profile|if [ -z $DISPLAY ] && [ $(tty) {{=}} /dev/tty1 ]; then
    startx
fi
}}
|gotchas}}
 
Log out or reboot. dwm will run the next time you log in.
Press alt+p to launch dmenu. Type firefox then press enter. Firefox will load and run in tile 9.
 
= See Also =
* https://pkgs.alpinelinux.org/contents?file=dwm
* [https://wiki.gentoo.org/wiki/Dwm "dwm is only a single binary, and its source code is intended to never exceed 2000 SLOC. dwm is customized through editing its source code"]
* [[AwesomeWM]]
* [[Raspberry Pi 3 - Browser Client]] - A guide which omits dwm, but uses similar steps to install firefox in a diskless install on ARM. dwm is not used on the RPI3, due to tmpfs limitations.


exit to log out of the system or reboot and when you log in dwm will run
[[Category:Desktop]]
press alt+p to launch dmenu and start typing firefox
firefox will run in tile 9 see here if you want to change that

Revision as of 16:34, 8 September 2022

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

This guide covers:

  • Installing dependencies for the suckless tools and installing firefox
  • Installing from source or from repository dwm (dynamic window manager), dmenu (dynamic menu), st (simple terminal)
  • Configuring the new profile to run dwm at login.


Prerequisites


Installing from binary repository

# apk add dwm dmenu st

This will install dwm, dmenu and st

Installing from source

Installing dependencies

Note:

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

dbus-x11 is needed for the dbus system (enables firefox running in dwm to open in a tile)

The last three adwaita-gtk2-theme adwaita-icon-theme ttf-dejavu are optional, but recommended for a nicer looking firefox.

The command to install the dependencies:

# 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

Change to the /tmp directory.

$ cd /tmp

then execute:

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

Once downloaded, go to the dwm directory

# cd dwm

To install, run:

# make clean install

Next, go up one directory level

# cd ..

to install dmenu:

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

# cd dmenu

# make clean install

Finally, go up one more directory level

# cd ..

to install st:

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

# cd st

# make clean install

Setting up your profile

Change to your home directory:

$ cd /home/<yourusername>

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

Log out or reboot. dwm will run the next time you log in. Press alt+p to launch dmenu. Type firefox then press enter. Firefox will load and run in tile 9.

See Also