summaryrefslogtreecommitdiff
path: root/tools/xlib.py
blob: 4a244c4f6fd77eea412806766b2ec093dd6831f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# Very simple Xlib-based client in Python.
# Copyright (c) 2008 Thomas Thurman <tthurman@gnome.org>; GPL 2.0 or later.
# Originally based around example code in python-xlib
# by Peter Liljenberg <petli@ctrl-c.liu.se>.

import sys

from Xlib import X
from Xlib.protocol import display
from Xlib.protocol.request import *

display = display.Display()
screen = display.info.roots[display.default_screen]
window = display.allocate_resource_id()
gc = display.allocate_resource_id()

CreateWindow(display, None,
             depth = screen.root_depth,
             wid = window,
             parent = screen.root,
             x = 100, y = 100, width = 250, height = 250, border_width = 2,
             window_class = X.InputOutput, visual = X.CopyFromParent,
             background_pixel = screen.white_pixel,
             event_mask = (X.ExposureMask |
                           X.StructureNotifyMask |
                           X.ButtonPressMask |
                           X.ButtonReleaseMask |
                           X.Button1MotionMask),
             colormap = X.CopyFromParent)

CreateGC(display, None, gc, window)

MapWindow(display, None, window)

while 1:
    event = display.next_event()

    if event.type == X.DestroyNotify:
        sys.exit(0)

    print event