JWM 2.1.0

Címkék

Több mint 4 év után ismét stabil kiadással jelentkezett Joe Wingbermuehle pehelysúlyú ablakkezelője, a JWM (Joe's Window Manager). A JWM egy C-ben írt, nyílt forrású, GPLv2 alatt terjesztett ablakkezelő. Változások a 2007-ben kiadott 2.0.1-es verzióhoz képest:

JWM 2.1

  • Fixed several window handling issues.
  • Fixed an issue with key bindings and modifiers.
  • Added some more key bindings.
  • Changed the way the "next" and "nextstacked" key bindings behave.
  • Merged some user-contributed patches.
    • Rounded window corners (Patriot).
    • Support for transparent menus, trays, and windows (Patriot).
    • New borders for buttons (Patriot).
    • User-replaceable window button masks (Patriot).
    • gxine fullscreen fix (Patriot).
    • Fix for windows loosing focus when switching desktops (Patriot).
    • More key bindings (Dougal).
    • Transparent group (Dougal).
  • Some code cleanups.
  • Added the ability to resize from the top of windows.
  • Added support for pager labels.

Bejelentés itt. Letölthető forrásban innen.

Hozzászólások

Ennek kifejezetten örülök, csak ne szaladjon el a ló. Remélem megmarad ilyen minimalnak.

tinywm
Ennek aztán semmije se nincsen. Rettegek hogy egy szép napon vmi idióta továbbfejleszti ;)
Ime a _teljes_ forrás:



/* TinyWM is written by Nick Welch <mack@incise.org>, 2005.
 *
 * This software is in the public domain
 * and is provided AS IS, with NO WARRANTY. */

#include <X11/Xlib.h>

#define MAX(a, b) ((a) > (b) ? (a) : (b))

int main()
{
    Display * dpy;
    Window root;
    XWindowAttributes attr;
    XButtonEvent start;
    XEvent ev;

    if(!(dpy = XOpenDisplay(0x0))) return 1;

    root = DefaultRootWindow(dpy);

    XGrabKey(dpy, XKeysymToKeycode(dpy, XStringToKeysym("F1")), Mod1Mask, root,
            True, GrabModeAsync, GrabModeAsync);
    XGrabButton(dpy, 1, Mod1Mask, root, True, ButtonPressMask, GrabModeAsync,
            GrabModeAsync, None, None);
    XGrabButton(dpy, 3, Mod1Mask, root, True, ButtonPressMask, GrabModeAsync,
            GrabModeAsync, None, None);

    for(;;)
    {
        XNextEvent(dpy, &ev);
        if(ev.type == KeyPress && ev.xkey.subwindow != None)
            XRaiseWindow(dpy, ev.xkey.subwindow);
        else if(ev.type == ButtonPress && ev.xbutton.subwindow != None)
        {
            XGrabPointer(dpy, ev.xbutton.subwindow, True,
                    PointerMotionMask|ButtonReleaseMask, GrabModeAsync,
                    GrabModeAsync, None, None, CurrentTime);
            XGetWindowAttributes(dpy, ev.xbutton.subwindow, &attr);
            start = ev.xbutton;
        }
        else if(ev.type == MotionNotify)
        {
            int xdiff, ydiff;
            while(XCheckTypedEvent(dpy, MotionNotify, &ev));
            xdiff = ev.xbutton.x_root - start.x_root;
            ydiff = ev.xbutton.y_root - start.y_root;
            XMoveResizeWindow(dpy, ev.xmotion.window,
                attr.x + (start.button==1 ? xdiff : 0),
                attr.y + (start.button==1 ? ydiff : 0),
                MAX(1, attr.width + (start.button==3 ? xdiff : 0)),
                MAX(1, attr.height + (start.button==3 ? ydiff : 0)));
        }
        else if(ev.type == ButtonRelease)
            XUngrabPointer(dpy, CurrentTime);
    }
}


Rounded window corners [...] transparent menus, trays, and windows

Identitászavarban szenved; egy könnyűsúlyú ablakkezelőtől nemhogy nem ezt várom, hanem egyenesen utálom benne az ilyen csicsát (mert regressziót azért tud okozni).

Évek óta használom, pont azt tudja amire szükségem van.
Frissítettem, ez is jónak tűnik, csak így tovább!