Michael Cardell Widerkrantz November 11, 2011

Michael Cardell Widerkrantz November 11, 2011

mcwm Michael Cardell Widerkrantz November 11, 2011 History of mcwm Desktop Environments Floating or Tiling mcwm Features XCB What does a window manager do and how? Using mcwm Contact Information Outline History of mcwm Desktop Environments Floating or Tiling mcwm Features XCB What does a window manager do and how? Using mcwm Contact Information Why another window manager!? Window Managers I Have Known And Loved TWM, CTWM, fvwm, 9wm, wm2, ratpoison and evilwm. Special mention: MGR Window System. tinywm / ∗ 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 / X l i b . h> #define MAX(a, b) ((a) > (b) ? (a) : (b)) i n t main ( ) f 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); f o r ( ; ; ) f 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) f XGrabPointer(dpy, ev.xbutton.subwindow, True, PointerMotionMask j ButtonReleaseMask , GrabModeAsync, GrabModeAsync, None, None, CurrentTime ); XGetWindowAttributes(dpy, ev.xbutton.subwindow, &attr ); start = ev.xbutton; g else if(ev.type == MotionNotify) f int xdiff, ydiff; while(XCheckTypedEvent(dpy, MotionNotify , &ev)); xdiff = ev.xbutton.x r o o t − s t a r t . x r o o t ; ydiff = ev.xbutton.y r o o t − s t a r t . y r o o t ; 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))); g else if (ev.type == ButtonRelease) XUngrabPointer(dpy, CurrentTime ); g g Outline History of mcwm Desktop Environments Floating or Tiling mcwm Features XCB What does a window manager do and how? Using mcwm Contact Information Outline History of mcwm Desktop Environments Floating or Tiling mcwm Features XCB What does a window manager do and how? Using mcwm Contact Information xmonad, a tiling wm, here on three screens TWM, a floating wm Outline History of mcwm Desktop Environments Floating or Tiling mcwm Features XCB What does a window manager do and how? Using mcwm Contact Information mc 1663 6.7 1.6 67080 8744 pts/0 SNl 20:28 0:00 mc 1668 0.2 0.1 1864 708 pts/0 SN 20:29 0:00 Size Matters? Size Matters? mc 1663 6.7 1.6 67080 8744 pts/0 SNl 20:28 0:00 mc 1668 0.2 0.1 1864 708 pts/0 SN 20:29 0:00 Outline History of mcwm Desktop Environments Floating or Tiling mcwm Features XCB What does a window manager do and how? Using mcwm Contact Information Outline History of mcwm Desktop Environments Floating or Tiling mcwm Features XCB What does a window manager do and how? Using mcwm Contact Information What does a window manager do? I Subscribes to all window events and forwards them to the X server, possibly after changes. I Reparents client windows. * I Draws window decorations (title, buttons, borders et cetera) * I Manage client hints (window title, workspace, fixed). I Handles focus (following mouse, click, sloppy). I Interacts with user through commands (mouse or special key presses). * Not mcwm. Outline History of mcwm Desktop Environments Floating or Tiling mcwm Features XCB What does a window manager do and how? Using mcwm Contact Information mcwm with dzen Focus and window placement mcwm has sloppy focus. New windows mapped on mouse pointer, fitted on the screen. Mouse buttons Pressed together with Mod1 (usually Alt or Meta). I Button 1 = move. I Button 2 = raise/lower I Button 3 = resize. Some key bindings Pressed together with Mod4 (usually Super, the Windows key). I h, j, k, l = moves window in vi fashion. Resizes with Shift pressed. I x = maximize (toggles) I , = move window to previous physical screen. I Return = start terminal program of your choice. I Tab = focus next window on this workspace. After releasing Mod4, a new Mod4 + Tab will bring you back to the window last focused. I ... Too many to mention. See the manual. Outline History of mcwm Desktop Environments Floating or Tiling mcwm Features XCB What does a window manager do and how? Using mcwm Contact Information Contact Michael Cardell Widerkrantz, [email protected] http://hack.org/mc/ mcwm: http://hack.org/mc/hacks/mcwm/.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    23 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us