[clfswm-devel] Some news: new Expos? mode, new toolbar system.

Philippe Brochard pbrochard at common-lisp.net
Mon Aug 20 21:59:56 UTC 2012


Philipp Kroos hat geschrieben:

> Hi,
>
Hi,

> thanks for the update, I really like it!
> The expose-mode is great and the toolbar... well, I thought
> clfswm won't need one, but it does!
>
I have the same feeling about toolbars. This is why the code is in
contrib. But I use them now :)

> I already made a small module, a button-like-thing that lets you
> switch to the expo-mode on click. You can configure if it shows
> all or just the current root. Hope I made it right.
>
Thanks a lot. Commited in your name. I've just removed the configuration
variable and let the user choose between the two mode with right or left
button click. Is this ok for you?

> You might also want to consider the other patch attached; it adds
> a here-placement-function to the core. I did this because with my
> two-screen-setup, the mainmenu shows up on the wrong screen when the
> focus is there. The here-placement uses the current pointer-position,
> what is really convenient. It does not make sense for all placeable
> components though, so maybe there is some better solution.
>
Thanks. Added. This may be very useful to locally bind placement to this
value in some cases.

> Another thing is this code:
>   ;; Miscellaneous Group:
> ;  *NEVER-MANAGED-WINDOW-LIST* (quote ((#<CLOSURE CLFSWM::IS-TOOLBAR-WINDOW-P> NIL)
> ;        (CLFSWM::EQUAL-WM-CLASS-ROX-PINBOARD NIL)
> ;        (CLFSWM::EQUAL-WM-CLASS-XVKBD CLFSWM::RAISE-WINDOW)
> ;        (CLFSWM::EQUAL-CLFSWM-TERMINAL CLFSWM::RAISE-AND-FOCUS-WINDOW)))
>
> which is written to my rc when I save all variables. It causes the
> compilation to fail when uncommented. I don't know why. Maybe the 
> closure...?
>
Thanks a lot for the feedback.
In fact, it's functions objects printed which can't be read back.
Hopefully I've fixed this with the commit 4f9b2e1. Please, test.

> Beside this, everything works as expected!
>
Ok, please, continue reporting as you do!

> Best regards,
>
Best regards,

> Philipp
>
Philippe

>
> On Thu, Aug 16, 2012 at 11:19:00PM +0200, Philippe Brochard wrote:
>> Hi CLFSWM followers,
>> 
>> Here are some news of CLFSWM development as I plan to release a new
>> clfswm version soon.
>> 
>> 1) The Exposé mode is again available. Here are some screenshots:
>> 
>>   http://common-lisp.net/project/clfswm/expose-mode-2.png
>>   http://common-lisp.net/project/clfswm/expose-mode.png
>> 
>>   And indeed, it works over all your root screens.
>> 
>> 
>> 2) The toolbar framework in /contrib is done. I've beginning to write
>>   some modules. Here is a screenshot:
>> 
>>   http://common-lisp.net/project/clfswm/toolbar.png
>> 
>>   This is for test, but for the story, as this is not seen on the
>>   picture, the upper toolbar appear on edge motion contact. The lower
>>   one (my actual toolbar) appear on button press.
>> 
>>   For the record, I paste here the add-toolbar documentation to create a
>>   new toolbar in your configuration file:
>> 
>>   --------------------------------------------------
>>   add-toolbar (root-x root-y direction size placement modules
>>                       &key (autohide *toolbar-default-autohide*)
>>                       (thickness *toolbar-default-thickness*)
>>                       (refresh-delay *toolbar-default-refresh-delay*)
>>                       (border-size *toolbar-default-border-size*))
>>     "Add a new toolbar.
>>        root-x, root-y: root coordinates or if root-y is nil, root-x is the nth root in root-list.
>>        direction: one of :horiz or :vert
>>        placement: same argument as with-placement macro
>>        modules: list of modules: a list of module name, position in percent and arguments.
>>                 0%=left/up   <->   100%=right/down.
>>                 Example: '((clock 1) (label 50 \"My label\") (clickable-clock 90))
>>        size: toolbar size in percent of root size
>>        thickness: toolbar height for horizontal toolbar or width for vertical one
>>        autohide: one of nil, :click, or :motion
>>        refresh-delay: refresh delay for toolbar in seconds
>>        border-size: toolbar window border size"
>> 
>>  Here are some examples:
>>     (load-contrib "toolbar.lisp")
>> 
>>   ;; Add an horizontal toolbar on root at coordinates 0,0 pixels
>>   ;; with default modules
>> 
>>     (add-toolbar 0 0 :horiz 80 'top-middle-root-placement *default-toolbar*)
>> 
>> 
>>   ;; Add an horizontal toolbar on root at coordinates 0,0 pixels
>> 
>>     (add-toolbar 0 0 :horiz 90 'top-middle-root-placement
>>                  '((clock 1) (label 50 "Plop") (clock-second 25) (clickable-clock 99))
>>                  :autohide :click
>>                  :refresh-delay 1)
>> 
>> 
>>   ;; Add an horizontal toolbar on root at coordinates 0,0 pixels
>> 
>>     (add-toolbar 0 0 :horiz 70 'bottom-middle-root-placement '((clock 1) (label 50 "Paf) (clock 99))
>>                  :autohide :motion)
>> 
>> 
>>   ;; Add a vertical toolbar on root 0
>> 
>>     (add-toolbar 0 nil :vert 60 'middle-left-root-placement '((clock 1) (label 50 "My label") (clock 90)))
>> 
>> 
>>   ;; Add a vertical toolbar on root 1
>> 
>>     (add-toolbar 1 nil :vert 70 'bottom-right-root-placement '((clock 1) (label 50) (clickable-clock 99)))
>>   --------------------------------------------------
>> 
>> 
>> Now, I need your help if you want some particular modules on your
>> toolbar.
>> I plan to write one for mpd and sound volume, one for navigating in
>> clfswm (enter frame, leave frame...). But any other idea or code is very
>> welcome!!!
>> 
>> If you want to write a new toolbar module, you just have to define what
>> to do when it must be displayed. And, if needed, what to do when you
>> click on it. 
>> This is done with the two macros define-toolbar-module and
>> define-toolbar-module-click.
>> 
>> Here is an example. But see contrib/toolbar.lisp for more details (at
>> the end of the file):
>> 
>> (define-toolbar-module (module-name module-arg1 module-arg2...)
>>   "...Module documentation..."
>>   (action to do on display))
>> 
>> (define-toolbar-module-click (module-name module-arg1 module-arg2...)
>>   "...Module documentation on click..."
>>   (action to do on click))
>> 
>> 
>> 
>> Please test intensively and share any idea or code.
>> I plan to release a new CLFSWM version on the next week I think.
>> 
>> Best regards,
>> 
>> Have fun,
>> 
>> Philippe
>> 
>> _______________________________________________
>> clfswm-devel mailing list
>> clfswm-devel at common-lisp.net
>> http://lists.common-lisp.net/cgi-bin/mailman/listinfo/clfswm-devel
>
>
> _______________________________________________
> clfswm-devel mailing list
> clfswm-devel at common-lisp.net
> http://lists.common-lisp.net/cgi-bin/mailman/listinfo/clfswm-devel




More information about the clfswm-devel mailing list