You are not logged in.

#26 2005-03-15 11:50:41

iphitus
Forum Fellow
From: Melbourne, Australia
Registered: 2004-10-09
Posts: 4,927

Re: the perfect wm

shadowhand wrote:

People keep talking about tiling and tabbed window managing. It's looking more and more that if you do what the people want, you are basically going to create a themable ... thing ... that manages windows and does other WM stuff through plugins. I can't imagine that it would be rational to have a legacy and tiling/tabbed window manager running with the same core and keep it lightweight. tongue

Sounds like a big project you are starting Phrak. smile I wish you the best of luck with it. If I could code the broad side of a barn, I would offer my help.

go grab a copy of ion. does tabbed regular windows, regular windows, and tiling.

I guess the best thing for phrak to do would be to decide, tiling or regular. Let him chose whichever.

Personally, I reckon the perfect wm for me would be Ion with themes and True type fonts. And its own independent settings daemon.

Offline

#27 2005-03-15 15:05:40

cmp
Member
Registered: 2005-01-03
Posts: 350

Re: the perfect wm

go grab a copy of ion. does tabbed regular windows, regular windows, and tiling.

you can even mix regular and tiled windows: you can have regular windows floating above tiled windows and regular workspaces in a tiled frame and vice versa.

for me the most important thing would be that you could use both mouse and keyboard, because i often use one of them, but not both at the same time.
and of course strong scripting, maybe write all modules in a scripting language.

Offline

#28 2005-03-15 15:21:13

phrakture
Arch Overlord
From: behind you
Registered: 2003-10-29
Posts: 7,879
Website

Re: the perfect wm

iphitus wrote:

EWMH compliance is an important thing, not something that should be implemented in a module.

for reference, here is a complete list of EWMH compliant window managers: http://www.freedesktop.org/wiki/Standards_2fwm_2dspec
if you look at arch polls, quite alot do not use compliant window managers.  You may be thinking of ICCCM compliance... which is different.  EWMH is mainly graphical things... like EWMH allows you to get the mini-icon of an app for taskbars and things like that... so it's not required... but it's still good to support.

iphitus wrote:

Second, window managers are not written in QT, they are written in Xlib. QT does not have functions for window managing.

Yes, the core must be Xlib... but when people say "WM should use Z graphical toolkit" they are usually talking about window decorations... which is different.  A window manager need not render window decorations.  Decorations could be implemented seperately, as they're basically just additional windows placed appropriately...

I think what I'm proposing is the following:
window manager core doesn't do a whole lot.  It has the capability to load modules.  Then a window decorations module will be loaded, allowing rendering of decorations however you'd want (I could implement a rendering module to use and mirror your fluxbox theme if it is installed).  Then a user input module can be loaded, say we have one which amplifies keyboard control and another for mouse control... and then maybe a EWMH compliant taskbar module could be loaded...

It sounds interesting to me, and would allow me alot of room to experiment... I like the idea of 100% modularity... performance may suffer, but I'd rather not make the mistake of early optimization (performance issues may be fine compared to user input speeds and things like that)...

Doing it this way really isn't alot of work.  I can create functionality that just pops out a window and allows for moving and resizing pretty easilly.  What I really need to determine is a good plumbing framework for module<->core communication....

I'll try and get some design written up, and let people critique it, if interested....

Offline

#29 2005-03-15 17:39:45

Dusty
Schwag Merchant
From: Medicine Hat, Alberta, Canada
Registered: 2004-01-18
Posts: 5,986
Website

Re: the perfect wm

phrakture wrote:

hell, each module could even have its own configuration style to allow one to make xml based menus with one module or even use fluxbox menus with another module...

Interesting idea, except if you want to load dozens of Really Cool Modules (we have to get a trademark on this phrase ASAP), you may end up having to configure it in dozens of different dialects. Which just sucks, IMHO.

An even more interesting idea is to make the configuration framework a module itself. This would mean you could choose your prefered config syntax by loading a specific syntax module (ie: windows.ini format, xml fomat, etc), and having the syntax module translate between the human's syntax and the internal config syntax on the fly.

Something like GroovyMarkup (http://groovy.codehaus.org/GroovyMarkup), only in reverse.

Dusty

Offline

#30 2005-03-15 17:47:38

i3839
Member
Registered: 2004-02-04
Posts: 1,185

Re: the perfect wm

I would make it event based. A module just tells the core in what events it's interested and how it wants to handle it (e.g. share the event with other modules or handle it exclusively). The core will only generate events (caused by external X events) and call the callback function of each interested module when a certain event happens.

The hardest part is to somehow give the module handling an event enough event specific data so it can do its work. A keybinding module only needs to know which keys are pressed, but a window decoration module needs more info like the screen or whatever X stuff to draw to.

This way modules can be flexible and do whatever they want, as long as it doesn't conflict with other modules. If you split it beforehand into specific types of modules then people can only write those, and adding just a little more functionality can't be done easily. People can add as much bloat as they want, but the default modules needed should implement your ideal wm and have practically zero dependencies.

Offline

#31 2005-03-15 18:23:10

cmp
Member
Registered: 2005-01-03
Posts: 350

Re: the perfect wm

you should have a look at metawm, because it could be quite handy for your project, basicly it consits only of a allmost-zero-functionality-core, which can be enhanced with modules.

Offline

#32 2005-03-15 18:58:21

phrakture
Arch Overlord
From: behind you
Registered: 2003-10-29
Posts: 7,879
Website

Re: the perfect wm

i3839 wrote:

I would make it event based. A module just tells the core in what events it's interested and how it wants to handle it (e.g. share the event with other modules or handle it exclusively). The core will only generate events (caused by external X events) and call the callback function of each interested module when a certain event happens.

yeah I was debating having the modules function like so:
modules must contain register_events(someParam* p) in which they add to p a mapping between the event they're registering and the module itself.  It would be priority based so that you can have multiple modules assign to the same event, and fire off in a prioritized order (perhaps with the ability to "cancel" others down the chain, if needed).  In order to do this efficiently, each module would need a validation function... parameters yet unknown... which will determine if this event is for this module... for instance... one module can register to handle the "ButtonPress" event, and the validate function will determine if it was the right mouse button.... if so, the event will be handled.

About configuration: A configuration handler might be a good idea... but then again, a given module could always contain it's own parser and load up a configuration file on its own.

Offline

#33 2005-03-15 19:02:36

phrakture
Arch Overlord
From: behind you
Registered: 2003-10-29
Posts: 7,879
Website

Re: the perfect wm

cmp wrote:

you should have a look at metawm, because it could be quite handy for your project, basicly it consits only of a allmost-zero-functionality-core, which can be enhanced with modules.

hmmm metaWM, although it appears dead, seems to be close to what I'm looking for...

perhaps I can use the codebase...

Offline

#34 2005-03-15 19:16:19

Dusty
Schwag Merchant
From: Medicine Hat, Alberta, Canada
Registered: 2004-01-18
Posts: 5,986
Website

Re: the perfect wm

Sometimes when you contact an author about a 'dead' project, they take an active interest in it again.  8)

You might also want to look at jd4x:
http://jdx.sourceforge.net/

Its goal is to allow java programmers complete customizeable control over their desktop. It does use a module oriented architecture. I know you'd never develop a desktop in Java, but that doesn't mean you don't want to look at the design. wink (I don't know why my name is on the member list, All I did was expand a couple of Makefiles so I could make an Arch package...)

I might try that project again sometime, but it says its not supported by Java 5.

Dusty

Offline

#35 2005-03-15 20:21:12

phrakture
Arch Overlord
From: behind you
Registered: 2003-10-29
Posts: 7,879
Website

Re: the perfect wm

Dusty wrote:

Sometimes when you contact an author about a 'dead' project, they take an active interest in it again.  8)

yeah, except I can't seem to find this guy's email anywhere...

Offline

#36 2005-03-15 21:28:57

Dusty
Schwag Merchant
From: Medicine Hat, Alberta, Canada
Registered: 2004-01-18
Posts: 5,986
Website

Re: the perfect wm

try robert_b@users.sourceforge.net. Got it from the project home page.

Dusty

Offline

#37 2005-03-16 03:33:14

iphitus
Forum Fellow
From: Melbourne, Australia
Registered: 2004-10-09
Posts: 4,927

Re: the perfect wm

write it in python, so i can contribute big_smile

Offline

#38 2005-03-16 03:37:38

Dusty
Schwag Merchant
From: Medicine Hat, Alberta, Canada
Registered: 2004-01-18
Posts: 5,986
Website

Re: the perfect wm

hmmm.... Phrakture, that's not a bad idea...

not python specifically, but it should be possible to contribute modules in a variety of languages. Again, I mention aegis...

Dusty

Offline

#39 2005-03-16 07:41:15

iphitus
Forum Fellow
From: Melbourne, Australia
Registered: 2004-10-09
Posts: 4,927

Re: the perfect wm

Dusty wrote:

hmmm.... Phrakture, that's not a bad idea...

not python specifically, but it should be possible to contribute modules in a variety of languages. Again, I mention aegis...

Dusty

i was just joking, but it would be very cool, and it'd been done before, there are multiple python based wms out there.

might be a tad bit easier too, Xlib is pretty arcane.

Offline

#40 2005-03-16 08:56:08

nahoj1976
Member
From: Åsele, Lappland, Sweden
Registered: 2005-03-13
Posts: 29

Re: the perfect wm

This discussion although interesting is far above my knowledge but a short philosophic thought I can't keep to my self.

In the early 90th some guys wrote a relational databas-application for medical records in an extremely modular manner. They took object oriented programming as far as one ever could go and managed to make a program that initially was extremely flexible, stable (was of course in unix and later linux) and functional. The modularity was so large that each field in the database could be anything from a simple logical parameter up to an entire program-module. Since it is a relational database of course each field can relate to one parameter or another table with a lot of new fields...

After about 10 years use of a lot of different people one has a totally unpredictable application. Today you only need to add one simple field in one table in order to get bugs in an totally different part of the application. And if you have two different installations with different sets of fields in any table (could be as simple that one table have fields called NAME, SNAME, ADDRESS, ADDRESS2, ZIP and the other NAME,FNAME,ADRESS,ADRESS2,PNR ) and you have managed to write a new module, debugged it in one installation and then try to include it in the other everything crashes! tongue

Now, of course, this is modular programming with global parameters etc as you might get in a relational database application but if you write a wm very modular you have the same risk - at least from a philosophical point of view.

As I said in the beginning: this task is far above my knowledge!  roll

Offline

#41 2005-03-16 16:28:47

phrakture
Arch Overlord
From: behind you
Registered: 2003-10-29
Posts: 7,879
Website

Re: the perfect wm

yeah, I can see what you mean, and I no the dangers... there's subtle differences though... as the modularity won't be used for data storage...

Offline

#42 2005-03-16 16:42:18

phrakture
Arch Overlord
From: behind you
Registered: 2003-10-29
Posts: 7,879
Website

Re: the perfect wm

Dusty wrote:

hmmm.... Phrakture, that's not a bad idea...

not python specifically, but it should be possible to contribute modules in a variety of languages. Again, I mention aegis...

Dusty

yeah, well I was going to get to that - I was thinking, instead of directly supporting scripting languages within the core, I could create some "shims" to allow the execution of python and things like that...
hell, I even had a class diagram that I scrapped before with elf_module, java_module, py_module, etc... for now I will ignore that stuff.. and just support elf modules... easier to get something functional if you shoot for the minimum then add to it

Offline

#43 2005-03-16 22:48:08

shadowhand
Member
From: MN, USA
Registered: 2004-02-19
Posts: 1,142
Website

Re: the perfect wm

More and more stuff seems to be set up with Python these days, both within Arch and outside of it. Python seems to be a great language and all, but when it gets bound to x11 and GTK, it seems to screw the performance really badly. I've always noticed that Python apps have terrible latency.


·¬»· i am shadowhand, powered by webfaction

Offline

#44 2005-03-17 01:36:53

phrakture
Arch Overlord
From: behind you
Registered: 2003-10-29
Posts: 7,879
Website

Re: the perfect wm

shadowhand wrote:

More and more stuff seems to be set up with Python these days, both within Arch and outside of it. Python seems to be a great language and all, but when it gets bound to x11 and GTK, it seems to screw the performance really badly. I've always noticed that Python apps have terrible latency.

I agree, which is why I will not write the core in python... and I personally probably wouldn't extend anything with python... but it's still nice tohave the option... out of all *those* languages, I like python the best... then ruby

Offline

#45 2005-03-18 19:51:03

thegnu
Member
From: Brooklyn, NY
Registered: 2004-05-04
Posts: 280
Website

Re: the perfect wm

Oh, SVG support!

Another PekWM-a-like feature is the extensive definitions for mouse actions on different objects, like:
Action: Enter (left/right/top/bottom), Exit(l/r/t/b), Click1,Click2,ModN+ClickN
Object: Client, Titlebar, Root, Menu, Edge of screen (l/r/t/b),etc

PekWM has a few files in the .pekwm/ directory that have all this stuff I'm talking about in it.  It's mainly for configurability, and the ability of the user to make the WM feel how he wants it to feel, and tweak it to his liking.  I really recommend you install PekWM and fool around with the config files.

Maybe this is available in other WMs, but it's the first implementation that didn't scare me the hell away.

The modular lightweight WM sounds like a great idea!  Above all, implement features you're passionate about, because otherwise it'll be no fun. Good Luck!


fffft!

Offline

#46 2005-03-18 20:20:55

phrakture
Arch Overlord
From: behind you
Registered: 2003-10-29
Posts: 7,879
Website

Re: the perfect wm

thegnu wrote:

Another PekWM-a-like feature is the extensive definitions for mouse actions on different objects, like:
Action: Enter (left/right/top/bottom), Exit(l/r/t/b), Click1,Click2,ModN+ClickN
Object: Client, Titlebar, Root, Menu, Edge of screen (l/r/t/b),etc

Very interesting...  if I plan this right, I can implement the same thing... though I'd have to check the pekwm code

thegnu wrote:

The modular lightweight WM sounds like a great idea!  Above all, implement features you're passionate about, because otherwise it'll be no fun. Good Luck!

Yeah, what I was planning on doing, once I get a nice stable/usable core, is to begin with some simple modules.  At first I was going to add real simple mouse support so I can move windows, then get some decent window decoration modules working.
From there I can, perhaps, get people interested enough to contribute modules, or work on some which I don't care that much about, so I can implement things I care about...

Offline

#47 2005-03-19 01:27:08

xerxes2
Member
From: Malmoe, Sweden
Registered: 2004-04-23
Posts: 1,249
Website

Re: the perfect wm

you can also take a look at PWM on which ION is based on, tabbed frames is the way to go,
and the name should be PhrakWM  big_smile


arch + gentoo + initng + python = enlisy

Offline

#48 2005-03-19 02:29:38

Dusty
Schwag Merchant
From: Medicine Hat, Alberta, Canada
Registered: 2004-01-18
Posts: 5,986
Website

Re: the perfect wm

tabbed frames is what wmii uses, isn't it?

Dusty

Offline

#49 2005-03-19 19:21:45

phrakture
Arch Overlord
From: behind you
Registered: 2003-10-29
Posts: 7,879
Website

Re: the perfect wm

yeah wmii uses tabbed frames...

Offline

#50 2005-03-24 21:58:44

El Guapo
Member
From: 51N 114W
Registered: 2005-03-21
Posts: 13

Re: the perfect wm

I was looking around for Litestep and came across this.  I downloaded it on my Windows box and it isn't too bad at all.  I just started with it so I don't know the in's and out's but so far so good.  Here is the link if you are still interested:
http://beyondconvention.net/ohussain/lsinstaller/

Offline

Board footer

Powered by FluxBB