Example #1
0
        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
                );
        }
Example #2
0
        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);
        }
Example #3
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();
        }