From pbrochard at common-lisp.net Thu Mar 3 23:19:47 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Fri, 04 Mar 2011 00:19:47 +0100 Subject: [clfswm-devel] Bye bye annoying flickering (beginning). Message-ID: <87r5anyep8.fsf@common-lisp.net> Hi all, I'm happy to tell you that I've completely rethought the order CLFSWM uses to display the child tree*. The method is more simple yet more efficient. I was fighting this bugs since the big change in the CLFSWM organisation (Janvier 2008)! I haven't made any optimization yet: all child on the current root are displayed. I can do something on this if there is a need. So, please, can you test heavily CLFSWM on your boxes and especially on slow ones and tell me if there is a positive change? Thanks. Regards, Philippe PS: Special thanks to Desmond O. Chang which made me reread carefully the CLX manual for the xvkbd problem and especially the 'setf (window-priority window) (&optional sibling) mode' section :) * commit: b3639aa007b913625272907efe672118dc6e54bd From dochang at gmail.com Fri Mar 4 03:20:44 2011 From: dochang at gmail.com (Desmond O. Chang) Date: Fri, 4 Mar 2011 11:20:44 +0800 Subject: [clfswm-devel] clfswm in different environments In-Reply-To: <87wrkot85c.fsf@common-lisp.net> References: <8762sc6zg4.fsf@common-lisp.net> <87wrkot85c.fsf@common-lisp.net> Message-ID: On Sat, Feb 26, 2011 at 00:02, Philippe Brochard wrote: > Desmond O. Chang writes: > >> On Tue, Feb 22, 2011 at 20:11, Philippe Brochard >> wrote: >>> Maybe you have to clear all .fas and .lib files built with the old >>> clisp. You may have to do the same with the directory ~/.cache/common-lisp/... >>> before building clx and clfswm. >>> In all cases, when something goes wrong with CLX, start with a fresh >>> source directory and clear your cache. >> >> I think I know why. ?The fas files compiled with new clx cannot be >> used with portable clx and vice versa. ?Is it a bug? >> > Yes that's right. And it's even worse with a mix between ecl and clisp > because they share the same .fas extension but the file format is > completely different. > And I don't think it's a bug. More a lose of feature. It's just that > asdf can't know when you've changed your implementation. We can't even > know which clx we are using while clisp is running. So clear your cache > each time you change your clx. That means if new-clx not loaded before loading clfswm, the portable one will be loaded. Then if the fas files was compiled with new-clx, clfswm fails to start. I have to choose the version of clx before I load clfswm. I can put (REQUIRE "clx") in .clisprc.lisp but this causes clisp loads clx every time even I don't need it. A bad solution. Finally I decide to configure ASDF. I put the function SYSDEF-FIND-CLX in my config.lisp (I symlink .sbclrc, .clisprc.lisp, etc. to ~/.config/common-lisp/config.lisp). This function also works in cmucl. #+(or clisp cmu) (progn (defun sysdef-find-clx (name) (let* ((x #+clisp (asdf::find-symbol* '#:*module-provider-functions* :custom) #+cmu 'ext:*module-provider-functions*) (syms (and x (list x))) (vals (and x (list (remove 'asdf::module-provide-asdf (symbol-value x)))))) (progv syms vals (require #+clisp "clx" #+cmu :clx))) (asdf::find-system-fallback name "clx")) (pushnew 'sysdef-find-clx asdf:*system-definition-search-functions*)) Maybe ASDF could provide a better mechanism for it. I'll ask the author on ASDF's maillist. ------ Another question here. Could you tell me why does the source code work with either new or portable clx, but the compiled files not? Is it repairable? From dochang at gmail.com Fri Mar 4 03:37:00 2011 From: dochang at gmail.com (Desmond O. Chang) Date: Fri, 4 Mar 2011 11:37:00 +0800 Subject: [clfswm-devel] clfswm in different environments In-Reply-To: <87wrkot85c.fsf@common-lisp.net> References: <8762sc6zg4.fsf@common-lisp.net> <87wrkot85c.fsf@common-lisp.net> Message-ID: On Sat, Feb 26, 2011 at 00:02, Philippe Brochard wrote: > > And clisp is surely a better option for you. Definitely. I always use clisp/new-clx for clfswm and stumpwm. > How do you see that clfswm is freezing? If this is when you move a frame > or a window, the freeze maybe normal as this is a cpu intensive > action. Maybe the gc comes in action (maybe something consing to > mush). I'll take a look. Well, it's not clfswm, it's conkeror. If you have a gmail accout, please open the standard ui in conkeror and use it. Conkeror will freeze after a few minutes. > I've a box with the double of cpu and a lot more memory. But I always > disable flash except when I really need it (vlc is good for viewing > youtube). clisp is surely a better option for you. You can also try > cmucl which use less memory. I've tested on cmucl. Here is my conclusion: clisp/new-clx - Perfect. sbcl/portable-clx - Conkeror freezes when viewing gmail - Iceweasel freezes when view flash. cmucl/cmu-clx - Conkeror freezes when viewing gmail. >>> This one is because you haven't enabled local connections on your X >>> server. Add a line with 'xhost local:local' in your ~/.xsession or >>> .xinitrc or .Xclients. >> >> Why does clisp require this with portable clx but sbcl not? >> > Don't know. cmucl has solved this but the open-clx-display is not > portable. > > http://www.cons.org/cmucl/doc/clx-authorization.html Will never test. Unportable solution sucks. We have too many CLX. From dochang at gmail.com Fri Mar 4 07:11:13 2011 From: dochang at gmail.com (Desmond O. Chang) Date: Fri, 4 Mar 2011 15:11:13 +0800 Subject: [clfswm-devel] Bye bye annoying flickering (beginning). In-Reply-To: <87r5anyep8.fsf@common-lisp.net> References: <87r5anyep8.fsf@common-lisp.net> Message-ID: On Fri, Mar 4, 2011 at 07:19, Philippe Brochard wrote: > Hi all, > > I'm happy to tell you that I've completely rethought the order CLFSWM > uses to display the child tree*. The method is more simple yet more > efficient. I was fighting this bugs since the big change in the CLFSWM > organisation (Janvier 2008)! > I haven't made any optimization yet: all child on the current root are > displayed. I can do something on this if there is a need. > > So, please, can you test heavily CLFSWM on your boxes and especially on > slow ones and tell me if there is a positive change? It works here. > PS: Special thanks to Desmond O. Chang which made me reread carefully > the CLX manual for the xvkbd problem and especially the > 'setf (window-priority window) (&optional sibling) mode' section :) You're welcome! From dochang at gmail.com Fri Mar 4 08:36:33 2011 From: dochang at gmail.com (Desmond O. Chang) Date: Fri, 4 Mar 2011 16:36:33 +0800 Subject: [clfswm-devel] [pull-request] Add volume mode In-Reply-To: <87r5awt81o.fsf@common-lisp.net> References: <87fwrgkvit.fsf@common-lisp.net> <87r5awt81o.fsf@common-lisp.net> Message-ID: On Sat, Feb 26, 2011 at 00:04, Philippe Brochard wrote: > > Thanks! How do you think clfswm is hackable? Is the api hard to > understand? Keybinding and menu definition are simple. Source code is a good example. It's more difficult to write a mode. There're too many apis: GENERIC-MODE, DEFINE-HANDLER, DEFINE-INIT-HASH-TABLE-KEY, DEFINE-DEFINE-KEY and many XLIB functions. It would be better if we have a guide. Next I'll learn the layout management. From pbrochard at common-lisp.net Fri Mar 4 21:15:08 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Fri, 04 Mar 2011 22:15:08 +0100 Subject: [clfswm-devel] [pull-request] Add volume mode In-Reply-To: (Desmond O. Chang's message of "Fri, 4 Mar 2011 16:36:33 +0800") References: <87fwrgkvit.fsf@common-lisp.net> <87r5awt81o.fsf@common-lisp.net> Message-ID: <87r5amy4df.fsf@common-lisp.net> Desmond O. Chang writes: > On Sat, Feb 26, 2011 at 00:04, Philippe Brochard > wrote: >> >> Thanks! How do you think clfswm is hackable? Is the api hard to >> understand? > > Keybinding and menu definition are simple. Source code is a good > example. > Ok. And indeed, the source code is the sole documentation but like that there is no lag between the doc and the code :) > It's more difficult to write a mode. There're too many apis: > GENERIC-MODE, DEFINE-HANDLER, DEFINE-INIT-HASH-TABLE-KEY, > DEFINE-DEFINE-KEY and many XLIB functions. It would be better if we > have a guide. > Yes, the mode creation is a more complex thing and it's not standardized yet (a lot of things to put together). But there is some recurrent pattern that can be factorized. BTW your contrib/volume-mode.lisp can be a good starting point for example. > Next I'll learn the layout management. > This part is standardized. But there will be some changes with the changeable child border size. From pbrochard at common-lisp.net Sat Mar 5 23:32:36 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sun, 06 Mar 2011 00:32:36 +0100 Subject: [clfswm-devel] clfswm in different environments In-Reply-To: (Desmond O. Chang's message of "Fri, 4 Mar 2011 11:20:44 +0800") References: <8762sc6zg4.fsf@common-lisp.net> <87wrkot85c.fsf@common-lisp.net> Message-ID: <8762rx87or.fsf@common-lisp.net> Desmond O. Chang writes: > On Sat, Feb 26, 2011 at 00:02, Philippe Brochard > wrote: >> Desmond O. Chang writes: >> >>> On Tue, Feb 22, 2011 at 20:11, Philippe Brochard >>> wrote: >>>> Maybe you have to clear all .fas and .lib files built with the old >>>> clisp. You may have to do the same with the directory ~/.cache/common-lisp/... >>>> before building clx and clfswm. >>>> In all cases, when something goes wrong with CLX, start with a fresh >>>> source directory and clear your cache. >>> >>> I think I know why. ?The fas files compiled with new clx cannot be >>> used with portable clx and vice versa. ?Is it a bug? >>> >> Yes that's right. And it's even worse with a mix between ecl and clisp >> because they share the same .fas extension but the file format is >> completely different. >> And I don't think it's a bug. More a lose of feature. It's just that >> asdf can't know when you've changed your implementation. We can't even >> know which clx we are using while clisp is running. So clear your cache >> each time you change your clx. > > That means if new-clx not loaded before loading clfswm, the portable > one will be loaded. Then if the fas files was compiled with new-clx, > clfswm fails to start. I have to choose the version of clx before I > load clfswm. > Yes that's right. And you have to be sure to recompile *all* files when you switch your CLX. A mix of different CLX version in a compiled code can makes some very ugly bugs (if the compilation doesn't failed). > I can put (REQUIRE "clx") in .clisprc.lisp but this causes clisp loads > clx every time even I don't need it. A bad solution. > Yes bad solution as CLX is not always needed. > Finally I decide to configure ASDF. I put the function > SYSDEF-FIND-CLX in my config.lisp (I symlink .sbclrc, .clisprc.lisp, > etc. to ~/.config/common-lisp/config.lisp). This function also works > in cmucl. > > #+(or clisp cmu) > (progn > (defun sysdef-find-clx (name) > (let* ((x #+clisp (asdf::find-symbol* > '#:*module-provider-functions* :custom) > #+cmu 'ext:*module-provider-functions*) > (syms (and x (list x))) > (vals (and x (list (remove 'asdf::module-provide-asdf > (symbol-value x)))))) > (progv syms vals > (require #+clisp "clx" #+cmu :clx))) > (asdf::find-system-fallback name "clx")) > (pushnew 'sysdef-find-clx asdf:*system-definition-search-functions*)) > > Maybe ASDF could provide a better mechanism for it. I'll ask the > author on ASDF's maillist. > Feel free to share your results here. I can adapt the load.lisp code in the CLFSWM tree. > ------ > > Another question here. Could you tell me why does the source code > work with either new or portable clx, but the compiled files not? Is > it repairable? > Hum, what do you mean by source code and compiled files? If you compile CLFSWM, the code of the CLX used is compiled inside the .fas file. If you switch your CLX and don't recompile all your files some files have the old CLX compiled in when others have the new one. This fails most of the time but when the compilation is ok the result is unpredictable. From pbrochard at common-lisp.net Sat Mar 5 23:44:07 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sun, 06 Mar 2011 00:44:07 +0100 Subject: [clfswm-devel] clfswm in different environments In-Reply-To: (Desmond O. Chang's message of "Fri, 4 Mar 2011 11:37:00 +0800") References: <8762sc6zg4.fsf@common-lisp.net> <87wrkot85c.fsf@common-lisp.net> Message-ID: <871v2l875k.fsf@common-lisp.net> Desmond O. Chang writes: > On Sat, Feb 26, 2011 at 00:02, Philippe Brochard > wrote: >> >> And clisp is surely a better option for you. > > Definitely. I always use clisp/new-clx for clfswm and stumpwm. > >> How do you see that clfswm is freezing? If this is when you move a frame >> or a window, the freeze maybe normal as this is a cpu intensive >> action. Maybe the gc comes in action (maybe something consing to >> mush). I'll take a look. > > Well, it's not clfswm, it's conkeror. If you have a gmail accout, > please open the standard ui in conkeror and use it. Conkeror will > freeze after a few minutes. > I'll take a look but I have to create a gmail account first. >> I've a box with the double of cpu and a lot more memory. But I always >> disable flash except when I really need it (vlc is good for viewing >> youtube). clisp is surely a better option for you. You can also try >> cmucl which use less memory. > > I've tested on cmucl. Here is my conclusion: > > clisp/new-clx > > - Perfect. > > sbcl/portable-clx > > - Conkeror freezes when viewing gmail > - Iceweasel freezes when view flash. > > cmucl/cmu-clx > > - Conkeror freezes when viewing gmail. > And with clisp/portable-clx? I ask this because I think there is too many CLX too. >>>> This one is because you haven't enabled local connections on your X >>>> server. Add a line with 'xhost local:local' in your ~/.xsession or >>>> .xinitrc or .Xclients. >>> >>> Why does clisp require this with portable clx but sbcl not? >>> >> Don't know. cmucl has solved this but the open-clx-display is not >> portable. >> >> http://www.cons.org/cmucl/doc/clx-authorization.html > > Will never test. Unportable solution sucks. We have too many CLX. > Totally agree for both. If the cmucl code can be ported to others CLX we'll use it. But I have no need for it for now. For the too many CLX it's very confusing to have all those choices :) On the other hand switching from a version to another let me found some bugs in CLFSWM. It's for this reason I've recommended the clisp/mit-clx solution for a long time. The portable-clx is threaded on sbcl and this have caused some ugly bugs hard to found. But ideally, only one CLX version packaged in all lisp implementation will be a good thing. From pbrochard at common-lisp.net Thu Mar 10 08:42:18 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Thu, 10 Mar 2011 09:42:18 +0100 Subject: [clfswm-devel] new window hooks and others In-Reply-To: <20101030144649.GA32445@aristocracia> (Fernando Aguayo's message of "Sat, 30 Oct 2010 15:46:49 +0100") References: <20101029233426.GA7980@aristocracia> <87pqus15gl.fsf@free.fr> <20101030144649.GA32445@aristocracia> Message-ID: <874o7bfjth.fsf@common-lisp.net> Fernando Aguayo writes: [...] > I'm glad to know a next release is coming. Do you think you could add > the width of the frame and windows borders as a parameter? I find it difficult to > know where I am when I have a maximized window inside a frame. > Hi, I have added a frames and windows border size parameter (now it's a defconfig). You can set it with the '(defconfig *border-size* 1 nil...)' in package.lisp or with a (setf *border-size* 5) in your .clfswmrc. It's a size for all windows and frames, I don't think there is a need to fix separately the border size for each child because once you'll got the clfswm behaviour, I think you'll switch to a 1 pixel border size. Please, test and let me know if this fits your needs. Regards, Philippe From pbrochard at common-lisp.net Wed Mar 16 21:11:34 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Wed, 16 Mar 2011 22:11:34 +0100 Subject: [clfswm-devel] CLFSWM 1.0 planned for the next week. Message-ID: <87k4fy4vp5.fsf@common-lisp.net> Hi all, I planned to release a new CLFSWM version the next week. I think I can tag it as an 1.0 version since I think CLFSWM is quite complete now. BTW I think I'll not change the version number method. It'll be a 11-03 or 11-04 version. Before the release, I'll add a browsable page for the configuration variables like the ones for menus or keys. Indeed, any remarks is welcome for this release. Have fun, Philippe From dochang at gmail.com Sun Mar 20 11:29:14 2011 From: dochang at gmail.com (Desmond O. Chang) Date: Sun, 20 Mar 2011 19:29:14 +0800 Subject: [clfswm-devel] Unofficial debian package on cl.net Message-ID: Hi, The debian package has been uploaded to mentors.debian.net for several days. Since I don't have permission to access the official Debian Package Archive, I have to wait my "sponsor", who has full upload rights, to upload it. But he seems busy now... For the guys who don't want to wait any more, I put my unofficial package to [1]. If you want to build it by yourself, the source package is here [2] [3] [4]. You can also download the source code from [5] or [6] then build it on the master branch. clfswm depends on one of clisp-module-clx, cl-clx-sbcl and cmucl-source. Take care of the dependencies since you install clfswm manually. To start clfswm, run /usr/bin/clfswm. Use update-alternatives to config /usr/bin/x-window-manager. To select which implementation to load clfswm, read /usr/share/doc/clfswm/README.Debian or see clfswm's manpage. This package is based on the commit 58f154e, a little bit outdated. But you can use the upstream code with /usr/bin/clfswm as long as ASDF finds it. [1] http://common-lisp.net/~dchang/clfswm_20110305.git58f154e-1_all.deb [2] http://mentors.debian.net/debian/pool/main/c/clfswm/clfswm_20110305.git58f154e-1.debian.tar.gz [3] http://mentors.debian.net/debian/pool/main/c/clfswm/clfswm_20110305.git58f154e-1.dsc [4] http://mentors.debian.net/debian/pool/main/c/clfswm/clfswm_20110305.git58f154e.orig.tar.gz [5] git://git.debian.org/pkg-common-lisp/clfswm.git [6] https://alioth.debian.org/anonscm/git/pkg-common-lisp/clfswm.git Sorry for my big delay :-( Des From dochang at gmail.com Sun Mar 20 11:34:49 2011 From: dochang at gmail.com (Desmond O. Chang) Date: Sun, 20 Mar 2011 19:34:49 +0800 Subject: [clfswm-devel] clfswm in different environments In-Reply-To: <871v2l875k.fsf@common-lisp.net> References: <8762sc6zg4.fsf@common-lisp.net> <87wrkot85c.fsf@common-lisp.net> <871v2l875k.fsf@common-lisp.net> Message-ID: On Sun, Mar 6, 2011 at 07:44, Philippe Brochard wrote: > >>> I've a box with the double of cpu and a lot more memory. But I always >>> disable flash except when I really need it (vlc is good for viewing >>> youtube). clisp is surely a better option for you. You can also try >>> cmucl which use less memory. >> >> I've tested on cmucl. ?Here is my conclusion: >> >> clisp/new-clx >> >> - Perfect. >> >> sbcl/portable-clx >> >> - Conkeror freezes when viewing gmail >> - Iceweasel freezes when view flash. >> >> cmucl/cmu-clx >> >> - Conkeror freezes when viewing gmail. >> > And with clisp/portable-clx? I ask this because I think there is too > many CLX too. I have used them for about 1.5 hours and everything is ok. From pbrochard at common-lisp.net Sun Mar 20 20:20:46 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Sun, 20 Mar 2011 21:20:46 +0100 Subject: [clfswm-devel] Unofficial debian package on cl.net In-Reply-To: (Desmond O. Chang's message of "Sun, 20 Mar 2011 19:29:14 +0800") References: Message-ID: <87k4ftlf1d.fsf@common-lisp.net> Hi, Your .deb works perfectly on my box. Thanks a lot for your work. And no problem for the 'big delay': We have time to make it done right :) Thanks, Philippe Desmond O. Chang writes: > Hi, > > The debian package has been uploaded to mentors.debian.net for several > days. Since I don't have permission to access the official Debian > Package Archive, I have to wait my "sponsor", who has full upload > rights, to upload it. But he seems busy now... > > For the guys who don't want to wait any more, I put my unofficial > package to [1]. If you want to build it by yourself, the source > package is here [2] [3] [4]. You can also download the source code > from [5] or [6] then build it on the master branch. > > clfswm depends on one of clisp-module-clx, cl-clx-sbcl and > cmucl-source. Take care of the dependencies since you install clfswm > manually. > > To start clfswm, run /usr/bin/clfswm. Use update-alternatives to > config /usr/bin/x-window-manager. > > To select which implementation to load clfswm, read > /usr/share/doc/clfswm/README.Debian or see clfswm's manpage. > > This package is based on the commit 58f154e, a little bit outdated. > But you can use the upstream code with /usr/bin/clfswm as long as ASDF > finds it. > > [1] http://common-lisp.net/~dchang/clfswm_20110305.git58f154e-1_all.deb > [2] http://mentors.debian.net/debian/pool/main/c/clfswm/clfswm_20110305.git58f154e-1.debian.tar.gz > [3] http://mentors.debian.net/debian/pool/main/c/clfswm/clfswm_20110305.git58f154e-1.dsc > [4] http://mentors.debian.net/debian/pool/main/c/clfswm/clfswm_20110305.git58f154e.orig.tar.gz > [5] git://git.debian.org/pkg-common-lisp/clfswm.git > [6] https://alioth.debian.org/anonscm/git/pkg-common-lisp/clfswm.git > > Sorry for my big delay :-( > > Des > > _______________________________________________ > clfswm-devel mailing list > clfswm-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/clfswm-devel From dochang at gmail.com Mon Mar 21 13:30:37 2011 From: dochang at gmail.com (Desmond O. Chang) Date: Mon, 21 Mar 2011 21:30:37 +0800 Subject: [clfswm-devel] A frame related bug Message-ID: <87hbawmwhu.fsf@giroro.home> Hi, There is a bug in the commit c8aa725. How to reproduce it: 1. create a frame on the root window; 2. In main mode, click the pointer 1 with[out] MOD-1 on the frame. The related functions are MOUSE-CLICK-TO-FOCUS-AND-MOVE[-WINDOW]; 3. Don't move, don't drag, just click, click more times; 4. The frame is moving! Thanks, Des From pbrochard at common-lisp.net Mon Mar 21 20:23:19 2011 From: pbrochard at common-lisp.net (Philippe Brochard) Date: Mon, 21 Mar 2011 21:23:19 +0100 Subject: [clfswm-devel] A frame related bug In-Reply-To: <87hbawmwhu.fsf@giroro.home> (Desmond O. Chang's message of "Mon, 21 Mar 2011 21:30:37 +0800") References: <87hbawmwhu.fsf@giroro.home> Message-ID: <87tyewjk94.fsf@common-lisp.net> Desmond O. Chang writes: > Hi, > Hi, > There is a bug in the commit c8aa725. > > How to reproduce it: > > 1. create a frame on the root window; > > 2. In main mode, click the pointer 1 with[out] MOD-1 on the frame. > The related functions are MOUSE-CLICK-TO-FOCUS-AND-MOVE[-WINDOW]; > > 3. Don't move, don't drag, just click, click more times; > > 4. The frame is moving! > It's funny! isn't it? :) Well, this comes from the new variable border size. Hopefully fixed in the last commit (5e590d39d). Many thanks for the bug report. Regards, Philippe > > Thanks, > Des > From dochang at gmail.com Tue Mar 22 04:21:47 2011 From: dochang at gmail.com (Desmond O. Chang) Date: Tue, 22 Mar 2011 12:21:47 +0800 Subject: [clfswm-devel] A frame related bug In-Reply-To: <87tyewjk94.fsf@common-lisp.net> References: <87hbawmwhu.fsf@giroro.home> <87tyewjk94.fsf@common-lisp.net> Message-ID: On Tue, Mar 22, 2011 at 04:23, Philippe Brochard wrote: > It's funny! isn't it? :) ya! :) > Well, this comes from the new variable border size. Hopefully fixed in > the last commit (5e590d39d). It's fixed in commit ca48d87. Thank you!