public void SetTitle(string title) { byte[] windowTitleASCII = Encoding.ASCII.GetBytes(title); LibX11.XChangeProperty( display, windowId, LibX11.XInternAtom(display, "WM_NAME", 0), LibX11.XInternAtom(display, "STRING", 0), XChangePropertyFormat.Byte, XChangePropertyMode.PropModeReplace, windowTitleASCII, windowTitleASCII.Length ); byte[] windowTitleUTF8 = Encoding.UTF8.GetBytes(title); LibX11.XChangeProperty( display, windowId, LibX11.XInternAtom(display, "_NET_WM_NAME", 0), LibX11.XInternAtom(display, "UTF8_STRING", 0), XChangePropertyFormat.Byte, XChangePropertyMode.PropModeReplace, windowTitleUTF8, windowTitleUTF8.Length ); }
private X11Clipboard(IntPtr display, ulong windowId) { this.display = display; this.windowId = windowId; thread = new Thread(Run); thread.Name = nameof(X11Clipboard); thread.IsBackground = true; XA_ATOM = LibX11.XInternAtom(display, "ATOM", 0); XA_CLIPBOARD = LibX11.XInternAtom(display, "CLIPBOARD", 0); XA_TARGETS = LibX11.XInternAtom(display, "TARGETS", 0); XA_UTF8_STRING = LibX11.XInternAtom(display, "UTF8_STRING", 0); XA_NWINDOWS_CONVERTED_CLIPBOARD = LibX11.XInternAtom(display, "NWINDOWS_CONVERTED_CLIPBOARD", 0); XA_NWINDOWS_CLIPBOARD_STOP = LibX11.XInternAtom(display, "NWINDOWS_CLIPBOARD_STOP", 0); }
public void Init() { LibX11.XInitThreads(); display = LibX11.XOpenDisplay(null); if (display == IntPtr.Zero) { throw new InvalidOperationException("Cannot open display."); } WM_PROTOCOLS = LibX11.XInternAtom(display, "WM_PROTOCOLS", 0); WM_DELETE_WINDOW = LibX11.XInternAtom(display, "WM_DELETE_WINDOW", 0); XA_NWINDOWS_PAINT_COMPLETE = LibX11.XInternAtom(display, "NWINDOWS_PAINT_COMPLETE", 0); graphics = X11Graphics.Create(display); imageCodec = new GdkPixBufImageCodec(display, graphics.Visual, graphics.RootWindow); clipboard = X11Clipboard.Create(); }