I believe so. It is actively developed by the OpenBSD developers/maintainers and the git repo for the linux port is tied to that release now so it is a simple compile as long as you have a few dependencies -
sudo make install
prior to that, it was a real pain in the ass to get it compiled - there were 3-4 linux ports of.
I don't think it supports virtual desktops natively, so tilers like dwm, spectrwm, and i3 really - IMO - blow it away as far as functionality goes. But if you only need the one desktop, or prefer a wm on your server it's really good.
my ~/.cwmrc which is pretty much taken from the man page - add an ignore rule for tint2 and/or conky windows:
color activeborder rgb:E1/CA/5A
color inactiveborder rgb:BC/BE/B3
gap 20 4 4 4
# Set default Xft(3) font
# Turn on sticky-group mode
# Any entry here is shown in the application menu
command dmenu dmenu_run
command terminal urxvtc
command tmux "uxterm -e tmux"
command thunar thunar
command editor geany
command firefox firefox
command thunderbird thunderbird
command gimp gimp
# Autogroup definitions
autogroup 3 "aterm,XTerm"
autogroup 3 "xterm,XTerm"
# Ignore programs by that name by not drawing borders around them.
bind CM-r label
bind CS-Return "xterm -e top"
bind 4-o unmap
bind CM-equal unmap
bind CMS-equal unmap
#bind M-F7 vmaximize
#bind M-F8 hmaximize
bind M-1 grouponly1
bind M-2 grouponly2
bind M-3 grouponly3
bind MS-1 movetogroup1
bind MS-2 movetogroup2
bind MS-3 movetogroup3
# user bindings
bind M-F1 "urxvtc"
bind M-F2 "dmenu_run"
bind M-F3 "urxvtc -e tmux"
bind M-F4 delete
bind M-F5 raise
bind M-F6 lower
bind M-F7 vmaximize
bind M-F8 hmaximize
bind M-F10 maximize
bind XF86HomePage firefox
bind Menu thunar
bind 4-F14 thunderbird
bind C4-l geany
bind C4-g gimp
mousebind M-2 window_lower
mousebind M-3 window_resize
#BIND COMMAND LIST
# restart Restart the running cwm(1).
bind 4-q restart
# quit Quit cwm(1).
bind 4S-q quit
# terminal Spawn a new terminal.
# lock Lock the screen.
# search Launch window search menu.
# menusearch Launch application search menu.
# exec Launch “exec program” menu.
# exec_wm Launch “exec WindowManager” menu.
# ssh Launch “ssh” menu.
# group[n] Select group n, where n is 1-9.
# grouponly[n] Like group[n] but also hides the other groups.
# nogroup Select all groups.
# grouptoggle Toggle group membership of current window.
# movetogroup[n] Hide current window from display and move to group n, where n is 1-9.
# cyclegroup Forward cycle through groups.
# rcyclegroup Reverse cycle through groups.
# cycle Forward cycle through windows.
# rcycle Reverse cycle through windows.
# cycleingroup Forward cycle through windows in current group.
# rcycleingroup Reverse cycle through windows in current group.
# delete Delete current window.
# hide Hide current window.
# lower Lower current window.
# raise Raise current window.
# label Label current window.
# freeze Freeze current window geometry.
# maximize Maximize current window full-screen.
# vmaximize Maximize current window vertically.
# hmaximize Maximize current window horizontally.
# moveup Move window moveamount pixels up.
bind MS-Up moveup
# movedown Move window moveamount pixels down.
bind MS-Down movedown
# moveright Move window moveamount pixels right.
bind MS-Left moveleft
# moveleft Move window moveamount pixels left.
bind MS-Right moveright
# bigmoveup Move window 10 times moveamount pixels up.
# bigmovedown Move window 10 times moveamount pixels down.
# bigmoveright Move window 10 times moveamount pixels right.
# bigmoveleft Move window 10 times moveamount pixels left.
# resizeup Resize window moveamount pixels up.
bind C4-Up resizeup
bind C4-Down resizedown
bind C4-Left resizeleft
bind C4-Right resizeright
# resizedown Resize window moveamount pixels down.
# resizeright Resize window moveamount pixels right.
# resizeleft Resize window moveamount pixels left.
# bigresizeup Resize window 10 times moveamount pixels up.
# bigresizedown Resize window 10 times moveamount pixels down.
# bigresizeright Resize window 10 times moveamount pixels right.
# bigresizeleft Resize window 10 times moveamount pixels left.
# ptrmoveup Move pointer moveamount pixels up.
# ptrmovedown Move pointer moveamount pixels down.
# ptrmoveright Move pointer moveamount pixels right.
# ptrmoveleft Move pointer moveamount pixels left.
# bigptrmoveup Move pointer 10 times moveamount pixels up.
# bigptrmovedown Move pointer 10 times moveamount pixels down.
# bigptrmoveright Move pointer 10 times moveamount pixels right.
# bigptrmoveleft Move pointer 10 times moveamount pixels left.
# htile Current window is placed at the top of the screen and maximized horizontally, other windows in its group share remaining screen space.
# vtile Current window is placed on the left of the screen and maximized vertically, other windows in its group share remaining screen space.
# MOUSEBIND COMMAND LIST
# window_move Move current window.
# window_resize Resize current window.
# window_lower Lower current window.
# window_raise Raise current window.
# window_hide Hide current window.
# window_grouptoggle Toggle group membership of current window.
# menu_group Launch group list.
# menu_unhide Launch hidden window list.
# menu_cmd Launch command list.
and my startcwm file - mine resides in /usr/local/bin - I use it in the /usr/share/xsessions/cwm.desktop file to make it available to lightdm
# Change your keymap:
xmodmap "$HOME/.Xmodmap" &
xrdb -l "$HOME/.Xdefaults" &
xsetroot -mod 1 1 -fg mediumslateblue -bg lightslategray &
urxvtd -q -f -o &
fbsetbg -c -r "$HOME/wallpaper/" &
conky | dzen2 -fn "xft:terminus:pixelsize=12:antialias=true:hinting=slight" &