@ -5,8 +5,8 @@  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  font :  see  http : / / freedesktop . org / software / fontconfig / fontconfig - user . html   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					char  font [ ]   =  " Liberation Mono:pixelsize=12:antialias=true:autohint=true " ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					int  borderpx  =  2 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  char  * font   =  " Liberation Mono:pixelsize=12:antialias=true:autohint=true " ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  int  borderpx  =  2 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/*  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  What  program  is  execed  by  st  depends  of  these  precedence  rules :   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -16,54 +16,54 @@ int borderpx = 2;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  4 :  value  of  shell  in  / etc / passwd   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  5 :  value  of  shell  in  config . h   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  char  shell [ ]   =  " /bin/sh " ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  char  * utmp  =  NULL ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  char  stty_args [ ]   =  " stty raw pass8 nl -echo -iexten -cstopb 38400 " ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					char  * shell   =  " /bin/sh " ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					char  * utmp  =  NULL ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					char  * stty_args   =  " stty raw pass8 nl -echo -iexten -cstopb 38400 " ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/* identification sequence returned in DA and DECID */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  char  vtiden [ ]   =  " \033 [?6c " ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					char  * vtiden   =  " \033 [?6c " ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/* Kerning / character bounding-box multipliers */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					float  cwscale  =  1.0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					float  chscale  =  1.0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  float  cwscale  =  1.0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  float  chscale  =  1.0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/*  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  word  delimiter  string   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  More  advanced  example :  "  `' \" ()[]{} "   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  char  worddelimiters [ ]   =  "   " ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					char  * worddelimiters   =  "   " ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/* selection timeouts (in milliseconds) */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					unsigned  int  doubleclicktimeout  =  300 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					unsigned  int  tripleclicktimeout  =  600 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  unsigned  int  doubleclicktimeout  =  300 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  unsigned  int  tripleclicktimeout  =  600 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/* alt screens */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					int  allowaltscreen  =  1 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/* frames per second st should at maximum draw to the screen */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					unsigned  int  xfps  =  120 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					unsigned  int  actionfps  =  30 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  unsigned  int  xfps  =  120 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  unsigned  int  actionfps  =  30 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/*  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  blinking  timeout  ( set  to  0  to  disable  blinking )  for  the  terminal  blinking   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  attribute .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					unsigned  int  blinktimeout  =  800 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  unsigned  int  blinktimeout  =  800 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/*  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  thickness  of  underline  and  bar  cursors   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					unsigned  int  cursorthickness  =  2 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  unsigned  int  cursorthickness  =  2 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/*  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  bell  volume .  It  must  be  a  value  between  - 100  and  100.  Use  0  for  disabling   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  it   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					int  bellvolume  =  0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  int  bellvolume  =  0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/* default TERM value */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					char  termname [ ]   =  " st-256color " ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					char  * termname   =  " st-256color " ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/*  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  spaces  per  tab   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -80,10 +80,10 @@ char termname[] = "st-256color";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 * 	stty  tabs   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  unsigned  int  tabspaces  =  8 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					unsigned  int  tabspaces  =  8 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/* Terminal colors (16 first used in escape sequence) */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					const  char  * colorname [ ]  =  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  const  char  * colorname [ ]  =  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						/* 8 normal colors */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						" black " ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						" red3 " ,   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -118,8 +118,8 @@ const char *colorname[] = {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					unsigned  int  defaultfg  =  7 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					unsigned  int  defaultbg  =  0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					unsigned  int  defaultcs  =  256 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					unsigned  int  defaultrcs  =  257 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  unsigned  int  defaultcs  =  256 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  unsigned  int  defaultrcs  =  257 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/*  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  Default  shape  of  cursor   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -128,33 +128,33 @@ unsigned int defaultrcs = 257;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  6 :  Bar  ( " | " )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  7 :  Snowman  ( " ☃ " )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					unsigned  int  cursorshape  =  2 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  unsigned  int  cursorshape  =  2 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/*  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  Default  columns  and  rows  numbers   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					unsigned  int  cols  =  80 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					unsigned  int  rows  =  24 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  unsigned  int  cols  =  80 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  unsigned  int  rows  =  24 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/*  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  Default  colour  and  shape  of  the  mouse  cursor   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					unsigned  int  mouseshape  =  XC_xterm ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					unsigned  int  mousefg  =  7 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					unsigned  int  mousebg  =  0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  unsigned  int  mouseshape  =  XC_xterm ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  unsigned  int  mousefg  =  7 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  unsigned  int  mousebg  =  0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/*  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  Color  used  to  display  font  attributes  when  fontconfig  selected  a  font  which   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  doesn ' t  match  the  ones  requested .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					unsigned  int  defaultattr  =  11 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  unsigned  int  defaultattr  =  11 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/*  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  Internal  mouse  shortcuts .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  Beware  that  overloading  Button1  will  disable  the  selection .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					MouseShortcut  mshortcuts [ ]  =  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  MouseShortcut  mshortcuts [ ]  =  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						/* button               mask            string */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  Button4 ,               XK_ANY_MOD ,      " \031 "  } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  Button5 ,               XK_ANY_MOD ,      " \005 "  } ,   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -164,7 +164,7 @@ MouseShortcut mshortcuts[] = {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# define MODKEY Mod1Mask  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					# define TERMMOD (ControlMask|ShiftMask)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					Shortcut  shortcuts [ ]  =  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  Shortcut  shortcuts [ ]  =  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						/* mask                 keysym          function        argument */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_ANY_MOD ,            XK_Break ,        sendbreak ,       { . i  =   0 }  } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  ControlMask ,           XK_Print ,        toggleprinter ,   { . i  =   0 }  } ,   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -209,26 +209,26 @@ Shortcut shortcuts[] = {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  If  you  want  keys  other  than  the  X11  function  keys  ( 0xFD00  -  0xFFFF )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  to  be  mapped  below ,  add  them  to  this  array .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					KeySym  mappedkeys [ ]  =  {  - 1  } ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  KeySym  mappedkeys [ ]  =  {  - 1  } ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/*  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  State  bits  to  ignore  when  matching  key  or  button  events .   By  default ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  numlock  ( Mod2Mask )  and  keyboard  layout  ( XK_SWITCH_MOD )  are  ignored .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					uint  ignoremod  =  Mod2Mask | XK_SWITCH_MOD ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  uint  ignoremod  =  Mod2Mask | XK_SWITCH_MOD ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/*  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  Override  mouse - select  while  mask  is  active  ( when  MODE_MOUSE  is  set ) .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  Note  that  if  you  want  to  use  ShiftMask  with  selmasks ,  set  this  to  an  other   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  modifier ,  set  to  0  to  not  use  it .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					uint  forceselmod  =  ShiftMask ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  uint  forceselmod  =  ShiftMask ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					/*  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  This  is  the  huge  key  array  which  defines  all  compatibility  to  the  Linux   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  world .  Please  decide  about  changes  wisely .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					Key  key [ ]  =  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  Key  key [ ]  =  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						/* keysym           mask            string      appkey appcursor crlf */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_KP_Home ,        ShiftMask ,       " \033 [2J " ,        0 ,    - 1 ,     0 } ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						{  XK_KP_Home ,        ShiftMask ,       " \033 [1;2H " ,      0 ,    + 1 ,     0 } ,   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -451,7 +451,7 @@ Key key[] = {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  ButtonRelease  and  MotionNotify .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  If  no  match  is  found ,  regular  selection  is  used .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					uint  selmasks [ ]  =  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  uint  selmasks [ ]  =  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						[ SEL_RECTANGULAR ]  =  Mod1Mask ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					} ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -459,8 +459,7 @@ uint selmasks[] = {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  Printable  characters  in  ASCII ,  used  to  estimate  the  advance  width   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 *  of  single  wide  characters .   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					 */   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					char  ascii_printable [ ]  =  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					static  char  ascii_printable [ ]  =  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						"  ! \" #$%&'()*+,-./0123456789:;<=>? "   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						" @ABCDEFGHIJKLMNOPQRSTUVWXYZ[ \\ ]^_ "   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						" `abcdefghijklmnopqrstuvwxyz{|}~ " ;