20#include "ctwm_atoms.h"
24#include "functions_defs.h"
60#define kw0_NoDefaults 1
61#define kw0_AutoRelativeResize 2
62#define kw0_ForceIcons 3
63#define kw0_NoIconManagers 4
64#define kw0_InterpolateMenuColors 6
66#define kw0_SortIconManager 8
67#define kw0_NoGrabServer 9
68#define kw0_NoMenuShadows 10
69#define kw0_NoRaiseOnMove 11
70#define kw0_NoRaiseOnResize 12
71#define kw0_NoRaiseOnDeiconify 13
72#define kw0_DontMoveOff 14
73#define kw0_NoBackingStore 15
74#define kw0_NoSaveUnders 16
75#define kw0_RestartPreviousState 17
76#define kw0_ClientBorderWidth 18
77#define kw0_NoTitleFocus 19
78#define kw0_DecorateTransients 21
79#define kw0_ShowIconManager 22
80#define kw0_NoCaseSensitive 23
81#define kw0_NoRaiseOnWarp 24
82#define kw0_WarpUnmapped 25
83#define kw0_ShowWorkspaceManager 27
84#define kw0_StartInMapState 28
85#define kw0_NoShowOccupyAll 29
86#define kw0_AutoOccupy 30
87#define kw0_TransientHasOccupation 31
88#define kw0_DontPaintRootWindow 32
89#define kw0_Use3DMenus 33
90#define kw0_Use3DTitles 34
91#define kw0_Use3DIconManagers 35
92#define kw0_Use3DBorders 36
93#define kw0_SunkFocusWindowTitle 37
94#define kw0_BeNiceToColormap 38
95#define kw0_WarpRingOnScreen 40
96#define kw0_NoIconManagerFocus 41
97#define kw0_StayUpMenus 42
98#define kw0_ClickToFocus 43
99#define kw0_BorderResizeCursors 44
100#define kw0_ReallyMoveInWorkspaceManager 45
101#define kw0_ShowWinWhenMovingInWmgr 46
102#define kw0_Use3DWMap 47
103#define kw0_ReverseCurrentWorkspace 48
104#define kw0_DontWarpCursorInWMap 49
105#define kw0_CenterFeedbackWindow 50
106#define kw0_WarpToDefaultMenuEntry 51
107#define kw0_ShrinkIconTitles 52
108#define kw0_AutoRaiseIcons 53
110#define kw0_UseSunkTitlePixmap 55
111#define kw0_ShortAllWindowsMenus 56
112#define kw0_RaiseWhenAutoUnSqueeze 57
113#define kw0_RaiseOnClick 58
114#define kw0_IgnoreLockModifier 59
115#define kw0_AutoFocusToTransients 60
116#define kw0_PackNewWindows 61
117#define kw0_IgnoreCaseInMenuSelection 62
118#define kw0_SloppyFocus 63
119#define kw0_NoImagesInWorkSpaceManager 64
120#define kw0_NoWarpToMenuTitle 65
121#define kw0_SaveWorkspaceFocus 66
122#define kw0_RaiseOnWarp 67
123#define kw0_DontShowWelcomeWindow 68
124#define kw0_AutoPriority 69
125#define kw0_DontToggleWorkspacemanagerState 70
126#define kw0_BackingStore 71
127#define kw0_StartInButtonState 72
128#define kw0_NoSortIconManager 73
129#define kw0_NoRestartPreviousState 74
130#define kw0_NoDecorateTransients 75
131#define kw0_GrabServer 76
132#define kw0_DontNameDecorations 77
133#define kw0_StrictWinNameEncoding 78
135#define kws_UsePPosition 1
136#define kws_IconFont 2
137#define kws_ResizeFont 3
138#define kws_MenuFont 4
139#define kws_TitleFont 5
140#define kws_IconManagerFont 6
141#define kws_UnknownIcon 7
142#define kws_IconDirectory 8
143#define kws_MaxWindowSize 9
144#define kws_PixmapDirectory 10
146#define kws_IconJustification 12
147#define kws_TitleJustification 13
148#define kws_IconRegionJustification 14
149#define kws_IconRegionAlignement 15
150#define kws_SoundHost 16
151#define kws_WMgrButtonStyle 17
152#define kws_WorkSpaceFont 18
153#define kws_IconifyStyle 19
154#define kws_IconSize 20
155#define kws_RplaySoundHost 21
157#define kwss_RandomPlacement 1
159#define kwn_ConstrainedMoveTime 1
160#define kwn_MoveDelta 2
161#define kwn_XorValue 3
162#define kwn_FramePadding 4
163#define kwn_TitlePadding 5
164#define kwn_ButtonIndent 6
165#define kwn_BorderWidth 7
166#define kwn_IconBorderWidth 8
167#define kwn_TitleButtonBorderWidth 9
168#define kwn_RaiseDelay 10
169#define kwn_TransientOnTop 11
170#define kwn_OpaqueMoveThreshold 12
171#define kwn_OpaqueResizeThreshold 13
172#define kwn_WMgrVertButtonIndent 14
173#define kwn_WMgrHorizButtonIndent 15
174#define kwn_ClearShadowContrast 16
175#define kwn_DarkShadowContrast 17
176#define kwn_WMgrButtonShadowDepth 18
177#define kwn_MaxIconTitleWidth 19
178#define kwn_AnimationSpeed 20
179#define kwn_ThreeDBorderWidth 21
180#define kwn_MoveOffResistance 22
181#define kwn_BorderShadowDepth 23
182#define kwn_TitleShadowDepth 24
183#define kwn_TitleButtonShadowDepth 25
184#define kwn_MenuShadowDepth 26
185#define kwn_IconManagerShadowDepth 27
186#define kwn_MovePackResistance 28
187#define kwn_XMoveGrid 29
188#define kwn_YMoveGrid 30
189#define kwn_OpenWindowTimeout 31
190#define kwn_RaiseOnClickButton 32
192#define kwn_BorderTop 33
193#define kwn_BorderBottom 34
194#define kwn_BorderLeft 35
195#define kwn_BorderRight 36
197#define kwcl_BorderColor 1
198#define kwcl_IconManagerHighlight 2
199#define kwcl_BorderTileForeground 3
200#define kwcl_BorderTileBackground 4
201#define kwcl_TitleForeground 5
202#define kwcl_TitleBackground 6
203#define kwcl_IconForeground 7
204#define kwcl_IconBackground 8
205#define kwcl_IconBorderColor 9
206#define kwcl_IconManagerForeground 10
207#define kwcl_IconManagerBackground 11
208#define kwcl_MapWindowBackground 12
209#define kwcl_MapWindowForeground 13
211#define kwc_DefaultForeground 1
212#define kwc_DefaultBackground 2
213#define kwc_MenuForeground 3
214#define kwc_MenuBackground 4
215#define kwc_MenuTitleForeground 5
216#define kwc_MenuTitleBackground 6
217#define kwc_MenuShadowColor 7
228 {
"alter",
ALTER, 0 },
263 {
"color",
COLOR, 0 },
273 {
"destroy",
KILL, 0 },
289 {
"frame",
FRAME, 0 },
319 {
"icons",
ICONS, 0 },
418 {
"shift",
SHIFT, 0 },
437 {
"title",
TITLE, 0 },
462 {
"wait",
WAITC, 0 },
499#include "functions_parse_table.h"
520 if(
s ==
NULL || strlen(
s) < 1) {
529 if(
s[0] ==
'f' &&
s[1] ==
'.') {
585 Scr->NoDefaults =
true;
589 Scr->AutoRelativeResize =
true;
594 Scr->ForceIcon =
true;
599 Scr->NoIconManagers =
true;
604 Scr->InterpolateMenuColors =
true;
610 Scr->SortIconMgr =
true;
616 Scr->SortIconMgr =
false;
621 Scr->NoGrabServer =
false;
625 Scr->NoGrabServer =
true;
636 Scr->NoRaiseMove =
true;
642 Scr->NoRaiseResize =
true;
648 Scr->NoRaiseDeicon =
true;
653 Scr->DontMoveOff =
true;
657 Scr->BackingStore =
false;
661 Scr->BackingStore =
true;
665 Scr->SaveUnder =
false;
679 Scr->ClientBorderWidth =
true;
684 Scr->TitleFocus =
false;
688 Scr->DecorateTransients =
true;
692 Scr->DecorateTransients =
false;
696 Scr->ShowIconManager =
true;
700 Scr->ShowWorkspaceManager =
true;
712 Scr->workSpaceMgr.noshowoccupyall =
true;
716 Scr->AutoOccupy =
true;
720 Scr->AutoPriority =
true;
724 Scr->TransientHasOccupation =
true;
728 Scr->DontPaintRootWindow =
true;
732 Scr->UseSunkTitlePixmap =
true;
736 Scr->use3Dborders =
true;
740 Scr->use3Diconmanagers =
true;
744 Scr->use3Dmenus =
true;
748 Scr->use3Dtitles =
true;
752 Scr->use3Dwmap =
true;
756 Scr->SunkFocusWindowTitle =
true;
760 Scr->BeNiceToColormap =
true;
764 Scr->BorderCursors =
true;
768 Scr->CaseSensitive =
false;
772 Scr->RaiseOnWarp =
false;
776 Scr->RaiseOnWarp =
true;
780 Scr->WarpUnmapped =
true;
784 Scr->WarpRingAnyWhere =
false;
788 Scr->IconManagerFocus =
false;
792 Scr->StayUpMenus =
true;
796 Scr->ClickToFocus =
true;
800 Scr->ReallyMoveInWorkspaceManager =
true;
804 Scr->ShowWinWhenMovingInWmgr =
true;
808 Scr->ReverseCurrentWorkspace =
true;
812 Scr->DontWarpCursorInWMap =
true;
816 Scr->CenterFeedbackWindow =
true;
820 Scr->WarpToDefaultMenuEntry =
true;
824 Scr->ShrinkIconTitles =
true;
828 Scr->AutoRaiseIcons =
true;
833 Scr->AutoFocusToTransients =
true;
837 Scr->ShortAllWindowsMenus =
true;
841 Scr->RaiseWhenAutoUnSqueeze =
true;
845 Scr->RaiseOnClick =
true;
853 Scr->PackNewWindows =
true;
857 Scr->IgnoreCaseInMenuSelection =
true;
861 Scr->SloppyFocus =
true;
865 Scr->SaveWorkspaceFocus =
true;
869 Scr->NoImagesInWorkSpaceManager =
true;
873 Scr->NoWarpToMenuTitle =
true;
877 Scr->ShowWelcomeWindow =
false;
881 Scr->DontToggleWorkspaceManagerState =
true;
885 Scr->NameDecorations =
false;
889 Scr->StrictWinNameEncoding =
true;
912 "ignoring invalid RandomPlacement argument 1 \"%s\"\n",
916 Scr->RandomPlacement =
rp;
932 fprintf(
stderr,
"DEBUG:: Mask = %x, Width = %d, Height = %d\n",
940 "ignoring invalid RandomPlacement displacement \"%s\"\n",
s2);
943 Scr->RandomDisplacementX =
gx;
944 Scr->RandomDisplacementY =
gy;
964 "ignoring invalid UsePPosition argument \"%s\"\n",
s);
973 if(!
Scr->HaveFonts) {
974 Scr->IconFont.basename =
s;
979 if(!
Scr->HaveFonts) {
980 Scr->SizeFont.basename =
s;
985 if(!
Scr->HaveFonts) {
986 Scr->MenuFont.basename =
s;
991 if(!
Scr->HaveFonts) {
992 Scr->workSpaceMgr.windowFont.basename =
s;
997 if(!
Scr->HaveFonts) {
998 Scr->TitleBarFont.basename =
s;
1003 if(!
Scr->HaveFonts) {
1004 Scr->IconManagerFont.basename =
s;
1009 if(
Scr->FirstTime) {
1015 if(
Scr->FirstTime) {
1021 if(
Scr->FirstTime) {
1029 unsigned int gw,
gh;
1038 if(
gw == 0 ||
gh == 0) {
1043 Scr->MaxWindowWidth =
gw;
1044 Scr->MaxWindowHeight =
gh;
1054 "ignoring invalid IconJustification argument \"%s\"\n",
s);
1057 Scr->IconJustification =
just;
1067 "ignoring invalid IconRegionJustification argument \"%s\"\n",
s);
1070 Scr->IconRegionJustification =
just;
1080 "ignoring invalid IconRegionAlignement argument \"%s\"\n",
s);
1083 Scr->IconRegionAlignement =
just;
1094 "ignoring invalid TitleJustification argument \"%s\"\n",
s);
1097 Scr->TitleJustification =
just;
1103 if(
Scr->FirstTime) {
1108 "use RplaySoundHost instead.\n");
1114 fprintf(
stderr,
"Ignoring %sSoundHost; rplay not ronfigured.\n",
1126 "ignoring invalid WMgrButtonStyle argument \"%s\"\n",
s);
1129 Scr->workSpaceMgr.buttonStyle =
style;
1139 fprintf(
stderr,
"ignoring invalid IconifyStyle argument \"%s\"\n",
s);
1149 if(
sscanf(
s,
"%dx%d", &
Scr->PreferredIconWidth,
1150 &
Scr->PreferredIconHeight) == 2) {
1153 else if(
sscanf(
s,
"%d", &
Scr->PreferredIconWidth) == 1) {
1154 Scr->PreferredIconHeight =
Scr->PreferredIconWidth;
1157 Scr->PreferredIconHeight =
Scr->PreferredIconWidth = 48;
1175 Scr->MoveDelta = num;
1179 Scr->MoveOffResistance = num;
1186 Scr->MovePackResistance = num;
1196 Scr->XMoveGrid = num;
1206 Scr->YMoveGrid = num;
1210 if(
Scr->FirstTime) {
1211 Scr->XORvalue = num;
1216 if(
Scr->FirstTime) {
1217 Scr->FramePadding = num;
1222 if(
Scr->FirstTime) {
1223 Scr->TitlePadding = num;
1228 if(
Scr->FirstTime) {
1229 Scr->ButtonIndent = num;
1234 if(
Scr->FirstTime) {
1235 Scr->ThreeDBorderWidth = num;
1240 if(
Scr->FirstTime) {
1241 Scr->BorderWidth = num;
1246 if(
Scr->FirstTime) {
1247 Scr->IconBorderWidth = num;
1252 if(
Scr->FirstTime) {
1253 Scr->TBInfo.border = num;
1262 if(
Scr->FirstTime) {
1263 Scr->TransientOnTop = num;
1268 if(
Scr->FirstTime) {
1269 Scr->OpaqueMoveThreshold = num;
1274 if(
Scr->FirstTime) {
1275 Scr->OpaqueResizeThreshold = num;
1280 if(
Scr->FirstTime) {
1281 Scr->WMgrVertButtonIndent = num;
1283 if(
Scr->WMgrVertButtonIndent < 0) {
1284 Scr->WMgrVertButtonIndent = 0;
1286 Scr->workSpaceMgr.vspace =
Scr->WMgrVertButtonIndent;
1287 Scr->workSpaceMgr.occupyWindow->vspace =
Scr->WMgrVertButtonIndent;
1291 if(
Scr->FirstTime) {
1292 Scr->WMgrHorizButtonIndent = num;
1294 if(
Scr->WMgrHorizButtonIndent < 0) {
1295 Scr->WMgrHorizButtonIndent = 0;
1297 Scr->workSpaceMgr.hspace =
Scr->WMgrHorizButtonIndent;
1298 Scr->workSpaceMgr.occupyWindow->hspace =
Scr->WMgrHorizButtonIndent;
1302 if(
Scr->FirstTime) {
1303 Scr->WMgrButtonShadowDepth = num;
1305 if(
Scr->WMgrButtonShadowDepth < 1) {
1306 Scr->WMgrButtonShadowDepth = 1;
1311 if(
Scr->FirstTime) {
1312 Scr->MaxIconTitleWidth = num;
1317 if(
Scr->FirstTime) {
1318 Scr->ClearShadowContrast = num;
1320 if(
Scr->ClearShadowContrast < 0) {
1321 Scr->ClearShadowContrast = 0;
1323 if(
Scr->ClearShadowContrast > 100) {
1324 Scr->ClearShadowContrast = 100;
1329 if(
Scr->FirstTime) {
1330 Scr->DarkShadowContrast = num;
1332 if(
Scr->DarkShadowContrast < 0) {
1333 Scr->DarkShadowContrast = 0;
1335 if(
Scr->DarkShadowContrast > 100) {
1336 Scr->DarkShadowContrast = 100;
1348 if(
Scr->FirstTime) {
1349 Scr->BorderShadowDepth = num;
1351 if(
Scr->BorderShadowDepth < 0) {
1352 Scr->BorderShadowDepth = 2;
1357 if(
Scr->FirstTime) {
1358 Scr->BorderLeft = num;
1360 if(
Scr->BorderLeft < 0) {
1361 Scr->BorderLeft = 0;
1366 if(
Scr->FirstTime) {
1367 Scr->BorderRight = num;
1369 if(
Scr->BorderRight < 0) {
1370 Scr->BorderRight = 0;
1375 if(
Scr->FirstTime) {
1376 Scr->BorderTop = num;
1378 if(
Scr->BorderTop < 0) {
1384 if(
Scr->FirstTime) {
1385 Scr->BorderBottom = num;
1387 if(
Scr->BorderBottom < 0) {
1388 Scr->BorderBottom = 0;
1393 if(
Scr->FirstTime) {
1394 Scr->TitleButtonShadowDepth = num;
1396 if(
Scr->TitleButtonShadowDepth < 0) {
1397 Scr->TitleButtonShadowDepth = 2;
1402 if(
Scr->FirstTime) {
1403 Scr->TitleShadowDepth = num;
1405 if(
Scr->TitleShadowDepth < 0) {
1406 Scr->TitleShadowDepth = 2;
1411 if(
Scr->FirstTime) {
1412 Scr->IconManagerShadowDepth = num;
1414 if(
Scr->IconManagerShadowDepth < 0) {
1415 Scr->IconManagerShadowDepth = 2;
1420 if(
Scr->FirstTime) {
1421 Scr->MenuShadowDepth = num;
1423 if(
Scr->MenuShadowDepth < 0) {
1424 Scr->MenuShadowDepth = 2;
1429 if(
Scr->FirstTime) {
1430 Scr->OpenWindowTimeout = num;
1432 if(
Scr->OpenWindowTimeout < 0) {
1433 Scr->OpenWindowTimeout = 0;
1438 if(
Scr->FirstTime) {
1439 Scr->RaiseOnClickButton = num;
1441 if(
Scr->RaiseOnClickButton < 1) {
1442 Scr->RaiseOnClickButton = 1;
1461 return &
Scr->BorderColorL;
1465 return &
Scr->IconManagerHighlightL;
1469 return &
Scr->BorderTileForegroundL;
1473 return &
Scr->BorderTileBackgroundL;
1477 return &
Scr->TitleForegroundL;
1481 return &
Scr->TitleBackgroundL;
1485 return &
Scr->IconForegroundL;
1489 return &
Scr->IconBackgroundL;
1493 return &
Scr->IconBorderColorL;
1497 return &
Scr->IconManagerFL;
1501 return &
Scr->IconManagerBL;
1505 Scr->workSpaceMgr.windowcpgiven =
true;
1506 return &
Scr->workSpaceMgr.windowBackgroundL;
1510 Scr->workSpaceMgr.windowcpgiven =
true;
1511 return &
Scr->workSpaceMgr.windowForegroundL;
1574 for(
int i = 0; i <
nPixels; i++) {
1585 (
unsigned char *)&
pixel, 1);
1727 if(strlen(
s) == 0) {
1731#define CHK(str, ret) if(strcasecmp(s, str) == 0) { return RP_##ret; }
1751 if(strlen(
s) == 0) {
1755#define CHK(str, ret) if(strcasecmp(s, str) == 0) { return IRJ_##ret; }
1777 if(strlen(
s) == 0) {
1781#define CHK(str, ret) if(strcasecmp(s, str) == 0) { return TJ_##ret; }
1806 if(strlen(
s) == 0) {
1810#define CHK(str, ret) if(strcasecmp(s, str) == 0) { return IRA_##ret; }
1825 if(strlen(
s) == 0) {
1829#define CHK(str, ret) if(strcasecmp(s, str) == 0) { return PPOS_##ret; }
1843 if(
s ==
NULL || strlen(
s) == 0) {
1847#define CHK(str, ret) if(strcasecmp(s, str) == 0) { return STYLE_##ret; }
1861 if(
s ==
NULL || strlen(
s) == 0) {
1865#define CHK(str, ret) if(strcasecmp(s, str) == 0) { return ICONIFY_##ret; }
1885 int absnum = (num < 0 ? -num : num);
1889 fprintf(
stderr,
"negative SqueezeTitle denominator %d\n", denom);
1893 if(
absnum > denom && denom != 0) {
1895 fprintf(
stderr,
"SqueezeTitle fraction %d/%d outside window\n",
1907 if(denom == 0 && num == 0) {
1917 fprintf(
stderr,
"deprecated SqueezeTitle faction 0/0, assuming %d/%d\n",
1927 fprintf(
stderr,
"unable to allocate %lu bytes for squeeze info\n",
1932 sinfo->justify = justify;
1934 sinfo->denom = denom;
1949 fprintf(
stderr,
"EWMH not enabled, EWMHIgnore { } ignored.\n");
1964 if(strcasecmp(s, (x)) == 0) { \
1965 AddToList(&Scr->EWMHIgnore, (x), ""); \
1968 HANDLE(
"STATE_MAXIMIZED_VERT");
1969 HANDLE(
"STATE_MAXIMIZED_HORZ");
1970 HANDLE(
"STATE_FULLSCREEN");
1997 if(strcasecmp(s, (x)) == 0) { \
1998 AddToList(&Scr->MWMIgnore, (x), ""); \
2037 fprintf(
stderr,
"Failed allocating RAreaList for monitors.\n");
2062 unsigned int width, height;
2143 fprintf(
stderr,
"no monitors specified, ignoring MonitorLayout\n");
void SetAnimationSpeed(int speed)
bool RestartPreviousState
Image * GetImage(const char *name, ColorPair cp)
void AddToList(name_list **list_head, const char *name, void *ptr)
void twmrc_error_prefix(void)
bool do_single_keyword(int keyword)
#define kw0_RestartPreviousState
bool do_string_string_keyword(int keyword, const char *s1, const char *s2)
#define kw0_NoRaiseOnMove
#define kw0_NoMenuShadows
void assign_var_savecolor(void)
name_list ** do_colorlist_keyword(int keyword, int colormode, char *s)
static int ParseButtonStyle(const char *s)
#define kw0_NoRaiseOnWarp
#define kw0_NoSortIconManager
#define kwn_TransientOnTop
#define kws_IconRegionAlignement
#define kwcl_IconBackground
#define kw0_PackNewWindows
#define kw0_DontShowWelcomeWindow
#define kw0_AutoRaiseIcons
#define kwcl_MapWindowBackground
#define kw0_RaiseWhenAutoUnSqueeze
#define kwn_OpaqueResizeThreshold
void init_layout_override(void)
Allocate space for our monitor override list.
#define kw0_WarpRingOnScreen
#define kw0_CenterFeedbackWindow
#define kws_IconManagerFont
#define kw0_BorderResizeCursors
#define kwcl_IconBorderColor
#define kw0_ShrinkIconTitles
#define kw0_AutoFocusToTransients
void do_squeeze_entry(name_list **slist, const char *name, SIJust justify, int num, int denom)
#define kw0_NoIconManagers
#define kw0_ShowIconManager
#define kwn_ThreeDBorderWidth
#define kws_WMgrButtonStyle
#define kw0_ReverseCurrentWorkspace
#define kw0_DontPaintRootWindow
void chk_keytable_order(void)
#define kwn_MenuShadowDepth
#define kws_MaxWindowSize
bool do_string_keyword(int keyword, char *s)
void do_var_savecolor(int key)
#define kw0_UseSunkTitlePixmap
bool do_color_keyword(int keyword, int colormode, char *s)
#define kwss_RandomPlacement
#define kw0_NoShowOccupyAll
#define kw0_ShortAllWindowsMenus
#define kwn_OpaqueMoveThreshold
int ParseIRJustification(const char *s)
#define kw0_NoCaseSensitive
#define kwn_TitleButtonShadowDepth
#define kw0_BeNiceToColormap
#define kwn_ConstrainedMoveTime
#define kw0_StartInButtonState
#define kwcl_TitleBackground
struct _TwmKeyword TwmKeyword
#define kw0_ShowWinWhenMovingInWmgr
#define kwc_DefaultBackground
#define kws_IconJustification
void add_ewmh_ignore(char *s)
#define kwn_TitleButtonBorderWidth
static int ParseIconifyStyle(const char *s)
static void put_pixel_on_root(Pixel pixel)
#define kw0_TransientHasOccupation
#define kwc_MenuShadowColor
#define kw0_ShowWorkspaceManager
#define kw0_ClientBorderWidth
static const TwmKeyword keytable[]
#define kwn_WMgrHorizButtonIndent
void proc_layout_override(void)
Finalize the override layout and store it up globally.
static const size_t numkeywords
static void add_cnode(int kwcl, int cmode, char *colname)
Add a SaveColor{} entry to our stash.
#define kwcl_BorderTileForeground
int ParseAlignement(const char *s)
#define kwn_WMgrButtonShadowDepth
#define kw0_StartInMapState
#define kwn_DarkShadowContrast
#define kw0_DontToggleWorkspacemanagerState
#define kwcl_BorderTileBackground
#define kwc_MenuTitleForeground
#define kw0_IgnoreLockModifier
#define kw0_NoDecorateTransients
#define kw0_NoRestartPreviousState
#define kwn_IconBorderWidth
#define kw0_NoBackingStore
#define kw0_NoRaiseOnDeiconify
bool do_number_keyword(int keyword, int num)
#define kwcl_IconManagerBackground
#define kw0_Use3DIconManagers
#define kw0_SaveWorkspaceFocus
#define kwn_ClearShadowContrast
#define kwn_RaiseOnClickButton
#define kwn_IconManagerShadowDepth
#define kws_WorkSpaceFont
#define kw0_DontNameDecorations
#define kwn_BorderShadowDepth
static RAreaList * override_monitors
int ParseTitleJustification(const char *s)
static int ParseUsePPosition(const char *s)
#define kwc_DefaultForeground
#define kwcl_TitleForeground
#define kws_IconRegionJustification
void do_string_savecolor(int colormode, char *s)
#define kwn_WMgrVertButtonIndent
#define kwn_OpenWindowTimeout
#define kw0_NoIconManagerFocus
#define kw0_ReallyMoveInWorkspaceManager
#define kwcl_IconManagerForeground
#define kw0_NoWarpToMenuTitle
int parse_keyword(const char *s, int *nump)
#define kw0_NoImagesInWorkSpaceManager
#define kwcl_IconManagerHighlight
static int ParseRandomPlacement(const char *s)
#define kw0_DecorateTransients
void add_layout_override_entry(const char *s)
Add an entry to our monitor list.
void proc_mwm_ignore(void)
#define kw0_SunkFocusWindowTitle
#define kw0_AutoRelativeResize
#define kwc_MenuTitleBackground
#define kw0_StrictWinNameEncoding
#define kw0_NoRaiseOnResize
#define kwc_MenuForeground
#define kwn_MovePackResistance
#define kw0_WarpToDefaultMenuEntry
static struct @1 override_monitors_names
#define kwn_MaxIconTitleWidth
#define kwc_MenuBackground
#define kwn_MoveOffResistance
#define kwcl_MapWindowForeground
#define kw0_IgnoreCaseInMenuSelection
#define kws_RplaySoundHost
void add_mwm_ignore(char *s)
#define kwn_AnimationSpeed
#define kws_PixmapDirectory
#define kw0_InterpolateMenuColors
#define kw0_DontWarpCursorInWMap
static int kt_compare(const void *lhs, const void *rhs)
void proc_ewmh_ignore(void)
#define kws_IconDirectory
#define kws_TitleJustification
#define kwn_TitleShadowDepth
#define kwcl_IconForeground
#define kw0_SortIconManager
RArea * RAreaNewStatic(int x, int y, int width, int height)
Return a pointer to a static newly constructed RArea.
RAreaList * RAreaListNew(int cap,...)
Create an RAreaList from a set of RArea's.
void RAreaListFree(RAreaList *self)
Clean up and free an RAreaList.
void RAreaListAdd(RAreaList *self, const RArea *area)
Add an RArea onto an RAreaList.
static int RAreaListLen(const RAreaList *self)
How many RArea's are in the list?
void RLayoutFree(RLayout *self)
Clean up and free an RLayout.
RLayout * RLayoutSetMonitorsNames(RLayout *self, char **names)
Set the names for our monitors in an RLayout.
void RLayoutPrint(const RLayout *self)
Pretty-print an RLayout.
RLayout * RLayoutNew(RAreaList *monitors)
Create an RLayout for a given set of monitors.
void set_sound_host(char *host)
The layout of our display.
void GetColor(int kind, Pixel *what, const char *name)
Get info from the server about a given color.
char * ExpandFilePath(char *path)