LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Desktop
User Name
Password
Linux - Desktop This forum is for the discussion of all Linux Software used in a desktop context.

Notices


Reply
  Search this Thread
Old 11-05-2023, 06:01 AM   #1
openbsd98324
Member
 
Registered: Feb 2022
Posts: 72

Rep: Reputation: 5
Who still uses CTWM as WM ?


Hello !

Who still uses CTWM today as WM ?
Probably some BSDs users?

Kind regards,
Op.


my ~/.ctwmrc
(requires ctwm, m4 packages)

It works on whatever, linux, bsd...

Code:
# Remod like flevilwm 

WorkSpaces {
    "One"   {"#686B9F" "white" "DeepSkyBlue3" "white" "xpm:background8.xpm" }
    "Two"   {"#686B9F" "white" "firebrick" "white"    "xpm:background1.xpm" }
    "Three" {"#727786" "white" "DarkBlue"  "white"    "xpm:background3.xpm" }
    "Four"  {"#8C5b7A" "white" "MidnightBlue" "white"  }
    "Five"   {"#686B9F" "white" "DeepSkyBlue3" "white" "xpm:background8.xpm" }
    "Six"   {"#686B9F" "white" "firebrick" "white"    "xpm:background1.xpm" }
    "Seven" {"#727786" "white" "DarkBlue"  "white"    "xpm:background3.xpm" }
    "Eight"  {"#8C5b7A" "white" "MidnightBlue" "white"  }
}


Color
{
    BorderColor           "Red"
    DefaultBackground     "blue"
    DefaultForeground     "gray85"
}



# NoDefaults
"r" =	        m4	: all	:!"    cd ;  flcommand    &  "
"t" =	        m4	: all	:!"  cd   ;  env TZ=Europe/Amsterdam  kicker    &  "

"x" =	        m4	: all	:!"   xterm -fs 15 -fa 15 -bg black -fg yellow   &  "
"c" =	        m4	: all	:!"   xterm -fs 15 -fa 15 -bg black -fg yellow    &  "

# "f" =	        m4	: all	:!"    links -g google.com &  "

"a" =	        m4	: window	: f.fullzoom
"w" =	        m4	: window	: f.delete 
# "r" =	        m4	: window	: f.restart 


"1" = m4 : all : f.gotoworkspace "One" 
"2" = m4 : all : f.gotoworkspace "Two"
"3" = m4 : all : f.gotoworkspace "Three" 
"4" = m4 : all : f.gotoworkspace "Four"
"5" = m4 : all : f.gotoworkspace "Five" 
"6" = m4 : all : f.gotoworkspace "Six"
"7" = m4 : all : f.gotoworkspace "Seven" 
"8" = m4 : all : f.gotoworkspace "Eight"



Button1 =	: title		        : f.move
Button1 = m	: window		: f.move
Button3 = m	: window		: f.resize



RandomPlacement "on"
# RaiseOnClick
# ClickToFocus
AutoRelativeResize			# intelligent resizing => easier



Color
{
    BorderColor           "Red"
    DefaultBackground     "blue"
    DefaultForeground     "gray85"
    BorderTileBackground  "DeepSkyBlue1" {
	"xterm"		"DeepSkyBlue3"
    }
    BorderTileForeground  "Black" {
	"xterm" "DeepSkyBlue3"
    }
    TitleBackground       "DeepSkyBlue1" {
	"xterm" "DeepSkyBlue3"
    }
    TitleForeground       "Black" {
	"xterm" "White"
    }
    MenuBackground        "#686B9F"
    MenuForeground        "white"
    MenuTitleBackground   "gray70"
    MenuTitleForeground   "White"
    IconBackground        "LightSlateBlue"
    IconForeground        "White"
    IconBorderColor       "gray85"
    IconManagerBackground "DeepSkyBlue1" {"Axe" "DeepSkyBlue3" "xload" "DeepSkyBlue2"}
    IconManagerForeground "Black"
    MapWindowBackground   "DeepSkyBlue1" {
	"root*" "Red"
	"xterm" "DeepSkyBlue3"
	"Axe"	"Yellow"
    }
    MapWindowForeground   "Black" {
	"xterm" "White"
    }
}




NoOpaqueMove
NoOpaqueResize




### NEW AREA 
Button3 =	: title		: f.menu "Menuwin"


# HideWorkSpaceManager			# start with workspace manager up
WorkSpaceManagerGeometry        "360x60+60-0" 4
menu "Menuwin" {
    "Window Menu"			f.title
    "Pin menu"		f.pin
    ""			f.separator
    "Info..."			f.identify
    "Resize"			f.resize
    "Move"			f.move
    "Focus"			f.focus
    "Occupy All"		f.occupyall
    "Close"			f.delete
    "Kill"			f.destroy
    ""				f.separator
    "Show WorkSpace Manager"	f.showworkspacemgr
    "Hide WorkSpace Manager"	f.hideworkspacemgr
    ""				f.separator
    "Show Icon Manager"	f.showiconmgr
    "Hide Icon Manager"	f.hideiconmgr
    ""				f.separator
}
--
CTWM
Rel. 23.02
Manjaro-ARM-minimal-pbpro-23.02.img.xz
Running out of SDMMC card.
Attached Thumbnails
Click image for larger version

Name:	1699184735-screenshot.jpg
Views:	59
Size:	254.6 KB
ID:	41998   Click image for larger version

Name:	1699860004-screenshot.jpg
Views:	42
Size:	271.8 KB
ID:	42044  

Last edited by openbsd98324; 11-13-2023 at 01:23 AM.
 
Old 11-05-2023, 07:01 AM   #2
fatmac
LQ Guru
 
Registered: Sep 2011
Location: Upper Hale, Surrey/Hants Border, UK
Distribution: Mainly Devuan, antiX, & Void, with Tiny Core, Fatdog, & BSD thrown in.
Posts: 5,510

Rep: Reputation: Disabled
Last time I installed NetBSD, CTWM was the default, which I found to be quite easy to use, so kept it as my WM on NetBSD.
 
Old 11-05-2023, 11:50 AM   #3
jayjwa
Member
 
Registered: Jul 2003
Location: NY
Distribution: Slackware, Termux
Posts: 795

Rep: Reputation: 255Reputation: 255Reputation: 255
I used to use it back in the day, along with other "less is more" WMs like MWM. I'm not sure it will compile here anymore. I have a Minix3 guest with TWM.
 
Old 11-06-2023, 08:58 AM   #4
jmccue
Member
 
Registered: Nov 2008
Location: US
Distribution: slackware
Posts: 706
Blog Entries: 1

Rep: Reputation: 384Reputation: 384Reputation: 384Reputation: 384
I bounce between fvwm, ctwm, cwm and fluxbox depending on my mood. But ctwm works very well for me.

This unixporn reddit shows my setup on NetBSD, it is very similar to what I have on Slackware 15.

On Slackware I do not have xconsole(1) active and use wmsystemtray for my tray.

But now my usual dig at Wayland when these threads comes up A lot of cool X utilities and Window Managers will be gone when RHEL and friends force Wayland on us like the did/doing with systemd.

It is almost like this youtube from Blade Runner. Once RHEL and friends eliminate X11, a lot of cool little applications will be gone.

Just a few from memory:
  • xfisktank
  • lavaps
  • bfm (bubblefishymon)
 
Old 11-13-2023, 01:22 AM   #5
openbsd98324
Member
 
Registered: Feb 2022
Posts: 72

Original Poster
Rep: Reputation: 5
Quote:
Originally Posted by jmccue View Post
I bounce between fvwm, ctwm, cwm and fluxbox depending on my mood. But ctwm works very well for me.

This unixporn reddit shows my setup on NetBSD, it is very similar to what I have on Slackware 15.

On Slackware I do not have xconsole(1) active and use wmsystemtray for my tray.

But now my usual dig at Wayland when these threads comes up A lot of cool X utilities and Window Managers will be gone when RHEL and friends force Wayland on us like the did/doing with systemd.

It is almost like this youtube from Blade Runner. Once RHEL and friends eliminate X11, a lot of cool little applications will be gone.

Just a few from memory:
  • xfisktank
  • lavaps
  • bfm (bubblefishymon)
You can still use FLTK? X11 Xorg will be maintained by BSD planet. Linux goes Wayland, and you can forget too ssh -X -C ... and many other cool things.
To keep X11 apps to runn, sure, it is our history.

here ctwm with fltk ..
Attached Thumbnails
Click image for larger version

Name:	1699860004-screenshot.jpg
Views:	31
Size:	271.8 KB
ID:	42043  
 
Old 11-19-2023, 03:14 PM   #6
rufwoof
Member
 
Registered: Nov 2017
Distribution: Kernel+busybox+ssh+vnc+alsa (framebuffer)
Posts: 201

Rep: Reputation: Disabled
X comes with twm by default I believe. Very similar to ctwm but where you press/drag rather than click for the menu.

Once you're used to the open .. to see a grid of the window that will be placed onto the desktop, so drag it to where you want it and click to drop it onto the desktop, along with resizing windows by first positioning the bottom corner to where you want that, and then drag the window to the size you like .. and its quite nice IMO. For resizing you click the resize icon and have to drag the mouse first into the window, and then out in the direction that you want to resize the window. Easier to do than describe.

For that, changing the default title icons to use SqueezeTitle and redefine the positions, I like the resize at the far left, iconify next to that, then then window title, followed by the close (destroy) icon. Don't bother with the IconManager, just iconify and restore individual windows.

So including something like (from memory, so syntax might not be precise)

NoIconManagers
SqueezeTitle
NoDefaults
LeftTitleButton ":resize" = f.resize
LeftTitleButton ":iconify" = f.iconify
RightTitleButton ":delete" = f.delete


Should also work in .ctwmrc

With the squashed titles (tabs) you can place them alongside each other. Or when a window is maximised then the tab title still has some desktop space showing to the right of the tab so you can click that for the main twm menu to pop up.
 
Old 12-03-2023, 05:57 PM   #7
openbsd98324
Member
 
Registered: Feb 2022
Posts: 72

Original Poster
Rep: Reputation: 5
Wink

A look of year 1998 based on CTWM, very light, with fltk lib.



.ctwmrc with pixmaps...
Code:

# Remod like flevilwm 
# Appended win98 theme...


# blue  xsetroot      -solid '#3A6EA5'
WorkSpaces {
    "One"  {"#3A6EA5" "white" "#3A6EA5" "white"  }
    "Two"  {"#3A6EA5" "white" "#3A6EA5" "white"  }
    "Three"  {"#3A6EA5" "white" "#3A6EA5" "white"  }
    "Four"  {"#3A6EA5" "white" "#3A6EA5" "white"  }
#   "One"   {"#686B9F" "white" "DeepSkyBlue3" "white" "xpm:background8.xpm" }
#    "Two"   {"#686B9F" "white" "firebrick" "white"    "xpm:background1.xpm" }
#    "Three" {"#727786" "white" "DarkBlue"  "white"    "xpm:background3.xpm" }
#    "Four"  {"#8C5b7A" "white" "MidnightBlue" "white"  }
    "Five"   {"#686B9F" "white" "DeepSkyBlue3" "white" "xpm:background8.xpm" }
    "Six"   {"#686B9F" "white" "firebrick" "white"    "xpm:background1.xpm" }
    "Seven" {"#727786" "white" "DarkBlue"  "white"    "xpm:background3.xpm" }
    "Eight"  {"#3A6EA5" "white" "#3A6EA5" "white"  }
#     "Eight"  {"#8C5b7A" "white" "MidnightBlue" "white"  }
}


Color
{
    BorderColor           "Red"
    DefaultBackground     "blue"
    DefaultForeground     "gray85"
}



# NoDefaults
"r" =	        m4	: all	:!"    cd ;  flcommand    &  "
"e" =	        m4	: all	:!"    cd ;  flm    &  "
"t" =	        m4	: all	:!"  cd   ;  env TZ=Europe/Amsterdam  kicker    &  "
# "e" =	        m4	: all	:!"    cd ; rox   &  "
# "l" =	        m4	: all	:!"    cd ; fledit   &  "

"x" =	        m4	: all	:!"   xterm -fs 15 -fa 15 -bg black -fg yellow   &  "
"c" =	        m4	: all	:!"   xterm -fs 15 -fa 15 -bg black -fg yellow    &  "

"XF86AudioLowerVolume" =     	: all	:!"    amixer -c 0 sset DAC 3- &  "
"XF86AudioRaiseVolume" =     	: all	:!"    amixer -c 0 sset DAC 3+ &  "



"a" =	        m4	: window	: f.fullzoom
"w" =	        m4	: window	: f.delete 
"u" =	        m4	: window	: f.restart 



"1" = m4 : all : f.gotoworkspace "One" 
"2" = m4 : all : f.gotoworkspace "Two"
"3" = m4 : all : f.gotoworkspace "Three" 
"4" = m4 : all : f.gotoworkspace "Four"
"5" = m4 : all : f.gotoworkspace "Five" 
"6" = m4 : all : f.gotoworkspace "Six"
"7" = m4 : all : f.gotoworkspace "Seven" 
"8" = m4 : all : f.gotoworkspace "Eight"



Button1 =	: title		        : f.move
Button1 = m	: window		: f.move
Button3 = m	: window		: f.resize



RandomPlacement "on"
# RandomPlacement "on"
# RaiseOnClick
# ClickToFocus
AutoRelativeResize			# intelligent resizing => easier



# Color
# {
#     BorderColor           "Red"
#     DefaultBackground     "blue"
#     DefaultForeground     "gray85"
#     BorderTileBackground  "DeepSkyBlue1" {
# 	"xterm"		"DeepSkyBlue3"
#     }
#     BorderTileForeground  "Black" {
# 	"xterm" "DeepSkyBlue3"
#     }
#     TitleBackground       "DeepSkyBlue1" {
# 	"xterm" "DeepSkyBlue3"
#     }
#     TitleForeground       "Black" {
# 	"xterm" "White"
#     }
#     MenuBackground        "#686B9F"
#     MenuForeground        "white"
#     MenuTitleBackground   "gray70"
#     MenuTitleForeground   "White"
#     IconBackground        "LightSlateBlue"
#     IconForeground        "White"
#     IconBorderColor       "gray85"
#     IconManagerBackground "DeepSkyBlue1" {"Axe" "DeepSkyBlue3" "xload" "DeepSkyBlue2"}
#     IconManagerForeground "Black"
#     MapWindowBackground   "DeepSkyBlue1" {
# 	"root*" "Red"
# 	"xterm" "DeepSkyBlue3"
# 	"Axe"	"Yellow"
#     }
#     MapWindowForeground   "Black" {
# 	"xterm" "White"
#     }
# }
# 



NoOpaqueMove
NoOpaqueResize



### NEW AREA 
Button3 =	: title		: f.menu "Menuwin"


# HideWorkSpaceManager			# start with workspace manager up
WorkSpaceManagerGeometry        "360x60+60-0" 4
menu "Menuwin" {
    "Window Menu"			f.title
    "Pin menu"		f.pin
    ""			f.separator
    "Info..."			f.identify
    "Resize"			f.resize
    "Move"			f.move
    "Focus"			f.focus
    "Occupy All"		f.occupyall
    "Close"			f.delete
    "Kill"			f.destroy
    ""				f.separator
    "Show WorkSpace Manager"	f.showworkspacemgr
    "Hide WorkSpace Manager"	f.hideworkspacemgr
    ""				f.separator
    "Show Icon Manager"	f.showiconmgr
    "Hide Icon Manager"	f.hideiconmgr
    ""				f.separator
    "Send to One"	f.function "toone" 
    "Send to Two"	f.function "totwo" 
    "Send to Three"	f.function "tothree" 
    "Send to Four"	f.function "tofour" 
    ""				f.separator
}




NoTitle { 
    "fspanel"
    "lxpanel"
    "panel"
    "kicker"
    "tint2"
}

NoBorder { 
    "fspanel"
    "lxpanel"
    "panel"
    "kicker"
    "tint2"
}




############## 
############## THEME WIN98 ######################
############## 

# // ls .themes/win98/
# // blue4.xpm  kill.xpm  winmaximize.xpm  winminimize.xpm  x.xpm
#UseThreeDTitles
NoDefaults				# not use default buttons

PixmapDirectory          "~/.themes/win98/"	# dir. for xpms

Pixmaps
{
    TitleHighLight "xpm:blue4.xpm"
}


TitleButtonShadowDepth    1
TitleShadowDepth          1
TitleButtonBorderWidth    0
TitlePadding              3		# frame around TBobjects?
ButtonIndent              0		# indentated TBbuttons?		
FramePadding		  3		# frame around TB?
TitleJustification        "left"	# right/left/center


RightTitleButton           "xpm:winminimize.xpm"      = f.iconify
RightTitleButton           "xpm:winmaximize.xpm"      = f.fullzoom
RightTitleButton           "xpm:kill.xpm"             = f.delete
LeftTitleButton            "xpm:x.xpm"     	      = f.menu "TMenu"


Color
{
  BorderColor           "gray65"	# optional windowlist
#    {
#      "emacs"          "#009900"
#      "Netscape"       "cyan4"
#    }
	
  DefaultBackground     "grey70"
  DefaultForeground     "Black"
  TitleBackground       "#818181"
#    { 					# optional windowlist
#      "Netscape"       "DarkBlue"        
#      "emacs"          "DarkSlateGray"
#      "xfig"           "#80CCF8"
#    }
  
  TitleForeground       "white" 
#    { 					# optional windowlist
#      "Netscape"       "Yellow"        
#      "emacs"          "Wheat"
#      "xfig"           "black"
#    }       

  BorderTileBackground  "gray80"	# optional windowlist
#    { 
#      "Netscape"       "#B0B0B0"        
#      "emacs"          "DarkSlateGray"
#    }

  MenuBackground        "gray80"
  MenuForeground        "black"
  MenuTitleBackground   "gray65"
  MenuTitleForeground   "gray20"
  MenuShadowColor 	"gray15"		# default is black

  IconBackground        "Black"
#    {						# optional winlist
#	"Netscape"	"Blue"
#    }
  IconForeground        "White"
#    {						# optional winlist
#	"Netscape"	"Yellow"
#    }
  IconBorderColor       "gray45"
#    {						# optional winlist
#	"Netscape"	"Blue"
#    }

  IconManagerBackground "gray80"
    {						# optional winlist
#	"Netscape"	"DarkBlue"
#	"emacs"		"#000020"
#	"*pdf*"		"Red"
#	"*xmms*"	"Gray20"
#	"*pine*"	"black"
#	"*lysator*"	"lemonchiffon"
#	"*vmware*"	"white"
    }

  IconManagerForeground "black"
    {						# optional winlist
#	"Netscape"	"Yellow"
#	"emacs"		"lemonchiffon"
#	"*pdf*"		"White"
#	"*xmms*"	"#0068d0"
#	"*pine*"	"green"
#	"*lysator*"	"black"
#	"*wmware*"	"DarkSlateGray"
    }

#  IconManagerHighlight  "yellow"
#    {						# optional winlist
#	"Netscape"	"Blue"
#    }

  MapWindowBackground   "gray65"		# BGcol for WSMwins
#     {						# optional winlist
#     }

  MapWindowForeground   "Black"			# FGcol for WSMwins
#     {						# optional winlist
#     }

}


WMgrHorizButtonIndent     0		# /dist. between buttons
WMgrVertButtonIndent      0		# \when in button mode


#DecorateTransients			# give transients TB
#TransientHasOccupation			# ..uhh? Try it! What is it?
#TransientOnTop				# Put transients top when they appear 
#AutoFocusToTransients			# Give transients autofocus.


Monochrome
{
	BorderColor 		"black"
	BorderTileForeground 	"black"
	BorderTileBackground 	"white"
	TitleForeground 	"black"
	TitleBackground 	"white"
	MenuTitleForeground 	"black"
	MenuTitleBackground 	"white"
	MapWindowForeground 	"white"
	MapWindowBackground 	"white"
}


# MenuFont         "-b&h-lucida-medium-r-normal-sans-12-120-75-75-p-71-iso8859-1"
# TitleFont        "-adobe-helvetica-bold-r-normal--12*"
# IconManagerFont  "-b&h-lucida-medium-r-normal-sans-12-120-75-75-p-71-iso8859-1"
# IconFont	 "fixed"
# ResizeFont       "-adobe-helvetica-bold-r-normal--10*"
# WorkSpaceFont	 "fixed"

############## 
############## 
############## 
############## 

# TitleFont	"-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"
# ResizeFont	"-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"
# MenuFont	"-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"
# IconFont	"-adobe-helvetica-bold-r-normal--*-100-*-*-*-*-*-*"
# IconManagerFont	"-adobe-helvetica-bold-r-normal--*-100-*-*-*"


# x11 position 
UsePPosition "on"    


### Move current window to another workspace.
Function "toone"
{ 
    f.addtoworkspace "One"  
    f.removefromworkspace "Two"
    f.removefromworkspace "Three"
    f.removefromworkspace "Four"
    f.removefromworkspace "5"
    f.removefromworkspace "6"
    f.removefromworkspace "7"
    f.removefromworkspace "8"
    f.removefromworkspace "9"
}

Function "totwo"
{ 
    f.removefromworkspace "One"
    f.addtoworkspace "Two"  
    f.removefromworkspace "Three"
    f.removefromworkspace "Four"
    f.removefromworkspace "5"
    f.removefromworkspace "6"
    f.removefromworkspace "7"
    f.removefromworkspace "8"
    f.removefromworkspace "9"
}


Function "tothree"
{ 
    f.removefromworkspace "One"
    f.removefromworkspace "Two"
    f.addtoworkspace "Three"  
    f.removefromworkspace "Four"
    f.removefromworkspace "5"
    f.removefromworkspace "6"
    f.removefromworkspace "7"
    f.removefromworkspace "8"
    f.removefromworkspace "9"
}

Function "tofour"
{ 
    f.removefromworkspace "One"
    f.removefromworkspace "Two"
    f.removefromworkspace "Three"
    f.addtoworkspace "Four"  
    f.removefromworkspace "4"
    f.removefromworkspace "5"
    f.removefromworkspace "6"
    f.removefromworkspace "7"
    f.removefromworkspace "8"
    f.removefromworkspace "9"
}





### Send windows to other workspaces.
# "o" = m4 : all : f.function "toone"
# "p" = m4 : all : f.function "totwo"
# "u" =	        m4	: window	: f.restart 


BorderWidth 2
BorderResizeCursors

# exp.
StayUpMenus   

# BIG BORDERS
UseThreeDBorders               # More glanceable
BorderWidth 6
ThreeDBorderWidth 6
TitleButtonBorderWidth 2 # Put space between titlebar buttons
Button1 =	: f	: f.resize
Attached Thumbnails
Click image for larger version

Name:	1701647612-1-desktop.jpg
Views:	31
Size:	209.8 KB
ID:	42162  
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Compiling CTWM with xmkmf ? Xeratul Programming 23 05-14-2017 02:10 AM
LXer: Microsoft's Charm Offensive Against GNU/Linux Uses the Same Media Strategy Donald Trump Uses LXer Syndicated Linux News 0 04-04-2016 06:13 AM
getting updates today is IMPOSSIBLE (today)!! mtdew3q SUSE / openSUSE 3 10-17-2007 12:53 AM
xinetd uses service --> slackware uses ??? kntgtaid Slackware 1 06-06-2004 02:10 PM
Finding Module Dependencies.....(still loading....Still loading....still loading) Aeudian Linux - Newbie 1 07-28-2003 02:27 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Desktop

All times are GMT -5. The time now is 06:36 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration