Just want to create a flexible desktop that is independent from system. For my linux system.
Like to have Clean Window and Transparent.

1. Looking for the basic on Xlib. Most of what i found is unclear where i start.
I like to start simple and expand.

a. Want to just open a clear transparent(150) window at size(400,300) with darken borders.

b. Set graphics myself. No Titlebar or Close.

c. Have it set in System tray for quick recall.

d. have it launch it own apps from icons.

2. Any other options with easy documents ?

3. Is gtk slow for this. I know many light window manger don't like including gtk libs. .
or am i wrong.

4. Can this be done with wxpython.

Recommended Answers

All 4 Replies

You'd think that before trying to write a desktop environment, one would actually learn up a bit about xlib and how it works. I can answer your question, but I don't want to. Feels a bit like fanning the flames that will eventually blow up in your face.

One i'm looking for docs or other options. For xlib
Most docs i find are for c.

Two not making an Desktop that take over the other .
Just something small i want to add.

Three it fine it blows up in my face.
Learning is about failures.
in time i will succeed.

I'm self taught. And i learned from reading different docs.
Start off simple and expand.

All i'm asking for where can i find good docs or tutorials.
Point me in the right direction. Thanks.

Still looking for python docs.

reading some docs. and some source code.
This is what i come up with so far.
Still don't know if there some stuff i could get rid of for the basic.
understand about what half i did.

import sys , os

# Change path so we find Xlib
sys.path.insert(1, os.path.join(sys.path[0], '..'))

from Xlib import X, display, Xutil

class Bluebird:
	def __init__(self,display):
		
		self.dis = display
		self.screen = self.dis.screen()
		self.window = self.screen.root.create_window(
			50, 50, 400, 300, 2,
			self.screen.root_depth,
			X.InputOutput,
			X.CopyFromParent,
			
			background_pixel = self.screen.white_pixel,
			event_mask = (X.ExposureMask |
						X.StructureNotifyMask |
						X.ButtonPressMask |
						X.ButtonReleaseMask |
						X.Button1MotionMask),
			colormap = X.CopyFromParent,
			)
		self.window.map()
		
		self.WM_DELETE_WINDOW = self.dis.intern_atom('WM_DELETE_WINDOW')
		self.WM_PROTOCOLS = self.dis.intern_atom('WM_PROTOCOLS')
		
		self.window.set_wm_protocols([self.WM_DELETE_WINDOW])

	def loop(self):
		while 1:
			e = self.dis.next_event()
							
			if e.type == X.ClientMessage:
				if e.client_type == self.WM_PROTOCOLS:
					fmt, data = e.data
					if fmt == 32 and data[0] == self.WM_DELETE_WINDOW:
						sys.exit(0)
            
if __name__ == '__main__':	
	
	Desktop = Bluebird(display.Display())
	Desktop.loop()
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.