Re: sloppy and "other"
Ellington Santos <[email protected]>
| Newsgroups | gmane.comp.window-managers.ratpoison.devel |
|---|---|
| Message-ID | <CAK91t2K7tsUJwKDLvJxk0Tnm9-T9TNNtR2rDxrnVurKAan07FQ@mail.gmail.com> |
Buddies, Some time I've got this sloppy in git. I don't remember where I found it, but it works flawless. On Mon, Apr 21, 2014 at 5:33 PM, Jérémie Courrèges-Anglas <[email protected]>wrote: > Jeff Abrahamson <[email protected]> writes: > > > I've been playing with sloppy on a dual-head setup. It makes life quite > a > > bit better for me. I notice, however, that the "other" command, which > > should toggle between two windows in the same frame, causes an endless > > flicker loop when sloppy is running. > > I think that problem has already been reported, but was not fixed. > > > I submitted a bug <https://savannah.nongnu.org/bugs/index.php?42161> to > > this effect on Savannah, but it's not clear to me that that bug tracker > is > > being used. > > It is, I encourage people to use it so that reports don't get lost, so > thank you. > > > (I see plenty of commits from Jérémie, but not much activity > > otherwise, so I'm a bit uncertain what the status of the project is these > > days.) > > It's alive! Commits lead to releases, 1.4.7 was published this month. > > -- > jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE > > _______________________________________________ > Ratpoison-devel mailing list > [email protected] > https://lists.nongnu.org/mailman/listinfo/ratpoison-devel > _______________________________________________ Ratpoison-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/ratpoison-devel
sloppy-abe.c
(text/x-csrc, 2.6 KB)
/* Sloppy focus * * Copyright (C) 2005 Shawn Betts <[email protected]> * * sloppy is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * sloppy is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA */ #include <X11/Xos.h> #include <X11/Xlib.h> #include <X11/Xutil.h> #include <X11/Xproto.h> #include <stdio.h> #include <stdlib.h> #include <sys/wait.h> int (*defaulthandler)(); int errorhandler(Display *display, XErrorEvent *error) { if(error->error_code!=BadWindow) (*defaulthandler)(display,error); return 0; } int spawn(char *cmd) { int pid; pid = fork(); if (pid == 0) { execl("/bin/sh", "sh", "-c", cmd, (char *)NULL); _exit(EXIT_FAILURE); } return pid; } int main (int argc, char **argv) { Display *display; int i, numscreens; display = XOpenDisplay(NULL); if(!display) { perror("could not open display"); exit(1); } defaulthandler = XSetErrorHandler(errorhandler); numscreens = ScreenCount(display); for (i=0; i<numscreens; i++) { unsigned int j, nwins; Window dw1, dw2, *wins; XSelectInput(display,RootWindow(display, i), SubstructureNotifyMask); XQueryTree(display, RootWindow(display, i), &dw1, &dw2, &wins, &nwins); for (j=0; j<nwins; j++) XSelectInput(display, wins[j], EnterWindowMask); } while (1) { XEvent event; do { XNextEvent(display,&event); if (event.type == CreateNotify) XSelectInput(display, event.xcreatewindow.window, EnterWindowMask); } while(event.type != EnterNotify); /* A window was entered. select it. */ { char shell[256]; snprintf (shell, 255, "$RATPOISON -c \"select $($RATPOISON -c 'windows %%i %%n %%f' | grep '%ld' | awk '$3 != '$($RATPOISON -c curframe)' && $3 != \"\" {print $2}')\" 2>/dev/null", event.xcrossing.window); //printf ("%s\n", shell); spawn (shell); wait (NULL); } } XCloseDisplay (display); return 0; } /* Local Variables: *** compile-command: "gcc -g -Wall -O2 -I/usr/X11R6/include -o sloppy sloppy.c -L/usr/X11R6/lib -lX11" *** End: *** */