diff --git a/CrosshairCursor@BMarkley/README.md b/CrosshairCursor@BMarkley/README.md
new file mode 100644
index 00000000000..ac5e6cd9a97
--- /dev/null
+++ b/CrosshairCursor@BMarkley/README.md
@@ -0,0 +1,86 @@
+#  CrosshairCursor Cinnamon Applet 
+Changes your mouse cursor into a crosshairs that can be used as a productivity or assistive tool.
+
+
+
+
+## Crosshair Cursor - Creates a Crosshair window that follows your cursor.
+By Brian Markley PENG RSE
+
+### Description
+Changes your mouse cursor into a crosshairs that can be used as a productivity or
+assistive tool.
+The CCScript.sh in the applet directory
+ ~/.local/share/cinnamon/CrosshairCursor@BMarkley/
+can be modified to add options to the program like changing the colour or style of
+the crosshairs
+
+### Dependencies
+X Window System
+X11 shape extension
+based on the oneko cat program, so oneko package dependecies are likely all needed:
+libc6(>=2.4)
+libx11-6
+libxext6
+psmisc
+
+### Release
+Currently in the process of being released as an applet on Linux Mint cinnamon.
+Included is a compiled copy of the code which runs on my system.
+I think it should be portable to other 64bit systems, but I do not know.
+
+The applet can be manually compiled or installed by following directions on the
+/Bmarkley/CrosshairCursor/ Github page.
+
+### Cinamon Applet
+The precompiled release is already included in the applet. If you want to use a custom compiled version
+source code is available at the /BMarkley/CrosshairCursor github page
+please add it to the /applet/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor folder
+The applet can be installed by running the "test-spice" script found in the applet folder.
+This will install the applet in
+ ~/.local/share/cinnamon/applets/CrosshairCursor@BMarkley/CrosshairCursor.
+You can then activate the applet in the cinamon applet menu, by write clicking a panel and
+selecting "applets".
+Custom options can be run with the applet by modifying the script CCScript.sh
+found in the applet folder. You may need to make this script and the program executable,
+though the applet.js file should do that for you.
+ ~/.local/share/cinnamon/applets/CrosshairCursor@BMarkley/CrosshairCursor.
+
+### Usage
+When run without options a light-grey and black fullscreen Crosshair will follow the mouse
+
+Usage can change with options, such as crosshair size, vertical only, horizontal
+only, Fixed locations, colours, etc.
+
+"Options are:",
+"-h or -help : display this helpful message.",
+"-fg [color] : foreground color.",
+"-bg [color] : background/outline color.",
+"-nobg : no-background.",
+"-rv : invert colours.",
+"-offset [geometry] : set x and y offset ex: +2-12.",
+"-position [geometry] : set fixed x and y position. ex: 960x540.",
+"-width : set the width of the cursor.",
+"-height : set the height of the cursor.",
+"-horizontal : horizontal Line only.",
+"-vertical : vertical line only.",
+"-time : time between updates in microseconds.",
+"-display : name of display to draw window to.",
+"-name : name of process.",
+"-sync : puts you in synchronous mode.",
+
+### Special Thanks
+CrosshairCursor is written by Brian Markley PENG RSE after a code review of oneko
+and the oneko-toggle applet for cinamon desktop.
+
+Original oneko program written by Masayuki Koba, and Modified by
+Tatsuya Kato (kato@ntts.co.jp)
+
+oneko-toggle applet is written by kusch31
+
+### Testing and bug reports
+I have only tested this on one computer. My home system running
+Linux Mint 22.3
+Cinamon 6.6.7
+
+Please submit all issues to the Github page /Bmarkley/CrosshairCursor.
diff --git a/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CCScript.sh b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CCScript.sh
new file mode 100644
index 00000000000..53081a954ae
--- /dev/null
+++ b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CCScript.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+if pgrep -x "CrosshairCursor" > /dev/null
+then
+ pkill -x CrosshairCursor
+ sleep 0.2
+else
+ ~/.local/share/cinnamon/applets/CrosshairCursor@BMarkley/CrosshairCursor/CrosshairCursor -fg lightgrey -bg black &
+ sleep 0.2
+fi
diff --git a/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/Compile.sh b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/Compile.sh
new file mode 100644
index 00000000000..72d438fd85d
--- /dev/null
+++ b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/Compile.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+##compile
+
+cd CrosshairCursor
+if [[ ! -f "CrosshairCursor" ]]; then #if the file doesn't exist
+ make
+fi
diff --git a/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/CrosshairCursor._man b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/CrosshairCursor._man
new file mode 100644
index 00000000000..6b3d61a0ff0
--- /dev/null
+++ b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/CrosshairCursor._man
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.TH CrosshairCursor 1
+.SH NAME CrosshairCursor
+Creates a Crosshair window that follows your cursor.
+.SH SYNOPSIS
+.B CrosshairCursor
+[\fB-help\fP]
+[\fB-horizontal\fP] [\fB-vertical\fP]
+[\fB-time\fP \fIn\fP] [\fB-width\fP \fIn\fP] [\fB-height\fP \fIn\fP]
+[\fB-name\fP \fIname\fP] [\fB-display\fP \fIname\fP]
+[\fB-offset\fP \fIgeometry\fP] [\fB-position\fP \fIgeometry\fP]
+[\fB-rv\fP] [\fB-fg\fP] [\fB-bg\fP] [\fB-nobg\fP] [\fB-sync\fP]
+.SH DESCRIPTION
+.I CrosshairCursor
+changes your mouse cursor into a crosshairs that can be used as a productivity or
+assistive tool.
+.SS Options
+.TP
+.B -help
+Prints help message.
+.TP
+.BI \-fg " colour"
+Foreground colour.
+.TP
+.BI \-bg " colour"
+Background/outline colour.
+.TP
+.BI \-nobg
+no background/outline.
+.TP
+.B -rv
+Reverse background colour and foreground colour.
+.TP
+.BI \-offset " geometry"
+set x and y offset. ex: +2-12."
+.TP
+.BI \-position " geometry"
+set fixed x and y position. ex: 960x540."
+.TP
+.BI \-width " pixels"
+set width of the cursor."
+.TP
+.BI \-height " pixels"
+set height of the cursor."
+.TP
+.BI \-time " microseconds"
+Sets refresh rate in micro-second.
+.TP
+.BI \-display " name"
+name of display to draw window to
+.TP
+.BI \-name " name"
+Specify the name of the process.
+.TP
+.BI \-sync
+puts you in synchronous mode.
+
+.SH AUTHOR
+.I CrosshairCursor
+is written by Brian Markley PENG RSE after a code review of oneko and the
+oneko-toggle applet for cinamon desktop.
+
+Special thanks to:
+Original
+.I xneko
+is written by Masayuki Koba and modified to
+.I oneko
+by Tatsuya Kato, and modified furthermore by John Lerchey, Eric
+Anderson, Toshihiro Kanda and Kiichiroh Mukose.
+.I oneko-toggle
+ applet is written by kusch31
+
+.SH MAINTAINER
+Send questions or problems to me at the project Github Page.
+CrosshairCursor@BMarkley
diff --git a/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/CrosshairCursor.c b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/CrosshairCursor.c
new file mode 100644
index 00000000000..520b3ae1520
--- /dev/null
+++ b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/CrosshairCursor.c
@@ -0,0 +1,704 @@
+/*
+ * CrosshairCursor for X11 - Places a window shaped like crosshairs that follows your mouse cursor.
+ * Designed to run in Linux Mint Cinnamon but should work on other distributions.
+ * A lot of the code was borrowed from oneko-sakura, and then modified to achieve my goal.
+ * This code is given for free without any warranty whatsoever.
+ * maintained at CrosshairCursor@BMarkley on Github
+ */
+
+
+//#include
+//#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+
+#define DEBUG_SOURCE 0
+#define DEBUG_SOURCE_MORE 0
+#define DEBUG_SOURCE_RESTORECURSOR 0
+
+
+//#define DEFAULT_BITMAP_WIDTH 4480*2
+#define DEFAULT_BITMAP_WIDTH UNDEFINED
+//#define DEFAULT_BITMAP_HEIGHT 1080*2
+#define DEFAULT_BITMAP_HEIGHT UNDEFINED
+#define DEFAULT_FOREGROUND "lightgrey" //centre of cursor
+#define DEFAULT_BACKGROUND "black" //outline of cursor
+#define DEFAULT_INTERVAL 1000 //update interval in us
+#define MAXDISPLAYNAME (64 + 5)
+#define UNDEFINED (-1)
+/*
+ * Global variables
+ */
+
+char *ClassName = "CrosshairCursor"; /* Command name */
+char *ProgramName; /* Command name */
+
+Display *theDisplay; /* Display structure */
+int theScreen; /* Screen number */
+unsigned int theDepth; /* Depth */
+Window theRoot; /* Root window ID */
+Window theWindow; /* Cat window ID */
+char *WindowName = NULL; /* Cat window name */
+
+unsigned int WindowWidth; /* Root window width */
+unsigned int WindowHeight; /* Root window height */
+
+XColor theForegroundColor; /* Foreground color */
+XColor theBackgroundColor; /* Color (background) */
+
+int Synchronous = False;
+
+/*
+* Various initial settings (can be changed using options and resources)
+*/
+
+/* options: */
+int BitmapWidth = DEFAULT_BITMAP_WIDTH;
+int BitmapHeight = DEFAULT_BITMAP_HEIGHT;
+char *Foreground = DEFAULT_FOREGROUND; /* foreground */
+char *Background = DEFAULT_BACKGROUND; /* background */
+int noBG = 0; //no background
+int fixedPosition = 0; //fixed position
+useconds_t IntervalTime = DEFAULT_INTERVAL; /* time in between updates */
+int ReverseVideo = UNDEFINED; /* reverse */
+int XOffset=0,YOffset=0; /* X and Y offsets for cat from mouse pointer. */
+/*
+* Various state variables
+*/
+
+Bool DontMapped = True;
+
+int MouseX; /* Mouse X coordinate */
+int MouseY; /* Mouse Y coordinate */
+
+int PrevMouseX = 0; /* Previous mouse X coordinate */
+int PrevMouseY = 0; /* Previous mouse Y coordinate */
+
+int NekoX; /* Cat X coordinate */
+int NekoY; /* Cat Y coordinate */
+
+int NekoMoveDx; /* Cat movement distance X */
+int NekoMoveDy; /* Cat movement distance Y */
+
+int NekoLastX; /* Last cat drawing X coordinate */
+int NekoLastY; /* Last cat drawing Y coordinate */
+GC NekoLastGC; /* Cat final drawing GC */
+
+/* Variables used to set how quickly the program will chose to raise itself. */
+/* Look at Interval(), Handle Visiblility Notify Event */
+#define DEFAULT_RAISE_WAIT 16 /* About 2 seconds with default interval */
+int RaiseWindowDelay=0;
+/*
+* others
+*/
+
+static void NullFunction();
+
+/*
+* Initialize bitmap data and GC
+*/
+
+void
+InitGCs()
+{
+#if DEBUG_SOURCE
+printf("Debug: InitGCs\n");
+#endif
+ XGCValues theGCValues;
+
+ theGCValues.function = GXcopy;
+ theGCValues.foreground = theForegroundColor.pixel;
+ theGCValues.background = theBackgroundColor.pixel;
+
+ NekoLastGC = XCreateGC(theDisplay, theWindow,
+ GCFunction | GCForeground | GCBackground,
+ &theGCValues);
+}
+
+/*
+* Initialize the color
+*/
+
+int SetupColors()
+{
+#if DEBUG_SOURCE
+printf("Debug: SetupColours\n");
+#endif
+ XColor theExactColor;
+ Colormap theColormap;
+
+ theColormap = DefaultColormap(theDisplay, theScreen);
+
+ if (theDepth == 1) {
+ Foreground = "black";
+ Background = "white";
+ }
+
+ if (ReverseVideo == True) {
+ char *tmp;
+
+ tmp = Foreground;
+ Foreground = Background;
+ Background = tmp;
+ }
+
+ if (!XAllocNamedColor(theDisplay, theColormap,
+ Foreground, &theForegroundColor, &theExactColor)) {
+ fprintf(stderr, "%s: Can't XAllocNamedColor(%s).\n",
+ ProgramName, Foreground);
+ exit(1);
+ }
+
+ if (!XAllocNamedColor(theDisplay, theColormap,
+ Background, &theBackgroundColor, &theExactColor)) {
+ fprintf(stderr, "%s: Can't XAllocNamedColor(%s).\n",
+ ProgramName, Background);
+ exit(1);
+ }
+}
+
+/*
+* Initialize the screen environment
+*/
+
+void
+InitScreen(DisplayName)
+ char *DisplayName;
+{
+#if DEBUG_SOURCE
+printf("Debug: InitScreen\n");
+#endif
+ XSetWindowAttributes theWindowAttributes;
+ unsigned long theWindowMask;
+ Window theTempRoot;
+ int WindowPointX;
+ int WindowPointY;
+ unsigned int BorderWidth;
+ int event_base, error_base;
+
+ if ((theDisplay = XOpenDisplay(DisplayName)) == NULL) {
+ fprintf(stderr, "%s: Can't open display", ProgramName);
+ if (DisplayName != NULL) {
+ fprintf(stderr, " %s\n",DisplayName);
+ } else {
+ fprintf(stderr, "\n");
+ }
+ exit(1);
+ }
+
+
+ if (Synchronous == True) {
+ fprintf(stderr,"Synchronizing\n");
+ XSynchronize(theDisplay,True);
+ }
+ if (XShapeQueryExtension(theDisplay, &event_base, &error_base) == False) {
+ fprintf(stderr, "Display not suported shape extension\n");
+ } //terminate
+
+ theScreen = DefaultScreen(theDisplay);
+ theDepth = DefaultDepth(theDisplay, theScreen);
+ theRoot = RootWindow(theDisplay, theScreen);
+ XGetGeometry(theDisplay, theRoot, &theTempRoot,
+ &WindowPointX, &WindowPointY,
+ &WindowWidth, &WindowHeight,
+ &BorderWidth, &theDepth);
+// printf("WindowWidth: %d\nWindowHeight: %d\n",WindowWidth,WindowHeight);
+ if (BitmapWidth == UNDEFINED || BitmapWidth > 2*WindowWidth + XOffset){
+ BitmapWidth = 2*(WindowWidth + XOffset);
+ }
+ if (BitmapHeight == UNDEFINED || BitmapHeight > 2*WindowHeight + YOffset){
+ BitmapHeight = 2*(WindowHeight + YOffset);
+ }
+
+ SetupColors();
+ theWindowAttributes.background_pixel = theBackgroundColor.pixel;
+ theWindowAttributes.override_redirect = True;
+
+ theWindowMask = CWBackPixel|CWOverrideRedirect;
+
+ theWindow = XCreateWindow(theDisplay, theRoot, 0, 0,
+ BitmapWidth, BitmapHeight,
+ 0, theDepth, InputOutput, CopyFromParent,
+ theWindowMask, &theWindowAttributes);
+
+
+ if (WindowName == NULL) WindowName = ProgramName;
+ XStoreName(theDisplay, theWindow, WindowName);
+
+ InitGCs();
+ XSelectInput(theDisplay, theWindow,
+ VisibilityChangeMask);
+ XFlush(theDisplay);
+}
+
+
+/*
+* SIGINT signal handling
+*/
+
+void
+RestoreCursor()
+{
+#if DEBUG_SOURCE_RESTORECURSOR
+printf("Debug: RestoreCursor\n");
+#endif
+//XUnmapWindow(theDisplay, theWindow);
+//XDestroyWindow(theDisplay, theWindow);
+//XFreeGC(theDisplay,NekoLastGC);
+//XCloseDisplay(theDisplay); //there is a bug causing this to crash, so I skipped it.
+ exit(0);
+}
+
+
+/*
+* Interval
+*
+* When this function is called, it will not return for a certain period of time. Use this to adjust the timing of the cat's actions.
+*/
+
+void
+Interval()
+{
+#if DEBUG_SOURCE_MORE
+printf("Debug: Interval\n");
+#endif
+ if(0 != usleep(IntervalTime)){
+ fprintf(stderr, "Error in Interval Sleep\n");
+ exit(1);
+ }
+ if (RaiseWindowDelay>0) RaiseWindowDelay--;
+}
+
+/*
+* Cat drawing process
+*/
+
+void
+DrawNeko(x, y)
+ int x;
+ int y;
+{
+#if DEBUG_SOURCE
+printf("Debug: DrawNeko\n");
+#endif
+/*@@@@@@*/
+ if ((x != NekoLastX) || (y != NekoLastY)) {
+ XMoveWindow(theDisplay, theWindow, x, y);
+ if (DontMapped) {
+ XMapWindow(theDisplay, theWindow);
+ DontMapped = 0;
+ }
+ }
+
+ //crosshairs
+ //window shape (background)
+ XRectangle xrectangles[2];
+ xrectangles[0].height = BitmapHeight;
+ xrectangles[0].width = 3;
+ xrectangles[0].x = BitmapWidth/2-1;
+ xrectangles[0].y = 0;
+ xrectangles[1].height = 3;
+ xrectangles[1].width = BitmapWidth;
+ xrectangles[1].x = 0;
+ xrectangles[1].y = BitmapHeight/2-1;
+ if(!noBG){
+ XShapeCombineRectangles(theDisplay, theWindow, ShapeBounding,
+ 0, 0, (XRectangle*)&xrectangles, 2, ShapeSet,0);
+ }
+ //foreground
+ xrectangles[0].height = BitmapHeight;
+ xrectangles[0].width = 1;
+ xrectangles[0].x = BitmapWidth/2;
+ xrectangles[0].y = 0;
+ xrectangles[1].height = 1;
+ xrectangles[1].width = BitmapWidth;
+ xrectangles[1].x = 0;
+ xrectangles[1].y = BitmapHeight/2;
+ if(noBG){ //if no background colour
+ XShapeCombineRectangles(theDisplay, theWindow, ShapeBounding,
+ 0, 0, (XRectangle*)&xrectangles, 2, ShapeSet,0);
+ }
+ XFillRectangles(theDisplay, theWindow, NekoLastGC, (XRectangle*)&xrectangles, 2);
+
+ XFlush(theDisplay);
+ NekoLastX = x;
+ NekoLastY = y;
+
+}
+
+
+/*
+* Cat redraw process
+*/
+
+void
+RedrawNeko(x, y)
+ int x;
+ int y;
+ {
+#if DEBUG_SOURCE_MORE
+printf("Debug: RedrawNeko\n");
+#endif
+ if ((x != NekoLastX) || (y != NekoLastY)) {
+// XLowerWindow(theDisplay, theWindow);
+ XMoveWindow(theDisplay, theWindow, x, y);
+// XRaiseWindow(theDisplay, theWindow);
+ XFlush(theDisplay);
+ //XSync(theDisplay, 0);
+ NekoLastX = x;
+ NekoLastY = y;
+ }
+}
+
+/*
+* Calculate cat movement dx, dy
+*/
+
+void
+CalcDxDy()
+{
+#if DEBUG_SOURCE_MORE
+printf("Debug: CalcDxDy\n");
+#endif
+ Window QueryRoot, QueryChild;
+ int AbsoluteX, AbsoluteY;
+ int RelativeX, RelativeY;
+ unsigned int ModKeyMask;
+ XQueryPointer(theDisplay, theWindow,
+ &QueryRoot, &QueryChild,
+ &AbsoluteX, &AbsoluteY,
+ &RelativeX, &RelativeY,
+ &ModKeyMask);
+ PrevMouseX = MouseX;
+ PrevMouseY = MouseY;
+ if (0 == fixedPosition){
+ MouseX = AbsoluteX+XOffset;
+ MouseY = AbsoluteY+YOffset;
+}
+}
+
+
+/*
+* Motion analysis and cat drawing processing
+*/
+
+void
+NekoThinkDraw()
+{
+#if DEBUG_SOURCE_MORE
+printf("Debug: NekoThinkDraw\n");
+#endif
+ CalcDxDy();
+ RedrawNeko(MouseX-BitmapWidth/2+3, MouseY-BitmapHeight/2+3);
+ Interval(); //sleep
+}
+
+
+/*
+* Event handling
+*/
+
+Bool
+ProcessEvent()
+{
+#if DEBUG_SOURCE_MORE
+printf("Debug: ProcessEvent\n");
+#endif
+ XEvent theEvent;
+ Bool ContinueState = True;
+
+ while (XPending(theDisplay)) {
+ XNextEvent(theDisplay,&theEvent);
+ switch (theEvent.type) {
+ case VisibilityNotify:
+ if (RaiseWindowDelay==0) {
+ XRaiseWindow(theDisplay,theWindow);
+ RaiseWindowDelay=DEFAULT_RAISE_WAIT;
+ }
+ default:
+ /* Unknown Event */
+ break;
+ }
+ }
+ return(ContinueState);
+}
+
+
+/*
+* Cat disposal
+*/
+
+void
+ProcessNeko(){
+#if DEBUG_SOURCE
+printf("Debug: ProcessNeko\n");
+#endif
+/* Initialize cat */
+ NekoX = (WindowWidth - BitmapWidth / 2) / 2;
+ NekoY = (WindowHeight - BitmapHeight / 2) / 2;
+ NekoLastX = NekoX;
+ NekoLastY = NekoY;
+
+/* Main processing */
+ CalcDxDy();
+ DrawNeko(MouseX-BitmapWidth/2+3+XOffset, MouseY-BitmapHeight/2+3+YOffset);
+ do {
+ NekoThinkDraw();
+ } while (ProcessEvent());
+}
+
+
+/*
+* SIGALRM signal handling
+*/
+
+static void
+NullFunction()
+{
+#if DEBUG_SOURCE
+printf("Debug: NullFunction\n");
+#endif
+ /* No Operation */
+#if defined(SYSV) || defined(SVR4)
+ signal(SIGALRM, NullFunction);
+#endif /* SYSV || SVR4 */
+}
+
+/*
+* Error handling
+*/
+
+int
+NekoErrorHandler(dpy, err)
+ Display *dpy;
+ XErrorEvent *err;
+{
+#if DEBUG_SOURCE
+printf("Debug: NekoErrorHandler\n");
+#endif
+ char msg[80];
+ XGetErrorText(dpy, err->error_code, msg, 80);
+ fprintf(stderr, "%s: Error and exit\n%s\n",ProgramName, msg);
+ exit(1);
+
+}
+
+
+/*
+ * Usage
+ */
+
+char *message[] = {
+"",
+"Options are:",
+"-h or -help : display this helpful message.",
+"-fg : foreground color.",
+"-bg : background/outline color.",
+"-nobg : no-background.",
+"-rv : invert colours.",
+"-offset : set x and y offset ex: +2-12.",
+"-position : set fixed x and y position. ex: 960x540.",
+"-width : set the width of the cursor.",
+"-height : set the height of the cursor.",
+"-horizontal : horizontal Line only.",
+"-vertical : vertical line only.",
+"-time : time between updates in microseconds.",
+"-display : name of display to draw window to.",
+"-name : name of process.",
+"-sync : puts you in synchronous mode.",
+NULL };
+
+void
+Usage()
+{
+#if DEBUG_SOURCE
+printf("Debug: Usage\n");
+#endif
+ char **mptr;
+ int loop;
+
+ mptr = message;
+ fprintf(stderr, "Usage: %s []\n",ProgramName);
+ while (*mptr) {
+ fprintf(stderr,"%s\n",*mptr);
+ mptr++;
+ }
+}
+
+
+/*
+* Understanding options
+*/
+
+Bool
+GetArguments(argc, argv, theDisplayName)
+ int argc;
+ char *argv[];
+ char *theDisplayName;
+{
+#if DEBUG_SOURCE
+printf("Debug: GetArguments\n");
+#endif
+ int ArgCounter;
+ int result,foo,bar;
+ extern int XOffset,YOffset;
+ int loop,found=0;
+
+ theDisplayName[0] = '\0';
+
+ for (ArgCounter = 0; ArgCounter < argc; ArgCounter++) {
+
+ if ((strcmp(argv[ArgCounter], "-h") == 0) || (strcmp(argv[ArgCounter], "-help") == 0)) {
+ Usage();
+ exit(0);
+ }
+ if (strcmp(argv[ArgCounter], "-display") == 0) {
+ ArgCounter++;
+ if (ArgCounter < argc) {
+ strcpy(theDisplayName, argv[ArgCounter]);
+ } else {
+ fprintf(stderr, "%s: -display option error\n",ProgramName);
+ exit(1);
+ }
+ }
+ else if (strcmp(argv[ArgCounter], "-time") == 0) {
+ ArgCounter++;
+ if (ArgCounter < argc) {
+ IntervalTime = atol(argv[ArgCounter]);
+ } else {
+ fprintf(stderr, "%s: -time option error\n",ProgramName);
+ exit(1);
+ }
+ }
+ else if (strcmp(argv[ArgCounter], "-name") == 0) {
+ ArgCounter++;
+ if (ArgCounter < argc) {
+ WindowName = argv[ArgCounter];
+ } else {
+ fprintf(stderr, "%s: -name option error.\n",ProgramName);
+ exit(1);
+ }
+ }
+ else if ((strcmp(argv[ArgCounter], "-fg") == 0) ||
+ (strcmp(argv[ArgCounter], "-foreground") == 0)) {
+ ArgCounter++;
+ Foreground = argv[ArgCounter];
+ }
+ else if ((strcmp(argv[ArgCounter], "-bg") == 0) ||
+ (strcmp(argv[ArgCounter], "-background") == 0)) {
+ ArgCounter++;
+ Background = argv[ArgCounter];
+ }
+ else if ((strcmp(argv[ArgCounter], "-nobg") == 0) ||
+ (strcmp(argv[ArgCounter], "-no-background") == 0)) {
+ noBG = 1;
+ }
+ else if (strcmp(argv[ArgCounter], "-rv") == 0) {
+ ReverseVideo = True;
+ }
+ else if (strcmp(argv[ArgCounter], "-width") == 0) {
+ ArgCounter++;
+ if (ArgCounter < argc) {
+ BitmapWidth = atof(argv[ArgCounter]);
+ } else {
+ fprintf(stderr, "%s: -width option error\n",ProgramName);
+ exit(1);
+ }
+ }
+ else if (strcmp(argv[ArgCounter], "-height") == 0) {
+ ArgCounter++;
+ if (ArgCounter < argc) {
+ BitmapHeight = atof(argv[ArgCounter]);
+ } else {
+ fprintf(stderr, "%s: -height option error\n",ProgramName);
+ exit(1);
+ }
+ }
+ else if (strcmp(argv[ArgCounter], "-horizontal") == 0) {
+ BitmapHeight = 3;
+ if(1 == BitmapHeight && 1 == BitmapWidth){
+ fprintf(stderr, "%s: -can't run 'only vertical' and 'only horizontal' at same time.\n",ProgramName);
+ exit(1);
+ }
+ }
+ else if (strcmp(argv[ArgCounter], "-vertical") == 0) {
+ BitmapWidth = 3;
+ if(1 == BitmapHeight && 1 == BitmapWidth){
+ fprintf(stderr, "%s: -can't run 'only vertical' and 'only horizontal' at same time.\n",ProgramName);
+ exit(1);
+ }
+ }
+ else if (strcmp(argv[ArgCounter], "-offset") == 0) {
+ ArgCounter++;
+ result=XParseGeometry(argv[ArgCounter],&XOffset,&YOffset,&foo,&bar);
+ if ((0 == foo && 0 == bar)||(0 == XOffset && 0 == YOffset)){
+ fprintf(stderr, "%s: -offset error\n",ProgramName);
+ exit(1);
+ }
+ }
+ else if (strcmp(argv[ArgCounter], "-position") == 0) {
+ ArgCounter++;
+ result=XParseGeometry(argv[ArgCounter],&foo,&bar,&MouseX,&MouseY);
+ fixedPosition = 1;
+ if (0 == MouseX && 0 == MouseY){
+ fprintf(stderr, "%s: -position error\n",ProgramName);
+ exit(1);
+ }
+ }
+ else if (strcmp(argv[ArgCounter], "-sync") ==0) {
+ Synchronous = True;
+ }
+ else {
+ char *av = argv[ArgCounter] + 1;
+ if (!found) {
+ fprintf(stderr,
+ "%s: Unknown option %s\n",ProgramName,
+ argv[ArgCounter]);
+ Usage();
+ exit(1);
+ }
+ }
+ }
+
+ if (strlen(theDisplayName) < 1) {
+ theDisplayName = NULL;
+ }
+}
+
+
+/*
+* Main function
+*/
+
+int
+main(argc, argv)
+ int argc;
+ char *argv[];
+{
+#if DEBUG_SOURCE
+printf("Debug: Main\n");
+#endif
+ char theDisplayName[MAXDISPLAYNAME];
+
+ ProgramName = argv[0];
+
+ argc--;
+ argv++;
+
+ GetArguments(argc, argv, theDisplayName);
+ XSetErrorHandler(NekoErrorHandler);
+ InitScreen(theDisplayName);
+
+ signal(SIGALRM, NullFunction);
+ signal(SIGINT, RestoreCursor);
+ signal(SIGTERM, RestoreCursor);
+ signal(SIGQUIT, RestoreCursor);
+
+ ProcessNeko();
+ RestoreCursor();
+}
diff --git a/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/CrosshairCursor.man b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/CrosshairCursor.man
new file mode 100644
index 00000000000..7099f2bf855
--- /dev/null
+++ b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/CrosshairCursor.man
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.TH CrosshairCursor 1
+.SH NAME CrosshairCursor
+Creates a Crosshair window that follows your cursor.
+.SH SYNOPSIS
+.B CrosshairCursor
+[\fB-help\fP]
+[\fB-horizontal\fP] [\fB-vertical\fP]
+[\fB-time\fP \fIn\fP] [\fB-width\fP \fIn\fP] [\fB-height\fP \fIn\fP]
+[\fB-name\fP \fIname\fP] [\fB-display\fP \fIname\fP]
+[\fB-offset\fP \fIgeometry\fP] [\fB-position\fP \fIgeometry\fP]
+[\fB-rv\fP] [\fB-fg\fP] [\fB-bg\fP] [\fB-nobg\fP] [\fB-sync\fP]
+.SH DESCRIPTION
+.I CrosshairCursor
+changes your mouse cursor into a crosshairs that can be used as a productivity or
+assistive tool.
+.SS Options
+.TP
+.B -help
+Prints help message.
+.TP
+.BI \-fg " colour"
+Foreground colour.
+.TP
+.BI \-bg " colour"
+Background/outline colour.
+.TP
+.BI \-nobg
+no background/outline.
+.TP
+.B -rv
+Reverse background colour and foreground colour.
+.TP
+.BI \-offset " geometry"
+set x and y offset. ex: +2-12."
+.TP
+.BI \-position " geometry"
+set fixed x and y position. ex: 960x540."
+.TP
+.BI \-width " pixels"
+set width of the cursor."
+.TP
+.BI \-height " pixels"
+set height of the cursor."
+.TP
+.BI \-time " microseconds"
+Sets refresh rate in micro-second.
+.TP
+.BI \-display " name"
+name of display to draw window to
+.TP
+.BI \-name " name"
+Specify the name of the process.
+.TP
+.BI \-sync
+puts you in synchronous mode.
+
+.SH AUTHOR
+.I CrosshairCursor
+is written by Brian Markley PENG RSE after a code review of oneko and the
+oneko-toggle applet for cinamon desktop.
+
+Special thanks to:
+Original
+.I xneko
+is written by Masayuki Koba and modified to
+.I oneko
+by Tatsuya Kato, and modified furthermore by John Lerchey, Eric
+Anderson, Toshihiro Kanda and Kiichiroh Mukose.
+.I oneko-toggle
+ applet is written by kusch31
+
+.SH MAINTAINER
+Send questions or problems to me at the project Github Page.
+CrosshairCursor@BMarkley
diff --git a/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/CrosshairCursor.o b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/CrosshairCursor.o
new file mode 100644
index 00000000000..6abbbb73922
Binary files /dev/null and b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/CrosshairCursor.o differ
diff --git a/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/Imakefile b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/Imakefile
new file mode 100644
index 00000000000..69bed6cf9ab
--- /dev/null
+++ b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/Imakefile
@@ -0,0 +1,10 @@
+/**/# Cannot compile in using Gcc
+# CC = cc
+
+LOCAL_LIBRARIES = $(XLIB)
+ DEPLIBS = $(DEPXLIB)
+ DEFINES = -DSHAPE
+
+SimpleProgramTarget(CrosshairCursor)
+
+/* InstallAppDefaults(CrosshairCursor) */
diff --git a/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/Makefile b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/Makefile
new file mode 100644
index 00000000000..3db393ce8de
--- /dev/null
+++ b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/Makefile
@@ -0,0 +1,1180 @@
+# Makefile generated by imake - do not edit!
+
+# ----------------------------------------------------------------------
+# Makefile generated from "Imake.tmpl" and
+# $Xorg: Imake.tmpl,v 1.4 2000/08/17 19:41:46 cpqbld Exp $
+# $XdotOrg: xc/config/cf/Imake.tmpl,v 1.9 2005/01/24 06:37:31 daniels Exp $
+#
+#
+#
+#
+# $XFree86: xc/config/cf/Imake.tmpl,v 3.155 2003/12/24 18:58:41 dickey Exp $
+# ----------------------------------------------------------------------
+
+all::
+
+.SUFFIXES: .i
+
+# $XdotOrg: xc/config/cf/Imake.cf,v 1.7 2005/03/02 11:20:29 gisburn Exp $
+# $Xorg: Imake.cf,v 1.4 2000/08/17 19:41:45 cpqbld Exp $
+
+# $XFree86: xc/config/cf/Imake.cf,v 3.88 2003/12/16 21:30:21 herrb Exp $
+
+# -----------------------------------------------------------------------
+# site-specific configuration parameters that need to come before
+# the platform-specific parameters - edit site.def to change
+
+# site: $TOG: site.sample /main/r64_final/1 1998/02/05 16:28:49 kaleb $
+
+# site: $XFree86: xc/config/cf/site.def,v 3.24 2000/06/25 20:17:29 dawes Exp $
+
+# $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $
+
+# ----------------------------------------------------------------------
+# platform-specific configuration parameters - edit linux.cf to change
+
+# $XdotOrg: xc/config/cf/linux.cf,v 1.24 2005/03/06 01:05:00 branden Exp $
+# platform: $Xorg: linux.cf,v 1.3 2000/08/17 19:41:47 cpqbld Exp $
+
+# platform: $XFree86: xc/config/cf/linux.cf,v 3.220 2003/12/30 22:38:33 tsi Exp $
+
+# operating system: Linux 6.8.0-107-generic x86_64 [ELF] (6.8.0)
+# libc: (6.39.0)
+# binutils: (242)
+
+# $Xorg: lnxLib.rules,v 1.3 2000/08/17 19:41:47 cpqbld Exp $
+# $XFree86: xc/config/cf/lnxLib.rules,v 3.52 2003/10/31 20:49:03 herrb Exp $
+
+# $XdotOrg: xc/config/cf/xorg.cf,v 1.44 2005/01/27 03:50:46 ajax Exp $
+
+# $Xorg: xfree86.cf,v 1.4 2000/08/17 19:41:49 cpqbld Exp $
+
+XORG_VERSION_CURRENT = (((7) * 10000000) + ((7) * 100000) + ((0) * 1000) + 0)
+RELEASE_VERSION = RELEASE-1
+
+AFB_DEFS = -DUSE_AFB
+
+DRIVERSDKDIR = $(USRLIBDIR)/Server
+DRIVERSDKMODULEDIR = $(USRLIBDIR)/Server/modules
+DRIVERSDKINCLUDEDIR = $(USRLIBDIR)/Server/include
+
+ XF86SRC = $(SERVERSRC)/hw/xfree86
+ XF86COMSRC = $(XF86SRC)/common
+ XF86PARSERSRC = $(XF86SRC)/parser
+ XF86OSSRC = $(XF86SRC)/os-support
+ XF86DRIVERSRC = $(XF86SRC)/drivers
+ DRIVERSRC = $(XF86DRIVERSRC)
+
+ XFREE86DOCDIR = $(DOCDIR)
+ XFREE86PSDOCDIR = $(DOCPSDIR)
+ XFREE86PDFDOCDIR = $(DOCPDFDIR)
+ XFREE86HTMLDOCDIR = $(DOCHTMLDIR)
+XFREE86JAPANESEDOCDIR = $(DOCDIR)/Japanese
+
+# $Xorg: xf86.rules,v 1.3 2000/08/17 19:41:48 cpqbld Exp $
+
+# $XFree86: xc/config/cf/xf86.rules,v 3.34tsi Exp $
+
+ SELINUX_LDFLAGS =
+
+ SELINUX_INCLUDES = -I/usr/include/selinux
+
+ SELINUX_CFLAGS = -DHAVE_SELINUX
+
+ SELINUX_LIBS = -lselinux
+
+# ----------------------------------------------------------------------
+# site-specific configuration parameters that go after
+# the platform-specific parameters - edit site.def to change
+
+# site: $TOG: site.sample /main/r64_final/1 1998/02/05 16:28:49 kaleb $
+
+# site: $XFree86: xc/config/cf/site.def,v 3.24 2000/06/25 20:17:29 dawes Exp $
+
+# ---------------------------------------------------------------------
+# Imake rules for building libraries, programs, scripts, and data files
+# rules: $Xorg: Imake.rules,v 1.3 2000/08/17 19:41:46 cpqbld Exp $
+# rules: $XdotOrg: xc/config/cf/Imake.rules,v 1.8 2005/02/01 22:27:00 ajax Exp $
+#
+#
+#
+#
+# rules: $XFree86: xc/config/cf/Imake.rules,v 3.128 2003/11/15 03:25:17 dawes Exp $
+
+.PHONY: all interfaces install install.man install.lib install.sdk depend includes cleandir
+
+ _NULLCMD_ = @ echo -n
+
+X_BYTE_ORDER = X_LITTLE_ENDIAN
+
+GLIDE2INCDIR =
+
+GLIDE3INCDIR = /usr/include/glide3
+
+GLIDE3LIBNAME = glide3
+
+TKLIBNAME = tk8.4
+
+TKLIBDIR = /usr/lib
+
+TCLLIBNAME = tcl8.4
+
+TCLIBDIR = /usr/lib
+
+ PATHSEP = /
+ SHELL = /bin/sh -e
+
+ TOP = .
+ CURRENT_DIR = .
+
+ IMAKE = imake
+ DEPEND = gccmakedep
+ MKDIRHIER = mkdir -p
+ REVPATH = revpath
+ EXPORTLISTGEN =
+ RMAN = /usr/bin/rman
+ RMANBASENAME = rman
+ RMANOPTIONS =
+ CONFIGSRC = $(TOP)/config
+ IMAKESRC = $(CONFIGSRC)/imake
+ DEPENDSRC = $(CONFIGSRC)/util
+
+ INCROOT = /usr/include
+ USRLIBDIR = /usr/lib
+ VARDIR = /var
+ VARLIBDIR = $(VARDIR)/lib
+ SYSTEMUSRLIBDIR = /usr/lib
+ SYSTEMUSRINCDIR = /usr/include
+ SHLIBDIR = /usr/lib
+ LINTLIBDIR = $(USRLIBDIR)/lint
+ MANPATH = /usr/share/man
+ MANSOURCEPATH = $(MANPATH)/man
+ MANDIR = $(MANSOURCEPATH)$(MANSECT)
+ SYSCALLMANDIR = $(MANSOURCEPATH)$(SYSCALLMANSECT)
+ LIBMANDIR = $(MANSOURCEPATH)$(LIBMANSECT)
+ DRIVERMANDIR = $(MANSOURCEPATH)4
+ FILEMANDIR = $(MANSOURCEPATH)$(FILEMANSECT)
+ GAMEMANDIR = $(MANSOURCEPATH)$(GAMEMANSECT)
+ MISCMANDIR = $(MANSOURCEPATH)7
+ ADMMANDIR = $(MANSOURCEPATH)$(ADMMANSECT)
+ ICONDIR = "/usr/share/icons"
+ XCURSORPATH = "~/.icons:/usr/share/icons:/usr/share/pixmaps"
+ DRIVERMANDIR = $(MANSOURCEPATH)4
+ LOGDIRECTORY = $(VARDIR)/log
+
+ VARRUNDIR = $(VARDIR)/run
+
+ VARDBDIR = $(VARDIR)/lib
+
+ AR = ar cq
+
+# Nice try but useless: make will inherit BOOTSTRAPCFLAGS
+# from top Makefile
+ BOOTSTRAPCFLAGS =
+
+ CC = gcc
+ AS = gcc -c -x assembler
+
+.SUFFIXES: .cc
+
+ CXX = c++
+
+ CXXFILT = c++filt
+
+ CXXLIB = -lstdc++
+
+ CXXDEBUGFLAGS = -g -O2 -fno-strict-aliasing
+CXXDEPENDINCLUDES =
+ CXXEXTRA_DEFINES =
+CXXEXTRA_INCLUDES =
+ CXXSTD_DEFINES = -Dlinux -D__amd64__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(CXXPROJECT_DEFINES)
+ CXXOPTIONS =
+ CXXINCLUDES = $(INCLUDES) $(TOP_INCLUDES) $(CXXEXTRA_INCLUDES)
+ CXXDEFINES = $(CXXINCLUDES) $(CXXSTD_DEFINES) $(THREADS_CXXDEFINES) $(DEFINES) $(CXXEXTRA_DEFINES)
+ CXXFLAGS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(THREADS_CXXFLAGS) $(CXXDEFINES)
+
+ COMPRESS = compress
+ GZIPCMD = gzip -n
+
+ CPP = cpp $(STD_CPP_DEFINES)
+ RAWCPP = cpp -undef $(STD_CPP_OPTIONS)
+ PREPROCESSCMD = gcc -E $(STD_CPP_DEFINES)
+
+ INSTALL = install
+ INSTALLFLAGS = -c
+
+ LD = gcc -nostdlib
+
+ LEX = flex -l
+ M4 = m4
+ M4FLAGS =
+ LEXLIB = -lfl
+ YACC = bison -y
+ CCYACC = bison -y
+
+ LINT = lint
+
+ LINTLIBFLAG = -C
+ LINTOPTS = -axz
+ LN = ln -s
+ MAKE = make
+ MV = mv -f
+ CP = cp
+
+ RANLIB = ranlib
+
+ RANLIBINSTFLAGS =
+
+ RM = rm -f
+ PERL = perl
+ PERLOPTS =
+ PERLENVSETUP = env LC_ALL=C
+
+ MANSECT = 1
+ SYSCALLMANSECT = 2
+ LIBMANSECT = 3
+ DRIVERMANSECT = 4
+ FILEMANSECT = 5
+ GAMEMANSECT = 6
+ MISCMANSECT = 7
+ ADMMANSECT = 8
+ MANSRCSECT = s
+ MANNEWSECT = n
+ PROJECTMANSUFFIX = x
+ MANSUFFIX = $(MANSECT)$(PROJECTMANSUFFIX)
+ SYSCALLMANSUFFIX = $(SYSCALLMANSECT)$(PROJECTMANSUFFIX)
+ LIBMANSUFFIX = $(LIBMANSECT)$(PROJECTMANSUFFIX)
+ DRIVERMANSUFFIX = 4x
+ FILEMANSUFFIX = $(FILEMANSECT)$(PROJECTMANSUFFIX)
+ GAMEMANSUFFIX = $(GAMEMANSECT)$(PROJECTMANSUFFIX)
+ MISCMANSUFFIX = 7x
+ ADMMANSUFFIX = $(ADMMANSECT)$(PROJECTMANSUFFIX)
+ ADMINMANSUFFIX = 8
+ MANSRCSUFFIX = man
+ MANNEWSUFFIX = _man
+ MANDEFS = -D__apploaddir__=$(XAPPLOADDIR) -D__filemansuffix__=$(FILEMANSECT)$(PROJECTMANSUFFIX) -D__osfilemansuffix__=$(FILEMANSECT) -D__libmansuffix__=$(LIBMANSECT)$(PROJECTMANSUFFIX) -D__oslibmansuffix__=$(LIBMANSECT) -D__mansuffix__=$(MANSECT)$(PROJECTMANSUFFIX) -D__osmansuffix__=$(MANSECT) -D__syscallmansuffix__=$(SYSCALLMANSECT)$(PROJECTMANSUFFIX) -D__ossysmansuffix__=$(SYSCALLMANSECT) -D__gamemansuffix__=$(GAMEMANSECT)$(PROJECTMANSUFFIX) -D__osgamemansuffix__=$(GAMEMANSECT) -D__miscmansuffix__=$(MISCMANSECT)$(PROJECTMANSUFFIX) -D__osmiscmansuffix__=$(MISCMANSECT) -D__admmansuffix__=$(ADMMANSECT)$(PROJECTMANSUFFIX) -D__osadmmansuffix__=$(ADMMANSECT) -D__miscmansuffix__=$(MISCMANSECT)$(PROJECTMANSUFFIX) -D__osmiscmansuffix__=$(MISCMANSECT) -D__drivermansuffix__=$(DRIVERMANSECT)$(PROJECTMANSUFFIX) -D__osdrivermansuffix__=$(DRIVERMANSECT) -D__adminmansuffix__=$(ADMINMANSUFFIX) -D__projectroot__=$(PROJECTROOT) -D__xconfigfile__=$(XCONFIGFILE) -D__xconfigdir__=$(XCONFIGDIR) -D__xlogfile__=$(XLOGFILE) -D__xservername__=$(XSERVERNAME) -D__appmansuffix__=$(MANSECT)$(PROJECTMANSUFFIX) $(XORGMANDEFS) $(VENDORMANDEFS)
+
+ COMPRESSMANCMD = gzip -n
+
+ TROFF = groff -Tps
+ NROFF = nroff
+
+ MSMACROS = -ms
+ MANMACROS = -man
+ TBL = tbl
+ EQN = eqn
+ NEQN = neqn
+ COL = col
+ COLFLAGS = -b
+
+ MODCC = gcc
+
+ MODCPP = cpp
+ MODCFLAGS = $(CFLAGS)
+ MODAS = gcc -c -x assembler
+ MODASFLAGS =
+
+ MODLD = gcc -nostdlib
+
+ MODLDFLAGS =
+MODLDCOMBINEFLAGS = -r
+ MODAR = ar cq
+
+ MODRANLIB = ranlib
+
+ DVIPS = dvips
+ LATEX = latex
+
+ STD_INCLUDES =
+ STD_CPP_OPTIONS = -traditional
+ STD_CPP_DEFINES = -traditional -Dlinux -D__amd64__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(PROJECT_DEFINES)
+ STD_DEFINES = -Dlinux -D__amd64__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(PROJECT_DEFINES)
+ EXTRA_LOAD_FLAGS =
+ EXTRA_LDOPTIONS =
+ EXTRA_LIBRARIES =
+ TAGS = ctags
+
+ PARALLELMFLAGS =
+
+ SHAREDCODEDEF =
+ SHLIBDEF =
+
+ SHLIBLDFLAGS = -shared $(SHLIBGLOBALSFLAGS)
+
+ NOSTDLIB = -nostdlib
+ POSTNOSTDLIB = -Wl,-Bstatic -lgcc -Wl,-Bdynamic
+
+ PICFLAGS = -fPIC
+
+ CXXPICFLAGS = -fPIC
+
+ PROTO_DEFINES = -DFUNCPROTO=15 -DNARROWPROTO
+
+ INSTPGMFLAGS =
+
+ INSTBINFLAGS = -m 0755
+ INSTUIDFLAGS = -m 4711
+ INSTLIBFLAGS = -m 0644
+ INSTINCFLAGS = -m 0444
+ INSTMANFLAGS = -m 0444
+ INSTDATFLAGS = -m 0444
+ INSTKMEMFLAGS = -m 4711
+
+ PROJECTROOT = /usr
+
+ CDEBUGFLAGS = -g -O2 -fno-strict-aliasing
+ CCOPTIONS =
+
+ ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(INSTALLED_INCLUDES) $(STD_INCLUDES)
+ ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(THREADS_DEFINES) $(MODULE_DEFINES) $(DEFINES) $(EXTRA_DEFINES)
+ CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(MODULE_CFLAGS) $(ALLDEFINES)
+ LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) $(DEPEND_DEFINES)
+ LDPRELIB = $(INSTALLED_LIBS)
+ LDPOSTLIB =
+ LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_LDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
+ CXXLDOPTIONS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_CXXLDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
+
+ LDLIBS = $(LDPOSTLIBS) $(THREADS_LIBS) $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
+
+ CCLINK = $(CC)
+
+ CXXLINK = $(CXX)
+
+ LDSTRIPFLAGS = -x
+ LDCOMBINEFLAGS = -r
+ DEPENDFLAGS =
+ DEPEND_DEFINES =
+
+# Not sure this belongs here
+ TKLIBDIR = /usr/lib
+ TKINCDIR = /usr/include
+ TKLIBNAME = tk8.4
+ TKLIBRARY = -L$(TKLIBDIR) -l$(TKLIBNAME)
+ TCLLIBDIR = /usr/lib
+ TCLINCDIR = /usr/include
+ TCLLIBNAME = tcl8.4
+ TCLLIBRARY = -L$(TCLLIBDIR) -l$(TCLLIBNAME)
+
+ MACROFILE = linux.cf
+ RM_CMD = $(RM)
+
+ IMAKE_DEFINES =
+ IMAKE_WARNINGS = -Wundef
+
+ IRULESRC = $(CONFIGDIR)
+ IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES) $(IMAKE_WARNINGS)
+
+ ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/X11.tmpl $(IRULESRC)/site.def $(IRULESRC)/$(MACROFILE) $(IRULESRC)/xfree86.cf $(IRULESRC)/xf86.rules $(IRULESRC)/xorgsite.def $(IRULESRC)/host.def $(EXTRA_ICONFIGFILES)
+
+# $Xorg: X11.rules,v 1.4 2000/08/17 19:41:46 cpqbld Exp $
+
+# $XFree86: xc/config/cf/X11.rules,v 1.6 2001/01/17 16:22:31 dawes Exp $
+
+# ----------------------------------------------------------------------
+# X Window System Build Parameters and Rules
+# $XdotOrg: xc/config/cf/X11.tmpl,v 1.52 2005/09/22 23:54:18 alanc Exp $
+# $Xorg: X11.tmpl,v 1.6 2000/08/17 19:41:46 cpqbld Exp $
+#
+#
+#
+#
+# $XFree86: xc/config/cf/X11.tmpl,v 1.248 2004/02/16 04:07:37 dawes Exp $
+
+XORGRELSTRING = `echo 7 7 0 | sed -e 's/ /./g' -e 's/^/Version\\\ /'`
+ XORGMANNAME = X Version 11
+
+STICKY_DEFINES = -DHAS_STICKY_DIR_BIT
+
+FCHOWN_DEFINES = -DHAS_FCHOWN
+
+# -----------------------------------------------------------------------
+# X Window System make variables; these need to be coordinated with rules
+
+ XTOP = $(TOP)
+ BINDIR = /usr/bin
+ BUILDINCROOT = $(TOP)/exports
+ BUILDINCDIR = $(BUILDINCROOT)/include
+ BUILDINCTOP = ../..
+ BUILDLIBDIR = $(TOP)/exports/lib
+ BUILDLIBTOP = ../..
+ BUILDBINDIR = $(TOP)/exports/bin
+ BUILDBINTOP = ../..
+ BUILDMODULEDIR = $(BUILDLIBDIR)/modules
+ BUILDI18NDIR = $(BUILDLIBDIR)/locale
+ BUILDMODULETOP = $(BUILDLIBTOP)/..
+ XBUILDINCROOT = $(XTOP)/exports
+ XBUILDINCDIR = $(XBUILDINCROOT)/include/X11
+ XBUILDINCTOP = ../../..
+ XBUILDBINDIR = $(XBUILDINCROOT)/bin
+ INCDIR = $(INCROOT)
+ ADMDIR = /usr/adm
+ LIBDIR = /usr/lib/X11
+ SHAREDIR = /usr/share/X11
+ LIBEXECDIR = /usr/libexec
+ MODULEDIR = $(USRLIBDIR)/modules
+ TOP_X_INCLUDES =
+ XBINDIR = $(PROJECTROOT)/bin
+
+ INSTSRCDIR = /usr/src
+
+ ETCX11DIR = /etc/X11
+
+ CONFDIR = $(ETCX11DIR)
+
+ DOCDIR = $(LIBDIR)/doc
+ DOCHTMLDIR = $(DOCDIR)/html
+ DOCPSDIR = $(DOCDIR)/PostScript
+ DOCPDFDIR = $(DOCDIR)/PDF
+ FONTDIR = ${datarootdir}/fonts/X11
+ FONTROOTDIR = ${datarootdir}/fonts/X11
+ ENCODINGSDIR = ${FONTROOTDIR}/encodings
+ XINITDIR = $(LIBDIR)/xinit
+ XDMDIR = $(LIBDIR)/xdm
+ XDMVARDIR = $(VARLIBDIR)/xdm
+ TWMDIR = $(LIBDIR)/twm
+ XSMDIR = $(LIBDIR)/xsm
+ NLSDIR = $(LIBDIR)/nls
+ XLOCALEDIR = $(LIBDIR)/locale
+ LBXPROXYDIR = $(LIBDIR)/lbxproxy
+ PROXYMANAGERDIR = $(LIBDIR)/proxymngr
+ XPRINTDIR = $(LIBDIR)/xserver
+ XAPPLOADDIR = /etc/X11/app-defaults
+ FONTCFLAGS = -t
+
+ INSTAPPFLAGS = $(INSTDATFLAGS)
+
+ RGB = $(XBINDIR)/rgb
+ FONTC = $(XBINDIR)/bdftopcf
+ MKFONTSCALE = $(XBINDIR)/mkfontscale
+ MKFONTDIR = $(XBINDIR)/mkfontdir
+ MKHTMLINDEX = $(XBINDIR)/mkhtmlindex
+ UCS2ANY = $(XBINDIR)/ucs2any
+ BDFTRUNCATE = $(XBINDIR)/bdftruncate
+ UCSMAPPREFIX = $(FONTDIR)/util/map-
+ XCURSORGEN = $(XBINDIR)/xcursorgen
+
+ HTMLINDEXCMD = HtmlIndexCmd
+
+ DOCUTILSRC = $(XTOP)/doc/util
+ CLIENTSRC = $(TOP)/clients
+ DEMOSRC = $(TOP)/demos
+ XDOCMACROS = $(DOCUTILSRC)/macros.t
+ XIDXMACROS = $(DOCUTILSRC)/indexmacros.t
+ PROGRAMSRC = $(TOP)/programs
+ LIBSRC = $(XTOP)/lib
+ FONTSRC = $(XTOP)/fonts
+ ENCODINGSSRC = $(FONTSRC)/encodings
+ INCLUDESRC = $(BUILDINCROOT)/include
+ XINCLUDESRC = $(INCLUDESRC)/X11
+ SERVERSRC = $(XTOP)/programs/Xserver
+ CONTRIBSRC = $(XTOP)/../contrib
+ UNSUPPORTEDSRC = $(XTOP)/unsupported
+ DOCSRC = $(XTOP)/doc
+ RGBSRC = $(XTOP)/programs/rgb
+ BDFTOPCFSRC = $(PROGRAMSRC)/bdftopcf
+ MKFONTDIRSRC = $(PROGRAMSRC)/mkfontdir
+ FONTSERVERSRC = $(PROGRAMSRC)/xfs
+ FONTINCSRC = $(XTOP)/include/fonts
+ EXTINCSRC = $(XTOP)/include/extensions
+ FTSOURCEDIR = FreeTypeSrcDir
+ DRMSRCDIR = $(TOP)/extras/drm
+ MESASRCDIR = $(TOP)/extras/Mesa
+ OGLSAMPLESRCDIR = $(TOP)/extras/ogl-sample
+ PSWRAPSRC = $(XTOP)/config/pswrap
+ TRANSCOMMSRC = $(LIBSRC)/xtrans
+ TRANS_INCLUDES = -I$(TRANSCOMMSRC)
+ CONNECTION_FLAGS = -DUNIXCONN -DTCPCONN $(STICKY_DEFINES) $(FCHOWN_DEFINES) -DIPv6
+XTRANS_FAILDEFINES = -DFAIL_HARD
+
+ VENDORMANNAME = X.Org
+ VENDORMANVERSION = `echo 7 7 0 | sed -e 's/ /./g' -e 's/^/Version\\\ /'`
+ XORGMANDEFS = -D__xorgversion__="\"$(XORGRELSTRING)\" \"$(XORGMANNAME)\""
+ VENDORMANDEFS = -D__vendorversion__="$(VENDORMANVERSION) $(VENDORMANNAME)"
+ VENDORNAME = The X.Org Foundation
+ VENDORNAMESHORT = X.Org
+
+ VENDORWEBSUPPORT = http://wiki.X.Org
+
+VENDORSUPPORTDEFS = -D__VENDORDWEBSUPPORT__='"$(VENDORWEBSUPPORT)"'
+
+ XKBDEFRULES = xorg
+ XKBDEFRULESDEFS = -D__XKBDEFRULES__='"$(XKBDEFRULES)"'
+
+ XCONFIGFILE = xorg.conf
+ XCONFIGDIR = $(LIBDIR)
+ XLOGFILE = Xorg
+ XSERVERNAME = Xorg
+
+ XENVLIBDIR = $(USRLIBDIR)
+ CLIENTENVSETUP = LD_LIBRARY_PATH=$(XENVLIBDIR) XLOCALEDIR=$(BUILDLIBDIR)/locale
+
+# $Xorg: lnxLib.tmpl,v 1.3 2000/08/17 19:41:47 cpqbld Exp $
+# $XFree86: xc/config/cf/lnxLib.tmpl,v 3.19 2003/10/15 22:47:48 herrb Exp $
+
+ XLIBSRC = $(LIBSRC)/X11
+
+SOXLIBREV = 6.2
+DEPXONLYLIB =
+XONLYLIB = -lX11
+
+LINTXONLY = $(LINTLIBDIR)/llib-lX11.ln
+
+ DEPXLIBONLY = $(DEPXONLYLIB)
+ XLIBONLY = $(XONLYLIB)
+ LINTXONLYLIB = $(LINTXONLY)
+
+ XEXTLIBSRC = $(LIBSRC)/Xext
+
+SOXEXTREV = 6.4
+DEPEXTENSIONLIB =
+EXTENSIONLIB = -lXext
+
+LINTEXTENSION = $(LINTLIBDIR)/llib-lXext.ln
+
+LINTEXTENSIONLIB = $(LINTEXTENSION)
+ DEPXLIB = $(DEPEXTENSIONLIB) $(DEPXONLYLIB)
+ XLIB = $(EXTENSIONLIB) $(XONLYLIB)
+ LINTXLIB = $(LINTXONLYLIB)
+
+ XSSLIBSRC = $(LIBSRC)/Xss
+
+SOXSSREV = 1.0
+DEPXSSLIB =
+XSSLIB = -lXss
+
+LINTXSS = $(LINTLIBDIR)/llib-lXss.ln
+
+ XXF86MISCLIBSRC = $(LIBSRC)/Xxf86misc
+
+SOXXF86MISCREV = 1.1
+DEPXXF86MISCLIB =
+XXF86MISCLIB = -lXxf86misc
+
+LINTXXF86MISC = $(LINTLIBDIR)/llib-lXxf86misc.ln
+
+ XXF86VMLIBSRC = $(LIBSRC)/Xxf86vm
+
+SOXXF86VMREV = 1.0
+DEPXXF86VMLIB =
+XXF86VMLIB = -lXxf86vm
+
+LINTXXF86VM = $(LINTLIBDIR)/llib-lXxf86vm.ln
+
+ XXF86DGALIBSRC = $(LIBSRC)/Xxf86dga
+
+SOXXF86DGAREV = 1.0
+DEPXXF86DGALIB =
+XXF86DGALIB = -lXxf86dga
+
+LINTXXF86DGA = $(LINTLIBDIR)/llib-lXxf86dga.ln
+
+ XXF86RUSHLIBSRC = $(LIBSRC)/Xxf86rush
+
+SOXXF86RUSHREV = 1.0
+DEPXXF86RUSHLIB =
+XXF86RUSHLIB = -lXxf86rush
+
+LINTXXF86RUSH = $(LINTLIBDIR)/llib-lXxf86rush.ln
+
+ XVLIBSRC = $(LIBSRC)/Xv
+
+SOXVREV = 1.0
+DEPXVLIB =
+XVLIB = -lXv
+
+LINTXV = $(LINTLIBDIR)/llib-lXv.ln
+
+ XVMCLIBSRC = $(LIBSRC)/XvMC
+
+SOXVMCREV = 1.0
+DEPXVMCLIB =
+XVMCLIB = -lXvMC
+
+LINTXVMC = $(LINTLIBDIR)/llib-lXvMC.ln
+
+ XINERAMALIBSRC = $(LIBSRC)/Xinerama
+
+SOXINERAMAREV = 1.0
+DEPXINERAMALIB =
+XINERAMALIB = -lXinerama
+
+LINTXINERAMA = $(LINTLIBDIR)/llib-lXinerama.ln
+
+ XRESLIBSRC = $(LIBSRC)/XRes
+
+SOXRESREV = 1.0
+DEPXRESLIB =
+XRESLIB = -lXRes
+
+LINTXRES = $(LINTLIBDIR)/llib-lXRes.ln
+
+ DMXLIBSRC = $(LIBSRC)/dmx
+
+SODMXREV = 1.0
+DEPDMXLIB =
+DMXLIB = -ldmx
+
+LINTDMX = $(LINTLIBDIR)/llib-ldmx.ln
+
+ DPSLIBSRC = $(LIBSRC)/dps
+
+DEPDPSLIB = $(USRLIBDIR)/libdps.a
+DPSLIB = -ldps
+
+LINTDPS = $(LINTLIBDIR)/llib-ldps.ln
+
+ DPSTKLIBSRC = $(LIBSRC)/dpstk
+
+DEPDPSTKLIB = $(USRLIBDIR)/libdpstk.a
+DPSTKLIB = -ldpstk
+
+LINTDPSTK = $(LINTLIBDIR)/llib-ldpstk.ln
+
+ PSRESLIBSRC = $(LIBSRC)/psres
+
+DEPPSRESLIB = $(USRLIBDIR)/libpsres.a
+PSRESLIB = -lpsres
+
+LINTPSRES = $(LINTLIBDIR)/llib-lpsres.ln
+
+ GLULIBSRC = $(LIBSRC)/GLU
+
+SOGLUREV = 1.3
+DEPGLULIB =
+GLULIB = -lGLU
+
+LINTGLU = $(LINTLIBDIR)/llib-lGLU.ln
+
+ GLXLIBSRC = $(LIBSRC)/GL
+
+SOGLREV = 1.2
+DEPGLXLIB =
+GLXLIB = -lGL
+
+LINTGLX = $(LINTLIBDIR)/llib-lGL.ln
+
+ GLWIDGETSRC = $(LIBSRC)/GLw
+
+DEPGLWLIB = $(USRLIBDIR)/libGLw.a
+GLWLIB = -lGLw
+
+LINTGLW = $(LINTLIBDIR)/llib-lGLw.ln
+
+XRENDERDIR = /usr
+XRENDERLIBDIR = /usr/lib
+XRENDERINCDIR = /usr/include
+XRENDERLIB = -L$(XRENDERLIBDIR) -lXrender
+DEPXRENDERLIB =
+
+XRENDERINCLUDES = -I$(XRENDERINCDIR)
+
+ XRANDRLIBSRC = $(LIBSRC)/Xrandr
+
+SOXRANDRREV = 2.0
+DEPXRANDRLIB =
+XRANDRLIB = -lXrandr
+
+LINTXRANDR = $(LINTLIBDIR)/llib-lXrandr.ln
+
+ XFIXESLIBSRC = $(LIBSRC)/Xfixes
+
+SOXFIXESREV = 3.0
+DEPXFIXESLIB =
+XFIXESLIB = -lXfixes
+
+LINTXFIXES = $(LINTLIBDIR)/llib-lXfixes.ln
+
+ XDAMAGELIBSRC = $(LIBSRC)/Xdamage
+
+SOXDAMAGEREV = 1.0
+DEPXDAMAGELIB =
+XDAMAGELIB = -lXdamage
+
+LINTXDAMAGE = $(LINTLIBDIR)/llib-lXdamage.ln
+
+XCOMPOSITELIBSRC = $(LIBSRC)/Xcomposite
+
+SOXCOMPOSITEREV = 1.0
+DEPXCOMPOSITELIB =
+XCOMPOSITELIB = -lXcomposite
+
+LINTXCOMPOSITE = $(LINTLIBDIR)/llib-lXcomposite.ln
+
+XEVIELIBSRC = $(LIBSRC)/Xevie
+
+SOXEVIEREV = 1.0
+DEPXEVIELIB =
+XEVIELIB = -lXevie
+
+LINTXEVIE = $(LINTLIBDIR)/llib-lXevie.ln
+
+XCURSORDIR = /usr
+XCURSORLIBDIR = /usr/lib
+XCURSORINCDIR = /usr/include
+XCURSORLIB = -L$(XCURSORLIBDIR) -lXcursor
+
+XCURSORINCLUDES=-I$(XCURSORINCDIR) $(XRENDERINCLUDES)
+
+ APPLEWMLIBSRC = $(LIBSRC)/apple
+
+DEPAPPLEWMLIB = $(USRLIBDIR)/libAppleWM.a
+APPLEWMLIB = -lAppleWM
+
+LINTAPPLEWM = $(LINTLIBDIR)/llib-lAppleWM.ln
+
+ WINDOWSWMLIBSRC = $(LIBSRC)/windows
+
+DEPWINDOWSWMLIB = $(USRLIBDIR)/libWindowsWM.a
+WINDOWSWMLIB = -lWindowsWM
+
+LINTWINDOWSWM = $(LINTLIBDIR)/llib-lWindowsWM.ln
+
+ XFONTCACHELIBSRC = $(LIBSRC)/Xfontcache
+
+DEPXFONTCACHELIB = $(USRLIBDIR)/libXfontcache.a
+XFONTCACHELIB = -lXfontcache
+
+LINTXFONTCACHE = $(LINTLIBDIR)/llib-lXfontcache.ln
+
+ XAUTHSRC = $(LIBSRC)/Xau
+
+SOXAUTHREV = 6.0
+DEPXAUTHLIB =
+XAUTHLIB = -lXau
+
+LINTXAUTH = $(LINTLIBDIR)/llib-lXau.ln
+
+ XDMCPLIBSRC = $(LIBSRC)/Xdmcp
+
+SOXDMCPREV = 6.0
+DEPXDMCPLIB =
+XDMCPLIB = -lXdmcp
+
+LINTXDMCP = $(LINTLIBDIR)/llib-lXdmcp.ln
+
+ XMUSRC = $(LIBSRC)/Xmu
+
+SOXMUREV = 6.2
+DEPXMULIB =
+XMULIB = -lXmu
+
+LINTXMU = $(LINTLIBDIR)/llib-lXmu.ln
+
+ XMUUSRC = $(LIBSRC)/Xmuu
+
+SOXMUUREV = 1.0
+DEPXMUULIB =
+XMUULIB = -lXmuu
+
+LINTXMUU = $(LINTLIBDIR)/llib-lXmuu.ln
+
+ OLDXLIBSRC = $(LIBSRC)/oldX
+
+DEPOLDXLIB = $(USRLIBDIR)/liboldX.a
+OLDXLIB = -loldX
+
+LINTOLDX = $(LINTLIBDIR)/llib-loldX.ln
+
+ XPLIBSRC = $(LIBSRC)/Xp
+
+SOXPREV = 6.2
+DEPXPLIB =
+XPLIB = -lXp
+
+LINTXP = $(LINTLIBDIR)/llib-lXp.ln
+
+ TOOLKITSRC = $(LIBSRC)/Xt
+
+SOXTREV = 6.0
+DEPXTOOLONLYLIB =
+XTOOLONLYLIB = -lXt
+
+LINTXTOOLONLY = $(LINTLIBDIR)/llib-lXt.ln
+
+ DEPXTOOLLIB = $(DEPXTOOLONLYLIB) $(DEPSMLIB) $(DEPICELIB)
+ XTOOLLIB = $(XTOOLONLYLIB) $(SMLIB) $(ICELIB)
+ LINTXTOOLLIB = $(LINTXTOOLONLYLIB)
+
+ XALIBSRC = $(LIBSRC)/Xa
+
+SOXAREV = 1.0
+DEPXALIB =
+XALIB = -lXa
+
+LINTXA = $(LINTLIBDIR)/llib-lXa.ln
+
+ AWIDGETSRC = $(LIBSRC)/Xaw
+
+SOXAWREV = 8.0
+DEPXAWLIB =
+XAWLIB = -lXaw
+
+LINTXAW = $(LINTLIBDIR)/llib-lXaw.ln
+
+ AWIDGET7SRC = $(LIBSRC)/Xaw7
+
+SOXAW7REV = 7.0
+DEPXAW7LIB =
+XAW7LIB = -lXaw
+
+LINTXAW7 = $(LINTLIBDIR)/llib-lXaw.ln
+
+ AWIDGET6SRC = $(LIBSRC)/Xaw6
+
+SOXAW6REV = 6.1
+DEPXAW6LIB =
+XAW6LIB = -lXaw
+
+LINTXAW6 = $(LINTLIBDIR)/llib-lXaw.ln
+
+ XILIBSRC = $(LIBSRC)/Xi
+
+SOXINPUTREV = 6.0
+DEPXILIB =
+XILIB = -lXi
+
+LINTXI = $(LINTLIBDIR)/llib-lXi.ln
+
+ XTESTLIBSRC = $(LIBSRC)/Xtst
+
+SOXTESTREV = 6.1
+DEPXTESTLIB =
+XTESTLIB = -lXtst
+
+LINTXTEST = $(LINTLIBDIR)/llib-lXtst.ln
+
+DEPXBSDLIB = $(USRLIBDIR)/libXbsd.a
+XBSDLIB = -lXbsd
+
+LINTXBSD = $(LINTLIBDIR)/llib-lXbsd.ln
+
+ ICESRC = $(LIBSRC)/ICE
+
+SOICEREV = 6.4
+DEPICELIB =
+ICELIB = -lICE
+
+LINTICE = $(LINTLIBDIR)/llib-lICE.ln
+
+ SMSRC = $(LIBSRC)/SM
+
+SOSMREV = 6.0
+DEPSMLIB =
+SMLIB = -lSM
+
+LINTSM = $(LINTLIBDIR)/llib-lSM.ln
+
+ XKEYSRC = $(LIBSRC)/Xkey
+
+SOXKEYREV = 6.0
+DEPXKEYLIB =
+XKEYLIB = -lXkey
+
+LINTXKEY = $(LINTLIBDIR)/llib-lXkey.ln
+
+ FSLIBSRC = $(LIBSRC)/FS
+
+SOFSREV = 6.0
+DEPFSLIB =
+FSLIB = -lFS
+
+LINTFS = $(LINTLIBDIR)/llib-lFS.ln
+
+ FONTLIBSRC = $(LIBSRC)/font
+
+DEPFONTLIB = $(USRLIBDIR)/libXfont.a
+FONTLIB = -L$(FREETYPELIBDIR) -L$(FONTLIBSRC) -lXfont
+
+LINTXFONT = $(LINTLIBDIR)/llib-lXfont.ln
+#
+DEPXFONTLIB = $(USRLIBDIR)/libXfont.a
+XFONTLIB = -lXfont
+
+LINTXFONT = $(LINTLIBDIR)/llib-lXfont.ln
+
+ FONTSTUBLIBSRC = $(FONTLIBSRC)/stubs
+
+DEPFONTSTUBLIB = $(USRLIBDIR)/libfntstubs.a
+FONTSTUBLIB = -lfntstubs
+
+LINTFONTSTUB = $(LINTLIBDIR)/llib-lfntstubs.ln
+ DEPFONTLIB = $(DEPXFONTLIB) $(DEPFONTSTUBLIB)
+ FONTLIB = $(XFONTLIB) $(FONTSTUBLIB) $(FREETYPE2LIB)
+
+ FONTENCLIBSRC = $(LIBSRC)/fontenc
+
+DEPXFONTENCLIB = $(USRLIBDIR)/libfontenc.a
+XFONTENCLIB = -lfontenc
+
+LINTXFONTENC = $(LINTLIBDIR)/llib-lfontenc.ln
+
+ XPMLIBSRC = $(LIBSRC)/Xpm
+
+SOXPMREV = 4.11
+DEPXPMLIB =
+XPMLIB = -lXpm
+
+LINTXPM = $(LINTLIBDIR)/llib-lXpm.ln
+
+FREETYPE2DIR = /usr
+FREETYPE2LIBDIR = /usr/lib
+FREETYPE2INCDIR = /usr/include
+
+FREETYPE2LIB = -lfreetype
+
+FREETYPE2INCLUDES = -I$(FREETYPE2INCDIR)/freetype2 -I$(FREETYPE2INCDIR)/freetype2/config
+
+FREETYPE2DEFINES = -DFREETYPE2
+
+ EXPATLIBSRC = $(LIBSRC)/expat
+
+SOEXPATREV = 0.4
+DEPEXPATLIB =
+EXPATLIB = -lexpat
+
+LINTEXPAT = $(LINTLIBDIR)/llib-lexpat.ln
+
+EXPATDIR = /usr
+EXPATLIBDIR = /usr/lib
+EXPATINCDIR = /usr/include
+
+EXPATINCLUDES =
+
+EXPATLIB = -lexpat
+
+EXPATDEFINES = -DEXPAT
+
+XFTDIR = /usr
+XFTLIBDIR = /usr/lib
+XFTINCDIR = /usr/include
+XFTLIB = -L$(XFTLIBDIR) -lXft
+
+XFTINCLUDES= -I$(XFTINCDIR) $(FONTCONFIGINCLUDES) $(FREETYPE2INCLUDES) $(XRENDERINCLUDES)
+
+FONTCONFIGDIR = /usr
+FONTCONFIGLIBDIR = /usr/lib
+FONTCONFIGINCDIR = /usr/include
+FONTCONFIGBINDIR = /usr/bin
+
+FONTCONFIGLIB = -lfontconfig
+
+FONTCONFIGINCLUDES =
+
+FCCACHE = $(FONTCONFIGBINDIR)/fc-cache
+
+FONTCONFIGDEFINES = -DFONTCONFIG
+
+LIBPNGINCDIR = /usr/include
+
+LIBPNGINC=
+
+LIBPNGDIR = /usr
+LIBPNGLIBDIR = /usr/lib
+LIBPNGINCDIR = /usr/include
+
+LIBPNGLIB = -lpng
+
+ XKBFILELIBSRC = $(LIBSRC)/xkbfile
+
+SOXKBFILEREV = 1.0
+DEPXKBFILELIB =
+XKBFILELIB = -lxkbfile
+
+LINTXKBFILE = $(LINTLIBDIR)/llib-lxkbfile.ln
+
+ XKBCOMPCMD = $(XBINDIR)/xkbcomp
+
+ XKBUILIBSRC = $(LIBSRC)/xkbui
+
+SOXKBUIREV = 1.0
+DEPXKBUILIB =
+XKBUILIB = -lxkbui
+
+LINTXKBUI = $(LINTLIBDIR)/llib-lxkbui.ln
+
+EXTRAXAWREQS =
+
+EXTRAXAWCLIENTDEPLIBS =
+
+EXTRAXAWCLIENTLIBS =
+
+ XTRAPLIBSRC = $(LIBSRC)/XTrap
+
+SOXTRAPREV = 6.4
+DEPXTRAPLIB =
+XTRAPLIB = -lXTrap
+
+LINTXTRAP = $(LINTLIBDIR)/llib-lXTrap.ln
+
+ DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
+
+ DEPLIBS1 = $(DEPLIBS)
+ DEPLIBS2 = $(DEPLIBS)
+ DEPLIBS3 = $(DEPLIBS)
+ DEPLIBS4 = $(DEPLIBS)
+ DEPLIBS5 = $(DEPLIBS)
+ DEPLIBS6 = $(DEPLIBS)
+ DEPLIBS7 = $(DEPLIBS)
+ DEPLIBS8 = $(DEPLIBS)
+ DEPLIBS9 = $(DEPLIBS)
+ DEPLIBS10 = $(DEPLIBS)
+
+ XFTPRELOADPATTERN = libXft.so.?
+ XRENDERPRELOADPATTERN = libXrender.so.?
+ XFONTPRELOADPATTERN = libXfont*.so.?
+
+XMULIBONLY = -lXmu
+XMULIB = $(XMULIBONLY) $(XTOOLLIB) $(XLIB)
+
+ CONFIGDIR = $(LIBDIR)/config
+
+ USRLIBDIRPATH = $(USRLIBDIR)
+ LDPRELIBS = $(INSTALLED_LIBS)
+ LDPOSTLIBS =
+ TOP_INCLUDES = $(TOP_X_INCLUDES)
+ PROJECT_DEFINES =
+ VENDOR_DEFINES = -DXVENDORNAME='"$(VENDORNAME)"' -DXVENDORNAMESHORT='"$(VENDORNAMESHORT)"'
+
+CXXPROJECT_DEFINES =
+
+# ----------------------------------------------------------------------
+# start of Imakefile
+
+# Cannot compile in using Gcc
+# CC = cc
+
+LOCAL_LIBRARIES = $(XLIB)
+ DEPLIBS = $(DEPXLIB)
+ DEFINES = -DSHAPE
+
+ OBJS = CrosshairCursor.o
+ SRCS = CrosshairCursor.c
+
+ PROGRAM = CrosshairCursor
+
+all:: CrosshairCursor
+
+CrosshairCursor: $(OBJS) $(DEPLIBS)
+ $(RM) $@
+ $(CCLINK) -o $@ $(LDOPTIONS) $(OBJS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS)
+
+install:: CrosshairCursor
+ @if [ -d $(DESTDIR)$(BINDIR) ]; then \
+ set +x; \
+ else \
+ if [ -h $(DESTDIR)$(BINDIR) ]; then \
+ (set -x; rm -f $(DESTDIR)$(BINDIR)); \
+ fi; \
+ (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); \
+ fi
+ $(INSTALL) $(INSTALLFLAGS) $(INSTPGMFLAGS) CrosshairCursor $(DESTDIR)$(BINDIR)/CrosshairCursor
+
+all:: CrosshairCursor.$(MANNEWSUFFIX)
+
+CrosshairCursor.$(MANNEWSUFFIX): CrosshairCursor.$(MANSRCSUFFIX)
+ $(RM) $@
+ if test -z "$(PREPROCESSMANPAGES)" ; then \
+ cd `dirname CrosshairCursor` && \
+ $(LN) `basename CrosshairCursor.$(MANSRCSUFFIX)` `basename $@`; \
+ else \
+ $(RAWCPP) $(MANDEFS) $(EXTRAMANDEFS) \
+ < CrosshairCursor.$(MANSRCSUFFIX) | sed -e '/^# *[0-9][0-9]* *.*$$/d' -e '/^#line *[0-9][0-9]* *.*$$/d' -e '/^[ ]*XCOMM$$/s/XCOMM/#/' -e '/^[ ]*XCOMM[^a-zA-Z0-9_]/s/XCOMM/#/' -e '/^[ ]*XHASH/s/XHASH/#/' -e '/\@\@$$/s/\@\@$$/\\/' >$@; \
+ fi
+
+cleandir::
+ $(RM) CrosshairCursor.$(MANNEWSUFFIX)
+
+install.man:: CrosshairCursor.$(MANNEWSUFFIX)
+ @if [ -d $(DESTDIR)$(MANDIR) ]; then \
+ set +x; \
+ else \
+ if [ -h $(DESTDIR)$(MANDIR) ]; then \
+ (set -x; rm -f $(DESTDIR)$(MANDIR)); \
+ fi; \
+ (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); \
+ fi
+ $(INSTALL) $(INSTALLFLAGS) $(INSTMANFLAGS) CrosshairCursor.$(MANNEWSUFFIX) $(DESTDIR)$(MANDIR)/CrosshairCursor.$(MANSUFFIX)
+
+depend::
+ $(DEPEND) $(DEPENDFLAGS) -- $(ALLDEFINES) $(DEPEND_DEFINES) -- $(SRCS)
+
+lint:
+ $(LINT) $(LINTFLAGS) $(SRCS) $(LINTLIBS)
+lint1:
+ $(LINT) $(LINTFLAGS) $(FILE) $(LINTLIBS)
+
+cleandir::
+ $(RM) CrosshairCursor
+
+# ----------------------------------------------------------------------
+# common rules for all Makefiles - do not edit
+
+.c.i:
+ $(RM) $@
+ $(CC) -E $(CFLAGS) $(_NOOP_) $*.c > $@
+
+.SUFFIXES: .ii
+
+.cc.ii:
+ $(RM) $@
+ $(CC) -E $(CFLAGS) $(_NOOP_) $*.cc > $@
+
+.SUFFIXES: .s
+
+.c.s:
+ $(RM) $@
+ $(CC) -S $(CFLAGS) $(_NOOP_) $*.c
+
+.cc.s:
+ $(RM) $@
+ $(CC) -S $(CFLAGS) $(_NOOP_) $*.cc
+
+emptyrule::
+
+cleandir::
+ $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut "#"*
+
+Makefile::
+ -@if [ -f Makefile ]; then set -x; \
+ $(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \
+ else exit 0; fi
+ $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
+
+tags::
+ $(TAGS) -w *.[ch]
+ $(TAGS) -xw *.[ch] > TAGS
+
+man_keywords::
+
+html_index::
+
+clean:: cleandir
+
+distclean:: cleandir
+
+ PREPROCESSMANPAGES = true
+
+# ----------------------------------------------------------------------
+# empty rules for directories that do not have SUBDIRS - do not edit
+
+install::
+ @echo "install in $(CURRENT_DIR) done"
+
+install.man::
+ @echo "install.man in $(CURRENT_DIR) done"
+
+install.sdk::
+ @echo "install.sdk in $(CURRENT_DIR) done"
+
+Makefiles::
+
+includes::
+
+depend::
+
+distclean::
+ $(RM) Makefile Makefile.dep
+
+# ----------------------------------------------------------------------
+# dependencies generated by makedepend
+
diff --git a/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/Makefile.bak b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/Makefile.bak
new file mode 100644
index 00000000000..0b54f8ff6ed
--- /dev/null
+++ b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/CrosshairCursor/Makefile.bak
@@ -0,0 +1,1181 @@
+# Makefile generated by imake - do not edit!
+
+# ----------------------------------------------------------------------
+# Makefile generated from "Imake.tmpl" and
+# $Xorg: Imake.tmpl,v 1.4 2000/08/17 19:41:46 cpqbld Exp $
+# $XdotOrg: xc/config/cf/Imake.tmpl,v 1.9 2005/01/24 06:37:31 daniels Exp $
+#
+#
+#
+#
+# $XFree86: xc/config/cf/Imake.tmpl,v 3.155 2003/12/24 18:58:41 dickey Exp $
+# ----------------------------------------------------------------------
+
+all::
+
+.SUFFIXES: .i
+
+# $XdotOrg: xc/config/cf/Imake.cf,v 1.7 2005/03/02 11:20:29 gisburn Exp $
+# $Xorg: Imake.cf,v 1.4 2000/08/17 19:41:45 cpqbld Exp $
+
+# $XFree86: xc/config/cf/Imake.cf,v 3.88 2003/12/16 21:30:21 herrb Exp $
+
+# -----------------------------------------------------------------------
+# site-specific configuration parameters that need to come before
+# the platform-specific parameters - edit site.def to change
+
+# site: $TOG: site.sample /main/r64_final/1 1998/02/05 16:28:49 kaleb $
+
+# site: $XFree86: xc/config/cf/site.def,v 3.24 2000/06/25 20:17:29 dawes Exp $
+
+# $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $
+
+# ----------------------------------------------------------------------
+# platform-specific configuration parameters - edit linux.cf to change
+
+# $XdotOrg: xc/config/cf/linux.cf,v 1.24 2005/03/06 01:05:00 branden Exp $
+# platform: $Xorg: linux.cf,v 1.3 2000/08/17 19:41:47 cpqbld Exp $
+
+# platform: $XFree86: xc/config/cf/linux.cf,v 3.220 2003/12/30 22:38:33 tsi Exp $
+
+# operating system: Linux 6.8.0-107-generic x86_64 [ELF] (6.8.0)
+# libc: (6.39.0)
+# binutils: (242)
+
+# $Xorg: lnxLib.rules,v 1.3 2000/08/17 19:41:47 cpqbld Exp $
+# $XFree86: xc/config/cf/lnxLib.rules,v 3.52 2003/10/31 20:49:03 herrb Exp $
+
+# $XdotOrg: xc/config/cf/xorg.cf,v 1.44 2005/01/27 03:50:46 ajax Exp $
+
+# $Xorg: xfree86.cf,v 1.4 2000/08/17 19:41:49 cpqbld Exp $
+
+XORG_VERSION_CURRENT = (((7) * 10000000) + ((7) * 100000) + ((0) * 1000) + 0)
+RELEASE_VERSION = RELEASE-1
+
+AFB_DEFS = -DUSE_AFB
+
+DRIVERSDKDIR = $(USRLIBDIR)/Server
+DRIVERSDKMODULEDIR = $(USRLIBDIR)/Server/modules
+DRIVERSDKINCLUDEDIR = $(USRLIBDIR)/Server/include
+
+ XF86SRC = $(SERVERSRC)/hw/xfree86
+ XF86COMSRC = $(XF86SRC)/common
+ XF86PARSERSRC = $(XF86SRC)/parser
+ XF86OSSRC = $(XF86SRC)/os-support
+ XF86DRIVERSRC = $(XF86SRC)/drivers
+ DRIVERSRC = $(XF86DRIVERSRC)
+
+ XFREE86DOCDIR = $(DOCDIR)
+ XFREE86PSDOCDIR = $(DOCPSDIR)
+ XFREE86PDFDOCDIR = $(DOCPDFDIR)
+ XFREE86HTMLDOCDIR = $(DOCHTMLDIR)
+XFREE86JAPANESEDOCDIR = $(DOCDIR)/Japanese
+
+# $Xorg: xf86.rules,v 1.3 2000/08/17 19:41:48 cpqbld Exp $
+
+# $XFree86: xc/config/cf/xf86.rules,v 3.34tsi Exp $
+
+ SELINUX_LDFLAGS =
+
+ SELINUX_INCLUDES = -I/usr/include/selinux
+
+ SELINUX_CFLAGS = -DHAVE_SELINUX
+
+ SELINUX_LIBS = -lselinux
+
+# ----------------------------------------------------------------------
+# site-specific configuration parameters that go after
+# the platform-specific parameters - edit site.def to change
+
+# site: $TOG: site.sample /main/r64_final/1 1998/02/05 16:28:49 kaleb $
+
+# site: $XFree86: xc/config/cf/site.def,v 3.24 2000/06/25 20:17:29 dawes Exp $
+
+# ---------------------------------------------------------------------
+# Imake rules for building libraries, programs, scripts, and data files
+# rules: $Xorg: Imake.rules,v 1.3 2000/08/17 19:41:46 cpqbld Exp $
+# rules: $XdotOrg: xc/config/cf/Imake.rules,v 1.8 2005/02/01 22:27:00 ajax Exp $
+#
+#
+#
+#
+# rules: $XFree86: xc/config/cf/Imake.rules,v 3.128 2003/11/15 03:25:17 dawes Exp $
+
+.PHONY: all interfaces install install.man install.lib install.sdk depend includes cleandir
+
+ _NULLCMD_ = @ echo -n
+
+X_BYTE_ORDER = X_LITTLE_ENDIAN
+
+GLIDE2INCDIR =
+
+GLIDE3INCDIR = /usr/include/glide3
+
+GLIDE3LIBNAME = glide3
+
+TKLIBNAME = tk8.4
+
+TKLIBDIR = /usr/lib
+
+TCLLIBNAME = tcl8.4
+
+TCLIBDIR = /usr/lib
+
+ PATHSEP = /
+ SHELL = /bin/sh -e
+
+ TOP = .
+ CURRENT_DIR = .
+
+ IMAKE = imake
+ DEPEND = gccmakedep
+ MKDIRHIER = mkdir -p
+ REVPATH = revpath
+ EXPORTLISTGEN =
+ RMAN = /usr/bin/rman
+ RMANBASENAME = rman
+ RMANOPTIONS =
+ CONFIGSRC = $(TOP)/config
+ IMAKESRC = $(CONFIGSRC)/imake
+ DEPENDSRC = $(CONFIGSRC)/util
+
+ INCROOT = /usr/include
+ USRLIBDIR = /usr/lib
+ VARDIR = /var
+ VARLIBDIR = $(VARDIR)/lib
+ SYSTEMUSRLIBDIR = /usr/lib
+ SYSTEMUSRINCDIR = /usr/include
+ SHLIBDIR = /usr/lib
+ LINTLIBDIR = $(USRLIBDIR)/lint
+ MANPATH = /usr/share/man
+ MANSOURCEPATH = $(MANPATH)/man
+ MANDIR = $(MANSOURCEPATH)$(MANSECT)
+ SYSCALLMANDIR = $(MANSOURCEPATH)$(SYSCALLMANSECT)
+ LIBMANDIR = $(MANSOURCEPATH)$(LIBMANSECT)
+ DRIVERMANDIR = $(MANSOURCEPATH)4
+ FILEMANDIR = $(MANSOURCEPATH)$(FILEMANSECT)
+ GAMEMANDIR = $(MANSOURCEPATH)$(GAMEMANSECT)
+ MISCMANDIR = $(MANSOURCEPATH)7
+ ADMMANDIR = $(MANSOURCEPATH)$(ADMMANSECT)
+ ICONDIR = "/usr/share/icons"
+ XCURSORPATH = "~/.icons:/usr/share/icons:/usr/share/pixmaps"
+ DRIVERMANDIR = $(MANSOURCEPATH)4
+ LOGDIRECTORY = $(VARDIR)/log
+
+ VARRUNDIR = $(VARDIR)/run
+
+ VARDBDIR = $(VARDIR)/lib
+
+ AR = ar cq
+
+# Nice try but useless: make will inherit BOOTSTRAPCFLAGS
+# from top Makefile
+ BOOTSTRAPCFLAGS =
+
+ CC = gcc
+ AS = gcc -c -x assembler
+
+.SUFFIXES: .cc
+
+ CXX = c++
+
+ CXXFILT = c++filt
+
+ CXXLIB = -lstdc++
+
+ CXXDEBUGFLAGS = -g -O2 -fno-strict-aliasing
+CXXDEPENDINCLUDES =
+ CXXEXTRA_DEFINES =
+CXXEXTRA_INCLUDES =
+ CXXSTD_DEFINES = -Dlinux -D__amd64__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(CXXPROJECT_DEFINES)
+ CXXOPTIONS =
+ CXXINCLUDES = $(INCLUDES) $(TOP_INCLUDES) $(CXXEXTRA_INCLUDES)
+ CXXDEFINES = $(CXXINCLUDES) $(CXXSTD_DEFINES) $(THREADS_CXXDEFINES) $(DEFINES) $(CXXEXTRA_DEFINES)
+ CXXFLAGS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(THREADS_CXXFLAGS) $(CXXDEFINES)
+
+ COMPRESS = compress
+ GZIPCMD = gzip -n
+
+ CPP = cpp $(STD_CPP_DEFINES)
+ RAWCPP = cpp -undef $(STD_CPP_OPTIONS)
+ PREPROCESSCMD = gcc -E $(STD_CPP_DEFINES)
+
+ INSTALL = install
+ INSTALLFLAGS = -c
+
+ LD = gcc -nostdlib
+
+ LEX = flex -l
+ M4 = m4
+ M4FLAGS =
+ LEXLIB = -lfl
+ YACC = bison -y
+ CCYACC = bison -y
+
+ LINT = lint
+
+ LINTLIBFLAG = -C
+ LINTOPTS = -axz
+ LN = ln -s
+ MAKE = make
+ MV = mv -f
+ CP = cp
+
+ RANLIB = ranlib
+
+ RANLIBINSTFLAGS =
+
+ RM = rm -f
+ PERL = perl
+ PERLOPTS =
+ PERLENVSETUP = env LC_ALL=C
+
+ MANSECT = 1
+ SYSCALLMANSECT = 2
+ LIBMANSECT = 3
+ DRIVERMANSECT = 4
+ FILEMANSECT = 5
+ GAMEMANSECT = 6
+ MISCMANSECT = 7
+ ADMMANSECT = 8
+ MANSRCSECT = s
+ MANNEWSECT = n
+ PROJECTMANSUFFIX = x
+ MANSUFFIX = $(MANSECT)$(PROJECTMANSUFFIX)
+ SYSCALLMANSUFFIX = $(SYSCALLMANSECT)$(PROJECTMANSUFFIX)
+ LIBMANSUFFIX = $(LIBMANSECT)$(PROJECTMANSUFFIX)
+ DRIVERMANSUFFIX = 4x
+ FILEMANSUFFIX = $(FILEMANSECT)$(PROJECTMANSUFFIX)
+ GAMEMANSUFFIX = $(GAMEMANSECT)$(PROJECTMANSUFFIX)
+ MISCMANSUFFIX = 7x
+ ADMMANSUFFIX = $(ADMMANSECT)$(PROJECTMANSUFFIX)
+ ADMINMANSUFFIX = 8
+ MANSRCSUFFIX = man
+ MANNEWSUFFIX = _man
+ MANDEFS = -D__apploaddir__=$(XAPPLOADDIR) -D__filemansuffix__=$(FILEMANSECT)$(PROJECTMANSUFFIX) -D__osfilemansuffix__=$(FILEMANSECT) -D__libmansuffix__=$(LIBMANSECT)$(PROJECTMANSUFFIX) -D__oslibmansuffix__=$(LIBMANSECT) -D__mansuffix__=$(MANSECT)$(PROJECTMANSUFFIX) -D__osmansuffix__=$(MANSECT) -D__syscallmansuffix__=$(SYSCALLMANSECT)$(PROJECTMANSUFFIX) -D__ossysmansuffix__=$(SYSCALLMANSECT) -D__gamemansuffix__=$(GAMEMANSECT)$(PROJECTMANSUFFIX) -D__osgamemansuffix__=$(GAMEMANSECT) -D__miscmansuffix__=$(MISCMANSECT)$(PROJECTMANSUFFIX) -D__osmiscmansuffix__=$(MISCMANSECT) -D__admmansuffix__=$(ADMMANSECT)$(PROJECTMANSUFFIX) -D__osadmmansuffix__=$(ADMMANSECT) -D__miscmansuffix__=$(MISCMANSECT)$(PROJECTMANSUFFIX) -D__osmiscmansuffix__=$(MISCMANSECT) -D__drivermansuffix__=$(DRIVERMANSECT)$(PROJECTMANSUFFIX) -D__osdrivermansuffix__=$(DRIVERMANSECT) -D__adminmansuffix__=$(ADMINMANSUFFIX) -D__projectroot__=$(PROJECTROOT) -D__xconfigfile__=$(XCONFIGFILE) -D__xconfigdir__=$(XCONFIGDIR) -D__xlogfile__=$(XLOGFILE) -D__xservername__=$(XSERVERNAME) -D__appmansuffix__=$(MANSECT)$(PROJECTMANSUFFIX) $(XORGMANDEFS) $(VENDORMANDEFS)
+
+ COMPRESSMANCMD = gzip -n
+
+ TROFF = groff -Tps
+ NROFF = nroff
+
+ MSMACROS = -ms
+ MANMACROS = -man
+ TBL = tbl
+ EQN = eqn
+ NEQN = neqn
+ COL = col
+ COLFLAGS = -b
+
+ MODCC = gcc
+
+ MODCPP = cpp
+ MODCFLAGS = $(CFLAGS)
+ MODAS = gcc -c -x assembler
+ MODASFLAGS =
+
+ MODLD = gcc -nostdlib
+
+ MODLDFLAGS =
+MODLDCOMBINEFLAGS = -r
+ MODAR = ar cq
+
+ MODRANLIB = ranlib
+
+ DVIPS = dvips
+ LATEX = latex
+
+ STD_INCLUDES =
+ STD_CPP_OPTIONS = -traditional
+ STD_CPP_DEFINES = -traditional -Dlinux -D__amd64__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(PROJECT_DEFINES)
+ STD_DEFINES = -Dlinux -D__amd64__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(PROJECT_DEFINES)
+ EXTRA_LOAD_FLAGS =
+ EXTRA_LDOPTIONS =
+ EXTRA_LIBRARIES =
+ TAGS = ctags
+
+ PARALLELMFLAGS =
+
+ SHAREDCODEDEF =
+ SHLIBDEF =
+
+ SHLIBLDFLAGS = -shared $(SHLIBGLOBALSFLAGS)
+
+ NOSTDLIB = -nostdlib
+ POSTNOSTDLIB = -Wl,-Bstatic -lgcc -Wl,-Bdynamic
+
+ PICFLAGS = -fPIC
+
+ CXXPICFLAGS = -fPIC
+
+ PROTO_DEFINES = -DFUNCPROTO=15 -DNARROWPROTO
+
+ INSTPGMFLAGS =
+
+ INSTBINFLAGS = -m 0755
+ INSTUIDFLAGS = -m 4711
+ INSTLIBFLAGS = -m 0644
+ INSTINCFLAGS = -m 0444
+ INSTMANFLAGS = -m 0444
+ INSTDATFLAGS = -m 0444
+ INSTKMEMFLAGS = -m 4711
+
+ PROJECTROOT = /usr
+
+ CDEBUGFLAGS = -g -O2 -fno-strict-aliasing
+ CCOPTIONS =
+
+ ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(INSTALLED_INCLUDES) $(STD_INCLUDES)
+ ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(THREADS_DEFINES) $(MODULE_DEFINES) $(DEFINES) $(EXTRA_DEFINES)
+ CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(MODULE_CFLAGS) $(ALLDEFINES)
+ LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) $(DEPEND_DEFINES)
+ LDPRELIB = $(INSTALLED_LIBS)
+ LDPOSTLIB =
+ LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_LDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
+ CXXLDOPTIONS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_CXXLDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
+
+ LDLIBS = $(LDPOSTLIBS) $(THREADS_LIBS) $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
+
+ CCLINK = $(CC)
+
+ CXXLINK = $(CXX)
+
+ LDSTRIPFLAGS = -x
+ LDCOMBINEFLAGS = -r
+ DEPENDFLAGS =
+ DEPEND_DEFINES =
+
+# Not sure this belongs here
+ TKLIBDIR = /usr/lib
+ TKINCDIR = /usr/include
+ TKLIBNAME = tk8.4
+ TKLIBRARY = -L$(TKLIBDIR) -l$(TKLIBNAME)
+ TCLLIBDIR = /usr/lib
+ TCLINCDIR = /usr/include
+ TCLLIBNAME = tcl8.4
+ TCLLIBRARY = -L$(TCLLIBDIR) -l$(TCLLIBNAME)
+
+ MACROFILE = linux.cf
+ RM_CMD = $(RM)
+
+ IMAKE_DEFINES =
+ IMAKE_WARNINGS = -Wundef
+
+ IRULESRC = $(CONFIGDIR)
+ IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES) $(IMAKE_WARNINGS)
+
+ ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/X11.tmpl $(IRULESRC)/site.def $(IRULESRC)/$(MACROFILE) $(IRULESRC)/xfree86.cf $(IRULESRC)/xf86.rules $(IRULESRC)/xorgsite.def $(IRULESRC)/host.def $(EXTRA_ICONFIGFILES)
+
+# $Xorg: X11.rules,v 1.4 2000/08/17 19:41:46 cpqbld Exp $
+
+# $XFree86: xc/config/cf/X11.rules,v 1.6 2001/01/17 16:22:31 dawes Exp $
+
+# ----------------------------------------------------------------------
+# X Window System Build Parameters and Rules
+# $XdotOrg: xc/config/cf/X11.tmpl,v 1.52 2005/09/22 23:54:18 alanc Exp $
+# $Xorg: X11.tmpl,v 1.6 2000/08/17 19:41:46 cpqbld Exp $
+#
+#
+#
+#
+# $XFree86: xc/config/cf/X11.tmpl,v 1.248 2004/02/16 04:07:37 dawes Exp $
+
+XORGRELSTRING = `echo 7 7 0 | sed -e 's/ /./g' -e 's/^/Version\\\ /'`
+ XORGMANNAME = X Version 11
+
+STICKY_DEFINES = -DHAS_STICKY_DIR_BIT
+
+FCHOWN_DEFINES = -DHAS_FCHOWN
+
+# -----------------------------------------------------------------------
+# X Window System make variables; these need to be coordinated with rules
+
+ XTOP = $(TOP)
+ BINDIR = /usr/bin
+ BUILDINCROOT = $(TOP)/exports
+ BUILDINCDIR = $(BUILDINCROOT)/include
+ BUILDINCTOP = ../..
+ BUILDLIBDIR = $(TOP)/exports/lib
+ BUILDLIBTOP = ../..
+ BUILDBINDIR = $(TOP)/exports/bin
+ BUILDBINTOP = ../..
+ BUILDMODULEDIR = $(BUILDLIBDIR)/modules
+ BUILDI18NDIR = $(BUILDLIBDIR)/locale
+ BUILDMODULETOP = $(BUILDLIBTOP)/..
+ XBUILDINCROOT = $(XTOP)/exports
+ XBUILDINCDIR = $(XBUILDINCROOT)/include/X11
+ XBUILDINCTOP = ../../..
+ XBUILDBINDIR = $(XBUILDINCROOT)/bin
+ INCDIR = $(INCROOT)
+ ADMDIR = /usr/adm
+ LIBDIR = /usr/lib/X11
+ SHAREDIR = /usr/share/X11
+ LIBEXECDIR = /usr/libexec
+ MODULEDIR = $(USRLIBDIR)/modules
+ TOP_X_INCLUDES =
+ XBINDIR = $(PROJECTROOT)/bin
+
+ INSTSRCDIR = /usr/src
+
+ ETCX11DIR = /etc/X11
+
+ CONFDIR = $(ETCX11DIR)
+
+ DOCDIR = $(LIBDIR)/doc
+ DOCHTMLDIR = $(DOCDIR)/html
+ DOCPSDIR = $(DOCDIR)/PostScript
+ DOCPDFDIR = $(DOCDIR)/PDF
+ FONTDIR = ${datarootdir}/fonts/X11
+ FONTROOTDIR = ${datarootdir}/fonts/X11
+ ENCODINGSDIR = ${FONTROOTDIR}/encodings
+ XINITDIR = $(LIBDIR)/xinit
+ XDMDIR = $(LIBDIR)/xdm
+ XDMVARDIR = $(VARLIBDIR)/xdm
+ TWMDIR = $(LIBDIR)/twm
+ XSMDIR = $(LIBDIR)/xsm
+ NLSDIR = $(LIBDIR)/nls
+ XLOCALEDIR = $(LIBDIR)/locale
+ LBXPROXYDIR = $(LIBDIR)/lbxproxy
+ PROXYMANAGERDIR = $(LIBDIR)/proxymngr
+ XPRINTDIR = $(LIBDIR)/xserver
+ XAPPLOADDIR = /etc/X11/app-defaults
+ FONTCFLAGS = -t
+
+ INSTAPPFLAGS = $(INSTDATFLAGS)
+
+ RGB = $(XBINDIR)/rgb
+ FONTC = $(XBINDIR)/bdftopcf
+ MKFONTSCALE = $(XBINDIR)/mkfontscale
+ MKFONTDIR = $(XBINDIR)/mkfontdir
+ MKHTMLINDEX = $(XBINDIR)/mkhtmlindex
+ UCS2ANY = $(XBINDIR)/ucs2any
+ BDFTRUNCATE = $(XBINDIR)/bdftruncate
+ UCSMAPPREFIX = $(FONTDIR)/util/map-
+ XCURSORGEN = $(XBINDIR)/xcursorgen
+
+ HTMLINDEXCMD = HtmlIndexCmd
+
+ DOCUTILSRC = $(XTOP)/doc/util
+ CLIENTSRC = $(TOP)/clients
+ DEMOSRC = $(TOP)/demos
+ XDOCMACROS = $(DOCUTILSRC)/macros.t
+ XIDXMACROS = $(DOCUTILSRC)/indexmacros.t
+ PROGRAMSRC = $(TOP)/programs
+ LIBSRC = $(XTOP)/lib
+ FONTSRC = $(XTOP)/fonts
+ ENCODINGSSRC = $(FONTSRC)/encodings
+ INCLUDESRC = $(BUILDINCROOT)/include
+ XINCLUDESRC = $(INCLUDESRC)/X11
+ SERVERSRC = $(XTOP)/programs/Xserver
+ CONTRIBSRC = $(XTOP)/../contrib
+ UNSUPPORTEDSRC = $(XTOP)/unsupported
+ DOCSRC = $(XTOP)/doc
+ RGBSRC = $(XTOP)/programs/rgb
+ BDFTOPCFSRC = $(PROGRAMSRC)/bdftopcf
+ MKFONTDIRSRC = $(PROGRAMSRC)/mkfontdir
+ FONTSERVERSRC = $(PROGRAMSRC)/xfs
+ FONTINCSRC = $(XTOP)/include/fonts
+ EXTINCSRC = $(XTOP)/include/extensions
+ FTSOURCEDIR = FreeTypeSrcDir
+ DRMSRCDIR = $(TOP)/extras/drm
+ MESASRCDIR = $(TOP)/extras/Mesa
+ OGLSAMPLESRCDIR = $(TOP)/extras/ogl-sample
+ PSWRAPSRC = $(XTOP)/config/pswrap
+ TRANSCOMMSRC = $(LIBSRC)/xtrans
+ TRANS_INCLUDES = -I$(TRANSCOMMSRC)
+ CONNECTION_FLAGS = -DUNIXCONN -DTCPCONN $(STICKY_DEFINES) $(FCHOWN_DEFINES) -DIPv6
+XTRANS_FAILDEFINES = -DFAIL_HARD
+
+ VENDORMANNAME = X.Org
+ VENDORMANVERSION = `echo 7 7 0 | sed -e 's/ /./g' -e 's/^/Version\\\ /'`
+ XORGMANDEFS = -D__xorgversion__="\"$(XORGRELSTRING)\" \"$(XORGMANNAME)\""
+ VENDORMANDEFS = -D__vendorversion__="$(VENDORMANVERSION) $(VENDORMANNAME)"
+ VENDORNAME = The X.Org Foundation
+ VENDORNAMESHORT = X.Org
+
+ VENDORWEBSUPPORT = http://wiki.X.Org
+
+VENDORSUPPORTDEFS = -D__VENDORDWEBSUPPORT__='"$(VENDORWEBSUPPORT)"'
+
+ XKBDEFRULES = xorg
+ XKBDEFRULESDEFS = -D__XKBDEFRULES__='"$(XKBDEFRULES)"'
+
+ XCONFIGFILE = xorg.conf
+ XCONFIGDIR = $(LIBDIR)
+ XLOGFILE = Xorg
+ XSERVERNAME = Xorg
+
+ XENVLIBDIR = $(USRLIBDIR)
+ CLIENTENVSETUP = LD_LIBRARY_PATH=$(XENVLIBDIR) XLOCALEDIR=$(BUILDLIBDIR)/locale
+
+# $Xorg: lnxLib.tmpl,v 1.3 2000/08/17 19:41:47 cpqbld Exp $
+# $XFree86: xc/config/cf/lnxLib.tmpl,v 3.19 2003/10/15 22:47:48 herrb Exp $
+
+ XLIBSRC = $(LIBSRC)/X11
+
+SOXLIBREV = 6.2
+DEPXONLYLIB =
+XONLYLIB = -lX11
+
+LINTXONLY = $(LINTLIBDIR)/llib-lX11.ln
+
+ DEPXLIBONLY = $(DEPXONLYLIB)
+ XLIBONLY = $(XONLYLIB)
+ LINTXONLYLIB = $(LINTXONLY)
+
+ XEXTLIBSRC = $(LIBSRC)/Xext
+
+SOXEXTREV = 6.4
+DEPEXTENSIONLIB =
+EXTENSIONLIB = -lXext
+
+LINTEXTENSION = $(LINTLIBDIR)/llib-lXext.ln
+
+LINTEXTENSIONLIB = $(LINTEXTENSION)
+ DEPXLIB = $(DEPEXTENSIONLIB) $(DEPXONLYLIB)
+ XLIB = $(EXTENSIONLIB) $(XONLYLIB)
+ LINTXLIB = $(LINTXONLYLIB)
+
+ XSSLIBSRC = $(LIBSRC)/Xss
+
+SOXSSREV = 1.0
+DEPXSSLIB =
+XSSLIB = -lXss
+
+LINTXSS = $(LINTLIBDIR)/llib-lXss.ln
+
+ XXF86MISCLIBSRC = $(LIBSRC)/Xxf86misc
+
+SOXXF86MISCREV = 1.1
+DEPXXF86MISCLIB =
+XXF86MISCLIB = -lXxf86misc
+
+LINTXXF86MISC = $(LINTLIBDIR)/llib-lXxf86misc.ln
+
+ XXF86VMLIBSRC = $(LIBSRC)/Xxf86vm
+
+SOXXF86VMREV = 1.0
+DEPXXF86VMLIB =
+XXF86VMLIB = -lXxf86vm
+
+LINTXXF86VM = $(LINTLIBDIR)/llib-lXxf86vm.ln
+
+ XXF86DGALIBSRC = $(LIBSRC)/Xxf86dga
+
+SOXXF86DGAREV = 1.0
+DEPXXF86DGALIB =
+XXF86DGALIB = -lXxf86dga
+
+LINTXXF86DGA = $(LINTLIBDIR)/llib-lXxf86dga.ln
+
+ XXF86RUSHLIBSRC = $(LIBSRC)/Xxf86rush
+
+SOXXF86RUSHREV = 1.0
+DEPXXF86RUSHLIB =
+XXF86RUSHLIB = -lXxf86rush
+
+LINTXXF86RUSH = $(LINTLIBDIR)/llib-lXxf86rush.ln
+
+ XVLIBSRC = $(LIBSRC)/Xv
+
+SOXVREV = 1.0
+DEPXVLIB =
+XVLIB = -lXv
+
+LINTXV = $(LINTLIBDIR)/llib-lXv.ln
+
+ XVMCLIBSRC = $(LIBSRC)/XvMC
+
+SOXVMCREV = 1.0
+DEPXVMCLIB =
+XVMCLIB = -lXvMC
+
+LINTXVMC = $(LINTLIBDIR)/llib-lXvMC.ln
+
+ XINERAMALIBSRC = $(LIBSRC)/Xinerama
+
+SOXINERAMAREV = 1.0
+DEPXINERAMALIB =
+XINERAMALIB = -lXinerama
+
+LINTXINERAMA = $(LINTLIBDIR)/llib-lXinerama.ln
+
+ XRESLIBSRC = $(LIBSRC)/XRes
+
+SOXRESREV = 1.0
+DEPXRESLIB =
+XRESLIB = -lXRes
+
+LINTXRES = $(LINTLIBDIR)/llib-lXRes.ln
+
+ DMXLIBSRC = $(LIBSRC)/dmx
+
+SODMXREV = 1.0
+DEPDMXLIB =
+DMXLIB = -ldmx
+
+LINTDMX = $(LINTLIBDIR)/llib-ldmx.ln
+
+ DPSLIBSRC = $(LIBSRC)/dps
+
+DEPDPSLIB = $(USRLIBDIR)/libdps.a
+DPSLIB = -ldps
+
+LINTDPS = $(LINTLIBDIR)/llib-ldps.ln
+
+ DPSTKLIBSRC = $(LIBSRC)/dpstk
+
+DEPDPSTKLIB = $(USRLIBDIR)/libdpstk.a
+DPSTKLIB = -ldpstk
+
+LINTDPSTK = $(LINTLIBDIR)/llib-ldpstk.ln
+
+ PSRESLIBSRC = $(LIBSRC)/psres
+
+DEPPSRESLIB = $(USRLIBDIR)/libpsres.a
+PSRESLIB = -lpsres
+
+LINTPSRES = $(LINTLIBDIR)/llib-lpsres.ln
+
+ GLULIBSRC = $(LIBSRC)/GLU
+
+SOGLUREV = 1.3
+DEPGLULIB =
+GLULIB = -lGLU
+
+LINTGLU = $(LINTLIBDIR)/llib-lGLU.ln
+
+ GLXLIBSRC = $(LIBSRC)/GL
+
+SOGLREV = 1.2
+DEPGLXLIB =
+GLXLIB = -lGL
+
+LINTGLX = $(LINTLIBDIR)/llib-lGL.ln
+
+ GLWIDGETSRC = $(LIBSRC)/GLw
+
+DEPGLWLIB = $(USRLIBDIR)/libGLw.a
+GLWLIB = -lGLw
+
+LINTGLW = $(LINTLIBDIR)/llib-lGLw.ln
+
+XRENDERDIR = /usr
+XRENDERLIBDIR = /usr/lib
+XRENDERINCDIR = /usr/include
+XRENDERLIB = -L$(XRENDERLIBDIR) -lXrender
+DEPXRENDERLIB =
+
+XRENDERINCLUDES = -I$(XRENDERINCDIR)
+
+ XRANDRLIBSRC = $(LIBSRC)/Xrandr
+
+SOXRANDRREV = 2.0
+DEPXRANDRLIB =
+XRANDRLIB = -lXrandr
+
+LINTXRANDR = $(LINTLIBDIR)/llib-lXrandr.ln
+
+ XFIXESLIBSRC = $(LIBSRC)/Xfixes
+
+SOXFIXESREV = 3.0
+DEPXFIXESLIB =
+XFIXESLIB = -lXfixes
+
+LINTXFIXES = $(LINTLIBDIR)/llib-lXfixes.ln
+
+ XDAMAGELIBSRC = $(LIBSRC)/Xdamage
+
+SOXDAMAGEREV = 1.0
+DEPXDAMAGELIB =
+XDAMAGELIB = -lXdamage
+
+LINTXDAMAGE = $(LINTLIBDIR)/llib-lXdamage.ln
+
+XCOMPOSITELIBSRC = $(LIBSRC)/Xcomposite
+
+SOXCOMPOSITEREV = 1.0
+DEPXCOMPOSITELIB =
+XCOMPOSITELIB = -lXcomposite
+
+LINTXCOMPOSITE = $(LINTLIBDIR)/llib-lXcomposite.ln
+
+XEVIELIBSRC = $(LIBSRC)/Xevie
+
+SOXEVIEREV = 1.0
+DEPXEVIELIB =
+XEVIELIB = -lXevie
+
+LINTXEVIE = $(LINTLIBDIR)/llib-lXevie.ln
+
+XCURSORDIR = /usr
+XCURSORLIBDIR = /usr/lib
+XCURSORINCDIR = /usr/include
+XCURSORLIB = -L$(XCURSORLIBDIR) -lXcursor
+
+XCURSORINCLUDES=-I$(XCURSORINCDIR) $(XRENDERINCLUDES)
+
+ APPLEWMLIBSRC = $(LIBSRC)/apple
+
+DEPAPPLEWMLIB = $(USRLIBDIR)/libAppleWM.a
+APPLEWMLIB = -lAppleWM
+
+LINTAPPLEWM = $(LINTLIBDIR)/llib-lAppleWM.ln
+
+ WINDOWSWMLIBSRC = $(LIBSRC)/windows
+
+DEPWINDOWSWMLIB = $(USRLIBDIR)/libWindowsWM.a
+WINDOWSWMLIB = -lWindowsWM
+
+LINTWINDOWSWM = $(LINTLIBDIR)/llib-lWindowsWM.ln
+
+ XFONTCACHELIBSRC = $(LIBSRC)/Xfontcache
+
+DEPXFONTCACHELIB = $(USRLIBDIR)/libXfontcache.a
+XFONTCACHELIB = -lXfontcache
+
+LINTXFONTCACHE = $(LINTLIBDIR)/llib-lXfontcache.ln
+
+ XAUTHSRC = $(LIBSRC)/Xau
+
+SOXAUTHREV = 6.0
+DEPXAUTHLIB =
+XAUTHLIB = -lXau
+
+LINTXAUTH = $(LINTLIBDIR)/llib-lXau.ln
+
+ XDMCPLIBSRC = $(LIBSRC)/Xdmcp
+
+SOXDMCPREV = 6.0
+DEPXDMCPLIB =
+XDMCPLIB = -lXdmcp
+
+LINTXDMCP = $(LINTLIBDIR)/llib-lXdmcp.ln
+
+ XMUSRC = $(LIBSRC)/Xmu
+
+SOXMUREV = 6.2
+DEPXMULIB =
+XMULIB = -lXmu
+
+LINTXMU = $(LINTLIBDIR)/llib-lXmu.ln
+
+ XMUUSRC = $(LIBSRC)/Xmuu
+
+SOXMUUREV = 1.0
+DEPXMUULIB =
+XMUULIB = -lXmuu
+
+LINTXMUU = $(LINTLIBDIR)/llib-lXmuu.ln
+
+ OLDXLIBSRC = $(LIBSRC)/oldX
+
+DEPOLDXLIB = $(USRLIBDIR)/liboldX.a
+OLDXLIB = -loldX
+
+LINTOLDX = $(LINTLIBDIR)/llib-loldX.ln
+
+ XPLIBSRC = $(LIBSRC)/Xp
+
+SOXPREV = 6.2
+DEPXPLIB =
+XPLIB = -lXp
+
+LINTXP = $(LINTLIBDIR)/llib-lXp.ln
+
+ TOOLKITSRC = $(LIBSRC)/Xt
+
+SOXTREV = 6.0
+DEPXTOOLONLYLIB =
+XTOOLONLYLIB = -lXt
+
+LINTXTOOLONLY = $(LINTLIBDIR)/llib-lXt.ln
+
+ DEPXTOOLLIB = $(DEPXTOOLONLYLIB) $(DEPSMLIB) $(DEPICELIB)
+ XTOOLLIB = $(XTOOLONLYLIB) $(SMLIB) $(ICELIB)
+ LINTXTOOLLIB = $(LINTXTOOLONLYLIB)
+
+ XALIBSRC = $(LIBSRC)/Xa
+
+SOXAREV = 1.0
+DEPXALIB =
+XALIB = -lXa
+
+LINTXA = $(LINTLIBDIR)/llib-lXa.ln
+
+ AWIDGETSRC = $(LIBSRC)/Xaw
+
+SOXAWREV = 8.0
+DEPXAWLIB =
+XAWLIB = -lXaw
+
+LINTXAW = $(LINTLIBDIR)/llib-lXaw.ln
+
+ AWIDGET7SRC = $(LIBSRC)/Xaw7
+
+SOXAW7REV = 7.0
+DEPXAW7LIB =
+XAW7LIB = -lXaw
+
+LINTXAW7 = $(LINTLIBDIR)/llib-lXaw.ln
+
+ AWIDGET6SRC = $(LIBSRC)/Xaw6
+
+SOXAW6REV = 6.1
+DEPXAW6LIB =
+XAW6LIB = -lXaw
+
+LINTXAW6 = $(LINTLIBDIR)/llib-lXaw.ln
+
+ XILIBSRC = $(LIBSRC)/Xi
+
+SOXINPUTREV = 6.0
+DEPXILIB =
+XILIB = -lXi
+
+LINTXI = $(LINTLIBDIR)/llib-lXi.ln
+
+ XTESTLIBSRC = $(LIBSRC)/Xtst
+
+SOXTESTREV = 6.1
+DEPXTESTLIB =
+XTESTLIB = -lXtst
+
+LINTXTEST = $(LINTLIBDIR)/llib-lXtst.ln
+
+DEPXBSDLIB = $(USRLIBDIR)/libXbsd.a
+XBSDLIB = -lXbsd
+
+LINTXBSD = $(LINTLIBDIR)/llib-lXbsd.ln
+
+ ICESRC = $(LIBSRC)/ICE
+
+SOICEREV = 6.4
+DEPICELIB =
+ICELIB = -lICE
+
+LINTICE = $(LINTLIBDIR)/llib-lICE.ln
+
+ SMSRC = $(LIBSRC)/SM
+
+SOSMREV = 6.0
+DEPSMLIB =
+SMLIB = -lSM
+
+LINTSM = $(LINTLIBDIR)/llib-lSM.ln
+
+ XKEYSRC = $(LIBSRC)/Xkey
+
+SOXKEYREV = 6.0
+DEPXKEYLIB =
+XKEYLIB = -lXkey
+
+LINTXKEY = $(LINTLIBDIR)/llib-lXkey.ln
+
+ FSLIBSRC = $(LIBSRC)/FS
+
+SOFSREV = 6.0
+DEPFSLIB =
+FSLIB = -lFS
+
+LINTFS = $(LINTLIBDIR)/llib-lFS.ln
+
+ FONTLIBSRC = $(LIBSRC)/font
+
+DEPFONTLIB = $(USRLIBDIR)/libXfont.a
+FONTLIB = -L$(FREETYPELIBDIR) -L$(FONTLIBSRC) -lXfont
+
+LINTXFONT = $(LINTLIBDIR)/llib-lXfont.ln
+#
+DEPXFONTLIB = $(USRLIBDIR)/libXfont.a
+XFONTLIB = -lXfont
+
+LINTXFONT = $(LINTLIBDIR)/llib-lXfont.ln
+
+ FONTSTUBLIBSRC = $(FONTLIBSRC)/stubs
+
+DEPFONTSTUBLIB = $(USRLIBDIR)/libfntstubs.a
+FONTSTUBLIB = -lfntstubs
+
+LINTFONTSTUB = $(LINTLIBDIR)/llib-lfntstubs.ln
+ DEPFONTLIB = $(DEPXFONTLIB) $(DEPFONTSTUBLIB)
+ FONTLIB = $(XFONTLIB) $(FONTSTUBLIB) $(FREETYPE2LIB)
+
+ FONTENCLIBSRC = $(LIBSRC)/fontenc
+
+DEPXFONTENCLIB = $(USRLIBDIR)/libfontenc.a
+XFONTENCLIB = -lfontenc
+
+LINTXFONTENC = $(LINTLIBDIR)/llib-lfontenc.ln
+
+ XPMLIBSRC = $(LIBSRC)/Xpm
+
+SOXPMREV = 4.11
+DEPXPMLIB =
+XPMLIB = -lXpm
+
+LINTXPM = $(LINTLIBDIR)/llib-lXpm.ln
+
+FREETYPE2DIR = /usr
+FREETYPE2LIBDIR = /usr/lib
+FREETYPE2INCDIR = /usr/include
+
+FREETYPE2LIB = -lfreetype
+
+FREETYPE2INCLUDES = -I$(FREETYPE2INCDIR)/freetype2 -I$(FREETYPE2INCDIR)/freetype2/config
+
+FREETYPE2DEFINES = -DFREETYPE2
+
+ EXPATLIBSRC = $(LIBSRC)/expat
+
+SOEXPATREV = 0.4
+DEPEXPATLIB =
+EXPATLIB = -lexpat
+
+LINTEXPAT = $(LINTLIBDIR)/llib-lexpat.ln
+
+EXPATDIR = /usr
+EXPATLIBDIR = /usr/lib
+EXPATINCDIR = /usr/include
+
+EXPATINCLUDES =
+
+EXPATLIB = -lexpat
+
+EXPATDEFINES = -DEXPAT
+
+XFTDIR = /usr
+XFTLIBDIR = /usr/lib
+XFTINCDIR = /usr/include
+XFTLIB = -L$(XFTLIBDIR) -lXft
+
+XFTINCLUDES= -I$(XFTINCDIR) $(FONTCONFIGINCLUDES) $(FREETYPE2INCLUDES) $(XRENDERINCLUDES)
+
+FONTCONFIGDIR = /usr
+FONTCONFIGLIBDIR = /usr/lib
+FONTCONFIGINCDIR = /usr/include
+FONTCONFIGBINDIR = /usr/bin
+
+FONTCONFIGLIB = -lfontconfig
+
+FONTCONFIGINCLUDES =
+
+FCCACHE = $(FONTCONFIGBINDIR)/fc-cache
+
+FONTCONFIGDEFINES = -DFONTCONFIG
+
+LIBPNGINCDIR = /usr/include
+
+LIBPNGINC=
+
+LIBPNGDIR = /usr
+LIBPNGLIBDIR = /usr/lib
+LIBPNGINCDIR = /usr/include
+
+LIBPNGLIB = -lpng
+
+ XKBFILELIBSRC = $(LIBSRC)/xkbfile
+
+SOXKBFILEREV = 1.0
+DEPXKBFILELIB =
+XKBFILELIB = -lxkbfile
+
+LINTXKBFILE = $(LINTLIBDIR)/llib-lxkbfile.ln
+
+ XKBCOMPCMD = $(XBINDIR)/xkbcomp
+
+ XKBUILIBSRC = $(LIBSRC)/xkbui
+
+SOXKBUIREV = 1.0
+DEPXKBUILIB =
+XKBUILIB = -lxkbui
+
+LINTXKBUI = $(LINTLIBDIR)/llib-lxkbui.ln
+
+EXTRAXAWREQS =
+
+EXTRAXAWCLIENTDEPLIBS =
+
+EXTRAXAWCLIENTLIBS =
+
+ XTRAPLIBSRC = $(LIBSRC)/XTrap
+
+SOXTRAPREV = 6.4
+DEPXTRAPLIB =
+XTRAPLIB = -lXTrap
+
+LINTXTRAP = $(LINTLIBDIR)/llib-lXTrap.ln
+
+ DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
+
+ DEPLIBS1 = $(DEPLIBS)
+ DEPLIBS2 = $(DEPLIBS)
+ DEPLIBS3 = $(DEPLIBS)
+ DEPLIBS4 = $(DEPLIBS)
+ DEPLIBS5 = $(DEPLIBS)
+ DEPLIBS6 = $(DEPLIBS)
+ DEPLIBS7 = $(DEPLIBS)
+ DEPLIBS8 = $(DEPLIBS)
+ DEPLIBS9 = $(DEPLIBS)
+ DEPLIBS10 = $(DEPLIBS)
+
+ XFTPRELOADPATTERN = libXft.so.?
+ XRENDERPRELOADPATTERN = libXrender.so.?
+ XFONTPRELOADPATTERN = libXfont*.so.?
+
+XMULIBONLY = -lXmu
+XMULIB = $(XMULIBONLY) $(XTOOLLIB) $(XLIB)
+
+ CONFIGDIR = $(LIBDIR)/config
+
+ USRLIBDIRPATH = $(USRLIBDIR)
+ LDPRELIBS = $(INSTALLED_LIBS)
+ LDPOSTLIBS =
+ TOP_INCLUDES = $(TOP_X_INCLUDES)
+ PROJECT_DEFINES =
+ VENDOR_DEFINES = -DXVENDORNAME='"$(VENDORNAME)"' -DXVENDORNAMESHORT='"$(VENDORNAMESHORT)"'
+
+CXXPROJECT_DEFINES =
+
+# ----------------------------------------------------------------------
+# start of Imakefile
+
+# Cannot compile in using Gcc
+# CC = cc
+
+// SYS_LIBRARIES = -lm
+LOCAL_LIBRARIES = $(XLIB)
+ DEPLIBS = $(DEPXLIB)
+ DEFINES = -DSHAPE
+
+ OBJS = CrosshairCursor.o
+ SRCS = CrosshairCursor.c
+
+ PROGRAM = CrosshairCursor
+
+all:: CrosshairCursor
+
+CrosshairCursor: $(OBJS) $(DEPLIBS)
+ $(RM) $@
+ $(CCLINK) -o $@ $(LDOPTIONS) $(OBJS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS)
+
+install:: CrosshairCursor
+ @if [ -d $(DESTDIR)$(BINDIR) ]; then \
+ set +x; \
+ else \
+ if [ -h $(DESTDIR)$(BINDIR) ]; then \
+ (set -x; rm -f $(DESTDIR)$(BINDIR)); \
+ fi; \
+ (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); \
+ fi
+ $(INSTALL) $(INSTALLFLAGS) $(INSTPGMFLAGS) CrosshairCursor $(DESTDIR)$(BINDIR)/CrosshairCursor
+
+all:: CrosshairCursor.$(MANNEWSUFFIX)
+
+CrosshairCursor.$(MANNEWSUFFIX): CrosshairCursor.$(MANSRCSUFFIX)
+ $(RM) $@
+ if test -z "$(PREPROCESSMANPAGES)" ; then \
+ cd `dirname CrosshairCursor` && \
+ $(LN) `basename CrosshairCursor.$(MANSRCSUFFIX)` `basename $@`; \
+ else \
+ $(RAWCPP) $(MANDEFS) $(EXTRAMANDEFS) \
+ < CrosshairCursor.$(MANSRCSUFFIX) | sed -e '/^# *[0-9][0-9]* *.*$$/d' -e '/^#line *[0-9][0-9]* *.*$$/d' -e '/^[ ]*XCOMM$$/s/XCOMM/#/' -e '/^[ ]*XCOMM[^a-zA-Z0-9_]/s/XCOMM/#/' -e '/^[ ]*XHASH/s/XHASH/#/' -e '/\@\@$$/s/\@\@$$/\\/' >$@; \
+ fi
+
+cleandir::
+ $(RM) CrosshairCursor.$(MANNEWSUFFIX)
+
+install.man:: CrosshairCursor.$(MANNEWSUFFIX)
+ @if [ -d $(DESTDIR)$(MANDIR) ]; then \
+ set +x; \
+ else \
+ if [ -h $(DESTDIR)$(MANDIR) ]; then \
+ (set -x; rm -f $(DESTDIR)$(MANDIR)); \
+ fi; \
+ (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); \
+ fi
+ $(INSTALL) $(INSTALLFLAGS) $(INSTMANFLAGS) CrosshairCursor.$(MANNEWSUFFIX) $(DESTDIR)$(MANDIR)/CrosshairCursor.$(MANSUFFIX)
+
+depend::
+ $(DEPEND) $(DEPENDFLAGS) -- $(ALLDEFINES) $(DEPEND_DEFINES) -- $(SRCS)
+
+lint:
+ $(LINT) $(LINTFLAGS) $(SRCS) $(LINTLIBS)
+lint1:
+ $(LINT) $(LINTFLAGS) $(FILE) $(LINTLIBS)
+
+cleandir::
+ $(RM) CrosshairCursor
+
+# ----------------------------------------------------------------------
+# common rules for all Makefiles - do not edit
+
+.c.i:
+ $(RM) $@
+ $(CC) -E $(CFLAGS) $(_NOOP_) $*.c > $@
+
+.SUFFIXES: .ii
+
+.cc.ii:
+ $(RM) $@
+ $(CC) -E $(CFLAGS) $(_NOOP_) $*.cc > $@
+
+.SUFFIXES: .s
+
+.c.s:
+ $(RM) $@
+ $(CC) -S $(CFLAGS) $(_NOOP_) $*.c
+
+.cc.s:
+ $(RM) $@
+ $(CC) -S $(CFLAGS) $(_NOOP_) $*.cc
+
+emptyrule::
+
+cleandir::
+ $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut "#"*
+
+Makefile::
+ -@if [ -f Makefile ]; then set -x; \
+ $(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \
+ else exit 0; fi
+ $(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
+
+tags::
+ $(TAGS) -w *.[ch]
+ $(TAGS) -xw *.[ch] > TAGS
+
+man_keywords::
+
+html_index::
+
+clean:: cleandir
+
+distclean:: cleandir
+
+ PREPROCESSMANPAGES = true
+
+# ----------------------------------------------------------------------
+# empty rules for directories that do not have SUBDIRS - do not edit
+
+install::
+ @echo "install in $(CURRENT_DIR) done"
+
+install.man::
+ @echo "install.man in $(CURRENT_DIR) done"
+
+install.sdk::
+ @echo "install.sdk in $(CURRENT_DIR) done"
+
+Makefiles::
+
+includes::
+
+depend::
+
+distclean::
+ $(RM) Makefile Makefile.dep
+
+# ----------------------------------------------------------------------
+# dependencies generated by makedepend
+
diff --git a/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/applet.js b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/applet.js
new file mode 100644
index 00000000000..3fd65d3716b
--- /dev/null
+++ b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/applet.js
@@ -0,0 +1,97 @@
+const Applet = imports.ui.applet;
+const GLib = imports.gi.GLib;
+const St = imports.gi.St;
+const Util = imports.misc.util;
+const HOME = GLib.get_home_dir();
+const UUID = "CrosshairCursor@BMarkley";
+const USER_DATA_DIR = GLib.get_user_data_dir()
+const APPLET_DIR = USER_DATA_DIR + "/cinnamon/applets/" + UUID;
+const CROSSHAIR_SCRIPT = APPLET_DIR + "/CCScript.sh";
+const CROSSHAIR_DIR = APPLET_DIR + "/CrosshairCursor";
+const CROSSHAIR_COMPILE = CROSSHAIR_DIR + "/Compile.sh";
+const CROSSHAIR_EXEC = CROSSHAIR_DIR + "/CrosshairCursor";
+const DEBUG = false;
+const {
+ timeout_add,
+ timeout_add_seconds,
+ setTimeout,
+ clearTimeout,
+ setInterval,
+ clearInterval,
+ source_remove,
+ remove_all_sources
+} = require("./lib/mainloopTools");
+const { to_string } = require("./lib/to-string");
+
+const Gettext = imports.gettext;
+Gettext.bindtextdomain(UUID, USER_DATA_DIR + "/locale");
+
+function _(str) {
+ let customTranslation = Gettext.dgettext(UUID, str);
+ if(customTranslation != str) {
+ return customTranslation;
+ }
+ return Gettext.gettext(str);
+}
+
+class CrosshairCursorToggle extends Applet.IconApplet {
+ constructor(metadata, orientation, panel_height, instanceId) {
+ super(orientation, panel_height, instanceId);
+ if (DEBUG) global.log("CrosshairCursor is initialized");
+ this.orientation = orientation;
+ this.updateIcon();
+ this._tooltip_ok();
+ // compile CrossHairCursor from source
+ Util.spawnCommandLine(`/usr/bin/env bash -c 'chmod +x ${CROSSHAIR_COMPILE}'`);
+ Util.spawnCommandLine(CROSSHAIR_COMPILE);
+ // make executable the script CrosshairCursor.sh:
+ Util.spawnCommandLine(`/usr/bin/env bash -c 'chmod +x ${CROSSHAIR_SCRIPT}'`);
+ // make executable the CrosshairCursor executable program:
+ Util.spawnCommandLine(`/usr/bin/env bash -c 'chmod +x ${CROSSHAIR_EXEC}'`);
+ }
+
+ on_applet_clicked(event) {
+ //if (DEBUG) global.log(_("CrosshairCursorToggle is clicked"));
+ GLib.spawn_command_line_async(CROSSHAIR_SCRIPT);
+ // Delay update to allow process start/stop
+ timeout_add( 250, () => {
+ this.updateIcon();
+ return GLib.SOURCE_REMOVE;
+ });
+ }
+
+ _tooltip_ok() {
+ this.set_applet_tooltip(_("Crosshair Cursor"));
+ }
+
+ checkIfProgramRunning(programName) {
+ // Runs pgrep synchronously, returns true/false
+ try {
+ let [ok, stdout, stderr, status] = GLib.spawn_command_line_sync(`pgrep -x ${programName}`);
+ if (ok && status === 0 && to_string(stdout).trim().length > 0) {
+ return true;
+ }
+ } catch (e) {
+ global.logError(e);
+ }
+ return false;
+ }
+
+ updateIcon() {
+ if (this.checkIfProgramRunning("CrosshairCursor")) {
+ this.set_applet_icon_name("CrosshairCursorRunning");
+ if (DEBUG) global.log("CrosshairCursor is running");
+ } else {
+ this.set_applet_icon_name("CrosshairCursorStopped");
+ if (DEBUG) global.log("CrosshairCursor is stopped");
+ }
+ }
+
+ on_applet_removed_from_panel(deleteconfig) {
+ remove_all_sources();
+ }
+}
+
+function main(metadata, orientation, panelHeight, instanceId) {
+ return new CrosshairCursorToggle(metadata, orientation, panelHeight, instanceId);
+}
diff --git a/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/icon.png b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/icon.png
new file mode 100644
index 00000000000..9104ad81fdc
Binary files /dev/null and b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/icon.png differ
diff --git a/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/icons/CrosshairCursorRunning.png b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/icons/CrosshairCursorRunning.png
new file mode 100644
index 00000000000..9104ad81fdc
Binary files /dev/null and b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/icons/CrosshairCursorRunning.png differ
diff --git a/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/icons/CrosshairCursorStopped.png b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/icons/CrosshairCursorStopped.png
new file mode 100644
index 00000000000..a44f7fba91a
Binary files /dev/null and b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/icons/CrosshairCursorStopped.png differ
diff --git a/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/lib/mainloopTools.js b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/lib/mainloopTools.js
new file mode 100644
index 00000000000..321a9fd0c2f
--- /dev/null
+++ b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/lib/mainloopTools.js
@@ -0,0 +1,179 @@
+const GLib = imports.gi.GLib;
+
+/**
+ * _sourceIds
+ * Array containing IDs of all looping loops.
+ */
+var _sourceIds = [];
+
+/**
+ * timeout_add_seconds
+ *
+ * @callback (function) is executed every @sec (number) seconds
+ * with @params (dictionnary as {'key1': value1, 'key2': value2, ...}).
+ *
+ * @params is often null.
+ *
+ */
+function timeout_add_seconds(sec, callback, params=null) {
+ let id = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, sec, callback);
+ if (id && (_sourceIds.indexOf(id) === -1)) _sourceIds.push(id);
+ return id;
+}
+
+/**
+ * timeout_add_seconds
+ *
+ * @callback (function) is executed every @ms (number) milliseconds
+ * with @params (dictionnary as {'key1': value1, 'key2': value2, ...}).
+ *
+ * @params is often null.
+ *
+ */
+function timeout_add(ms, callback, params=null) {
+ let id = GLib.timeout_add(GLib.PRIORITY_DEFAULT, ms, callback);
+ if (id && (_sourceIds.indexOf(id) === -1)) _sourceIds.push(id);
+ return id;
+}
+
+/**
+ * setTimeout:
+ * @callback (function): Function to call at the end of the timeout.
+ * @ms (number): Milliseconds until the timeout expires.
+ *
+ * Convenience wrapper for a Mainloop.timeout_add loop that
+ * returns false.
+ *
+ * Returns (number): The ID of the loop.
+ */
+function setTimeout(callback, ms) {
+ let args = [];
+ if (arguments.length > 2) {
+ args = args.slice.call(arguments, 2);
+ }
+
+ let id = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
+ ms,
+ () => {
+ callback.call(null, ...args);
+ return false; // Stop repeating
+ }
+ );
+
+ if (id && (_sourceIds.indexOf(id) === -1)) _sourceIds.push(id);
+
+ return id;
+}
+
+/**
+ * clearTimeout:
+ * @id (number): The ID of the loop to remove.
+ *
+ * Convenience wrapper for Mainloop.source_remove.
+ */
+function clearTimeout(id) {
+ if (id) {
+ source_remove(id);
+ }
+}
+
+
+/**
+ * setInterval:
+ * @callback (function): Function to call on every interval.
+ * @ms (number): Milliseconds between invocations.
+ *
+ * Convenience wrapper for a Mainloop.timeout_add loop that
+ * returns true.
+ *
+ * Returns (number): The ID of the loop.
+ */
+function setInterval(callback, ms) {
+ let args = [];
+ if (arguments.length > 2) {
+ args = args.slice.call(arguments, 2);
+ }
+
+ let id = GLib.timeout_add(GLib.PRIORITY_DEFAULT, ms, () => {
+ callback.call(null, ...args);
+ return true; // Repeat
+ });
+
+ if (id && (_sourceIds.indexOf(id) === -1)) _sourceIds.push(id);
+
+ return id;
+}
+
+/**
+ * clearInterval:
+ * @id (number): The ID of the loop to remove.
+ *
+ * Convenience wrapper for Mainloop.source_remove.
+ */
+function clearInterval(id) {
+ if (id) {
+ source_remove(id);
+ }
+};
+
+/**
+ * source_exists
+ *
+ * @id (number, or null)
+ *
+ * Checks if @id is well the ID of a loop.
+ *
+ */
+function source_exists(id) {
+ let _id = id;
+ if (!_id) return false;
+ return (GLib.MainContext.default().find_source_by_id(_id) != null);
+}
+
+/**
+ * source_remove
+ *
+ * @id (number): The ID of the loop to stop.
+ * @remove_from_sourceIds (boolean): *true* (by default) when we want to
+ * remove @id from _sourceIds. May be *false* for internal functionning.
+ *
+ * Convenience wrapper for a Mainloop.source_remove(id) that returns a
+ * boolean.
+ */
+function source_remove(id, remove_from_sourceIds=true) {
+ if (source_exists(id)) {
+ GLib.source_remove(id);
+ if (remove_from_sourceIds) {
+ const pos = _sourceIds.indexOf(id);
+ if (pos > -1) _sourceIds.splice(pos, 1);
+ }
+ return true;
+ }
+ return false;
+}
+
+/**
+ * remove_all_sources
+ *
+ * Execute it when removing the spice.
+ * Tries to delete all remaining sources, in order to remove all loops.
+ */
+function remove_all_sources() {
+ while (_sourceIds.length > 0) {
+ let id = _sourceIds.pop();
+ source_remove(id, false);
+ }
+}
+
+module.exports = {
+ _sourceIds,
+ timeout_add_seconds,
+ timeout_add,
+ setTimeout,
+ clearTimeout,
+ setInterval,
+ clearInterval,
+ source_exists,
+ source_remove,
+ remove_all_sources
+}
diff --git a/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/lib/to-string.js b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/lib/to-string.js
new file mode 100644
index 00000000000..601c29e1ebc
--- /dev/null
+++ b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/lib/to-string.js
@@ -0,0 +1,4 @@
+const ByteArray = imports.byteArray;
+const to_string = function(data) {
+ return ""+ByteArray.toString(data);
+}
diff --git a/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/metadata.json b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/metadata.json
new file mode 100644
index 00000000000..574a50dfb9a
--- /dev/null
+++ b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/metadata.json
@@ -0,0 +1,7 @@
+{
+ "uuid": "CrosshairCursor@BMarkley",
+ "name": "CrosshairCursor@Bmarkley",
+ "description": "Activates a crosshair mouse cursor that spans the display.",
+ "max-instances": "1",
+ "author": "BMarkley"
+}
diff --git a/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/po/CrosshairCursor@BMarkley.pot b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/po/CrosshairCursor@BMarkley.pot
new file mode 100644
index 00000000000..424cf5e0e51
--- /dev/null
+++ b/CrosshairCursor@BMarkley/files/CrosshairCursor@BMarkley/po/CrosshairCursor@BMarkley.pot
@@ -0,0 +1,30 @@
+# CrosshairCursor
+# This file is put in the public domain.
+#
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: CrosshairCursor@Bmarkley 1.0\n"
+"Report-Msgid-Bugs-To: https://github.com/linuxmint/cinnamon-spices-applets/"
+"issues\n"
+"POT-Creation-Date: 2026-04-06 14:00+0100\n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. applet.js:55
+msgid "Crosshair Cursor"
+msgstr ""
+
+#. metadata.json->name
+msgid "CrosshairCursor@Bmarkley"
+msgstr ""
+
+#. metadata.json->description
+msgid "Activates a crosshair mouse cursor that spans the display."
+msgstr ""
diff --git a/CrosshairCursor@BMarkley/info.json b/CrosshairCursor@BMarkley/info.json
new file mode 100644
index 00000000000..c9a64514266
--- /dev/null
+++ b/CrosshairCursor@BMarkley/info.json
@@ -0,0 +1,3 @@
+{
+"author" : "BMarkley"
+}
diff --git a/CrosshairCursor@BMarkley/screenshot.png b/CrosshairCursor@BMarkley/screenshot.png
new file mode 100644
index 00000000000..303e6e992cb
Binary files /dev/null and b/CrosshairCursor@BMarkley/screenshot.png differ